VPC を作成する - Amazon Virtual Private Cloud

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

VPC を作成する

次のステップを使用して、仮想プライベートクラウド (VPC) を作成します。VPC に AWS リソースを作成する前に、VPC にはサブネット、ルートテーブル、ゲートウェイなどの追加リソースが必要です。

VPC を表示または変更する方法については、「VPC の設定」を参照してください。

VPC の設定オプション

VPC を作成するときは、次の設定オプションを指定できます。

アベイラビリティーゾーン

AWS リージョンの冗長電源、ネットワーク、および接続を備えた個別のデータセンターです。複数の AZ を使用することで、単一のデータセンターと比較して、可用性、耐障害性、およびスケーラビリティに優れた本番稼働用アプリケーションおよびデータベースを操作することができるようになります。複数の AZ のサブネットで実行されているアプリケーションをパーティショニングすると、停電、落雷、竜巻、および地震などの問題から隔離され、保護されます。

CIDR ブロック

VPC とサブネットの IP アドレス範囲を指定する必要があります。詳細については、「VPC とサブネットの IP アドレス指定」を参照してください。

DNS オプション

サブネットで起動される EC2 インスタンスにパブリック IPv4 DNS ホスト名が必要な場合は、両方の DNS オプションを有効にする必要があります。詳細については、「VPC の DNS 属性」を参照してください。

  • [DNS ホスト名を有効化]: VPC 内に起動される EC2 インスタンスが、パブリック IPv4 アドレスに対応するパブリック DNS ホスト名を受信します。

  • [DNS 解決を有効化]: プライベート DNS ホスト名の DNS 解決は、Route 53 Resolver と呼ばれる Amazon DNS サーバーによって VPC に提供されます。

インターネットゲートウェイ

VPC をインターネットに接続します。パブリックサブネットのインスタンスがインターネットにアクセスできるのは、インターネット用のトラフィックをインターネットゲートウェイに送信するルートがサブネットルートテーブルに含まれているからです。サーバーにインターネットから直接アクセスする必要がない場合は、パブリックサブネットにデプロイしないでください。詳細については、「インターネットゲートウェイ」を参照してください。

名前

VPC と他の VPC リソースに指定した名前は、名前タグの作成に使用されます。コンソールで名前タグの自動生成機能を使用する場合、タグ値の形式は name-resource です。

NAT ゲートウェイ

プライベートサブネット内のインスタンスがインターネットへアウトバウンドトラフィックを送信するのを許可しますが、インターネットがインスタンスに接続するのを禁止します。本番環境では、アクティブな各 AZ に NAT ゲートウェイをデプロイすることをお勧めします。詳細については、「NAT ゲートウェイ」を参照してください。

ルートテーブル

サブネットまたはゲートウェイからのネットワークトラフィックの経路を判断する、ルートと呼ばれる一連のルールが含まれます。詳細については、「ルートテーブル」を参照してください。

サブネット

VPC 内の IP アドレスの範囲。EC2 インスタンスなどの AWS リソースをサブネット内に起動します。各サブネットは 1 つのアベイラビリティーゾーン内に完全に含まれています。2 つ以上のアベイラビリティーゾーンでインスタンスを起動することにより、1 つのアベイラビリティーゾーンで発生した障害からアプリケーションを保護できます。

パブリックサブネットには、インターネットゲートウェイへの直接ルートがあります。パブリックサブネット内のリソースは、パブリックインターネットにアクセスできます。プライベートサブネットには、インターネットゲートウェイへの直接ルートがありません。プライベートサブネット内のリソースには、パブリックインターネットへのアクセス用に NAT デバイスなどの別のコンポーネントが必要です。

詳細については、「サブネット」を参照してください。

テナンシー

このオプションは、VPC で起動する EC2 インスタンスを、他の AWS アカウント と共有しているハードウェアで実行するか、または自分専用のハードウェアで実行するかを定義します。VPC のテナンシーで Default を選択すると、この VPC で起動された EC2 インスタンスは、インスタンスの起動時に指定されたテナンシーの属性を使用します。詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「定義済みのパラメータを使用したインスタンスの起動」を参照してください。VPC のテナンシーで Dedicated を選択すると、インスタンスは常に、ユーザー専用のハードウェアで実行される、専有インスタンスとして実行されます。AWS Outposts を使用している場合、その Outpost にはプライベート接続が必要となります。つまり、Default テナンシーを使用する必要があります。

