今回から2回に分けてWakameの基本的な使い方を説明します。前提の知識としては,Amazon Web Servicesのアカウント(AWSアカウント)をお持ちでAWS Management Console等を使い,仮想マシンの起動を行ったことがある方を対象としています。
Amazon EC2へのアクセスやAWSアカウントの準備については,過去の特集「はじめてのAmazon EC2&S3 ~これからの新サービスの公開の形~」を参考になさるか,以下のオンラインの記事を参考にしてください。
システムをスケールアウトさせるための考え方
まず,Amazon Auto Scalingがそうであるように,WakameもAMI(Amazon Machine Image)の単位でインスタンスを起動することになります。
システムを起動するために必要な全てのサービスを1つのAMIに詰め込み,そこにWakameのMasterとAgentをインストールしておきます。
単一AMIを複数起動し,設定を調整することでスケールアウトするようにしておく
Amazon EC2上でスケールアウトさせるための原則として以下の通りに運用することとしています。
- インスタンスを起動する際には,同じ1つのAMIを元にする
- Wakameは,そのインスタンス上に必要なサービスを起動する・しないを制御する
- Wakameは,必要であればそのサービスの設定を書き換える
そのため,AMIにインストールされたサービスは,基本的にWakameや最低限必要なサービス以外は,OSの準備完了と同時に自動起動しないようにinit.dの設定をオフにしておきます。
代わりに,Wakameはスタートアップスクリプトを自ら制御しに行きます。
人手でやるのであれば,/etc/init.d以下のスタートアップスクリプトを順序良く実行していくことになります。
必要なときに自らインスタンスを起動することでスケールアウトする
Wakameのマスターが必要なタイミングでAmazon Web Servicesへ通信し,自分と同じAMIを自ら指定してインスタンスを起動します。
MasterからAmazon EC2のインスタンスを起動する際には,User Dataという領域を使って,インスタンスに初期値を与えることができます。
これによって,Agentが既に起動しているMasterと連携するために必要な情報を与えることができるのと同時に,Masterが複数起動してくることを防ぎます。
上図のところまで起動すると,あとはMasterからAgentに通信して,新たなインスタンス上に何を起動すべきかを指示できるようになります。

