単一の SecurityGroup にアタッチされたすべての EC2 インスタンスが、PrivateIP の代わりに ElasticIP を使用して相互に通信できるようにするための適切なセキュリティ グループ ルールは何ですか?
上の図の説明 AmazonVPC に 1 つのパブリック サブネットがあります。サブネットには、3 つ以上の EC2 インスタンス (DevOps インスタンス、PHP インスタンス、Python インスタンス、その他いくつか) があります。DevOps インスタンスは、SG1 と SG2 の 2 つのセキュリティ グループにアタッチされています。PHP/Python インスタンスは、1 つのセキュリティ グループ SG2 のみにアタッチされています。表に示されている SG1 および SG2 ルールを考えると、DevOps インスタンスは SSH ポート 22 のみを介して世界中からアクセスできます。PHP/Python インスタンスは、HTTP ポート 80 のみを介して世界中からアクセスできます。すべての DevOps/PHP/Python インスタンスのすべてのポートは、同じセキュリティ グループにアタッチされているすべての EC2 インスタンスからのみアクセスできます。
ユースケース: ElasticIP 9.8.7.1 を使用して、インターネットから DevOps インスタンスに SSH 接続したいと考えています。次に、DevOps インスタンスから、ElasticIP 9.8.7.2 / 9.8.7.3 (PrivateIP を使用しない) を使用して、PHP/Python インスタンスに SSH で接続したいと考えています。また、私の PHP アプリは、ElasticIP を介して Python アプリと対話できる必要があります。また、その逆も可能です。これは、ElasticIP がアプリのソース コードに含まれているためです。
問題 1:表に示されているセキュリティ グループ ルールにより、現在、ElasticIP を使用せずに PrivateIP のみを使用して、DevOps インスタンスから PHP/Python インスタンスに SSH 接続できます。
問題 2: PHP/Python インスタンスも、ElasticIP を介して相互に通信できません。
制約:新しい/更新された AMI から、PHP/Python アプリの新しいインスタンスを定期的に起動します。新しいインスタンスを起動するたびに、PrivateIP が変更されます。しかし、変更されないもの (つまり、ElasticIP) を介して通常の通信を実行する必要があります。~/.ssh/config ファイルを DevOps インスタンスに保持して、アプリ インスタンスへの SSH を簡単に実行できるようにします。ssh 構成ファイルでは、ElasticIP を PHP/Python/その他のインスタンスの IP アドレスとして保持しています。アプリ インスタンスが新しいものに置き換えられるたびに、ssh 構成ファイルの IP アドレスを新しい PrivateIP アドレスに変更することはできません。