"Wakame"で始めるクラウドコントロール

第3回 クラウド上でスケールアウトするシステムの作り方と実例

この記事を読むのに必要な時間:およそ 12 分

Wakameのデモ環境準備と設定

デモ環境では,以下のサービス群を立ち上げ,最終的にRailsのトップページが確認できるところまでが機能として含まれています。

まず,デモ用AMIを用いてインスタンスの起動を行います。AWS Management ConsoleのAMIメニューから,ami-c25eb9abのデモ用AMIを選び,Launchをクリックします。検索テキストフォームへ"wakame"とタイプすると簡単に目的のAMIを見つけ出せます。

図4 AWS Management ConsoleからWakame用のAMIを検索する

図4 AWS Management ConsoleからWakame用のAMIを検索する

Instancesメニューへ移動すると,先ほどLaunchした仮想マシンの状態を確認できます。アイコンが緑色になると仮想マシンの起動が始まり,しばらくするとSSH接続が可能になります。

図5 インスタンスが正しく起動していることを確認

図5 インスタンスが正しく起動していることを確認

起動したインスタンスの行をクリックすると,画面の下半分へ起動した仮想マシンの詳細情報が表示されます。"Public DNS"の部分に表示されているホスト名をコピーし,ターミナル上へペーストします。

ubuntuユーザとしてSSH接続を行い,root権限を取得します。

% ssh ubuntu@ec2-x-x-x-x.compute-1.amazonaws.com
The authenticity of host 'ec2-x-x-x-x.compute-1.amazonaws.com (x.x.x.x)' can't be established.
RSA key fingerprint is aa:bb:cc:dd:ee:ff:aa:bb:cc:dd:ee:ff:aa:bb:cc:dd.
Are you sure you want to continue connecting (yes/no)? yes


% sudo su -

ここから,デモ環境の設定変更へ進みます。以下の作業を行います。

  • WakameがAWSへ問い合わせする際に使う,Access Key ID,Secret Access Keyの設定
  • Elastic IPの取得
  • MySQL用EBSボリュームの準備

Access Key ID と Secret Access Keyについては,Amazon Web ServicesのAccess Identifiersのページから確認できます。

図6 AWSへアクセスするのに必要な各種情報を確認

図6 AWSへアクセスするのに必要な各種情報を確認

/home/wakame/corelib/wakame/lib/configuration.rb にAmazon Access KeyとSecret Keyを書き込む箇所がありますので,そこへ書き込みます。

% vim /home/wakame/corelib/wakame/lib/configuration.rb
63:         config.aws_access_key = 'AMAZON ACCESS KEY'
64:         config.aws_secret_key = 'AMAZON SECRET KEY'

Elastic IPをAWS Management Consoleから取得し,/home/wakame/corelib/wakame/lib/service.rb の下記の行へ書き込みます。

/home/wakame/corelib/wakame/lib/service.rb

853: @listen_port = 80
854: @listen_port_https = 443
855: @template = ConfigurationTemplate::ApacheTemplate.new(:lb)
856: @elastic_ip = '174.129.221.12'
857: end

MySQL用EBSボリュームを確保します。ec2-api-toolsを使っても同等なことができますが,必要な手順を自動化したrakeタスクも用意してあります。

% cd /home/wakame/corelib/
% /usr/local/gems/bin/rake ec2:mysqlsetupvol[1]
.
.
.
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
umount /mnt/mysql-tmp
Initialized EBS Volume: vol-81ff10e8
%

最後に出てくるvol-xxxxxxxx の文字列を/home/wakame/corelib/wakame/lib/service.rbファイルの@ebs_volumeへ割り当てます。

900: @mysqld_datadir = File.expand_path('data', @basedir)
901: @mysqld_log_bin = File.expand_path('mysql-bin.log', @mysqld_datadir)
902: @ebs_volume = 'vol-81ff10e8'
903: @ebs_device = '/dev/sdm'

これで,Wakameのデモ用の設定が完了しました。MasterとAgentのプロセスを再起動し,設定内容を反映させます。

% /etc/init.d/wakame-master restart
% /etc/init.d/wakame-agent restart

著者プロフィール

山崎泰宏(やまざきやすひろ)

株式会社あくしゅ所属。Wakameをやろうと思いつくところを担当。物静かな技術者の代わりに話をする。

URLhttp://blog.livedoor.jp/sparklegate/


藤原勝弘(ふじわらまさひろ)

株式会社あくしゅ所属。Wakameのコア実装を担当。コンシューマ向けサービスの開発や,外資金融系の堅牢なデータセンタ業務経験もあるカバーレンジの広い多才なプログラマ。

URLhttp://vcxzasdf.blogspot.com/


吉田将士(よしだまさひと)

株式会社あくしゅ所属。WakameをDBスケールなどに応用する開発を担当。大規模なデータセンタの運用経験を持っており,サーバ管理手順の自動化に興味津々な筋トレプログラマ。

URLhttp://blog.hansode.org/