AWS S3でプロフィールページを作ってみた
はじめに
AmazonS3で静的ページを公開するといいぜ的な話をいつだったか聞いたことがあって、以前から試してみたかったので今回プロフィールページもどきを作ってみた。
AmazonS3は99.99999...%の堅牢性という謳い文句のソリューション。堅牢性は高いに越したことはないねー。
S3の設定
まずは兎にも角にもS3にバケットを作る。バケットについてはぐぐって。
バケット名は公開するページのドメインと同じでなければならない。また、S3で公開するにはCNAMEでしかDNSの設定が出来ないのでwwwなしは指定することが出来ない。
コンソール AWS Management Console | アマゾン ウェブ サービス(AWS 日本語) でS3を選択、「www.example.com」バケットを作成する。指定リージョンはもちろん東京。なお、バケット名はリージョンではなく全世界で一意でないといけないため、既に誰かに使われていたら残念でしたってことになる。
www.example.comのバケットが生成できたらプロパティを表示。StaticWebHostingのメニューを開いて、Enable web hostingにチェック、Index documentに公開するファイル名を指定する。よほどのひねくれ者じゃない限りindex.htmlでしょう。saveボタン押して設定を保存。
次に、Permissionメニューを開く。Edit bucket policyってのを押すと、テキストエリアのあるフォームが表示されるので下記のjsonを貼り付け。
細かいところは説明しないけど要するにポリシーだよね(?)。ぐぐって。
ひとつ。Resourceのとこにあるドメイン名は自分のものと差し替えること。
{ "Version": "2008-10-17", "Statement": [{ "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::www.example.com/*" }] }
saveボタンを押せば晴れて静的ページの設定完了。
Static Website Hostingメニューを開いたとこに Endpont: www.example.com.s3-website-ap-northeast-1.amazonaws.com ってのがあってこれをCNAMEに設定する。
DNSの設定が終わればめでたく独自ドメインで公開完了。
S3がいるからアクセス負荷も気にすることもないし、ランディングページなんかにも使うとよさそうだよね。