WEBサイトの運用料金を安くしたいです
AWSのS3なら静的なWEBサイトを低料金で運用できます
- AWSのS3でWEBサーバーを作成するメリット
- AWSのS3でWEBサーバーを作成する手順
S3ではWEBサイトの作成もできる
AWSのS3はストレージサービスですが、ウェブホスティング機能があり、アップロードしたファイルをWEBサーバー経由で公開することができます。
この機能を利用して、S3で静的なWEBサイトを作成することができます。
S3上ではプログラムは一切動かせないので、PHPやNode.jsなどは使えずWordPressも使えません。
HTML、CSS、JavaScriptの静的サイトのみ作成が可能です。
S3のWEBサイトでできること
S3で作成するWEBサイトでは、以下のことが行なえます。
- CloudFrontと連携してhttps通信やSSL証明書の自動更新が可能
- Route53と連携して独自ドメインを使用可能
S3のWEBホスティングはhttp
のみ対応ですが、CloudFrontと連携することでhttps
にも対応できます。
CloudFrontでACM(AWS Certificate Manager)を利用すれば、SSL証明書の自動更新も行えます。
S3をRoute53と連携することで、S3のWEBサイトを独自ドメインで公開できます。
S3でWEBサイトを運用するメリット
S3でのWEBサイト作成には以下のメリットがあります。
従量制課金なので料金が安い
S3は従量制課金のため、アクセス数がそこまで多くないWEBサイトでは、VPSやレンタルサーバーのサービスと比べて料金を安く抑えることができます。
WEBサーバーをS3任せにできる
S3はフルマネージドサービスで、WEBホスティング機能を有効にするだけで、あとはS3任せでコンテンツの更新のみに集中できます。
S3でWEBサイトを作成する手順
S3でWEBサイトを作成する手順は以下になります。
WEBサイトのコンテンツファイルのアップロード先となるバケットを作成します。
AWSのマネジメントコンソールの検索欄にs3
と入力してS3サービスを選択します。
S3の画面で バケットを作成をクリックします。
バケットの作成画面になるので必要な情報を入力します。
バケット名
を入力してAWSリージョン
はアジアパシフィック (東京) ap-northeast-1
をリストから選択します。
バケット名には英字は小文字のみ使用できるなどの命名規則があります。
また、S3のバケット名は、世界中の他のユーザーのバケットとも重複しない名前が必要です。
既にあるバケットと同じ名前にすると、作成時に変更を求められます。
今回バケット名は表に出さないので、覚えにくい意味の無い名前でも問題ありません。
このバケットのブロックパブリックアクセス設定
を設定します。
S3の初期設定ではパブリックアクセスをすべてブロック
が選択されています。
S3のファイルをWEBサイトのコンテンツとして公開するのでパブリックアクセスをすべてブロック
のチェックを外します。
パブリックアクセスをブロックしない危険性を承諾するか
を聞かれるのでチェックを入れて承諾します。
バケットのバージョニング
は今回は無効にする
のままにします。
タグ
はバケットにラベルを付けて管理しやすくするためのものですが、今回は設定しません。
デフォルトの暗号化
はバケットにコンテンツを保存する時の暗号化の方式を設定します。
今回のバケット内容は公開WEBサイトのコンテンツで暗号化の方法を気にする必要はないのでAmazon S3 マネージドキー(SSE-S3)
のままにします。
詳細設定
では上書き不可の設定ができますが、今回はWEBコンテンツで更新していくのでオブジェクトロック
は無効にする
のままにします。
今回の入力内容の全体は以下のようになります。
全ての内容を入力したら バケットを作成ボタンをクリックします。
バケットが作成されてバケット一覧画面に移ります。
以上でバケットの作成は完了です。
バケットにファイルをアップロードする
作成したバケットにWEBサイトのコンテンツのファイルをアップロードします。
アップロードするファイルを用意します。
今回はテスト用の以下のファイルをアップロードします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>サンプルページ</title>
</head>
<body>
<h1>サンプルページ</h1>
</body>
</html>
以下のボタンから上のファイルをダウンロードできます。
S3のバケット一覧画面で、作成したバケットの名前をクリックします。
バケットの内容が表示されるので アップロードをクリックします。
上のエリアにファイルやフォルダをドラッグアンドドロップするか ファイルを追加 フォルダの追加をクリックします。
ここでは上で用意したファイルをFinderからドラッグアンドドロップします。
ファイルがアップロード画面のリストに追加されるので アップロードをクリックします。
バケットへのファイルのアップロードが完了します。
静的ウェブサイトエンドポイントを有効にする
バケット画面の上部メニュープロパティ
を選択します。
プロパティ画面の一番下にある静的ウェブサイトホスティングの 編集をクリックします。
静的ウェブサイトホスティングの編集画面になります。
静的ウェブサイトホスティング
を有効にする
にしてインデックスドキュメント
にindex.html
と入力して 変更の保存をクリックします。
静的ウェブサイトホスティング
を有効にすると、バケットのWEBサイトへのリンクが表示されます。
今の時点では、リンクをクリックしてもブロックされてWEBページは表示されません。
バケットポリシーを設定する
バケット内のファイルを公開するためのバケットポリシーを設定します。
バケット画面の上部メニューアクセス許可
を選択してバケットポリシー
の 編集をクリックします。
バケットポリシーの編集画面になります。
バケットポリシーに以下の通りに記述します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::バケット名/*"
]
}
]
}
バケットポリシーを入力して 変更の保存をクリックします。
保存したバケットポリシーが適用されます。
再度バケットのプロパティ
の静的ウェブサイトホスティング
のリンクをクリックします。
今度はバケットにアップロードしたWEBページが表示されます。
以上で手順は完了ですが、今のままだとhttpsではなくURLも長くて分かりにくいです。
S3のWEBサイトをhttps化して独自ドメインに対応する手順は以下の記事になります。