AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
問題文と選択肢
月次のコスト分析を実施したところ、データ転送コストが想定の 3 倍に達しており、特に NAT ゲートウェイの処理バイト数に対する課金が大きな割合を占めていることが判明しました。セキュリティ要件として、プライベートサブネットのリソースはインターネットから直接アクセスできないようにする必要があります。
コストを大幅に削減しつつ、アプリケーションの機能を維持するために推奨される対策はどれですか。
- S3とDynamoDB用のGateway VPC Endpointをそれぞれ作成し、プライベートサブネットのルートテーブルに関連付ける。エンドポイントポリシーで必要なアクションのみを許可する
- S3とDynamoDB用のInterface VPC Endpointをそれぞれ作成し、各プライベートサブネットに配置する。セキュリティグループでアプリケーションサーバーからのトラフィックのみを許可する
- AWS PrivateLinkを使用してS3とDynamoDBへの接続を確立し、各Availability ZoneにPrivateLink Endpointを配置する。エンドポイントのセキュリティグループを適切に設定する
- Transit Gatewayを作成してVPCに接続し、S3とDynamoDB向けのルーティングを集約する。Transit Gatewayのルートテーブルでトラフィックフローを制御する
A. S3とDynamoDB用のGateway VPC Endpointをそれぞれ作成し、プライベートサブネットのルートテーブルに関連付ける。エンドポイントポリシーで必要なアクションのみを許可する
ゲートウェイ型 VPC エンドポイントに対応しているのは Amazon S3 と Amazon DynamoDB の 2 つだけで、本問の通信相手はまさにこの 2 つ。
ルートテーブルにエンドポイント向けのルート(プレフィックスリスト宛て)が追加され、S3 / DynamoDB へのトラフィックが NAT ゲートウェイを経由せずに AWS ネットワーク内で直接届くため、NAT ゲートウェイのデータ処理料金がそのまま削減される。
ゲートウェイ型は追加料金なしで利用でき、インターネットゲートウェイを経由しないためプライベートサブネットのリソースがインターネットから到達可能になることもない。エンドポイントポリシーで必要なアクションのみ許可すればセキュリティ要件も満たす、コスト効果が最大の解。
B. S3とDynamoDB用のInterface VPC Endpointをそれぞれ作成し、各プライベートサブネットに配置する。セキュリティグループでアプリケーションサーバーからのトラフィックのみを許可する
インターフェース型 VPC エンドポイントは各 AZ に ENI を作成する方式で、ENI ごとの時間料金+データ処理料金が発生する。
通信自体はプライベートになるものの、NAT ゲートウェイの課金を別の従量課金に置き換えるだけで「コストを大幅に削減する」という要件には応えられない。
S3 / DynamoDB のように無料のゲートウェイ型が使えるサービスで、あえて課金されるインターフェース型を選ぶのはコスト最適化の観点で誤り。
C. AWS PrivateLinkを使用してS3とDynamoDBへの接続を確立し、各Availability ZoneにPrivateLink Endpointを配置する。エンドポイントのセキュリティグループを適切に設定する
AWS PrivateLink はインターフェース型エンドポイントの基盤技術であり、実質的に選択肢 B と同じ構成。したがって時間課金とデータ処理料金が発生する点も同じで、コスト削減効果はゲートウェイ型に及ばない。
「PrivateLink」という語感でよりセキュアかつ最適に見えるが、本問の要件(大幅なコスト削減)を満たす手段としては最適解ではない。
D. Transit Gatewayを作成してVPCに接続し、S3とDynamoDB向けのルーティングを集約する。Transit Gatewayのルートテーブルでトラフィックフローを制御する
AWS Transit Gateway は VPC 間やオンプレミスとの接続を集約するルーターの役割を果たすサービスで、S3 や DynamoDB といったAWS のパブリックサービスエンドポイントへの経路を提供するものではない。
接続しても S3 / DynamoDB 向けの通信は結局 NAT ゲートウェイ経由のままとなり、問題の課金は解消しない。
さらにアタッチメントの時間料金とデータ処理料金が上乗せされ、コストはむしろ増える。
構成図
【変更前】アプリケーションサーバー ──▶ NAT ゲートウェイ(データ処理料金)──▶ S3 / DynamoDB
【変更後】アプリケーションサーバー ──▶ ゲートウェイ型 VPC エンドポイント(追加料金なし)──▶ S3 / DynamoDB
(インターネット向けの通信だけが NAT ゲートウェイを使う)
S3 と DynamoDB はゲートウェイ型エンドポイントが無料。NAT ゲートウェイ経由をやめるだけでデータ処理料金が消える。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| NAT ゲートウェイの「処理バイト数」への課金が支配的 | S3 / DynamoDB 向けの通信を NAT ゲートウェイから迂回させることが本質的な対策 →選択肢(D)を消す |
| 通信相手は Amazon S3 と Amazon DynamoDB | ゲートウェイ型 VPC エンドポイントに対応する 2 サービスそのもの。この組み合わせが出たら第一候補 →選択肢(A)が正解 |
| コストを「大幅に」削減したい | ゲートウェイ型は追加料金なし。インターフェース型/PrivateLink は時間課金+データ処理料金が残る →選択肢(B・C)を消す |
| プライベートサブネットのリソースはインターネットから直接アクセスさせない | ゲートウェイ型はルートテーブル経由で AWS ネットワーク内を通るだけで、インターネットからの着信経路は増えない →選択肢(A)が正解 |
| アプリケーションの機能は維持する | エンドポイント導入後もインターネット向け通信は NAT ゲートウェイが処理するため、NAT ゲートウェイを削除する必要はない →選択肢(A)が正解 |
ひっかけポイント
- 選択肢 B・C は「プライベート接続になる」という点でセキュリティ要件は満たしてしまう。判断の決め手は料金体系(インターフェース型は時間課金+データ処理料金、ゲートウェイ型は無料)
- AWS PrivateLink=インターフェース型エンドポイントの基盤。選択肢 C は B の言い換えにすぎず、両方が同じ理由で不正解になる(=どちらも正解ではないと見抜ける)
- Transit Gateway は「ルーティングを集約する」という語感で万能に見えるが、S3 / DynamoDB へのパブリックエンドポイント通信の経路にはならない。VPC 間・オンプレ接続用と割り切る
- ゲートウェイ型はルートテーブルへの関連付けが必須。「作っただけ」では効果が出ないため、選択肢に「ルートテーブルに関連付ける」と書かれているかを確認する
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「オンプレミス(Direct Connect / VPN)から S3 にプライベートアクセスしたい」 | ゲートウェイ型は VPC 内からしか使えないため、S3 のインターフェース型エンドポイント(PrivateLink)が正解に変わる。 |
| 「NAT ゲートウェイの費用の大半が外部 API / OS パッチのダウンロードによるもの」 | VPC エンドポイントでは減らせない。通信量そのものの削減やキャッシュ・リポジトリの VPC 内配置が正解軸に。 |
| 「エンドポイント経由で特定のバケットだけにアクセスさせたい」 | エンドポイントポリシーと、バケットポリシーの aws:SourceVpce 条件による制限が正解軸に。 |
| 「通信相手が Amazon Kinesis や Systems Manager などである」 | ゲートウェイ型は使えないため、インターフェース型 VPC エンドポイントが正解になる。 |
| 「AZ 間のデータ転送料金が高い」 | 論点が変わり、同一 AZ 内での通信に寄せる設計(クロス AZ 通信の削減)が正解軸に。 |
リファレンス
この問題を解くために必要な知識を扱う公式ドキュメントです。| 知識項目 | 公式ドキュメント |
|---|---|
| ゲートウェイ型 VPC エンドポイント(対応サービスは S3 と DynamoDB のみ・追加料金なし) | ゲートウェイエンドポイントを使用して Amazon S3 と DynamoDB にアクセスする |
月次のコスト分析を実施したところ、データ転送コストが想定の 3 倍に達しており、特に NAT ゲートウェイの処理バイト数に対する課金が大きな割合を占めていることが判明しました。セキュリティ要件として、プライベートサブネットのリソースはインターネットから直接アクセスできないようにする必要があります。
コストを大幅に削減しつつ、アプリケーションの機能を維持するために推奨される対策はどれですか。
- S3とDynamoDB用のGateway VPC Endpointをそれぞれ作成し、プライベートサブネットのルートテーブルに関連付ける。エンドポイントポリシーで必要なアクションのみを許可する
- S3とDynamoDB用のInterface VPC Endpointをそれぞれ作成し、各プライベートサブネットに配置する。セキュリティグループでアプリケーションサーバーからのトラフィックのみを許可する
- AWS PrivateLinkを使用してS3とDynamoDBへの接続を確立し、各Availability ZoneにPrivateLink Endpointを配置する。エンドポイントのセキュリティグループを適切に設定する
- Transit Gatewayを作成してVPCに接続し、S3とDynamoDB向けのルーティングを集約する。Transit Gatewayのルートテーブルでトラフィックフローを制御する