AWS Cloud9 開発環境の VPC 設定 - AWS Cloud9

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

AWS Cloud9 開発環境の VPC 設定

Amazon Virtual Private Cloud (Amazon VPC) に関連付けられた各 AWS Cloud9 開発環境は、特定の VPC 要件を満たしている必要があります。これらの環境には、EC2 環境と VPC 内で実行する AWS クラウド コンピューティングインスタンスと関連する SSH 環境があります。例えば、Amazon EC2 インスタンスおよび Amazon Lightsail インスタンスです。

AWS Cloud9 の Amazon VPC 要件

AWS Cloud9 が使用する Amazon VPC には、次の設定が必要です。以下の要件は熟知しており、互換性のある VPC を早急に作成したいという場合は、「VPC と他の VPC リソースを作成する」に進んでください。

次のチェックリストを使用して、以下のすべての要件を VPC が満たしていることを確認します。

  • VPC は、AWS Cloud9 開発環境と同じ AWS アカウントおよび AWS リージョンに存在することも、環境とは異なる AWS アカウントの共有 VPC であることもできます。ただし、VPC は環境と同じ AWS リージョンに存在する必要があります。AWS リージョン 用の Amazon VPC の詳細については、「AWS リージョン の VPC のリストを表示する」を参照してください。AWS Cloud9 用の Amazon VPC を作成する手順の詳細については、「VPC と他の VPC リソースを作成する」を参照してください。共有 Amazon VPC の使用の詳細については、「Amazon VPC ユーザーガイド」の「共有 VPC の使用」を参照してください。

  • VPC にはパブリックサブネットが必要です。トラフィックがインターネットゲートウェイにルーティングされる場合、サブネットはパブリックです。Amazon VPC のサブネットのリストについては、「VPC のサブネットのリストを表示する」を参照してください。

  • 環境が SSH 経由で EC2 インスタンスに直接アクセスしている場合、インスタンスはパブリックサブネットでのみ起動できます。サブネットがパブリックかどうかの確認方法については、「パブリックサブネットかどうかを確認する」を参照してください。

  • Systems Manager を使って no-ingress Amazon EC2 インスタンスにアクセスしている場合、インスタンスはパブリックサブネットまたはプライベートサブネットに起動できます。

  • パブリックサブネットを使用している場合は、インターネットゲートウェイを VPC にアタッチします。これにより、インスタンスの AWS Systems Manager Agent (SSM Agent) は Systems Manager に接続できます。

  • プライベートサブネットを使用している場合は、パブリックサブネットで NAT ゲートウェイをホストして、サブネットのインスタンスによるインターネットとの通信を許可します。インターネットゲートウェイの設定を表示または変更する方法の詳細については、「インターネットゲートウェイの設定を表示または変更する」を参照してください。

  • パブリックサブネットには、最小限のルートセットを含むルートテーブルが必要です。サブネットにルートテーブルがあるかどうかを確認する方法については、「サブネットにルートテーブルがあるかどうかを確認する」を参照してください。ルートテーブルを作成する方法については、「ルートテーブルの作成」を参照してください。

  • VPC (またはアーキテクチャーによっては AWS クラウド コンピューティングインスタンス) の関連付けられたセキュリティグループは、インバウンドおよびアウトバウンドトラフィックの最小セットを許可する必要があります。Amazon VPC のセキュリティグループのリストについては、「VPC のセキュリティグループのリストを表示する」を参照してください。Amazon VPC のセキュリティグループの作成の詳細については、「VPC でのセキュリティグループの作成」を参照してください。

  • セキュリティレイヤーを追加するため、VPC にネットワーク ACL がある場合、ネットワーク ACL はインバウンドおよびアウトバウンドトラフィックの最小セットを許可する必要があります。Amazon VPC に 1 つ以上のネットワーク ACL があるかどうかを確認するには、「VPC に 1 つ以上のネットワーク ACL があるかどうかを確認する」を参照してください。ネットワーク ACL の作成については、「ネットワーク ACL の作成」を参照してください。

  • 開発環境がSSM を使用して EC2 インスタンスにアクセスし、インスタンスが起動先のパブリックサブネットによってパブリック IP アドレスに割り当てられていることを確認します。そのためには、パブリックサブネットのパブリック IP アドレスの自動割り当てオプションを有効にし、[Yes] に設定する必要があります。サブネット設定ページ内で AWS Cloud9 環境を作成する前に、これをパブリックサブネットで有効にすることができます。パブリックサブネットで自動割り当て IP 設定を変更する手順については、「Amazon VPC ユーザーガイド」の「サブネットのパブリック IPv4 アドレス属性を変更する」を参照してください。パブリックサブネットとプライベートサブネットの詳細については、「サブネットをパブリックまたはプライベートとして設定する」を参照してください。

