COLUMN

2025年版AWS Privatelinkを上手に使ってスマートに通信するコツ

こんにちは、白鳥です。

昨年のre:Invent 2024前後でAWS Privatelinkの大幅なアップデートがありました。これまでの用途に加えて、ネットワークのアーキテクチャを見直すこともできるため、最新仕様の解説と、新たに使えるようになったアーキテクチャ例を見ていきたいと思います。

想定する読者

  • AWS Privatelinkの最新仕様を理解したい方
  • AWS Privatelinkをスマートに使いこなしたい方

AWS Privatelinkを利用した通信の設計・構築のご相談について、NTT東日本のクラウドエンジニアがお応えしますので、お気軽にお問い合わせください!

AWS Privatelinkの概要と基本仕様

AWS Privatelinkの基本について振り返りたいと思います。

AWS Privatelinkは、複数の説明方法がありますが、VPCのリソースから外部のリソースに対して高可用性を保ったままプライベートに接続する、片方向の接続となります。

一つのコンポーネントだけではなく、通信元となるコンシューマーのVPCにあるVPCエンドポイントと、通信先となるプロバイダーのエンドポイントサービスの組み合わせがAWS Privatelinkとなります。図にするとこのような形になります。

VPCエンドポイントやエンドポイントサービスにはいくつかの種類がありますが、共通して以下のような機能を持っています。

  • コンシューマーからプロバイダーへの片方向の通信
  • コンシューマー側は接続先ごとにVPCエンドポイントを作成し、エンドポイントサービスに接続
  • IPv4/IPv6/デュアルスタックに対応(一部のAWSのサービスへの接続はIPv4のみ)
  • コンシューマーとプロバイダー間でCIDR範囲が重複していても通信可能
  • 10Gbpsまで利用可能で、一部のVPCエンドポイントでは100Gbpsまで自動スケールする

コンシューマー側とプロバイダー側でそれぞれの機能を簡単に見ていきます。

AWS Privatelinkを利用した通信の設計・構築のご相談について、NTT東日本のクラウドエンジニアがお応えしますので、お気軽にお問い合わせください!

AWS Privatelinkで使われるVPCエンドポイントについて

AWS Privatelinkにおけるコンシューマー側のVPCで使われるVPCエンドポイントは4種類あります。

  • インターフェースVPCエンドポイント
  • Gateway LoadBalancer VPCエンドポイント
  • Resource VPCエンドポイント
  • サービスネットワークVPCエンドポイント

それぞれ見ていきましょう

インターフェースVPCエンドポイント

インターフェースVPCエンドポイントは、VPCのENIを通じて提供されるインターフェースです。

TCPまたはUDPが利用でき、VPC間の接続や、AWSのマネージドサービスへのプライベート接続を実現します。

インターフェースVPCエンドポイントを作成すると、プライベートDNS名が2つ作成され、リージョンレベルのDNS名と、アベイラビリティーゾーンレベルのDNS名が作成されます。

エンドポイントサービスに接続する際に、各アベイラビリティーゾーンにインターフェースVPCエンドポイントを作成した場合、次のような挙動になります。

リージョンレベルのDNS名を指定した場合、ラウンドロビンでインターフェースが選択されます。

引用:AWS のサービス を介したアクセス AWS PrivateLink - Amazon Virtual Private Cloud

アベイラビリティーゾーンレベルのDNS名を使用した場合、当該のアベイラビリティーゾーンのインターフェースVPCエンドポイントに接続します。

引用:AWS のサービス を介したアクセス AWS PrivateLink - Amazon Virtual Private Cloud

プロバイダーがVPC内部のリソースの場合、プロバイダー側はNLBを利用します。先日のアップデートでNLBが不要になったアナウンスがありましたが、それは後述するリソースVPCエンドポイントを使用しての接続となりますので、インターフェースVPCエンドポイントを使用してプロバイダー側のVPCへ接続する場合は、引き続きNLBが必要になります。

