▪️目的

AWSでVPCを構築していると、

「プライベートサブネットにあるEC2からS3へアクセスしたい」

「インターネットを経由せずにAWSのサービスへ接続したい」

といったケースがあります。

例えば、以下のような構成です。

Private Subnet
     │
     ↓
    EC2
     │
     ↓
    S3

しかし、プライベートサブネットに配置したEC2は、基本的にインターネットから直接アクセスできません。

そこで利用できるのが**VPCエンドポイント(VPC Endpoint)**です。

VPCエンドポイントを利用すると、VPC内のリソースからAWSのサービスへ、インターネットゲートウェイやNAT Gatewayを経由せずに接続できる構成を作れます。

この記事では、AWS初心者向けにVPCエンドポイントの仕組みや種類、NAT Gatewayとの違い、代表的な利用例について解説します。

この記事を読むことで、以下の内容が分かるようになります。

  • VPCエンドポイントとは何か
  • なぜVPCエンドポイントが必要なのか
  • Gateway型とInterface型の違い
  • S3へ接続する仕組み
  • NAT Gatewayとの違い
  • VPC Endpointとルートテーブルの関係
  • VPC Endpointを利用するメリット

▪️VPCエンドポイントとは?

VPCエンドポイントとは、VPCからAWSのサービスや対応するサービスへ、VPC内からプライベートに接続するための仕組みです。

通常、AWSのサービスへアクセスする場合、サービスによってはインターネット経由の通信を利用することがあります。

一方、VPCエンドポイントを利用すると、VPC内のリソースからAWSサービスへ直接接続する構成を作れます。

イメージすると、

EC2
 │
 │
 ↓
VPC Endpoint
 │
 ↓
AWSサービス

となります。

例えば、プライベートサブネットにあるEC2からS3へアクセスする場合、

Private Subnet
┌────────────────┐
│ EC2            │
│      ↓         │
│ VPC Endpoint   │
└──────┬─────────┘
       ↓
      S3

という構成にできます。


▪️なぜVPCエンドポイントが必要なのか?

では、なぜVPCエンドポイントを使うのでしょうか?

大きな理由の一つが、インターネットを経由せずにAWSサービスへ接続できることです。

例えば、プライベートサブネットにあるEC2からS3へアクセスするとします。

VPCエンドポイントを使わない場合、構成によってはNAT Gatewayを利用して外部へ通信する方法があります。

Private Subnet
     │
     ↓
    EC2
     │
     ↓
NAT Gateway
     │
     ↓
   Internet
     │
     ↓
     S3

一方、VPCエンドポイントを利用すると、

Private Subnet
     │
     ↓
    EC2
     │
     ↓
VPC Endpoint
     │
     ↓
     S3

という構成にできます。

このように、AWSサービスへのアクセス経路をVPC内からプライベートに構成できます。


▪️VPCエンドポイントの種類

VPCエンドポイントには、大きく分けて以下の種類があります。

  • Gateway endpoint
  • Interface endpoint

それぞれ仕組みが異なります。


♦︎Gateway endpointとは?

Gateway endpointは、主にAmazon S3やAmazon DynamoDBへ接続するときに利用します。

Gateway endpointでは、ルートテーブルにVPCエンドポイントへのルートを設定します。

例えば、

Private Subnet
     │
     ↓
    EC2
     │
     ↓
Route Table
     │
     ↓
Gateway Endpoint
     │
     ↓
     S3

という構成です。

現在、Gateway endpointを利用できる代表的なAWSサービスは、

  • Amazon S3
  • Amazon DynamoDB

です。


Gateway endpointとルートテーブル

Gateway endpointを理解するうえでは、ルートテーブルとの関係が重要です。

例えば、プライベートサブネットに以下のようなEC2があるとします。

Private Subnet
     │
    EC2

このサブネットに関連付けられているルートテーブルに、S3向けのエンドポイントルートを設定します。

イメージすると、

Route Table

S3の宛先
   ↓
VPC Endpoint

となります。

そのため、EC2からS3へアクセスすると、ルートテーブルによってVPCエンドポイントへ通信を送ることができます。


♦︎Interface endpointとは?

もう一つがInterface endpointです。

Interface endpointでは、VPC内に**Elastic Network Interface(ENI)**を作成して、AWSサービスなどへプライベートに接続します。

イメージすると、

