ゲートウェイおよびインターフェイス VPC エンドポイントを介した接続の問題をトラブルシューティングするにはどうすればよいですか?

最終更新日: 2022 年 5 月 4 日

ゲートウェイとインターフェースの Amazon Virtual Private Cloud (Amazon VPC) エンドポイントを介した接続の問題をトラブルシューティングするにはどうすればよいですか?

解決方法

次の解決策は、VPC エンドポイントを介してエンドツーエンド接続を確立するために重要なさまざまなパラメータをカバーしています。接続のトラブルシューティングの手順も含まれています。

ゲートウェイ VPC エンドポイント

ゲートウェイ VPC エンドポイントを使用すると、VPC から Amazon Simple Storage Service (Amazon S3) および Amazon DynamoDB にプライベートに接続できます。

ゲートウェイエンドポイントを使用する場合、それぞれのサービスへの接続に影響を与える4つの要因があります。

  • エンドポイントポリシー
  • VPC サブネットネットワークアクセス制御リスト (ACL)、
  • 出典サブネットルートテーブル、
  • 出典 Amazon Elastic Compute Cloud (Amazon EC2) または AWS Lambda セキュリティグループ、

エンドポイントポリシー

カスタムエンドポイントポリシーを使用する場合は、エンドポイントに関連付けられているポリシーで、サービスに対してアクションを実行するために必要なアクセスが許可されていることを確認してください。デフォルトのエンドポイントポリシーでは、サービスへのフルアクセスが許可されています。

詳細については、ゲートウェイエンドポイントのエンドポイントポリシー を参照してください。

VPC サブネットネットワークアクセス制御リスト

サブネットネットワーク ACLは、AWS リージョン内の S3 および DynamoDB CIDR へのインバウンドとアウトバウンドの両方の TCP 接続を許可する必要があります。AWS Command Line Interface (AWS CLI) から次のコマンドを実行すると、特定の AWS リージョンの S3 および DynamoDB の IP CIDR を表示できます。

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

aws ec2 describe-prefix-lists --region <AWS Region>

注: AWSサービスのパブリックIPアドレスCIDRは変更される可能性があります。ネットワークアクセスコントロールリストルールですべての CIDR が許可されていることを確認するには、前のコマンドを断続的に再実行して、新しい CIDR 範囲を確認します。

出典 EC2 または Lambda セキュリティグループ

S3 および DynamoDB エンドポイントへの接続を開始する出典に関連付けられたセキュリティグループは、以下を許可する必要があります。

  • 公開 IP CIDR への出力 (アウトバウンド) 接続。
    - または -
  • 関連する AWS リージョンの S3 と DynamoDB の プレフィックスリスト ID

注:セキュリティグループとネットワーク ACL ルールを設定するときは、 Amazon S3 エンドポイントと DynamoDB エンドポイントのドキュメントを参照して、サポートされているプロトコルを確認してください。この情報を使用して、トラフィック制限の基礎を築きます。

サブネットルートテーブル

ゲートウェイエンドポイントを作成するときに、サービスへのルートがインストールされるルートテーブルを選択します。ソースルートテーブルに、ゲートウェイ VPC エンドポイントを指す目的のサービスの プレフィックスリスト ID を持つルートがあることを確認します。

ゲートウェイエンドポイントを介したトラフィックフローの確認

ゲートウェイ VPC エンドポイントを使用する場合、ポート 80 または 443 に tcptrace-route を実行して、トラフィックがエンドポイント上を流れていることを確認できます。

sudo tcptraceroute s3.us-east-1.amazonaws.com 80

traceroute to s3.us-east-1.amazonaws.com (52.217.85.238), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  s3-1.amazonaws.com (52.217.85.238) <syn,ack>  0.797 ms  1.298 ms  0.821 ms

上記の出力では、S3 エンドポイントの宛先を除いてホップは見られません。これは、トラフィックが VPC ゲートウェイエンドポイントを通過していることを示しています。TCP trace-route に複数のパブリックホップが表示される場合、トラフィックはインターネットを経由しています。

詳細については、ゲートウェイ VPC エンドポイントを使用して S3 バケットに接続できないのはなぜですか? を参照してください。

インターフェイス VPC エンドポイント (AWS PrivateLink)

インターフェイス VPC エンドポイント を操作するときは、次のことを確認してください。

DNS 名前解決

AWS サービスの場合:

プライベート DNS 名をオンにすると、サービスエンドポイント (ec2.us-east-1.amazonaws.com など) に対して AWS API コールを実行できます。これらはエンドポイントインターフェイスのプライベート IP に解決されます。

