第4回 パブリックサブネット構築(2/2)
前回の続きです。作成したパブリックサブネットに、インターネットへ接続するための設定を行っていきたいと思います。
今回構築する箇所は下図の通りとなります。
項目も多いため、図中の番号順に進めていきたいと思います。
- 1a. インターネットゲートウェイの作成
- 1b. VPCと関連付け
- 2a. ルートテーブルの作成
- 2b. パブリックサブネットと関連付け
- 2c. デフォルトルートの設定
1a. インターネットゲートウェイの作成
まずは、インターネットゲートウェイの作成を行っていきます。
(サブネットをインターネットゲートウェイへ通信できるようにすることで、そのサブネット上のインスタンスはインターネットへ接続できるようになります)
現実世界に例えると、NATゲートウェイを買ってくるイメージかと思います。
「VPCダッシュボード」の左ペイン、から「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」を選択します。
必須入力項目はないので、デフォルトのまま作成を行います。
なお、「名前タグ」は、複数ゲートウェイを持たせる際に、識別用として用いるようです。今回は使用しません。
1b. VPCと関連付け
作成したインターネットゲートウェイとVPCの関連付け作業を行います。
現実世界に例えると、買ってきたNATゲートウェイとVPC(スイッチ)を物理的にケーブルで接続するイメージかと思います。
作成したインターネットゲートウェイを選択し(チェックボックスにチェック)、「アクション」、「VPCにアタッチ」の順に選択します。
その後、ドロップダウンリストから、前回作成したVPCを選んで「アタッチ」を選択します。
まだインターネットには接続できないので、続いて実際にルータに設定を入れていきます。
2a. ルートテーブルの作成
ルートテーブルは、x.x.x.xからきた通信はy.y.y.yに送信しますよ、というネットワークの設定です。
今回は、パブリックサブネットから、インターネットゲートウェイへ通信を行いますので、ルートテーブルの現状を確認し、必要な設定を実施していきます。
現実世界のルーティングテーブルと同様かと思います。
ルートテーブルの確認
VPCを作成した際、デフォルトでルートテーブルが割り当てられます。
そのルートテーブルが、インターネットゲートウェイ向け通信のルートを持っているかを確認していきます。
まず、作成したVPCに、どのルートテーブルが割り当てられたかを確認するために、「VPCダッシュボード」の左ペインから「ルートテーブル」を選択します。
画面上で「VPC ID」という項目を確認できるかと思います。
この「VPC ID」を知ることで、ルートテーブルに割り当てられているVPCを特定します。
続いて、この「VPC ID」をもとに対象のルートテーブルにチェックを入れ、「ルート」タブを選択することでルートテーブルの情報を確認します。
初期状態なので、送信先「10.0.0.0/16」を「local」に送信する設定しかないかと思います。
そのため、その他の通信はすべて破棄されてしまいます。
例えば、Googleに接続しようとした場合は、通信先「172.217.26.3」となるのですが、該当のアドレスはルートテーブルに登録されていないため、通信は破棄されてしまいます。
そこで、内部通信以外(10.0.0.0/16)のすべての通信(0.0.0.0/0)を、インターネットゲートウェイに送信するルートテーブルに追加をしてあげます。(俗にいうデフォルトゲートウェイの設定)
ルートテーブルの作成
前項で、デフォルトで作成されるルートテーブルには、インターネットゲートウェイ向けの通信が登録されていないことがわかりました。
そこで「ルートテーブルの作成」を選択し、新規にルートテーブルを作成していきます。
「名前タグ」の入力(任意)と「VPC」を選択します。(VPCは前回作成したもの)
また、既存のルートテーブルを削除すると内部通信ができなくなるので、理由がなければ残置推奨です。
2b. パブリックサブネットとの関連付け
前項までで、ルートテーブルの枠だけを作成しました。
作成したルートテーブルはどこにも割り当てられていないため、パブリックサブネットに割り当ててあげます。
その後に、前述のデフォルトゲートウェイをルートテーブルに記載してあげます。
まずは、ルートテーブルをパブリックサブネットへ割り当てます。
先ほど作成したルートテーブルにチェックを入れ、「サブネットの関連付け」タブより設定を行います。
設定画面からサブネットにチェックを入れ、「保存」を選択します。
2c.デフォルトゲートウェイの設定
最後に、作成したルートテーブルに、デフォルトゲートウェイを設定して完了となります。
「ルートテーブル」より、作成したルートテーブルにチェックを入れ、「ルートの編集」を行います。
すべての通信(0.0.0.0/0)を、とりあえずインターネットゲートウェイに飛ばしてあげる設定をします。
サブネットに対して、ルートテーブルが設定されました。
長く、複雑になってしまいましたので以下補足です。
(余計ややこしくなるかも知れませんのでお気をつけください)
補足 実機で考える
![Untitled Diagram-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/8de9ed56-329c-b688-df63-196ae8571539.png)誤っている点がございましたら、コメントをいただけると幸いです。
参考文献
Amazon Web Services 基礎からのネットワーク&サーバー構築
後書き
2020年6月14日に記載内容を修正しております。