AWS PrivateLink でプライベート接続を実現 - VPC エンドポイントとエンドポイントサービス

インターネットを経由せず AWS サービスにプライベート接続する。Gateway エンドポイントの無料活用とエンドポイントサービスの構築を紹介します。

PrivateLink の概要

PrivateLinkVPC から AWS サービスや SaaS にプライベート接続を提供するサービスです。インターネットゲートウェイや NAT Gateway を経由せず、AWS のプライベートネットワーク内で通信が完結します。セキュリティ要件でインターネットアクセスを禁止している環境でも AWS サービスを利用できます。

エンドポイントの種類

インターフェースエンドポイントは ENI (Elastic Network Interface) をサブネットに作成し、プライベート IP アドレスで AWS サービスにアクセスします。時間課金とデータ処理課金が発生します。ゲートウェイエンドポイントは S3 と DynamoDB 専用で、ルートテーブルにプレフィックスリストを追加する方式です。無料で利用でき、S3 への大量アクセスがある場合はゲートウェイエンドポイントが推奨です。エンドポイントポリシーで特定の S3 バケットのみにアクセスを制限し、意図しないバケットへのデータ流出を防止します。

エンドポイントサービスの構築

自社のサービスを PrivateLink 経由で他のアカウントに公開するには、 NLB または GWLB の背後にサービスを配置し、エンドポイントサービスを作成します。許可プリンシパルで接続を許可するアカウントや IAM プリンシパルを制御し、接続リクエストの手動承認または自動承認を設定します。コンシューマー側はインターフェースエンドポイントを作成し、プライベート DNS 名でサービスにアクセスします。プライベート DNS 名を設定すると、コンシューマーの VPC 内で DNS 解決がエンドポイントの ENI に向けられ、アプリケーションコードの変更なしでプライベート接続に切り替えられます。エンドポイントポリシーで特定の API アクションやリソースへのアクセスを制限し、データ流出を防止します。 VPC エンドポイントに関する詳しい解説はAmazon の関連書籍でも確認できます。

PrivateLink の料金と設計指針

インターフェースエンドポイントは AZ ごとに時間課金 (約 0.01 ドル/時) とデータ処理料金 (約 0.01 ドル/GB) が発生します。マルチ AZ 構成では AZ 数分のコストがかかるため、可用性要件に応じて配置する AZ 数を決定します。Gateway エンドポイント (S3、DynamoDB) は無料で、NAT Gateway 経由のトラフィックを削減する最も効果的なコスト最適化策です。大量のデータ転送がある場合、PrivateLink のデータ処理料金と NAT Gateway のデータ処理料金を比較し、コスト効率の高い方を選択します。VPC エンドポイントの利用状況は CloudWatch メトリクスで監視でき、未使用のエンドポイントを特定して削除することでコストを削減します。

まとめ

PrivateLink は VPC からのプライベート接続を提供し、インターネットを経由しないセキュアな通信を実現するサービスです。Gateway エンドポイントで S3/DynamoDB への無料プライベート接続を確立し、インターフェースエンドポイントで 100 以上の AWS サービスにプライベートアクセスします。エンドポイントポリシーでアクセスを制限し、エンドポイントサービスで自社サービスを他アカウントに安全に公開します。