LoginSignup
1
2

AWSを使ったWebサーバーの最もお手軽な構築(S3静的ウェブホスティング)【2024年2月】

Last updated at Posted at 2024-02-17

AWSのS3というストレージを使ってWebサイトをホスティングさせる際の最小設定について手順をまとめています。
EC2等の仮想サーバーでWebサーバを構築するより手早く構築することが出来ます。Cloudfrontとの連携や独自ドメイン・SSL/TLS対応へ拡張することもできるので、とても有力な方法だと思います。
WebサーバーをLinuxで構築するのではなく、AWSのS3というストレージサービスを使ってWebサーバー機能を追加することで実現する方法なのですが、AWSとしても力を入れている使い方となっています。

マネジメントコンソールからS3を選択肢

スクリーンショット 2024-02-17 103107.png

S3バケットを作成

S3バケットはAWSグローバルでユニークである必要があるので被らない名前としてください。このハンズオンではs3webstatichostingとしていますが、私が使っているので利用できません。リージョンは任意で大丈夫です。海外に作りたければそれでもOK、ここでは東京リージョンとしています。
スクリーンショット 2024-02-17 103659.png

パブリックアクセスのブロックをOFFとします。
スクリーンショット 2024-02-17 103902.png

その他はデフォルト設定でバケットを作成します。
スクリーンショット 2024-02-17 103956.png

Webホスティングの設定

作成したバケットに対してWebホスティングの設定をします。作成してバケットを選択して、プロパティを選ぶと一番下に設定メニューがあります。
スクリーンショット 2024-02-17 104905.png
スクリーンショット 2024-02-17 105000.png
スクリーンショット 2024-02-17 105044.png

インデックスドキュメントを指定して変更を保存します。ここは入力しなくても動きますが、ドメインだけでアクセスした際に、デフォルトで表示されるファイルとなるので、index.htmlと指定するのが一般的です。
スクリーンショット 2024-02-17 105129.png

HTMLのアップロード

バケットにHTMLファイルをアップロード
スクリーンショット 2024-02-17 105340.png
スクリーンショット 2024-02-17 105434.png

バケットのプロパティの静的ウェブサイトホスティング記載のリンクでアクセスを試みます。
スクリーンショット 2024-02-17 110536.png

残念ながら、パブリックアクセスのブロックを解除しただけの状態だとバケットが公開されていません。次のバケットポリシの設定に進んでください。
スクリーンショット 2024-02-17 110040.png

バケットポリシの設定

バケットのアクセス許可の中からバケットポリシの編集へ進みます。
スクリーンショット 2024-02-17 105822.png

json形式のバケットポリシを設定します。
スクリーンショット 2024-02-17 111154.png
s3webstatichostingの部分は作ったバケットの名前に変更してください。
対象バケットに対するパブリックアクセスを許可する設定をしています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::s3webstatichosting/*"
        }
    ]
}

表示確認

表示確認をすると公開できていることが分かります。
スクリーンショット 2024-02-17 110536.png
スクリーンショット 2024-02-17 111949.png

HTMLファイルだけでなく画像やjavascriptの公開も可能です。また、ファイル毎にURLを作ってくれるのでそこからのアクセスの場合はSST/TLSが適用されています。
スクリーンショット 2024-02-17 112308.png
image.png

S3ウェブホスティングの料金と可用性

ここまでの対応でAWS発生する料金はS3のデータ容量課金とアクセスされた場合のデータ転送量課金です。50TBまで月3円程度、10TB/月を転送して15円ぐらいなので価格破壊です。レンタルサーバーでシンプルなHPをホストしている理由が分からない。病みつきになります。

S3 標準 - 頻繁にアクセスするデータに一般的に使用される、あらゆるタイプのデータの汎用ストレージ
最初の 50 TB/月 0.025USD/GB

Amazon S3 からインターネットへのデータ転送送信 (アウト)
最初の 10 TB/月 0.114USD/GB

制約としては、サーバーサイドスクリプト(PHPやRubyなど)が使えないことぐらい。S3はAWSが冗長構成を多重に取ってくれているので、99.999999999%の可用性があります。

今後

ここから、CloudfrontというCDNサービスを組み合わせて、独自ドメイン・SSL/TLSを適用すると更に便利になるので、今後、記事を続けていく予定です。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2