AWSのネットワーク設定は一見複雑で、初心者にとってはハードルが高いと感じるかもしれません。
そこで、本記事ではAWSのネットワークの基本について、初心者にもわかりやすく解説します。
対象サービス
- VPC
- インターネットゲートウェイ
- サブネット
- ルートテーブル
- NATゲートウェイ
- VPCエンドポイント
VPC
VPC (Virtual Private Cloud) は、AWS上に仮想的なネットワーク環境を構築するための基盤となるサービスです。VPCを利用することで、AWS上でプライベートネットワークを作成することができます。
VPCを作成するときに、そのVPCのCIDRブロックを指定する必要があります。RFC1918で定義されているプライベートIPアドレスの範囲から設定することが推奨されています。
RFC 1918 の範囲 | CIDR ブロックの例 |
---|---|
10.0.0.0 – 10.255.255.255 | 10.0.0.0/16 |
172.16.0.0 – 172.31.255.255 | 172.31.0.0/16 |
192.168.0.0 – 192.168.255.255 | 192.168.0.0/20 |
インターネットゲートウェイ
インターネットゲートウェイ (Internet Gateway, IGW) は、VPC内部のリソースをインターネットと通信可能にするためのコンポーネントです。
簡単に言うと、VPCをインターネットに接続するための門の役割を果たします。
VPC内のリソースからインターネットへのアウトバウンド通信(送信)と、インターネットからのインバウンド通信(受信)を可能にします。
サブネット
サブネットは、VPCのネットワークをさらに小さな単位に分割する仕組みです。
サブネットの基本概念
- IPアドレス範囲の分割
- サブネットは、VPCで指定したCIDRブロックをさらに小さな範囲に分割して作成します。
- 例: VPCのCIDRが
10.0.0.0/16
の場合、サブネットを10.0.0.0/24
や10.0.1.0/24
などに分けます。
- アベイラビリティゾーン (AZ)
- 各サブネットは特定のアベイラビリティゾーン(AZ)に作成されます。
- 例: VPCが
東京リージョン
の場合、サブネットはap-northeast-1a
やap-northeast-1c
に作成します。
- パブリックサブネットとプライベートサブネット
- サブネットはインターネットアクセスの有無で「パブリック」と「プライベート」に分類されます。
サブネットの種類
- パブリックサブネット
- ルートテーブル(後述)にインターネットゲートウェイへのルートが設定されているサブネットのことを指します。
- パブリックサブネット内のリソースは、インターネットにアクセスできます。
- プライベートサブネット
- インターネットゲートウェイへのルートが無いサブネットを指します。
- インターネットやVPC外のサービスにアクセスするには、NATゲートウェイ(後述)やVPCエンドポイント(後述)が必要です。
サブネットは、インターネットゲートウェイへのルートの有無によって便宜的に「パブリックサブネット」や「プライベートサブネット」と呼ばれていますが、これらはあくまで用途による名称であり、そのような正式なサービスが存在するわけではありません。
ルートテーブル
ルートテーブルは、VPC・サブネット内でネットワークトラフィックの経路を定義する設定です。
インターネットゲートウェイやNATゲートウェイなど、トラフィックがどこに向かうかルーティングします。
ルートテーブルの基本構成
ルートテーブルには以下の要素が含まれます。
- 宛先
- トラフィックの宛先をCIDR形式で指定します。
- 例:
0.0.0.0/0
は全てのIPアドレス、10.0.0.0/16
はVPC内部のアドレスを示します。
- ターゲット
- トラフィックの行き先を指定します。
- 例: インターネットゲートウェイ (igw-xxxxxx)、NATゲートウェイ (nat-xxxxxx)、あるいはオンプレミス向けの仮想プライベートゲートウェイ (vgw-xxxxxx)。
- ルート
- 宛先とターゲットの組み合わせです。
- 例: 宛先-
0.0.0.0/0
ターゲット-インターネットゲートウェイ (igw-xxxxxx)
の場合、すべてのトラフィックはインターネットゲートウェイにルーティングされます。
ルートテーブルの例
宛先 | ターゲット |
---|---|
10.0.0.0/16 | Local |
172.31.0.0/16 | pcx-11223344556677889 |
10.0.0.11/32 | i-11223344556677889 |
0.0.0.0/0 | igw-11223344556677889 |
- VPC(
10.0.0.0/16
)のCIDRブロック宛のトラフィックは、local(VPC内)にルーティングされます。 172.31.0.0/16
への通信はVPCピアリング接続(pcx-11223344556677889
)に送信し、別のVPC(172.31.0.0/16
)にルーティングします。10.0.0.11/32
への通信はEC2インスタンス(i-11223344556677889
) に送信されます。- 上記以外のすべてのトラフィック(
0.0.0.0/0
)はインターネットゲートウェイ(igw-11223344556677889
)に送信されます。
NATゲートウェイ
NATゲートウェイは、プライベートサブネット内のリソースが VPC 外のサービスに接続するためのコンポーネントです。
NATゲートウェイの特徴
- アウトバウンド通信の提供
- プライベートサブネット内のリソースが、インターネット経由でVPC外のリソースにアクセス可能にします。
- S3などのVPC外にあるAWSリソースにも、NATゲートウェイ経由でアクセスすることができます。
- インバウンド通信をブロック
- NATゲートウェイを介して行われる通信は、外部からの直接アクセスを受け付けません。これにより、プライベートサブネット内のリソースがセキュアに保護されます。
- ElasticIP
- NATゲートウェイには、固定のElasticIPが割り当てられます。これにより、アウトバウンド通信の送信元IPアドレスを固定化できます。
NATゲートウェイの設定手順
- NATゲートウェイの作成
- NATゲートウェイをパブリックサブネットに作成します。
- NATゲートウェイは、アベイラビリティゾーン単位で動作します。耐障害性を高めるためには、各AZにNATゲートウェイを作成します。
- 作成時にElasticIPを割り当てます。
- ルートテーブルの設定
- プライベートサブネットのルートテーブルに、NATゲートウェイへのルートを設定します。
プライベートサブネットのルートテーブルの例
宛先 | ターゲット |
---|---|
10.0.0.0/16 | Local |
0.0.0.0/0 | nat-11223344556677889 |
- VPC(
10.0.0.0/16
)のCIDRブロック宛のトラフィックは、local(VPC内)にルーティングされます。 - 上記以外のすべてのトラフィック(
0.0.0.0/0
)はNATゲートウェイ(nat-11223344556677889
)に送信され、IP変換されVPC外にルーティングされます。
NATゲートウェイのコスト
2024年11月現在、東京リージョンでのNATゲートウェイのコストは以下の通りです。
- 時間単位: 1時間あたり0.062USD
- データ処理量: NATゲートウェイを通過するデータ量1GBあたり0.062USD
NATゲートウェイは設置しているだけでもコストが発生し、データの送受信(IN/OUT)両方が課金対象となるため、予想以上にコストが高くなるケースがあります。
料金を削減したい場合は、まずNATゲートウェイを使用しない方法を検討しましょう。
例えば、VPC外のAWSリソース(例: S3やECR)にプライベートサブネットからアクセスする場合、NATゲートウェイの代わりにVPCエンドポイント(後述)を利用することで、コスト削減が可能です。
VPCエンドポイント
VPCエンドポイントは、VPC外のリソース(例: S3、DynamoDB、ECR など)にインターネットを経由せずにプライベートサブネット内からアクセスするための仕組みです。
前述したNATゲートウェイも似たような機能を持っていますが、VPCエンドポイントの方がコストを抑えられるケースが多いため、特別な要件がない限りはVPCエンドポイントを選択するのがおすすめです。
VPCエンドポイントの種類
VPCエンドポイントには、以下の2種類があります。
- インターフェイスエンドポイント
- VPC内にプライベートIPアドレスを持つENI(Elastic Network Interface) を作成して、VPC外のサービスと通信します。
- インターネットを経由せず、VPCとAWSサービス間の接続を確立します。この構成はPrivateLinkと呼ばれています。
- セキュリティグループを設定します。HTTPS(443番ポート)の許可が必要です。
- ゲートウェイエンドポイント
- ルートテーブルを使ってAWSサービスにアクセスします。
- 現時点ではS3、DynamoDBのみ対応しています。
まとめ
今回はAWSネットワークの基本的なサービスについて解説しました。
コメント