TOP>コラム一覧>「VPCエンドポイント」にトラフィックが到達する仕組みとマルチAZ構築の2軸で整理 これでVPCエンドポイントは怖くない

「VPCエンドポイント」にトラフィックが到達する仕組みとマルチAZ構築の2軸で整理 これでVPCエンドポイントは怖くない

はじめに

こんにちは、坂です。アプライアンスソリューションの「PaloAlto VMシリーズ」へトラフィックを渡す際にVPCエンドポイントを利用します。その際のエンドポイントへトラフィックを到達する仕組みで戸惑ったのでこの機にVPCエンドポイントへのトラフィック到達について整理してみました。

なお、VPCエンドポイントを作成する管理コンソールに大切な記載が書かれていますが、見落としされつつあるのと、分類しないとわかりにくい点がありましたので、この整理が皆さんに有用な情報となればと思います。

今回、このコラムでフォーカスする内容は、VPCエンドポイント管理コンソールに記載されている箇所になります。VPCエンドポイントの説明は割愛しています。

VPCエンドポイントの種類を整理

エンドポイントの作成する冒頭には、種類について記載されています。

  • インタフェース エンドポイント
  • ゲートウェイロードバランサ エンドポイント
  • ゲートウェイ エンドポイント

これをVPCエンドポイント作成時に指定する「サービスカテゴリ」と作成後のエンドポイントコンソールに表示されるエンドポイントタイプの関係を表すと以下になります。

サービスカテゴリと作成後にコンソールに表示されるエンドポイントタイプ

サービスカテゴリ エンドポイントの種類 コンソールに表示されるエンドポイントタイプ 補足
AWS のサービス インタフェース Interface
ゲートウェイ Gateway
PrivateLink Ready パートナーのサービス インタフェース Interface エンドポイントサービスの種類:
Interface
ゲートウェイロードバランサ GatewayLoadBalancer エンドポイントサービスの種類:
GatewayLoadBalancer
その他のエンドポイントサービス インタフェース Interface エンドポイントサービスの種類:
Interface
ゲートウェイロードバランサ GatewayLoadBalancer エンドポイントサービスの種類:
GatewayLoadBalancer
EC2 インスタンス接続エンドポイント インタフェース Interface

サービスカテゴリの「PrivateLink Ready パートナーのサービス」や「その他のエンドポイントサービス」で利用するエンドポイントの「インタフェース」と「ゲートウェイロードバランサ」の違いは、結び付くエンドポイントサービスに依存します。

各「サービスカテゴリ」にフォーカスして整理しました

AWSのサービス

選択するシナリオは、AWSのサービスに特化したエンドポイントで利用する

サービスカテゴリ エンドポイントの種類 コンソールに表示されるエンドポイントタイプ 特徴
AWS のサービス インタフェース Interface

・利用できるAWSサービス
S3、SSMなど

・コスト
時間課金

ゲートウェイ Gateway

・利用できるAWSサービス
S3、DynamoDBの2種

・コスト
無料

<サービスカテゴリ「AWSのサービス」におけるエンドポイント種類の違い>

エンドポイントの種類 コスト AWS外のオンプレから接続可否 アクセスの制御手段
インタフェース 有料
※時間課金+データ量
接続可能 セキュリティグループ
ゲートウェイ 無料 利用不可 アクセスポリシー

PrivateLink Ready パートナーのサービス

選択するシナリオは、サードパーティが提供する SaaS 製品のエンドポイントサービスを結ぶ際に利用する

サービスカテゴリ エンドポイントの種類 コンソールに表示されるエンドポイントタイプ 特徴
PrivateLink Ready パートナーのサービス インタフェース Interface エンドポイントサービスと組み合わせて利用する
ゲートウェイロードバランサ GatewayLoadBalancer 同上

<サービスカテゴリ「PrivateLink Ready パートナーのサービス」におけるエンドポイント種類の違い>

エンドポイントの種類 コスト 利用可能なエンドポイントサービス アクセスの制御手段
インタフェース 有料
※時間課金+データ量
Interface

・セキュリティグループ

・アクセスポリシー

ゲートウェイロードバランサ 同上 GatewayLoadBalancer 同上

なお、エンドポイントサービスの「Interface」と「GatewayLoadBalancer」の違いは、利用するロードバランサになります。

PrivateLink エンドポイントタイプ エンドポイントサービスのロードバランサのタイプ
インタフェース Interface NetworkLoadBalancer
ゲートウェイロードバランサ GatewayLoadBalancer GatewayLoadBalancer

エンドポイントの種類と利用可能なエンドポイントサービスの関係を示す構成は下図になります。

その他のエンドポイントサービス

選択するシナリオは、利用者が独自に サービスエンドポイントを作成して利用する。

サービスカテゴリ エンドポイントの種類 コンソールに表示されるエンドポイントタイプ 特徴
その他のエンドポイントサービス インタフェース Interface エンドポイントサービスと組み合わせて利用する
ゲートウェイロードバランサ GatewayLoadBalancer 同上

公開情報はありませんが、「PrivateLink Ready パートナーのサービス」と「その他のエンドポイントサービス」を選択時の設定項目に差異はありませんが、利用のすみ分けは、エンドポイントサービスの作成者に応じて分ける。

EC2 インスタンス接続エンドポイント

今まで説明してきたエンドポイントと毛色が異なり、選択するシナリオは、EC2インスタンスへ接続用のエンドポイントに利用する

