AWSのS3とRoute53を使ってリダイレクト用のサーバを作ります。今回ははてなブログのネイキッドドメインのリダイレクトを実現する例を取り上げます。
背景
このブログにも特にアクセスが多いページでAmazonアソシエイトを配置していましたが、 先日、なんと申請が「却下」に。
コツコツと紹介料を積み上げていたのになぜ?という感じでしたが、その理由は以下の通り。
提供されたURLが無効であったため、ウェブサイト/アプリを検証できませんでした。
なお、文面からAmazonでは以下のURLでアクセスしたことが読み取れました。
つまり、以下に対応する必要があります。
- サブドメインなし(ネイキッドドメイン)でアクセスできるようにする。
- httpでのアクセスに対応する。
今回はAWSを使ってリダイレクトし、http://ohitori.fun
でアクセスできるように設定してみます。
つまり、ohitori.fun
からwww.ohitori.fun
へのリダイレクトを実現します。
※httpsでネイキッドドメインにアクセスした場合については今回は設定しません。(httpsの設定にはCloudFrontを利用する必要があります。)
※この記事ではAWSを使って設定します。AWSの利用にはある程度の専門知識が必要で、内容によって料金が発生します。
「はてなブログ」はネイキッドドメインの設定に対応しました。検索の流入などの影響を考慮できる、もしくは旧ドメインをリダイレクトさせることができるなど、他の解決策がある場合は基本的にこちらの利用がオススメです。
S3の設定
AWSのマネジメントコンソールにログインし、S3のページにアクセスしましょう。
そして、バケットを作成していきます。
すると、バケットの情報を編集するダイアログが表示されます。
このとき、「バケット名」には、リダイレクト元のドメインを入力します。
今回の場合、ohitori.fun
からwww.ohitori.fun
へリダイレクトさせたいので、「バケット名」にはohitori.fun
を入力します。
その他の設定は全てデフォルトのままでOKです。
以下のようにバケットが作成されますので、これをクリックしましょう。
そして、「プロパティ」タブをクリックしましょう。
さらに「Static website hosting」をクリックしましょう。
設定フォームが表示されます。
- 「リクエストをリダイレクトする」をチェック
- 「ターゲットバケットまたはドメイン」にリダイレクト先のドメインを入力します。
今回の場合、ohitori.fun
からwww.ohitori.fun
へリダイレクトさせたいので、「ターゲットバケットまたはドメイン」にはwww.ohitori.fun
を入力します。
では、ここまで完了したのでテストしてみましょう。
「Static website hosting」をクリックした時に表示されたエンドポイント(URL)をクリックします。設定に問題なければ指定したページにリダイレクトします。
続いて、DNSの設定をしていきます。
Route53の設定
ohitori.fun
はAWSのRoute53で管理しています。ここではRoute53での設定例を紹介します。
注意 ここではAレコードにS3バケットを直接指定します。これはAWSのRoute53のみで有効な設定です。その他のDNSサービスを利用している場合は利用できません。
まずは、Route53にアクセスし、今回設定するホストゾーンをクリックします。
そして、「レコードを作成」をクリックしましょう。
ルーティングポリシーは「シンプルルーティング」を選択しましょう。。
さらに、「シンプルなレコードを定義」をクリックします。
すると設定フォームが表示されるので、以下のように設定します。
- 「レコード名」にはリダイレクト元のドメインを設定(今回はネイキッドドメインからのリダイレクトなので空欄。)
- 「値/トラフィックのルーティング先」ではそれぞれ「S3ウェブサイトエンドポイントへのエイリアス」、「アジアパシフィック東京」を選択。そして、作成済みの英ダイレクト用のバケットを選択します。
- 「レコードタイプ」は「A」を選択
以上でRoute53の設定は完了になります。
実際にリダイレクト元のURLにアクセスして、リダイレクトされることを確認しましょう。
ブラウザに入力してもOKです。wget
を使うともう少し詳細に確認できます。
> wget http://ohitori.fun --2020-08-22 16:18:15-- http://ohitori.fun/ ohitori.fun (ohitori.fun) をDNSに問いあわせています... 52.219.1.124 ohitori.fun (ohitori.fun)|52.219.1.124|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 301 Moved Permanently 場所: http://www.ohitori.fun/ [続く] --2020-08-22 16:18:15-- http://www.ohitori.fun/ www.ohitori.fun (www.ohitori.fun) をDNSに問いあわせています... 13.230.115.161, 13.115.18.61 www.ohitori.fun (www.ohitori.fun)|13.230.115.161|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 301 Moved Permanently 場所: https://www.ohitori.fun/ [続く] --2020-08-22 16:18:15-- https://www.ohitori.fun/ www.ohitori.fun (www.ohitori.fun)|13.230.115.161|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK
問題なくリダイレクトできていますので、完了となります。
HTTPSでもリダイレクトしたい!
続編として、HTTPSでもリダイレクトできるようにする方法を記載しました。
すでにこちらの構成が完了している方はスムーズに構築することができます。