Private Subnet
┌─────────────────┐
│                 │
│ EC2             │
│  ↓              │
│ Endpoint ENI    │
│                 │
└───────┬─────────┘
        ↓
   AWSサービス

となります。

Interface endpointでは、VPC内のサブネットにエンドポイント用のENIが作成されます。

そのため、Security Groupを設定して通信を制御することもできます。


Interface endpointでは何に接続できる?

Interface endpointでは、AWS PrivateLinkを利用して、多くのAWSサービスへプライベートに接続できます。

例えば、

  • Amazon CloudWatch
  • AWS Systems Manager
  • AWS Secrets Manager
  • Amazon ECR
  • AWS STS

など、さまざまなサービスがあります。

利用できるサービスは増減するため、実際に構築するときはAWS公式ドキュメントで対応状況を確認することが重要です。


▪️Gateway endpointとInterface endpointの違い

ここまでの内容を整理すると、以下のようになります。

項目Gateway endpointInterface endpoint
主な対象S3 / DynamoDB多くのAWSサービスなど
接続方法ルートテーブルENI
Security Group基本的に使用しない使用できる
AWS PrivateLink使用しない使用する
主な用途S3/DynamoDBへの接続各種AWSサービスへのプライベート接続

初心者の段階では、

S3・DynamoDB → Gateway endpoint

それ以外の多くのAWSサービス → Interface endpoint

というイメージを持っておくと理解しやすいでしょう。


▪️S3へのアクセスで考えてみる

具体例として、プライベートサブネットのEC2からS3へアクセスしてみましょう。

♦︎VPCエンドポイントを使わない場合

例えば、EC2からS3へアクセスするためにNAT Gatewayを利用する構成があります。

                    Internet
                       ↑
                       │
                  NAT Gateway
                       ↑
                       │
Private Subnet      EC2

この場合、プライベートサブネットから外部への通信をNAT Gatewayへ送ります。


♦︎Gateway endpointを使う場合

S3向けのGateway endpointを作成すると、

Private Subnet
┌─────────────────┐
│ EC2             │
│  ↓              │
│ Route Table     │
└───────┬─────────┘
        ↓
 Gateway Endpoint
        ↓
       S3

という構成にできます。

S3へのアクセスをVPCエンドポイント経由にすることで、NAT Gatewayを経由しない構成にできます。


▪️VPCエンドポイントとNAT Gatewayの違い

ここは非常に重要です。

NAT GatewayとVPCエンドポイントは、どちらもプライベートサブネットから外部・AWSサービスへ接続する場面で登場しますが、役割は異なります。

NAT Gateway

NAT Gatewayは、主にプライベートサブネットからインターネットへ外向きに接続するために利用します。

Private Subnet
     ↓
NAT Gateway
     ↓
Internet

例えば、

  • OSのパッケージをダウンロードする
  • 外部APIへアクセスする
  • インターネット上のサービスへ接続する

などに利用できます。


VPCエンドポイント

VPCエンドポイントは、VPCから対応するAWSサービスなどへプライベートに接続するために利用します。

Private Subnet
     ↓
VPC Endpoint
     ↓
AWSサービス

例えば、

EC2
 ↓
S3

や、

EC2
 ↓
Secrets Manager

などの通信をプライベートに構成できます。


▪️NAT GatewayとVPCエンドポイントを組み合わせる

実際のAWS環境では、どちらか一方だけを使うとは限りません。

例えば、

                 ┌──→ VPC Endpoint → S3
                 │
Private Subnet → EC2
                 │
                 └──→ NAT Gateway → Internet

という構成です。

EC2からS3へアクセスするときはVPCエンドポイントを利用し、外部のインターネットへアクセスするときはNAT Gatewayを利用します。

このように、通信先に応じて経路を分けることができます。


▪️VPCエンドポイントとSecurity Group

Interface endpointでは、エンドポイントのENIにSecurity Groupを関連付けることができます。

例えば、

EC2
 ↓
Interface Endpoint

という構成の場合、Interface endpoint側のSecurity Groupで、

HTTPS : 443
Source : EC2のSecurity Group

のように通信を許可できます。

このように、Interface endpointでもSecurity Groupを利用してアクセス制御できます。


▪️VPCエンドポイントポリシー

VPCエンドポイントでは、エンドポイントポリシーを設定できる場合があります。