サービスカテゴリ エンドポイントの種類 コンソールに表示されるエンドポイントタイプ 特徴
AWS のサービス インタフェース Interface エンドポイントサービスと組み合わせて利用する

「VPCエンドポイント」にトラフィックが到達させる仕組みを整理

この内容もVPCエンドポイント管理コンソールに記載されていますが、初見ではとても分かりにくいと思います。

VPCエンドポイント管理コンソールに記載している内容文を引用し、用途ごとに区切って表現

  • サービスを送信先とするトラフィックのためのエントリポイントとして Elastic Network Interface (ENI) を使用します。
  • インターフェイスエンドポイントは通常、サービスに関連付けられたパブリックまたはプライベート DNS 名を使用してアクセス
  • ゲートウェイエンドポイントとゲートウェイロードバランサーのエンドポイントは、サービスを送信先とするトラフィックのためのルートテーブル内のルートのターゲットとして機能します。

分かりにくいポイントは以下の3点

  • VPCエンドポイントは、ENIを作成するケースと作成しないケースがある
  • VPCエンドポイントにトラフィックが到達する仕組みが、名前解決を利用する方法としない方法がある
  • ルートテーブル内のルートのターゲットとして機能説明が読み解き難い

それぞれを整理すると以下になります。

VPCエンドポイントは、ENIを作成するケースと作成しないケースがある

エンドポイントコンソールに表示されるエンドポイントタイプ ENIの作成有無
Interface 有り
Gateway
GatewayLoadBalancer 有り
EC2 Instance Connect Endpoint 有り

VPCエンドポイントにトラフィックが到達する仕組みが、名前解決を利用する方法としない方法がある

エンドポイントコンソールに表示されるエンドポイントタイプ 名前解決
Interface 利用
Gateway 利用 ※1
GatewayLoadBalancer
EC2 Instance Connect Endpoint 利用

※1 Gatewayタイプは、ルートテーブル内のルートのターゲットとして機能しますが、ルートテーブルで利用するIPアドレスを導くための前段に名前解決が利用されます。

ルートテーブル内のルートのターゲットとして機能説明が読み解き難い

エンドポイントコンソールに表示されるエンドポイントタイプ ルーティングで制御
Interface
Gateway
GatewayLoadBalancer
EC2 Instance Connect Endpoint

表だけでは分かり難いので、エンドポイントタイプ「Interface」「Gateway」「GatewayLoadBalancer」単位に図示します。

Interfaceエンドポイント利用時のエンドポイントへトラフィック到達の流れ

Gatewayエンドポイント利用時のエンドポイントへトラフィック到達の流れ

GatewayLoadBalancerエンドポイント利用時のエンドポイントへトラフィック到達の流れ

「VPCエンドポイント」マルチAZで構築の注意点を整理

VPCエンドポイントの種類に応じて、マルチAZが利用できない、VPCエンドポイント作成と合わせてマルチAZで作成ができない場合があります。

それを整理すると以下のとおりです。

エンドポイントコンソールに表示されるエンドポイントタイプ マルチAZの利用可否 作成と合わせて
マルチAZ配置可否
Interface
Gateway
GatewayLoadBalancer ※2
EC2 Instance Connect Endpoint ※1

※1 EC2 Instance Connect Endpointは、作成時に指定可能なSubnetは1つの制約がある。

https://pages.awscloud.com/rs/112-TZM-766/images/20230906_reInforce2023_ISV_DiveDeepSeminar_yhirokiy_EIC_Endpoint.pdf

※2 やりがちな構築作業ミスを参照

<やりがちな構築作業ミス>
サービスカテゴリの「PrivateLink Ready パートナーのサービス」や「その他のエンドポイントサービス」には、「Interface」と「GatewayLoadBalancer」があります。しかし、VPCエンドポイントを作成する管理コンソール画面に違いはありません。
そのため、マルチAZ配置する設定する項目があるので、「GatewayLoadBalancer」を用いたVPCエンドポイント作成中にマルチAZのSubnetを選択してしまうとエラーを引き起こします。

再掲

PrivateLink エンドポイントタイプ エンドポイントサービスのロードバランサのタイプ
インタフェース Interface NetworkLoadBalancer
ゲートウェイロードバランサ GatewayLoadBalancer GatewayLoadBalancer

まとめ

いかがだったでしょうか。今回は、VPCエンドポイントについて、私が感じ悩んだ点を整理してみました。

従来のAWSサービスに結び付いたVPCエンドポイントは理解し易いですが、その知識が思い込みを生み、機能が拡張されたPrivateLinkの接続形態が増えたことにより、VPCエンドポイントへトラフィックが到達するまでの仕組みやマルチAZ構築で戸惑う場面が発生しました。
この機会に触り慣れたサービスを振り返るのはいかがでしょうか。

<ポイント>

PrivateLinkで結ぶエンドポイントサービスの種類によって、

  • エンドポイントへ到達させる仕組みが異なる
  • マルチAZ構成を指定する方法が異なる

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ



【著者プロフィール】

坂 和久(ばん かずひさ)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

オンプレミスの設計業務から構築業務に従事。現在はオンプレミス時代の経験を活用し、エンタープライズ向けのAWSプリセールス並びにAWS案件全般でお客様を支援するアーキテクトとして活躍中。
2022 APN AWS Top Engineers

坂 和久(ばん かずひさ)

TOP>コラム一覧>「VPCエンドポイント」にトラフィックが到達する仕組みとマルチAZ構築の2軸で整理 これでVPCエンドポイントは怖くない

pagetop