これは何?
AWSのS3を使って静的ウェブサイトホスティングの設定をしていく記事
脳死で書いているので脳死で試すこともできるはず。。。!
注意点
- この記事のメインはホスティングの設定なので、ウェブサイトの方は本当に雑な作り
- AWSのコンソールはUIがよく変わるので、そのうち方法変わっているかも
- 今回のやり方は推奨されていない
- S3だけだとHTTP通信しかできないので、ちゃんと運用する場合CloudFrontと組み合わせる必要がある(ここは今度書く)
実際にやっていく
バケットの作成
バケットの名前
全世界で一意である必要があるため、被らない名前にする必要がある
ACLの設定
ブロックパブリックアクセス設定
バケットのバージョニング設定
静的ホスティングをするためにバケットの設定
作成したバケットに入りプロパティタブの静的ウェブサイトホスティングを編集する
ここは静的ウェブサイトホスティングを有効にして、インデックスドキュメントを設定するだけでOK
バケットポリシーの設定
アクセス許可のタブに移動しバケットポリシーの編集を行う
内容は作成したバケットからオブジェクトを取得するのを許可する感じ
backets-name は自分が作成したバケット名
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::backets-name/*"
}
]
}
indexファイルを作成、配置
本当に適当(サイトと読んではいけないレベル)
index.html
<html lang="ja">
<head>
<meta charset="utf-8">
<title>静的ホスティング</title>
</head>
<body>
<div>
<div>
アドベントカレンダー
</div>
</div>
</body>
</html>
プロパティタブの静的ウェブサイトホスティングにエンドポイントが吐き出されている
感想
- 頭をそんな使わなくても上から読みつつ手を動かせば同じような環境が作れるはず
- 注意点でも書いたが自分用や遊びならいいと思うが真面目に使う場合CloudFrontも使った方が良い(今度やる)
- コストもそこまで大きくならないはず
- 少しAWSの勉強をしていれば誰でもできそう