Amazon Simple Storage Service (Amazon S3) バケットで cp または sync コマンドを実行しようとしています。しかし、「エンドポイント URL に接続できませんでした」というエラーメッセージが表示されます。この問題を解決するには、どうすれば良いですか?
簡単な説明
AWS コマンドラインインターフェイス (AWS CLI) を使用して cp コマンドまたは sync コマンドを実行するには、マシンが正しい Amazon S3 エンドポイントに接続する必要があります。接続できないと、「エンドポイント URL に接続できませんでした」というエラーメッセージが表示されます。
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
この問題を解決するには、以下を確認してください。
- 正しい 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 エンドポイントに送信されます。あるいは、コマンドでリージョンが指定されると、API リクエストはリージョン固有の 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 Transfer Acceleration を使用している場合は、エンドポイント名について Amazon S3 Transfer Acceleration の開始方法をご参照ください。
ネットワークが 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 エンドポイントに解決できることを確認するには、nslookup や ping などの 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 インスタンスがパブリックサブネットにある場合:
EC2 インスタンスがプライベートサブネットにある場合:
- サブネットのルートテーブルに関連付けられているネットワークアドレス変換 (NAT) ゲートウェイがあるかどうかを確認します。NAT ゲートウェイは、Amazon S3 エンドポイントに到達するためのインターネットパスをプロビジョニングします。
- Amazon S3 に VPC エンドポイントを使用している場合は、AWS CLI 設計ファイルで正しいリージョンが設定されていることを確認してください。Amazon S3 の VPC エンドポイントはリージョン固有です。VPC エンドポイントが別のリージョンにあるときに --region us-west-1 を使用して sync コマンドを実行すると、CLI は https://s3.us-west-1.amazonaws.com に問い合わせます。その結果、「エンドポイント URL に接続できませんでした」というエラーが表示されます。