AWS構築手順VPC構築

本章では、AWS上に仮想プライベートネットワークを構築していきます。イメージとしては、本章で環境の箱を用意し、次章以降ではその箱の中に具体的なサービスを設置していく流れとなります。

VPCの作成

  1. VPCダッシュボード→VPCを選択します。リージョンは東京を選択してください。 VPCキャプチャ1
  2. VPCの作成をクリックし、以下の内容で作成します。 なお、タグ名は今後「アプリケーション名-環境-AWSサービス名」のルールで記載していきます(環境:本番はproductionの略でproとする)。 VPCキャプチャ2
    名前タグ ec-trip-pro-vpc
    IPv4 CIDRブロック 10.0.0.0/16
    IPv6 CIDRブロック ブロックなしを選択
    テナンシー デフォルト
  3. VPCが作成されたことを確認します。 VPCキャプチャ3

サブネットの作成

続けて、作成したVPCの中にサブネットを作成していきます。サブネットは3種類(public, webapp, db)、それぞれをアベイラビリティゾーンA/Bに配置するので、計6個作成します。

AWS料金との兼ね合いで、まずはWebAppサーバーを1台で稼働する場合などは、利用されないサブネットも生じますが、将来的にスケールアップしやすいよう、予めサブネットを6個作成することをおすすめします。
  1. サブネットを選択し、サブネットの作成をクリックします。 サブネットキャプチャ1
  2. 以下のパラメータで、まずはpublicのアベイラビリティゾーンA用のサブネットを作成します。 サブネットキャプチャ2
    名前タグ ec-trip-pro-subnet-public-az-a
    VPC 前手順で作成したVPCを選択
    ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1a
    CIDRブロック 10.0.1.0/24
  3. 同様に、他5つのサブネットも以下のパラメータで作成していきます。
    Public アベイラビリティゾーンB
    名前タグ ec-trip-pro-subnet-public-az-b
    VPC ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1c
    CIDRブロック 10.0.2.0/24
    WebApp アベイラビリティゾーンA
    名前タグ ec-trip-pro-subnet-webapp-az-a
    VPC ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1a
    CIDRブロック 10.0.10.0/24
    WebApp アベイラビリティゾーンB
    名前タグ ec-trip-pro-subnet-webapp-az-b
    VPC ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1c
    CIDRブロック 10.0.20.0/24
    DB アベイラビリティゾーンA
    名前タグ ec-trip-pro-subnet-db-az-a
    VPC ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1a
    CIDRブロック 10.0.100.0/24
    DB アベイラビリティゾーンB
    名前タグ ec-trip-pro-subnet-db-az-b
    VPC ec-trip-pro-vpc
    アベイラビリティゾーン ap-northeast-1c
    CIDRブロック 10.0.200.0/24
  4. 以下の通り、6個のサブネットが作成されます。 サブネットキャプチャ3

インターネットゲートウェイの作成

続けて、インターネットゲートウェイを作成します。

  1. インターネットゲートウェイを選択し、インターネットゲートウェイの作成をクリックします。 インターネットゲートウェイキャプチャ1
  2. 以下のパラメータで作成します。 インターネットゲートウェイキャプチャ2
    名前タグ ec-trip-pro-igw
  3. 作成したゲートウェイは、まだどのVPCにも割り当てていないため、状態はdetachedになっています。VPCにアタッチをクリックして、アタッチを行います。 インターネットゲートウェイキャプチャ3
  4. VPCを選択します。 インターネットゲートウェイキャプチャ4
  5. アタッチをすると、状態がattachedになります。 インターネットゲートウェイキャプチャ5

NATゲートウェイの作成

セキュリティを高めるためにNATを利用する場合、NATゲートウェイを作成します。

NATゲートウェイは無料枠対象外で、月に50ドル程度かかります。費用との兼ね合いで利用を判断ください。本手順では、NATゲートウェイを利用しない場合の手順も記載します。
NATゲートウェイを利用することで、WebAppサーバーにパブリックIPを付与すること無く、サーバーからインターネットへのアクセスが可能となります(インターネットからサーバーに直に接続することを不可とします)。
なお、NATゲートウェイを利用しない場合、WebAppサーバーにパブリックIPを付与しますが、セキュリティポリシーのインバウンドIPアドレス(ファイアーウォール)にてIPアドレス制限を行います。

  1. NATゲートウェイを選択し、NATゲートウェイの作成をクリックします。 NATゲートウェイキャプチャ1
  2. サブネットにはec-trip-pro-subnet-public-az-aを指定します。NAT用のElasticIPが未取得の場合は新しいEIPの作成をクリックして作成します。 NATゲートウェイキャプチャ2 NATゲートウェイの作成をクリックして完了します。

ルートテーブルの作成

次に、VPCとインターネットとをルーティングするためのルートテーブルを設定します。

  1. ルートテーブルを選択し、ルートテーブルの作成をクリックします。 ルートテーブルキャプチャ1
  2. 以下の内容で、インターネットゲートウェイ用のルートテーブルを作成します。 ルートテーブルキャプチャ2
    名前タグ ec-trip-pro-rtb-igw
    VPC ec-trip-pro-vpc
  3. 作成したルートテーブルに対して、前手順で作成したインターネットゲートウェイを紐付けます。
    一覧上でルートテーブルを選択し、一覧下部に表示されるタブからルートを選択し、編集をクリックします。 ルートテーブルキャプチャ3
  4. 別のルートを追加をクリックし、送信先に0.0.0.0/0(すべてのIPアドレス)、ターゲットには作成したインターネットゲートウェイを指定します。設定できたら保存をクリックします。 ルートテーブルキャプチャ4
  5. 続けて、ルートテーブルとサブネットを紐付けます。一覧下部のタブからサブネットの関連付けを選択し、編集をクリックします。 ルートテーブルキャプチャ5
  6. Publicサブネットであるec-trip-pro-subnet-public-az-aec-trip-pro-subnet-public-az-bを選択して、保存をクリックします。 ルートテーブルキャプチャ6 以上で、インターネットからPublicサブネットへのルーティングが可能となりました。

NAT用ルートテーブルの作成

NATゲートウェイを利用する場合、続けてNATゲートウェイ用のルートテーブルを作成します。

前手順でNATゲートウェイを作成しない場合は、本手順は不要です。

  1. インターネットゲートウェイ用と同様の手順で、以下のパラメータでルートテーブルを作成します。
    名前タグ ec-trip-pro-rtb-nat
    VPC ec-trip-pro-vpc
  2. 作成したルートテーブルとNATゲートウェイを紐付けます。
    一覧上でNATルートテーブルを選択し、一覧下部のルートを選択し、編集をクリックします。
    別のルートを追加をクリックし、送信先に0.0.0.0/0、ターゲットにはNATゲートウェイを指定します。 ルートテーブルキャプチャ7
  3. 続けてサブネットを関連つけます。このNATゲートウェイは、WebAppサブネットに配置するWebAppサーバーから、インターネットへのアクセスを可能にするためのものなので、関連つけるサブネットはec-trip-pro-subnet-webapp-az-aec-trip-pro-subnet-webapp-az-bになります。 ルートテーブルキャプチャ8 保存をクリックして完了します。以上でNATゲートウェイのルーティングができました。

長くなりましたが、以上でVPC関連の設定を完了します。次章では、セキュリティグループの作成を行っていきます。