「高速・堅牢・低コスト」サーバーの悩みは「S3」で解決!!

「高速・堅牢・低コスト」
サーバーの悩みは「S3」で解決!!

ENGINEERING

AWS , Network

近年、クラウドコンピューティングの台頭により、高速性・堅牢性・低コストを実現しつつ、サーバーを持たない、いわゆるサーバーレスアーキテクチャなWebサイト構築方法が登場しました。そこで、本記事では、AWSのサービスの一つである「Amazon Simple Storage Service」(以下S3)を用いたWebサイト構築方法を、従来方法との比較を交えて紹介します。

従来型のサーバーを用いたWebサイトの課題

一般的にコーポレートサイトやランディングページは、静的なページのみで構成される事が多く、配信するためにレンタルサーバーや専用サーバーを構築する必要がありました。 レンタルサーバーを用いる際には、割安ですが複数のユーザーが相乗りしているサーバー上に構築し、バックアップ設定などは各々のレンタルサーバーサービスに依存する形でした。 また、専用サーバーでは、レンタルサーバーよりは割高になりますが、自社専用のサーバーを自由な設定で構築し、コンテンツを作成して配信する形でした。

しかし、従来方法で構築したコーポレートサイトやランディングページなどの静的コンテンツのみのWebサイトは、下記のような課題を抱えています。

1. サーバーの構築・管理が必要。

専用サーバーを構築する場合、サーバーのスペックを選定したり、セキュリティやバックアップの設定をしたりと様々な作業が発生します。また、運用段階でもストレージ容量の空き具合を考慮しつつ、万が一のトラブル発生時には迅速に対処する必要があります。

2. 料金が柔軟でない。

基本的にレンタルサーバー、専用サーバー共に月額固定料金の場合が多く、PV数があまりない場合でも定額を支払うことになります。極端な例だと、PV数がゼロのページでも料金を支払うことなります。

3. 急激なアクセス増加に対応できない。

レンタルサーバーの場合、同じサーバー内で他のユーザーとリソースを共有するため、他のユーザーのサイトの影響を受けてしまいます。例えば、他のユーザーのサイトが広告を出稿し、急激にアクセス数が上昇した場合、その影響を受け自社のサーバーもダウンし、サイトが閲覧できない状況が発生し得ます

また、自社サイトの専用サーバーを用意したとしても、サーバーであるためリソースやスペックといったものがつきまといます。そのため、アクセス増加を予め見越したスケールアップ(サーバーのスペックアップさせること)やスケールアウト(サーバーの台数を増やすこと)のような対策が事前に必要となるため、アクセスの増加が読めないランディングページやニュースサイトへの掲載、SNSの影響による急激なアクセス増加(いわゆる、バズる)などの事象への対処が難しいです。

せっかくのアクセス増加による自社製品・サービスの売り込みの機会も、サーバーがダウンしてしまってはコンバージョンがゼロになり無意味なものになってしまいます。コーポレートサイトやランディングページなど宣伝に関わるページにおいては、この課題の解決が最も重要といえるでしょう。

“S3”でサーバーレスなWebサイト構築が課題解決のカギ

上記で説明したような課題を少しでも緩和する手法として「S3」があります。

「S3」とは、「Amazon Simple Storage Service」の略称であり、データの格納と取得に特化したAWSのクラウドストレージサービスの一種です。簡単に説明しますと、「S3とは耐久性・可用性・低コスト・高性能などの利点を謳った、安全で耐久性がありスケーラビリティに優れたクラウドストレージ」です。

利用方法も簡単で、html, css, javascript等の静的ファイルを「S3」の管理画面からアップロードするだけで自社サイトを構築することができます。

「S3」のみでWebサイトを構築することによって、自分でサーバーを構築したり保守作業や急激なアクセス増加への対応をしたりする必要はなくなります。

「高速性・低コスト・堅牢性」の3拍子そろった優れもの

1. 高速性

SNSやニュースサイトへの掲載などでアクセス急増が予期される場合には、予めサーバーのスケールアップ、スケールアウトをする必要がありました。しかし、「S3」を用いるとそれらの対応をする必要がなく、予期しない収益拡大のチャンスにもサーバーがダウンせずに常に安定して高速なレスポンスが可能になります。

2. 低コスト

クラウドサービスであるためサーバーの初期構築と運用管理の人件費のコストは必要ありません

初期費用は必要なく、ランニングコストは従量課金性であるため使った分しか料金が発生しない仕組みです。具体的には、ランニングコストはストレージ容量とデータ転送量、リクエスト数の3つの要素によって決定します。

従量課金制の仕組みにより、急激なアクセス増加時でも使った分だけの料金で済みます。また、PV数がゼロのページでは料金が発生しません。従来の方法では、サーバーのスケールアップやスケールアウトをするとアクセス増加が実際には発生しなくても料金がかかりましたが、「S3」ではそのようなことはありません。

3. 堅牢性

