AWS
S3

Amazon S3 での静的ウェブサイトのホスティング方法


S3でバケットを作る

まずは公開する画像なりhtmlなりのコンテンツを置くバケットを作る

S3 Management Console.png

バケット名を入力し、リージョンを選んで「作成」

このバケット名とリージョンがurlに使われます

S3 Management Console1.png


静的ホスティングの設定

作成したバケットを選択し、上部タブの「プロパティ」から「Static Website hosting」を選択

S3 Management Console2.png

インデックスドキュメントとエラードキュメントを入力して「保存」

ここで入力したファイルは実際になくても、アクセスした際にはAWSのデフォルトのエラー画面が出てくれるので

とりあえず動かすには問題ありません。

S3 Management Console4.png


アクセス権限の設定

「アクセス権限」タブ→「パブリックアクセス設定」→編集

S3 Management Console5.png

下2つのチェックを外して保存します。

S3 Management Console6.png

以下のバケットポリシーを入力し、保存します。

アップロードしたコンテンツのパブリックアクセスを有効にします。

S3 Management Console7.png

{

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

うまく設定できればアクセス権限にパブリックの文字が付きます。

念のため「アクセス権限」タブ→「パブリックアクセス設定」→編集で

「新規のパブリックバケットポリシーをブロックする」のチェックを元に戻し、保存しておきましょう。

S3 Management Console8.png


完了

これでこのバケットにhtmlをアップロードすれば静的ウェブサイトの出来上がりです。

アクセスについては、例えばtest.jpgをアップロードした場合は

http://バケット名.s3-website-リージョン名.amazonaws.com/test.jpg

(上の例ではhttp://test.docs.s3-website-us-east-1.amazonaws.com/test.jpg)

本当に静的webサイトとして運用するなら、https化や独自ドメイン設定も必要かと思いますが。

この記事ではここまでとします。