Amazon S3でWebsiteを公開する (CLIで頑張る)

こんにちは。渡辺です。

今回はAmazon S3でスタティックなWebサイトを構築する方法を紹介します。

S3はファイルの置き場所なので、PHPやRubyなどのプログラムをサーバ側で動かすことはできません。

多機能のサーバは構築できませんが、逆にセキュリティ対策なんかはあまり気にしないで済むので、使い道によってはいいかもしれません。

ありふれた内容ではありますが、今回がんばって「GUIを使わない」で構築しました。

 

S3バケットを作成する

作成 # clara-tというバケットを作りました。

確認

S3バケットとローカルディレクトリを同期させる

適当にディレクトリを作成し、そこにindex.htmlというファイルを作成します。

ディレクトリとバケットを同期させます。

S3バケット内を 確認します

 URLにアクセスする => Website設定がないので失敗

S3バケット内のURLのフォーマットはこんな感じになります。
<bucket-name>.s3-website-<AWS-region>.amazonaws.com

NoSuchWebsiteConfiguration(Website設定がないよー)と出て404 Not Foundが返ってきました。

 Website設定をする

 URLにアクセスする => ポリシー未設定のため失敗

Website設定はされましたが、今度は権限エラー、AccessDeniedで403 Forbiddenです。
権限の無い人は、アクセスできません。

S3バケットにポリシーを付与する

バケットに付与する権限をJSONファイルで作成します。

作成したJSONファイルをバケットに適用します。

 URLにアクセスする => 成功!

Website設定をする時に–index-document index.html をつけていたので、URLにファイル名を指定しないでもindex.htmlが返ってきます。

まとめ

思ったよりも楽ですね。

これで無限容量の公開サーバを手に入れました!

おまけ

検証後のバケット削除の様子をお送りします。

バケット内のファイルを全て削除

ファイルが残っているとバケットが削除できないので、まずファイルを削除します。
今回はindex.htmlだけなので、ファイル名指定してもいいのですが、数が多いと大変です。
–recursiveをつけるとバケット内を一気に削除してくれます。

 バケットを削除

 

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer