0Pricing
Cloud & IT Cert Prep · レッスン

インターネットゲートウェイとルートテーブル

インターネットゲートウェイをアタッチして外部インターネットへのアウトバウンドアクセスを有効にし、パブリックサブネット用のルートテーブルを設定します。

「インターネットゲートウェイとルートテーブル」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

Internet Gateway:VPC とインターネットの接続口

Internet Gateway (IGW) は、VPC とインターネット間の通信を可能にする、水平スケーリングされた冗長性と高可用性を備えた VPC コンポーネントです。パブリック IPv4 アドレスを持つインスタンスに対してNetwork Address Translation (NAT)を実行します。送信トラフィックではプライベート IP を Elastic IP または自動割り当てされたパブリック IP に変換し、受信トラフィックではその変換を元に戻します。1 つの VPC につき IGW は 1 つです。IGW を VPC にアタッチしただけでは、インスタンスが自動的にインターネットへアクセスできるようにはなりません。ルートテーブルを更新し、インスタンスにパブリック IP が割り当てられていることも確認する必要があります。

# Create and attach an internet gateway
aws ec2 create-internet-gateway \
  --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=prod-igw}]'

aws ec2 attach-internet-gateway \
  --internet-gateway-id igw-12345678 \
  --vpc-id vpc-12345678

Route Tables:トラフィックの方向

route table は、サブネットまたはゲートウェイからのネットワークトラフィックの転送先を決定するルール(ルート)の集合です。すべての VPC にはメインルートテーブルがあり、サブネットに別のルートテーブルを明示的に関連付けない限り、すべてのサブネットがデフォルトでこれを使用します。ルートには宛先(CIDR ブロック)とターゲット(local、インターネットゲートウェイ、NAT ゲートウェイ、ピアリング接続など)があります。複数のルートがパケットの宛先に一致する場合は、最も具体的なルート(最長プレフィックス一致)が選択されます。

# Create a route table for public subnets
aws ec2 create-route-table \
  --vpc-id vpc-12345678 \
  --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=public-rt}]'

サブネットをパブリックにする

サブネットに関連付けられたルートテーブルに、0.0.0.0/0(すべてのインターネットトラフィック)を Internet Gateway に転送するルートがある場合、そのサブネットはパブリックです。サブネットをパブリックにする手順は 3 つあります。(1) 0.0.0.0/0 → IGW ルートを持つカスタムルートテーブルを作成する、(2) そのルートテーブルをサブネットに関連付ける、(3) サブネットでパブリック IPv4 の自動割り当てを有効にし、そのサブネット内で起動したインスタンスが自動的にパブリック IP を受け取るようにする、の 3 つです。この 3 つがそろって初めて、機能するパブリックサブネットになります。

# Add internet route to the public route table
aws ec2 create-route \
  --route-table-id rtb-12345678 \
  --destination-cidr-block 0.0.0.0/0 \
  --gateway-id igw-12345678

# Associate the route table with a public subnet
aws ec2 associate-route-table \
  --route-table-id rtb-12345678 \
  --subnet-id subnet-public-1a

# Enable auto-assign public IP for the subnet
aws ec2 modify-subnet-attribute \
  --subnet-id subnet-public-1a \
  --map-public-ip-on-launch

ローカルルート

すべてのルートテーブルには、VPC 内のすべてのリソース間の通信を可能にするローカルルート(例:10.0.0.0/16 → local)が自動的に含まれます。このルートは削除も変更もできません。これにより、VPC 内の任意のサブネットにあるインスタンスが、ゲートウェイを経由せずにプライベート IP アドレスを使って相互に通信できます。VPC の CIDR 範囲内を宛先とするトラフィックでは、ローカルルートが常にカスタムルートより優先されます。

# Describe the routes in a route table
aws ec2 describe-route-tables \
  --route-table-ids rtb-12345678 \
  --query 'RouteTables[0].Routes'
# Typical output shows:
# {DestinationCidrBlock: '10.0.0.0/16', GatewayId: 'local'}
# {DestinationCidrBlock: '0.0.0.0/0',  GatewayId: 'igw-12345678'}

ルートの優先順位と最長プレフィックス一致

パケットがルートテーブル内の複数のルートに一致する可能性がある場合、AWS は最も具体的なプレフィックス(最長の一致プレフィックス)を持つルートを選択します。例として、10.0.0.0/8 → peering と 10.1.0.0/16 → VPN のルートがある場合、10.1.0.5 宛てのパケットは両方に一致しますが、/16 のルートの方がより具体的(プレフィックスが長い)であるため、こちらが優先されます。プレフィックス長が同じ場合は、より具体的なゲートウェイタイプが優先されます。優先順位は local > VGW propagated > static です。これは、ピアリング、VPN、DX が接続された複雑なネットワークを設計する際に重要です。

IPv6 とインターネット専用ゲートウェイ

VPC は IPv4 と併用して IPv6 CIDR ブロック(Amazon 提供の /56)をサポートします。IPv6 でインターネットにアクセスする場合、IGW は IPv4 と IPv6 の両方を処理します。IPv6 のみのイグレス(インスタンスからのアウトバウンド IPv6 接続は許可し、インバウンドはブロックする)には、Egress-Only Internet Gatewayを使用します。これは IPv4 のプライベートサブネットで使用する NAT ゲートウェイと機能的には似ていますが、IPv6 専用です。プライベートサブネットに ::/0 → eigw-xxxxxxxx ルートを追加すると、インスタンスをインバウンド IPv6 接続にさらすことなく、IPv6 のアウトバウンドアクセスを有効にできます。