VPC と他の VPC リソースを作成する

次の手順に従って、VPC に加え、サブネット、ルートテーブル、インターネットゲートウェイ、NAT ゲートウェイなど、アプリケーションの実行に必要な追加の VPC リソースを作成します。VPC の設定例については、「VPC の例」を参照してください。

コンソールを使用して VPC、サブネット、その他の VPC リソースを作成するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. VPC ダッシュボードで、[Create VPC (VPC を作成する)] を選択します。

  3. [Resources to create] (作成するリソース) で、[VPC and more] (VPC など) を選択します。

  4. [名前タグの自動生成] を選択したままにすると VPC リソース用の名前タグが作成され、オフにすると VPC リソース用の独自の名前タグが作成されます。

  5. [IPv4 CIDR ブロック] に VPC の IPv4 アドレス範囲を入力します。VPC には IPv4 アドレス範囲が必要です。

  6. (オプション) IPv6 トラフィックをサポートするには、[IPv6 CIDR ブロック][Amazon が提供する IPv6 CIDR ブロック] の順に選択します。

  7. [テナンシー] を選択します 。このオプションは、VPC で起動する EC2 インスタンスを、他の AWS アカウント と共有しているハードウェアで実行するか、または自分専用のハードウェアで実行するかを定義します。VPC のテナンシーで Default を選択すると、この VPC で起動された EC2 インスタンスは、インスタンスの起動時に指定されたテナンシーの属性を使用します。詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「定義済みのパラメータを使用したインスタンスの起動」を参照してください。VPC のテナンシーで Dedicated を選択すると、インスタンスは常に、ユーザー専用のハードウェアで実行される、専有インスタンスとして実行されます。AWS Outposts を使用している場合、その Outpost にはプライベート接続が必要となります。つまり、Default テナンシーを使用する必要があります。

  8. [アベイラビリティーゾーン (AZ) の数] では、本番環境のため、サブネットを 2 つ以上のアベイラビリティーゾーンでプロビジョニングしておくことが推奨されます。サブネットの AZ を選択するには、[AZ のカスタマイズ] を展開します。それ以外の場合は、AWS で自動的に選択します。

  9. サブネットを設定するには、[パブリックサブネットの数][プライベートサブネットの数] の値を選択します。サブネットの IP アドレス範囲を選択するには、[サブネット CIDR ブロックをカスタマイズ] を展開します。それ以外の場合は、AWS で自動的に選択します。

  10. (オプション) プライベートサブネットのリソースが IPv4 経由でパブリックインターネットにアクセスする必要がある場合、[NAT ゲートウェイ] で、NAT ゲートウェイを作成する AZ の数を選択します。本番環境では、パブリックインターネットへのアクセスを必要とするリソースがある各 AZ に NAT ゲートウェイをデプロイすることをお勧めします。NAT ゲートウェイにはコストが発生することに注意してください。詳細については、「料金」を参照してください。

  11. (オプション) プライベートサブネット内のリソースが IPv6 経由でパブリックインターネットにアクセスする必要がある場合、[Egress Only インターネットゲートウェイ] で、[はい] をクリックします。

  12. (オプション) VPC から Amazon S3 に直接アクセスする必要がある場合は、[VPC エンドポイント][S3 ゲートウェイ] の順に選択します。これにより、Amazon S3 用のゲートウェイ VPC エンドポイントが作成されます。詳細については、「AWS PrivateLink ガイド」の「ゲートウェイ VPC エンドポイント」を参照してください。

  13. (オプション) [DNS オプション] では、ドメイン名解決の両方のオプションがデフォルトで有効になっています。デフォルトの設定がニーズに合わない場合は、これらのオプションを無効にできます。

  14. (オプション) VPC にタグを追加するには、[追加のタグ] を展開して、[新しいタグを追加] を選択し、タグキーとタグ値を入力します。

  15. [プレビュー] ペインでは、設定した VPC リソース間の関係を視覚化できます。実線はリソース間の関係を表します。点線は、NAT ゲートウェイ、インターネットゲートウェイ、およびゲートウェイエンドポイントへのネットワークトラフィックを表します。VPC の作成後、[リソースマップ] タブを使用することで、VPC 内のリソースをこの形式でいつでも視覚化できます。詳細については、「VPC 内のリソースを視覚化する」を参照してください。

  16. VPC の設定が終了したら、[VPC の作成] を選択します。

