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を用いてホスティングしてみましょう。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.08.01
ECSの基本を理解する(クラスター、サービス、タスク定義、タスク)
Amazon Elastic Container Serviceは、AWSが提供するフルマネージドのコンテナオーケストレーションサービスです。ECSを利用することで、Dockerコンテナのスケーリング、実行、停止、管理をより簡単に行うことができます。
- AWS
2024.04.06
[ハンズオン]AWS Backupで作成したAMIをLambdaを使用して起動テンプレートに適用
この記事では、AWS上でのリソース管理を自動化する方法を実践的に解説します。特に、開発環境やプロダクション環境におけるデプロイメントプロセスの簡素化や、ディザスタリカバリ準備の一環として、最新のAMIを定期的に起動テンプレートに適用する自動化手法を紹介します。
- AWS
- インフラエンジニア
- ハンズオン
2022.12.29
【AWS】リレーショナルデータベースAmazon RDSの利点
AWS(Amazon Web Services)で使用できるリレーショナルデータベースサービスのことです。
- AWS
- データベース