もくじ
まえがき
こんにちは。あつしです。
基本的なことなのですが、EC2インスタンスがインターネットに繋がるまでの流れを図を用いて解説したいと思います。(2回に分けて解説します)
AWSの中には、「ネットワークインターフェース」や「ルートテーブル」といった様々なコンポーネントが存在します。
複数のコンポーネントが組み合わさって、初めてEC2インスタンスがインターネットに繋がります。
本記事を読んでいただいて、EC2がインターネットに接続するまでのAWSコンポーネントの繋がりを、イメージしていただけたらと思います。
※注意事項※
AWSはサービスを頻繁に更新しています。
AWSサービスの内容やAWSコンソールの画面などは、執筆時点(2021/8/31現在)のものとなっております。
場合によっては、読者の方々と見ている画面の見た目が違う、というようなこともあるかもしれませんので、ご注意いただきますようお願いいたします。
使用するAWSサービスとコンポーネント
本記事で使用するAWSサービスとコンポーネントを列挙します。
VPC関連
VPC関連で使用する主なコンポーネントは、以下の通りです。
- VPC
- サブネット
- ルートテーブル
- インターネットゲートウェイ
- Elastic IP
- セキュリティグループ
EC2関連
EC2関連で使用するコンポーネントは以下の通りです。
- EC2インスタンス
- ネットワークインターフェイス
構成図(完成形)
本件で目指す構成図を下記に示します。
コンポーネントの依存関係・構築の流れ
コンポーネントの依存関係
コンポーネントを作成するときに、指定が必要となるコンポーネントを下記の表に記載します。
※サブネットを作成するにはVPCの指定が必要、など。
コンポーネント | 依存するコンポーネント |
VPC | ー |
サブネット | VPC |
インターネットゲートウェイ | VPC |
ルートテーブル |
VPC、サブネット、インターネットゲートウェイ(※1) |
セキュリティグループ | VPC |
ネットワークインターフェイス | サブネット、セキュリティグループ |
Elastic IP | ネットワークインターフェイス(※2) |
EC2インスタンス | VPC、サブネット、ネットワークインターフェイス、セキュリティグループ |
(※1)本記事ではデフォルトルートにインターネットゲートウェイを指定するので書いています。
(※2)本記事ではElastic IPをネットワークインターフェイスに関連付けますが、EC2インスタンスにも関連付けることができます。
大まかな流れ
上の図で示した通り、先に作成しておくべきコンポーネントがあったりするので、構築していく順番が大切になります。作成する順番は大まかに以下の流れになります。
- VPC
- サブネット(パブリックサブネット)
- インターネットゲートウェイ
- ルートテーブル
- セキュリティグループ
- ネットワークインターフェイス
- Elastic IP(EIP)
- EC2インスタンス
構築手順(ルートテーブルの作成まで)
それでは画像付きで手順を書いていきます。
VPCの作成
- AWSコンソールにログインして、検索ボックスに「vpc」と入力して、[VPC]をクリックします。
- 左ペインから[VPC]をクリックします。
- [VPCの作成]ボタンをクリックします。
- VPCの作成画面で、[名前タグ]と[IPv4 CIDRブロック]に値を入力して、[VPCを作成]ボタンをクリックします。
※VPCの名前はここでは「vpc-Atsushi」としています。
※VPCはAWSで自分が使用するネットワーク全体です。なるべく多くのホストが使用できるようにホスト部を広くするのがベストプラクティスです。最大は「/16」です。 - 「~正常に作成されました」と表示されば成功です。
構成図でいうと、以下のようにVPCだけができた状態です。
※VPCの公式ドキュメントはこちらです。
サブネットの作成
サブネットはVPCの中に作成するので、サブネット作成はVPCを作った後になります。
- VPCサービスの画面の左ペインから、[サブネット]をクリックします。
- [サブネットを作成]ボタンをクリックします。
- [VPC ID]は先ほど作成したVPCを選びます。
[サブネット名]を任意で決めます。(ここでは「public-subnet-1a-Atsushi」としています)
[アベイラビリティゾーン]を選びます。(ここでは「ap-northeast-1a」を選んでいます)
[IPv4 CIDRブロック]をVPCのネットワークの範囲の中で指定します。(ここでは「10.0.1.0/24」としています)
必要に応じてタグを設定して、[サブネットの作成]をクリックします。 - 「サブネットが正常に作成されました」と表示されれば完了です。
現在の状態の構成図では以下になります。
※サブネットの公式ドキュメントはこちらです。
インターネットゲートウェイの作成とVPCへのアタッチ
インターネットゲートウェイはVPCへアタッチします。ですので、VPC作成後に行うことになります。
- VPCサービスの画面から、左ペインで[インターネットゲートウェイ]をクリックします。
- [インターネットゲートウェイの作成]ボタンをクリックします。
- [名前タグ]を入力します。(ここでは「igw-Atsushi」としています)
入力を完了させて、[インターネットゲートウェイの作成]ボタンをクリックします。 - 「インターネットゲートウェイが作成されました」と表示されれば完了です。
- 続いてインターネットゲートウェイをVPCにアタッチします。
[アクション]のプルダウンから[VPCにアタッチ]をクリックします。 - [使用可能なVPC]に、先ほど作成したVPC(ここでは「vpc-Atsushi」)を選択し、[インターネットゲートウェイのアタッチ]ボタンをクリックします。
- 「インターネットゲートウェイが~にアタッチされました」と表示されれば完了です。
ここまでの状態を構成図にすると以下です。
※インターネットゲートウェイの公式ドキュメントはこちらです。
ルートテーブルの作成
ルートテーブルはVPCの中に作成します。そしてサブネットに関連付けます。
ここでは「デフォルトゲートウェイはインターネットゲートウェイである」というルートを定義します。
- VPCのサービス画面で左ペインから、[ルートテーブル]をクリックします。
- [ルートテーブルの作成]ボタンをクリックします。
- [名前]に任意の名前を入力します。(ここでは「route-internet-Atsushi」としています)
[VPC]で作成したVPCを選びます。(ここでは「vpc-Atsushi」です)
[ルートテーブルを作成]ボタンをクリックします。 - 「ルートテーブル~は正常に作成されました」と表示されたら、[ルートを編集]ボタンをクリックします。
- [ルートの追加]ボタンをクリックします。
- 繰り返しですが、VPCのデフォルトゲートウェイをインターネットゲートウェイに指定します。
手順は[送信先]に「0.0.0.0/0」を入力し、[ターゲット]に先ほど作成したインターネットゲートウェイを指定します。
その後、[変更を保存]ボタンをクリックします。 - 「ルートを正常に更新しました」と表示されれば完了です。
- ルートテーブルをサブネットに関連付けます。
[サブネットの関連付け]をクリックします。 - [サブネットの関連付けを編集]をクリックします。
- 関連付けるサブネットを選択します。ここでは先ほど作ったサブネット(名前は「public-subnet-1a-Atsushi」)に関連付けるので、チェックを入れて[関連付けを保存]ボタンをクリックします。
- 「~のサブネットの関連付けが正常に更新されました」と表示されれば完了です。
ここまでの状態を構成図にすると下記です。
※ルートテーブルの公式ドキュメントはこちらです。
次回は
次回はセキュリティグループとネットワークインターフェイスとElastic IPの作成をやっていきます。
そしてEC2インスタンスを作成し、実際にSSH接続を行ってみます。
どうぞよろしくお願いします。
コメント