VPC のみを作成する

以下の手順で、Amazon VPC コンソールを使用して、追加の VPC リソースのない VPC を作成します。

コンソールを使用して追加の VPC リソースのない VPC を作成するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. VPC ダッシュボードで、[Create VPC (VPC を作成する)] を選択します。

  3. [作成するリソース]で、[VPC のみ] を選択します。

  4. (オプション) [名前タグ] に、使用する VPC の名前を入力します。これにより、Name というキーと指定した値を含むタグが作成されます。

  5. [IPv4 CIDR block] で、次のいずれかを実行します。

    • [IPv4 CIDR 手動入力] を選択し、VPC の IPv4 アドレス範囲を入力します。

    • [IPAM が割り当てられた IPv4 CIDR ブロック] を選択し、Amazon VPC IP Address Manager (IPAM) の IPv4 アドレスプールとネットマスクを選択します。CIDR ブロックのサイズは、IPAM プールの割り当てルールによって制限されます。IPAM は、AWS ワークロードの IP アドレスを簡単に計画、追跡、およびモニタリングできる VPC 機能です。詳細については、Amazon VPC IPAM ユーザーガイドIPAM とはを参照してください。

      IPAM を使用して IP アドレスを管理している場合は、このオプションを選択することをお勧めします。このオプションを選択しないと、VPC に指定した CIDR ブロックが IPAM CIDR 割り当てと重複する可能性があります。

  6. (オプション) デュアルスタック VPC を作成するには、VPC の IPv6 アドレス範囲を指定します。[IPv6 CIDR ブロック] で、次のいずれかを実行します。

    • Amazon VPC IP アドレスマネージャーを使用していて、IPAM プールから IPv6 CIDR をプロビジョニングする場合は、[IPAM 割り当て済み IPv6 CIDR ブロック] を選択します。CIDR ブロックで VPC に IP アドレス範囲をプロビジョニングするには、2 つのオプションがあります。

      • ネットマスク長: CIDR のネットマスク長を選択するには、このオプションを選択します。次のいずれかを実行します。

        • IPAM プールにデフォルトのネットマスク長が選択されている場合は、[デフォルトのIPAM ネットマスク長] を選択して、IPAM 管理者が IPAM プールに設定したデフォルトのネットマスク長を使用できます。オプションのデフォルトネットマスク長割り当てルールの詳細については、「Amazon VPC IPAM ユーザーガイド」の「リージョンの IPv6 プールの作成」を参照してください。

        • IPAM プールにデフォルトのネットマスク長が選択されていない場合は、IPAM プール CIDR のネットマスク長よりも具体的なネットマスク長を選択します。例えば、IPAM プールの CIDR が /50 の場合、VPC のネットマスク長は /52 から /60 の間で選択できます。ネットマスク長さは /44 から /60 の間で、/4 刻みです。

      • CIDR の選択: IPv6 アドレスを手動で入力するには、このオプションを選択します。選択できるネットマスクの長さは IPAM プール CIDR のネットマスク長より具体的である必要があります。例えば、IPAM プールの CIDR が /50 の場合、VPC のネットマスク長は /52 から /60 の間で選択できます。IPv6 のネットマスク長は /44 から /60 の間で、/4 ずつ増えます。

    • [Amazon が提供する IPv6 CIDR ブロック] を選択して、Amazon の IPv6 アドレスプールから IPv6 CIDR ブロックをリクエストします。[Network Border Group] (ネットワーク境界グループ) で、AWS による IP アドレスのアドバタイズ元となるグループを選択します。Amazon では IPv6 CIDR ブロックサイズが /56 に固定されています。

    • [自身で所有する IPv6 CIDR] を選択して、AWS に導入した IPv6 CIDR をプロビジョニングします。AWS への独自の IP アドレスの導入の詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「自分の IP アドレス (BYOIP) を使用する」を参照してください。CIDR ブロックで VPC に IP アドレス範囲をプロビジョニングするには、2 つのオプションがあります。

      • 指定なし: /56 のネットマスク長を使用する場合は、このオプションを選択します。

      • CIDR の選択: このオプションを選択すると、IPv6 アドレスを手動で入力し、BYOIP CIDR のサイズよりも具体的なネットマスク長を選択できます。例えば、BYOIP プール CIDR が /50 の場合、VPC のネットマスク長は /52 から /60 の間で選択できます。IPv6 のネットマスク長は /44 から /60 の間で、/4 刻みです。

  7. (オプション) [テナンシー] を選択します 。このオプションは、VPC で起動する EC2 インスタンスを、他の AWS アカウント と共有しているハードウェアで実行するか、または自分専用のハードウェアで実行するかを定義します。VPC のテナンシーで Default を選択すると、この VPC で起動された EC2 インスタンスは、インスタンスの起動時に指定されたテナンシーの属性を使用します。詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「定義済みのパラメータを使用したインスタンスの起動」を参照してください。VPC のテナンシーで Dedicated を選択すると、インスタンスは常に、ユーザー専用のハードウェアで実行される、専有インスタンスとして実行されます。AWS Outposts を使用している場合、その Outpost にはプライベート接続が必要となります。つまり、Default テナンシーを使用する必要があります。

  8. (オプション) VPC にタグを追加するには、[新しいタグを追加] を選択し、タグキーとタグ値を入力します。

  9. [VPC の作成] を選択します。

  10. VPC の作成後、サブネットを追加できます。詳細については、「サブネットの作成」を参照してください。

