Lazuli

らずり

AWS S3でプロフィールページを作ってみた

はじめに

AmazonS3で静的ページを公開するといいぜ的な話をいつだったか聞いたことがあって、以前から試してみたかったので今回プロフィールページもどきを作ってみた。
AmazonS3は99.99999...%の堅牢性という謳い文句のソリューション。堅牢性は高いに越したことはないねー。

www.app2641.com

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がいるからアクセス負荷も気にすることもないし、ランディングページなんかにも使うとよさそうだよね。