Amazon S3で静的HTMLを公開

「Amazon S3 Announces New Features for Hosting Static Websites」とメールがあったのが2011年2月18日
1年近く前のネタなのでかなり今更な感じはしますが^^;;
やってみました。

はまったのはバケット名かなぁ
今回はs3.barasu.orgというCNAMEを付与するならバケット名も「s3.barasu.org」とすること。
詳しくはVirtual Hosting of Bucketsに書いてありました。

The CNAME DNS record should alias your domain name to the appropriate virtual hosted style host name.

新しいバケットを作成(今回は東京Regionにバケットを作成)
AWS Management Consoleから作成してもいいですし、s3cmdから行ってもOK

$ s3cmd mb s3://s3.barasu.org –bucket-location=ap-northeast-1

バケットに静的HTMLを入れる。
s3cmdやCyberduck、S3Foxからバケットに入れます。

$ s3cmd sync -P ~/Documents/html/ s3://s3.barasu.org

WebSite機能をEnableにします。


許可したいバケットを選択します。
Propertiesを選びバケットのプロパティを表示させます。
WebsiteタブよりEnableにチェックを入れIndex Documentを入力します。
これで終了。
Endpointに書かれているURLがHTTPでアクセスできるところになります。

http://s3.barasu.org.s3-website-ap-northeast-1.amazonaws.com/

でアクセスするとちゃんと表示できるかと思います。
URLがださいけどこれでもOKなところはここまで
CNAMEで独自URLを割り当てることも可能です。
この場合はバケット名の「s3.barasu.org」のCNAMEを「s3.barasu.org.s3-website-ap-northeast-1.amazonaws.com」に設定したら
http://s3.barasu.org/ でもアクセス可能となります。

画像配布やPDF配布としてS3使うのはありだよね。
サーバ用意しなくても配布できるんだからすげー楽だよね。
冗長化とか考えなくていいし、Static HTMLだったらコストパフォーマンスを考えてAmazon S3で良いような気がする。

<独り言>
s3cmd version 1.0.1ではWebsiteのEnable/Disableはできなかった
1.1.0-beta2から対応らしい。
</独り言>