ElasticBeanstalkを介してDockerイメージをEC2にデプロイするためのツールを作成しているので、開発チームはマージすることなく作業をすばやくデモできます。これらのアプリは有効期間が短いため、Elastic IPを有効にしたくありません。
私がこれを尋ねる理由は、私のツールが5つを超えるアプリをビルドすると(そしてそれが非常に迅速に)、新しいアプリにElastic IPを割り当てることができないため、新しいアプリが失敗するためです。これは、AWSアカウントには通常 最大5つのElastic IPが使用可能 があるためです。 aws Webコンソールに移動して、インスタンスで[Elastic IPアドレスの関連付けを解除](下記を参照)を選択すると、ec2インスタンスが新しいIPを取得します(数分後)。これは私が望んでいることですが、プログラムで実行したいので、インスタンスが作成されたらアプリを起動するのではなく、アプリを起動することをお勧めします。
新しいインスタンスのElastic IPを無効にするために使用できる構成オプションはありますか?
私はノード aws-sdk を使用していますが、どの言語のヒントでも問題ありません。
m1.small
の単一インスタンスを作成しています。
起動時にこれが不可能な場合は、 EC2.disassociateAddress 関数を使用してインスタンスからElastic IPの関連付けを解除する必要があります。
環境タイプ「単一インスタンス」を使用する場合、常にEIPを取得します。
シングルインスタンス環境には、Elastic IPアドレスを持つ1つのAmazon EC2インスタンスが含まれています。
[パブリックIPアドレスの関連付け]オプションを無効にしても効果はありません。
「負荷分散、自動スケーリング」環境に切り替えて、EIPなしで問題を解決します。
これらのアプリは有効期間が短いため、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は費用がかからず、インスタンスが廃止されると自動的に削除されます。
Elastic IPアドレスの関連付けを解除した後、約10秒でアドレスを「解放」できます。離しても元に戻りません。
あなたが望んでいるものであるかもしれない弾性ビーンズトーク環境オプションがあります。
名前空間:aws:ec2:vpc AssociatePublicIpAddress:false
これを設定すると、この環境で作成されたすべてのノードにパブリックIPがなくなります。受信トラフィックはロードバランサーを使用する必要があります。 VPCとサブネットをNATゲートウェイまたはインターネットゲートウェイに関連付けて、アウトバウンドインターネットアクセスを取得する必要があります。アウトバウンドインターネットアクセスがない場合、Elastic Beanstalkビルドは失敗します( AWSサービスにアクセスできません)。