AWS SAA(Solutions Architect - Associate)対策
VPCエンドポイント
このレッスンでできるようになること。SAA で最も繰り返し出る言い回しである「インターネットを経由せずに S3 へアクセスしたい」を、2 種類のエンドポイントのどちらかに正しく振り分けられるようになります。
要件の文から入る
ある企業が、プライベートサブネットの EC2 から S3 へ毎晩数テラバイトのログを書き出しています。今は NAT ゲートウェイ経由で出ています。監査から「S3 への通信はインターネットを経由しないこと」を求められ、同時に経理から「NAT の転送料を下げたい」と言われました。何を入れますか。
答えは S3 用のゲートウェイ型 VPC エンドポイントです。この 1 手で、通信は AWS のネットワーク内に留まり、NAT ゲートウェイを通らなくなるので処理データ量の課金も消えます。しかもゲートウェイ型のエンドポイント自体には追加料金がかかりません。要件文の 2 つが同時に片付くので、この形が試験で好まれます。
2 種類の線引き
| ゲートウェイ型 | インターフェース型 (PrivateLink) | |
|---|---|---|
| 対応サービス | S3 と DynamoDB のみ | 多数の AWS サービス、自社サービス、Marketplace |
| 仕組み | ルートテーブルにプレフィックスリスト向けの経路を追加 | サブネットに ENI を作り、プライベート IP を持たせる |
| 名前解決 | 通常のサービスエンドポイント名のまま | プライベート DNS で同じ名前をプライベート IP に解決 |
| 制御 | エンドポイントポリシー + ルートテーブル | エンドポイントポリシー + セキュリティグループ |
| オンプレミスから利用 | できない | Direct Connect や VPN 経由で利用できる |
| 料金 | 追加料金なし | 時間課金 + 処理データ量課金 |
| 冗長化 | ルートテーブル単位。AZ の概念なし | サブネット単位。AZ ごとに ENI を作る |
表の 1 行目が最強の判別材料です。ゲートウェイ型は S3 と DynamoDB の 2 つだけなので、要件文のサービス名がこの 2 つ以外なら、その時点でインターフェース型に決まります。逆に S3 か DynamoDB で、しかも「追加料金をかけずに」「最も低コストで」と書かれていたらゲートウェイ型です。
最後の 2 行も効きます。オンプレミスから VPC 経由で S3 へ届かせたい、という要件ではゲートウェイ型は使えません。この場合はインターフェース型を選びます。またインターフェース型は ENI なので、可用性の要件があれば複数 AZ のサブネットに作ります。ここは NAT ゲートウェイと同じ考え方です。
要件語から構成への対応表
| 要件文の言い回し | 選ぶもの |
|---|---|
| インターネットを経由せずに S3 へ、追加料金をかけずに | S3 のゲートウェイ型エンドポイント |
| インターネットを経由せずに DynamoDB へ | DynamoDB のゲートウェイ型エンドポイント |
| インターネットを経由せずに SQS や Secrets Manager へ | インターフェース型エンドポイント |
| オンプレミスから専用線経由で S3 へ | S3 のインターフェース型エンドポイント |
| 自社の SaaS を他アカウントへ非公開で提供 | PrivateLink (エンドポイントサービス) |
| NAT の転送料を減らしたい | S3 と DynamoDB はゲートウェイ型へ逃がす |
よくある引っ掛け
1 つめは、S3 の要件に対してインターフェース型を選ばせるものです。技術的には動きます。しかし時間課金と処理データ量課金が乗るので、「最も低コストで」と書かれていたら負けます。惜しい選択肢の典型です。
2 つめは、パブリック IP を外して NAT だけで済ませる案です。NAT を通った時点で通信は一度インターネットへ出るので、「インターネットを経由しない」という要件語を満たしません。到達性だけを見ると正しく見えるので引っ掛かります。
3 つめは、ゲートウェイ型に対してセキュリティグループを設定する選択肢です。ゲートウェイ型は ENI を持たないのでセキュリティグループの対象になりません。制御はエンドポイントポリシーで行います。
まとめ
- 「インターネットを経由せず」はまず VPC エンドポイントを疑います
- ゲートウェイ型は S3 と DynamoDB のみ。ルートテーブルに経路が入り、追加料金はありません
- インターフェース型は ENI を作る方式で、対応サービスが広い代わりに時間課金と処理データ量課金がかかります
- オンプレミスから使いたい要件はインターフェース型です
- NAT の転送料が論点なら、S3 と DynamoDB の通信をゲートウェイ型へ逃がすのが定番の答えです
復習ミニクイズ
ある企業がプライベートサブネットの EC2 から S3 へ大量のログを転送しています。要件は「S3 への通信がインターネットを経由しないこと」と「追加のネットワーク費用を最も低く抑えること」です。最も適切な構成はどれですか。