AWS CLI を使用して VPC を作成する

以下の手順には、VPC に加え、アプリケーションの実行に必要な追加の VPC リソースを作成する AWS CLI コマンド例が含まれています。この手順のすべてのコマンドを実行すると、VPC、パブリックサブネット、プライベートサブネット、各サブネットのルートテーブル、インターネットゲートウェイ、エグレス専用インターネットゲートウェイ、パブリック NAT ゲートウェイが作成されます。これらのリソースのすべてを必要としない場合は、必要なサンプルコマンドのみを使用できます。

前提条件

開始する前に、AWS CLI をインストールして設定します。AWS CLI を設定するときには、AWS 認証情報の入力を求められます。この手順の例では、デフォルトのリージョンも設定済みであることを前提としています。設定していない場合は、--region オプションを各コマンドに追加します。詳細については、「AWS CLI のインストールまたは更新」および「AWS CLI の設定」を参照してください。

タグ付け

タグは、create-tags コマンドを使用してリソースを作成した後に、リソースに追加できます。または、以下のようにリソースの作成コマンドに --tag-specification オプションを追加することもできます。

--tag-specifications ResourceType=vpc,Tags=[{Key=Name,Value=my-project}]
AWS CLI を使用して VPC と VPC リソースを作成するには
  1. 以下の create-vpc コマンドを使用して、指定された IPv4 CIDR ブロックを持つ VPC を作成します。

    aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query Vpc.VpcId --output text

    または、デュアルスタック VPC を作成するには、次の例に示すように、Amazon が提供する IPv6 CIDR ブロックを追加する --amazon-provided-ipv6-cidr-block オプションを追加します。

    aws ec2 create-vpc --cidr-block 10.0.0.0/24 --amazon-provided-ipv6-cidr-block --query Vpc.VpcId --output text

    これらのコマンドは、新しい VPC の ID を返します。次に例を示します。

    vpc-1a2b3c4d5e6f1a2b3
  2. [デュアルスタック VPC] 以下の describe-vpcs コマンドを使用して、VPC に関連付けられている IPv6 CIDR ブロックを取得します。

    aws ec2 describe-vpcs --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query Vpcs[].Ipv6CidrBlockAssociationSet[].Ipv6CidrBlock --output text

    以下は出力例です。

    2600:1f13:cfe:3600::/56
  3. ユースケースに応じて、1 つ以上のサブネットを作成します。本番環境では、少なくとも 2 つのアベイラビリティーゾーンでリソースを起動することをお勧めします。以下のいずれかのコマンドを使用して各サブネットを作成します。

    • IPv4 専用サブネット — 特定の IPv4 CIDR ブロックを持つサブネットを作成するには、次の create-subnet コマンドを使用します。

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --availability-zone us-east-2a --query Subnet.SubnetId --output text
    • デュアルスタックサブネット — デュアルスタック VPC を作成した場合、次のコマンドに示すように、--ipv6-cidr-block オプションを使用してデュアルスタックサブネットを作成できます。

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text
    • IPv6 専用サブネット — デュアルスタック VPC を作成した場合、次のコマンドに示すように、--ipv6-nativeオプションを使用して IPv6 専用サブネットを作成できます。

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --ipv6-native --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text

    これらのコマンドは、新しいサブネットの ID を返します。次に例を示します。

    subnet-1a2b3c4d5e6f1a2b3
  4. ウェブサーバーまたは NAT ゲートウェイにパブリックサブネットが必要な場合は、次の操作を行います。

    1. 以下の create-internet-gateway コマンドを使用して、インターネットゲートウェイを作成します。このコマンドは、新しいインターネットゲートウェイの ID を返します。

      aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text
    2. 以下の attach-internet-gateway コマンドを使用して、インターネットゲートウェイを VPC に接続します。前の手順で返されたインターネットゲートウェイ ID を使用します。

      aws ec2 attach-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --internet-gateway-id igw-id
    3. 以下の create-route-table コマンドを使用して、パブリックサブネットのカスタムルートテーブルを作成します。このコマンドは、新しいルートテーブルの ID を返します。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 以下の create-route コマンドを使用して、すべての IPv4 トラフィックをインターネットゲートウェイに送信するルートをルートテーブルに作成します。パブリックサブネット用のルートテーブル ID を使用します。

      aws ec2 create-route --route-table-id rtb-id-public --destination-cidr-block 0.0.0.0/0 --gateway-id igw-id
    5. 以下の associate-route-table コマンドを使用して、ルートテーブルをパブリックサブネットに関連付けます。パブリックサブネット用のルートテーブル ID、パブリックサブネットの ID を使用します。

      aws ec2 associate-route-table --route-table-id rtb-id-public --subnet-id subnet-id-public-subnet
  5. [IPv6] Egress-Only インターネットゲートウェイを追加すると、プライベートサブネットのインスタンスは IPv6 経由でインターネットにアクセスできますが (例:ソフトウェアアップデートの取得)、インターネットのホストはインスタンスにアクセスすることはできません。

    1. 以下の create-egress-only-internet-gateway コマンドを使用して、エグレス専用インターネットゲートウェイを作成します。このコマンドは、新しいインターネットゲートウェイの ID を返します。

      aws ec2 create-egress-only-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query EgressOnlyInternetGateway.EgressOnlyInternetGatewayId --output text
    2. 以下の create-route-table コマンドを使用して、プライベートサブネットのカスタムルートテーブルを作成します。このコマンドは、新しいルートテーブルの ID を返します。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    3. 以下の create-route コマンドを使用して、すべての IPv6 トラフィックをエグレス専用インターネットゲートウェイに送信するルートをプライベートサブネット用のルートテーブルに作成します。前の手順で返されたルートテーブル ID を使用します。

      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block ::/0 --egress-only-internet-gateway eigw-id
    4. 以下の associate-route-table コマンドを使用して、ルートテーブルをプライベートサブネットに関連付けます。

      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet
  6. プライベートサブネット内のリソースに NAT ゲートウェイが必要な場合は、以下を実行してください。

    1. 以下の allocate-address コマンドを使用して、NAT ゲートウェイ用の Elastic IP アドレスを作成します。

      aws ec2 allocate-address --domain vpc --query AllocationId --output text
    2. 以下の create-nat-gateway コマンドを使用して、NAT ゲートウェイを作成します。前の手順で返された割り当て ID を使用します。

      aws ec2 create-nat-gateway --subnet-id subnet-id-private-subnet --allocation-id eipalloc-id
    3. (オプション) ステップ 5 でプライベートサブネット用のルートテーブルを既に作成している場合は、このステップをスキップしてください。それ以外の場合は、次の create-route-table コマンドを使用して、プライベートサブネット用のルートテーブルを作成します。このコマンドは、新しいルートテーブルの ID を返します。

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 以下の create-route コマンドを使用して、すべての IPv4 トラフィックを NAT ゲートウェイに送信するルートをプライベートサブネット用のルートテーブルに作成します。このステップまたはステップ 5 のいずれかで作成したプライベートサブネット用のルートテーブル ID を使用します。

      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block 0.0.0.0/0 --gateway-id nat-id
    5. (オプション) ステップ 5 ですでにルートテーブルをプライベートサブネットに関連付けている場合は、このステップをスキップしてください。それ以外の場合は、次の associate-route-table コマンドを使用して、ルートテーブルをプライベートサブネットに関連付けます。このステップまたはステップ 5 のいずれかで作成したプライベートサブネット用のルートテーブル ID を使用します。

      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet