システム設計に必要な5つのポイント
まず下妻氏は、システムを設計していく上で必要となる要素として、「想定負荷」「事業プラン」「冗長性・可用性」「会員規模」「コスト」の5つを提示し、これらをもとにハードウェアの選定、ネットワークの設計を行っていくことになると説明。下妻氏は、ネットワークの構成例を規模別に3つのパターンに分け、それぞれの特徴を紹介した。
【小規模構成】
Webサーバ1台、DBサーバ1台のもっともシンプルな構成。
- <特徴>
- 想定会員規模:数万人
- 比較的低価格
- 導入が容易
- 単独サービスを提供するサイト向き
【中規模構成】
たとえばキャリア別にそれぞれWebサーバ1台、DBサーバ1台ずつを配置。サーバの役割を分散させるなど、ハードウェアの有効活用も可能になる。
- <特徴>
- 想定会員規模:数万人×3キャリア
- フレキシブルな相互補完
【大規模構成】
ファイアウォール配下にロードバランサーを加え、その下に複数のWebサーバ、DBサーバを配置。書き込み専用と読み出し専用のDBを分けるなど、役割を分担させることで負荷を分散できるほか、1台のDBサーバをマスタDB、残りの2台をレプリカとしてリアルタイムレプリケーションを行うといった使い方も可能だ。
- <特徴>
- 想定会員数:10万人以上・よりフレキシブルな相互補完
- 高い拡張性・冗長性
- 複数サービスを提供するサイト向き
適切なシステム運用に欠かせない3つ要素
このように要件に応じた適切な構築はもちろん、安定的な運用を確保することが次の課題となる。
「運用におけるもっとも重要なミッションは、限られたリソースを最大限に利用して最大限の効果を得ること。特にコストとリスクのバランスは悩ましいところ。運用のあり方とノウハウが重要な要素となります」(下妻氏)。下妻氏は、適切なシステム運用に欠かせない3つの要素について、次のように説明した。
- 個別の環境に合わせた運用
使用帯域が少ない割には接続数が非常に多い、ハイスペックなCPUが必要、深夜にアクセスが増えるなど、それぞれのコンテンツの性質に合わせて、WebサーバやDBサーバ、バックアップポリシー、セキュリティーポリシーの検討を進める。 - 障害への対応
障害を検知するための監視システムを構築し、障害発生時の対応を検討しておく。もちろん、障害を事前検知するための仕組みも重要。ハードウェア障害が9割を占めることから考えても、サイトの運営状況を含めた情報収集および共有、ログの採取と分析、使用リソースの分析に努め、計画的なメンテナンスを実施していくことが必要。 - 標準化と柔軟な対応
未知の事象に遭遇したとき、開発から運用、ハードウェア、インフラに至るまで、あらゆる情報をもとに柔軟に対応し、その結果を標準化していく。つまり、一度得た経験をもとに分析を行い、同じ障害が二度と起こらないように対策を講じる、もしくは同じ事象に直面したときに必ず対応できるようにする。
特に3つ目の要素について、下妻氏は最後にもう一度強調した。「運用サイクルをまわすことで、運用ノウハウが蓄積されていきます。このノウハウをいかに蓄積していくか。これがもっとも重要なポイントだと考えています」。
「あなたの側(そば)で、あなた以上に考える」をモットーに掲げるスカイアーチネットワークスは、同社とコンテンツホルダー、開発会社とが三位一体となったサービスの運用を目指していくという。
スカイアーチネットワークス