Amazon EC2でサーバをカスタマイズした場合は、そのサーバのバックアップを取得してオリジナルのAMIを作成します。
RightScaleからEC2を使う場合でも、同様にバックアップを作成することは可能ですが、RightScaleのベストプラクティスとしては、カスタマイズした時の手順をRightスクリプトとして管理し、再利用可能な部品とすることが推奨されています。
前回でも紹介しましたが、AMIは少し変更を加えたい場合でも作り直す必要があるため、サーバイメージが増えてくると管理が煩雑になりがちです。RightScaleでは、サーバテンプレート、Rightスクリプト、マルチクラウドイメージなどの要素に分割することで、それぞれの独立性を高め、メンテナンスを容易に行えることを目指しています。
それではRightスクリプトを作っていきましょう。ここでは、WordPressをインストールするRightスクリプトを例に紹介します。Rightスクリプトの作成は、画面上部のメニューから「デザイン」->「Rightスクリプト」から行います。
先ほどMultiCloud Marketplaceでサーバテンプレートを取り込んだため、関連するRightスクリプトが取り込まれていると思います。ここでは、新しいRightスクリプトを作成したいので「新規作成」ボタンをクリックしてください。いくつかの入力項目が表示されます。まずは、「Name」にRightスクリプトの名前を入力します。例えば、「WordPress install」と入力します。「Description」には、このRightスクリプトの説明を入力します。
次に、「Packages」にはRightスクリプトを実行するための前提パッケージを入力することができます。テキストボックスに、WordPressを動作させるために必要なパッケージを入力します。
httpd php php-mysql php-gd mysql-server
「Inputs」は後ほど使いますので、続いて「Script」のテキストボックスにWordPressをインストールする手順を入力します。例えば、次のように記述します。
#!/bin/bash –ex #再起動時はサービスの起動のみ行う if test "$RS_REBOOT" = "true" ; then service mysqld start service httpd start exit 0 fi #WordPressのダウンロードと初期設定 cd /tmp wget -nv http://ja.wordpress.org/latest-ja.tar.gz tar -xzf latest-ja.tar.gz service mysqld start mysql -u root #再起動時はサービスの起動のみ行う if test "$RS_REBOOT" = "true" ; then service mysqld start service httpd start exit 0 fi #WordPressのダウンロードと初期設定 cd /tmp wget -nv http://ja.wordpress.org/latest-ja.tar.gz tar -xzf latest-ja.tar.gz service mysqld start mysql -u root <<EOF create database $DB_NAME; grant all privileges on $DB_NAME.* to "$DB_USERNAME"@"localhost" identified by "$DB_PASSWORD"; flush privileges; EOF cd /tmp/wordpress cp wp-config-sample.php wp-config.php sed -i \ -e "s/database_name_here/$DB_NAME/" \ -e "s/username_here/$DB_USERNAME/" \ -e "s/password_here/$DB_PASSWORD/" \ /tmp/wordpress/wp-config.php mv /tmp/wordpress /var/www/html/ service httpd start
最後に、「Inputs」エリアの「Identify」ボタンをクリックします。「Inputs」はRightスクリプトに渡す変数を定義します。「Script」のところで$DB_NAMEのような形式($に続けて半角大文字)で入力した変数が、外部変数としてリストされます。なお、小文字で入力した場合は内部変数(シェル変数)として扱われます。
すべての項目を入力したら、最下部にある「Save」ボタンをクリックしてください。
Rightスクリプトができたら、これをサーバテンプレートに追加します。「デザイン」メニューから「サーバテンプレート」をクリックしてください。サーバテンプレートの一覧から「Base ServerTemplate - 11H1」をクリックします。
MultiCloud Marketplaceから取り込んだサーバテンプレートは、そのままではカスタマイズすることはできません。カスタマイズできるようにするためには、クローンを作成する必要があります。「Clone」ボタンをクリックしてください。
「Base ServerTemplate - 11H1 v1」という名前でクローンが作成されます。これでこのサーバテンプレートをカスタマイズできるようになりました。同様に、他の人が作成したRightスクリプトやマルチクラウドイメージについてもカスタマイズを行う場合はクローンを作成する必要があります。カスタマイズの前にクローン、と覚えておくといいでしょう。
なお、サーバテンプレートの名称は、名前の下線(青い点線)をクリックすることで変更できます。クローン前のものと識別しやすいようにサーバテンプレートの用途に応じた名称に変更しておきましょう。
それでは、先ほど作成したRightスクリプトをサーバテンプレートに追加しましょう。「スクリプト」タブをクリックしてください。WordPressのインストールはサーバの起動時に自動的に行いたいため、「Boot Scripts」の下にある「Add Script」をクリックします。
ダイアログが表示されるので、Rightスクリプトを選択します。作成したRightスクリプトは「Unpublished」をクリックすると表示されます。先ほど作成したRightスクリプトを選択して、「Select」ボタンをクリックしてください。
これで完成です。サーバを起動するために、「Add To Deployment」ボタンをクリックしてデプロイメントに登録してください。
このサーバを起動しようとすると、次のような画面が表示されます。先ほど作成したRightスクリプトの「Inputs」に該当する変数が赤色に表示されています。それぞれの項目に値を入力して、「Save and Launch」ボタンをクリックしてください。
状態が「operational」になったら、WordPressがインストールされたか確認してみましょう。デプロイメントのサーバの一覧から、起動したサーバ名をクリックして詳細情報を表示します。「Public DNS Name」にこのサーバに割り当てられた公開ホスト名が表示されていますので、ブラウザで「http://
起動後のサーバへのSSHログインもブラウザから簡単に行えます。サーバの詳細情報から「SSH Console」ボタンをクリックするとSSHのコンソールが起動します(Javaプラグインのインストールが必要です)。SSH鍵はRightScaleが受け渡しをしてくれるため、クライアント側で管理する必要がないというところも便利な点です。
サーバの動作が確認できたら、「Terminate」ボタンをクリックしてサーバをシャットダウンしておきましょう。EC2のインスタンスはシャットダウンすると破棄されますが、RightScaleのデプロイメントで設定したサーバの定義情報は消えません。一度サーバテンプレートをデプロイメントに追加すると、簡単な操作で同じ設定のサーバを繰り返し起動することができます。
RightScaleを使うことで、サーバテンプレートやRightスクリプトといったサーバの構成だけでなく、サーバの起動設定、SSH鍵などを一元管理できるようになります。クラウドを使うために複数のツールを使い分けることなく、RightScaleで完結できるというメリットを感じていただけましたでしょうか。
今回はRightScaleでサーバを起動する例をもとに、基本的な使い方の流れについて紹介しました。次回は、監視やオートスケールなど、応用的な使い方を紹介したいと思います。RightScaleの使用方法やFAQなどの情報は、RightScaleサポートポータルにまとめられています。アカウントの作成方法や使い方はチュートリアルで詳しく説明されていますので、こちらも参考にしてください。
Copyright © ITmedia, Inc. All Rights Reserved.