web-dev-qa-db-ja.com

AWS VPCEC2インスタンスがAWSAPIを表示できるようにするにはどうすればよいですか?

CloudFormationを介してAWSVPC内のインフラストラクチャをスピンアップしています。

自動スケーリンググループを使用してVPC-EC2インスタンスを起動しています(したがって、インスタンスを直接起動するのではなく、ASGがそれを管理します)。

PVCの内部では、EC2インスタンスにはプライベートIPしかありません。 彼らはさらなる作業なしでは外の世界を見ることができません

これらのインスタンスが起動すると、さまざまなAWSAPIとの通信を必要とするbootstrapタスクがいくつかあります。また、AWSAPIトラフィックを必要とする進行中のタスクもいくつかあります。

この明らかな鶏が先か卵が先かという問題にどのように取り組んでいますか?

私たちは読んだ:

  • NATインスタンス-しかし、これはスタックの別のレイヤーであるため、あまり好きではありません。
  • 話す必要のある各VPCインスタンスにエラスティックIPを割り当てますが、a)すべてが話します。b)ASGを使用しているため、プロビジョニング時にEIPを割り当てるインスタンスがわかりません。c)これらのASGを監視し、インスタンスが終了して置き換えられたときにEIPを割り当てるために何かを設定する必要があります
  • インスタンス(実際には、負荷分散されたペア、おそらくAZにまたがる)をスピンアップして、すべてのAPIトラフィックのAWS-APIプロキシとして機能します

VPCEC2インスタンスがAWSAPIエンドポイントにアクセスできるようにする、開くことができる何らかのバックドアがあるかどうか疑問に思っていますが、安価で複雑なセットアップの場合、別のネットワークホップレイヤーを追加しないものは他にありません。リクエストを処理するためのインフラストラクチャに。

6
Peter Mounce

プライベートサブネット内のVPCインスタンスを取得して外部と通信する主な方法について説明しました。

  1. プライベートサブネットのインターネットトラフィックを、オフィスに接続されたVPNトンネルからルーティングします。これにより、残りのインターネットへのアクセスが提供されます。常時接続のVPNトンネルと、オフィスを介した追加のホップが必要になるため、理想的ではありません。

NATインスタンスを使用することをお勧めします。これは、プライベートサブネット内のマシンにインターネットアクセスを取得するための推奨セットアップです。これらはサブネットごとに構成されているため、マシンに構成の知識は必要ありません。起動時。ネットワークスループットを高くするには、必ずm1.large以上のインスタンスを使用してください(vs m1.small)

3
Flashman

2015年4月の時点で、AWSはこの問題に対する簡単なソリューションを提供しています: VPCエンドポイント

VPCエンドポイントを使用すると、NATインスタンス、VPN接続、またはAWS Direct Connectを介して、インターネット経由のアクセスを必要とせずに、VPCと別のAWSサービスの間にプライベート接続を作成できます。エンドポイントは仮想ですデバイス。これらは水平方向にスケーリングされ、冗長で、可用性の高いVPCコンポーネントであり、ネットワークトラフィックに可用性のリスクや帯域幅の制約を課すことなく、VPCとAWSサービスのインスタンス間の通信を可能にします。

2
Steve Jansen