スケーラブルな仮想インフラの設計法:Column
アプリケーションによって拡張方法(スケールアップか、スケールアウトか)の方向性は異なる。それぞれに対応できる仮想インフラの設計法を説明する。
仮想インフラを計画する際、ホストサーバのリソース要件は一般的に、仮想サーバのプロセッサとメモリの要件に基づいて決定される。だが、これらの数字は誤った判断を導きやすい。特定時点、あるいはせいぜい不十分な期間におけるアプリケーションのリソース使用量を表しているにすぎないからだ。
こうした数字を使う場合でも、短期的なビジネス成長に対応できる仮想インフラは設計できるかもしれない。しかし、真に堅固な仮想環境を構築するには、長期的な成長も考慮に入れる必要がある。そのためには、アプリケーションのスケーラビリティ特性に目を向けなければならない。
すべてのアプリケーションに共通するのは、「アプリケーションの負荷が増大してノードの処理能力を超えたら、対応策としてそのアプリケーションやノードを拡張する必要がある」という点だ。しかし、すべてのアプリケーションが同じ方向のスケーラビリティを持つわけではない。一部のアプリケーションは水平方向に拡張されるように設計されており、ノードを追加することでアプリケーションの負荷分散を行える。また、アプリケーションをホストするノードにより多くのリソースを割り当てる、垂直方向の拡張に適したアプリケーションもある。
本稿では、水平または垂直方向のスケーラビリティを持つアプリケーションにそれぞれ対応できる仮想インフラの設計法を説明する。
スケールアップ:ノードにリソースを割り当てる垂直方向の拡張
データベースサーバは大抵の場合、垂直方向に拡張(スケールアップ)する必要がある。一方、Oracle 10gやMicrosoft SQL Server、MySQLといった主流の製品はすべて、連続レプリケーション、連合データベース設計、データベース負荷分散など、水平方向のスケーラビリティを実現するさまざまな方法をサポートしている。
だが残念ながら、どの方法にも固有の問題がある。
Copyright © ITmedia, Inc. All Rights Reserved.