002_AWS環境におけるパブリックサブネット、プライベートサブネットの作成方法
0. 目次
コンテンツ
みなさま、こんにちは!今回は2回目の投稿になります!よろしくお願いします!
【今回の内容】
今回は、AWS環境でパブリックサブネット、プライベートサブネットの作成方法をご説明していきたいと思います。
上記の2つサブネットはAWSでシステムを構築する際の重要な考え方です。
一般的なインフラ環境では、webサーバなどの公開サーバをパブリックネットワークに配置、DBサーバなど非公開サーバをプライベートネットワークに配置します。
AWS環境で上記の構成しようとした場合どうしたら良いのでしょうか?
その疑問が解消できるような説明、環境構築、検証を本記事では行っています!サブネットに関する説明、実際の構築手順の紹介、構築環境での検証を通じて、皆さまの理解を深めることができれば嬉しく思います!是非ご覧ください!
【前提】
AWS環境を所有していること。
※本検証では一部無料枠を超えたサービスを利用します。もし検証される場合はご注意ください。
1. はじめに
1-1. 全体構成図
本検証で作成する全体構成図になります。検証のためミニマム構成となっていますが、ご確認ください。
1-2.本検証におけるAWSのサービス一覧
本検証の環境構築には主に以下のサービスを使用します。サービスに関する説明は構築手順の前に説明をいれています。
詳しくはAWSドキュメントをご覧ください。
①VPC
②サブネット
VPC のサブネット
③インターネットゲートウェイ
インターネットゲートウェイ
④NATゲートウェイ
NAT ゲートウェイ
⑤ルートテーブル
ルートテーブル
⑥Elastic ip(固定IP)
Elastic IP アドレス
⑦ネットワークACL
ネットワークACL
ネットワークACLは、インバウンドとアウトバウンドのトラフィックを制御できるルールになります。VPC毎に作成ができ、サブネットに対して割り当てます。ブラックリスト方式で追加していきます。
⑧セキュリティグループ
セキュリティグループ
セキュリティグループは、インバウンドとアウトバウンドのトラフィックを制御できるルールになります。ネットワークACLと同様の機能ですが、こちらはインスタンス単位で割り当てます。ホワイトリスト方式で追加します。
2. 各サブネットに関する説明
それではパブリックサブネットとプライベートサブネットを作成していきたいところですが、作成するためにはそれぞれのサブネットの特性を理解しておく必要があります。
以下で説明を行います。
2-1. パブリックサブネットに関して
「AWS環境におけるパブリックサブネットとは」
AWS環境におけるパブリックサブネットとは、「インターネットへ出ていくことができ、インターネットから入ることができるサブネット」になります。
ただサブネットの機能だけで、このような特性を持ったサブネットは作成することできません。他のコンポーネント・サービスと組み合わせることで、「インターネットへ出ていくことができ、インターネットから入ることができるサブネット」を作成することができます。具体的にはインターネットゲートウェイとルートテーブルを用います。
パブリックサブネットのサービス構成を文章で表現すると「インターネットゲートウェイへのルートが設定されたルートテーブルが割り当てられたサブネット」になります。詳細に説明すると、「インターネットへのアウトバウンドとインターネットからのインバウンドの双方向通信を可能にするインターネットゲートウェイと通信できるルートが設定されたルートテーブルが割り当てられたサブネット」になります。
図の方がイメージが付きやすいかもしれません。以下のようなイメージになります。
2-2. プライベートサブネットに関して
「AWS環境におけるプライベートサブネットとは」
AWS環境におけるプライベートサブネットとは、「インターネットへ出ていくことができるが、インターネットから入ることはできないサブネット」になります。
※補足としてインターネットとの通信を遮断してインターネットへ出ていくことができないサブネットについてもプライベートサブネットと呼ぶ場合もあります。
プライベートサブネットも同様にサブネットの機能だけで、このような特性を持ったサブネットを作成することはできません。他のコンポーネント・サービスと組み合わせることで、「インターネットへ出ていくことができるが、インターネットから入ることができないサブネット」を作成することができます。具体的には、NATゲートウェイとルートテーブルを用います。
プライベートサブネットのサービス構成を文章で表現すると「パブリックサブネットに配置したNATゲートウェイへのルートが設定されたルートテーブルが割り当てられたサブネット」です。詳細に説明すると「インターネットと通信が可能にするためにプライベートIPをパブリックIPに変換する機能を持つNATゲートウェイと通信ができるルートが設定されたルートテーブルが割り当てれらたサブネット」になります。
図の方がイメージが付きやすいかもしれません。以下のようなイメージになります。
3. 各サービスの構築手順
それでは、実際に構築していきましょう。
3-1. VPC
VPCとは・・・AWSが提供する仮想ネットワークサービスです。所持しているAWSアカウントに対して作成することが可能な仮想ネットワークで、各AWSリソースを配置することができます。ただAWSリソースを配置するには、VPC内に一つ以上のサブネットが必要になります。
それではVPCを作成をしていきます。
[1]AWSのマネジメントコンソールにログインしてください。
[2]画面上部の検索バーに①「VPC」と入力してください。検索結果に表示されたサービスの②「VPC」をクリックします。
[3]VPCダッシュボードが表示されます。画面上部の「VPCを作成」をクリックしてください。
[4]VPCの作成画面が表示されます。以下パラメータを入力してください。
「作成するリソース」・・・”VPCのみ”を選択してください。
「名前タグ-オプション」・・・任意のものでも問題ありませんが、今回は”test-VPC01″としています。
「IPv4 CIDR ブロック」・・・IPアドレスの範囲を指定したいので、”IPv4 CIDRの手動入力”を選択してください。
「IPv4 CIRD」・・・「10.0.0.0/23」を入力してください。
「IPv6 CIDR ブロック」・・・今回はIPv6アドレスは使用しないので、”IPv6 CIDR ブロックなし”を選択してください。
「テナンシー」・・・”デフォルト”のままで問題ありません。
[5]最後にタグの入力になりますが、任意のもので問題ありません。デフォルトでVPC名と同じ値になっています。すべてのパラメータの入力が完了したら、画面下部の「VPCを作成」をクリックしてください。
[6]VPCが正常に作成されたことが確認できます。
以上でVPCの作成手順を終了します。
3-2. サブネット
サブネットとは・・・VPC内に作成される指定のIPアドレス範囲で作成されたネットワークになります。VPCの項でも述べましたがVPC内には、一つ以上のサブネットが必要になります。サブネットを作成することで、AWSリソースを配置することができるようになります。作成時にはアベイラビリティゾーン(データセンター)を指定します。注意点として、可用性の観点からアベイラビリティゾーンをまたいで作成することはできないようになっています。
サブネットの作成に入ります。
※名称としてそれぞれパブリックサブネットとプライベートサブネットとしていますが、まだ2で説明をしたそれぞれの特性は持っておりません。
3-2-1. パブリックサブネット
[1]VPCダッシュボード画面に戻ります。
[2]VPCダッシュボード画面の左ペインの「VPCでフィルタリング」から先ほど作成したVPCを選択します。
[3]①作成したVPCが選択されていることが確認できたら、②「サブネット」を選択してください。
[4]サブネットの管理画面が表示されます。画面右上の「サブネットを作成」をクリックしてください。
[5]サブネットの作成画面が表示されます。以下パラメータを入力してください。
VPC ID・・・作成したVPCを選択してください。
サブネット名・・・任意のものでも問題ありません。今回はパブリックサブネットを目的として作成していますので、”test-public-subnet01″としています。
アベイラビリティゾーン・・・今回は特に冗長性を考慮した構成にはしないため、基本的には”ap-northeast-1a”を選択してください。
[6]続いて以下のパラメータを入力します。
IPv4 CIDR ブロック・・・全体構成図の通り、「10.0.0.0/24」とします。
タグ-オプション・・・任意のもので構いません。今回はデフォルトのサブネット名を使用しています。
入力が完了したら、①「サブネットを作成」を選択してください。
[7]サブネットが正常に作成されました。
以上でパブリックサブネットの作成を終了します。
3-2-2. プライベートサブネット
次にプライベートサブネットの作成します。基本的にパブリックサブネットと同じ手順になります。
[1]VPCダッシュボード画面から「サブネットを作成」をクリックしてください。
[2]サブネットの作成画面が表示されます。以下のパラメータを入力してください。
VPC ID・・・作成したVPCを選択します。
サブネット名・・・任意のもので構いませんが、プライベートサブネットのため”test-private-subnet01″としています。
アベイラビリティゾーン・・・パブリックサブネット同様に”ap-northeast-1a”を選択します。
IPv4 CIDR ブロック・・・全体構成図の通り、「10.0.1.0/24」とします。
[3]最後にタグですが、デフォルトで問題ありません。すべてのパラメータの入力が完了したら、画面下部の「サブネットを作成」を選択します。
[4]プライベートサブネットが正常に作成されたことが確認できます。
以上でプライベートサブネットの作成手順を終了します。
最後にサブネットの管理画面に戻ると2つのサブネットが作成されていることが確認できます。
3-3. インターネットゲートウェイ
インターネットゲートウェイはとは・・・VPCに配置してVPCとインターネット間の双方向の通信を可能にするためのコンポーネントになります。
インターネットゲートウェイを作成します。
[1]VPCダッシュボード画面の左ペインから「インターネットゲートウェイ」を選択します。
[2]インターネットゲートウェイの管理画面が表示されます。画面右上の「インターネットゲートウェイの作成」を選択してください。
[3]インターネットゲートウェイの作成画面が表示されます。以下のパラメータを入力します。
名前タグ・・・①”test-internetGW01としています。
タグ・・・デフォルトのままで問題ありません。
パラメータの入力が完了したら③「インターネットゲートウェイの作成」をクリックします。
[4]インターネットゲートウェイが無事に作成されました。次に作成したVPCへアタッチします。
[5]画面右上「VPCへアタッチ」をクリックします。
[6]VPCにアタッチ画面が表示されます。作成したVPCを選択してください。
[7]選択が完了したら、「インターネットゲートウェイのアタッチ」を選択します。
[8]VPCへアタッチされたことが確認できます。
VCPへアタッチ方法は、もう一つあります。以下に示します。
[1]VPCダッシュボードのインターネットゲートウェイ管理画面から行います。
[2]画面右上の「アクション」を選択します。
[3]インターネットゲートウェイに対する操作が表示されます。
[4]「VPCにアタッチ」を選択します。
[5]先ほどのパラメータの入力画面になります。
3-4. Elastic ip
ElasticIPの作成になります。NATゲートウェイ作成で必要になります。
※こちらのサービスは有料になりますので、作成される場合はご注意ください。
[1]VPCダッシュボード画面を開きます。
[2]左ペインの「Elastic IP」を選択します。
[3]Elastic IPの管理画面が表示されます。画面右上の「Elastic IPアドレスを割り当てる」を選択します。
[4]作成画面が表示されます。デフォルトのままで問題ありません。「割り当て」を選択します。
[5]Elastic IPが正常に割り当てられました。
“割り当てられた”となっていますが、現時点ではアカウントに対してこのパブリックIPを使ってよいですよ~と許可を与えられた状態です。
以上でElastic IPの作成を終了します。
3-5. NATゲートウェイ
NATゲートウェイとは・・・プライベートIPアドレスをパブリックIPアドレスに変換を行うためのゲートウェイになります。
パブリックサブネットに配置します。NATゲートウェイを経由させることでプライベートサブネット内のインスタンスがインターネットへ接続を可能にします。
NATゲートウェイを作成します。
[1]VPCダッシュボード画面を開きます。
[2]左ペインから「NATゲートウェイ」を選択します。
[3]NATゲートウェイ管理画面が表示されます。画面右上の「NATゲートウェイを作成」を選択します。
[4]NATゲートウェイの作成画面が表示されます。以下のパラメータを入力します。
名前-オプション・・・”test-NATGW01″としています。
サブネット・・・作成したパブリックサブネットを指定します。
接続タイプ・・・「パブリック」を選択します。
Elastic IP 割り当てID・・・作成したElasticIPを割り当てます。
[5]最後にタグですが、デフォルトのままで問題ありません。画面右下の「NATゲートウェイを作成」を選択します。
[6]NATゲートウェイが正常に作成されました。
[7]NATゲートウェイ管理画面に戻ると以下のように表示されています。作成直後の状態はまだ「Pending」となっています。
[8]少し待ってから更新すると状態が「Available」となります。この状態であれば使用可能になります。
以上でNATゲートウェイの作成を終了します。
3-6. ルートテーブル
ルートテーブルとは・・・サブネットやゲートウェイのトラフィックのルートを制御するためのルールになります。
ルートテーブルの作成をします。ルートテーブルはサブネットに対して関連付けます。
パブリックサブネットには以下のルート設定を割り当てます。
①「インターネットゲートウェイ」へのルート
プライベートサブネットには以下のルート設定を割り当てます。
②「パブリックサブネットの配置されたNATゲートウェイ」へのルート
3-6-1. パブリックサブネットのルートテーブル
パブリックサブネットのルートテーブルを作成します。
[1]VPCダッシュボード画面を開きます。
[2]ルートテーブルの管理画面が表示されます。画面右上の「ルートテーブルを作成」を選択してください。
※すでにルートテーブルが存在しますが、これはデフォルトで作成されるVPC内の通信のためのルートテーブルです。
[3]ルートテーブルの作成画面が表示されます。以下パラメータを入力します。
名前-オプション・・・パブリックサブネット用のルートテーブルなので”public-subnetRT01″としています。
VPC・・・ルートテーブルを使用するVPCを選択します。作成したVPCを選択します。
タグ・・・デフォルトのままで問題ありません。
パラメータの入力が完了したら、画面右下の「ルートテーブルを作成」を選択します。
[4]ルートテーブルが作成されました。次にサブネットに関連付けを行います。「サブネットの関連付け」を選択してください。
[5]「サブネットの関連付けを編集」を選択します。
[6]サブネットの関連付け編集画面が表示されます。①作成したパブリックサブネットを選択し、②「関連付けを保存」をクリックします。
[7]サブネットの関連付けが正常に行われました。次にルートを編集します。
[8]画面下部の①「ルート」を選択し、②「ルートを編集」をクリックします。
[9]ルートの編集画面が表示されます。以下のルート情報を追加します。
①送信先・・・「0.0.0.0/0」すべてのIPアドレスを対象します。
②ターゲット・・・「作成したインターネットゲートウェイ」を選択してください。
入力が完了したら、③「変更を保存」をクリックします。
[10]無事にルート設定が完了しました。
以上でパブリックサブネットに対するルートテーブルの作成を終了します。
3-6-2. プライベートサブネットのルートテーブル
プライベートサブネットに対するルートテーブルの作成を行います。基本的な手順はパブリックサブネットと同じです。
[1]VPCダッシュボード画面を開きます。
[2]ルートテーブルの管理画面が表示されます。画面右上の「ルートテーブルを作成」を選択してください。
[3]ルートテーブルの作成画面が表示されます。以下パラメータを入力します。
名前-オプション・・・プライベートサブネット用のルートテーブルなので”private-subnetRT01″としています。
VPC・・・ルートテーブルを使用するVPCを選択します。作成したVPCを選択します。
タグ・・・デフォルトのままで問題ありません。
パラメータの入力が完了したら、画面右下の「ルートテーブルを作成」を選択します。
[4]ルートテーブルが作成されました。次にサブネットに関連付けを行います。「サブネットの関連付け」を選択してください。
[5]「サブネットの関連付けを編集」を選択します。
[6]サブネットの関連付け編集画面が表示されます。①作成したプライベートサブネットを選択し、②「関連付けを保存」をクリックします。
[7]サブネットの関連付けが正常に行われました。次にルートを編集します。
[8]画面下部の①「ルート」を選択し、②「ルートを編集」をクリックします。
[9]ルートの編集画面が表示されます。以下のルート情報を追加します。
①送信先・・・「0.0.0.0/0」すべてのIPアドレスを対象します。
②ターゲット・・・「パブリックサブネットに配置されたNATゲートウェイ」を選択してください。
入力が完了したら、③「変更を保存」をクリックします。
[10]無事にルート設定が完了しました。
以上でプライベートサブネットに対するルートテーブルの作成を終了します。
4. 検証パターン
パブリックサブネットとプライベートサブネットの作成が完了しました。次は以下の接続テストを行います。
①クライアント端末からインターネット経由でパブリックサブネット内EC2へ接続テスト
②プライベートサブネット内EC2でインターネットへ接続テスト
③パブリックサブネット内のEC2からインターネットへ接続テスト
④パブリックサブネット内EC2からプライベートサブネット内EC2へプライベートIPを用いた接続テスト
⑤プライベートサブネット内EC2からパブリックサブネットEC2へプライベートIPを用いた接続テスト
⑥⑥パブリックサブネット内の公開サーバへクライアント端末からアクセステスト
以下それぞれの検証の全体図になります。
※接続テストを行うにはEC2インスタンスを作成しておく必要があります。今回は両サブネットにWindowsServer2022を構築しています。
※ネットワークACLのデフォルトの設定は、インバウンド、アウトバウンドすべての拒否されています。必要に応じて通信を許可する必要があります。本検証では以下のネットワークACLを割り当てていますが、セキュリティの観点から設定しておりサブネットの特性を変えるような変更ではありません。
・パブリックサブネットにはインバウンド、アウトバウンドですべてのトラフィックを許可しています。
・プライベートサブネットはインバウンドをパブリックサブネットからの通信のみを許可しています。アウトバウンドはすべてのトラフィックを許可しています。
4-1. 検証パターン①
「①クライアント端末からインターネット経由でパブリックサブネット内EC2インスタンスへ接続テスト」
目的:外部インターネットからパブリックサブネット内に配置されたEC2インスタンスへアクセスが可能なことを確認します。
通信プロトコル:RDP
接続経路としては、以下のようになります。
■注意事項
・パブリックサブネット内のインスタンスにElasticIPを割り当てておく必要があります。
・クライアント端末からパブリックサブネット内のインスタンスへ接続できるように以下画像の赤枠のインバウンドルールが設定されたセキュリティグループを割り当てを行う必要があります。
以下にセキュリティグループの作成方法とインスタンスへの割り当て方法を記載しております。必要に応じてご覧ください。
今回は例としてクライアント端末からRDP接続を許可するためのセキュリティグループを作成します。
[1]EC2の管理画面から、左ペインでネットワーク&セキュリティの「セキュリティグループ」を選択します。
[2]セキュリティグループの管理画面が表示されます。画面右上の「セキュリティグループを作成」を選択してください。
[3]セキュリティグループ作成画面が表示されます。以下のパラメータを入力します。
セキュリティグループ名:任意のもので構いません。わかりやすいものが良いです、今回は「RDPfromClinet」としています。
説明:任意のもので構いません。セキュリティグループの説明を記載しておきましょう。
VPC:割り当てるインスタンスが配置されているVPCを選択してください。
インバウンドルール
タイプ:RDP接続用なので、「RDP」を選択してください。
プロトコル、ポート範囲:必要なものを選択してください。今回はRDPを選択しているので、自動で選択されています。
ソース:接続元になるクライアント端末IPを指定します。「マイIP」を選択すると自動的に、操作している端末のIPアドレスプールが入力されます。
[4]以下パラメータも確認します。確認したら、画面右下の「セキュリティグループを作成」を選択します。
アウトバウンドルール
特に設定は必要ないので、デフォルトのままで問題ありません。
タグ- オプション
使用しないため、設定は不要です。
[5]無事に作成できました。しかしまだインスタンスへは割り当てされていません。インスタンスへ割り当てを行います。
[6]①セキュリティグループを割り当てたい①「インスタンス」を選択します。②「アクション」を選択し、③「セキュリティグループを変更」を選択します。
[7]セキュリティグループの割り当て画面が表示されます。
[8]①「セキュリティグループを編集」を選択し、先ほど作成した②「RDPfromClient」を選択します。
[9]「セキュリティグループ」を追加を選択します。
[10]①選択したセキュリティグループが追加されています。②「保存」を選択してください。
[11]選択したインスタンスにセキュリティグループが割り当てられていることが確認できます。
以上で、セキュリティグループの作成とインタンスへの割り当てを終了します。
4-1-1. 検証手順
クライアント端末からパブリックサブネット内のインスタンスへアクセスを行います。パブリックサブネットは「インターネットへ出ていくことができ、インターネットから入ることができるサブネット」なので、クライアント端末からインスタンスへアクセス可能なはずです。確認してみましょう。
[1]クライアント端末で①「スタート」を開きます。②検索バーで「リモートデスクトップ接続」と入力し、③リモートデスクトップ接続を開きます。
[2]リモートデスクトップ接続画面が表示されます。
[3]パブリックサブネット内のEC2へ接続を行うため、EC2のインスタンス管理画面で①「対象のインスタンス」を選択し、②「接続」をクリックします。
[4]赤枠の情報を使用します。
[5]先ほどのリモートデスクトップ接続の画面に戻ります。①に[手順4]の情報を入力し、②「接続」をクリックします。
[6]このリモート接続が安全であるか確認がされます。「接続」をクリックします。
[7]パスワードの入力画面が表示されます。①パスワードを入力し、②「OK」を選択します。
[8]接続することができました。
パブリックサブネット内のEC2へグローバルIP(パブリックIP)を用いて外部ネットワークから接続できることが確認できました。
4-2. 検証パターン②
「②プライベートサブネット内のEC2インスタンスでインターネットへの接続テスト」
目的:プライベートサブネット内のインスタンスがインターネットへ接続可能であるか確認します。
通信プロトコル:HTTPS
接続経路としては、以下のようになります。
4-2-1. 検証手順
プライベートサブネット内のEC2インスタンスからインターネットへ接続します。プライベートサブネットにはNATゲートウェイへ設定したルートテーブルを割り当てました。インターネットへ接続ができるようになっているはずです。確認してみましょう。
[1]プライベートサブネットのインスタンスへ接続します。
※今回はパブリックサブネットのインスタンスを踏み台にして、RDP接続しています。
[2]まずはブラウザ(Microsoftedge)を開き、webページを開くことができるか確認します。
[3]検索画面が表示されました。試しに「AWS」と検索してみます。
[4]検索結果の一覧が表示されました。
[5]一番上に表示されている「アマゾンウェブサービス(AWSクラウド)-ホーム」を開きます。
[6]AWSのウェブサイトが表示されました。インターネット上に公開されているwebサーバと通信が可能なことが確認できました。
以上で検証②を終了します。
ブラウザでのhttpsを用いた接続でプライベートサブネットのEC2インスタンスが外部ネットワークへ送信できることが確認できました。
4-3. 検証パターン③
「③パブリックサブネット内のEC2インスタンスからインターネットへ接続テスト」
目的:パブリックサブネット内に配置されたEC2インスタンスからインターネットへアクセスが可能なこと。
通信プロトコル:HTTPS
接続経路としては、以下のようになります。
4-3-1. 検証手順
パブリックサブネット内からのEC2インスタンスからインターネットへ接続します。パブリックサブネットはインターネットゲートウェイへ設定したルートテーブルを割り当てました。インターネットへ接続ができるようになっているはずです。確認してみましょう。
[1]パブリックサブネットのEC2インスタンスへ接続します。
[2]まずはブラウザ(Microsoftedge)を開き、webページを開くことができるか確認します。
[3]検索画面が表示されました。今回は試しに「AWS」と検索してみます。
[4]検索結果の一覧が表示されました。
[5]2番目に表示されている「アマゾンウェブサービス(AWSクラウド)-ホーム」を開きます。
[6]AWSのウェブサイトが表示されました。インターネット上に公開されているwebサーバと通信が可能なことが確認できました。
以上で検証③を終了します。
ブラウザでのhttpsを用いた接続でパブリックサブネットのEC2インスタンスが外部ネットワークへ送信できることが確認できました。
4-4. 検証パターン④
「④パブリックサブネット内EC2からプライベートサブネット内EC2へプライベートIPを用いた通信テスト」
目的:公開サーバのWebサーバから非公開サーバのDBサーバへアクセスする場合の通信を想定して、パブリックサブネット内のインスタンスからプライベートサブネット内のインスタンスへ通信可能なことを確認します。
通信プロトコル:RDP、ICMP
VPC内の通信はデフォルトで許可されています。
接続経路としては、以下のようになります。
※ICMPのpingを用いるには、インスタンスのWindowsファイアウォールの受信でICMPの許可をする必要があります。
※プライベートサブネットのインスタンスには、以下のセキュリティグループを追加しています。
4-4-1. 検証手順
パブリックサブネット内に配置されたインスタンスからプライベートサブネット内に配置されたインスタンスへ双方でプライベートIPを用いて接続を行います。インターネット介さないVPC内の通信になります。VPC内の通信は制限しておりませんので、通信可能なはずです。確認してみましょう。
インスタンス(パブリック)で操作を行います。
[1]はじめにICMPのpingを打ってみます。①「スタート」をクリックし、②検索バーで「cmd」と入力します。③「コマンドプロンプト」を選択して、開きます。
[2]cmdが開かれたら、インスタンス(プライベート)にpingを送ります。「ping 10.0.1.50」と入力して、Enterを押します。
[3]正常にpingが疎通されていることが確認できました。
[5]①「スタート」を開き、②検索バーで「リモートデスクトップ接続」を検索します。③「リモートデスクトップ接続」を選択します。
[6]①にインスタンスの情報(プライベートIP)を入力して、②「接続」を押します。
[7]パスワードの入力画面が表示されます。①「パスワード」を入力し、②「OK」を選択します。
[8]接続完了しました。プライベートIPを指定したRDP接続ができることが確認できました。
以上で検証を終了します。
インスタンス(パブリック)からインスタンス(プライベート)にプライベートIPを用いた接続が確認できました。
4-5. 検証パターン⑤
「⑤プライベートサブネット内EC2からパブリックサブネットEC2へプライベートIPを用いた接続テスト」
目的:非公開サーバのDBサーバから公開サーバのWebサーバへアクセスする場合を想定して、プライベートサブネット内のインスタンスからパブリックサブネット内のインスタンスへ通信可能なことを確認します。
接続プロトコル:RDP、ICMP
接続経路としては、以下のようになります。
※ICPMのpingを用いるには、インスタンスのWindowsファイアウォールの受信でICMPの許可をする必要があります。
※セキュリティグループの設定が必要になります。パブリック(パブリック)インバウンドルールで以下の通信を許可してください。
4-5-1. 検証手順
次にプライベートサブネット内に配置されたインスタンスからパブリックサブネット内に配置されたインスタンスへプライベートIPを用いて接続を行います。インターネット介さないVPC内の通信なので、通信可能なはずです確認してみましょう。
インスタンス(プライベート)で操作を行います。
[1]ICMPのpingを打ってみます。①「スタート」をクリックし、②検索バーで「cmd」と入力します。③「コマンドプロンプト」を選択して、開きます。
[2]cmdが開かれたら、インスタンス(パブリック)にpingを送ります。「ping 10.0.0.50」と入力して、Enterを押します。
[3]正常にpingが疎通されていることが確認できました。
[4]①「スタート」を開き、②検索バーで「リモートデスクトップ接続」を検索します。③「リモートデスクトップ接続」を選択します。
[5]①にパブリックインスタンスの情報(プライベートIP)を入力して、②「接続」を押します。
[6]パスワードの入力画面が表示されます。①「パスワード」を入力し、②「OK」を選択します。
[7]接続完了しました。プライベートIPを指定したRDP接続ができることが確認できました。
以上で検証を終了します。
インスタンス(プライベート)からインスタンス(パブリック)にプライベートIPを用いた接続が確認できました。
4-6. 検証パターン⑥
「⑥パブリックサブネット内の公開サーバへクライアント端末からアクセステスト」
目的:インターネット外部からパブリックサブネット内に配置された公開サーバ(webサーバ)へアクセスが可能なことを確認します。
通信プロトコル:HTTP
接続経路としては、以下のようになります。
※事前にパブリックサブネット内のインスタンスへIIS(Internet Information Service)をインストールしています。
※セキュリティグループの設定が必要になります。インスタンス(パブリック)のインバウンドルールで以下の通信を許可してください。
4-6-1. 検証手順
事前にインスタンス(パブリック)にIISサービスをインストールしています。インスタンス(パブリック)でIISを構築して、webページを公開しています。クライアント端末からネットワーク経由でwebページが閲覧可能か確認してみます。
クライアント端末から操作します。
[1]Microsoftedgeから接続を行います。Microsoftedgeをクリックしてください。
[2]Microsoftedge画面上部の検索バーで「http://インスタンスのパブリックIP」を入力します。
[3]IISのデフォルトサイトが表示されました。
クライアント端末から公開サーバのwebページを開けることが確認できました。
以上で検証を終了します。
5. まとめ
今回はAWSのパブリックサブネット、プライベートサブネットに関する説明、各サブネットの構築手順、それぞれのサブネットの特性を用いた検証を行いました。
AWSにおけるパブリックサブネット、プライベートサブネットとはどういったものなのか、どうやって構築したらよいか?webサーバのような公開サーバはどんなサブネットに配置すればよいのか、DBサーバなど非公開サーバはどんなサブネットに配置すればよいか?こういった疑問の解決の手助けになりましたでしょうか?
またそれぞれのサブネットの特性を対して、パブリックサブネットへの外部ネットワークからのアクセステスト、各サブネットからインターネットへのアクセステスト、サブネット間でのアクセステスト等も行いました。各サブネットでどういった通信が可能なのか、ご理解いただけましたでしょうか?
本記事をお読みいただた皆様の少しでもお役に立てていたらうれしく思います。
長くなってしまいましたが、最後までご覧いただきありがとうございました!