特集:Windows Azure SDK 1.3の新機能(前編) Windows Azure 1.3の新機能の概要 株式会社 ビービーシステム 亀渕 景司2010/12/27 |
Page1
Page2
|
Azure関連の記事
●まだ知らない人のための最新Azure入門 - Build Insider
●ここまで進化した、Azure Webサイトの世界観(2014年7月版) - Build Insider
●連載:Windows Azureモバイルサービスで作る簡単スマートフォンアプリ - Build Insider
●Microsoft Azureプレビュー・ポータルの機能とは? - Build Insider
●特集:Windows Azureメディア・サービスを利用したストリーミング配信 - Build Insider
●連載:Microsoft技術におけるアイデンティティ連携開発のいま - Build Insider
●Vittorio Bertocci氏インタビュー: 開発者にとってのWindows Azure Active Directoryの役割と今後の展開 - Build Insider
●その知識、ホントに正しい? Windowsにまつわる都市伝説(6):Microsoft Azureの秘密を探る[その1] - @IT
2010年11月29日、Windows Azure Platformがアップデートされ、多数の新機能が公開された。また開発者向けのキットであるWindows Azure SDK 1.3(以下、SDK 1.3)も同時にリリースされている。
今回のアップデートで新しく追加された機能は以下のとおりだ。
- XSインスタンス(Extra Small Instance)
- スタートアップ・タスクでの特権の昇格(Elevated Privileges for Startup Tasks)
- WebロールでフルIIS機能(Full IIS in Web Role)
- Adminモード(Admin Mode)
- Windows Azure Guest OS 2.0
- Windows Azure Connect/仮想ネットワーク(Virtual Network)
- リモート・デスクトップ接続(Remote Desktop Access)
- 仮想マシン・ロール(Virtual Machine Role、VM Role)
- 新しい管理ポータル
前編では、これらWindows Azureの新機能について開発者向けに解説する。
■Windows Azureの新機能とSDK 1.3
●XSインスタンス(Extra Small Instance)
XS(エクストラ・スモール)インスタンスは、Windows Azureコンピューティング・インスタンスに追加された新しい仮想マシンのサイズだ。
XSインスタンスは、従来のS(スモール)インスタンスに比べ(下記の表を参照)、より低コストで提供されるが、割り当てられるメモリやインスタンス・ストレージは低容量になり、I/Oに対するパフォーマンスも低くなる。このため比較的小規模なアプリケーションを、コストを抑えて実行したい場合に適するだろう。
インスタンスのサイズ | CPU (GHz) |
メモリ (Mbytes) |
インスタンス・ストレージ (Gbytes) |
I/Oパフォーマンス | 時間あたりのコスト (円) |
XS | 1 × 1.0 GHz | 768 MB | 20 GB | 低 | \4.9(予価) |
S | 1 × 1.6 GHz | 1.75 GB | 225 GB | 中 | \11.76 |
M | 2 × 1.6 GHz | 3.5 GB | 490 GB | 高 | \23.52 |
L | 4 × 1.6 GHz | 7 GB | 1,000 GB | 高 | \47.04 |
XL | 8 × 1.6 GHz | 14 GB | 2,040 GB | 高 | \94.08 |
表1コンピューティング・インスタンスの比較(2010年11月末現在) | |||||
注 XSインスタンスはベータ版のため、価格は予価となっている。 |
インスタンス・サイズは、次の画面のように、Windows Azureのプロジェクト(=WebロールやWorkerロールなど)のプロパティで設定できる。
※XSインスタンスは(執筆時点で)ベータ版となっており、利用するにはWindows Azure Platform管理ポータルからベータ・プログラムに参加する必要がある。
●スタートアップ・タスクでの特権の昇格(Elevated Privileges for Startup Tasks)
「スタートアップ・タスクでの特権の昇格」機能は、WebロールおよびWorkerロールの実行前に、アドミニストレーター権限を使用して.CMDファイル(=コマンド・プロンプト用のスクリプト・ファイル。いわゆる、バッチ・ファイル。参考:「Windows Server Insider:Windows 2000 コマンドライン徹底活用 第3回 スクリプト入門」)を実行することが可能だ。
SDK 1.3では、スタートアップ・タスクとしてサービス定義ファイル(=.csdefファイル)に指定した.CMDファイルを、アドミニストレーター権限またはロールの既定の権限で実行できる。これにより、例えばWebサーバ「IIS」に対し、追加モジュールのインストールやレジストリの変更などを行えるので、各ロールの仮想マシンをより柔軟に構成できるようになっている。
次の画面は、サービス定義ファイルをコード・エディタで開いたところ。
図2 スタートアップ・タスクの設定例 | |||||||||
サービス定義ファイル(=.csdefファイル)を、Visual Studio 2010のコード・エディタで開いたところ。 | |||||||||
|
.CMDファイル内に記述する内容は、通常のWindows Server 2008上で実行する際に利用できるものと同等のコマンドを記述できる。
●WebロールでフルIIS機能(Full IIS in Web Role)
SDK 1.3のWebロールでは、IISのフル機能を利用することが可能になった。1つのWebロール・インスタンスでの複数のWebサイトやWebアプリケーションの構成、IISディレクトリ配下での実行など、多数の機能がサポートされる。
フルIIS機能を利用する場合、アプリケーションはWindows Azure既定のWebサーバである「Windows Azure Hosted Web Core」(=IIS 7以降で提供されているWebコンポーネント)ではなく、Windows Server標準のWebサーバである「IIS」の配下で動作する。そのため、FastCGI(=PHPなどを実行するモジュール)の設定やRoleEntryPoint派生クラス(=WebRole/WorkerRoleクラス)内での処理が必要になるなど、Webアプリケーションの処理や設定方法に変更が必要なケースがあるので注意されたい。
SDK 1.3に対応したWindows Azure開発環境である「Windows Azure Tools for Microsoft Visual Studio」を使用してWebロール・プロジェクトを新規作成した場合、既定でフルIISの設定となる。
次の画面は、既定でのサービス定義ファイルのコード例。
図3 フルIISの設定例 | |||
Webロール・プロジェクトを新規作成した場合のサービス定義ファイルのコード例。既定でフルIISが有効。 | |||
|
もしフルIIS機能が不要で、従来のWindows Azure Hosted Web Coreで動作させたい場合は、このサービス定義ファイルを変更することで(具体的には<Sites>要素の定義を削除することで)対応できる。
●Adminモード(Admin Mode)
Adminモードは、WebロールやWorkerロールをシステム権限(=Local Systemアカウント)で動作させられる機能だ。各種ロールをAdminモードで動作させることで、COMコンポーネントの登録やレジストリへの書き込みなど、アプリケーション内で操作できる範囲を大幅に広げることが可能だ。
ただし、フルIISとの組み合わせるかどうかにより、システム権限が有効な範囲が異なるので注意が必要となる。
次の画面は、サービス定義ファイルにおけるAdminモードの設定例。
図4 Adminモードの設定例 | |||
Adminモードの設定は、サービス定義ファイルで行う。 | |||
|
Adminモードを設定するとシステム権限で動作することになるため、実際の利用に当たってはアプリケーションの構成やシステム権限がどの範囲で必要かなど、十分に検討してほしい。
●Windows Azure Guest OS 2.0
Windows Azure Guest OS(=Windows Azure仮想マシンのOS)は初のメジャー・バージョン・アップが行われ、Windows Server 2008 R2ベースのGuest OS 2.0となった(ちなみに、Guest OS 1.xはWindows Server 2008 SP2ベース)。Windows Azure Guest OS 2.0では、Windows Server 2008 R2およびIIS 7.5の機能を利用することが可能だ。
Windows Azure Guest OS 2.0はすでに利用可能だが、Guest OSの自動更新を有効にしている場合でも、メジャー・バージョン(=OSファミリ)が異なるバージョンへの自動アップグレード(つまり、1.xから2.xへのアップグレード)はサポートされていない。その場合、Windows Azure Guest OS 2.0へのアップグレードは、(管理ポータルを使用したOSの設定変更や、サービス設定ファイル(=.cscfgファイル)の修正などで)手動により行う必要があるので注意したい。
●Windows Azure Connect/仮想ネットワーク(Virtual Network)
Windows Azureにおける仮想ネットワークに関する機能は、新しく「Windows Azure Virtual Network」としてカテゴライズされた。Windows Azure Connect(旧称:“Project Sydney”)は、そのWindows Azure Virtual Networkの最初の機能として、CTP版がリリースされている。
Windows Azure Connectは、IPSecを使用してWindows Azure上のロール・インスタンスとローカル・コンピュータを仮想ネットワークで直接接続する機能だ。TCPの443番ポートを使用して接続するため、ファイアウォールなどに特別な設定変更を加えることなくロール・インスタンスと通信することが可能になる。
また、仮想ネットワーク接続であるため、ローカル・コンピュータからロール・インスタンスへの接続だけでなく、逆方向の接続も可能で、双方向での通信が行える。例えばWindows Azure上から企業内のSQL Serverデータベースへ接続し、情報を取得するといったことが可能だ。
Windows Azure Connectは、次の画面のように、Windows Azureのプロジェクト(=WebロールやWorkerロールなど)のプロパティで設定できる。
図5 Windows Azure Connectの設定例 | ||||||
Visual Studio 2010のIDEで、Windows Azureのプロジェクト(WebロールやWorkerロールなど)のプロパティの[仮想ネットワーク]タブを開いたところ。 | ||||||
|
※Windows Azure Connectは執筆時点でCTP版となっており、利用するにはWindows Azure Platform管理ポータルからベータ・プログラムに参加する必要がある。
また、Windows Azure Connectを使用するために必要なローカル・コンピュータ側のエージェント・アプリケーションは、執筆時点で英語版Windows OSのみにインストールすることができる。
●リモート・デスクトップ接続(Remote Desktop Access)
リモート・デスクトップ接続機能を使えば、Windows Server 2008 R2などのOSで提供されているリモート・デスクトップ接続と同様に、Windows Azure上で稼働しているロール・インスタンスにリモート・デスクトップ経由でログオンし、遠隔操作を行うことができる。
これにより、例えばアプリケーションをWindows Azure上に配置した後での設定変更や、サーバ上のログの確認、トラブルシューティングなど、いままでサービス・パッケージの再配置が必要な修正やサーバの状況の遠隔確認などを、より容易に行うことが可能となった。
次の画面は、その設定例である。
[リモート デスクトップ接続の構成]をクリック |
|||||||||
図7 リモート・デスクトップ接続の設定例 | |||||||||
リモート・デスクトップ接続は、Windows Azureプロジェクトを配置する際に構成できる。 | |||||||||
|
リモート・デスクトップ接続については、後編でより詳細に説明する。
●仮想マシン・ロール(Virtual Machine Role、VM Role)
仮想マシン・ロールは、あらかじめ提供されているWindows Azure Guest OSではなく、独自に作成したWindows Server 2008 R2のOSイメージを、Windows Azure上で稼働させることが可能な新しいロールだ。
仮想マシン・ロールでは、WebロールやWorkerロールとは異なり、Hyper-V管理ツール(参考:「Windows TIPS:Windows Hyper-V Server 2008を利用する」)を使用して作成した独自のOSイメージを指定する。アプリケーションのインストールや設定など、Webサーバへの展開に時間のかかる処理や、スタートアップ・タスクによる自動化が不可能な処理をパッケージングし、導入時間/作業を短縮できる点が優れている。
仮想マシン・ロールを利用することで、コストを抑えてWindows Azure上に既存アプリケーションを移行することも可能な一方、WebロールやWorkerロールにはない運用時に考慮すべき事項が増える点には注意が必要だ(これについては後編で解説予定)。
仮想マシン・ロールに関する設定は、次の画面のように、仮想マシン・ロールのプロジェクト・プロパティで行う。
図8 仮想マシン・ロールの設定例 | ||||||
仮想マシン・ロールのVHD(=仮想ハード・ディスク)に関する設定は、次の画面のように、仮想マシン・ロールのプロジェクト・プロパティの[仮想ハード ディスク]タブで行う。また、仮想マシン・ロールに関する設定は、サービス定義ファイルおよびサービス設定ファイルに記述することでも設定可能。 | ||||||
|
※仮想マシン・ロールは執筆時点でベータ版となっており、利用するにはWindows Azure Platform管理ポータルからベータ・プログラムに参加する必要がある。
仮想マシン・ロールについては、後編でより詳細に説明する。
●そのほかの機能拡張と変更点
○開発環境の名称変更
SDK 1.2以前から提供されている開発用環境である「Development Fabric」と「Development Storage」だが、SDK 1.3ではそれぞれ「Windows Azure Compute Emulator」と「Windows Azure Storage Emulator」に名称が変更されている。提供される機能そのものは従来のバージョンと同一だ。
○ネットワーク拡張機能
SDK 1.3では、サービス定義ファイル内の<InputEndpoint>要素にて各ロールのローカル向けのプライベート・ポート(以下、ローカル・ポート)を指定することが可能になった。未指定の場合、ローカル・ポートはランダムに設定されるが、固定化することでロール間での通信をより厳密に定義し、制限することができる。
ローカル・ポートは、次の画面のように、Windows Azureのプロジェクト(=WebロールやWorkerロールなど)のプロパティで設定できる。
図9 ローカル・ポートの設定例 | |||
ローカル・ポートは、WebロールやWorkerロールなどのプロジェクト・プロパティの[エンドポイント]タブで設定できる。 | |||
|
○配置パフォーマンスの向上
SDK 1.3では、開発環境(Windows Azure Compute Emulator)への配置に関するパフォーマンスが向上しており、所要時間が短縮された。これにより開発する際の待ち時間を減らし、効率よく開発を行えるようになった。
●SDK 1.3の入手と互換性
SDK 1.3およびWindows Azure Tools for Visual Studioは、「Microsoftダウンロード センター」から入手可能だ。
また、SDK 1.3に対応した新機能を利用するに当たっては、Windows Azure Guest OSとの互換性にも注意されたい。「MSDN:Windows Azure Guest OS Releases and SDK Compatibility Matrix SDK 1.3」に記載があるとおり、SDK 1.3に対応するWindows Azure Guest OSのバージョンは現在のところ、「1.8」以降または「2.0」以降となるので注意が必要だ。
次のページでは、刷新されたWindows Azure Platform管理ポータルや、そのほかのアップデートについて紹介する。
INDEX | ||
特集:Windows Azure SDK 1.3の新機能(前編) | ||
Windows Azure 1.3の新機能の概要 | ||
1.Windows Azureの新機能とSDK 1.3 | ||
2.新しい管理ポータル/そのほかのアップデート | ||
特集:Windows Azure SDK 1.3の新機能(中編) | ||
Windows Azure実行環境へのリモート・デスクトップ接続 | ||
1.リモート・デスクトップ接続の概要/事前準備 | ||
2. リモート・デスクトップ接続を利用する | ||
特集:Windows Azure SDK 1.3の新機能(後編) | ||
すべてが自由自在なクラウド環境「仮想マシン・ロール」 | ||
1.仮想マシン・ロールの概要/仮想マシンを準備する | ||
2. 仮想マシン・ロールを利用する | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|