これは、VPCエンドポイントを経由してAWSサービスへアクセスするときの権限を制御するために利用します。

例えばS3のGateway endpointでは、

このEndpoint経由では
特定のS3バケットだけアクセス可能

といった制御を検討できます。

IAMによる権限管理と組み合わせることで、より細かいアクセス制御を行えます。


▪️VPCエンドポイントを利用するメリット

VPCエンドポイントには、いくつかのメリットがあります。

① インターネットを経由しない構成を作れる

AWSサービスへの通信をVPC内からプライベートに構成できます。

セキュリティを考えるうえでも重要です。


② NAT Gatewayへの依存を減らせる

S3など、VPCエンドポイントに対応したAWSサービスへのアクセスをエンドポイント経由にすることで、NAT Gatewayを経由させる必要がなくなります。

その結果、NAT Gatewayの利用量や構成を見直せる場合があります。


③ AWSサービスへのアクセス経路を明確にできる

例えば、

S3 → VPC Endpoint
Internet → NAT Gateway

のように、通信先によって経路を整理できます。


④ セキュリティ設計に活用できる

プライベートサブネットからAWSサービスへ接続する経路をプライベートに構成することで、セキュリティ要件に対応しやすくなります。


▪️VPCエンドポイントを利用した構成例

例えば、AWS上にアプリケーションサーバーを構築するとします。

                         Internet
                            │
                            ↓
                           ALB
                            │
                            ↓
                     Application
                         EC2
                          │
            ┌─────────────┴─────────────┐
            ↓                           ↓
       VPC Endpoint                 NAT Gateway
            ↓                           ↓
      AWS Services                  Internet

この構成では、

  • ユーザーからの通信 → ALB
  • アプリケーション処理 → EC2
  • AWSサービスへのアクセス → VPC Endpoint
  • 外部インターネットへのアクセス → NAT Gateway

というように役割を分けられます。


▪️AWSのサービスを利用するだけなら必ずEndpointが必要?

ここは注意が必要です。

AWSサービスを利用するために、必ずVPCエンドポイントが必要というわけではありません。

サービスや通信経路によって、必要なネットワーク構成は異なります。

例えば、S3へアクセスする場合でも、Gateway endpointを使う方法だけではなく、別の構成が存在します。

また、Interface endpointを作成すればすべてのAWSサービスにアクセスできるわけでもありません。

そのため、実際の設計では、

  • どのAWSサービスへ接続するのか
  • どの通信経路を利用するのか
  • インターネット接続が必要なのか
  • セキュリティ要件は何か
  • コストはどうなるか

などを考える必要があります。


▪️VPCエンドポイントを理解するポイント

VPCエンドポイントを理解するときは、以下の関係を押さえておきましょう。

Private Subnet
      │
      ↓
     EC2
      │
      ├────→ NAT Gateway → Internet
      │
      └────→ VPC Endpoint → AWS Service

つまり、

「プライベートサブネットからどこへ通信するのか?」

によって、適切な通信経路を考えることが重要です。


▪️まとめ

今回はVPCエンドポイントについて解説しました。

VPCエンドポイントは、VPC内のリソースからAWSサービスなどへプライベートに接続するための仕組みです。

代表的な種類として、

  • Gateway endpoint
  • Interface endpoint

があります。

Gateway endpointは主にS3やDynamoDBで利用され、ルートテーブルを利用して通信をVPCエンドポイントへ向けます。

一方、Interface endpointではVPC内にENIを作成し、AWS PrivateLinkを利用して対応するサービスへプライベートに接続します。

また、NAT Gatewayとの違いも重要です。

NAT Gateway
Private Subnet
      ↓
   Internet

VPC Endpoint
Private Subnet
      ↓
 AWS Service

というように、それぞれ役割が異なります。

AWSでネットワークを設計するときは、

「この通信はどこを経由するのか?」

という視点を持つことが非常に重要です。

VPCエンドポイントを理解することで、プライベートサブネットからAWSサービスへ接続するネットワーク構成をより具体的に考えられるようになります。

次回は、AWSのセキュリティや暗号化を理解するうえで重要なAWS KMSについて解説します。
*「KMS」の記事はこちら
→「https://lovelabengineer.com/2026/10/09/awsのkmsとは?暗号化とkmsキーの仕組みを初心者向けに/」

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Latest Comments

表示できるコメントはありません。