web-dev-qa-db-ja.com

Elastic IPが構成されていないElastic Beanstalkを介してインスタンスを起動する

ElasticBeanstalkを介してDockerイメージをEC2にデプロイするためのツールを作成しているので、開発チームはマージすることなく作業をすばやくデモできます。これらのアプリは有効期間が短いため、Elastic IPを有効にしたくありません。

私がこれを尋ねる理由は、私のツールが5つを超えるアプリをビルドすると(そしてそれが非常に迅速に)、新しいアプリにElastic IPを割り当てることができないため、新しいアプリが失敗するためです。これは、AWSアカウントには通常 最大5つのElastic IPが使用可能 があるためです。 aws Webコンソールに移動して、インスタンスで[Elastic IPアドレスの関連付けを解除](下記を参照)を選択すると、ec2インスタンスが新しいIPを取得します(数分後)。これは私が望んでいることですが、プログラムで実行したいので、インスタンスが作成されたらアプリを起動するのではなく、アプリを起動することをお勧めします。

disassociate menu option

新しいインスタンスのElastic IPを無効にするために使用できる構成オプションはありますか?

私はノード aws-sdk を使用していますが、どの言語のヒントでも問題ありません。

m1.smallの単一インスタンスを作成しています。

起動時にこれが不可能な場合は、 EC2.disassociateAddress 関数を使用してインスタンスからElastic IPの関連付けを解除する必要があります。

10
ed.

環境タイプ「単一インスタンス」を使用する場合、常にEIPを取得します。

から Beanstalk開発者ガイド、環境タイプ

シングルインスタンス環境には、Elastic IPアドレスを持つ1つのAmazon EC2インスタンスが含まれています。

[パブリックIPアドレスの関連付け]オプションを無効にしても効果はありません。

「負荷分散、自動スケーリング」環境に切り替えて、EIPなしで問題を解決します。

10
Jens Bannmann

これらのアプリは有効期間が短いため、Elastic IPを有効にしたくありません。

VPCのパブリックサブネット(たぶん)にいる場合、そのインスタンスがインターネットと通信できるようにするために1つ必要です。あたり http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html

パブリックサブネットのインスタンスがインターネットと通信できるようにするには、インスタンスに、インスタンスのプライベートIPアドレスに関連付けられたパブリックIPアドレスまたはElastic IPアドレスが必要です。インスタンスは、VPCおよびサブネット内で定義されたプライベート(内部)IPアドレス空間のみを認識します。インターネットゲートウェイは、インスタンスに代わって論理的に1対1のNAT=を提供します。そのため、トラフィックがVPCサブネットを出てインターネットに行くとき、返信アドレスフィールドはパブリックに設定されますインスタンスのIPアドレスまたはElastic IPアドレスであり、プライベートIPアドレスではありません。逆に、インスタンスのパブリックIPアドレスまたはElastic IPアドレス宛てのトラフィックは、トラフィックが配信される前に、宛先アドレスがインスタンスのプライベートIPアドレスに変換されます。 VPC。

新しいインスタンスに付属する自動的に割り当てられたEIPは費用がかからず、インスタンスが廃止されると自動的に削除されます。

1
ceejayoz

Elastic IPアドレスの関連付けを解除した後、約10秒でアドレスを「解放」できます。離しても元に戻りません。

0
lonewarrior556

あなたが望んでいるものであるかもしれない弾性ビーンズトーク環境オプションがあります。

http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer

名前空間:aws:ec2:vpc AssociatePublicIpAddress:false

これを設定すると、この環境で作成されたすべてのノードにパブリックIPがなくなります。受信トラフィックはロードバランサーを使用する必要があります。 VPCとサブネットをNATゲートウェイまたはインターネットゲートウェイに関連付けて、アウトバウンドインターネットアクセスを取得する必要があります。アウトバウンドインターネットアクセスがない場合、Elastic Beanstalkビルドは失敗します( AWSサービスにアクセスできません)。

0
Sam