連載
» 2011年07月07日 00時00分 公開

「AWS専用」じゃない! RightScaleの実力RightScaleでクラウドを運用管理!(1)(2/3 ページ)

[森田貴司,株式会社日立ソリューションズ]

2. RightScaleにおけるサーバ設計

 RightScaleで最も重要な概念は「サーバテンプレート」です。名前のとおりサーバのひな形を定義したもので、RightScaleによって管理されるサーバ群は、このサーバテンプレートから生成されます。つまり、RightScaleにおけるサーバ設計とは、サーバテンプレートを構成することです。

 サーバテンプレートはいくつかの要素で構成されていますが、その中でも特に重要なのが次の2つのコンポーネントです。

  • マルチクラウドイメージ
  • Rightスクリプト

 大雑把にいうと、マルチクラウドイメージはOSがインストールされた「仮想マシンテンプレート」、Rightスクリプトは「構築手順書」のようなものです。

 クラウドではサーバのシステムバックアップともいえるイメージの管理が重要になります。これはAmazon EC2であればAMI (Amazon Machine Image) と呼ばれています。WebサーバやDBサーバのように役割を持ったサーバを迅速に立ち上げるために、オリジナルのAMIを作成することが一般的です。この方法では、管理するサーバの種類が増えてくるにつれAMIの数も増えてくるため、ストレージのコストや管理コストも比例して増えることになります。

 RightScaleではサーバのイメージ管理に特徴的なアプローチをとっています。元となるイメージは汎用性のある最小限の構成で保存しておき、サーバを起動するときにスクリプトでソフトウェアのインストールや設定を行います。インストール作業を自動化することで、サーバの起動時にWebサーバやDBサーバのように役割を持ったサーバを作り上げていきます。

 米ライトスケールは、サーバテンプレートをミュージックプレイヤーのプレイリストに例えて説明しています。お気に入りの音楽を持ち出すとき、CD-Rなどのメディア(イメージ)に焼き付けてしまうと、選曲を変えるたびに丸ごと作り直す必要があるのに比べ、ミュージックプレイヤーに入れておけばプレイリスト(サーバテンプレート)を編集するだけで自由に選曲ができます。

 サーバテンプレートの最大のメリットは、マルチクラウドイメージやRightスクリプトの組み合わせを変えることで、さまざまな役割を持ったサーバを迅速に作り出すことができるというところです。

図2 サーバテンプレートの構造 図2 サーバテンプレートの構造

マルチクラウドイメージ

 マルチクラウドイメージを仮想マシンテンプレートのようなものと説明しましたが、実際にはクラウドごとのイメージをラッピングする抽象的なコンポーネントです。Amazon EC2のAMIは、リージョン(地域)ごとに一意に管理されているため、リージョンを超えて利用することはできません。RightScaleではクラウドのポータビリティを実現するため、Amazon EC2の各リージョンや他のクラウドに同じ構成のイメージを配布しています。これらのイメージを1つに見せるため、マルチクラウドイメージという概念を持たせています。

 マルチクラウドイメージがサポートしているクラウドであれば、サーバテンプレートは同じように動作することが保障されます。サーバを別のリージョンに移行したい場合は、同じサーバテンプレートから立ち上げるだけでいいのです。別のリージョンにDRサイトを立ち上げることも容易です。BCPを考えるうえでも、マルチクラウドイメージは非常に重要な概念です。

 このように、さまざまなクラウドでサーバを立ち上げることができる準備が整えられているというところが、RightScaleの強みといえます。

Rightスクリプト

 Rightスクリプトは、サーバの構築手順を記録して再利用可能にした、いわば手順書です。Rightスクリプトはbash、Perl、Ruby、Pythonなどのスクリプト言語で記述することができます。Windowsの場合はPowerShellで記述します。Rightスクリプトは対象のサーバ上で実行されるため、そのサーバが実行できる形式で記述する必要があります。

 Rightスクリプトをマルチクラウドイメージの上で実行することで、特定の役割や機能を持ったサーバを作り出すことができます。この手法のメリットは、サーバの一部の構成を変えたい場合でもイメージを作り直す必要がないということ、スクリプトを再利用することで生産性を向上させることができるということです。

図3 Rightスクリプトの適用イメージ 図3 Rightスクリプトの適用イメージ

 サーバテンプレートには、サーバの起動時に実行される「Bootスクリプト」、稼働中の任意のタイミングで実行することができる「Operationalスクリプト」、サーバの終了時に実行される「Decommissionスクリプト」を定義することができます。

 Bootスクリプトには、パッケージのインストールやアプリケーションの構成を行うRightスクリプトを定義します。サーバを起動するとRightスクリプトが定義された順番に実行され、サーバが構成されていきます。一方で、Decommissionスクリプトには、サーバの終了時に実行したいRightスクリプトを定義します。ログファイルやデータベースのバックアップ、ロードバランサーなど依存関係があるサーバからの切り離しなどが一例として挙げられます。特に多くのサーバを管理しているような環境では、このような起動、停止運用を自動化することで運用コストを大幅に削減できるでしょう。

 Operationalスクリプトは自動的には実行されませんが、対象のサーバで行うべき運用スクリプトを定義することができます。特定のプロセスの再起動やデータベースの随時バックアップ/リストア、アプリケーションの更新処理などを関連付けておくことで、RightScaleからワンクリックで実行ができるようになるだけでなく、運用時のオペレーションミスを防ぐ効果も期待できます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。