本文へスキップ
BecomeCoder

AWS SAP(ソリューションアーキテクト プロフェッショナル)コース · 第3章 複雑な組織のネットワーク設計 · レッスン15

AWS PrivateLink とエンドポイントサービス ― サービスを安全に公開・消費する

導入

Transit Gatewayは「ネットワーク全体をつなぐ」ための仕組みでした。一方で、「特定の1つのサービスだけをプライベートに公開したい/消費したい」という、もっと限定的なニーズもあります。VPC全体を丸ごとつなぐのではなく、サービス単位で安全に橋渡しするのが AWS PrivateLink です。

説明

AWS PrivateLink は、VPCを越えてサービスをプライベートに公開・消費する仕組みです。利用側のVPCには インターフェイスVPCエンドポイント(ENI) が作られ、公開側は エンドポイントサービス(VPC Endpoint Service) として自分のNetwork Load Balancer(NLB)の背後にあるサービスを公開します。

TGWとの決定的な違いは、ネットワーク全体をつなぐか、1つのサービスだけをつなぐかです。PrivateLinkでは相手のVPC内部のルーティングテーブルやIPレンジを一切気にする必要がなく、CIDRが重複していても利用できます。これはマルチテナントSaaS提供や、買収した会社のVPCとCIDRが被っている場合などに極めて有効です。

flowchart LR
    subgraph ConsumerVPC["利用者VPC"]
        C["アプリ"] --> EP["インターフェイス<br/>VPCエンドポイント"]
    end
    subgraph ProviderVPC["提供者VPC"]
        NLB["Network Load Balancer"] --> SVC["サービス"]
    end
    EP -- "PrivateLink<br/>(AWSネットワーク内)" --> NLB
比較VPCピアリング/TGWPrivateLink
接続の単位VPC全体のネットワーク特定の1サービスだけ
CIDR重複不可(ルーティングが破綻)問題なし
双方向の可視性相手VPCの内部が見える提供者の内部は見えない(サービスだけ公開)
向いている用途社内の多数VPCの相互接続SaaS提供、部門をまたいだサービス提供

なお VPCエンドポイント(Gateway型/S3DynamoDB向け) はPrivateLinkとは別物で、AWSのパブリックサービスにインターネットを経由せずアクセスするための機能です。PrivateLinkは自分たちが作ったサービス(NLB配下)を公開する用途に使う点を区別してください。

読んでみよう

「異なる部門・異なる会社(買収先など)のVPCとCIDRが重複していて、それでも特定のAPIだけ連携したい」という要件が出たら、PrivateLinkが最有力候補です。「ネットワーク全体か、サービス単体か」の区別がTGWとPrivateLinkを選び分ける鍵になります。