引用:を通じてサービスを共有する AWS PrivateLink - Amazon Virtual Private Cloud

アクセス制御にはセキュリティグループと、一部のAWSサービスに接続する際に、エンドポイントポリシーと呼ばれるポリシーを記述して制御することも可能です。

Gateway LoadBalancer VPCエンドポイント

Gateway LoadBalancerを経由して、UTMなどのネットワーク仮想アプライアンスでトラフィックを検査したい場合に、Gateway LoadBalancer VPCエンドポイントを使用します。

引用:経由で仮想アプライアンスにアクセスする AWS PrivateLink - Amazon Virtual Private Cloud

トラフィック検査を有効にするため、各サブネットのルートテーブルをGateway LoadBalancer VPCエンドポイントを使用するように設定します。

リソースVPCエンドポイント

NLBを使用しないVPCのリソースへの接続はこちらのリソースVPCエンドポイントを使用します。TCPのみの接続となり、UDPでは接続できません。リソースVPCエンドポイントとResource Gatewayを接続しますが、リソースVPCエンドポイントとResource Gatewayの少なくとも1つのアベイラビリティーゾーンが重複している必要があります。

また、リソースVPCエンドポイントはIPv4の場合、接続先ごとに/28の倍数個(つまり16の倍数個)のIPアドレスを使用しますので、サブネットのIPアドレス数には注意が必要です。

リソースVPCエンドポイントのアクセス制御にはセキュリティグループが使用可能です。

サービスネットワークVPCエンドポイント

サービスネットワークVPCエンドポイントはVPC Latticeのサービスネットワークに接続する場合に使用します。VPC Latticeでは、VPCをサービスネットワークに関連付ける方法とサービスネットワークVPCエンドポイントの2つがありますが、サービスネットワークVPCエンドポイントを使用する場合、VPC外部のリソースからの接続も可能になるため、状況に応じて使い分けができます。このあたりはVPC Latticeの概念を理解する必要がありますが、今回は省略したいと思います。

引用:経由でサービスネットワークにアクセスする AWS PrivateLink

AWS Privatelinkを利用した通信の設計・構築のご相談について、NTT東日本のクラウドエンジニアがお応えしますので、お気軽にお問い合わせください!

AWS Privatelinkにおけるエンドポイントサービス

それでは、プロバイダー側のエンドポイントサービスで使われるコンポーネントについて理解したいと思います。

AWSのマネージドサービスや公開されているSaaS製品へのアクセス

Amazon S3等のマネージドサービスや、AWS Marketplaceで公開されているSaaS製品のアクセスの場合、エンドポイントサービスはAWSやSaaS事業者側で管理されますので、特に意識せずに接続することができます。

引用:AWS のサービス を介したアクセス AWS PrivateLink - Amazon Virtual Private Cloud

エンドポイントサービス

エンドポイントサービスは、プロバイダー側のトラフィック受信に関する設定と、接続先のリソースの関連付けを行います。

インターフェースVPCエンドポイントや、Gateway LoadBalancer VPCエンドポイントを使用する場合、エンドポイントサービスを作成する必要があります。該当するNetwork LoadBalancerやGateway LoadBalancerと関連付けて使用します。デフォルトは同一リージョン内からのみの接続となりますが、クロスリージョンアクセスを有効にすると、リージョン間のトラフィックを受けることができます。

コンシューマー側がVPCエンドポイントを作成した際に接続の許可を行うことで、コンシューマーとプロバイダーを接続することができます。

Resource Gateway

Network LoadBalancerやGateway LoadBalancerが使用できないサービス(例えば、単独のEC2やRDSなど)への接続にはこのResource Gatewayを使用します。Resource Gatewayを作成するためには、サブネットで/28ブロックが必要です。

接続先の管理には、Resource Configurationを使用します。接続先のIPアドレスやARNなどを指定します。執筆時時点では、ARNはRDSのみ使用できます。

受け入れられるポート範囲もこちらで指定します。

VPC Lattice サービスネットワークとの接続

