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


10

私は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の関連付けを解除する必要があります。


プライベートサブネットで起動する場合:stackoverflow.com/questions/39086022/…–
lonewarrior556

回答:


10

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

豆の木の開発者ガイド、環境の種類

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

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

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


ここの他の回答とは異なり、これは実際に私の問題を解決したので、感謝します:)今後の旅行者のために、新しい[環境の作成]ダイアログで、環境の作成の最後にある[その他のオプションの構成]ボタンの下にある[負荷分散]オプションを選択します形。
Jacob Davis-Hansson 2017

1

これらのアプリは有効期間が短いため、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アドレスを宛先とするトラフィックは、トラフィックがVPCに配信される前に、宛先アドレスがインスタンスのプライベートIPアドレスに変換されます。

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


お返事ありがとうございます。現在表示されている問題と、Webコンソールを介して回避する方法を説明する質問に、さらに情報を追加しました。AWSの動作を誤解しているかもしれませんが、それでも助かります。
ed。

@ed。私はEBについてはあまり詳しくありませんaws:ec2:vpc:AssociatePublicIpAddressが、EB構成で設定するドキュメントからのように見えます(これは単一インスタンスEBに固有のものです)。または、AWSにEIP制限の引き上げを依頼してください-私の経験では、このような状況では喜んで許可します。
ceejayoz 2015年

乾杯してみます。
ed。

上記のフラグを試しましたが、役に立ちませんでした。SDKを介してdisassociateAddressを呼び出すだけだと思います。
ed。

1
レコードの場合:aws:ec2:vpc:AssociatePublicIpAddressec2インスタンス専用です。falseに設定するとdisassociateAddress、インスタンスにパブリックIPがなくなります。
ed。

0

あなたが求めているものであるかもしれない、エラスティックbeanstalk環境オプションがあります。

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サービスに到達できません)。


これをEBS構成に追加しました。 { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },それでも、Elastic IPがそのインスタンスに関連付けられています。どんな手掛かり?
コスタノス

1
これは真実ではありません、それはeipに影響を与え
ません

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.