きっかけ
今までサーバーサイドの開発が多く、インフラの勉強をUdemyなどで行っています。
AWSのロードバランサーの機能を学習し切れた気がするので少しELB(Elastic Load Balancing)と合わせてECS(Elastic Container Service)を使用して負荷分散を行う際のパブリックサブネットとプライベートサブネットの使い方について説明します。
各機能
パブリックサブネット
定義: パブリックサブネットはインターネットから直接アクセス可能なサブネットです。これはインターネットゲートウェイに接続されています。ECSやEC2などは直接触られたくないので、ここには置きません。
用途: ELBを配置するために使用します。ELBはインターネットからのトラフィックを受け入れ、ECSクラスター内のコンテナにトラフィックを分散するため、パブリックサブネット内に配置するのが一般的です。
セキュリティ:パブリックサブネットに配置されるリソースはセキュリティグループやネットワークACLを適切に設定して、不要なアクセスを防ぐ必要があります。
プライベートサブネット
定義: プライベートサブネットはインターネットから直接アクセスできないサブネットです。通常、NATゲートウェイを介してインターネットにアクセスします。
用途: ECSクラスター(ECSのインスタンスやタスク)を配置するために使用します。プライベートサブネット内のECSインスタンスはELBを通じてのみアクセス可能です。
セキュリティ: プライベートサブネット内のリソースは外部から直接アクセスされることがないため、セキュリティ上のリスクが低減されます。しかし、内部からのアクセス制御は依然として重要です。
負荷分散の流れ
受信トラフィック: ELBはパブリックサブネットに配置され、インターネットからのトラフィックを受け取ります。
負荷分散: ELBは受信したトラフィックをECSクラスターに分散します。このECSクラスターはプライベートサブネット内に存在します。
応答トラフィック: ECSクラスターからの応答はELBを通じてユーザーに返されます。
まとめ
この構成により、安全かつ効率的に負荷分散を実現でき、ECSクラスターのセキュリティを確保しつつ、外部からのアクセスを管理できます。また、AWSのVPC(Virtual Private Cloud)内でこれらのサブネットを適切に構成することで、リソースの分離とセキュリティを強化できます。