Windows Azure 仮想マシンと仮想ネットワークの使いこなし方 〜 クラウドカバー Episode 88


 

今回のクラウドカバーは「Episode 88 - Tips and Tricks for Windows Azure Virtual Machines and Virtual Networks」ということで、Spring Update にてプレビューが開始された仮想マシン、および仮想ネットワーク機能を紹介します。

紹介するのはWindows Azure PowerShell Cmdlets の作者でもあり、これまでも「パワーアップした Windows Azure Powershell ~ クラウドカバー Episode 77」などで登場してきた Michael Washam です。

 

 

始まりはいつものようにニュースから。

 

Windows Azure Media Services and the London 2012 Olympics

最初のニュースは Windows Azure の新しいサービス Media Service が London オリンピックのストリーミング基盤として活躍した、というお話。

クラウドな Media Service をアピールする場として、オリンピックは最適、、、つまり、通常ならエンコーディングおよび配信のためのハードウェア、可用性を上げるための仕組み、配信最適化のためのデータセンター/ネットワーク、運用のための人材等々、多くの投資が必要になるところを、必要な分だけ必要な時に使うことのできる Windows Azure のサービスを使うことで、多くの人に London オリンピックの興奮を伝えることができました。

 

 

Calling the Windows Azure Service Management API from Python

Steve Marx のブログより、Python から Windows Azure のサービス マネジメント API を呼び出すためのコマンドラインサンプルです。

話はそれますが (^^; Steve は、Dropbox を利用した Web サイト簡単構築サービス Site44 を運営しています。静的な Web ページを作成し、それを Dropbox に保存すると、Site44 のサービスがその内容に基づいて Web サイト公開を行ってくれる、というものです。ご興味ある方はぜひお試しください。

 

 

Windows Azure Training Kit Update Released – August 2012

Windows Azure 使いにとってのバイブル、ともいえる Trainig Kit。コンテンツの追加と更新が随時行われており、今回のアップデートで 41 のハンズオンラボと、35のプレゼン資料、という構成になっています。

サイズが大きいため、全部すべてダウンロード、ではなく、必要なものだけダウンロード、というオプション(ダウンロードページにある 2.4MB のサイズの WATK-WebInstaller.exe を利用する)もありますので、まずは Windows Azure Training Kit の内容をご確認ください。

image

 

 

iOS and Windows Azure Communication using SignalR

iOS をフロントに、Windows Azure をバックエンドとして使用したシステム構成において、SignalR を使ったサーバー/クライアント間通信を行う際のコード紹介です。

SignalR はサーバーとクライアントの双方向な非同期通信をサポートするライブラリで、今回のブログでは、このサーバーサイドを Windws Azure にてホストし、クライアント側を JavaScript および iOS で構築する方法を紹介しています。

 

 

 

Windows Azure Community News Roundup (Edition #32)

Windows Azure 界隈にて飛び交っているコミュニティの記事、ニュースの中から面白いものをピックアップした News Roundup。

今回は Windows Azure のイベントである DevCamp の紹介などが行われています。

 

なお、日本においては、来る10月4日(木)、10月5日(金)の2日間、渋谷ヒカリエにて、Developer Camp 2012 Japan Fall として Windows Azure なイベントを開催します。

 

Developer Camp 2012 Japan Fall | 10 月 4 日 ~ 5 日 渋谷ヒカリエにて開催

 

現在、申し込み受付中ですが、定員(600名)になり次第締め切りとなりますので、ご興味ある方はお早目の登録をお願いいたします。

 

 

Publishing and Synchronizing Web Farms using Windows Azure Virtual Machines

最後に紹介するのは、Michael のブログから、Windows Azure 仮想マシンをつかった Web Farm の構成と、コンテンツ更新の際の同期(Web Farm を構成している複数マシン間のコンテンツ同期)に関してのエントリです。

 

このエントリでは2台の仮想マシンを用意し、Windows Azure のロードバランサーを使って Web Farm を構成しています。またコンテンツに関しては、1台の仮想マシンに WebDeploy でコンテンツを発行し、その後他の Web Farm を構成する仮想マシンに同期をかける、といった仕組みになっています。

 

 

今回のクラウドカバーではこのブログにある Web Farm の構成を説明しつつ、Windows Azure の仮想マシンと仮想ネットワークについて紹介を行います。

 

 

さて、最初のトピックは「仮想ネットワーク」です。

Windows Azure に新しく追加された「仮想ネットワーク」の機能は「Site to Site」の接続を可能にするテクノロジーです。ちなみにこれと対比されるのは、「Machine to Machine」の接続を可能にする Windows Azure の 「Connect」 で、これはマシン間の接続を可能にします。ただ、この Connect に参加させたいマシンが増えれば増えるほど、Connect の設定が大変になります。

一方、「仮想ネットワーク」では、サイト間をつなぐゲートウェイ部分の設定を行うことで、オンプレミスに存在するマシンととクラウド(Windows Azure)に存在するマシンの間で接続が可能になります。

 

なお、「仮想ネットワーク」の機能を用いて、オンプレミスとクラウドの接続を行う場合、オンプレミス側のネットワークにおいて、グローバルな IP アドレスを持つ、ゲートウェイ機材が必要になります。今回の Michael の環境では、Cisco ASA 5505 を使用しています。

 

 

image

ということで、早速 Windows Azure の管理ポータルを使って、仮想ネットワークを作っていきましょう。

 

 

ポータルにおいて、「仮想ネットワーク」の作成を選ぶと、作成用のウィザードが立ち上がります。

作成する仮想ネットワークの名前と、Affinity グループを指定したら、お次は仮想ネットワークで使用するアドレス空間の指定です。

今回は16ビットのマスキングを設定したプライベートネットワークを作成し、サブネットとして24ビットのマスク設定を行った AppSubnet を作成しています。なお、サブネットは複数設定できます。

 

image

 

 

 

次に DNS の設定、ならびにオンプレミスとの連携を行う場合に必要となる Local Network の設定です。オンプレミスとの連携を行う場合は、赤の「囲みで強調した部分にある、「Connectivity」のチェックボックスを On にし、Local Network の設定を行います。

 

image

 

 

この際に、オンプレミス側で仮想ネットワークと接続を行う機材(今回は Cisco ASA 5505)に割り当てられたグローバル IP の情報等を入力し、利用します。今回はすでに作成済みの OnPremVNET を利用しています。

 

これら設定を行い、Windows Azure 側での初期化プロセスの完了をしばし待っていると、以下のような画面になります。この画面では、Windows Azure 側のネットワークの色が青色になっており、 Azure 側での設定が完了し、接続準備ができていることが示されています。

 

image

 

 

一方で、オンプレミスのネットワーク側では、ネットワークの色が黄色になっており、まだ接続が完了していない状態が示されています。

 

この後必要となるのは、オンプレミス側のネットワーク設定で、画面に表示されている 「168.62.4.251」という IP アドレスが、Windows Azure のゲートウェイ側のグローバル IP となりますので、この IP に対してオンプレミス側のゲートウェイ(Cisco)が接続しに行くように設定を行います。

 

Cisco の管理ツールを立ち上げ、先ほどのアドレスと、Windows Azure のゲートウェイと共有するキー情報を入力します。

image

 

 

また、オンプレミス側(Local Network)の IPアドレス 空間と、クラウド側(Remote Network)の IPアドレス空間の設定を行います。

 

image

 

 

これら設定が終われば、ネットワーク連携が始まるまで少し待つ必要があります。

 

今回はその間に、この仮想ネットワークに参加する仮想マシンの作成を行っていきます。

仮想マシンの作成は Windows Azure のポータルからウィザードベースでさくさく、っと行うことが可能です。すでに Windows Server 2012 のイメージも用意されていますので、今回はそれを利用し、作成の際に先ほど用意した仮想ネットワークへ接続し、AppSubnet を使用するように設定します。

 

image

 

 

 

さて、仮想マシンの作成を開始し、先ほどの画面に戻ると、オンプレミスと Windows Azure 仮想ネットワークの連携が開始されているのが確認できました。

 

image

 

 

また、今回のオンプレミスとの連携では、オンプレミス側に配置した Active Directory に対して、Windows Azure の仮想マシンを参加させますが、Michael は仮想マシンの設定と合わせそのあたりの設定を PowerShell で自動化を行っています。

image

 

 

また、Web Farm のように複数台の同一設定の仮想マシンを活用する場合には、Michael のブログ中に、インスタンスイメージの作成と、そのイメージを使った複数マシンの作成方法が紹介されていますので、参考にしてください。

 

 

さて、引き続き今回のデモで使用している Michale の Web Farm 構成に関しても紹介していきましょう。

今回の環境では、iisvm1farm および iisvm2farm という2台の仮想マシンが、同じ DNS Name (webdeployweb1.cloudapp.net) で構成されています。

image

 

 

これらの各仮想マシンにおいて、Web Deploy 3.0 をポート 8080 で稼働するように設定し、Windows Server 自体の Firewall 設定において同ポートへの通信を許可するように設定します(iisvm1farm および iisvm2farm の両方で設定を行います)。

 

また、iisvm2farm において、Windows Azure のデータセンター側の Firewall の設定としてポート8080を開きます。これで、Windows Azure 以外からの通信がポート 8080 に対して行われた場合、外部に対してポートを明示的に開いた iisvm2farm に対してのみ通信が行われるようになります。

 

image

 

 

さて、Visual Studio からコンテンツを発行(Publish)する際には、この iisvm2farm に対して WebDeploy で発行を行います。その後、iisvm2farm と iisvm1farm (あるいは他にサーバーを増やした場合はそれら)の間で WebDeploy によってコンテンツ同期が行われます。

 

この際に使用するスクリプトに関しては、Michael のブログに詳細が示されています。

ちなみに、今回の2台構成で使用しているスクリプトは以下の通りです。

 

image

 

 

 

さて、実際に Visual Studio からコンテンツの発行を行いますが、この際のターゲットは「webdeployweb1.cloudapp.net」 になります。先に書いたように、外部に対して 8080 のポートを開いているのは iisvm2farm のみですので、この発行を実行すると、iisvm2farm に対してコンテンツが発行されることになります。

 

image

 

 

 

クラウドカバーにて実際に発行後、webdeployweb1.cloudapp.net にアクセスすると、IIS7 の初期画面が表示されます。これは、このアクセスが Windows Azure のロードバランサーによって2つ目のサーバー(iisvm1farm)に振り分けられたのですが、そこにはコンテンツがまだ同期していないためです。

 

そこで先ほどの同期用のスクリプトを実行し、再度 webdeployweb1.cloudapp.net にアクセスすると、以下のように iisvm1farm に対して同期されたコンテンツが表示されました。

 

image

 

 

このように、複数の Windows Azure の仮想マシンを利用し、共通の URL でアクセス可能な Web Farm を構成し、またVisual Studio の Web Deploy 機能を利用したコンテンツの発行と同期を行うことが可能です。

 

 

 

さて、次に紹介するのは Windows Azure 仮想マシンとして作成した Linux に対する Remote Desktop 接続(RDP)の方法です。Linux マシンにはデフォルトで Remote Desktop のための仕組みが用意されていないため、通常は SSH を使ったコマンドラインでの接続、操作を行うことになります。

 

ただ、Windows Azure の仮想マシンで作成できる Linux である Ubuntu には、RDP のサーバー機能を提供する XRDP が用意されていますので、SSH で接続後、

> sudo apt-get install xrdp

を実行することで、XRDP サーバー機能を利用することが可能になります。

image

 

 

あわせて、Windows Azure で RDP 用のポート 3389 を開く用に設定しましょう。

すべての設定が終了すると、管理ポータルの仮想マシン一覧において、Linux マシンを選択した際に RDP 用の「CONNECT」ボタンが有効化されていますので、クリックします。

 

image

 

 

すると Linux のログイン画面が立ち上がり、以下のように Linux への RDP 接続ができるようになります。

 

image

 

 

ということで、以上が今回のクラウドカバーのメイントピック。

オンプレミスと連携した仮想ネットワークの設定、Web Farm の設定とコンテンツ同期、Linux への RDP 接続、といった Tips を紹介しました。

 

 

最後は恒例の Tips of the Week!

 

image

 

今回は2つの Tips を紹介です。

 

Windows Azure Web Sites Log Cleaner

一つ目は、Windows Azure の Web サイトのログのクリーンアップの方法について。

コードは NuGet で入手可能で、特定の URL にアクセスした際や、スケジューリングしておいて定期的にログをきれいにする、といったことが可能です。

 

 

Mingfei Yan's Blog on Windows Azure Media Services

Windows Azure Media Service 開発チームの Mingfei の Blog の紹介です。

Media Service の Preview 申し込みからセットアップ、各種のデモや使用方法などの情報が提供されていますので、Media Service にご興味ある方はチェックしてみてください。

 

 

 

以上、「Windows Azure 仮想マシンと仮想ネットワークの使いこなし方 〜 クラウドカバー Episode 88」の紹介でした。

 

Automation is great :) (from Michael’s blog)

Enjoy!

Comments (0)

Skip to main content