S3でウェブサイトを公開する

# 概要
AWSを利用していて、ウェブサイトを公開する簡単な方法は、S3を使うことです。
方法はあちこちにあると思いますが、人に説明するときの資料として作成します。

# やり方
## S3バケットを作る
(1) マネジメントコンソールからS3のメニューへ移行します。
![WS000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/5cab789b-5194-dfe6-4837-820f3ecb7178.jpeg)

(2) 「バケットを作成する」をクリックします。
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2412d362-8ebd-28fa-83c8-807ac4fa5e67.jpeg)

(3) バケット名には公開したいドメイン名を入力して、「次へ」をクリックします。
リージョンは、基本はどこでも構いませんが、私は国内向けサイトとして考えているので、「アジアパシフィック(東京)」を選択しました。
尚、ここで入力した名前をDNSに登録する必要があります。
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2d3f068c-f426-d142-e956-f1f88f302ab2.jpeg)

(4) タグなどを必要に応じて設定し、「次へ」をクリックします。
![WS000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/cadfbd4c-8fdb-4c91-e925-5e8d74e47fda.jpeg)

(5) 「パブリックアクセスをすべてブロック」のチェックを外します。
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/575cf2f8-ea48-330c-65cc-636d5696f405.jpeg)

(6) 警告が出ますが、「現在の設定により、このバケットと中のオブジェクトがパブリックになる可能性があることを了承します。」にチェックを入れ、「次へ」をクリックします。
![WS000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/5e7249fd-1ff9-7dd0-1dcf-e298f6473cd9.jpeg)

(7) バケット名、リージョンに間違いがないことを確認して、「バケットを作成」をクリックします。
![WS000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/e95aee2f-5b55-156f-f08a-af7c8d2a39e6.jpeg)

(8) 作成したS3バケットをクリックします。
![WS000023.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/666287fd-114f-a09f-1f3f-453a40164832.jpeg)

## ウェブサイト公開の設定
(1) 「プロパティ」をクリックします。
![WS000024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2a4ce6a7-d986-f08d-2082-710016a42463.jpeg)

(2) 「Static website hosting」の〇をクリックします。
グレーアウトされていますが、クリックするとメニューが表示されます。
![WS000026.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/76f3aaf6-c233-ecd8-1a41-f27a4829f76e.jpeg)

(3) 「このバケットを使用してウェブサイトをホストする」を選択します。
![WS000030.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/488b9cb1-0136-a12f-8e9f-ffd9f3a8fbf2.jpeg)

(4) 「インデックスドキュメント」に公開するファイル名を入力し、「エラードキュメント」に存在しないページにアクセスするなどエラー時に表示するファイル名を入力し、「保存」をクリックします。
ここでは、デフォルトの「index.html」、「error.html」を入力しました。
![WS000031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/601fc31c-2094-8b31-66a3-b6da2bb0f3f5.jpeg)

(5) 以下のような表示になればOKです。
![WS000032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/52390aa4-2b79-ff29-b6ec-43daa4d860ca.jpeg)

## インターネットからのアクセス設定
(1) 「アクセス権限」をクリックします。
![WS000036.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/235b26cd-a764-21a0-4ef8-af1aa217cf68.jpeg)

(2) 「バケットポリシー」をクリックします。
![WS000037.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/797827e5-8333-e6e6-c664-2024f828641d.jpeg)

(3) 「ARN:: am::aws:s3:::バケット名」の部分を確認しておきます。
![WS000039.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/6083649f-37cb-ae30-7f50-b7b0f27951e4.jpeg)

(4) 入力欄に以下のように入力します。
「バケット名」の部分は読み替えて入力してください。

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

(5) 「保存」をクリックします。
![WS000041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/cc3e7474-061a-5a2d-a1bf-14f96b2b25a6.jpeg)

(6) 警告が出ますが、もともとインターネット公開が目的なので、気にしなくても大丈夫です。
![WS000042.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/bf428866-f11c-6e47-6056-6771bb6ee3cd.jpeg)

## コンテンツアップロード
(1) 「概要」をクリックします。
![WS000043.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2db39a00-a151-0be7-16b5-1db2bb1e3d1a.jpeg)

(2) 「アップロード」をクリックします。
![WS000044.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/74126125-66e1-d4bb-0ea4-bfbecf16d0ca.jpeg)

(3) 「index.html」と「error.html」をアップロードし、「次へ」をクリックします。
![WS000047.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/3e53e3b4-f570-a7d1-abde-70659c709f5c.jpeg)

(4) 「パブリックアクセス許可を管理する」で「このオブジェクトにパブリック読み取りアクセス権限を付与する」を選択します。
![WS000048.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/d0d505c7-ba21-82ba-433d-34f3203ba969.jpeg)

(5) 「次へ」をクリックします。
![WS000049.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/a8ec61c2-8c77-6bfd-0729-68ae8f6546dc.jpeg)

(6) ストレージクラスはデフォルトのまま、暗号化の設定は不要ですので、そのまま「次へ」をクリックします。
![WS000051.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/ee8a025f-bee9-33f1-721b-d8ce522fc669.jpeg)

(7) 「アップロード」をクリックします。
![WS000052.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/6fd4cfd3-2bbd-988c-028c-35798ac76e08.jpeg)

(8) アップロードされたファイルをクリックします。
![WS000054.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/f43412a5-f62d-8af4-8cd1-e2bc58e8cbcc.jpeg)

(9) 「オブジェクト URL」をクリックします。
![WS000056.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2625551b-bab4-1fb5-f70e-0ee1a285832c.jpeg)

(10) アクセス出来たら成功です。
![WS000057.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/687e5e9d-3fd1-310c-de5f-11fe3a5deb57.jpeg)

## DNS登録
ここでは、Route53を使って登録します。
本手順を行う場合、前提として、ドメインを持っていて、Route53で管理していることが必要です。

(1) DNS登録する「オブジェクト URL」をコピーしておきます。
![WS000058.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/ab2e95ff-5201-2c8b-bcfb-0df1c87c73ee.jpeg)

(2) AWSコンソールのメニューに戻って、Route53メニューに移動します。
![WS000059.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/7a797abe-b1cf-0594-cbc6-5ea295d81e33.jpeg)

(3) ホストゾーンを選択します。
![WS000060.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/36997323-5029-42d2-2e5d-d40109860bf1.jpeg)

(4) 管理しているホストゾーンの設定画面へ移動します。
![WS000061.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/f530681f-6929-0198-6339-d66b90f8eefc.jpeg)

(5) 「レコードセットの作成」をクリックします。
![WS000063.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/c3bbeae9-ea1e-ae0b-eb81-a2f1f268a3a2.jpeg)

(6) S3のホストをAレコードのエイリアスで登録します。
ここでは、エイリアスを使うのが重要です。
![WS000064.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/182ed9d5-a0cd-74a4-60a8-b1d3b2c9c4de.jpeg)

(7) 登録出来たら、実際にURLにアクセスして表示できるか確認します。
![WS000065.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/d835be97-e91f-b573-3dd1-3aac5fccb667.jpeg)

以上です。

# 備考
このままでは、httpアクセスしかできません。
どこかでhttpsアクセスできるよう、CloudFrontを使ったやり方を説明します。