Amazon S3でホスティングする

設定

S3でホスティングする場合の設定は、Static Website Hostingの項目でEnable website hostingを有効化するだけ。

AWS_Management_Console

Permission

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "AllowPublicRead",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::バケット名/*"
    }
  ]
}

あとはPermissionの設定で、パブリックな接続を許可しましょう。
Versionはなぜか2008-10-17です。

middlemanからデプロイ

middlemanからのS3のデプロイには、middleman-syncを使うと簡単です。
config.rbの中にsyncブロックを追加し、リージョン、バケット名、アクセスキーを記述するだけです。

config.rb

# Activate sync extension
activate :sync do |sync|
  # 利用するストレージプロバイダの識別子。S3を利用する場合は`AWS`
  sync.fog_provider = 'AWS'

  # アップロード先となるS3 Bucketの名前
  sync.fog_directory = 'www.hoge.com'

  # AWSリージョンの識別子。東京リージョンの場合は`ap-northeast-1`
  sync.fog_region = 'ap-northeast-1'

  # AWSアクセスキーID
  sync.aws_access_key_id = 'XXXXXXXXXXXXXXXXXXXX'

  # AWSシークレットアクセスキー
  sync.aws_secret_access_key = 'qweasdzxcertdfgcvbtyughjbnmoiukjhmnbqazw'

  # アップロード時に既存ファイルを削除するかどうか。`delete`または`keep`
  sync.existing_remote_files = 'keep'

  # ファイルをgzip圧縮したもので置き換えるかどうか。`true`または`false`
  sync.gzip_compression = false

  # Middlemanのビルド完了後に自動で同期を行うかどうか。`true`または`false`
  # デフォルトでは行う(`true`)
  sync.after_build = false
end