AWSにおけるパブリックサブネットとプライベートサブネットの違いを紹介します。ここは初心者がつまずきやすい内容なので、各サブネットの内容から細かく紹介していきます!
1. はじめに
まず初心者が勘違いしやすいサブネットの落とし穴を紹介します。
“パブリックサブネット”や”プライベートサブネット”といった単語がAWS公式ドキュメント内で頻繁に使用されますが、これらを明示的に設定する箇所はありません。これら2つのサブネットは、作成する際の設定内容次第でどちらに該当するかが区別されます。
なのでどちらのサブネットにするかの設定箇所を探す必要はありません!
2. パブリックサブネットとは
パブリックサブネットとはグローバル環境(インターネット)と通信できるサブネットです。
パブリックサブネットを割り当てるインスタンスの一般的な例だと、ブラウザで展開される申込みフォームのWEBサーバー等が該当します。
インターネットに接続されたすべての人が閲覧できるシステムのインスタンスを立てる際は、パブリックサブネットを割り当てる必要があります。
3. プライベートサブネットとは
プライベートサブネットとはグローバル環境(インターネット)と通信できないサブネットです。
プライベートサブネットを割り当てるインスタンスの一般的な例だと、先に紹介した申込みフォームにおけるDBサーバー等が該当します。
顧客情報を保管したDBサーバー等、特定の場所からのみアクセスを許可したいインスタンスを立てる際は、プライベートサブネットを割り当てた方が良いでしょう。
4. パブリックサブネットとプライベートサブネットの違い
パブリックサブネットとプライベートサブネットの違いはサブネットに適用されたルートテーブルのゲートウェイがIGW(インターネットゲートウェイ)になっているかなっていないかの差です。
下記の例だと、0.0.0.0/0(すべての送信先)にターゲットIGWが設定されているため、このルートテーブルが適用されたサブネットはパブリックサブネットとなります。
逆に下記の例だと、ターゲットにIGWを指定したルートが設定されていないため、このルートテーブルが適用されたサブネットはプライベートサブネットとなります。
まとめ
VPCでセキュリティを考える際は、インスタンスをどちらのサブネットに配置するかが重要になってきます。今回の記事で紹介した内容(WEBサーバー「パブリック」:DBサーバー「プライベート」)を図にすると以下のようなイメージになります。
これはAWSにて推奨される構成なので、上記を参考にVPC環境を構築していけばいいと思います!