« 大規模システム構築と小規模システム構築の大きな違い(その1) | Main | ソーシャルアプリ専用ホスティングサービスをまとめてみました »

May 06, 2010

大規模システム構築と小規模システム構築の大きな違い(その2)

前回のエントリーからの続きです。今回は大規模システムと小規模システムでの負荷対策に対する考え方の違いについて述べてみたいと思います。

【小規模システムではパフォーマンスチューニング力が重要】
小規模システムではハードウェアリソースの追加が費用面で難しいので、負荷対策においては限られたハードウェアリソースを最大限活かす方向で頑張ることになります。つまりアクセスが増えてきた場合はパフォーマンスチューニングすることで乗り切ることとなります。

例えば1台のサーバ上にApacheとJAVAとTomcatとMySQLを入れた環境があったとします。最初の頃は特に問題がなくても、徐々にアクセス数が増えてだんだん応答速度が落ちてきたときは、ソースコードを改良したり、オープンソースの各パラメータを調整したり、もしくはmemcachedを入れて繰り返し問い合せられるものをメモリ上にキャッシュさせたりといった、パフォーマンスチューニングに労力を注ぐことになります。

【大規模システムではスケーラビリティの高いシステム設計が重要】
一方、大規模システムではアクセス数増大をパフォーマンスチューニングだけで乗り切るのが不可能な場合がほとんどなので、負荷対策においてはハードウェアリソースを増強することで対処することになります。つまりシステム設計の上で、ハードウェアリソースを増強することで容易にシステムキャパシティを増やすスケーラビリティの高いシステム設計が重要となります。

例えばWEBサーバ10台でアクセスをさばいている環境があったとします。ある日TV広告を打つことになりました。TV広告を打った直後アクセスが確実に100倍以上になることが予想されたときは、早急にハードウェアリソースを増やして乗り越えなければなりません。サーバを追加する、アクセス数が多すぎてキャパシティを超えた時のことを考えてSorryサーバに飛ぶようにネットワークを調整する、画像などの静的コンテンツはCDNなどを利用する、もしくはこの機会にクラウド環境に切り替えるなどなど、矢継ぎ早に作戦を練って対処していかなければなりません。

【結論】
同じインフラエンジニアであっても大規模システムを扱うか小規模システムを扱うかでこれだけ負荷対策が異なることがおわかりいただけたかと思います。

前回のエントリーでも書きましたが、大規模システムを扱う場合は技術力云々よりもとにかく次々と意思決定していくことがとても重要となります。次々と意思決定するためには幅広い技術的知識や経験がとても重要となります。インフラエンジニアを志したからにはそれらを身に付けつつ、是非ともいつかは大規模システムに挑戦してみていただければと思います。

|

« 大規模システム構築と小規模システム構築の大きな違い(その1) | Main | ソーシャルアプリ専用ホスティングサービスをまとめてみました »

ソリューション・購買」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/48284872

Listed below are links to weblogs that reference 大規模システム構築と小規模システム構築の大きな違い(その2) :

« 大規模システム構築と小規模システム構築の大きな違い(その1) | Main | ソーシャルアプリ専用ホスティングサービスをまとめてみました »