AWS PrivateLink
VPC 内からインターネットを経由せずに AWS サービスやサードパーティサービスにプライベート接続するネットワーク機能
概要
AWS PrivateLink は、VPC 内のリソースからインターネットを経由せずに AWS サービス、独自のサービス、サードパーティの SaaS サービスにプライベートにアクセスするためのネットワーク技術です。VPC エンドポイントを作成すると、VPC 内にプライベート IP アドレスを持つ ENI (Elastic Network Interface) が配置され、トラフィックは AWS のバックボーンネットワーク内で完結します。データがインターネットに露出しないため、セキュリティ要件の厳しい金融機関や医療機関で広く採用されています。
インターフェイスエンドポイントとゲートウェイエンドポイントの違い
VPC エンドポイントには、インターフェイスエンドポイント (PrivateLink) とゲートウェイエンドポイントの 2 種類があります。インターフェイスエンドポイントは、指定したサブネットに ENI を作成し、プライベート IP アドレスを割り当てます。セキュリティグループでアクセス制御が可能で、100 以上の AWS サービス (EC2 API、Lambda、Secrets Manager、CloudWatch Logs、STS など) に対応しています。料金はエンドポイントの稼働時間 (約 0.01 USD/時間/AZ) とデータ処理量 (約 0.01 USD/GB) で課金されます。ゲートウェイエンドポイントは S3 と DynamoDB のみに対応する特殊なタイプで、ルートテーブルにエントリを追加する方式で動作します。ENI を作成しないため追加料金が発生せず、S3 や DynamoDB への大量アクセスがあるワークロードではコスト面で有利です。ただしセキュリティグループによる制御はできず、エンドポイントポリシーでアクセス制御を行います。S3 にはインターフェイスエンドポイントも作成可能で、オンプレミスから Direct Connect 経由で S3 にアクセスする場合はインターフェイスエンドポイントが必要です。
NAT Gateway の代替としてのコスト削減効果
VPC 内のプライベートサブネットから AWS サービスにアクセスする方法として、NAT Gateway 経由のインターネットアクセスと PrivateLink の 2 つがあります。NAT Gateway はデータ処理量に対して 0.045 USD/GB の料金が発生し、大量のデータを AWS サービスとやり取りするワークロードではコストが急増します。たとえば、Lambda 関数が CloudWatch Logs に大量のログを送信するケースや、EC2 インスタンスが S3 から大量のデータを読み込むケースです。S3 と DynamoDB にはゲートウェイエンドポイント (無料) を使い、その他の AWS サービスにはインターフェイスエンドポイントを使うことで、NAT Gateway のデータ処理料金を大幅に削減できます。インターフェイスエンドポイントのデータ処理料金は 0.01 USD/GB で、NAT Gateway の約 1/4 です。ただし、エンドポイントの稼働時間料金が AZ ごとに発生するため、アクセス頻度が低いサービスに対してエンドポイントを作成すると逆にコスト増になる場合があります。損益分岐点の目安として、月間のデータ転送量が 100 GB を超えるサービスにはエンドポイントを作成する価値があります。
エンドポイントサービスによるサービス公開
PrivateLink はAWS サービスへのアクセスだけでなく、自社のサービスを他の AWS アカウントや VPC にプライベートに公開する機能も持っています。Network Load Balancer (NLB) の背後にサービスを配置し、エンドポイントサービスとして登録すると、他のアカウントの VPC からインターフェイスエンドポイント経由でアクセスできるようになります。VPC ピアリングや Transit Gateway と異なり、IP アドレスの重複を気にする必要がなく、サービス提供側と利用側のネットワークが完全に分離されたまま通信できます。SaaS プロバイダーが顧客の VPC にサービスを公開するケースや、大企業内で共通基盤チームがマイクロサービスを各事業部の VPC に提供するケースで活用されています。エンドポイントサービスの設定では、接続リクエストの承認を手動にするか自動にするかを選択できます。セキュリティ要件が高い場合は手動承認にし、接続元のアカウント ID を確認してから承認するフローが推奨されます。Gateway Load Balancer (GWLB) と組み合わせれば、ファイアウォールや IDS/IPS などのネットワークアプライアンスを PrivateLink 経由で提供することも可能です。