app-server
グループ内のノードがグループ内の mysql および redis マシンと通信できるようにしたいと考えていますdatabase
。ただし、イングレス ルールに対して明示的な IP を機能させることしかできません。自動スケーリングを容易にするために代わりにグループを定義しようとすると、トラフィックがブロックされます。
これが私のセットアップです:
私が走るとき
ec2-describe-group database
私は得る
PERMISSION 890752071609 database ALLOWS tcp 3306 3306 FROM USER 890752071609 NAME default ID sg-5ce3766c ingress
PERMISSION 890752071609 database ALLOWS tcp 3306 3306 FROM USER 890752071609 NAME app-server ID sg-b81b8088 ingress
PERMISSION 890752071609 database ALLOWS tcp 6379 6379 FROM USER 890752071609 NAME default ID sg-5ce3766c ingress
PERMISSION 890752071609 database ALLOWS tcp 6379 6379 FROM USER 890752071609 NAME app-server ID sg-b81b8088 ingress
PERMISSION 890752071609 database ALLOWS tcp 0 65535 FROM USER 890752071609 NAME database ID sg-d262f1e2 ingress
PERMISSION 890752071609 database ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0 ingress
ただし、グループ内のマシンから redis-cli を使用してポート 6379 に接続しようとするとapp-server
、redis タイムアウト エラーが発生します。
このように、接続元のサーバーのエラスティック IP を明示的に追加すると、
PERMISSION 890752071609 database ALLOWS tcp 3306 3306 FROM CIDR 111.snip.25/32 ingress
PERMISSION 890752071609 database ALLOWS tcp 6379 6379 FROM CIDR 222.snip.25/32 ingress
redis-cli 呼び出しが機能します。ただし、より柔軟になりたいので、代わりにセキュリティ グループ全体を追加します。
アマゾンドキュメントの状態
セキュリティ グループをソースとして指定することにより、ソース セキュリティ グループに属するすべてのインスタンスからの受信トラフィックを許可します。許可する着信トラフィックは、ソース セキュリティ グループ内のインスタンスのプライベート IP アドレスに基づいています。3 層 Web サービスを作成している場合は、アカウントに別のセキュリティ グループを指定できます (「3 層 Web サービスの作成」を参照)。
これはうまくいくはずですよね?私は何を間違っていますか?