はじめに
private subnetからS3やAWS APIへ接続したいとき、どのVPCエンドポイントを選ぶべきか迷っていないでしょうか。
または、ECR、CloudWatch Logs、SSMへつなぐためにVPCエンドポイントを増やしたものの、どれが必要で、どれが料金に効くのか分からなくなっていないでしょうか。
AWS公式ドキュメントとAWS::EC2::VPCEndpointの現行仕様では、VPCエンドポイントの種類は5つです。この記事では、5種類の役割とAWS PrivateLinkとの関係に絞って整理します。
この記事でわかること
- そもそもVPCエンドポイントとAWS PrivateLinkとは何か
- VPCエンドポイントを使う理由
- VPCエンドポイント5種類の違い
- Gateway endpointだけがAWS PrivateLinkを使わない理由
- 接続要件から5種類を選ぶ基準
- CloudFormationでS3 Gateway Endpointを作る最小例
そもそもVPCエンドポイントとは
VPCエンドポイントは、 VPC内から、対応するAWSサービスや共有されたリソースへ、インターネットを経由せずに接続するための「接続口」 です。AWS上で作成・設定するネットワーク用のリソースであり、自分でサーバーを立てて動かすものではありません。
まず、VPCはAWS上に作る「自分たち用のネットワークの区画」だと考えてください。EC2はその区画の中に配置できます。一方、S3などのAWSサービスは、EC2と同じサブネットの中に置くものではありません。そのため、EC2からサービスを使うには、そこへ届く通信経路が必要です。
例えば、プライベートサブネットのEC2から、同じリージョンのS3へファイルを読み書きしたいとします。S3のGateway endpointを使うと、S3向けの経路をルートテーブルへ追加し、NAT GatewayやInternet Gatewayを使わずにアクセスできます。
エンドポイントを作っても、S3そのものが利用側のVPC内へ移動するわけではありません。VPC側に接続口や経路を用意して、必要なサービスへアクセスできるようにします。接続口の実体や設定方法は、エンドポイントの種類によって異なります。
AWS PrivateLinkとは
AWS PrivateLinkは、 VPCと、対応するサービスやリソースを、インターネットを経由せずプライベートに接続するAWSの技術 です。AWSサービスのほか、別のAWSアカウントが提供するサービスなどへの接続にも使えます。
会社の建物にたとえると、VPCエンドポイントは「建物の中に設ける、外部サービス用の受付」です。PrivateLinkは「その受付とサービスの提供元をつなぐAWS側の仕組み」に当たります。利用者が設定する接続口と、その接続を支える技術という関係です。
具体例として、EC2からSecrets Managerに保存したデータベースのパスワードを取得する場面を考えます。Secrets Manager用のInterface endpointを作ると、EC2はその接続口を通じてPrivateLinkでSecrets ManagerのAPIへアクセスできます。この通信のために、EC2へパブリックIPアドレスを付けたり、NAT Gatewayを用意したりする必要はありません。
この例では、VPCエンドポイントが「利用側に用意する接続口」、PrivateLinkが「その接続を実現する技術」、Secrets Managerが「接続先のサービス」です。PrivateLinkという名前のサーバーを自分で構築するわけではありません。
VPCエンドポイントとPrivateLinkは同じ意味ではない
ここで押さえたいのは、 すべてのVPCエンドポイントがPrivateLinkを使うわけではない という点です。AWS公式の分類では、Gateway endpointだけがPrivateLinkを使わず、残りの4種類はPrivateLinkを使います。
- 先ほどのS3の例: Gateway endpointを使い、PrivateLinkは使わない
- Secrets Managerの例: Interface endpointを使い、PrivateLinkも使う
つまり、「VPCエンドポイントを作る」と「PrivateLinkを使う」は、いつも同じ意味になるわけではありません。接続先に合わせてエンドポイントの種類を選び、その種類がどの仕組みで通信するかを確認します。
なお、プライベート接続は通信経路の話です。接続口を作るだけでサービスを操作する権限が付くわけではなく、IAMなどによる認可や、種類に応じたSecurity Group・DNSの設定も必要です。
先に結論
AWS PrivateLinkの公式資料とCloudFormationのVpcEndpointTypeで定義される5種類について、役割を筆者が要約したものが次の表です。
| 種類 | ざっくり言うと | 代表的な用途 |
|---|---|---|
| Gateway endpoint | ルートテーブルでS3/DynamoDBへ向ける | S3、DynamoDB |
| Interface endpoint | サブネットにendpoint network interfaceを作り、PrivateLinkで接続する | AWSサービス、SaaS、独自endpoint service |
| Gateway Load Balancer endpoint | ルートテーブルを使って仮想アプライアンス群へ通信を通す | Firewall、IDS/IPS、トラフィック検査 |
| Resource endpoint | 共有されたresource configurationへ直接つなぐ | RDS、IPアドレス、ドメイン名など |
| Service-network endpoint | 1つのendpointからVPC Lattice service networkへつなぐ | 複数のserviceやresourceへのアクセス |
GatewayだけはAWS PrivateLinkを使いません。残りの4種類はAWS PrivateLinkを使います。
「Gatewayが5種類」ではなく、AWS公式で5種類として列挙されているのは「VPCエンドポイント」です。NAT Gateway、Internet Gateway、virtual private gatewayなどは別の記事で扱います。
前提
- 対象読者: VPC EndpointとPrivateLinkの関係、5種類の使い分けで迷う人
- 想定資格: AWS Certified Solutions Architect - Associate、SysOps Administrator - Associate
- 使う環境: AWS VPC、private subnet、CloudFormation
- 扱わない範囲: 詳細な料金試算、VPC Latticeの構築手順、Transit Gateway集中型設計
- 仕様確認日: 2026-09-10
用語の短い説明
| 用語 | 短い説明 |
|---|---|
| VPC Endpoint | VPCをendpoint service、resource、service networkへプライベートに接続する入口 |
| Endpoint network interface | Interface、GWLB、Resource、Service-network endpointなどでサブネットに作られる、利用者が直接管理できないENI |
| Resource configuration | VPC Latticeで、共有するIPアドレス、ドメイン名、RDSなどのresourceを表す設定 |
| Service network | VPC Latticeで複数のserviceやresourceをまとめる論理的な境界 |
| AWS PrivateLink | VPCとserviceやresourceをプライベートに接続する仕組み |
構成で見る5種類
以下は公式の5種類を、接続目的から選べるよう筆者が図にしたものです。
5種類の違い
AWS公式のendpoint分類とPrivateLink料金をもとに、設定と料金の観点を筆者が整理しています。
| 種類 | 主な接続対象 | 主な設定 | 主な料金観点 |
|---|---|---|---|
| Gateway | S3、DynamoDB | Route table、endpoint policy | Gateway endpoint自体の追加料金なし |
| Interface | 対応AWSサービス、SaaS、独自endpoint service | Subnet、Security Group、Private DNS | Endpointを配置したAZごとの時間料金、データ処理料金 |
| GatewayLoadBalancer | GWLB背後の仮想アプライアンス | Subnet、Route table | Endpointの時間料金、データ処理料金 |
| Resource | 共有されたresource configuration | Subnet、Security Group、DNS | Resourceごとの時間料金、データ処理料金 |
| ServiceNetwork | VPC Lattice service network | Subnet、Security Group、DNS | PrivateLinkとVPC Latticeの現行料金を個別確認 |
料金、対象サービス、対応リージョン、quotaは変わる可能性があります。設計時は必ず公式ドキュメントと料金ページで確認してください。
1. Gateway endpoint
Gateway endpointはS3とDynamoDB向けです。選択したroute tableへAWS管理のprefix listを宛先とする経路が追加され、Internet GatewayやNATデバイスを経由せずに接続できます。
- Gateway endpoint自体の追加料金はない
- AWS PrivateLinkは使わない
- S3とDynamoDBはInterface endpointにも対応するため、接続元やDNS要件によって使い分ける
- Endpoint policyはIAM policyやS3 bucket policyを置き換えるものではない
2. Interface endpoint
Interface endpointは、指定した各subnetにprivate IPを持つendpoint network interfaceを作ります。対応するAWSサービス、他アカウントのendpoint service、SaaSなどへAWS PrivateLinkで接続します。
- Private DNSを使うには、VPCのDNS hostnamesとDNS resolutionを有効にする
- EndpointのSecurity Groupで、ワークロードから必要な通信を受け入れる
- Endpointを配置したAZごとの時間料金とデータ処理料金を確認する
- Endpoint policyをサポートしないAWSサービスもある
3. Gateway Load Balancer endpoint
Gateway Load Balancer endpointは、Firewall、IDS/IPS、監視などの仮想アプライアンスへ通信を通すためのendpointです。PrivateLinkでGWLB endpoint serviceへ接続し、route tableで検査経路を組みます。
1つのGWLB endpointで選択できるのは1つのAZの1 subnetです。複数AZで同一AZ内の経路を維持する場合は、AZごとにendpointを設計します。
4. Resource endpoint
Resource endpointは、VPC Latticeのresource configurationで表されたresourceへprivateに接続します。IPアドレス、ドメイン名、RDS databaseなどを対象にでき、resource提供のためにNLBを用意する必要はありません。
別アカウントから共有されたresource configurationを使う場合は、AWS Resource Access Managerで共有を受諾します。1つのResource endpointに関連付けられるresource configurationは1つです。
5. Service-network endpoint
Service-network endpointは、VPC Lattice service networkに関連付けられた複数のserviceやresourceへ、1つのendpointからアクセスするための種類です。
VPC Lattice service用には、endpointを作る各AZで連続した/28の未使用IPv4アドレスが必要です。多数のresourceを扱う場合もIPアドレスを消費するため、subnetの空き容量を先に確認します。
CloudFormation例: S3 Gateway Endpoint
S3へprivate subnetからアクセスするだけなら、Gateway endpointを検討します。以下はAWS標準パーティションを想定した構成例です。実AWS環境でのデプロイ・疎通確認は未実施のため、VPC、ルートテーブル、バケット名を環境に合わせて調整してください。
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
VpcId:
Type: AWS::EC2::VPC::Id
Description: Endpointを作成するVPC
PrivateRouteTableId:
Type: String
Description: S3向け経路を追加するprivate subnet側のルートテーブル
Resources:
S3GatewayEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
# Gateway型はS3やDynamoDBで使う
VpcEndpointType: Gateway
VpcId: !Ref VpcId
ServiceName: !Sub com.amazonaws.${AWS::Region}.s3
RouteTableIds:
- !Ref PrivateRouteTableId
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal: "*"
Action:
- s3:GetObject
Resource:
# 公開用の例。実運用では対象バケットを明確に絞る
- arn:aws:s3:::example-private-bucket/*
このendpoint policyは「このendpointを通して許可する範囲」を制御し、この設定だけでS3への権限が付与されるわけではありません。IAM policyやbucket policyなどによる認可も必要ですが、両方へ常にAllowを書く必要があるという意味ではありません。同一アカウントの基本的な評価ではidentity-based policyとresource-based policyのAllowを組み合わせ、明示的Denyを優先します。クロスアカウントアクセス、SCP、permissions boundaryなどの条件も別途確認します。
デプロイ前にAWS CloudFormation APIへ送り、テンプレートの基本構文を確認します。これはresourceの作成や疎通確認ではありません。
# 実リソースを作る前にテンプレートの構文だけ確認する
aws cloudformation validate-template \
--template-body file://s3-gateway-endpoint.yml \
--region ap-northeast-1
Interface型でよく出るサービス
Interface endpointは、private subnetの中からAWS APIへ出したいときに検討します。
| 用途 | 例 |
|---|---|
| EC2管理 | Systems Manager、SSM Messages。EC2 Messagesの要否はリージョンとSSM Agentの仕様を確認 |
| コンテナ | ECR API、ECR Docker、CloudWatch Logs |
| ログ | CloudWatch Logs |
| 秘密情報 | Secrets Manager、Systems Manager Parameter Store |
たとえば、private subnetのEC2をSession Managerで管理したい場合は、SSM系のInterface endpointを検討します。必要なendpointはリージョンや機能で異なるため、固定リストをそのまま作らずSystems Manager公式資料で確認します。
ECRからimage layerを取得する構成では、ECR用Interface endpointだけでなくS3への経路も必要になる場合があります。ECSやECRの公式手順で、Fargate platform versionやpull-through cacheなどの条件も確認してください。
接続要件から選ぶ
| 要件 | 先に検討する候補 |
|---|---|
| S3へ大量にアクセスする | S3 Gateway endpointを先に検討 |
| DynamoDBへアクセスする | DynamoDB Gateway endpointを検討 |
| 対応するAWS APIへprivateに接続する | Interface endpoint |
| 共有されたRDS、IP、ドメイン名へ直接つなぐ | Resource endpoint |
| VPC Latticeの複数serviceやresourceへつなぐ | Service-network endpoint |
| Firewallなどで通信をinline検査する | Gateway Load Balancer endpoint |
| AWS APIだけへ閉じたい | Interface endpointを検討 |
Endpointを増やせば正解ではありません。特にInterface endpointはサービス数と配置AZ数に応じて増えやすいため、Endpointの時間・データ処理料金と実際の通信量を確認します。Internetへの出口や、VPC間・オンプレミス間のネットワーク全体を接続する経路が必要なら、Gateway、VPC Peering、VPNなどを検討します。VPC Endpointは、別VPCなどにある特定のserviceやresourceへ接続する用途では利用できます。
試験で意識する観点
- AWS公式の
VpcEndpointTypeは5種類で、Gateway endpointはその1種類 - S3とDynamoDBはGateway endpointとInterface endpointの両方に対応する
- Interface endpointはPrivateLinkを使い、ENIとSecurity Groupが関係する
- Gateway Load Balancer endpointは仮想アプライアンスによるinline検査に使う
- Resource endpointとService-network endpointはVPC Latticeのresource sharingと関係する
- VPC Endpointは特定のserviceやresourceへの接続に使い、Internetへの出口やVPC間全体のルーティングとは区別する
- コスト、可用性、セキュリティをセットで比較する
実務チェックリスト
- private subnetから必要なAWSサービスを列挙した
- S3/DynamoDBはGateway endpointを検討した
- Interface endpointのサービス数とAZ数を見積もった
- 仮想アプライアンス経由ならGateway Load Balancer endpointを検討した
- Resource endpointとService-network endpointのどちらが粒度に合うか確認した
- Private DNSを有効にするか確認した
- 対象サービスがEndpoint policyをサポートするか確認した
- Endpoint policy、IAM policy、resource policyを組み合わせて権限を確認した
- Service-network endpointで必要なsubnetの空きIPを確認した
- 月次でEndpointの料金を見る担当を決めた
参考・確認先
- AWS PrivateLink concepts: VPC endpoints
- Gateway endpoints
- Access an AWS service using an interface VPC endpoint
- Access an inspection system using a Gateway Load Balancer endpoint
- Access a resource through a resource VPC endpoint
- Access a service network through a service-network endpoint
- AWS::EC2::VPCEndpoint
- AWS services that integrate with AWS PrivateLink
- Control access to VPC endpoints using endpoint policies
- AWS PrivateLink pricing
- 仕様確認日: 2026-09-10
関連記事
- AWS VPC設計入門 CIDR・サブネット・ルートを最初に決める理由
- AWSネットワークのGateway 11種類を整理する Internet・NAT・VPN・Transit・Direct Connect
- CloudFormationで作成したVPCエンドポイントにAWS CLIにてタグを作成しよう
- AWS CloudFormationでS3エンドポイントを使用したS3バケットを構築しよう
- AWSインフラ工程を5ステップで整理する 要件定義・設計・実装・検証
まとめ
- VPCエンドポイントはGateway、Interface、GatewayLoadBalancer、Resource、ServiceNetworkの5種類
- Gateway endpointだけはPrivateLinkを使わず、S3とDynamoDBへroute tableで接続する
- 残り4種類はPrivateLinkを使い、接続先と目的で選ぶ
- EndpointはSecurity Groupやpolicyだけでなく、料金、AZ、DNS、subnetの空きIPも見る
おわりに
VPC Endpointは、AWSのネットワーク設計を一段実務寄りにしてくれるテーマです。
Wealthy Designでは、クラウドのコスト、セキュリティ、運用性をまとめて説明できるエンジニアリングを大切にしています。
会社の取り組みは、会社サイトにまとめています。