VPC Latticeとの接続の場合、Resource Configurationを使って、VPC Latticeのサービスネットワークと関連付けます。ターゲットとなるサービスは複数組み合わせることができます。

AWS Privatlinkを使用したリファレンスアーキテクチャ

それでは、AWS Privatelinkを使用したリファレンスアーキテクチャを見ていきたいと思います。

アーキテクチャ①:AWSマネージドサービスへの接続や、SaaSへの接続

AWSの各種マネージドサービスや、Marketplaceで公開されているSaaSとのプライベート接続には、インターフェースVPCエンドポイントを利用した接続を行います。接続先ごとにインターフェースVPCエンドポイントを作成します

アーキテクチャ②:UDPを使用した共通アプリケーションへの接続

UDPを利用した場合、インターフェースVPCエンドポイントを利用します。コンシューマーとして複数のVPCを使うこともできます。

TCPの場合は、転送量が多い場合はインターフェースVPCエンドポイントを使い、転送量が少ない場合や、HTTPベースでの細かな制御が必要な場合はサービスネットワークVPCエンドポイントを使うことをおすすめします。

アーキテクチャ③:データベースの共有

データベースの専用アカウントがあり、データベースを複数のサービスやシステムで共有する場合、リソースVPCエンドポイントを使用します。この場合はRDSのケースですが、DNSで公開されるサービスであればNATゲートウェイを中継して外部のデータベースサービスなどにも共有が可能です。

アーキテクチャ④:複数のVPCにまたがるサービスへの接続

下部の接続先が複数のEC2/ECS/EKS/Lambdaなど複数のアーキテクチャからなるサービスであったり、パスやHTTPのヘッダ情報などで細やかな制御を行ったりしたい場合は、サービスネットワークVPCエンドポイントを使用します。サービスネットワークVPCエンドポイントを使用するか、VPCを一つずつ関連付けてVPC Latticeのネットワークを作るかはアプリケーションの特性に合わせて検討されることをおすすめします。

アーキテクチャ⑤:CIDRが重複している空間での双方向接続

あまり推奨されない構成かもしれませんが、CIDR範囲が重複しているVPC間での双方向接続も、双方でAWS Privatelinkを利用することで接続することができるようになります。しかし、それぞれの通信経路が異なるため、通信経路が異なっても不具合を起こさないような考慮が必要です。

用途別のVPCエンドポイントの使い分け

これまでのリファレンスアーキテクチャも含め、利用するVPCエンドポイントをまとめます。

  • 横にスクロールします
接続先 プロトコル VPCエンドポイントのタイプ
AWSのマネージドサービス TCP インターフェースVPCエンドポイント
MarketplaceのPrivateLink Ready パートナーサービス TCP/UDP インターフェースVPCエンドポイント
ネットワーク仮想アプライアンスやGateway Load Balancerで公開されているSaaS TCP/UDP Gateway LoadBalancer VPCエンドポイント
NLBで接続するサービス TCP/UDP インターフェースVPCエンドポイント
UDP指定のサービス UDP インターフェースVPCエンドポイント
TCP(特にHTTP/HTTPS)で細かい制御が必要なサービス TCP サービスネットワークVPCエンドポイント
その他VPCのリソース TCP リソースVPCエンドポイント

AWS Privatelinkを利用した通信の設計・構築のご相談について、NTT東日本のクラウドエンジニアがお応えしますので、お気軽にお問い合わせください!

まとめ

AWS Privatelinkも出た当初に比べると多くの接続先が増え、選択基準が難しいと思うことも多いかもしれませんが、重複しないIPアドレス設計の制約から解放されるメリットもあります。AWS Privatelinkを上手に使ってスマートに通信を行っていきましょう。

NTT東日本では、AWSの構築保守だけではなく、ネットワーク設計なども含めたエンドツーエンドでのソリューション提供をおこなっております。

経験値豊かなメンバーがご担当させていただきますので、是非お気軽にお問い合わせください!

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。