1. Ichiro_Tsuji
Changes in body
Source | HTML | Preview

概要

何ができるのか

Direct Hosting Pattern.png

  • S3バケットをまるごとWeb公開することができます
  • Web公開できるのは静的コンテンツに限ります
  • 独自ドメインも使用可能です。ただしZone Apex(サブドメインなし)の利用はドメインをRoute 53でホストしてる場合のみ可能です
  • LinuxなどでWebサーバを立てる場合のように、サイジングやサーバ運用を行う必要はありません
  • ある程度までのスパイクには耐えますが、xx砲1対策などにはCloudFrontを併用しましょう

<公式ドキュメント>
http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/hosting-websites-on-s3-examples.html
<分かりやすいスライド>
http://www.slideshare.net/horiyasu/amazon-s3web-27138902

前提条件

料金

S3の料金のみでWeb公開が利用できます。
また、サインアップ後1年間の無料利用枠があります。
https://aws.amazon.com/jp/s3/pricing/

S3 BacketをWeb公開する

  • Web公開に使用する独自ドメインを用いたFQDNを決めておく
    ex) s3.jaws-ug.tk
  • AWSにサインインする
  • S3コンソールを開く
    ※ 英語画面で説明するので日本語表示になっている場合は、画面左下の言語選択を「English」に変更する スクリーンショット 2016-02-07 11.04.42.png

  • 上記独自ドメインのFQDNをBacket Name:に入力してバケットを作成する。独自ドメインをもっていない場合は、任意のバケット名でOK。リージョンはお好みで良いが、日本人向けサイトであれば東京リージョンが最もパフォーマンスが良い
    独自ドメインでWeb公開する場合、バケット名=FQDNでなければならない スクリーンショット 2016-02-07 11.10.46.png

  • 作成したバケットが選択された状態で[Permissions]を展開する
    ※ 下の画像が表示されていない場合は[Properties]をクリックする
  • [Add Bucket Policy]をクリックする スクリーンショット 2016-02-07 11.21.38.png

  • 下記をコピペ(s3.jaws-ug.tkの部分は変更のこと)し、[Save]をクリックする
BucketPolicy
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::s3.jaws-ug.tk/*"]
    }
  ]
}

スクリーンショット 2016-02-07 11.26.25.png

  • 元の画面の[Save]をクリックする
  • [Static Web Hosting]を展開する
  • [Enable Web Hosting]を選択する
  • Index Document:にindex.htmlを入力する
  • [Save]をクリックする スクリーンショット 2016-02-07 11.16.28.png

  • 試しに、何か文字を書き込んでindex.htmlの名前でTXTファイルを作成し、Web公開するバケットにファイルをアップロードしてみる([Set Details]ボタン押下による詳細設定は不要)
  • Endpoint(上図黄緑の囲み)のリンクをクリックして先ほどTXTファイルに書き込んだ文字が表示されたら成功
    ※ 上の画像が表示されていない場合は[Properties]をクリックする

独自ドメインでアクセスできるようにする

独自ドメインをRoute 53でホストしている場合

あらかじめ決めておいたFQDNでAレコードAliasを登録する
http://qiita.com/Ichiro_Tsuji/items/8471fe0b3d4d17cde146#aレコードaliasの登録

独自ドメインをRoute 53 以外のDNSでホストしている場合

あらかじめ決めておいたFQDNでDNSにCNAMEレコードを作成し、S3バケットのEndpoint(上図黄緑の囲み)を登録する

APIアクセス用のKeyを作成する

他のアプリケーションからS3バケットにAPIでアクセスするために、IAM Access Keyを作成します

  • Identity and Access Management(IAM)コンソールを開く スクリーンショット 2016-02-07 12.33.25.png

  • 「s3」という名前でユーザーを作成する スクリーンショット 2016-02-07 12.41.22.png

    スクリーンショット 2016-02-07 12.43.56.png

  • IDとKeyを控える([Download Credentials]をクリックして保存してもよい)
  • [Close]をクリックする スクリーンショット 2016-02-07 12.44.36.png

  • [s3]をクリックする スクリーンショット 2016-02-07 12.55.47.png

  • [Permissions] -> [Attach Policy]の順にクリックする スクリーンショット 2016-02-07 12.56.21.png

  • 「s3」で検索する
  • [AmazonS3FullAccess]にチェックを付け[Attach Policy]をクリックする スクリーンショット 2016-02-07 12.57.00.png

参考

S3バケットのコンテンツを管理するには、専用アプリを利用すると便利です。バケットへのアクセスには先ほど作成したIAM Access Keyを使用します。
<Mac用>
Cyberduck
https://cyberduck.io/index.ja.html?l=ja

<Windows用>
CloudBerry Explorer
http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx


  1. 不倫謝罪程度のことではびくともしないようです