S3で静的ホスティングをしてみた

# 目的
S3バケットを使用してsorryページを静的ホスティングする

# 手順
1. S3バケットを作成する
1. S3バケットを設定する
1. HTMLファイルを作成してS3にアップロードする
1. 公開できていることを確認する

### 1. S3バケット作成
S3のバケットを作成します。
好きな名前を設定します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/8f11e163-867b-05c1-a8f9-22043c04af33.png)
推奨通りにACLは無効とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/455e6802-ae0f-e56b-faa6-ecb6948b0c9f.png)
今回はWebページを作成するため、パブリックアクセスをすべてブロックのチェックを外してパブリックからアクセスできるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/aa9ee54d-dc54-289b-4e9b-1e7e3a1d2594.png)
その他の設定はそのままにし、下にスクロールして「バケットを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/eeab5168-c258-6180-fa1a-70f55aef0064.png)

### 2. バケットを設定する
以下の2点を変更します。
 2.1 バケットポリシー
 2.2 静的ウェブホスティング有効化

2.1 バケットポリシーの変更
バケットの詳細ページから、アクセス許可のタブを開き、バケットポリシー欄の「編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/b080d9ec-ffb0-79f2-9802-d49d74bd10fa.png)

編集画面で以下のコードを入力します。
選択されている部分はバケット名を入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/e52f0b6e-458f-49c2-1f75-e9b679fdbb51.png)

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::Bucket-Name/*"
            ]
        }
    ]
    }
この様に赤い注意書きが出ていれば大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/3ad546d7-91a2-759b-a17a-47bf67c28355.png)


 2.2 静的ウェブホスティング有効化
バケット詳細ページのプロパティタブの一番下に静的ウェブサイトホスティング欄がありますので、そこの「編集」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/78076999-3a16-22f9-8f4c-b344ba17294e.png)
～～～～～～～～～～～～～～～～～～～～～～～～
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/d2c62fed-71fa-b3a4-043b-5b8c3bbb4ec2.png)
静的ウェブサイトホスティングで「有効にする」を選択し、「静的ウェブサイトをホストする」を選択します。

インデックスドキュメントは「sorry.html」とします。
こちらは後ほど作成する公開するhtmlファイルの名前です。

オプションであるエラードキュメントの設定などは飛ばして、一番下にある「変更の保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/5c68a3bc-07eb-03d5-fa35-8989302dcd9d.png)

### 3. HTMLファイルを作成してS3にアップロードする
メモ帳を開き、htmlファイルを作成します。コードは以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/ffb4db4e-b1c5-55a3-5745-94284643d141.png)

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ただいまメンテナンス中です | EXAMPLE.COM</title>
    <style>
      body {
        margin: 0;
        padding: 0;
        background: #eee;
      }
      #conainer {
        margin: 0 auto;
        padding: 20px;
        max-width: 600px;
        background: #fff;
      }
      h1 {
        font-size: 2em;
      }
      .warn {
        padding: 1em;
        background: #ff7;
      }
      .note {
        font-size: 0.8em;
      }
      #footer {
        text-align: center;
      }
    </style>
    </head>
    
    <body>
      <div id="container">
        <h1>ただいまメンテナンス中です</h1>
        <p>
          システムアップデートのためサービスを停止しています。<br>
          ユーザーの皆様にはご不便をおかけしますが、メンテナンス終了まで今しばらくお待ち下さい。<br>
        </p>
        <h2>メンテナンス期間</h2>
        <p class="warn">
            2022年12月1日（木） 00:00 〜 <strong>12月31日（土） 23:59</strong><br>
        </p>
        <p class="note">
          実施時間は前後する可能性があります。<br>
          最新の情報は<a href="https://twitter.com/{username}">Twitter</a>にて更新しています。<br>
        </p>
        <h2>
         お問い合わせ
        </h2>
        <p>
          メンテナンスに関するお問い合わせは<a href="mailto:maintenance@example.com">maintenance@example.com</a>までお願いします。
        </p>
        <hr>
        <div id="footer">
          &copy; example.com
        </div>
      </div>
    </body>
    </html>


保存する際に「ファイルの種類」を「すべてのファイル」に変更して、名前の最後に.htmlとつけることでhtmlファイルとして保存できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/683850c9-b3e9-d4d3-5df2-1e88d155d3f7.png)

AWS管理コンソールのS3ページに戻ります。
「アップロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/da27520e-8b46-ddf7-1c6a-cdfad79ac3aa.png)

この画面に先ほど作成したhtmlファイルをドラッグアンドドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/0d5619ee-7488-9f65-1dca-ce82d326e06a.png)

一番下にスクロールし、「アップロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/f42df764-7111-fa0a-0355-ed8d8ffa819f.png)

アップロードすることができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/42d629a1-6693-5d97-2738-db6f4eeed77b.png)

### 4. 公開できていることを確認する
バケット詳細ページの「プロパティ」「静的ウェブサイトホスティング」欄にURLの記載があるので、そのURLをコピーし、ブラウザに貼り付けます。
このようなWebサイトが確認できれば成功です◎
お疲れ様でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989225/9ce10681-c5bf-cedb-d670-36ebd8a9f566.png)