Amazon Simple Storage Service (Amazon S3) および Amazon Route 53 を使用して、Apex ドメインからのトラフィックを、そのサブドメインまたは別のドメインにリダイレクトしたいです。
解決策
前提条件
- Amazon Route 53 に Apex ドメインのホストゾーンがあることを確認してください。
- Apex ドメインのホストゾーンでレコードを作成し、Amazon S3 バケットを作成するためのアクセス許可があることを確認します。
- Apex ドメインと同じ名前の Amazon S3 バケットが配置されていないことを確認してください。
S3 バケットを作成してドメインをリダイレクトする
注: Amazon S3 ウェブサイトのエンドポイントは HTTPS をサポートしていません。HTTP リクエストと HTTPS リクエストの両方をリダイレクトするには、Application Load Balancer、エッジ関数を使用する Amazon CloudFront などの他の方法を使用します。詳細については、「CloudFront でドメインをリダイレクトする方法を教えてください」および「Application Load Balancer を使用してドメインを他のドメインにリダイレクトする方法を教えてください」を参照してください。
次の手順を実行します。
- Amazon S3 コンソールを使用し、Apex ドメインと完全に同じ名前の Amazon S3 バケットを作成します。
- 作成したバケットを選択し、[プロパティ] を選択します。
- [静的ウェブサイトホスティング] で [編集] を選択します。
- [オブジェクトのリクエストをリダイレクト] を選択します。
- [ホスト名] にリダイレクト先のウェブサイトを入力します。
- [プロトコル] でリダイレクトするリクエストに対し、[HTTP] または [HTTPS] を選択します。
注: プロトコルを指定しない場合、デフォルトのオプションはなしです。
- [変更を保存] を選択します。
S3 バケットを指すエイリアスレコードを作成する
次の手順を実行します。
- Route 53 コンソールで Apex ドメインのホストゾーンを選択します。
- 選択したホストゾーンにおいて、Apex ドメインの A-Alias レコードを次の値で作成します。
[レコード名] フィールドは空白のままにしてください。
[レコードタイプ] で [A – IPv4 アドレス] を選択します。
[トラフィックのルーティング先] で [Amazon S3 ウェブサイトエンドポイントへのエイリアス] を選択します。
[リージョン] で Amazon S3 バケットが置かれている AWS リージョンを選択します。
[Amazon S3 エンドポイントを入力] では、作成した Amazon S3 バケットをドロップダウンリストから選択します。Amazon S3 バケット名が Apex ドメインのホストゾーンの名前と完全に一致していることを確認します。
[ルーティングポリシー] で [シンプル] を選択します。
[ターゲットの正常性を評価する] で [いいえ] を選択します。
- [レコードを作成] を選択します。
リダイレクトを確認する
リダイレクトを確認するには、ブラウザで Apex ドメインを開きます。または、次の curl コマンドを実行して応答ヘッダーを確認します。
curl -i -s example.com | grep -E "HTTP|Location"
Location: http://www.example.com/
出力例:
curl -i -s example.com | grep -E "HTTP|Location" HTTP/1.1 301 Moved Permanently
Location: http://www.example.com/
注: リダイレクトが成功すると、HTTP 301 ステータスコードが返されます。
関連情報
バケットのウェブサイトエンドポイントに対するリクエストを別のバケットまたはドメインにリダイレクトする