.NET TIPS

[Azure]Windows AzureアプリケーションをVisual Studioからデプロイするには?[3.5、4、C#、VB]

山田 祥寛
2010/06/24

 クラウド・アプリケーションの開発というと、反射的に「特殊なもの」と考えてしまいがちであるが、決してそのようなことはない。Windows Azure Tools for Microsoft Visual Studio(以降、Azure Tools)を利用すれば、これまでのASP.NETアプリケーション開発の延長線の知識で、Windows Azureアプリケーション(以降、Azureアプリケーション)は開発できる。

 本稿では、Visual Studioで作成したアプリケーションをクラウド環境であるWindows Azureに配置(=デプロイ)する方法を解説する。なお、本稿の手順は、「TIPS:[Azure]Windows Azureアプリケーションを開発するには?(環境設定)」の作業を終えていることを前提としている。

●デプロイの準備

 Azureアプリケーションを配置するには、

(1)ホスティング・サービスの作成
(2)ストレージ・サービスの作成
(3)クライアント証明書の登録

という事前準備が必要となる。(1)(2)の手順については、あらかじめWindows Azure Platformのアカウントを入手(購入)しておく必要がある。アカウントの入手方法については本稿では触れないので、「MSDN:Windows Azure 購買〜アクティブ化 Step by Step」を参考にされたい。

(1)ホスティング・サービスの作成

 ホスティング・サービス(=Azureアプリケーションをホスト・運用する環境)を作成するには、Azure管理者ポータルのトップ・ページから以下の要領でページをたどってほしい。

  • [My Projects]ページからプロジェクト名(=プラン購入時に決めた名前)を選択
  • 次の[<プロジェクト名>]ページ右上の[New Service]リンクをクリック
  • [Create a new service]ページから[Hosted Service]を選択

 すると、[Service Properties]ページ→[Hosted Service]ページと開くので、それぞれのページで以下の情報を入力する。

ページ 項目 設定値
Service Label サービスを識別するための名前 AzureBook
Service Description サービスの説明 .NET TIPSサンプル
Public Hosted Service URL 外部に公開するURL wings-project
Hosted Service Affinity Group ロケーション [Yes, this service is〜]−[Create a new Affinity Group]([Affinity Group]は「wings」、[Region]は「East Asia」とする)
サービス作成に必要な情報

 「Region」は使用するデータセンターの位置を、「Affinity Group」は、データセンター内でのさらに細かな配置グループを表す。Regionが同じサービス同士でも、必ずしもネットワーク的に近接した位置に設置されるとは限らない。頻繁にやり取りするホスティング・サービスや後述するストレージ・サービスには同一のAffinity Groupを設定しておくのが望ましい。

 [Create]ボタンをクリックすると、サービスが作成され、[Manage Project]ページが表示される。ページ上部の[Account]リンクをクリックすると、[Account]ページが開くので、サービスの詳細情報も確認しておこう。特にページ末尾の[Subscription ID]は、後からサービスに接続する場合に必要となる情報である。

(2)ストレージ・サービスの作成

 Visual Studioからデプロイを行う場合、パッケージ(=アプリケーションをまとめたアーカイブ)はいったんストレージに保存されたうえで、ホスティング・サービスに展開される。あらかじめストレージ利用のためのアカウントを作成しておこう。

 ストレージ・サービスを作成するには、Azure管理者ポータルのトップ・ページから以下の要領でページをたどってほしい。

  • [My Projects]ページからプロジェクト名(=プラン購入時に決めた名前)を選択
  • 次の[<プロジェクト名>]ページ右上の[New Service]リンクをクリック
  • [Create a new service]ページから[Storage Service]を選択

 すると、[Service Properties]ページ→[Storage Account]ページと開くので、それぞれのページで以下の情報を入力する。

ページ 項目 設定値(例)
Service Label サービスを識別するための名前 AzureStorage
Service Description サービスの説明 .NET TIPSサンプル
Public Storage Account Name 外部に公開するURL wings
Storage Account Affinity Group ロケーション [Yes, this service is〜]−[Use existing Affinity Group]([Affinity Group]は「wings」)
サービス作成に必要な情報

 すでに述べたように、Affinity Groupには先ほど作成したグループ名を設定しておく。

(3)クライアント証明書の登録

 Windows AzureにVisual Studioから接続するには、証明書の登録という作業が必要となる。証明書を作成/登録するには、サーバ・エクスプローラから[Windows Azure Compute]を右クリックし、表示されたコンテキスト・メニューから[Add Slot]を選択する。

[Add Slot]ダイアログ

 [Add Slot]ダイアログが表示されるので、[Windows Azure Accounts]を右クリックし、コンテキスト・メニューから[New]を選択する。

[Create Certificate]ダイアログ

 [Create Certificate]ダイアログが表示されたら、フレンドリ名(=証明書の名前)を入力し、[OK]ボタンをクリックする。ここではフレンドリ名を「TipsCer」としておく。これでTipsCer証明書が作成され、ローカル・マシンにインストールされた。

[Cloud Service Management Authentication]ダイアログ

 続いて[Cloud Service Management Authentication]ダイアログが表示されるので、下記の表の要領で必要な情報を入力していこう。

項目 概要 入力値(例)
Create or select 〜 認証に使用する証明書 TipsCer
Copy the subscription ID〜 ホスティング・サービスのサブスクリプションID((1)で確認した値) 9590e755-h39g-4z8u-948a-9131793d0aae5d0
Name these credentials 証明書の名前 DotNetTips
[Cloud Service Management Authentication]ダイアログ

 先ほど作成した証明書は、Windows Azure側にも登録する必要がある。登録には、先ほどホスティング・サービスの作成で見た[Account]ページから[Manage My API Certificates]をクリックする。[Manage My API Certificates]ページが開くので、証明書ファイル(.cerファイル)のパスを入力して、[Upload]ボタンをクリックする。

[Manage My API Certificates]ページ

 証明書のパスは、[Cloud Service Management Authentication]ダイアログ中ほどの[Copy the full path]をクリックすることで取得できる。

 [OK]ボタンをクリックすると、[Add Slot]ダイアログに戻り、[DotNetTips]という項目が追加されているはずだ。

●デプロイの実行

 以上で、デプロイのための事前準備は完了である。やや面倒にも感じられるかもしれないが、あくまで初回のみの準備であるので、次回以降のデプロイでは以上の手順は不要である(以降の手順のみ踏めばよい)。

 それではさっそく、デプロイを行ってみよう。先述の「TIPS:[Azure]Windows Azureアプリケーションを開発するには?(環境設定)」で作成したAzureTestプロジェクトを開き、ソリューション・エクスプローラから[AzureTest]を右クリック、[発行]を選択する*1

*1 ロール・プロジェクトを選択しても、発行メニューが表示されるが、こちらは通常のASP.NETアプリケーションの発行となる。間違えないように、注意されたい。

[Publish Cloud Service]ダイアログ

 ダイアログ上部の[Deploy your Cloud Service to Windows Azure](Windows Azureにサービスを配置)を選択したうえで、[Hosted Service:〜]右端の矢印アイコンで詳細を展開し、必要な情報を入力する。

入力項目 概要 設定値
Credentials (3)で定義した認証情報 DotNetTips
Hosted Service Slot to deploy to デプロイ先のスロット Staging
Storage Account to deploy through 利用するストレージ・アカウント AzureStorage
Prompt before deleting an existing deployment 既存のデプロイを削除する場合、ダイアログを表示するか チェックしない
Deployment Label デプロイを識別するためのラベル AzureTest - 2010/06/12 23:16:21
Enable IntelliTrace for .NET 4 roles IntelliTrace機能(後日詳細)を利用するか チェック
[Publish Cloud Service]ダイアログの設定値(例)

 Windows Azureには、動作環境用のスロットとしてStaging環境、本番実行用のスロットとしてProduction環境が用意されている。今回はStaging(テスト)環境にデプロイする。デプロイ・ラベルには、配置を識別するためにサービス名+日付(バージョン情報)など、任意の文字列を指定すればよい。

 [OK]ボタンをクリックすると、ビルド&デプロイが開始される。

[Windows Azure Acivity Log]ウィンドウ

 デプロイ状況は、Visual StudioのIDEの[Windows Azure Acivity Log]ウィンドウからリアルタイムに確認できるので、最終的に上の画面のような表示になったら、[Website URL]のURLをクリックし、実際にページを参照できることを確認してみよう。正しくページが表示されれば、アプリケーションは正しくデプロイできている。End of Article

利用可能バージョン:.NET Framework 3.5
利用可能バージョン:.NET Framework 4
カテゴリ:Azure 処理対象:Windows Azure
関連TIPS:[Azure]Windows Azureアプリケーションを開発するには?(環境設定)

この記事と関連性の高い別の.NET TIPS
[Azure]Windows Azureアプリケーションを開発するには?(環境設定)
[Azure]Windows Azureアプリケーションをポータル・サイトからデプロイするには?
[Azure]Windows Azureアプリケーションをアップグレードするには?
プログラムでデジタル証明書をインストールするには?
ClickOnceのデジタル証明書を更新するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間