■ 1.VPCを作成する。
Amazon VPCを使用すると、論理的に隔離されている定義済みの仮想ネットワーク内でAWSリソース(EC2インスタンスなど)を起動することができます。
IPアドレスの範囲の変更、サブネットの作成、ルートテーブル、ネットワークゲートウェイ、セキュリティグループの設定によりVPCを設定できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、AWSのスケーラブルなインフラストラクチャを使用できるというメリットがあります。
以下の図はVPCの例を示しています。VPCにはリージョンの各AZに1つのサブネット、各サブネットにEC2インスタンス、VPC内のリソースとインターネットとの通信を可能にするインターネットゲートウェイがあります。
まずは、赤枠のVPCを作成します。
-4.png?width=548&height=416&name=GetImage%20(1)-4.png)
①AWSマネジメントコンソール上部の検索バーでVPCを検索します。
-4.png?width=960&height=180&name=GetImage%20(2)-4.png)
②VPCの作成をクリックします。
-4.png?width=1058&height=265&name=GetImage%20(3)-4.png)
③[VPCの作成]ページで、以下のように設定します
・[作成するリソース]でどちらかを選択
「今回はVPCのみ」 を選択します
※VPCのみ→VPCだけ作成
VPCなど→ネットワーク構成がまとめて作成
-4.png?width=821&height=520&name=GetImage%20(4)-4.png)
④続いて、以下の諸々の設定を入力
・[名前タグ-オプション]に名前を入力(名前は自分で設定)
-3.png?width=821&height=520&name=GetImage%20(5)-3.png)
・[IPv4 CIDRブロック]で「IPv4 CIDRブロックの手動入力」を選択
※IPAM:AWSでIPアドレス空間(IPv4,Ipv6)を一元管理するサービス
「IPAM割り当てのIPv4 CIDRブロック」を選択するとIPAMにプロビジョニングされたCIDRからCIDRが割り当てられます。
-3.png?width=821&height=520&name=GetImage%20(6)-3.png)
・[IPv4 CIDR]に、VPCのネットワーク範囲を設定
※すでに他のVPCやVPN、オンプレミスネットワークで使用しているアドレスとは重複しないように注意する。
※CIDR…従来のクラスベースのIPアドレス体系を拡張して、より柔軟で効率的なIPアドレスの割り当てを実現
※現在薄く書かれている「10.0.0.0/24」はプライベートサブネットを表す。
プライベートアドレス空間には以下のIPアドレスが推奨される
・10.0.0.0 – 10.255.255.255 (10/8 プレフィックス)
・172.16.0.0 – 172.31.255.255 (172.16/12 プレフィックス)
・192.168.0.0 – 192.168.255.255 (192.168/16 プレフィックス)

・[IPv6 CIDRブロック]で「IPv6 CIDRブロックなし」を選択

・[タグ]で(必要があれば)タグの追加
※タグ:AWSリソースにつける「キー=バリュー形式のラベル」
タグをつけることで管理しやすく・分析しやすく・安全に運用できる。
※キーバリュー:データを「キー(key)」と「バリュー(value)」のペアで管理する形式


⑤VPCを作成をクリックします。
以上でVPCは作成完了です。
続いてパブリックサブネットを作成します。 主に、インターネットと通信させるためです。
■ 2.パブリックサブネットを作成する。
サブネットはVPC内のIPアドレスの範囲です。1つの大きなネットワークを複数の小さなネットワークに分けることを指します。
特定のサブネットにはEC2インスタンスなどのAWSリソースを作成できます。インターネットに接続する必要があるリソースには、パブリックサブネットを使用し、インターネットに接続しないリソースには、プライベートサブネットを使用します。
サブネットは下図の部分です。

● 2.1.パブリックサブネットを作成する。
①左側のナビゲーションペインの[仮想プライベートクラウド]で、[サブネット]をクリックします。

②サブネットを作成をクリックします。

③[サブネット作成]ページで、以下の設定をします。
・[VPC ID]で、ドロップダウンメニューから[1で作成したVPC名]を選択

