AWSの超コスパ術 – S3静的Webホスティング編
とらくらのインフラエンジニア、ばっしーです。
10月になって穏やかな日和が続いていましたが、ようやく「寒い」と感じるようになり、秋の深まりを感じるようになってきました。秋といえば、読書、スポーツ、そして何より味覚の秋ですよね!
実りの秋、果物もおいしい季節ですし、各種スイーツのラインナップも充実する季節です。昨日はローソンで「マロン」スイーツの発売記事を見かけたので、ついつい引き寄せられてしまいました…どれもうまそう!(笑)
ところで、AWSなどのクラウドを利用したことがないお客様から、よく「クラウドって何がいいの?」「レンタルサーバーより安いの?」「長く使うなら結局はオンプレミスの方が得なんじゃない?」などと言われることがあります。
そのような疑問を解消する、そんな事例をこれからいくつか紹介していきたいと思います。
今回は第一回目ということで、AWSの来表的なサービスであるS3(Simple Storage Service)を使った「静的Webホスティング」を扱ってみたいと思います。
S3による静的Webホスティング とは
Webホスティングとは
皆さんがお勤めの会社にも、おそらく自社のホームページというものがあるかと思いますが、そのホームページのデータがおいてあり、公開しているものが「Webサーバ」といわれます。そのWebサーバを貸し出すサービス(レンタルサーバー)が「ホスティング」と呼ばれています。
本来ならサーバーという名称通り、サーバーを1台用意して利用するものではありますが、インターネットの普及し始めた時代から専門の業者がサーバーを貸し出す、いわゆる「レンタルサーバー」が普及していました。その中に、専用サーバーや共同利用するサーバーがあったり、その発展形である仮想占有サーバーなどといったサービスも利用されてきました。
専門の業者が運用するサーバーをレンタルするという意味では、クラウドも似たイメージではありますが、レンタルサーバーではあくまでも利用するサーバーは、その業者が固定して決めています。さらに当然ですが個々のサーバーの資産調達、運用費などなどが重くのしかかり、弱小サービスベンダではサービスの質を落として料金を下げるしかありません。
その点、AWSのS3は世界最高といってもいいほどに堅牢です。サービスレベルは99.999999999%。9が11個並ぶ、いわゆる「イレブンナイン」といわれる堅牢性を誇っています。
具体的な価格
更に、料金がこれまた激安です。0.025USD/GBとなっています。為替を110円で計算すると1GBあたり約28円/月程度です。
とはいえ、「1GB」といわれてもよくわからないと思います。
そこで、実際のホームページを見てみましょう。
トップページなどに動画も使われていますが、それも含めた総容量は約300MBです。料金にするとなんと約8円/月です!
ここに僅かですが、転送量課金が乗ってくるのですが、下記に記す「Amazon CloudFront (CloudFront) に転送されたデータ。」は除外されますので0円です。
ホームページのサーバーが月額8円といわれたら怪しいですよね。でもこれがAWSの本当の料金です。
ただし少々条件がありますので、そのあたりをご説明いたします。
- 静的であること
- SSLはACMの証明書+CloudFrontによるSSL実装
この二点だけです。
「静的」とは
PHPやRubyといった言語で書かれていないことが第一の条件です。そのため、CMSとかBlogエンジンなどといわれるシステム、例えばWordPressなども利用することが出来ません。しかし、これはちょっとしたコツによって使うこともできるんです。
一般的にWrodPressはWebサーバーにインストールして利用するもので、データベースも必要となりますが、それらを動作させるためには大変負荷の高いものに耐えうるリソースを準備することになります。なので、一般的なレンタルサーバーは高額になるか、安価なサービスはレスポンスが悪いことが多いんです。この条件は確実に料金に比例しています。
ですが、Webサーバーの動きを見てみると、WrodPressなどが必要になるのはページを作成することだけで、実は一度テンプレートを作成してしまえば、基本的には全員同じページを見せているだけになります。
例外としては、ECサイトや会員制サイトなどで、ログインして個人情報を扱ったり、掲示板のように頻繁にユーザーが書き込むことが出来る仕組みがあったり、そのユーザーごとにカスタムした機能を持っているページは静的サイトとしては作成することが出来ないため、S3のWebホスティングには向いていません。
上の例外を除いて、一般的な商品紹介のページや会社案内のページ、一方的に情報を発信するニュースなどの情報サイトなどであれば、少しの手間だけで静的なサイトとして作成することが出来ます。
具体的には、手持ちのPCなどのWordPressをインストールし、そのWordPressで作成したページをS3バケットへ転送することでそのまま利用可能です。
実際に上で紹介した弊社のサイトはそのように作成しています。
※お問合せのフォームだけは実際に動作が必要な部分になりますので、外部のレンタルフォームサービスを利用しています。(これも外部の無料サービスを利用しています)
SSLの実装
インターネットの世界では数年前からSSL化が標準となり、今やSSL化されていないホームページは検索順位が下がるなどの仕打ちが待っています。
S3は標準でSSLの機能を持っていますが、それはS3独自のホスト名に限定されています。そのため、独自ドメインでSSLを利用するためにはひと工夫が必要となります。
そのために必要なものを解説します。
1.ACMによるSSLサーバー証明書
Amazon Certificate Manager(ACM)で利用するホスト名を指定して証明書を作成します。
[注意点]
・ACMではホスト名なし(Zone Apex)とワイルドカードを利用する場合には、「domain.com」と「*.domain.com」の二つの名前を一つの証明書に設定する必要があります。
2.Cloud Front Distribution の作成
オリジンをS3に設定し、上で作成したACMを指定してHTTPS配信を設定することで、CloudFrontがSSLアクセラレーターの役割を担って、独自ドメインによるSSL化を実現できます。
3.ACM、CloudFrontの料金
ACMの料金
AWS Certificate Manager でプロビジョニングされたパブリック SSL/TLS 証明書は無料です。お支払いいただくのは、アプリケーションを実行するために作成した AWS リソースの料金のみです。
今回の利用方法によるACMの料金は発生しません。無料です。
CloudFrontの料金
CloudFrontの料金体系は少しだけ複雑です。サイトのアクセス数、ダウンロードされたデータ量などに比例して課金され、上限という概念がありませんので、どの程度アクセスがスパイク(爆発的な増加)すると、どのくらいの請求になるのかを把握しておかないと、怖いことになる可能性も僅かにあります。
ですが、初年度は200万リクエストと50GBまでの無料枠が準備されていたりするため、それほど心配することはないでしょう。仮に100万リクエスト、100GBと、相当なトラフィックで見積もってみたところでも、1,500円/月程度です。
なお、もっと具体的な例として、弊社サービス「とらくら」のコース詳細ページを例にとってみます。このページは全部のパーツを含めると2.2MB程度、ファイル数は50個です。例えばこのページを平均として、月に10,000回見られたとします。CloufFrontはHTTP/2に対応しているため、ファイル数は50あってもリクエスト数としては一つとなります。そのため、計算はデータ転送が22GB、リクエストが1万となり、料金は300円程度となります。
合計の料金
ACMが無償のため、以下のように月間1万アクセスで約308円/月となります。この金額は当然、アクセス数に応じて上下があります。アクセス数が1,000だった場合は38円/月ですね。
S3の料金 8円
ACMの料金 0円
CloudFrontの料金 300円
—————————————
合計 308円
逆に、例えばTVなどで放映されて、突然100万アクセスが来た場合には3万円/月となりますが、その場合でもレスポンスは超高速です。一般的なレンタルサーバーだと、瞬間的なアクセス増には耐えられず、すぐにサーバーが止まって機会損失してしまいます。
テレビで見かけて検索したページが混雑して見れなかった場合、そのページは適切にクラウドを利用できていないということがよくわかります。
オリンピックのチケットや、ワクチンの予約サイトがパンクしたとかたまにニュースで聞きますが、あれは予約という特性から裏のデータベースへの書き込み処理が必要となるので、難易度は少し上がります。ですがきちんとスケーラブルな(規模に応じた)設計をできる知識のある人が旗を振っていれば、違った結果になった可能性があります。
この料金ってすごいの?
この料金にはSSLのサーバー証明書が含まれていることに注目してください。
サーバー証明書は安価なものなら数千円~数万円ですが、今回前提としているワイルドカードの証明書は、日本でよく使われているGMOさんの価格は以下のような料金です。
証明書の料金がドメインの数によらないというのは、証明書の更新処理も不要ということにもつながります。例えば無料のSSLサーバー証明書(Let’s Encrypt)を用いた場合にも、自動更新スクリプトの失敗などもあり得る話です。
ドメイン自体の更新さえ忘れなければ、あるいは、ドメイン自体もRoute53で取得しておけば、永遠に心配いりませんね。
まとめ
このように、AWSを使いこなすことが出来れば、Webの制作に必要となる運用が非常に楽になるだけでなく、障害の心配もすることがなくなり、さらに毎月の経費を劇的に抑えることが出来ます。
Web制作に関わる方や、Web制作事業をしている経営者、事業部の方々は、このようなサービスを使いこなさなければならないだけでなく、今後は知らないことがリスクとなってきます。
お客様のニーズがマッチした場合には、このようなサービスをうまく利用し、運用の手間、経費を削減して、本業に集中することが出来る環境を手に入れられる、ビジネスの成功への近道でもあります。
それでも不安な場合は
もし技術的に自信が無い、セキュリティ的に不安がある、見積りがわからない、今すぐ自社だけで運用していくのは不安だ。。。など、お困りのことがあれば弊社までご相談ください。
初めのお手伝いは全力で行い、ゆくゆくは御社のみでしっかり運用できるように導きますので、利益拡大の礎に弊社をご利用ください。
お問合せは下記まで。
投稿者プロフィール
-
<インフラエンジニア>
■ オンプレミスからクラウドまで幅広いインテグレーションを手掛けてきたエンジニア。実は機械設計やWebディレクターも務めたことがある。
■ IoTの工作やAliexpressで中華ガジェットを買うのが大好き。
最新の投稿
- AWS2022年6月9日AWS認定資格の受験申込とバウチャー(割引コード)の利用方法
- AWS2022年6月7日AWSトレーニングと認定のページにログインできなくなった話と解決方法
- AWS2022年2月2日シングルAZのRDSメンテナンスをマルチAZに切り替えて実施した
- AWS2021年11月22日AWSの超コスパ術 – オンプレvsクラウド実際の比較編①