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