cre8cre8
AskMe♥

s3で月10円程度webサイトを公開する

レンタルサーバって高くない?最安でも300円くらいからで、だいたい1000円くらいとか無いわー。。。
ほとんどPVないのに、そんなに取られてたら一年で3600円から12000円の赤字やわー。。。
まじつらいわー。。。

っとお思いのみなさま。中の人たくみがご提案します!
s3を使って月々10円程度でwebサイトを公開してみましょう!!
(10円で運用するには諸諸条件があります。)

バケットを作って公開したいhtmlをいれる

それでは、s3を開いて、 Create Bucket ボタンをポチッと押しましょう!

サイトURLと同一の名前のバケットを作成
Bucket Name と Region を入力します。
Bucket Name には、公開したい所有しているドメイン名を入力してください。
(サンプルではs3-hosting.cre8cre8.comにしています。)
Region はデータが保存される場所です。場所によって、s3の値段が異なります。
今回は Tokyo を選択しています。
入力が完了したら Create ボタンを押してください。

それでは、公開するhtmlを作りましょう。

index.html
1<!doctype html>
2<html>
3    <head>
4        <meta charset="utf-8">
5        <title>s3でホームページを10円で作る</title>
6    </head>
7    <body>
8        <h1>Hello. My home page!!</h1>
9    </body>
10</html>

上記のhtmlをindex.htmlという名前で保存してください。
この index.html を作成したバケットにアップロードします。
s3-hosting.cre8cre8.comをクリックするとバケットの中身一覧が表示されます。
(作ったばかりなので中身一覧には何も表示されませんが…)
その後、上部にあるActionボタン -> Uploadと押します。
ファイルのアップロード方法

index.htmlのアップロードが完了すると下記のような画面になります。
index.htmlアップロード後の画面

バケットポリシーとStatic Website Hostingの設定

上記でアップロードしたファイルはこのままだと非公開なので、公開するよう設定してきます。
バケットの設定をするため、プロパティーを表示します。
画面上部左にある、Propertiesボタンを押してください。
バケットのプロパティを表示するボタン

Permissionsを開き、Edit bucket policyボタンを押します。
すると、バケットポリシーを編集できる画面になりますので、下記内容を追加します。

bucket policy
1{
2  "Version":"2012-10-17",
3  "Statement":[
4    {
5      "Sid":"AddPerm",
6      "Effect":"Allow",
7      "Principal": "",
8      "Action":["s3:GetObject"],
9      "Resource":["arn:aws:s3:::YOUR_BUCKET_NAME/"]
10    }
11  ]
12}
バケットポリシーを追加
YOUR_BUCKET_NAME の箇所にはバケット名を記入します。
上記の設定で、誰でもこのバケットに読み取り(GET)アクセスすることができるようになります。
噛み砕いていうと、Webページが公開されますよ〜っという意味になります。

そして、次に実際に公開するため Static Website Hosting 設定をします。
Permissionsの下にStatic Website Hostingという項目があるので押します。

Static Website Hostingを有効にする
真ん中の Enable website hosting をチェックして、
Index Documentに index.html と入力してください。
この Index Document に index.html と入力するのを忘れると、
http://your_domain/index.html みたいな感じで index.html と入力しないと404エラーになるので注意してください。
設定が完了したら Save ボタンを押します。

それでは、 Endpoint に記載されているURLを押してみましょう!
作ったhtmlが表示されていたら成功です!
S3が割り当てたURL(Endpoint)でアクセスして確認

独自ドメインで公開する

http://YOUR_BUCKET_NAME.s3-website-ap-northeast-1.amazonaws.com
で毎回アクセスするのはちょっとかっこ悪いのと、URLが長いので、独自ドメインでアクセスできるようにしてみましょう!

Route53 でドメイン管理をしていた場合はサクサク♪っとできます。
では、AWSのコンソールのトップページに戻ってから、
Route53を開いて、紐付けるドメインのレコードをいじれる画面まで遷移後、
Create Record Set ボタンを押して、新たなレコードを作成します。

Route53で独自ドメインを設定してS3にアクセスできるようにする
Nameには、作ったバケット名のサブドメイン部分を、
AliasのラジオボタンはYesを選択。
AliasにYesを選択した状態でAlias Targetにフォーカスを合わせると、プルダウンメニューが現れるので、
-- S3 website endpoints -- から、先程作ったs3バケットを選択してください。
そして、Create ボタンを押します!

では、設定したドメインでアクセスできるか確認しましょう!

独自ドメイン割当後の確認
キタ━━━━(゚∀゚)━━━━!!

まとめ

WebのAWSコンソールからの操作でほとんど完結するので、簡単にできますね。
では、今回の s3でwebサイトをホスティングする操作 のおさらいです。

あ、免責になりますが、必ず10円で運用できるとは限りません。
PVがめちゃくちゃ多いサイトや、動画などのデータ容量が大きいコンテンツを配信している場合は、
桁がいくつも多くなるのでご注意ください。
画像を使っている量にもよりますが、だいたい月間1000pvくらいでしたら、10円程度になると思います。
個人的な経験則ですが。。。
詳細な金額が必要な場合は計算シミュレーターをAWSが提供していますので、
必ず事前にチェックしてくださいね。

それでは、格安でWebサイトを運営してCoolでイケてるナイスなGuyになりましょう!
お疲れ様でした!!

≪ 前の記事
Let's Encryptを使ってEC2(Amazon Linux)に構築したWordPressを無料でhttps(SSL)対応してみる
次の記事 ≫
Python3でunittestを導入してみる

いいねやコメントを送っていただけると中の人がしっぽ振って大喜びします♪

あなたへのおすすめの記事