プライベート DNS 名をオンにしていない場合は、リージョナルまたはゾーンの VPC エンドポイント DNS 名 を明示的に指定することで API 呼び出しを実行できます。

詳細については、インターフェイス VPC エンドポイントのサービスドメイン名を解決できないのはなぜですか?を参照してください。

dig または nslookup コマンドを使用して、接続しようとしているインターフェイス VPC エンドポイント名の DNS 解決を確認します。

エンドポイントサービス (パートナーまたはカスタマーマネージドサービス)

プロバイダー側の Network Load Balancer に対して有効になっているすべてのアベイラビリティーゾーンのバックエンドにターゲットがあることを確認します。詳細については、Amazon VPC のインターフェイスエンドポイントからエンドポイントサービスに接続できないのはなぜですか? を参照してください。

たとえば、ネットワークロードバランサーが us-east-1a と us-east-1b の 2 つのアベイラビリティーゾーンでサービスを提供するようにプロビジョニングされているとします。両方のアベイラビリティーゾーンでターゲットをプロビジョニングします。アベイラビリティーゾーンにターゲットがない場合は、クロスゾーン負荷分散をオンにしてすべてのリクエストを処理します。

エンドポイントポリシー

デフォルトポリシーでは、サービスへのフルアクセスが許可されています。カスタムポリシーを使用する場合は、サービスに対して必要なアクションを実行するためのアクセスがポリシーで許可されていることを確認します。

VPC エンドポイントセキュリティグループ

インターフェイス VPC エンドポイントでは、セキュリティグループを関連付けてアクセスを制御できます。セキュリティグループのインバウンドルールで、エンドポイントネットワークインターフェイスと、サービスにアクセスするリソース (VPC またはオンプレミス) との間の通信が許可されていることを確認します。

サービスが接続を受け付けているポートに応じて、そのポートとプロトコルへの接続を許可します。

例:

エンドポイントサービスのネットワークロードバランサーは TCP ポート 6169 と 8443 でリッスンしています。この場合、VPC エンドポイントセキュリティグループのインバウンドルールで、適切な送信元アドレスからポート 6169 および 8443 への TCP トラフィックを許可します。

セキュリティグループのアウトバウンドルールは、インターフェイスエンドポイントでは評価されません。したがって、これらは空白のままにするか、制限したままにすることができます。

サブネットネットワーク ACL

サブネットネットワーク ACL は、VPC の外部から接続する場合、ソースネットワークからインターフェイスエンドポイント Elastic Network Interface へのインバウンド接続とアウトバウンド接続の両方を許可する必要があります。

詳細については、エンドポイントサービス用の VPC インターフェイスエンドポイントを作成する場合、セキュリティグループとネットワーク ACL はどのように設定すればよいですか? を参照してください。

ルーティング

インターフェイス VPC エンドポイントを使用して、AWS 内またはオンプレミスネットワークからプライベートにサービスにアクセスできます。

インターフェイスエンドポイントと同じ VPC 内から接続する場合、ルーティングはサブネットルートテーブルのローカルルートによって処理されます。したがって、追加のルーティング構成は必要ありません。

VPC の外部 (クロスリージョン VPC またはオンプレミスネットワーク) からエンドポイントに接続している場合は、1 つ以上のソースネットワークからインターフェイス VPC エンドポイントエラスティックネットワークインターフェイスサブネットへの接続を確立できることを確認してください。

インターフェイス VPC エンドポイントへの接続性のテスト

インターフェイスエンドポイントを使用してサービスにアクセスできるかどうかをテストするには、適切なポートに対してネットワーク接続ツールを使用できます。

AWS サービスのインターフェイスエンドポイントへの接続をテストする例を次に示します。

telnet ec2.us-east-1.amazonaws.com 443
telnet PrivateIPofInterfaceEndpointENI 443

接続しているプロバイダーがポート 6169 でリッスンしていると仮定して、インターフェイスエンドポイントへの接続をテストする例を次に示します。

telnet vpce-aaaabbbbcccc-dddd.vpce-svc-12345678.us-east-1.vpce.amazonaws.com 6169
telnet PrivateIPofInterfaceEndpointENI 6169

ドメイン名を使用している場合は、正しい IP への接続が確立されていることと、接続が成功しているかどうかを確認してください。SSL 検証では、curl または OpenSSL ツールを使用してテストできます。

エンドポイントサービスの場合は、プロバイダーに連絡してネットワークロードバランサーのトラブルシューティングを行うことができます


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?