・[サブネット名]に名前を入力(名前は自分で設定)

・[アベイラビリティゾーン]でAZを選択
冗長性を考慮して複数のAZにまたがるサブネットを作るとベター。どのAZを選択してもOK。
※アベイラビリティゾーン(AZ):サブネットを配置する物理的なゾーン

・[IPv4 VPC CIDR ブロック]にサブネットのVPCのIPv4 CIDRブロックを選択。
※サブネットの IPv4 アドレスブロックを CIDR 形式 (10.0.0.0/24 など) で指定します。IPv4 ブロックサイズは /16 ネットマスクと /28 ネットマスクの間にする必要があり、VPC の IPv4 CIDR ブロック以下である必要があります。

・[IPv4 サブネット CIDR ブロック]にサブネットに割り当てるIPアドレスの範囲を入力
※他のサブネットと被らないように設定

・[タグ-オプション]でタグを追加する。
※必要な人だけ
※タグ:リソース(この場合はサブネット)に名前やメタデータをつけるための仕組み

タグを追加する際はキーと値を設定する。

④サブネット作成をクリックします。

● 2.2.サブネットの設定を編集する。
①[作成したサブネット名]をクリックします。
②[アクション]メニューで、[サブネットの設定を編集]を選択します。
③[サブネットの設定を編集]ページで次の操作を行います。

・[IPアドレスの自動割り当て設定]で、[Enable auto-assign public IPv4 address]をクリック
→パブリックIPv4アドレスの自動割り当てを有効にしている。
→この操作をすることで、インスタンスに自動的にパブリックIPアドレスが割り当てられる。
※有効にするとインスタンスが外部からアクセス可能になるため、セキュリティに注意。Webサーバなどは有効化が必須。

④保存をクリックします。

※パブリックサブネットが形式上は作成されましたが、まだパブリックサブネットではありません。
パブリックサブネットにはインターネットゲートウェイが必要です。
■ 3.インターネットゲートウェイを作成する。
インターネットゲートウェイとは、AWSのVPC(仮想プライベートクラウド)内のリソースがインターネットと通信できるようにするためのコンポーネントです。これにより、VPC内のインスタンス(EC2など)が外部のインターネットと接続できるようになります。冗長性と高い可用性を備えており、水平スケーリングが可能です。
下図の部分です。

● 3.1.インターネットゲートウェイを作成する。
①左側のナビゲーションペインの[仮想プライベートクラウド]で、[インターネットゲートウェイ]をクリックします。

②インターネットゲートウェイの作成をクリックします。

③[インターネットゲートウェイの作成]ページで、以下の操作を行います。
・[名前タグ]に名前を入力(名前は自分で設定)
④インターネットゲートウェイの作成をクリックします。

● 3.2.インターネットゲートウェイをVPCにアタッチ
①[アクション]メニューで[VPCにアタッチ]を選択します。

②[使用可能なVPC]検索ボックスで[1で作成したVPC名]をクリックします。
③インターネットゲートウェイのアタッチをクリックします。

※インターネットゲートウェイを作成してVPCにアタッチしましたが、インターネットゲートウェイを作成しただけで、まだインターネットへの接続はできません。
→パブリックサブネットのルートテーブルにデフォルトルート(0.0.0.0/0)を追加する必要があります。
■ 4.ルートテーブルを作成し、デフォルトルートを追加してパブリックサブネットを関連付ける 。
ルートテーブルには、サブネットまたはゲートウェイからのネットワークトラフィックの経路を判断する、ルートと呼ばれる一連のルールが含まれます。
ルートテーブルがサブネットのルーティングを制御するため、VPCの各サブネットはルートテーブルに関連付けられている必要があります。
インターネットゲートウェイを使用するには、インターネットに送信されているトラフィックをインターネット経由で送信するルートをサブネットのルートテーブルに追加する必要があります。ルートの範囲として、ルートテーブルで明示的に既知ではないすべての送信先(IPv4・0.0.0.0/0、IPv6・::/0)を指定するか、特定のIPアドレスの範囲を指定できます。サブネットが、インターネットゲートウェイへのルートを持つルートテーブルと関連付けられている場合、パブリックサブネットといいます。
※現在VPCに関連付けれているデフォルトのルートテーブルが1つあります(3.2)。これにより、トラフィックはローカルにルーティングされています。
ここからはパブリックトラフィックをインターネットゲートウェイにルーティングするための別のテーブルを作成します。このテーブルをゲートウェイルートテーブルといいます。このテーブルを作成することにより、VPCに入るトラフィックのルーティングパスを細かく制御できます。
下図の部分を作成します。