アップロードされたデータは3箇所以上にレプリケーション(複製)されるため、それら3つのデータセンターを同時に消失しない限りデータが消失することはありません。また、物理サーバーとの比較となりますが、クラウドのためハードウェア障害は基本的に発生しません。可用性可用性システムやサービスなどが、利用者によって使用できる状態を保ち続ける能力。可用性を表す数値としては稼働率がよく使われる。SLASLAService Level Agreementの略。サービス水準合意。サービス提供者とその利用者の間で結ばれるサービス水準に関する合意。
クラウドサービスの場合、サービスの稼働率の基準や、これを下回った場合の対応などについて取り決められていることが多い。
は99.9%であり、計画停止もありません。

さらに、ストレージは1ファイルあたり最小1バイトから最大5TBまで保存可能です。ストレージの容量を気にする必要はありません。

導入前に気をつけたいポイント2つ

1. 動的コンテンツが動かせない。

「S3」は静的ファイルの格納、配信に特化しているサービスです。その代償にPHPやRubyなどを用いて動的にコンテンツを作成し、表示することができません。ただし、一部の動的コンテンツの処理のみEC2やAWS Lambdaを導入することで解消することは可能です。

2. 最終的な料金請求の予想が難しい。

「S3」は使用した分のみ料金が請求される仕組みです。しかし、裏を返せば、予め料金がわかっているわけではないということです しかし、概算は算出することは可能であり、ある一定の料金になったらアラートを出すと言った対策も可能です。

参考
概算算出法:amazon web services SIMPLE MONTHLY CALCULATOR
請求情報とコスト管理:使用状況とコストのモニタリング-AWS請求情報とコスト管理

「S3」を活用するならこのパターン!

1. 静的Webページで構成されるコーポレートサイト

コーポレートサイトは、会社概要や製品紹介ページ、プレスリリースなどhtml、css、javascriptで完結し、データベースやサーバー側で処理が行われない静的ページで構成されることが大多数です。 そのため、「S3」を用いたWebサイト制作との相性は高いといえます。特にコーポレートサイトの場合、ニュースサイトへ掲載された時やSNSで予期しない盛り上がりが発生した際にアクセスの増加が予想されます。そのような場合でも、今回紹介した手法であればサーバーがダウンすることなく多くのアクセスに対処することが可能なため、コンバージョンの向上が最も見込めると考えられます。

2. ランディングページ

期間限定のランディングページなどは、数ページのみ構成されるため、わざわざサーバーを構築するのはコストパフォーマンスが良くありません。加えて、ランディングページの特性上、アクセス数の予想も難しいため、「S3」によるWebサイト構築に向いていると考えられます。

3. CMSやECサイトなどに対する一部導入

ECサイトなどの動的コンテンツとデータベースを用いて構築されるサイトは、「S3」のみで構築することは不可能です。また、シングルページアプリケーション(SPA)シングルページアプリケーションSPASPAとは「Single Page Application」の略で、単一のページでコンテンツの切替を行うWeb アプリケーションのアーキテクチャの名称です。を用いたサイト構築も不可能です。同じ理由からWordpressなどのCMSサイトを「S3」のみで構築することもできません。

しかし、一部分の処理を「S3」で賄うことは可能です。例えば、htmlやcssなどの静的ファイル、又は画像ファイルやPDFなどのメディアファイルの配信などに対し、「S3」を用いて動的処理の部分のみはEC2などのサーバーを用いるという方法です。それによりサーバーの負荷が分散され、動的コンテンツの高速化、サーバーコストの削減が見込めます。CMSであれば、WordepressのメディアファイルやMovableTypeの生成ファイルのみを「S3」で管理、配信する形になります。

本記事では従来の静的Webサイト構築方法と比較しながら、サーバーを構築することなく低コストで堅牢性、高速性が担保される静的Webサイトの構築方法を紹介しました。紹介した方法により、サーバー構築・運用のコストが削減されるだけでなく、低コストでスケーラブルなWebサイトを構築できます。現在、アクセス増加によるサーバーダウンや運用トラブル、運用コストなどに悩みがございましたら、導入を検討してみてはいかがでしょうか?

また、AWSには今回説明したS3以外にも多種多様なサービスが展開されています。例えば、データベースの機能のみを抽出したRDSRDSAmazon Relational Database Serviceの略。Amazonが提供するデータベースのマネージドサービス。
MySQLやPostgreSQLなどのデータベース管理システムを簡単に設定、運用、スケールできる。
ロードバランサーロードバランサー負荷分散装置。クライアントからのリクエストを2台以上のサーバーに分配する役割を持つシステムのこと。
Webアプリケーションでは、サーバーの負荷軽減やスケーラビリティーの確保のために使われることが多い。
の機能のみを抽出したELBなど、色々な機能が提供されています。

その中でも、Amazon Cloud FrontというCDNサービスと今回紹介したS3の併用の相性が良く、併用により更なるアクセス速度の向上が図られ、UXの向上が見込めるような対策ができます。

参考
Amazon S3
CDP:Web Storageパターン
SlideShare「Amazon S3による静的Webサイトホスティング」

この記事を書いた社員

Masaki Otsuka

Front-End Engineer

2015年新卒入社。アプリケーション開発からサーバー構築、運用を担当するバックエンドエンジニア。趣味はロックンロール。