インターネットゲートウェイを使用してサブネットをインターネットに接続する
インターネットゲートウェイは、VPC とインターネットとの間の通信を可能にする VPC コンポーネントであり、冗長性と高い可用性を備えており、水平スケーリングが可能です。
インターネットゲートウェイは 2 つの目的を果たします。1 つは、インターネットでルーティング可能なトラフィックの送信先を VPC のルートテーブルに追加することです。もう 1 つは、パブリック IPv4 アドレスが割り当てられているインスタンスに対してネットワークアドレス変換 (NAT) を行うことです。詳細については、「インターネットアクセスを有効にする」を参照してください
インターネットゲートウェイは、IPv4 トラフィックおよび IPv6 トラフィックをサポートしています。ネットワークトラフィックに可用性のリスクや帯域幅の制約が発生することはありません。アカウントでインターネットゲートウェイを設定しても、追加料金は発生しません。
インターネットアクセスを有効にする
VPC のサブネット内のインスタンスでインターネットのアクセスを有効にするには、以下を実行する必要があります。
-
インターネットゲートウェイを作成して VPC にアタッチします。
-
インターネットバウンドトラフィックをインターネットゲートウェイに転送するルートを、サブネットのルートテーブルに追加します。
-
サブネットのインスタンスに、グローバルに一意な IP アドレス (パブリック IPv4 アドレス、Elastic IP アドレス、IPv6 アドレス) が割り当てられていることを確認します。
-
ネットワークアクセスコントロールリストとセキュリティグループルールがインスタンス間で関連するトラフィックを許可していることを確認します。
パブリックサブネットおよびプライベートサブネット
サブネットに関連付けられているルートテーブルにインターネットゲートウェイへのルートがある場合、そのサブネットは「パブリックサブネット」と呼ばれます。インターネットゲートウェイへのルートを持たないルートテーブルに関連付けられているサブネットは、「プライベートサブネット」と呼ばれます。
パブリックサブネットのルートテーブルでは、インターネットゲートウェイのルートに、ルートテーブルに明示的に知られていないすべての送信先 (0.0.0.0/0
の場合は IPv4、::/0
の場合は IPv6) を指定することができます。または、より狭い範囲の IP アドレスにルートを絞り込むこともできます。例えば、AWS 外部にある会社のパブリックエンドポイントのパブリック IPv4 アドレスや、VPC 外部にある他の Amazon EC2 インスタンスの elastic IP アドレスなどです。
IP アドレスおよび NAT
IPv4 でインターネット通信できるようにするには、パブリック IPv4 アドレス、またはインスタンスのプライベート IPv4 アドレスに関連付けられる Elastic IP アドレスが必要です。インスタンスは、VPC とサブネット内で定義されたプライベート(内部)IP アドレス空間のみを認識します。インターネットゲートウェイはインスタンスに代わって 1 対 1 の NAT を論理的に行います。そのため、トラフィックが VPC サブネットから出てインターネットへ向かうとき、返信アドレスフィールドは、インスタンスのプライベート IP アドレスではなくパブリック IPv4 アドレスまたは Elastic IP アドレスに設定されます。逆に、インスタンスのパブリック IPv4 アドレスまたは Elastic IP アドレス宛てのトラフィックは、その送信先アドレスがインスタンスのプライベート IPv4 アドレスに変換されてから、VPC に配信されます。
IPv6 のインターネット経由の通信を有効にするには、VPC およびサブネットは IPv6 CIDR ブロックと関連付け、インスタンスはサブネットの範囲の IPv6 アドレスに割り当てる必要があります。IPv6 アドレスは、グローバルに一意であるため、デフォルトではパブリックアドレスになっています。
次の図表では、アベイラビリティーゾーン A のサブネットはパブリックサブネットを示しています。このサブネットのルートテーブルには、インターネット経由の IPv4 トラフィックをすべてインターネットゲートウェイに送信するルートがあります。パブリックサブネット内のインスタンスは、インターネットゲートウェイを経由してインターネットとの通信を夕刻にするために、パブリック IP アドレスまたは Elastic IP アドレスが必要です。比較として、アベイラビリティーゾーン B のサブネットは、ルートテーブルにインターネットゲートウェイへのルートがないため、プライベートサブネットとなります。プライベートサブネット内のインスタンスは、パブリック IP アドレスが付与されている場合でも、インターネットゲートウェイを経由してインターネットと通信できません。

