S3 を Web公開し、独自ドメインに紐付け

S3にバケットをつくる。この時、バケット名は、そのWeb公開したい独自ドメインとしなければならない。例えば、

static.dokujidomain.com や assets.dokujidomain.com

になるだろう。バケットの設定は Static Website Hosting を有効化する。Index Documentは index.html でいいだろう。Permissions については、いちいちファイルを挙げては Make Public するのはアレなので、バケット全体のポリシーの設定をする。具体的には [ Edit Bucket Policy ] ボタンを押し、下記の Json を入力する。

{
  "Version":"2008-10-17",
  "Statement":[{
    "Sid":"PublicReadForGetBucketObjects",
        "Effect":"Allow",
      "Principal": {
            "AWS": "*"
         },
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::static.dokujidomain.com/*"
      ]
    }
  ]
}

static.dokujidomain.com については実際に使うドメインに読み替えてほしい。 この時点で、index.html を作ってアップすれば公開されている。s3の複雑なURLではアクセスができるだろう。

これをRoute53で独自ドメインとひもづける必要がある。 R53の設定に移動し、dokujidomain.com を設定しているZoneの設定にRecordを追加する。ググるとCNAMEで設定している記事やAレコードでAliasを使っている記事もある。私は後者で設定した。

結局のところ

http://aws.typepad.com/aws_japan/2012/08/hosting-website-on-s3.html

を見ながら設定するのが一番いいと思う。