● 4.1.ルートテーブルを作成します。
①左側のナビゲーションペインの[仮想プライベートクラウド]で、[ルートテーブル]をクリックします。

②ルートテーブルを作成をクリックします。

③[ルートテーブルの作成]ページで、以下のように操作します。
・[名前-オプション]にルートテーブルの名前を入力(自分で設定)

・[VPC]で、ドロップダウンメニューから[1で作成したVPC名]を選択。

・[タグ]で、必要に応じてタグを追加する。

④ルートテーブルを作成をクリックします。

※ルートテーブルには10.0.0.0/16ネットワーク内のトラフィックがネットワーク内を流れることを許可する1つのルートがありますが、このルートはトラフィックをネットワークの外側にルーティングしません。
次に、パブリックトラフィックを有効にする新しいルートを追加します。
● 4.2. ルートを編集・追加する。
①作成したルートテーブルを選択し、ページ下部の[ルート]タブをクリックして、ルートを編集をクリックします。

②ルートを追加をクリックします。

③[ルートの編集]ページで、以下のように操作します。
・[送信先]に0.0.0.0/0と入力
→これは全IPアドレスを表す特別な送信アドレス
・[ターゲット]でドロップダウンから[インターネットゲートウェイ]を選択し、次に3で作成したインターネットゲートウェイを選択
※これを設定することで、外部アクセスが可能になる

④変更の保存をクリック
⑤[サブネットの関連付け]タブをクリック
⑥[明示的なサブネットの関連付け]セクションでサブネットの関連付けを編集をクリック

⑦[2で作成したパブリックサブネット名]をクリック
⑧関連付けを保存をクリック

※この操作でサブネットはインターネットゲートウェイ経由でインターネットに接続されているためパブリックサブネットになりました。関連付けをしなければ作成したルートテーブルは誰にも使われません。
■ 5.ウェブサーバのVPCセキュリティグループを作成。
セキュリティグループとはEC2インスタンスの仮想ファイアウォールとして機能し、インバウンド・アウトバウンドトラフィックを制御します。VPCを作成すると、デフォルトのセキュリティグループが使用されます。
VPCごとに追加のセキュリティグループを作成し、それぞれに独自のインバウンドルールとアウトバウンドルールを設定することにより、トラフィックを制御することができます。VPC内で作成するインスタンスには最大5つのセキュリティグループを割り当てることができます。
下図のようにインスタンスのインバウンド・アウトバウンドトラフィックを制御します。

まず、セキュリティグループを追加して、ユーザがHTTP経由でウェブサーバーにアクセスできるようにします。
①左側のナビゲーションペインの[セキュリティ]で[セキュリティグループ]をクリック

②[セキュリティグループ作成]ページで以下の操作をします。

・[セキュリティグループ名]と[説明]にセキュリティグループの名前とその説明を入力
・[VPC]でドロップダウンメニューから[1で作成したVPC名]を選択
③[インバウンドのルール][アウトバウンドのルール]セクション(任意)
・ルールごとにルールを追加し、プロトコル、ポート、送信元を指定
・タイプ:(インバウンドを許可する)プロトコルのタイプを選択
Ex)Webサイトの場合:HTTPやHTTPS
・リソースタイプ:
- Anywhere-IPv4:0.0.0.0./0 IPv4 CIDRブロック
- Anywhere-IPv6:::/0 IPv6 CIDRブロック
- マイIP-ローカルコンピュータのパブリックIPv4アドレス

④「セキュリティグループを作成」をクリック
以上の操作でVPCの構築は完成です。



