Amazon S3(以降、S3)にはS3バケット内にputされたHTMLなどのオブジェクトを用いて、サーバレスでWebページをホスティングして公開する機能が備わっています。
今回はS3の注目機能である静的ホスティングについて、導入する理由や主な使用用途について解説を行います。
なぜS3で静的Webサイトをホスティング?
理由は、極めて低コストだからです。
企業HPや広告ランディングページは動的な要素は必ずしも必要はなく、静的なファイルを表示できればよいのであまり高機能なWebサーバーを必要としません。ReactでビルドしたSPAなども静的なものでS3での静的ホスティングが適しています。これらは静的ホスティング機能を有効化するだけで簡単に実現できます。
本当に安い
一番の理由として料金の安さがあります。料金は従量課金制のため容量・リクエスト数・データ転送量によって異なりますが、デフォルトで選択されるS3 Standardの場合は以下になります。
説明 | 料金 |
---|---|
ストレージ利用料 (最初の 50 TB/月) | 0.025USD/GB |
1000リクエスト(GETの場合) | 0.00037USD |
インターネットへのデータ転送(最初の 10 TB/月) | 0.114USD/GB |
月間PV数が1万程度のサイトを例にすると
- データ容量:1GB = 0.025USD
- リクエスト数:15 × 10,000PV ÷ 1,000 × 0.00037USD =0.0555USD
- データ転送量:2MB × 10,000PV = 20GB(20GB × 0.114USD)= 2.28USD
合計:0.025USD + 0.0555USD + 2.28USD = 2.3605USD
月間1万PV数だとひと月あたり2.3605USDで日本円で約317円でWebサイトを公開することができます。 ※解説時のレートのため変動する場合があります。
高い可用性
S3は3つ以上のアベイラビリティーゾーン(以降、AZ)で保護されています。
このAZとは1つのリージョン内での物理的に分離されたロケーションを表しており、クライアントがアップロードしたデータは3つのAZに分けて保存がされます。そのため火災や洪水などの災害発生時に1つのAZがダウンしても残りのAZでデータが保護され、高可用性を実現します。
これにより静的Webサイトをホスティングした場合もサーバダウンなどによりサイトが停止してしまう可能性が極めて低く、安定した配信を行えます。
サーバレスによる手軽さ
通常自社サーバを用いてWebサイトを作成する場合はサーバの構築や運用に莫大なコストや人的労力が必要になります。
一時的にアクセス数が増加した場合はサーバダウンしてしまう恐れや、アクセス数が継続的に増える場合はサーバ増設などコストも発生します。ですが、Amazon S3を用いることでこれらのサーバ管理を全てAWSへ任せることができ、利用者は手軽にWebサイトを運用することが可能になります。
静的Webサイトと動的Webサイトの違い
そもそもAmazon S3でホスティングが行える静的Webサイトとは何か、動的Webサイトとどう違うのかについて解説を行います。
静的Webサイトとは
静的WebサイトとはHTMLファイルなどで作成された、誰がいつどこでアクセスしても毎回同じものが表示されるWebページのことです。ユーザーの要求に対してWebサーバが要求されたデータをそのままブラウザに送信を行って表示します。そのためサーバ側での処理の必要がなく、ページ表示までのスピードが速いため、ユーザーの離脱などが抑えられます。
動的Webサイトとは
動的Webサイトとはアクセスしたときの状況に応じて異なる内容が表示されるWebページのことです。会員制のサイトやショッピングサイトなど、使う人によって違うページが表示されるサイトは動的Webサイトと言えます。
例えば、検索エンジンではユーザーの検索ワードを基にWebサーバが検索処理を実行し、HTMLファイルを作成します。その後Webブラウザに送信することでユーザーの入力した検索ワードに対して最新の検索結果情報を提供することができます。
主なユースケース
Amazon S3を用いた静的Webサイトとして以下のような使い方ができます。
企業HP
自社を紹介するHPなど、アクセスするユーザーに対して同じ内容のページを表示したい場合に適しています。企業HPなど長期的に利用をする場合にAmazon S3を使用することでコストを抑えて運用が行えます。
社内向けサイト
こちらは一般公開するのではなく、社内Wikiや通達など社内の従業員向けにサイトを公開したい場合に使えます。一般公開する場合と違い、急激なアクセス数の増加なども少ないため低価格で運用が行えます。
ランディングページ(LP)
商品やサービスなどを紹介するランディングページでは高い可用性が求められます。ユーザーがアクセスをしてきた際にページが表示されなかったり、急激なアクセス数の増加によりサーバがダウンしてしまうとお客様を獲得するチャンスを失います。ですがAmazon S3では99.99%のオブジェクトの可用性が提供されているため、高可用性を求められるランディングページなどに向いています。
SPAの配信
SPA(Single Page Application)は単一のページで構成されるWebアプリケーションです。動的なデータはAPIサーバーから取得するため、Reactなどで開発したSPAは静的ファイルを配信するだけで済みます。代表的な例だとGoogleMapやSlackのWebページなどはSPAが採用されています。
まとめ
静的Webサイトをホスティングする際に、自社サーバを使用するとサーバの構築から管理まで多くの費用と時間がかかり、レンタルサーバを利用する場合にはコストを抑えた運用が難しくなります。
しかし、Amazon S3を用いる事で可用性の高い静的Webサイトを手軽に尚且つコストを抑えて作成することができます。長期的に運用を行う企業のHPや高可用性が求められるランディングページなどを作成する場合には是非Amazon S3を用いてホスティングしてみましょう。
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.02.07
AWSでLogstashの環境構築と使い方を学ぶ
Logstashという強力なツールを用いて、効果的なログ収集、加工、および可視化の方法を学びます。AWS上でのLogstashの設定から、基本的な使い方まで、実践的な知識を提供することを目指しています。
- インフラエンジニア
- AWS
2022.12.30
【AWS】Amazon S3イベント通知の活用法
S3バケットで特定のイベントが発生したときにAWSの他のサービスに通知することが出来ます。
- AWS
2024.02.27
AWS ALBとAzure Application Gatewayの違い
この記事では、クラウドコンピューティングの二大巨頭、Amazon Web Services (AWS) の Application Load Balancer (ALB) と Microsoft Azure の Application Gateway (アプリケーションゲートウェイ)の間で、Web アプリケーション向けのロードバランサーサービスを比較します。
- AWS
- Azure