今回は、AWSにおいて、アカウントを作ったあとに必須なVPCの作成手順を記載します。
本記事の目標はVPCを作成し、VPC内のサブネット及びVPCからインターネットに接続するための、Internet Gatewayの設定までを手順にしています。
VPC(Virtual Private Cloud)
VPCはAWSにおけるパーソナルな空間を定義するものです。
ITインフラで例えると1つのVPCは1データセンターだと考えるとわかりやすいです。
また、VPC内では任意のサーバを稼働させたり、ある程度自由にネットワークを構築することができます。
前提条件
VPCを作成するためには、AWSのアカウントが必要になります。
VPCの構築
AWS Management Consoleへログインします。

Management Consoleの検索欄より、[VPC]を検索し、[VPC]を選択します。

[VPCダッシュボード]より、[VPC]を選択します。

[VPC]より、[VPCを作成]を選択します。

[VPCを作成]より、以下の設定をします。
- 作成するリソース : VPCのみ
- 名前タグ : 任意のVPC名
- IPv4 CIDRブロック : IPv4 CIDRの手動入力
- IPv4 CIDR : 任意のCIDR (VPC内で使用するIPアドレスのネットワークアドレス)
- IPv6 CIDR ブロック : IPv6 CIDRブロックなし(任意のIPv6 CIDRを選択してください)
- テナンシー : デフォルト

タグについては、デフォルトで作成されていますが、必要に応じて任意のタグを設定してください。
以上の設定が完了したら、[VPCを作成]を選択します。

[VPCが正常に作成されました]のメッセージが表示されたらVPCの作成が完了です。
サブネットの作成
サブネットはVPC内で使用するIPアドレスのレンジとなります。
データセンターで言うところのネットワークアドレスの設計部分になります。
VPCのアドレス設計はオンプレミスと同様ですが、あとからサブネットを変更するのは大変なので、拡張される前提でゆとりを持ったアドレス設計を行いましょう。
また、BGPなどでアドレスをオンプレ側に伝播する必要がある場合などはオンプレ側とアドレスが重複しないように気をつけましょう。

[VIRTUAL PROVATE CLOUD]より、[サブネット]を選択します。
[サブネット]より、[サブネットを作成]を選択します。

[サブネットを作成]より、[VPC]-[VPC ID]より、サブネットを作成するVPCを選択します。ここで選択するVPCは先程作成したVPCを選択します。

[サブネットの設定]より、以下の設定を行います。
- サブネット名 : 任意のサブネット名
- アベイラビリティーゾーン : 任意のAZ (今回は、ap-northeast-1dを選択しています。)

[IPv4 CIDRブロック]より、VPC内で使用するサブネットを選択します。
サブネットのCIDRはVPCのCIDRを超えて設定ができないため、VPCのCIDR以下に設定します。
例) VPC CIDRが/24の場合はサブネットは/24以下でなければならない。
以上の設定が完了したら、[サブネットを作成]を選択します。

[1個のサブネットが正常に作成されました。]と表示され、作成したサブネットが表示されていることを確認します。
インターネットゲートウェイ作成
インターネットゲートウェイは、VPCからインターネットへ接続するポイントとなります。
VPCにIGWを設定することで、IGWを経由してインスタンス等がインターネットへ通信ができるようになります。
逆に、外部へ直接公開したくない場合は、IGW以外にNat ゲートウェイ等を使用します。
インターネットゲートウェイはEC2のインスタンスとStatic NATを提供して、Elastic IPとインスタンスなどが持っているプライベートIPを直接変換します。

[VIRTUAL PRIVATE CLOUD]-[インターネットゲートウェイ]より、[インターネットゲートウェイ]を選択します。

[インターネットゲートウェイの設定]より、以下の設定を行います。
- 名前タグ : 任意のIGW名
- タグ : 任意のタグ
以上の設定が完了したら、[インターネットゲートウェイの作成]を選択します。

[次のインターネットゲートウェイが作成されました]と表示されたことを確認します。

[VIRTUAL PRIVATE CLOUD]-[サブネット]を選択し、前項で作成したサブネットを選択します。
該当のサブネットを選択後、[ルートテーブル]を選択します。
このルートテーブルがネットワーク機器でいうところのルーティングテーブルとなります。
デフォルトだとローカルのネットワークのみとなっており、ほかのネットワークへ通信ができない状態になっています。
このサブネットのルートテーブルにIGWを設定することで、外部と通信ができるようになります。

[VIRTUAL PRIVATE CLOUD]-[インターネットゲートウェイ]-[作成したIGW]を選択します。

[アクション]-[VPCにデタッチ]を選択します。

[VPCにアタッチ]-[使用可能なVPC]より、IGWをアタッチするVPCを選択します。

アタッチするVPCが選択されていることを確認し、[インターネットゲートウェイのアタッチ]を選択します。

インターネットゲートウェイがVPCにアタッチされたメッセージが表示され、選択したIGWの状態が[Attached]となっていることを確認します。

[VIRTUAL PRIVATE CLOUD]-[ルートテーブル]より、作成したVPCを選択します。

VPCにIGWをアタッチしただけだとまだルーティングはできていません。
VPCにアタッチ後ルーティングの設定を行うことで、インターネットへのルーティングテーブルが設定され、インスタンスがインターネットへ通信できるようになります。
IGWをアタッチしたVPCの[ルート]タブより、[ルートを編集]を選択します。

[ルートを編集]より、[ルートを追加]を選択します。

追加したルートに以下の設定を行います。
- 送信先 : 0.0.0.0/0
- ターゲット : インターネットゲートウェイ

ターゲットにインターネットゲートウェイを選択すると、自動的に[igw-]の接頭辞が追加されるため、作成したインターネットゲートウェイを選択します。

ルートテーブルの設定が完了したら、[変更を保存]を選択します。

[rtbのルートを正常に更新しました]のメッセージが表示され、[ルート]タブに設定したルートテーブルが反映され、ステータスが[アクティブ]になっていることを確認します。
以上でIGWの設定とルートテーブルの設定が完了です。
今回は以上となります。
まとめ
今回は、AWS上にVPCを作成して、EC2のインスタンスがインターネットに接続できる前段階まで設定をしました。
VPCはデータセンターの内部でそこにネットワークを構築、ルーティングを設定することで、サーバの通信環境を整えることができました。
次回以降では実際に作成したVPC上にインスタンスを構築し、VPC内のルーティングが正しく行われているか、インターネットに接続できるかなどを手順にしていきたいと思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント