2013年03月15日
Amazon Route 53でURL正規化(WWWの有無を統一)をしてみた
海外向けのサイトを海外のサーバに置いてみたかったのですが、まともそうなところは結構いい値段がします。広告付きで無料、もしくは容量無制限だけどそこそこ値が張る(月6ドルとか)という両極端はあるのに、その中間、日本でいうロリポップみたいなところがみつからない。いろいろ検討した結果、一番安そうなAmazon S3でホスティングしてみることにしました。
Gatespaceさんの記事AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティングを参考にしながらやってみたところ、なんとか、
http://www.andolegal.comと入力すると正常に表示されるところまでいきました。
しかし、wwwを取ってhttp://andolegal.comとするとエラー。
URLをwww無しで入力するとwwwありのページに飛ぶようにしようとしてネットを検索したのですが、なかなかうまくいかなかったので、備忘録を兼ねて記事にしておきます。
公式ヘルプもあるのですが、そのとおりやってもどうもうまくいきません。
なお、前述の解説サイトに書いてあることは、解説を省略しています。
DNSはAmazon Route 53を使います。
バケット(フォルダのようなもの)は、www.andolegal.com と andolegal.com の2つ作成。
それぞれ、インターネットに公開できるよう、Gatespaceさんの記事や公式ヘルプを読んで設定します。
私の場合はwww付のURLに統一したかったので、ファイルはwww付のほうのバケットにアップロード。もう一方のバケットは空っぽ。
Propertiesで設定するのはPermissionsとStatic Website Hostingの部分。
<wwwありバケットのProperties画面>
<wwwなしバケットのProperties画面>

■Permissionsの設定
www.andolegal.comのバケットには、wwwありのバケットポリシーをアップロード(作成方法は前述のサイト参照)。
andolegal.comのバケットには、wwwなしのURLを書き込んだバケットポリシーをアップロード。
■Static Website Hostingの設定
上記画像のとおり、wwwありで統一する場合は、wwwありのバケットのほうをEnable website hostingにして、indexドキュメントとエラー時に表示されるドキュメントを指定。wwwなしのバケットはRedirect all requests to another host nameをチェックし、転送先としてwww.andolegal.comを指定。
ここまできたら、Amazon S3上のURLで正しくアクセスできるかチェックしてみます(上記画像でEndpointというのがそれぞれのバケットにアクセスするためのURLです)。きちんと設定されていれば、wwwなしのほうにアクセスするとwwwありのほうに転送されるはず。
■Amazon Route 53の設定
次は、Route 53の設定です。
NSとSOAレコードは最初から設定されています。
ルートドメイン(wwwなしのURL)の設定をするときは、ドメインのネームサーバをAmazon Route 53に設定済でないとエラーになります。
公式解説だと、メインのほうのバケットにエイリアスを設定して、他方はCNAMEでメインに転送と書いてあるのですが、これだとうまくいきません(私はwwwありで統一しようとしたからだめで、ひょっとしたらwwwなしで統一する場合は公式のとおりでよいのかもしれません)。
両方ともエイリアスにするとうまくいきました(下記)。Alias Targetは、それぞれのEndpointです(wwwありのAレコードはwwwありのバケットのEndpointを指定。wwwなしのほうのレコードはwwwなしバケットのEndpointを指定。)。

アクセスはほとんどない弱小サイトなので、1年間は無料の範囲内。その後も料金は月50円かからないと踏んでいるのですが、さてどうなるか。
Gatespaceさんの記事AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティングを参考にしながらやってみたところ、なんとか、
http://www.andolegal.comと入力すると正常に表示されるところまでいきました。
しかし、wwwを取ってhttp://andolegal.comとするとエラー。
URLをwww無しで入力するとwwwありのページに飛ぶようにしようとしてネットを検索したのですが、なかなかうまくいかなかったので、備忘録を兼ねて記事にしておきます。
公式ヘルプもあるのですが、そのとおりやってもどうもうまくいきません。
馴染みがない方のためにちょっとだけ解説
Amazon S3はストレージサービスですが、データを独自ドメインで公開したり、静的HTMLのみのウェブサイトをホスティングしたりできます。Amazon EC2というサービスを使うと動的なウェブサイトも扱えます。下記に出てくるAmazon Route 53はAmazonのDNSサービスです。
なお、前述の解説サイトに書いてあることは、解説を省略しています。
DNSはAmazon Route 53を使います。
バケット(フォルダのようなもの)は、www.andolegal.com と andolegal.com の2つ作成。
それぞれ、インターネットに公開できるよう、Gatespaceさんの記事や公式ヘルプを読んで設定します。
私の場合はwww付のURLに統一したかったので、ファイルはwww付のほうのバケットにアップロード。もう一方のバケットは空っぽ。
Propertiesで設定するのはPermissionsとStatic Website Hostingの部分。
<wwwありバケットのProperties画面>

<wwwなしバケットのProperties画面>

■Permissionsの設定
www.andolegal.comのバケットには、wwwありのバケットポリシーをアップロード(作成方法は前述のサイト参照)。
andolegal.comのバケットには、wwwなしのURLを書き込んだバケットポリシーをアップロード。
■Static Website Hostingの設定
上記画像のとおり、wwwありで統一する場合は、wwwありのバケットのほうをEnable website hostingにして、indexドキュメントとエラー時に表示されるドキュメントを指定。wwwなしのバケットはRedirect all requests to another host nameをチェックし、転送先としてwww.andolegal.comを指定。
ここまできたら、Amazon S3上のURLで正しくアクセスできるかチェックしてみます(上記画像でEndpointというのがそれぞれのバケットにアクセスするためのURLです)。きちんと設定されていれば、wwwなしのほうにアクセスするとwwwありのほうに転送されるはず。
■Amazon Route 53の設定
次は、Route 53の設定です。
NSとSOAレコードは最初から設定されています。
ルートドメイン(wwwなしのURL)の設定をするときは、ドメインのネームサーバをAmazon Route 53に設定済でないとエラーになります。
公式解説だと、メインのほうのバケットにエイリアスを設定して、他方はCNAMEでメインに転送と書いてあるのですが、これだとうまくいきません(私はwwwありで統一しようとしたからだめで、ひょっとしたらwwwなしで統一する場合は公式のとおりでよいのかもしれません)。
両方ともエイリアスにするとうまくいきました(下記)。Alias Targetは、それぞれのEndpointです(wwwありのAレコードはwwwありのバケットのEndpointを指定。wwwなしのほうのレコードはwwwなしバケットのEndpointを指定。)。

アクセスはほとんどない弱小サイトなので、1年間は無料の範囲内。その後も料金は月50円かからないと踏んでいるのですが、さてどうなるか。