web-dev-qa-db-ja.com

AWSEC2インスタンス間のプライベート通信

ElasticIPを備えたEC2インスタンスが3つあります。
それぞれにサーバーが含まれています。
各サーバーでは、TCPポート8181、2181、2888、および3888が各マシンで開かれている必要があります。
各サーバーは、これらのポートを介して他のサーバーと通信できる必要があります。

セキュリティグループを作成しました(たとえば、名前:sg-4d775c42)ここで私は次のルールを置きます:

カスタムTCPルール| TCP | 8181 | sg-4d775c42
カスタムTCPルール| TCP | 2181 | sg-4d775c42
カスタムTCPルール| TCP | 2888 | sg-4d775c42
カスタムTCPルール| TCP | 3888 | sg-4d775c42

これらのルールは、セキュリティグループ内の各マシンがsg-4d775c42は、同じグループ内の他のマシンのポート8181、2181、2888、および3888を呼び出すことができます。

しかし、そうではないようです!

私が世界へのポートを開く場合、つまり次のルール:

カスタムTCPルール| TCP | 8181 | 0.0.0.0/0
カスタムTCPルール| TCP | 2181 | 0.0.0.0/0
カスタムTCPルール| TCP | 2888 | 0.0.0.0/0
カスタムTCPルール| TCP | 3888 | 0.0.0.0/0

もちろん、私のサーバーは一緒に話すことができます。

さらに、これら3つのサーバー間のプライベート通信が最初のステップです。 2番目のステップは、この3つのサーバーが他のインスタンスにアンサンブルする他のプライベートネットワークに接続することです。

だから私の質問は次のとおりです:

EC2インスタンス間でポートが開かれるプライベートネットワークを作成(またはシミュレート)するにはどうすればよいですか?

2
Jules Ivanic

これらのルールは、セキュリティグループsg-4d775c42の各マシンが、同じグループの他のマシンのポート8181、2181、2888、および3888を呼び出すことができることを意味すると思いました。

それは可能ですが、AWS内部IPを使用する場合に限ります。これは、各インスタンスが取得するec2-xxx-xxx-xxx-xxx.us-region-1.compute.amazonaws.comアドレス(AWSネットワーク内の内部IPを返す)を使用するか、インスタンスのプライベートIPを介して直接行うことができます。

インスタンスのエラスティックIPを使用してパブリックインターネットを経由すると、AWSは、インスタンスが属しているセキュリティグループに関する情報をすべて失うため、IPベースのルールのみが機能します。

2
ceejayoz