はじめに
EC2インスタンス同士で通信するためのセキュリティグループ設定について調べたら、いろいろな設定の仕方があることがわかったのでまとめておきます。
ちなみに、セキュリティグループの変更は即適用で、EC2インスタンスの再起動などは必要ありません。
EC2インスタンス同士で通信するためのセキュリティグループ設定
1. 通信相手のIPアドレスを指定
まずは、通信相手のEC2インスタンスのIPアドレスを直接指定する方法です。
一番最初に思い付くのがこの方法なのではないでしょうか。
この方法でも問題ないのですが、EC2インスタンスのENIをアタッチ、デタッチしたりしている場合は将来IPアドレスが変わる恐れがあるため、そういった状況に対応できるような柔軟な設定方法ではありません。
また、通信相手が多数存在する場合は、セキュリティグループ設定が煩雑になります。
2. 通信相手のセキュリティグループを設定
次は、通信相手のEC2インスタンスのセキュリティグループを指定する方法です。
セキュリティグループにはIPアドレスしか設定できないと思っている方も多いと思いますが(私もそうでした。。。)、実はセキュリティグループも設定できるんです!
複数のEC2インスタンスを使ってクラスタを組む場合など、同じセキュリティグループを適用しているEC2インスタンス同士の通信を許可したい場合は、セキュリティグループを指定すると設定が楽です。
この方法だと、EC2インスタンスのIPアドレスが変わった場合でも、セキュリティグループの設定に影響がないのも嬉しいですね。
3. VPCまたはサブネットのIPアドレスを指定
最後に紹介するのが、VPCまたはサブネットのIPアドレスを指定する方法です。
セキュリティグループにVPCやサブネットのIPアドレスを指定すると、そのネットワーク内部からの通信を許可できます。
VPCやサブネットのIPアドレスは、VPCのコンソール画面で確認できます。
EC2インスタンスをデフォルトのネットワーク設定で立ち上げている方はVPCの存在をあまり意識することがないかもしれないので、念のため以下の図を載せておきます。
EC2インスタンスはVPCというネットワーク上のサブネットに配置されています。
ネットワークの外側からの通信だけブロックできればいい、というようなセキュリティグループ設定を行いたい場合はこのような設定も可能です。
おわりに
セキュリティグループの設定は通信相手のIPアドレスを直接指定する方法以外にも、セキュリティグループや、VPC、サブネットの範囲で許可することもできるので、状況に合わせて使い分けられるとセキュリティグループの設定が楽になります。