# Create an Egress-Only IGW for IPv6
aws ec2 create-egress-only-internet-gateway \
  --vpc-id vpc-12345678

# Add IPv6 route in private subnet route table
aws ec2 create-route \
  --route-table-id rtb-private \
  --destination-ipv6-cidr-block '::/0' \
  --egress-only-internet-gateway-id eigw-12345678

ゲートウェイルートテーブル

ゲートウェイルートテーブルは、サブネットではなく Internet Gateway または Virtual Private Gateway に直接関連付けるルートテーブルです。これによりイングレスルーティングが可能になり、インターネットから VPC に入って EC2 インスタンスに到達する前のトラフィックを検査できます。これは、受信トラフィックをすべて確認する必要があるインラインセキュリティアプライアンス(IDS/IPS、仮想ファイアウォールアプライアンス)に使用します。IGW のルートテーブルを設定して受信トラフィックを Gateway Load Balancer エンドポイントに送り、セキュリティアプライアンスに分散させます。検査後、アプライアンスは宛先の EC2 インスタンスに転送します。

VPN/DX によるルート伝播

VPN または Direct Connect を介してオンプレミスネットワークを接続すると、ルート伝播によってオンプレミスのルートを VPC のルートテーブルに自動的に伝播できます。Virtual Private Gateway (VGW) のルートテーブルで伝播を有効にすると、オンプレミスのルーターが BGP 経由でアドバタイズしたすべてのルートが、手動で入力しなくても自動的にルートテーブルに表示されます。これは、オンプレミスのサブネットが変化する動的な環境で特に便利です。静的 VPN 接続では、オンプレミスの CIDR ルートを手動で追加します。

# Enable route propagation from a Virtual Private Gateway
aws ec2 enable-vgw-route-propagation \
  --route-table-id rtb-12345678 \
  --gateway-id vgw-12345678

複数のルートテーブルに関するベストプラクティス

ベストプラクティスは、各ティアに個別のルートテーブルを作成することです。パブリックサブネット用(IGW へのルート)、プライベートアプリケーションサブネット用(NAT ゲートウェイへのルート)、プライベートデータサブネット用(インターネットへのルートはなく、VPC エンドポイントのみ)に分けます。これにより、送信トラフィックを許可するようセキュリティグループが誤って設定されていても、データティアのインスタンスが誤ってインターネットに到達することを防げます。ルートテーブルに外部への経路がないためです。ルートテーブルを分離すると、ティアごとのネットワークアクセスパターンも監査しやすくなります。

VPC エンドポイントのルート

S3 または DynamoDB Gateway VPC Endpointを作成すると、AWS は指定したルートテーブルにルートを自動的に追加します。宛先はサービスのマネージドプレフィックスリスト、ターゲットは VPC エンドポイントになります。このルートにより、対象サブネットから S3 または DynamoDB へのトラフィックはインターネットではなく AWS のプライベートネットワークを経由します。ゲートウェイエンドポイントは無料で、インスタンスが大量の S3 トラフィックを生成する場合は NAT ゲートウェイのコストを大幅に削減できます。本番 VPC のプライベートサブネットのルートテーブルには、必ず S3 と DynamoDB のゲートウェイエンドポイントを追加してください。

# Create S3 gateway endpoint and add to route tables
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-12345678 \
  --service-name com.amazonaws.us-east-1.s3 \
  --route-table-ids rtb-private-app rtb-private-data

トラフィックエンジニアリングのためのブラックホールルート

ブラックホールルートは、到達できないターゲットを持つルートで、意図的にトラフィックを破棄するために使用します。AWS では、ルートのターゲット(VPN 接続や Transit Gateway アタッチメントなど)が削除された後もルートが残っている場合に、ブラックホールルートが作成されます。VPC 内から特定の IP 範囲へのトラフィックをブロックするために、意図的にブラックホールルートを作成することもできます。これは、セキュリティグループや NACL とは異なる、ネットワークレベルのトラフィック制御メカニズムです。AWS では、ルートが参照するエンドポイントまたはゲートウェイが利用できなくなると、コンソールにブラックホールルートが表示されます。

クイックチェック

このレッスンで扱った AWS Solutions Architect (SAA-C03) の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、Internet Gateway によって VPC とインターネット間の通信が可能になり、VPC にアタッチしたうえで、0.0.0.0/0 ルートを持つサブネットのルートテーブルから参照する必要があること、ルートテーブルは宛先とターゲットの組み合わせを使用してトラフィックの方向を制御し、最長プレフィックス一致が優先されること、そしてサブネットのティアごとにルートテーブルを分けることで、アーキテクチャによってトラフィックを分離できることを学びました。次は、プライベートサブネットからインターネットへアクセスするための NAT Gateways について学びます。

よくある質問

「インターネットゲートウェイとルートテーブル」レッスンは無料ですか?

はい。「インターネットゲートウェイとルートテーブル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「インターネットゲートウェイとルートテーブル」で何を学びますか?

インターネットゲートウェイをアタッチして外部インターネットへのアウトバウンドアクセスを有効にし、パブリックサブネット用のルートテーブルを設定します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「インターネットゲートウェイとルートテーブル」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. VPC アーキテクチャと CIDR ブロック
  2. インターネットゲートウェイとルートテーブル
  3. NAT ゲートウェイとプライベートサブネット
  4. ネットワーク ACL とセキュリティグループ
← Cloud & IT Cert Prepに戻る