1. ホーム
  2. redirect

Amazon S3リダイレクトとCloudfront

2023-08-15 19:45:40

質問

私はオブジェクトを使用してS3上で301リダイレクトを設定しようとしています。 http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html . 私はいくつかの問題を抱えていて、私が間違ってやっていることを理解することができないようです。

Webサイトのリダイレクト先」メタデータの値が設定されていないかのように、空白のページ(0バイトのファイル)が表示されるのです。

私は何を間違えているのでしょうか?

また、これはAWS CloudFrontで動作するのでしょうか?


私のS3コンソールのセットアップ

注意すべき点がいくつかあります。

私は静的なサイトをホストするためにこれを設定しています。 私は、アップロードされ、クラウドフロントディストリビューションに設定された独自の証明書とssl/httpsを使用しています。 リダイレクトするオブジェクトを除いて、すべてのページが動作しているように見えます。 ルーティング ルールを設定しようとしましたが、Cloudfront で動作しないようでした。

私は、cloudfront の url と s3 の url の両方を通してリダイレクトにアクセスしようとしています ( https://s3.amazonaws.com/ {バケット}/ユーザー/サインイン)

どのように解決するのですか?

リダイレクト、htmlエラーメッセージ、インデックスドキュメントなど、S3でのWebサイト的な機能については、RESTエンドポイント( ${bucket_name}.s3.amazonaws.com または ${bucket_name}.s3.${region}.amazonaws.com ) があります。これらの機能はウェブサイトのエンドポイント ( ${bucket_name}.s3-website.${region}.amazonaws.com ).

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

Cloudfront でこの動作を利用できるようにするには、コンソールでオートコンプリートを介して提供される REST エンドポイントではなく、このエンドポイントも使用するように Cloudfront を設定する必要があります。

バケット用のAmazon S3静的ウェブサイトホスティングエンドポイントを入力します。この値は、Amazon S3コンソールの プロパティ ページの下に表示されます。 静的ウェブサイトホスティング .

この形式でバケット名を指定すると、Amazon S3リダイレクトやAmazon S3カスタムエラー文書が利用できます。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

WebエンドポイントはHTTPSをサポートしていないことに注意してください。しかし、クライアント接続がHTTPSであっても、CloudfrontがHTTPでバケットから取得するように設定することができます。


有用なヒント: CloudFront のトラブルシューティングや変更をテストするとき、ユーザーは、変更を加えたときと CloudFront が新しい動作を示し始めるときの間の明らかなレイテンシーにしばしば困惑します。 エラーページの場合、CloudFrontはデフォルトで5分間の エラーキャッシュの最小TTL というタイマーがあり、失敗したページのリクエストをオリジンに再送信するのを防ぎます。これはキャッシュビヘイビアで設定した最小/デフォルト/最大 TTL とは別のタイマーです。 特にテスト時には、これらのタイマーを無効にして、エラーが返されたページの後続の各リクエストで再試行を強制することができます。 Amazon CloudFrontのレイテンシー