[クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜]

AWSにおけるWebシステムの負荷対策【第2回】

2017年3月27日(月)清野 剛史(クラスメソッドAWS事業部ソリューションアーキテクト)

前回はWebシステムを安全に運用するために必要な「可用性」の確保について考えた。今回は可用性と共にWebシステムでは重要なポイントである「負荷対策」について考えたい。

 「可用性の確保」と「負荷対策」は考え方や対応が似ている。可用性の確保とは「どのような状態でもサービスを継続できるようにすること」である。これに対し負荷対策は、可用性の確保の考え方を一歩進めて「どのような状態でも適切なスピードでサービスを提供できるようにする」ことを目指すものである。

サービスの利用者が待てる限界は3秒

 Webシステムにおいて、画面表示やAPI(Application Programming Interface)の処理速度を高めることはとても重要だ。なぜなら、こうしたスピードが顧客満足度や引いては売り上げに直結するからである。一般に、Webサイトの表示速度については、「0.1秒遅くなると売り上げが1%減少し、1秒速くなると売り上げは10%向上する」と言われている。

 また米国のマーケティングコンサルタント会社のAberdeen GroupとGomezの調査によると「スピードが1秒遅くなるとページビュー(閲覧数)が11%、コンバージョン(目標到達)が7%、顧客満足度が16%低下する」。米Facebookは「Webサイトの訪問者の40%は、表示が3秒遅れるとサイトを去る」と述べている。米Amazon.comのような巨大ECサイトでは「表示が1秒遅くなるだけで年間十数億ドルの機会損失がある」ともいう。

 こうした傾向はスマートフォンが普及し、4G/LTE、高速Wi-Fiが都市部だけでなく地方にまで普及している日本では顕著である。利用者は表示速度が遅いWebシステムには、すぐに見切りをつけてしまう。これはWebシステムの中身や価値以前の問題だ。

 この課題を解決するには当然、シンプルで無駄のないプログラム設計やページ圧縮といったレイテンシ対策や、サーバーサイドとクライアントサイドの処理分割などミドルウェアやロジックで対応しなければならないことが多い。だが今回は、システムに対する負荷が原因で本来のスピードが発揮できない場合に、インフラ側からどのように対策し、支えられるかを考察する。AWS(Amazon Web Services)における負荷分散の代表的な3つのパターン、すなわち(1)AutoScalingの利用、(2)CloudFrontの利用、(3)ElastiCacheの利用について、それぞれの実装上の注意点や運用のポイントを紹介する。

対策1:
AutoScalingを利用したスケールインとスケールアウト

図1:「AutoScaling」を利用したスケールインとスケールアウト図1:「AutoScaling」を利用したスケールインとスケールアウト
拡大画像表示

 まず「AutoScaling」を利用したスケールインとスケールアウトである(図1)。AutoScalingは、CPUの負荷やメモリーの増加など特定の条件をトリガーにEC2リソースを自動的に増減させる仕組みだ。

 これを利用することで、負荷が一定値を超えれば自動的にサーバーの台数が増え負荷を軽減できる。逆に負荷が一定以下に収まり特定の時間が経過すると、サーバー台数は自動的に縮退していくのでコスト的にもメリットがある。夜間や土日などの運用に十分な人手を割けない時でも、こうした自動的な負荷対策により、スタッフは安心して休日を過ごせる。

バックナンバー
クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜一覧へ
関連記事

Special

-PR-

AWSにおけるWebシステムの負荷対策【第2回】前回はWebシステムを安全に運用するために必要な「可用性」の確保について考えた。今回は可用性と共にWebシステムでは重要なポイントである「負荷対策」について考えたい。

PAGE TOP