Web-APサーバーの性能問題で特に多いのは、外部に公開するWebサイトにキャンペーンなどの影響でアクセスが集中するケースだ。こうした場合、Web-APサーバーが稼働する仮想マシンの台数を、アクセス量に応じてスケールアウトさせる解決策が一般的だろう。

 ただ、アプリケーションに多少手を入れられるケースでは、AWSのさまざまなサービスを組み合わせることによって、もっと低コストで効果を出せる策もある。アイレットの石田知也氏(cloudpack事業部 セクションリーダー ソリューションアーキテクト)らが、食品メーカーの販促用Webサイトを構築した事例が参考になる。

 この販促用Webサイトは、3Dレンダリングによる動画コンテンツを配信する。ある動画鑑賞イベントをきっかけに海外を含む大量のアクセスがWebサーバーに集中し、高負荷になることが予想されていた(図2左)。仮にWebサーバーのスケールアウトだけで対処しようとすると、多数の仮想マシンサービス「EC2(Elastic Compute Cloud)」を利用する必要があり、コストがかさみやすい。

図2●静的コンテンツの接続先を振り分け
図2●静的コンテンツの接続先を振り分け
仮想マシンに稼働させたWebサーバーへの接続数を減らすことで、システム全体での性能を高めやすくする
[画像のクリックで拡大表示]

 この状況に対して石田氏らは、まずWebサーバーが配信するコンテンツの種類を分類した。「動的か静的か、サイズはどの程度か、有効期間はどの程度かといった基準で仕分けする」(石田氏)。

 この仕分けに応じて、クライアントからのアクセスを振り分けるようにした。具体的には、動的コンテンツへのアクセスは本来のWebサーバーに接続する一方、画像など静的コンテンツの読み込み先は、クラウドストレージサービス「S3(Simple Storage Service)」にする(図2右)。

 クラウドストレージのS3は、実は静的コンテンツのWebサーバーとして機能する。これにより、静的コンテンツを読み込むアクセスを切り離すことで、通常のWebサーバーの負荷を下げられるわけだ。

 S3はアクセス数に応じて自動的にスケールアウトする。従って性能を心配する必要はほとんどない。しかもデータ量で課金されるので、スケールアウトによる費用も発生しない。

 特にアクセス頻度が高い静的コンテンツは、コンテンツ配信(CDN:Contents Delivery Network)サービス「Amazon CloudFront」経由で配信する。CDNは、クライアントとの距離が近いデータセンターにあるキャッシュサーバーからコンテンツを配信する。WANの伝送遅延による実効速度の低下を抑えるため、高速なレスポンスを期待できる。特に海外からのアクセスが多いコンテンツには効果が高い。

 キャッシュは一般には高頻度かつ利用期間が長いデータに適用すると効果的と考えられる。もっともアイレットの石田氏は、「ごく短時間で更新するデータでもキャッシュの活用を検討する価値は高い」と指摘する。例えばキャッシュのデータを1秒間しか保持しなくても、大量にアクセスがある場合はWebサーバーへの接続数を百分の一に下げられることがあるという。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。