Column
スケーラブルな仮想インフラの設計法
アプリケーションによって拡張方法(スケールアップか、スケールアウトか)の方向性は異なる。それぞれに対応できる仮想インフラの設計法を説明する。
仮想インフラを計画する際、ホストサーバのリソース要件は一般的に、仮想サーバのプロセッサとメモリの要件に基づいて決定される。だが、これらの数字は誤った判断を導きやすい。特定時点、あるいはせいぜい不十分な期間におけるアプリケーションのリソース使用量を表しているにすぎないからだ。
こうした数字を使う場合でも、短期的なビジネス成長に対応できる仮想インフラは設計できるかもしれない。しかし、真に堅固な仮想環境を構築するには、長期的な成長も考慮に入れる必要がある。そのためには、アプリケーションのスケーラビリティ特性に目を向けなければならない。
すべてのアプリケーションに共通するのは、「アプリケーションの負荷が増大してノードの処理能力を超えたら、対応策としてそのアプリケーションやノードを拡張する必要がある」という点だ。しかし、すべてのアプリケーションが同じ方向のスケーラビリティを持つわけではない。一部のアプリケーションは水平方向に拡張されるように設計されており、ノードを追加することでアプリケーションの負荷分散を行える。また、アプリケーションをホストするノードにより多くのリソースを割り当てる、垂直方向の拡張に適したアプリケーションもある。
本稿では、水平または垂直方向のスケーラビリティを持つアプリケーションにそれぞれ対応できる仮想インフラの設計法を説明する。
スケールアップ:ノードにリソースを割り当てる垂直方向の拡張
データベースサーバは大抵の場合、垂直方向に拡張(スケールアップ)する必要がある。一方、Oracle 10gやMicrosoft SQL Server、MySQLといった主流の製品はすべて、連続レプリケーション、連合データベース設計、データベース負荷分散など、水平方向のスケーラビリティを実現するさまざまな方法をサポートしている。
だが残念ながら、どの方法にも固有の問題がある。
連続レプリケーションでは、ライブデータが使用されないほか、すべてのデータベース製品が競合解決をサポートしているわけではない。
連合データベース設計では、全体的な動作速度は、最も遅い連合メンバーの速度にしかならない。また、1つのサーバがダウンすると、データベース全体がオフラインになる。連合データベース設計で高可用性(HA)を確保する方法はあるが、連合メンバーサーバごとに冗長ノードを用意する必要があるため、コストが高くつく。
データベース負荷分散は、データベースへのすべての書き込みを複数のノード間で同期しながら、読み込み操作を負荷分散対象ノードのいずれかに送ることによって機能する。しかし、書き込みが適切にコミットされなければ、読み込み操作で誤ったデータが返される恐れがある。
データベースのスケールアウトはこうした固有の問題をはらんでおり、結局のところ、データベースにより多くのリソースを提供する最も簡単な方法は、スケールアップだということになる。ただし、スケールアップされるアプリケーションは、仮想化すべきではないという考え方もある。こうしたアプリケーションは、使用可能なホストリソースをいずれは使い切ってしまう恐れがあるからだ。もっとも、確かにスケールアップ型アプリケーションを仮想化した場合はそうだが、スケールアップ型アプリケーションが物理サーバにインストールされていて、物理ハードウェアから移動してその制約から解放するのに仮想化が必要な場合にも、同様に当てはまることだ。
このように将来的なスケールアップの問題はあるものの、スケールアップ型アプリケーションを仮想化するのは良いアイデアだ。だがそのためには、慎重にインフラ設計を計画しなければならない。
まず、使用するスケールアップ型アプリケーションごとに、その将来の負荷に対応できるだけのリソースを備えた1台のホストを用意する必要がある。また、ほかのノードにも、こうしたスケールアップ型アプリケーションで追加リソースが必要になり、その仮想マシンを移行しなければならなくなった場合に対応できるだけのリソースを確保しておかなければならない。そうすることは、スケールアップ型アプリケーションが動作する仮想マシンを、使用可能なリソースが最も多いホストサーバに割り当てるポリシーを作成できるという、仮想化ソフトウェアの機能を活用するために役立つ。そして仮想化により、アプリケーションの新たなレベルのモビリティが実現されるため、最初から巨大なサーバを購入する必要はない。そうする代わりに、小さく始めて、ビジネスの成長に伴ってアプリケーションを拡張する必要が生じたら、スケールアップ型アプリケーションの仮想マシンをより大規模なホストサーバに移行することが可能なのは、非常に魅力的だ。ここで述べた方法は、スケールアウト型アプリケーションを仮想化する場合にも有効だが、以下のように、この場合にはもっと適したソリューションがある。
スケールアウト:ノードを追加する水平方向の拡張
並列に動作させることが驚くほど効果的なアプリケーション、つまり水平方向のスケーラビリティが非常に高いアプリケーションは、誰もが少なくとも1つは知っている。それはWebサーバだ。Webサーバの役割はWebページを提供することだが、これ自体はリソース消費が非常に少ない作業だ。
だが、Webサイトへのアクセスが増加すると、Webページの提供に使われるリソースも増える。それが進むと、Webサーバをホストするノードが、Webサーバに十分なリソースを割り当てられなくなる場合がある。その場合、対応策の選択肢は、1)ノードにリソースを追加する、2)Webサーバをホストできるノードを追加する――の2つだ。
選択肢1は、前述したデータベースアプリケーションの場合のようにスケールアップを行うものであり、Webサーバが提供できるページ数を増やすための完全に効果的な方法だ。しかし、データベースアプリケーションとは異なり、Webサーバはほとんど問題なく、非常に簡単にスケールアウトできる。そのために必要なのは、WebサイトのデータをNASなどの共有ストレージに置くことだけだ。ApacheやIISといったといった主要なWebサーバは、共有されているファイルシステム、サーバ、プロセスに状態を保存できるため、データアクセスの入り口にすぎないことになる。
そのおかげで、Webサーバは水平方向に拡張するのが非常に簡単だ。ノードを追加し、その上にWebサーバをインストールして、既存のファイルと状態データにアクセスするように構成するだけで済む。
Webサーバのように簡単にスケールアウトできるアプリケーションは、仮想化の対象として最適だ。こうしたアプリケーションは、既存の仮想化ソリューションのメリットの多く、例えば共有メモリアクセス、仮想マシンの迅速なプロビジョニング、管理機能などを利用できるからだ。スケールアウト型アプリケーションを運用する仮想インフラの設計もいたって簡単で、過剰装備にならないように気を付ければよい。必要十分なものだけを購入するわけだ。スケールアウト型アプリケーションは大抵の場合、64GバイトのRAMや8ウェイ・プロセッサの処理能力は必要としない。小規模な仮想ホストサーバを多数用意すれば、申し分なく機能するし、ノードの追加により、ホストサーバのハードウェア障害に備えて高い冗長性を確保できる。
一方、ファイルサーバなどのように、水平方向にも垂直方向にも同程度のスケーラビリティを持つアプリケーションもある。こうしたアプリケーションを拡張する場合、わたしならスケールアップではなく、スケールアウトする方を選ぶ。ノードを増やすことで冗長性が高まるからだ。以上をまとめると、最近のほとんどのアプリケーションは、スケールアップもスケールアウトも可能だが、それぞれについて見ると、どちらかの拡張方向の方がより望ましいのは確かだ。仮想インフラを設計する際は、こうしたアプリケーションのスケーラビリティ特性をしっかり見極め、仮想環境を慎重に計画するようにしよう。
本稿筆者のアンドルー・カッツ氏は、Burton Groupのアナリスト。前職はテキサス大学オースティン校のITシステムスペシャリスト。MCSD(マイクロソフト認定ソリューションデベロッパー)、SANS GCWN(GIAC Certified Windows Security Administrator)、VCP on VI3(VMware Certified Professional on VMware Infrastructure 3)の資格を持つ。最近、SANS GIAC Gold認定を受けた。
TechTargetジャパンへのご登録はお済みですか?
**「TechTargetジャパン」メンバーシップのご案内**
会員登録を行うことで、300点以上の技術資料がそろったホワイトペーパーや興味・関心分野ごとに情報を配信するメールマガジン、ITmediaや@ITの特集記事がPDFでまとまって読める電子ブックレットなど、各種サービスを無料で利用できます。**会員登録(無料)はこちらから**
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー