web-dev-qa-db-ja.com

Elastic Beanstalkを使用した静的IP

AWSネットワーク上ではなく、ファイアウォールで保護されたネットワークへのアクセスを許可するには、静的IPが必要です。

Elastic Beanstalkを使用して、負荷分散されたアプリの静的IPを取得することは可能ですか? Route 53を使用してドメイン名でアプリをホストすることについて AWS docs に従っていますが、読んだことから、これは静的IPを保証しません。変更する舞台裏のIP。それは正しい理解ですか?まったく可能ですか?

23
Seth

Amazonは、特にあなたのために新しい例を公開しています: http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/vpc-basic.html

Elastic Beanstalkアプリケーションを、パブリックサブネットとプライベートサブネットの両方を持つVPCの負荷分散、自動スケーリング環境にデプロイできます。 Elastic BeanstalkでプライベートIPアドレスをAmazon EC2インスタンスに割り当てたい場合は、この構成を使用します。

0
dang

Beanstalk環境をVPCにデプロイします。適切な構成で、送信トラフィックの静的IPは簡単です。

この設定では、インスタンスはすべて、エラスティックIPアドレスを割り当てることができる単一のマシンを介して送信トラフィックを中継します。その背後にあるすべてのインスタンスからの、内部から発信されたインターネット行きのトラフィックはすべて、他のネットワークから、その単一のエラスティックIPを使用してbwに送信されます。

以下のRDSの部分はニーズに関係ない場合がありますが、原則はすべて同じです。

http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-rds.html

12

この post は、NAT Gatewayを使用して、特定の要求をルーティングすることにより、発信要求の静的IPを取得するのに役立ちました。

外部APIプロバイダーからホワイトリストに登録するには、この静的IPが必要でした。

[〜#〜] aws [〜#〜] で提供される方法よりもはるかに簡単で、新しいVPCとプライベートおよびパブリックサブネットを作成する必要がないことがわかりました。

基本的に、私がしたことは:

  • NATゲートウェイをホストする新しいサブネットを作成します。
  • 上記のサブネットにNAT Gatewayを作成し、新しいElastic IPを割り当てます。これは、外部APIをヒットするための送信IPになります。
  • NATサブネットのルートテーブルを作成します。すべての送信トラフィック(0.0.0.0/0)はNATゲートウェイ経由でルーティングする必要があります。作成したサブネットを割り当てて、新しいルートテーブルを使用します。
  • メインルートテーブル(すべてのEC2インスタンスリクエストを処理するテーブル)を変更し、外部APIのIPを追加して、そのターゲットをNAT Gatewayに設定します。

このように、NATゲートウェイを介して外部API IPに要求をルーティングできます。他のすべての要求はデフォルトのインターネットゲートウェイを介してルーティングされます。

投稿によると、これはマルチAZソリューションではないため、NAT Gatewayを保持するAZが失敗すると、外部APIへの接続が失われる可能性があります。

更新

これをマルチAZソリューションにするには、@ TimObezukコメントを参照してください。

6
SebaGra