パブリック IP アドレスを割り当てずにインスタンスにインターネットアクセスを提供するには、代わりに NAT デバイスを使用できます。NAT デバイスを使用すると、プライベートサブネットのインスタンスはインターネットに接続できますが、インターネット上のホストがインスタンスとの接続を開始できなくなります。詳細については、「NAT デバイスを使用してサブネットをインターネットまたは他の VPC に接続する」を参照してください
デフォルトとデフォルト以外の VPC へのインターネットアクセス
次の表では、IPv4 または IPv6 経由でインターネットアクセスに必要なコンポーネントが VPC に自動的に付与されるかどうかについて示します。
コンポーネント | デフォルト VPC | デフォルトではない VPC |
---|---|---|
インターネットゲートウェイ | はい | 最初または 2 番目のオプションを使用して VPC を作成した場合は自動的に付与されます。それ以外の場合は、インターネットゲートウェイを手動で作成してアタッチする必要があります。 |
IPv4 トラフィックのインターネットゲートウェイ (0.0.0.0/0) にルーティングするルートテーブル。 | はい | 最初または 2 番目のオプションを使用して VPC を作成した場合は自動的に付与されます。それ以外の場合は、手動でルートテーブルを作成し、ルーティングテーブルを追加する必要があります。 |
IPv6 トラフィックのインターネットゲートウェイ (::/0) にルーティングするルートテーブル。 | いいえ | VPC ウィザードで、最初または 2 番目のオプションを使用して VPC を作成した場合や、IPv6 を VPC CIDR ブロックを関連付けるオプションを指定した場合は自動的に付与されます。それ以外の場合は、手動でルートテーブルを作成し、ルーティングテーブルを追加する必要があります。 |
サブネットに起動されるインスタンスに自動的に割り当てられたパブリック IPv4 アドレス。 | Yes (デフォルトサブネット) | No (デフォルト以外のサブネット) |
サブネットに起動されるインスタンスに自動的に割り当てられた IPv6 アドレス。 | いいえ (デフォルトサブネット) | No (デフォルト以外のサブネット) |
デフォルト VPC の詳細については、「デフォルト VPC とデフォルトサブネット」を参照してください。VPC ウィザードを使用して、インターネットゲートウェイを使う VPC を作成する方法の詳細については、「1 つのパブリックサブネットを持つ VPC」または「パブリックサブネットとプライベートサブネットを持つ VPC (NAT)」を参照してください。
VPC 内の IP アドレス、インスタンスにパブリック IPv4 または IPv6 アドレスを割り当てる方法を制御する方法の詳細は、「サブネットの IP アドレス動作を変更する」を参照してください。
新しいサブネットを VPC に追加するとき、サブネットに必要なルーティングとセキュリティを設定する必要があります。
VPC のサブネットからインターネットにアクセスする場合
次に、インターネットゲートウェイを使用して VPC のサブネットからインターネットへアクセスする方法について説明します。インターネットアクセスを削除する場合は、VPC からインターネットゲートウェイをデタッチして削除します。
[Tasks] (タスク)
サブネットの作成
サブネットを VPC に追加するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[サブネット]、[サブネットの作成] の順に選択します。
-
必要に応じて、サブネットの詳細を指定します。
-
[Name tag]: 必要に応じてサブネットの名前を入力します。これにより、
Name
というキーと指定した値を含むタグが作成されます。 -
[VPC]: サブネットを作成する VPC を選択します。
-
[Availability Zone] (アベイラビリティーゾーン): 必要に応じて、サブネットが存在するアベイラビリティーゾーンまたはローカルゾーンを選択するか、またはデフォルトの [No Preference] (指定なし) のままにして、AWS がアベイラビリティーゾーンを選択するようにします。
ローカルゾーンをサポートするリージョンの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「利用できるリージョン」を参照してください。
-
[IPv4 CIDR ブロック]: サブネットの IPv4 CIDR ブロックを指定します。例:
10.0.1.0/24
。詳細については、「IPv4 用の VPC とサブネットのサイズ設定」を参照してください -
[IPv6 CIDR ブロック]: (オプション) IPv6 CIDR ブロックを VPC に関連付けている場合は、[Specify a custom IPv6 CIDR] を選択します。16 進法でキーペア値を選択するか、デフォルト値のままにします。
-
-
[Create] を選択します。
サブネットの詳細については、「VPC とサブネットの概要」を参照してください。
インターネットゲートウェイの作成とアタッチ
インターネットゲートウェイを作成した後で、それを VPC にアタッチします。
インターネットゲートウェイを作成して VPC にアタッチするには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで [インターネットゲートウェイ] を選択してから、[インターネットゲートウェイの作成] を選択します。
-
オプションで、インターネットゲートウェイに名前を付けます。
-
オプションで、タグを追加または削除します。
[タグの追加] [タグの追加] を選択して、以下を実行します。
-
[キー] にはキー名を入力します。
-
[値] にキー値を入力します。
[タグを削除] タグのキーと値の右側にある [削除] を選択します。
-
-
[インターネットゲートウェイの作成] を選択します。
-
作成したインターネットゲートウェイを選択して、[アクション]、[VPC にアタッチ] を選択します。
-
リストから VPC を選択し、[インターネットゲートウェイのアタッチ] を選択します。
カスタムルートテーブルを作成する
サブネットを作成すると、VPC のメインルートテーブルと自動的に関連付けられます。デフォルトでは、メインルートテーブルにインターネットゲートウェイへのルートは含まれません。次の手順では、VPC の外部あてのトラフィックをインターネットゲートウェイに送信するルートを含むカスタムルートテーブルを作成してから、それをサブネットに関連付けます。
カスタムルートテーブルを作成するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで [Route Tables] (ルートテーブル) を選択して、[Create route table] (ルートテーブルの作成) を選択します。
-
[Create route table] (ルートテーブルの作成) ダイアログボックスで、必要に応じてルートテーブルに名前を指定し、VPC を選んでから、[Create route table] (ルートテーブルの作成) を選択します。
-
作成したカスタムルートテーブルを選択します。詳細ペインには、ルート、関連付け、ルートのプロパゲーションを操作するタブが表示されます。
-
[Routes] (ルート) タブで、[Edit routes] (ルートの編集)、[Add route] (ルートの追加) の順に選択し、必要に応じて以下のルートを追加します。完了したら、[Save changes] (変更を保存) を選択します。
-
IPv4 トラフィックの場合、[送信先] ボックスで
0.0.0.0/0
を指定し、[ターゲット] リストでインターネットゲートウェイ ID を選択します。 -
IPv6 トラフィックの場合、[送信先] ボックスで
::/0
を指定し、[ターゲット] リストでインターネットゲートウェイ ID を選択します。
-
-
[Subnet associations] (サブネットの関連付け) タブで [Edit subnet associations] (サブネットの関連付けの編集)を選択し、サブネットのチェックボックスをオンにして、[Save associations] (関連付けを保存) を選択します。
詳細については、「VPC のルートテーブルの管理」を参照してください
インターネットアクセス用セキュリティグループの作成
デフォルトでは、VPC セキュリティグループは、すべてのアウトバウンドトラフィックを許可します。新しいセキュリティグループを作成し、インターネットからのインバウンドトラフィックを許可するルールを追加できます。その後、セキュリティグループをパブリックサブネットのインスタンスに関連付けることができます。
セキュリティグループを作成し、インスタンスに関連付けるには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで [Security Groups] (セキュリティグループ) を選択して、[Create security group] (セキュリティグループの作成) を選択します。
-
セキュリティグループの名前と説明を入力します。
-
[VPC] で、自分の VPC を選択します。
-
[Inbound Rules] (インバウンドルール) で、[Add Rule] (ルールを追加) を選択し、必要な情報を入力します。例えば、[Type] (タイプ) から [HTTP] または [HTTPS] を選択し、IPv4 トラフィックの場合は
0.0.0.0/0
、IPv6 トラフィックの場合は::/0
を [Source] (送信元) に入力します。 -
[セキュリティグループの作成] を選択します。
-
ナビゲーションペインで、[インスタンス] を選択します。
-
インスタンスを選択し、[Actions] (アクション)、[Security] (セキュリティ)、[Change security groups] (セキュリティグループの変更) の順に選択します。
-
[Associated security groups] (関連付けられたセキュリティグループ) で、既存のセキュリティグループを選択し、[Add security group] (セキュリティグループを追加) を選択します。既に関連付けられているセキュリティグループを削除するには、[Remove] (削除) を選択します。変更が完了したら、[Save] (保存) を選択します。
詳細については、「セキュリティグループを使用してリソースへのトラフィックを制御する」を参照してください。
Elastic IP アドレスのインスタンスへの割り当て
IPv4 経由でインターネットからインスタンスに到達できるようにするには、サブネットでインスタンスを起動した後に、そのインスタンスに Elastic IP アドレスを割り当てる必要があります。
起動中にパブリック IPv4 アドレスをインスタンスに割り当てた場合、インスタンスはインターネットから到達可能であるため、Elastic IP アドレスを割り当てる必要はありません。インスタンスの IP アドレスの割り当ての詳細については、「サブネットの IP アドレス動作を変更する」を参照してください。
コンソールを使用して、Elastic IP アドレスを配分し、インスタンスに割り当てるには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで [Elastic IP] を選択します。
-
[Allocate new address] を選択します。
-
[Allocate] を選択します。
注記 アカウントが EC2-Classic をサポートしている場合には、まず [VPC] を選択します。
-
リストで Elastic IP アドレスを選び、[Actions] を選択してから [Associate address] を選択します。
-
[Instance] または [Network interface] を選択してから、インスタンスまたはネットワークインターフェイス ID を選択します。Elastic IP アドレスを関連付けるプライベート IP アドレスを選択してから、[Associate] を選択します。
詳細については、「Elastic IP アドレスを VPC 内で実行中のネットワークインターフェイスやインスタンスに関連付ける」を参照してください
VPC からのインターネットゲートウェイのデタッチ
デフォルトではない VPC 内に起動するインスタンスでインターネットアクセスが不要になった場合には、VPC からインターネットゲートウェイをデタッチできます。VPC に関連付けられたパブリック IP アドレスまたは Elastic IP アドレスを持つリソースがある場合、インターネットゲートウェイをデタッチすることはできません。
インターネットゲートウェイをデタッチするには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで [Elastic IPs] を選択し、Elastic IP アドレスを選択します。
-
[Actions]、[Disassociate address] の順に選択します。[Disassociate address] を選択します。
-
ナビゲーションペインで、[Internet Gateways] を選択します。
-
インターネットゲートウェイを選択し、[アクション]、[VPC からデタッチ] を選択します。
-
[VPC からデタッチ] ダイアログボックスで、[インターネットゲートウェイのデタッチ] を選択します。
インターネットゲートウェイを削除する
インターネットゲートウェイが不要になった場合には、それを削除することができます。VPC にアタッチされているインターネットゲートウェイを削除することはできません。
インターネットゲートウェイを削除するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Internet Gateways] を選択します。
-
インターネットゲートウェイを選択し、[アクション]、[インターネットゲートウェイの削除] の順に選択します。
-
[インターネットゲートウェイの削除] ダイアログボックスで、「
delete
」と入力し、[インターネットゲートウェイの削除] を選択します。
API とコマンドの概要
このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンドラインインターフェイスの詳細および利用できる API アクションの一覧については、「Amazon VPC にアクセスする」を参照してください。
インターネットゲートウェイを作成する
-
create-internet-gateway(AWS CLI)
-
New-EC2InternetGateway(AWS Tools for Windows PowerShell)
インターネットゲートウェイを VPC にアタッチする
-
attach-internet-gateway(AWS CLI)
-
Add-EC2InternetGateway(AWS Tools for Windows PowerShell)
インターネットゲートウェイについて説明する
-
describe-internet-gateways(AWS CLI)
-
Get-EC2InternetGateway(AWS Tools for Windows PowerShell)
VPC からインターネットゲートウェイをデタッチする
-
detach-internet-gateway(AWS CLI)
-
Dismount-EC2InternetGateway(AWS Tools for Windows PowerShell)
インターネットゲートウェイを削除する
-
delete-internet-gateway(AWS CLI)
-
Remove-EC2InternetGateway(AWS Tools for Windows PowerShell)