Amazon S3 バケットで sync コマンドを実行するときに、「エンドポイント URL に接続できませんでした」エラーをトラブルシューティングする方法を教えてください。

最終更新日: 2020 年 9 月 18 日

Amazon Simple Storage Service (Amazon S3) バケットで cp または sync コマンドを実行しようとしているのですが、「エンドポイント URL に接続できませんでした」というエラーメッセージが表示されます。この問題を解決するには、どうすれば良いですか?

簡単な説明

AWS コマンドラインインターフェイス (AWS CLI) を使用して cp コマンドまたは sync コマンドを実行するには、マシンが正しい Amazon S3 エンドポイントに接続できる必要があります。接続できないと、「エンドポイント URL に接続できませんでした」というエラーメッセージが表示されます。

このエラーをトラブルシューティングするには、以下を確認してください。

  • 正しい AWS リージョンと Amazon S3 エンドポイントを使用していることを確認します。 
  • ネットワークが Amazon S3 エンドポイントに接続できることを確認します。
  • DNS が Amazon S3 エンドポイントに解決できることを確認します。
  • Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでこのエラーが表示される場合は、Amazon Virtual Private Cloud (Amazon VPC) の設定を確認してください。

解決方法

正しい AWS リージョンと Amazon S3 エンドポイントを使用していることを確認します。

AWS CLI を使用してコマンドを実行すると、API リクエストはデフォルトの AWS リージョンの S3 エンドポイント、またはコマンドでリージョンが指定されている場合は、リージョン固有の S3 エンドポイントに送信されます。その後、AWS CLI はバケットのリージョン S3 エンドポイントにリクエストをリダイレクトできます。

リージョンまたはコマンドに関連付けられたエンドポイントにタイプミスまたはエラーがある場合、「エンドポイント URL に接続できませんでした」というエラーが表示されることがあります。 

たとえば、次のコマンドを実行すると、エンドポイント名に余分な「e」があるため、エラーが発生します。

aws s3 cp filename s3://DOC-EXAMPLE-BUCKET/ --endpoint-url https://s3-acceleratee.amazonaws.com

cp コマンドまたは sync コマンドを実行する前に、関連する リージョンS3 エンドポイント が正しく書き込まれていることを確認してください。 

注意: Amazon S3 転送アクセラレーションを使用している場合は、エンドポイント名について「 Amazon S3 転送アクセラレーションの開始 」を参照してください。 

ネットワークが S3 エンドポイントに接続できることを確認する

ネットワークのファイアウォールで、Amazon S3 トラフィックに使用しているポートの Amazon S3 エンドポイントへのトラフィックが許可されていることを確認します。

たとえば、次の telnet コマンドは、ポート 443 の ap-southeast-2 リージョン S3 エンドポイントへの接続をテストします。 

注意: リージョナルエンドポイントとポート (443 または 80) は、ユースケースに関連付けられた値に置き換えてください。

telnet s3.ap-southeast-2.amazonaws.com 443

DNS が S3 エンドポイントに解決できることを確認する

DNS が Amazon S3 エンドポイントで解決できることを確認するには、nslookupping などの DNS クエリツールを活用できます。次の例では、nslookup を使用しています。

nslookup s3.amazonaws.com

次の例では、ping を使用して、DNS が S3 エンドポイントに解決されることを確認します。

ping s3.amazonaws.com

DNS が S3 エンドポイントに解決できない場合は、DNS 設定のトラブルシューティングを行う必要があります。Amazon Route 53 が DNS プロバイダーである場合は、「 Amazon Route 53 のトラブルシューティング」を参照してください。 

EC2 インスタンスでこのエラーが表示される場合は、VPC 設定を確認する

EC2 インスタンスがパブリックサブネットにある場合:

  • インスタンスが存在する Amazon VPC のネットワークアクセスコントロールリスト (ACL) を確認します。ネットワーク ACL で、ポート 443 のアウトバウンドルールを確認します。アウトバウンドルールが DENY の場合は、ALLOW に変更します。
  • ネットワーク ACL が Amazon S3 IP アドレス範囲の特定のリージョンのみへのアクセスを制限している場合は、AWS CLI の設定ファイルで設定されたデフォルトの AWS リージョンが正しいリージョンであることを確認してください。

EC2 インスタンスがプライベートサブネットにある場合:

  • サブネットのルートテーブルに関連付けられているネットワークアドレス変換 (NAT) ゲートウェイがあるかどうかを確認します。NAT ゲートウェイは、Amazon S3 エンドポイントに到達するためのインターネットパスをプロビジョニングします。
  • Amazon S3 に VPC エンドポイントを使用している場合は、AWS CLI 設計ファイルで正しいリージョンが設定されていることを確認してください。Amazon S3 の VPC エンドポイントはリージョン固有です。たとえば、VPC と VPC エンドポイントが us-east-1 リージョンにあり、パラメータ -region us-west-1 を指定して sync コマンドを実行すると、 AWS CLI は https://s3.us-west-1.amazonaws.com への連絡を試みます。これにより、「エンドポイント URL に接続できませんでした」エラーが発生します。

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


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