Windows Azure仮想マシンでLinuxサーバーを構築しよう
仮想マシンのキャプチャとシャットダウン
今回はApacheを入れた2台の仮想マシンのロードバランスを行いますが、同じように繰り返しApacheをインストールする作業をしていたのでは、非効率ですし、スケールアウトは2台程度ではなくより多くの台数になる事も考えられます。
そこで、今回作った仮想マシンのスナップショットを取得し、このスナップショットのイメージを複製します。
キャプチャをする前にsshで以下の操作を行ってください。
この操作によって、
- ユーザー情報の削除
- DHCP Cacheのクリア
- デバイスのマッピング情報
- udev persistent rulesの削除
- resolv.confの削除
などを行います。
新規仮想マシンに既存インスタンスの固有情報が残らないようにしてくれます。
kazumi@helloazure:~$ sudo waagent -deprovision WARNING! The waagent service will be stopped. WARNING! All SSH host key pairs will be deleted. WARNING! Nameserver configuration in /etc/resolv.conf will be deleted. WARNING! Cached DHCP leases will be deleted. WARNING! root password will be disabled. You will not be able to login as root. Do you want to proceed (y/n)? y * Stopping WindowsAzureLinuxAgent... [ OK ] 2012/09/10 09:16:16 Root password deleted. kazumi@helloazure:~$
実行後、仮想マシン詳細画面の下のメニューから[SHUTDOWN]をクリックして、仮想マシンを停止してください。
仮想マシン停止後、 [CAPTURE]ボタンが有効になりますので、クリックしてください。任意のIMAGE NAMEを入力し、[I have run the de-provision command on the virtual machine]にチェックを入れて、キャプチャを開始します(図15)。
キャプチャが完了すると、キャプチャ対象の仮想マシンは削除されます。
キャプチャイメージから新規仮想マシンを2台起動
前回と同じ手順で仮想マシンの作成を進めてみてください。
VM OS Selectionの所で先ほど作成したキャプチャイメージが選択できます、今回はこのキャプチャイメージを使って起動します。
このキャプチャイメージには既に導入したapacheが起動しています、sshでログインしプロセスやListenなどの確認を行ってください。
1台目の構築を終えたら、HTTPのエンドポイント(PORT 80)もここまでの手順と同じように追加してください。
2台目の構築
2台目の仮想マシンも同様に構築しますが、CONNECT TO EXISTING VIRTUAL MACHINEを選択し、既に起動している 1台目のマシンに接続をします。これによって同一のロードバランサ配下に所属します(図17)。
2台目のsshエンドポイント
2台目のエンドポイントを確認してください。PORT 22は1台目のsshに既に利用されているため、自動でPORT 55713が割り当てられています。
2台目のインスタンスにsshアクセスする場合は、以下に示す通り、sshクライアントのポートを変更してください(図18)。
$ ssh –i myPrivateKey.key –p 55713 username@指定したDNS名.cloudapp.net
エンドポイントを追加し、ロードバランスさせる
次に2台目のHTTPエンドポイントを追加しロードバランスさせます。仮想マシンの詳細画面の[ENDPOINT]を選択して、下のメニューから[ADD ENDPOINT]をクリックしてください。
今回はインスタンス1に使われているPORT 80のエンドポイントをロードバランスします、[Load-balance traffic on an existing endpoint]を選択してください。既に1台目で定義したエンドポイントを選択する事ができます(図19)。
次のエンドポイントの詳細画面は、今までと同様ですがNAMEとPRIVATE PORT以外はグレーアウトし、編集できないようになります。
2台目のPRIVATE PORTもPORT 80にLISTENしていますので、そのままエンドポイントを追加します。
ロードバランスの確認
2つの仮想マシンをロードバランスするサンプルの設定は以上ですが、このままですとどちらの仮想マシンでセッションを対応したのかわかりません、確認を行うために追加で以下の作業を行いました。
- それぞれの仮想マシンの/var/www/index.htmlに仮想マシン名を追記
- ブラウザからある程度の負荷をかけバランスする事を確認
なかなか変わらない場合は、セッションが少ない可能性があります、数人で同時にF5リロードを試すなどして確認をしてください。
まとめ
今回は仮想マシンでLinuxを使ったシンプルなロードバランス環境の構築と、基本的な仮想マシンの扱い方についてご紹介しましたが、全体からすれば機能の一部でしかありません。
他にもコマンドラインツールによって、オートスケールする手法や、Virtual networksによって、オンプレミス環境と地続きにクラウドを利用する方法など、ご紹介したい機能やTipsは尽きる事がありませんが、またの機会にご紹介させてください。
SDKや管理ツールなど、Windows Azureに関するソースコードは、オープンソースとしてgithubに公開されています。
興味のある方は、ぜひチェックしてみてください。
従来のPaaSだけでなく、より簡便に使えるWebサイト、仮想マシンによるIaaSなど、多くのユーザーに利用されるクラウドとして、提供形態、OS、開発言語を絞らず、ユーザーのニーズに応えて「Flexible / Open / Rock Solid」なパブリッククラウドとなりました。
この機会にぜひWindows Azureに触れてみてください。
【関連リンク】
(リンク先最終アクセス:2012.09)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- WordPress コース 2nd Stage を攻略しよう(Linux 仮想マシン編)
- Windows Azure上にLinuxインスタンスを立ち上げる(クエスト5)
- Windows AzureにPythonのアプリケーションをインストールする(クエスト9)
- Windows AzureにPerlのアプリケーションをインストールする(クエスト9)
- Windows AzureでのMySQL = ClearDBを攻略しよう!
- 開発環境の構築・共有を簡単にするVagrant入門
- Windows Azure上にWindowsインスタンスを立ち上げる(クエスト4)
- WordPress コース 2nd Stage を攻略しよう(Windows 仮想マシン編)
- どこにも書いてない超ノウハウ!マイクロソフトが禁止しているWindows Server 2003からAzureへの移行「べからず集」
- Serverspecの概要からインストールまで