Windows Azure仮想マシンでLinuxサーバーを構築しよう

2012年9月19日(水)
廣瀬 一海

仮想マシンのキャプチャとシャットダウン

今回は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)。

図15:仮想マシンのキャプチャを開始(クリックで拡大)

キャプチャが完了すると、キャプチャ対象の仮想マシンは削除されます。

キャプチャイメージから新規仮想マシンを2台起動

前回と同じ手順で仮想マシンの作成を進めてみてください。

VM OS Selectionの所で先ほど作成したキャプチャイメージが選択できます、今回はこのキャプチャイメージを使って起動します。

このキャプチャイメージには既に導入したapacheが起動しています、sshでログインしプロセスやListenなどの確認を行ってください。

図16:キャプチャイメージから仮想マシンを起動する(クリックで拡大)

1台目の構築を終えたら、HTTPのエンドポイント(PORT 80)もここまでの手順と同じように追加してください。

2台目の構築

2台目の仮想マシンも同様に構築しますが、CONNECT TO EXISTING VIRTUAL MACHINEを選択し、既に起動している 1台目のマシンに接続をします。これによって同一のロードバランサ配下に所属します(図17)。

図17:2台目の仮想マシンは起動済みの1台目に接続(クリックで拡大)

2台目のsshエンドポイント

2台目のエンドポイントを確認してください。PORT 22は1台目のsshに既に利用されているため、自動でPORT 55713が割り当てられています。

2台目のインスタンスにsshアクセスする場合は、以下に示す通り、sshクライアントのポートを変更してください(図18)。

  $ ssh –i myPrivateKey.key –p 55713 username@指定したDNS名.cloudapp.net
図18:sshクライアントのポートを変更(クリックで拡大)

エンドポイントを追加し、ロードバランスさせる

次に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していますので、そのままエンドポイントを追加します。

図19:1台目で定義したエンドポイントを選択できる(クリックで拡大)

ロードバランスの確認

2つの仮想マシンをロードバランスするサンプルの設定は以上ですが、このままですとどちらの仮想マシンでセッションを対応したのかわかりません、確認を行うために追加で以下の作業を行いました。

  1. それぞれの仮想マシンの/var/www/index.htmlに仮想マシン名を追記
  2. ブラウザからある程度の負荷をかけバランスする事を確認

なかなか変わらない場合は、セッションが少ない可能性があります、数人で同時にF5リロードを試すなどして確認をしてください。

まとめ

今回は仮想マシンでLinuxを使ったシンプルなロードバランス環境の構築と、基本的な仮想マシンの扱い方についてご紹介しましたが、全体からすれば機能の一部でしかありません。

他にもコマンドラインツールによって、オートスケールする手法や、Virtual networksによって、オンプレミス環境と地続きにクラウドを利用する方法など、ご紹介したい機能やTipsは尽きる事がありませんが、またの機会にご紹介させてください。

SDKや管理ツールなど、Windows Azureに関するソースコードは、オープンソースとしてgithubに公開されています。

興味のある方は、ぜひチェックしてみてください。

WindowsAzure github

従来のPaaSだけでなく、より簡便に使えるWebサイト、仮想マシンによるIaaSなど、多くのユーザーに利用されるクラウドとして、提供形態、OS、開発言語を絞らず、ユーザーのニーズに応えて「Flexible / Open / Rock Solid」なパブリッククラウドとなりました。

この機会にぜひWindows Azureに触れてみてください。

【関連リンク】

Windows Azure

(リンク先最終アクセス:2012.09)

アイレット株式会社 cloudpack事業部 シニアソリューションアーキテクト

生業はインフラエンジニア。小規模から大規模なまで日々様々なインフラを構成しています。好きなクラウドはMicrosoft Azure、日頃の業務はAmazon Web Services、という感じにクラウド漬けの毎日を過ごしています。​
仕事の傍ら、勉強会やコミュニティ(日本Azureユーザー会)コアメンバとして活動しています、マイクロソフトのオープンソース戦略にとても共感し、Microsoft MVPとして情報発信や交流を行っています。
Microsoft MVP Microsoft Azure

cloudpack公式サイト:http://cloudpack.jp

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています