.NET開発者中心 厳選ブログ記事

Windows Azureの新IaaS機能「Virtual Machines」活用TIPS(後編)
―― 「SE の雑記」より ――

小澤 真之
2012/07/05
Page1 Page2

「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。

本稿は、ブログ記事「Azure の Virtual Machines にオンプレミスのイメージをアップロード << SE の雑記」「Azure の Virtual Machines のディスクの基本構成と容量について << SE の雑記」に簡単な校正・加筆を行ったうえで転載したものです。

AzureのVirtual Machinesにオンプレミスのイメージをアップロード

 新しくなったWindows Azure(以降、Azure)では、「Virtual Machines」(以降、VMs)という新機能が追加されており、IaaSの基盤として使用できるようになっています。VMsについては、「公式サイト: Windows virtual machines(英語)」にまとめられています。

 デフォルトでイメージがいくつか用意されており、その中から使用するイメージを選択するという使い方(詳しくは「Windows Azureの新IaaS機能「Virtual Machines」活用TIPS(前編)」を参照)のほかに、オンプレミスのHyper-Vの環境で作成したVHDファイル(以降、VHD)をアップロードして、Azure上で起動することも可能になっています。

 本稿では、カスタマイズしたVHDをAzure上で使用するための基本的な流れを見ていきたいと思います(基本的な流れは、「公式サイト: Creating and Uploading a Virtual Hard Disk that Contains the Windows Server Operating System(英語)」で説明されています。本稿では、この流れに従います)。

VHDの準備

 Hyper-V上のゲストOSとして、OSのインストールを行います。

 既存機能の「VM Role」の場合は、インスタンスのサイズに応じたVHDを作成する必要がありました。しかし新機能の「VMs」では、VHDのサイズはインスタンスのサイズとは関係がありません。「40GbytesのVHDを使用して、XSサイズ(=20Gbytes)のインスタンスを起動する」といったことも可能です。

 公式サイト(英語)には、次のように記載されています。

公式サイトに記載されているサポートするOSの種類

 これによると、現在、サポートされているのは、Windows Server 2008 R2 SP1の英語版とWindows Server 2012 RC(リリース候補)の英語版の全エディションです(こちらで説明されているように、日本語版のWindows Server 2008 R2も、起動しようと思えば起動できます)。今回は、日本語版のWindows Server 2008 R2をゲストOSとしてインストールします。

 ゲストOSのインストールが完了したら、そのOS上でsysprepを起動して、そこで表示されるダイアログ(次の画面を参照)の[一般化する]チェックボックスにチェックを入れて、[シャットダウン オプション]コンボボックスで「シャットダウン」を選択したうえで[OK]ボタンをクリックして、sysprepを実行します。

[一般化する]にチェックを入れてsysprepを実行

 VM Roleを展開する場合は、VM Role用の統合コンポーネントをインストールする必要がありました。新しいVMsの場合は、Azure上で実行するための特別なモジュールをインストールする必要はありません。

 ちなみにsysprepを実行する前に(正確にはVHDをアップロードする前までに)、(ゲストOS上で)リモート・デスクトップ接続(以降、RDP接続)を有効にしておかないと(次の画面を参照)、RDP接続ができなくなるので、忘れずに有効にしておいてください。

RDP接続を有効にしているところ

ストレージ・アカウントの準備

 VHDはAzureストレージ上にアップロードするため、アップロード先のストレージ・アカウントを準備します。

 なお、以前から使用しているストレージ・アカウントを使用してVHDをアップロードしようとしたところ、次の画面のように「... account ... does not support durable VMs」というエラーが表示されてしまいアップロードできませんでした。新規にストレージ・アカウントを作り直したところアップロードできました。同じような問題に直面した場合は、新規にストレージ・アカウントを作り直すことをお勧めします。

既存のストレージ・アカウントでVHDをアップロードするとエラーになった例

VHDのアップロード

 アップロード先となるストレージ・アカウントが準備できたら、作成したVHDのアップロードを行います。VHDのアップロードはVM Roleのときと同様に「CSUpload」というコマンドライン・ツールを使用します。VMsのアップロードに対応したCSUploadコマンドは、こちらからダウンロードできます。

 実際にVHDをアップロードするには、CSUploadコマンドのAdd-PersistentVMImageオプションを使用します(CSUploadコマンドが提供する各オプションの説明は、「公式サイト: CSUpload Command-Line Tool(英語)」を参照してください)。なおCSUploadコマンドは、[スタート]メニューの[すべてのプログラム]−[Windows Azure]−[Windows Azure SDK for .NET]−[June 2012]−[Windows Azure Command Prompt]から起動されるコマンド・プロンプトで実行できます。

 実際のコマンドとしては以下のような形式になります。

set _CSVERBOSE=1
csupload Set-Connection "SubscriptionId=<サブスクリプションID>; CertificateThumbprint=<管理証明書母印>; ServiceManagementEndpoint=https://management.core.windows.net"
csupload Add-PersistentVMImage -Destination "http://<BLOBストレージのURL>/vhds/2008R2.vhd" -Label "Windows Server 2008 R2 SP1" -LiteralPath "E:\2008R2.vhd" -OS Windows
作成したVHDをアップロードするコマンド
「set _CSVERBOSE=1」は詳細なメッセージを表示するために設定をしているので、必要がなければ省略しても問題はありません。

 上のようなコマンドを実行して、VHDのアップロードが完了すると、次の画面のように、VMsの[IMAGES]タブにイメージが追加されます(追加されていなかった場合は、下部にある[CREATE IMAGE]ボタンからBlobストレージにアップロードされているVHDを選択できます。

VMsの[IMAGES]タブにイメージが追加される

 後はVMインスタンスを作成する際に、[FROM GALLERY]を選択して、左側にあるカテゴリ・リストの[ALL]または[MY IMAGES]から、先ほどアップロードしたVHDを選択して仮想マシンを作成します。次の画面はその例です。

アップロードしたVHDを選択して仮想マシンを作成

 作成後に、[STATUS]が(次の画面のように)「Running」になれば、作成したVMインスタンスの起動は完了です。

カスタムVHDから作成した新規VMインスタンスの起動が完了

 VMsではVHDを展開する際に、カスタマイズされた応答ファイルを使用して起動処理が実行されているようです。使用されている応答ファイルに関しては、「C:\Windows\Panther\unattend.xml」ファイルで確認できます。Azure側で用意された応答ファイルを使用して無応答セットアップを実現しているようです。

 OSのライセンス認証に関してはKMS(キー管理サービス)が使用されるようです。次の画面を見ると、KMSが使われていることが分かります。

KMS(キー管理サービス)が使われているのが分かる

 AzureのVirtual Machinesはオンプレミスのイメージがそのまま使えるので、いろいろな用途に利用できそうですね。

 続いて次のページでは、VMsのディスクの基本構成や容量について見ていきます。


 INDEX
  .NET開発者中心 厳選ブログ記事
  Windows Azureの新IaaS機能「Virtual Machines」活用TIPS(後編)
  1.AzureのVirtual Machinesにオンプレミスのイメージをアップロード
    2.AzureのVirtual Machinesのディスクの基本構成と容量について

インデックス・ページヘ  「.NET開発者中心 厳選ブログ記事」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH