AWSのサブネットには、パブリックとプライベートの二種類がありますが、インスタンスの位置づけによりどちらに配置するか使い分ける必要がありますし、インターネットやVPC外部のインスタンスと通信するには、インターネットゲートウェイ(IGW)、NATゲートウェイ、仮想プライベートゲートウェイ(VGW)の3種類のコンポーネントを上手く使い分ける必要があります。
AWSのサブネットについて
サブネットは、セキュリティや運用ニーズに基づいてリソースをグループ化します。パブリックとプライベートの二種類があります。
同一のVPC内では、サブネットは相互に通信できます。例えば、パブリックサブネットにあるアプリケーションからプライベートサブネットにあるデータベースに通信できます。
パブリックサブネット
パブリックサブネットには、外部公開用のウェブサイトなど、一般公開されているリソースが含まれています。
パブリックサブネットとは、インターネットやVPC外部のネットワークにアクセスすることのできるサブネットのことです。
プライベートサブネット
プライベートサブネットには、商品情報や注文履歴を含むデータベースなど、外部に公開しないリソースが含まれています。
プライベートサブネットとは、インターネットに直接アクセスできないサブネットのことで、プライベートサブネット内のインスタンスには、同じVPC内のインスタンスからしかアクセスできません。
インターネットゲートウェイ(IGW)
VPC内のインスタンスは、同じVPC内のインスタンスとしか通信することができず、インターネットや別のVPCのインスタンスと通信することはできません。
VPC内のインスタンスがインターネットに接続したり、VPC外部のネットワークにアクセスしたりすることを可能にするAWSのコンポーネントが、インターネットゲートウェイ(IGW)です。
インターネットゲートウェイ(IGW)と直接通信できるのは、パブリックサブネット内のインスタンスで、プライベートサブネット内のインスタンスはインターネットゲートインターネットゲートウェイ(IGW)とは直接通信できません。
言い換えると、パブリックサブネット内のインスタンスには、インターネットゲートウェイ(IGW)へのアクセス権がありますが、プライベートサブネット内のインスタンスには、インターネットゲートウェイ(IGW)へのアクセス権がありません。
NATゲートウェイ
プライベートサブネット内のインスタンスがインターネットやVPC外部ネットワークへ接続を可能にするAWSのコンポーネントが、NATゲートウェイです。
NATゲートウェイはパブリックサブネットに配置され、プライベートサブネット内のインスタンスはNATゲートウェイを経由し、NAT変換を行うことで、インターネットに接続することができます。
NAT ゲートウェイはアウトバウンド通信を許可しますが、インバウンド通信をすることはできませんので、インターネットからプライベートサブネットのインスタンスに不正にアクセスすることを防止することができます。
仮想プライベートゲートウェイ(VGW)
企業のイントラネットとDirect Connect 接続を使用して接続する場合、VPCは、仮想プライベートゲートウェイ(VGW)を経由します。
仮想プライベートゲートウェイ(VGW)は、パブリックサブネット内のインスタンスとプライベートサブネット内のインスタンスのどちらに対しても、アウトバウンド通信・インバウンド通信を許可します。
AWSのサブネットとVPC外部との通信 まとめ
AWSのサブネットとVPC外部との通信を理解することは、AWSクラウド上にプライベートな空間を構築する上で必須の概念です。概念を理解してインスタンスを適切に配置することで高いセキュリティを得ることができます。