注記

次の手順では、AWS Management Consoleにサインインし、管理者の認証情報を使用して Amazon VPC コンソール (https://console.aws.amazon.com/vpc) または Amazon EC2 コンソール (https://console.aws.amazon.com/ec2) を開きます。

AWS CLI または AWS CloudShell を使用する場合は、AWS アカウントで管理者の認証情報を使用して AWS CLI または AWS CloudShell を設定することをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

AWS リージョン の VPC のリストを表示する

Amazon VPC コンソールを使用するには、AWS ナビゲーションバーで、AWS Cloud9 が環境を作成する AWS リージョン を選択します。次に、ナビゲーションペインで、[お客様の VPC]を選択します。

AWS CLI または AWS CloudShell を使用するには、次の例のように、Amazon EC2 の describe-vpcs コマンドを実行します。

aws ec2 describe-vpcs --output table --query 'Vpcs[*].VpcId' --region us-east-2

上のコマンドで、us-east-2 を AWS Cloud9 が環境を内部で作成する AWS リージョン に置き換えてください。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、VPC ID のリストが含まれます。

VPC のサブネットのリストを表示する

Amazon VPC コンソールを使用するため、ナビゲーションペインで[お客様の VPC]を選択します。[VPC ID]列の VPC の ID をメモしておきます。次に、ナビゲーションペインで[サブネット]を選択し、[VPC]列でその ID を含むサブネットを探します。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の describe-subnets コマンドを実行します。

aws ec2 describe-subnets --output table --query 'Subnets[*].[SubnetId,VpcId]' --region us-east-2

前述のコマンドで、us-east-2 を、サブネットを含む AWS リージョン に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力で、VPC の ID と一致するサブネットを探します。

パブリックサブネットかどうかを確認する

重要

環境の EC2 インスタンスをプライベートサブネットに起動するとします。SSM サービスに接続できるように、そのインスタンスに対してアウトバウンドトラフィックが許可されていることを確認してください。プライベートサブネットの場合、アウトバウンドトラフィックは通常、ネットワークアドレス変換 (NAT) ゲートウェイまたは VPC エンドポイントを介して設定されます。(NAT ゲートウェイにはパブリックサブネットが必要です)。

SSM にアクセスするために NAT ゲートウェイではなく VPC エンドポイントを選択するとします。これらのパッチがインターネットアクセスに依存する場合、インスタンスの自動更新とセキュリティパッチが機能しないことがあります。AWS Systems Manager Patch Manager などの他のアプリケーションを使用して、環境が必要とするソフトウェア更新を管理できます。AWS Cloud9 ソフトウェアは通常どおり更新されます。

Amazon VPC コンソールを使用するには、ナビゲーションペインで[サブネット]を選択します。AWS Cloud9 が使用するサブネットの横にあるボックスを選択します。[ルートテーブル]タブで、[ターゲット]列に[igw-]で始まるエントリがある場合、そのサブネットはパブリックです。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

前述のコマンドで、us-east-2 をサブネットがある AWS リージョン に置き換え、subnet-12a3456b をサブネット ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に igw- で始まる結果が 1 つでもある場合は、そのサブネットがパブリックです。

出力に結果がない場合は、ルートテーブルがサブネットではなく、代わりに VPC に関連付けられている可能性があります。これを確認するには、次の例のように、サブネット自体の代わりに、サブネットに関連する VPC に対して Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-1 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に igw- で始まる結果が 1 つでもある場合は、その VPC にはインターネットゲートウェイが含まれています。

インターネットゲートウェイの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。インターネットゲートウェイの横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して設定を表示するには、Amazon EC2 describe-internet-gateways コマンドを実行します。

aws ec2 describe-internet-gateways --output table --region us-east-2 --internet-gateway-id igw-1234ab5c

前述のコマンドで、us-east-2 をインターネットゲートウェイがある AWS リージョン に置き換え、igw-1234ab5c をインターネットゲートウェイ ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

インターネットゲートウェイを作成する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。[インターネットゲートウェイの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して、Amazon EC2 create-internet-gateway コマンドを実行します。

aws ec2 create-internet-gateway --output text --query 'InternetGateway.InternetGatewayId' --region us-east-2

前述のコマンドで、us-east-2 を新規のインターネットゲートウェイがある AWS リージョン に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、新規のインターネットゲートウェイの ID が含まれています。

インターネットゲートウェイを VPC にアタッチする

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。インターネットゲートウェイの横にあるボックスを選択します。必要に応じて[アクション]、[VPC にアタッチ]の順に選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の attach-internet-gateway コマンドを実行します。

aws ec2 attach-internet-gateway --region us-east-2 --internet-gateway-id igw-a1b2cdef --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 をインターネットゲートウェイがある AWS リージョン に置き換えます。igw-a1b2cdef をインターネットゲートウェイ ID に置き換えます。さらに、vpc-1234ab56 を VPC ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

サブネットにルートテーブルがあるかどうかを確認する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[サブネット]を選択します。AWS Cloud9 を使用したい VPC のパブリックサブネットの隣のボックスを選択します。[ルートテーブル]タブで、[ルートテーブル]の値がある場合は、パブリックサブネットにルートテーブルがあります。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

前述のコマンドで、us-east-2 をパブリックサブネットがある AWS リージョン に置き換え、subnet-12a3456b をパブリックサブネット ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に値がある場合、パブリックサブネットには少なくとも 1 つのルートテーブルがあります。

出力に結果がない場合は、ルートテーブルがサブネットではなく、代わりに VPC に関連付けられている可能性があります。これを確認するには、次の例のように、サブネット自体の代わりに、サブネットに関連する VPC に対して Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に少なくとも 1 つの結果がある場合、VPC には少なくとも 1 つのルートテーブルがあります。

サブネットをルートテーブルに添付する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。アタッチするルートテーブルの横にあるチェックボックスをオンにします。[サブネットの関連付け]タブで[編集]を選択し、アタッチ先のサブネットの横にあるチェックボックスをオンにして、[保存]を選択します。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の associate-route-table コマンドを実行します。

aws ec2 associate-route-table --region us-east-2 --subnet-id subnet-12a3456b --route-table-id rtb-ab12cde3

前述のコマンドで、us-east-2 をルートテーブルを含む AWS リージョン に置き換えます。subnet-12a3456b をサブネット ID に置き換えます。さらに、rtb-ab12cde3 をルートテーブル ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

ルートテーブルの作成

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。[ルートテーブルの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の create-route-table コマンドを実行します。

aws ec2 create-route-table --output text --query 'RouteTable.RouteTableId' --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を新しいルートテーブルがある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、新しいルートテーブルの ID が含まれています。

ルートテーブルの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。ルートテーブルの横にあるチェックボックスをオンにします。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使って設定を表示するには、次の例のように、Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --region us-east-2 --route-table-ids rtb-ab12cde3

前述のコマンドで、us-east-2 をルートテーブルがある AWS リージョン に置き換え、rtb-ab12cde3 をルートテーブル ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS Cloud9 の最小限推奨されるルートテーブル設定

送信先 [Target] (ターゲット) ステータス 伝播済み

CIDR-BLOCK

local

[Active] (アクティブ)

いいえ

0.0.0.0/0

igw-INTERNET-GATEWAY-ID

[Active] (アクティブ)

いいえ

これらの設定で、CIDR-BLOCK は、サブネットの CIDR ブロックで、igw-INTERNET-GATEWAY-ID は、互換性のあるインターネットゲートウェイの ID です。

VPC のセキュリティグループのリストを表示する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[セキュリティグループ]を選択します。[セキュリティグループの検索]ボックスに、VPC ID または名前を入力し、Enter キーを押します。その VPC のセキュリティグループが検索結果のリストに表示されます。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-security-groups コマンドを実行します。

aws ec2 describe-security-groups --output table --query 'SecurityGroups[*].GroupId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、その VPC のセキュリティグループ ID のリストが含まれています。

AWS クラウド コンピューティングインスタンスのセキュリティグループのリストを表示する

Amazon EC2 コンソールを使用するには、ナビゲーションペインで[インスタンス]を展開し、[インスタンス]を選択します。インスタンスの一覧で、インスタンスの横のボックスを選択します。そのインスタンスのセキュリティグループが、[Security groups]の横の[Description]タブに表示されます。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の describe-security-groups コマンドを実行します。

aws ec2 describe-instances --output table --query 'Reservations[*].Instances[*].NetworkInterfaces[*].Groups[*].GroupId' --region us-east-2 --instance-ids i-12a3c456d789e0123

前述のコマンドで、us-east-2 をインスタンスがある AWS リージョン に置き換え、i-12a3c456d789e0123 をインスタンス ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、そのインスタンスのセキュリティグループ ID のリストが含まれています。

VPC でセキュリティグループの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[セキュリティグループ]を選択します。セキュリティグループの横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使って設定を表示するには、次の例のように、Amazon EC2 describe-security-groups コマンドを実行します。

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

前述のコマンドで、us-east-2 をインスタンスがある AWS リージョン に置き換え、sg-12a3b456 をセキュリティグループ ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS クラウド コンピューティングインスタンスのセキュリティグループの設定を表示または変更する

Amazon EC2 コンソールを使用するには、ナビゲーションペインで[インスタンス]を展開し、[インスタンス]を選択します。インスタンスの一覧で、インスタンスの横のボックスを選択します。[説明]タブの[セキュリティグループ]で、セキュリティグループを選択します。各タブを確認します。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使って設定を表示するには、次の例のように、Amazon EC2 describe-security-groups コマンドを実行します。

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

前述のコマンドで、us-east-2 をインスタンスがある AWS リージョン に置き換え、sg-12a3b456 をセキュリティグループ ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS Cloud9 の最小インバウンドおよびアウトバウンドトラフィックの設定

重要

インスタンスの IA セキュリティグループにはインバウンドルールがない場合があります。この場合、別のホストからインスタンスへの着信トラフィックは許可されません。no-ingress EC2 インスタンスの使用については、「AWS Systems Manager を使用して no-ingress EC2 インスタンスにアクセスする」を参照してください。

  • インバウンド: ポート 22 で SSH を使用するすべての IP アドレス。ただし、これらの IP アドレスを、AWS Cloud9 が使用するものだけに制限することができます。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

    注記

    2018 年 7 月 31 日以降に作成された EC2 環境 の場合、AWS Cloud9 はセキュリティグループを使用して、ポート 22 経由で SSH を使用するインバウンド IP アドレス に制限します。これらのインバウンド IP アドレスは、具体的には AWS Cloud9 が使用するアドレスのみです。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

  • インバウンド (ネットワーク ACL のみ): EC2 環境 と、Amazon Linux または Ubuntu Server を実行して Amazon EC2 インスタンスと関連付けられた SSH 環境である場合、ポート 32768〜61000 経由で TCP を使用するすべての IP アドレス。詳細と、他の Amazon EC2 インスタンスタイプのポート範囲を含むについては、Amazon VPC ユーザーガイドの「一時ポート」を参照してください。

  • アウトバウンド: 任意のプロトコルとポートを使用するすべてのトラフィックソース。

セキュリティグループレベルでこの動作を設定することができます。さらにセキュリティレベルを高めるために、ネットワーク ACL を使用することもできます。詳細については、Amazon VPC ユーザーガイドの「セキュリティグループおよびネットワーク ACL の比較」を参照してください。

たとえば、インバウンドおよびアウトバウンドのルールをセキュリティグループに追加するには、次のようにルールを設定します。

インバウンドルール
タイプ プロトコル ポート範囲 ソース

SSH (22)

TCP (6)

22

0.0.0.0 (ただし次の注記および AWS Cloud9 のインバウンド SSH IP アドレスの範囲 を参照)。

注記

2018 年 7 月 31 日以降に作成された EC2 環境 の場合、AWS Cloud9 はインバウンドルールを追加し、ポート 22 経由 SSH を使用するインバウンド IP アドレスを制限します。これにより、具体的には AWS Cloud9 が使用するアドレスのみに制限されます。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

アウトバウンドルール
タイプ プロトコル ポート範囲 ソース

すべてのトラフィック

すべて

すべて

0.0.0.0/0

例えば、インバウンドおよびアウトバウンドのルールをネットワーク ACL に追加するよう選択した場合は、次のようにルールをセットアップします。

インバウンドルール
ルール番号 タイプ プロトコル ポート範囲 ソース 許可/拒否

100

SSH (22)

TCP (6)

22

0.0.0.0 (ただし AWS Cloud9 のインバウンド SSH IP アドレスの範囲 を参照)。

許可

200

カスタム TCP ルール

TCP (6)

32768-61000 (Amazon Linux および Ubuntu Server インスタンスの場合。 その他のインスタンスタイプについては、一時ポートを参照してください)。

0.0.0.0/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

DENY

アウトバウンドルール
ルール番号 タイプ プロトコル ポート範囲 ソース 許可/拒否

100

すべてのトラフィック

すべて

すべて

0.0.0.0/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

DENY

セキュリティグループとネットワーク ACL の詳細については、次のAmazon VPC ユーザーガイドを参照してください。

VPC でのセキュリティグループの作成

Amazon VPC または Amazon EC2 コンソールを使用するには、次のいずれかのアクションを実行します。

  • Amazon VPC コンソールのナビゲーションペインで、[セキュリティグループ]を選択します。[セキュリティグループの作成]を選択し、画面の指示に従います。

  • Amazon EC2 コンソールのナビゲーションペインで[ネットワーク & セキュリティ]を展開し、[セキュリティグループ]を選択します。[セキュリティグループの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、Amazon EC2 の create-security-group コマンドを実行します。

aws ec2 create-security-group --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

VPC に 1 つ以上のネットワーク ACL があるかどうかを確認する

Amazon VPC コンソールを使用するため、ナビゲーションペインで[お客様の VPC]を選択します。AWS Cloud9 が使用する VPC の横にあるボックスを選択します。[概要]タブで、[ネットワーク ACL]の値がある場合は、VPC に少なくとも 1 つのネットワーク ACL があります。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力のリストに少なくとも 1 つのエントリがある場合、その VPC には少なくとも 1 つのネットワーク ACL があります。

VPC のネットワーク ACL のリストを表示する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。[ネットワーク ACL を検索]ボックスに、VPC ID または名前を入力し、[Enter ]キーを押します。その VPC のネットワーク ACL が検索結果のリストに表示されます。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョン に置き換え、vpc-1234ab56 を VPC ID に置き換えます。上記のコマンドを Windows で実行するには、一重引用符 (' ') を二重引用符 (" ") で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、その VPC のネットワーク ACL のリストが含まれています。

ネットワーク ACL の設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。ネットワーク ACL の横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して設定を表示するには、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --region us-east-2 --network-acl-ids acl-1234ab56

前述のコマンドで、us-east-2 をネットワーク ACL がある AWS リージョン に置き換え、acl-1234ab56 をネットワーク ACL ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

ネットワーク ACL の作成

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。[ネットワーク ACL の作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して、Amazon EC2 create-network-acl コマンドを実行します。

aws ec2 create-network-acl --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を新しいネットワーク ACL にアタッチする VPC がある AWS リージョン リージョンに置き換えます。さらに、vpc-1234ab56 を VPC ID に置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

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

次の手順に従って、アプリケーションの実行に必要な VPC および追加の VPC リソースを作成します。VPC リソースには、サブネット、ルートテーブル、インターネットゲートウェイ、NAT ゲートウェイが含まれます。

コンソールを使用して 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 アドレス範囲を入力する必要があります。AWS Cloud9 に推奨される IPv4 の範囲は 10.0.0.0/16 です。

  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 つ以上のAvailability Zonesでプロビジョニングすることをお勧めします。サブネットの AZ を選択するには、[AZ のカスタマイズ] を展開します。それ以外の場合は、AWS に AZ の選択を任せます。

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

  10. (オプション) プライベートサブネットのリソースが IPv4 経由でパブリックインターネットにアクセスする必要がある場合は、[NAT ゲートウェイ] で、NAT ゲートウェイを作成する AZ の数を選択します。本番環境では、パブリックインターネットへのアクセスを必要とするリソースがある各 AZ に 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 内のリソースをこの形式でいつでも視覚化できます。

  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 アドレス範囲を入力します。AWS Cloud9 に推奨される IPv4 の範囲 10.0.0.0/16 です。

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

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

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

    • [IPAM が割り当てられた IPv6 CIDR] を選択し、IPAM IPv6 アドレスプールを選択します。CIDR ブロックのサイズは、IPAM プールの割り当てルールによって制限されます。

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

    • [ユーザー所有の IPv6 CIDR] を選択すると、Bring-Your-Own-IP (BYOIP) を使って AWS に取り込んだ IPv6 CIDRブロックを使うことができます。[Pool (プール)] で、IPv6 CIDR ブロックの割り当て元となる IPv6 アドレスプールを選択します。

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

    VPC のテナンシーで Dedicated を選択すると、インスタンスは常に、ユーザー専用のハードウェアで実行される、専有インスタンスとして実行されます。AWS Outposts を使用している場合、Outpost にはプライベート接続が必要であり、Default テナンシーを使用する必要があります。

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

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

  10. VPC の作成後、サブネットを追加できます。

AWS Cloud9 のサブネットの作成

Amazon VPC コンソールを使用して、AWS Cloud9 と互換性のある VPC のサブネットを作成できます。EC2 インスタンスのプライベートサブネットとパブリックサブネットのどちらを作成できるかは、環境の接続方法によって異なります。

  • SSH による直接アクセス:パブリックサブネットのみ

  • Systems Manager からのアクセス: パブリックまたはプライベートサブネット

環境の EC2 をプライベートサブネットに起動するオプションが利用できるのは、コンソール、コマンドライン、または AWS CloudFormation を使った「no-ingress」 EC2 環境を作成する場合に限られます。

パブリックまたはプライベートのいずれかになりえるサブネットを作成と同じステップに従ってくださいい。サブネットがインターネットゲートウェイへのルートがあるルートテーブルに関連付けられている場合は、「パブリックサブネット」と呼ばれます。サブネットがインターネットゲートウェイへのルートがないルートテーブルに関連付けられている場合は、「プライベートサブネット」と呼ばれます。詳細については、「サブネットをパブリックまたはプライベートとして設定する」を参照してください。

前の手順に従って AWS Cloud9 の VPC を作成した場合は、この手順に従う必要はありません。これは、[新しい VPC の作成]ウィザードによって自動的にサブネットが作成されるためです。

重要
  • AWS アカウント には、環境用の同じ AWS リージョン 内に互換性のある VPC が既に存在している必要があります。詳細については、AWS Cloud9 の Amazon VPC 要件の VPC 要件を参照してください。

  • この手順では、AWS アカウント の管理者ユーザーの認証情報を使用して AWS Management Console にサインインし、Amazon VPC コンソールを開くことをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

  • 一部の組織では、独自のサブネットの作成が許可されていない場合があります。サブネットを作成できない場合は、AWS アカウント 管理者またはネットワーク管理者に確認してください。

サブネットを作成するには
  1. Amazon VPC コンソールをまだ開いていない場合は、AWS Management Console にサインインして Amazon VPC コンソール (https://console.aws.amazon.com/vpc) を開きます。

  2. ナビゲーションバーで、AWS リージョン が環境のリージョンと同じではない場合は、正しいリージョンを選択します。

  3. サブネット]ページが表示されていない場合は、ナビゲーションペインで[サブネット]を選択します。

  4. [Create Subnet] (サブネットの作成) を選択します。

  5. サブネットの作成]ダイアログボックスの[名前タグ]にサブネットの名前を入力します。

  6. VPC]で、サブネットを関連付ける VPC を選択します。

  7. [Availability Zone] (アベイラビリティーゾーン) で、使用するサブネットの AWS リージョン 内のアベイラビリティーゾーンを選択するか、[No Preference] (指定なし) を選択して、AWS にアベイラビリティーゾーンを選択させます。

  8. IPv4 CIDR ブロック]に、使用するサブネットの IP アドレス範囲を CIDR 形式で入力します。この IP アドレスの範囲は、VPC の IP アドレスのサブネットである必要があります。

    CIDR ブロックの詳細については、Amazon VPC ユーザーガイドVPC とサブネットのサイジングを参照してください。3.1 Basic Concept and Prefix Notation (RFC 4632) または IPv4 CIDR ブロック (Wikipedia) も参照してください。

サブネットの作成後、パブリックサブネットまたはプライベートサブネットとして設定する

サブネットをパブリックまたはプライベートとして設定する

サブネットを作成した後、インターネットとの通信方法を指定して、サブネットをパブリックまたはプライベートにすることができます。

パブリックサブネットにはパブリック IP アドレスがあり、サブネットのインスタンスと他の AWS のサービス の通信を可能にするインターネットゲートウェイ(IGW)が添付されています。

プライベートサブネット内のインスタンスにはプライベート IP アドレスがあり、ネットワークアドレス変換 (NAT) ゲートウェイを使用して、サブネットとインターネットとその他の AWS のサービス の間でトラフィックを送受信します。NAT ゲートウェイはパブリックサブネットにホストする必要があります。

Public subnets
注記

環境のインスタンスがプライベートサブネットで起動された場合でも、VPC は少なくとも 1 つのパブリックサブネットを備えている必要があります。これは、インスタンスとの間でトラフィックを転送する NAT ゲートウェイがパブリックサブネットでホストされている必要があるためです。

サブネットをパブリックとして設定するには、インターネットゲートウェイ(IGW)を添付し、その IGW へのルートを指定するようにルートテーブルを設定し、インバウンドトラフィックとアウトバウンドトラフィックを制御するため、セキュリティグループの設定を定義します。

これらのタスクの実行に関するガイダンスは VPC と他の VPC リソースを作成する で提供されています。

重要

開発環境がSSM を使用して EC2 インスタンスにアクセスし、インスタンスが起動先のパブリックサブネットによってパブリック IP アドレスに割り当てられていることを確認します。そのためには、パブリックサブネットのパブリック IP アドレスの自動割り当てオプションを有効にし、[Yes] に設定する必要があります。サブネット設定ページ内で AWS Cloud9 環境を作成する前に、これをパブリックサブネットで有効にすることができます。パブリックサブネットで自動割り当て IP 設定を変更する手順については、「Amazon VPC ユーザーガイド」の「サブネットのパブリック IPv4 アドレス属性を変更する」を参照してください。パブリックサブネットとプライベートサブネットの詳細については、「サブネットをパブリックまたはプライベートとして設定する」を参照してください。

Private subnets

Systems Manager からアクセスする no-ingress インスタンスを作成する場合は、プライベートサブネットで起動できます。プライベートサブネットにはパブリック IP アドレスはありません。そのため、リクエストには、プライベート IP アドレスをパブリックアドレスにマッピングし、応答には、パブリック IP アドレスをプライベートアドレスにマッピングする必要があります。

警告

アカウントで NAT ゲートウェイを作成して使用するには料金がかかります。NAT ゲートウェイの時間単位の使用料金とデータ処理料金が適用されます。Amazon EC2 データ転送料金も適用されます。詳細については、「Amazon VPC の料金」を参照してください。

NAT ゲートウェイを作成して設定する前に、次の手順を行います。

  • NAT ゲートウェイをホストするパブリック VPC サブネットを作成します。

  • NAT ゲートウェイに割り当てることができるElastic IP アドレスをプロビジョンします。

  • プライベートサブネットの場合は、起動されたインスタンスがプライベート IP アドレスに割り当てられるように、[パブリック IPv4 アドレスの自動割り当てを有効にする]チェックボックスを解除します。詳細については、Amazon VPC ユーザーガイドの「VPC の IP アドレス指定」を参照してください。

このタスクのステップについては、Amazon VPC ユーザーガイドの「NAT ゲートウェイの使用」を参照してください。。

重要

現在、環境の EC2 インスタンスがプライベートサブネットで起動されている場合、AWS マネージド一時認証情報を使用して、AWS エンティティ(IAM ユーザーなど) の代わりに EC2 環境による AWS のサービス へのアクセスを許可することはできません。