SlideShare une entreprise Scribd logo
1  sur  84
Télécharger pour lire hors ligne
Windows Azure 用アプリケーション開発
            Step-by-Step チュートリアルガイド




              マイクロソフト株式会社 コンサルティングサービス統括本部

© 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
             本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
目次

第1章      はじめに ............................................................................................................................................. 5
 1.1     本書の目的と前提条件 ....................................................................................................................... 5
 1.2     Windows Azure Platform 概要 ........................................................................................................ 5
     1.2.1      クラウドコンピューティングとは ...................................................................................................... 5
     1.2.2      マイクロソフトのクラウドコンピューティングの全体像 ....................................................................... 6
     1.2.3      Azure 用アプリケーション開発時に利用する主要サービス ............................................................ 7
     1.2.4      Web アプリ開発時に考慮すべき Azure の特徴 ............................................................................ 9
第2章      簡単なサンプルを用いた Azure アプリケーションの開発 .................................................................... 11
 2.1     開発環境の構築 ............................................................................................................................... 11
     2.1.1      Windows 7 Enterprise 評価版のインストールと IIS の追加インストール ................................... 11
     2.1.2      Visual Studio 2010 Ultimate 評価版のインストール ................................................................ 12
     2.1.3      SQL Server 2008 R2 Management Studio Express のインストール ....................................... 12
     2.1.4      Windows Azure Tools for Microsoft Visual Studio ver1.2 のインストール .............................. 13
 2.2     ローカルでの Web アプリケーション開発 ............................................................................................ 13
     2.2.1      Web アプリケーションプロジェクトの作成 .................................................................................... 13
     2.2.2      1 つ目の Web ページの作成 ..................................................................................................... 14
     2.2.3      2 つ目の Web ページの作成 ..................................................................................................... 14
     2.2.4      ASP.NET 開発サーバー上での動作確認 .................................................................................. 16
 2.3     クラウドサービスプロジェクトの追加 .................................................................................................... 17
     2.3.1      クラウドサービスプロジェクトの役割 ............................................................................................. 17
     2.3.2      クラウドサービスプロジェクトの追加 ............................................................................................. 17
     2.3.3      複数の Web アプリケーションを同時に展開する場合 .................................................................. 19
     2.3.4      クラウドサービスプロジェクトの構成設定 ..................................................................................... 20
 2.4     開発用ファブリック上での動作確認 .................................................................................................... 21
     2.4.1      動作確認 .................................................................................................................................. 21
     2.4.2      開発用ファブリックのランタイム構成 ............................................................................................ 22
     2.4.3      運用環境と比較した開発環境(開発用ファブリック)の特徴 .......................................................... 23
     2.4.4      開発用ファブリックへの配置の仕組み ........................................................................................ 26
 2.5     Diagnostic Monitor によるアプリケーション監視 ............................................................................... 27
     2.5.1      Diagnostic Monitor とは ......................................................................................................... 28
     2.5.2      Azure ストレージ側の事前準備 ................................................................................................. 29
     2.5.3      収集するログファイルに関する設定方法 ..................................................................................... 31
     2.5.4      ログファイルの確認方法 ............................................................................................................ 34
第3章          Windows Azure 運用環境への展開 ............................................................................................. 37
 3.1     Windows Azure の購入................................................................................................................... 37
     3.1.1      Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録........................... 37
     3.1.2      Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買 ...................... 39
     3.1.3      Step 3 - Azure のアクティブ化 ............................................................................................. 43
 3.2     各種サービスの初期設定と Windows Azure API Certificate の登録 ............................................... 47
     3.2.1      SQL Azure データベースサービスの初期設定 .......................................................................... 47
     3.2.2      Windows Azure ストレージサービスの初期設定 ....................................................................... 51
     3.2.3      Windows Azure コンピュートサービスの初期設定 ..................................................................... 55
     3.2.4      API Certificate の登録 ............................................................................................................ 58
 3.3     SQL Azure データベースサービスへの移行 ..................................................................................... 61



                                                                                                                       p.3
                                 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                            本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
3.3.1     SQL Server Management Studio からの接続........................................................................ 61
   3.3.2     テーブルの作成 ........................................................................................................................ 62
   3.3.3     データの移行 ............................................................................................................................ 63
   3.3.4     アプリケーションの接続文字列を変更......................................................................................... 64
   3.3.5     動作確認 .................................................................................................................................. 64
 3.4   Windows Azure ストレージサービスへの移行 ................................................................................... 65
   3.4.1     ストレージ接続文字列の設定 ..................................................................................................... 65
   3.4.2     Blob コンテナ・テーブルの作成 ................................................................................................. 66
 3.5   Windows Azure コンピュートサービスへの移行 ................................................................................ 68
   3.5.1     インスタンス数の変更 ................................................................................................................ 68
   3.5.2     クラウドサービスのパッケージングと Azure 上への配置 .............................................................. 69
   3.5.3     Windows Azure コンピュートサービスの動作確認 ..................................................................... 72
 3.6   アプリケーションの修正と Azure 環境への再配置 .............................................................................. 73
   3.6.1     開発用ファブリックと本番環境の相違点 ...................................................................................... 73
   3.6.2     アプリケーションの修正 .............................................................................................................. 74
   3.6.3     アップグレード ........................................................................................................................... 74
   3.6.4     解決されない問題 ..................................................................................................................... 76
   3.6.5     構成設定の変更 ....................................................................................................................... 77
   3.6.6     本番環境への展開 .................................................................................................................... 78
   3.6.7     サービスの停止 ......................................................................................................................... 80
   3.6.8     アカウントの削除 ....................................................................................................................... 80
第4章        Windows Azure 運用環境における課金 ....................................................................................... 81
 4.1   Windows Azure 運用環境における課金を安く抑える方法 ................................................................ 81
   4.1.1     トラフィックの課金 ...................................................................................................................... 81
   4.1.2     Windows Azure コンピュートサービスの課金 ............................................................................ 82
   4.1.3     Windows Azure ストレージサービスの課金 ............................................................................... 83
   4.1.4     SQL Azure データベースサービスの課金 ................................................................................. 84
   4.1.5     課金状況の確認 ....................................................................................................................... 84
   4.1.6     課金の予測............................................................................................................................... 85




  本書の利用条件:

  本書に関するすべての権利は、マイクロソフト コーポレーション (以下、マイクロソフト) が保有しています。マイク
  ロソフトまたはその関連会社による事前の承諾がない限り、本書の全部または一部を複製 (電子装置等への保存・保管
  を含む)、改変、翻案、再頒布、公衆送信、貸与、譲渡することは一切認められません。
  マイクロソフトおよびその関連会社は、本書の内容について何ら保証するものではなく、本書の使用に関連してお客様
  または第三者に生ずる間接的、付随的、結果的な損害 (営業機会や営業情報の損失などを含む) について一切責任を負
  いません。
  本書の中で例として使用されている企業、名前およびデータは、特に記述が無い限り架空のものです。

  © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan




                                                                                                                   p.4
                             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
第1章
                                                                                              はじめに

1.1       本書の目的と前提条件
 本ガイドは、Windows Azure Platform について実際にご自身の手で開発を体験いただくためのチュートリアル
ガイドとなっております。Windows Azure と SQL Azure を使った、サンプル Web アプリケーションを Azure 用のア
プリケーションにカスタマイズし、実際にデプロイするまでを、順を追って解説していきます。


 本ガイドでは ASP.NET、SQL Server などに関する、基本的な開発スキルを前提として解説していきます。もし、こ
れらに不安がある場合には、まず ASP.NET や SQL Server に関する書籍を学習した上で、本ガイドをご参照くださ
い。


1.2       Windows Azure Platform 概要
 Azure 用アプリケーションを開発する前に、本章で Windows Azure Platform とはどのようなサービスかおさらい
し、次章から Azure 用アプリケーションを開発していきます。


 ・    クラウドコンピューティングとは(1.2.1)
 ・    マイクロソフトのクラウドコンピューティングの全体像(1.2.2)
 ・    Azure 用アプリケーション開発時に利用する主要サービス(1.2.3)
 ・    Azure 用アプリケーション開発時の基本的な注意点(1.2.4)


 1.2.1    クラウドコンピューティングとは
      Azure は Microsoft が提供しているクラウドコンピューティングサービスの1つです。クラウドコンピューティング
     とは、ネットワークを介して提供される「サービス」を利用する形態のことを言います。




      クラウドコンピューティングの大きな特徴は、低水準のハード構成やソフトウエアを意識する必要がないということ
     です。従来のコンピューティングシステムは、インフラ、アプリ、運用のすべてを自社で賄う必要がありました(これ
     をオンプレミスと言います)。クラウドコンピューティングでは、これらすべて、または一部を、他社に任せることがで
     きるようになります。ハード、ミドル、およびアプリの、どこの層まで他社に任せるかで、クラウドを分類することがで
     きます。


      ・     IaaS ・・・ ハード部分のみ他社に任せてしまう
      ・     PaaS ・・・ インフラ部分(ハードおよびミドル)のみ他社に任せてしまう
      ・     SaaS ・・・ ハード、ミドルおよびアプリまで全て他社に任せてしまう



                                                                                                           p.5
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
コンピューティングシステムの全部または一部を他社に任せると、その部分の構築や保守、運用などについて
 考える必要がなくなります。そのため、クラウドコンピューティングを活用すると、当該企業が本当に注力したい部
 分にのみ、ビジネスリソースを割くことができるようになります。


1.2.2   マイクロソフトのクラウドコンピューティングの全体像
   最適なクラウドコンピューティングは、ユーザー企業ごとに異なります。例えば、メールサーバーを例にとります。
 メールサーバーの運用などをしたくない中小企業は SaaS が最適です。しかし、セキュリティポリシー上、メールを
 社外に出せない企業は、オンプレミスが最適です。このため、マイクロソフトでは、オンプレミス型とクラウド型の 2
 通りのシナリオを提供しています。




   Windows Azure Platform は、マイクロソフトの PaaS 型のクラウドサービスです。自社開発アプリケーションを
 載せるプラットフォームとして Windows Azure Platform を見た場合には、以下のような特徴があります。


   ・    .NET Framework や Visual Studio を使った開発ができる
   ・    煩わしいハードウェアやミドルウエア運用から解放される
   ・    利用に応じた課金がなされる




                                                                                                         p.6
                   © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                              本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
1.2.3    Azure 用アプリケーション開発時に利用する主要サービス
   Azure 用アプリケーションを開発する場合には、主に以下 3 つのサービスを利用します。


   ・     Windows Azure コンピュートサービス(以下、コンピュートサービス)
   ・     Windows Azure ストレージサービス(以下、ストレージサービス)
   ・     SQL Azure データベースサービス(以下、データベースサービス)




   これらの概要について簡単に解説していきます。


  A. Windows Azure コンピュートサービス
        コンピュートサービスは、カスタムアプリケーションのホスティングサービスです。Windows Server OS のベ
    ースイメージが提供され、そこにカスタムアプリケーションを載せて実行することができます。コンピュートサー
    ビスには、大別して 2 種類の OS ベースイメージがあります。


          a. Web Role サーバー
         主に Web アプリケーションをホストするためのサーバーです。IIS が搭載されています。


          b. Worker Role サーバー
         主にバッチアプリケーションを動作させるためのサーバーです。IIS が搭載されていません。


        これらの OS ベースイメージにアプリケーションをインストールし、実行させて使用します。




  B. Windows Azure ストレージサービス
        Azure 上で動作するアプリケーションやサービスは、セキュリティ確保のため、基本的にローカルのファイル
    システムに書き込むことができません。それに代わるものとして、データ保存用に提供されているのが、ストレ
    ージサービスです。ストレージに格納できるデータ構造として、3 種類のデータ構造(Blob, Table, Queue)が




                                                                                                           p.7
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
定義されており、そのデータ構造ごとに 3 種類のストレージがあります。それぞれのストレージには URI が付い
        ていて、HTTP-REST プロトコル1によるアクセスができるようになっています。

          種類        データ              用途                                        URI
          BLOB      バイナリ             巨大バイナリデータを種類問わずに格納でき                      http://<アカウント名
          ストレージ     データ              るストレージになっています。そのため、マル                     >.blob.core.windows.net/<コンテナ名
                                     チメディア系のファイル                               >/<Blob 名>
                                     (.wmv、.wav、.mp3、.jpg など)や巨大なデータ
                                     ファイル(.vhd、.zip など)などの格納に最適で
                                     す。
          Table     Key-Value        プロパティ値のみを持つようなオブジェクトを、                    http://<アカウント名
          ストレージ     データ              二つのキーにより一意化し、分散保有する設                      >.table.core.windows.net/<Table 名
                                     計になっています。そのため、キーを上手に                      >?$filter=<Blob 名>
                                     設計することにより、巨大なデータ検索処理を
                                     効率よく実行することができるようになります。
          Queue     メッセージキュー         Web/Worker Role サーバー間の通信には                http://<アカウント名
          ストレージ     データ              HTTP または TCP による直接型通信を行いま                 >.queue.core.windows.net/<Queue 名
                                     す。この通信を非同期で行いたい場合にのみ                      >
                                     Queue ストレージを使用します。




      C. SQL Azure データベースサービス
         SQL Azure データベースサービスは、インターネット上で利用できる SQL Server データベースです。
        TDS プロトコルを直接受けつけることができるため、通常の SQL Server とほぼ同一の開発ツールや管理ツ
        ールを利用できます。しかし、完全に SQL Server と同じというわけではなく、SQL Server に対していくつか
        のカスタマイズと、制限事項を加えて作られています。


             a. 制限事項
            ・   容量の上限が 50GB と低い


             b. メリット
            ・   内部でレプリケーションによるデータの多重保持が行われており、サービス可用性 99.9%が保証さ
                れている
            ・   カスタムアプリケーションのインフラとして見た場合、SQL Server の細かいサーバー運用に、気を
                払わずに使うことができる




1   REST(Representational State Transfer)とは、HTTP のメソッドヘッダー上にデータアクセスのための命令(Post、Get、Put、
    Delete)を記述することでリソースにアクセスできるように設計されたプロトコルのことです。



                                                                                                                p.8
                          © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                     本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
1.2.4   Web アプリ開発時に考慮すべき Azure の特徴
   通常(オンプレミス用)の Web アプリケーション開発と比較して、Azure 用の Web アプリケーション開発には、
 PaaS アプリケーション開発特有の特徴があります。具体的には、オンプレミス型の開発とは異なり、ハードやミド
 ルなどの、インフラに関わる設定や運用を、ほとんど考えなくて済むという利点があります。しかしその半面、Web
 サーバーや DB サーバーの設定やバージョンを自由に決めることができない、または変更できないなどの注意点
 があります。また、配置するアプリケーションそのものにも、ローカル HDD やレジストリへの書き込みができない、
 複数の Web アプリを同一サーバー上に配置できないなどの制限事項があります。


   具体的な制限事項・注意事項として、最初に知っておくべきものに、以下のようなものがあります。オンプレミスと
 比べ、こうした注意事項や制限事項が多いため、きちんと理解した上で、開発を進める必要があります。




   また、Windows Azure Platform は、リソースを共用するタイプの画一的なプラットフォームであることも忘れて
 はいけません。詳細はここでは解説しませんが、下図に示すように、コンピュートサービスにしろ、SQL Azure にし
 ろ、複数のユーザーがひとつのハードウェア筐体を共有する形式を取っており、またサービスレベルも画一的なも
 のとなります。オンプレミスであれば、単一のアプリケーションが全ハードウェアリソースを占有することも、また
 99.999%のような超高可用性を目指すことも自由ですが、クラウドサービスではこのような自由がありません。




                                                                                                      p.9
                © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                           本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
このような背景から、Azure に適したアプリケーションと不向きなアプリケーションとがあります。


A. Azure に適しているアプリケーション
  ・   一般的なインターネットアプリケーション
  ・   トラフィックが時期や時間帯により、大きく変動するアプリケーション
  ・   ASP サービスとして展開しているアプリケーション
  ・   自社でインフラを持たないソフトウエア会社が、開発するアプリケーション


B. Azure に不向きなアプリケーション
  ・   セキュリティポリシー上、社外に持ち出すことのできないデータを取り扱っているイントラネットアプリケー
      ション
  ・   Azure の SLA では不十分な、ミッションクリティカルシステム
  ・   SP や QFE などの、ソフトウェアバージョンを固定したいアプリケーション


 全てのアプリケーションが、Azure に適しているというわけではないということにご注意ください。このような注意
点を理解した上で、Azure 用のアプリケーションを開発する必要があります。




                                                                                                  p.10
             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
第2章
                           簡単なサンプルを用いた Azure アプリケーションの開発

 それでは、Azure 用のアプリケーションを開発していきましょう。


2.1          開発環境の構築
 Windows Azure 上で動作するアプリケーションを開発するためには、Windows Azure 用の SDK が必要となりま
す。本ガイドでは、Windows Azure SDK 1.2 を用いて開発するため、以下のような環境をセットアップする必要があ
ります。なお、以下は全て一般に入手可能な評価版、またはフリーのツールになっています。

      種類                         製品
      OS                         Windows 7 Enterprise 評価版
      開発ツール                      Visual Studio 2010 Ultimate 試用版
      Management Studio          Microsoft SQL Server 2008 R2 RTM - Management Studio Express
      その他                        Windows Azure Tools for Microsoft Visual Studio ver1.2


 以下の手順で環境をセットアップします。


 2.1.1        Windows 7 Enterprise 評価版のインストールと IIS の追加インストール
      Windows Azure SDK 1.2 に対応する OS は、2010 年 6 月 25 日時点で以下の 4 つとなります。Visual Studio
  自体は Windows XP や Windows Server 2003 でも動作しますが、Windows Azure SDK が対応していないた
  め、Windows XP などでは Window Azure 上で動作するアプリケーションを開発することはできません。


       ・       Windows Vista SP 1 以降
       ・       Windows 7
       ・       Windows Server 2008
       ・       Windows Server 2008 R2


      今回は「Windows 7 Enterprise 評価版」をインストールします。以下のリンクから ISO ファイルをダウンロード
  し、ご自分の端末にインストールしてください。

           ダウンロードサイト
           http://technet.microsoft.com/ja-jp/evalcenter/cc442495.aspx


      Windows Azure SDK を使用するためには、IIS 7.0 以上のインストールと、オプションとして [ASP.NET] と
  [WCF HTTP Activation] の有効化が必要となります。以下の手順で追加インストールしてください。


       ・       コントロールパネルの [プログラムと機能] を開き、左端のペインから [Windows 機能の有効化または無
               効化] を選択します
       ・       ツリービューの [インターネットインフォメーションサービス] をチェックします
       ・       「インターネットインフォメーションサービス」を展開し、「ASP.NET」をチェックしてください
       ・       また、「Microsoft .NET Framework 3.5.1」を展開し、「Windows Communication Foundation
               HTTP Activation」をクリックしてください


                                                                                                                       p.11
                                  © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                             本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
これで IIS の追加インストールは終了となります。


    2.1.2   Visual Studio 2010 Ultimate 評価版のインストール
       次に開発ツールをインストールします。Windows Azure SDK 1.2 は、Visual Studio 2008 SP1 にも対応して
     いますが、今回は Visual Studio 2010 Ultimate 試用版を用いて開発します2。以下のリンクからダウンロードし、
     インストールしてください。なお、インストール時にはすべてデフォルトのオプションを利用してください。

         ダウンロードサイト
         http://www.microsoft.com/downloads/details.aspx?FamilyID=06a32b1c-80e9-41df-ba0c-79d56cb823f7&displaylang=ja



    2.1.3   SQL Server 2008 R2 Management Studio Express のインストール
       次に SQL Server Management Studio をインストールします。Management Studio を利用すると、データ
     ベースサービスを管理できます。以下のリンクよりダウンロードし、インストールしてください。なお、インストール時
     にはすべてデフォルトのオプションを利用してください。

         ダウンロードサイト
         http://www.microsoft.com/downloads/details.aspx?familyid=56AD557C-03E6-4369-9C1D-E81B33D8026B&displaylang=ja




2   (参考) Visual Studio 2008 SP1 に Windows Azure SDK 1.2 をインストールして開発する場合、Windows Azure SDK 1.2 のすべ
    ての機能を使うことができません。このため、Visual Studio に関しては、2010 を利用することを推奨します。



                                                                                                                     p.12
                                © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                           本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.1.4      Windows Azure Tools for Microsoft Visual Studio ver1.2 のインストール
      最後に、Visual Studio 用の Windows Azure アプリケーション開発ツールキットをインストールします。今回は、
  2010 年 6 月 25 日時点において最新版の、Windows Azure SDK 1.2 を含む、Windows Azure Tools for
  Microsoft Visual Studio ver 1.2 をインストールします。以下のリンクよりダウンロードし、インストールしてくださ
  い。

         ダウンロードサイト
         http://www.microsoft.com/downloads/details.aspx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&displaylang=en


      インストールすると、同時に SDK もインストールされます。そして、Visual Studio で Cloud Service のプロジェ
  クトテンプレートが追加され、Windows Azure 上で動作するアプリケーションの開発が可能となります。


2.2        ローカルでの Web アプリケーション開発
 さて、いよいよ Windows Azure 用のアプリケーションを開発していきます。オンプレミス型のアプリケーションを
Azure 上へ移行するというシナリオも想定し、今回は、まずローカルで通常の Web アプリケーションを開発し(本章)、
それを Windows Azure 上へ展開する(次章)、という流れで作業を進めていきます。


 2.2.1      Web アプリケーションプロジェクトの作成
      まず、新規に.NET Framework 4.0 で [ASP.NET 空の Web アプリケーション] プロジェクトテンプレートから
  プロジェクトを作成します。[ASP.NET Web アプリケーション] というプロジェクトテンプレートもありますが、こちら
  ですと、必要のないモジュールまで含まれてしまいます。そのため、今回は Web.config のみを含む [ASP.NET
  空の Web アプリケーション] プロジェクトテンプレートから作成します。




      今回はサンプルとして、①一般的な Web ページと、②データベース入出力を行う Web ページの 2 つを作成し
  ます。




                                                                                                                    p.13
                               © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                          本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.2.2   1 つ目の Web ページの作成
   まず、Web プロジェクトに [Web フォーム] テンプレートから、1 つ目の Web ページ(WebForm1.aspx)ページ
 を追加します。そして、以下のような画面とロジックを作成してください。




2.2.3   2 つ目の Web ページの作成
   次に、2 つ目の Web ページを作成します。


  A. データベースの追加
        Web プロジェクトにデータベースファイルを追加します。以下の URL からサンプルデータベースをダウンロ
    ードし、インストールウィザードに従いインストールしてください。


                                                                                                       p.14
                  © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                             本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ダウンロードサイト
          http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en


         インストールすると、C ドライブの ”SQL Server 2000 Sample Databases” フォルダに NORTHWND デ
       ータベースと PUBS データベースの 2 つが作成されます。今回は PUBS データベースを使用しますので、
       Web プロジェクトに App_Data フォルダを追加し、さらにその App_Data フォルダに PUBS.MDF ファイルを
       追加してください3。




      B. テーブルの一覧表示をする Web ページの作成
         次に、Web プロジェクトに 2 つ目の Web ページ(WebForm2.aspx)を追加してください。そして、
       SqlDataSource と GridView を用いて、authors テーブルを一覧表示するプリケーションを作成してください
       (サーバーエクスプローラーから authors テーブルをドラッグ&ドロップすると簡単に作成できます)。




3   App_Data フォルダは [追加] → [新しいフォルダ] から”App_Data”を指定して追加できます。pubs.mdf ファイルは App_Data フォル
    ダにドラックアンドドロップすることで追加できます。



                                                                                                                   p.15
                              © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                         本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.2.4   ASP.NET 開発サーバー上での動作確認
   以上の作業が終了したら、Ctrl + F5 キーでアプリケーションを起動し、実行してください。すると、ASP.NET 開
 発サーバーが起動し、下図のようにアプリケーションが動作します。




                                                                                                     p.16
                © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                           本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.3           クラウドサービスプロジェクトの追加
 それでは引き続き、このアプリケーションを Azure 用(Web Role サーバー用)に修正していきます。


 2.3.1        クラウドサービスプロジェクトの役割
      Window Azure Tools(開発ツールキット)によりインストールされるクラウドサービスプロジェクトは、簡単に言う
  と、以下の 2 つの作業を行うためのプロジェクトです。


      ・       開発用 PC の中で、開発用ファブリック(Windows Azure エミュレータ)を起動し、その上でアプリケーシ
              ョンを実行・デバッグする
      ・       作成したアプリケーションのファイルを、Windows Azure 本番環境へアップロードできるようにパッケージ
              化する


      後者は次章で解説しますので、前者についてこれから解説していきます。


 2.3.2        クラウドサービスプロジェクトの追加
      まず、Visual Studio のソリューションファイルに対して、クラウドサービスプロジェクトを追加します。そして、先
  ほど作成した Web アプリケーションプロジェクトを追加し、Web アプリケーションが Windows Azure 上に展開さ
  れるようにします。具体的には以下のようにします。


      A. プロジェクトの追加
          ・   ソリューションに対して、[Windows Azure Cloud Service] プロジェクトを追加する。




                                                                                                             p.17
                        © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                   本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   次の [New Cloud Service Project] の画面で、何も選択せずに [OK] ボタンをクリックする。
         先ほど作成した Web アプリケーションプロジェクトを追加するため、ここでは何も選択しません。




B. Roles へのプロジェクトの追加
  次に、追加したクラウドサービスプロジェクトへ、Web Role として、先程作成した Web アプリケーションを追
加します。具体的な追加手順は、以下のようになります。


  ・   クラウドサービスプロジェクト内の [Roles] フォルダを右クリックし、[Add] → [Web Role Project in
      solution…] をクリックする
  ・   追加するプロジェクトとしては、先ほど作成した [WebApplication1] プロジェクトを指定する




                                                                                                     p.18
                © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                           本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
以上の作業により、[Roles] フォルダの中に、[WebApplication1] プロジェクトが追加されます。これにより、こ
     の [WebApplication1] プロジェクトが Web ロールサーバー上に展開され、実行されるようになります。


    2.3.3   複数の Web アプリケーションを同時に展開する場合
       1 つの Web ロールサーバー上には、1 つの Web アプリケーションのみが展開(インストール)可能です。複数
     の Web アプリケーションを、同一の Web ロールサーバー上に展開して実行することはできません。複数の Web
     アプリケーションを同時に展開したい場合には、下図のように、複数の Web ロールサーバーを使用する必要があ
     ります4。




4   ひとつの Web アプリケーションにまとめ直して、Web Role サーバー上に展開するという方法もあります。



                                                                                                          p.19
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.3.4   クラウドサービスプロジェクトの構成設定
       次に、各ロール(サーバー)の構成設定を行います。クラウドサービスプロジェクトの [Roles] 下にある各ロール
     をダブルクリックすると、構成設定画面が現れます。こちらを使うと、以下のような項目が設定できます。


       ・    利用する仮想マシン(VM)のサイズ(仮想マシンに割り当てる CPU やメモリリソースのサイズ)
       ・    利用する仮想マシンのインスタンス数
       ・    CAS(Code Access Security)の設定
       ・    利用する通信の種類(エンドポイントの定義)


       構成設定画面から構成設定を修正すると、その設定は                                                 “ServiceConfiguration.cscfg” と
     “ServiceDefinition.csdef”   の 2 つの XML ファイルに反映されます5。




5   直接 XML ファイルを修正することもできます。



                                                                                                                  p.20
                             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ここでは、もっとも簡単な設定として、[WebApplication1] プロジェクトを動作させる仮想マシンを、3 つに変更
     しておきます6。


2.4         開発用ファブリック上での動作確認
    ここまで設定が終了したら、いよいよ Windows Azure エミュレータ上で、このアプリケーションを動作させてみましょ
う。


    2.4.1   動作確認
       [CloudService1] プロジェクトをスタートアッププロジェクトに変更し、Ctrl + F5 キーで実行します。その際、サ
     ーバーエクスプローラーが PUBS.MDF を握っていると、エラーが発生するため、デタッチしてから実行してくださ
     い。すると、タスクトレイ上に “Development Fabric” と呼ばれる Azure エミュレータ環境が起動し、この中でア
     プリケーションが起動します。




       一見すると、先ほどと変わりなく動作しているように見えますが、実際にはかなり異なる環境で Web アプリケーシ
     ョンが動作しています。これについて以下に解説します。




6   (注意)実際の運用環境に配置する場合には、インスタンス数や仮想マシンのサイズをむやみに引き上げないようにしてください。むやみ
    に引き上げると、その分だけ課金が増えることになります。



                                                                                                          p.21
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.4.2   開発用ファブリックのランタイム構成
       最終的な運用環境では、このアプリケーションは、ファブリックコントローラ 7によってコンピュートサービスのイン
     フラ上に展開され、複数の仮想マシン(VM、Virtual Machine)が起動します8。




       通常、IIS 7 ではワーカープロセスとして w3wp.exe が利用されます。しかし、コンピュートサービスでは、専用
     のワーカープロセスとして WaWebHost.exe というものが用意されており、アプリケーションを展開すると、この
     WaWebHost.exe が起動します。この WaWebHost.exe には、以下のような特徴があります。


       ・    IIS 7 のモジュールをロードして動作するため、内部動作は w3wp.exe とほぼ同じ
       ・    内部では、ASP.NET ランタイムが統合パイプラインモードで動作


       運用環境では、複数の仮想マシンが展開され、1 仮想マシン(サーバ)あたり 1 ワーカープロセスが起動します。
     これに対して、開発環境(開発用ファブリック)では、運用環境で利用される VM と同じ数のホストプロセス
     (WaWebHost.exe)が、ローカルコンピューター内で起動します。これにより、運用環境をエミュレーションするよう
     になっています。




7   コンピュートサービス全体を管理している制御コンピュータ群のことです。
8   わかりやすくするため、下図では各サーバーを物理マシンとしてイラストを描いていますが、実際には仮想マシンとして Azure 環境に展
    開されます。



                                                                                                          p.22
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.4.3       運用環境と比較した開発環境(開発用ファブリック)の特徴
   この開発環境におけるエミュレーション動作を運用環境の動作と比較すると、以下のような特徴があります。


  A. ワーカープロセス
        ・   開発用ファブリックでは、運用環境と同一のワーカープロセスが複数個使用されます。
                開発用ファブリックでは、1 つのコンピュータ内で、複数のロール、複数の仮想マシンをまとめて
                 エミュレーションする必要があります。
                このため、開発用マシンの中では、複数の WaWebHost.exe(Worker ロールを使っている場合
                 には WaWorkerHost.exe)が起動する形になります。
        ・   ワーカープロセスは比較的軽量ですが、沢山の VM を利用すれば、それなりにマシンリソース(特にメ
            モリ)を消費します。
              そのため、開発環境ではあまり大量のインスタンスを起動しないよう、ご注意ください。
        ・   開発環境と運用環境で利用されるワーカープロセスはほぼ同じですが、開発環境では 32 ビット版が、
            運用環境では 64 ビット版が利用されます。
                .NET のみでアプリケーションを開発している際には問題になりませんが、Unmanaged Code を
                 利用している場合にはご注意ください。


  B. ロードバランサ
        ・   運用環境と同様、クライアントブラウザからのリクエストをロードバランサがルーティングします。
                ワーカープロセスは、クライアントブラウザからのリクエストを直接受け付けるわけではありません。
                 いったん、ロードバランサのエミュレータである DFloadbalancer.exe がリクエストを受け付け、そ
                 れが各ワーカープロセスにルーティングされる、という仕組みになっています。
                これは運用環境でも同様で、リクエストは一旦ロードバランサが受け付け、それが各マシンにル
                 ーティングされる形になります。




                                                                                                           p.23
                      © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
C. ポート番号
 ・   開発環境では、運用環境とはロードバランサからのリクエストのルーティング方法が異なります。
        上図を見てわかる通り、運用環境では、各 VM マシンに対して、プライベート IP アドレスと、乱数
         によるポートが定められ、フロントエンドのロードバランサからのリクエストがルーティングされま
         す。
        これに対して開発用ファブリック(開発環境)では、各ワーカープロセスに対して乱数によるポート
        が定められ、フロントエンドのロードバランサからリクエストがルーティングされます。
 ・   ポート番号は、運用環境で利用する予定のポート番号とはずれてしまうことがあるのでご注意ください。
        例えば、このサンプルアプリケーションを動作させると、ブラウザはポート番号 81 上でこのアプリ
         ケーションを呼び出します。
        これは、開発マシン上では、すでにポート番号 80 が IIS 7.5 にアサインされているため、使用で
         きないからです。
        このため、DFloadbalancer.exe は 80 の代わりに 81(次の空きポート)を利用し、これをリスンす
         る、という形になっています。




                                                                                                   p.24
              © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                         本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
さて、このままだと、このアプリケーションが実際にどのワーカープロセスで処理されているのかがわかりませ
       ん。そこで、このアプリケーションの WebForm1.aspx.cs ファイルに以下のような修正を加えてください。


        ・   Microsoft.WindowsAzure.ServiceRuntime への参照設定の追加
        ・   using キーワードの追加(using Microsoft.WindowsAzure.ServiceRuntime; )
        ・   Page_Load() メソッド内への、インスタンス番号を解決して表示するロジックの追加(Label3.Text =
            RoleEnvironment.CurrentRoleInstance.Id;)




        以上を行った上で、再度 Ctrl + F5 キーにより実行すると、Web 画面上にサーバーID が表示されるように
       なります。この状態で、リロードやポストバックなどを繰り返していると、ロードバランス機能により、複数のサー
       バー(ワーカプロセス)に分散処理されることがわかります9。




9   リロードやポストバックだけでは別サーバインスタンスに振りなおされないケースもあります。その場合には、別の Web ブラウザを起動する
    などしてご確認ください。



                                                                                                          p.25
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.4.4       開発用ファブリックへの配置の仕組み
   では次に、この開発用ファブリックの動作の仕組みについて、もう尐し詳しく解説します。まず、タスクトレイの
 [Windows Azure Simulation Environment] のアイコンを右クリックし、メニューから [Show Development
 Fabric UI] を選択してください。これにより、開発用ファブリックの UI が表示されます。




   前述したように、Visual Studio からクラウドサービスプロジェクトを実行すると、開発用ファブリックが動作し、そ
 の上でアプリケーションが動作します。この動作については、以下の点を押さえておくとよいでしょう。


  A. 開発用ファブリックへのアプリケーション展開
        ・   Visual Studio からクラウドプロジェクトを実行すると、開発用ファブリック上にアプリケーションが展開さ
            れます。この作業を「配置」と呼びます。
        ・   配置の際には、一意の配置 ID(Deployment ID)が採番されるようになっています。ちなみに配置 ID
            は、開発環境と運用環境では全くフォーマットが異なります。
                開発環境 → “deployment(21)” のように、一意連番が振られる。
                運用環境 → “6f4d99b8b339413ea3dac24ce71929af” のように、ランダムな GUID 値が振
                 られる


  B. ロールインスタンスごとのフォルダ分け
        ・   開発環境では、ローカルマシンの特殊なフォルダにアプリケーションが展開されます。
                例えば上記のアプリケーションの場合、”WebApplication1” ロールのインスタンス#0 のアプリ



                                                                                                            p.26
                       © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                  本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ケ          ー             シ            ョ            ン             は             、            ”
                 C:¥Users¥nakama¥AppData¥Local¥dftmp¥s0¥deployment(21)¥res¥deployment(2
                 1).CloudService1.WebApplication1.0” というパスの下側に、アプリケーションが展開されて
                 動作しています(このような動作は、ASP.NET 開発サーバーによる動作とは全く異なります)。
                また、このフォルダの下側には、実際に利用する Web アプリケーションの他に、ASP.NET テン
                 ポラリファイル、IIS ログ、Diagnostic Monitor によるログファイル、IIS 圧縮キャッシュなど
                 様々なデータが、ロールインスタンス(=運用環境における仮想マシン)ごとに保存されるように
                 なっています。(このフォルダは、下図のように Development Fabric UI から選択すると、簡単
                 に開くことができます。)




      C. ワーカープロセスのモニタリング
       ・    各ワーカープロセスの状況を、上図のツールからモニタできます。
                このツールは、コンソール出力をモニタできるようになっているので、Diagnostic トレースなどを
                 簡単に見たりすることができるようになっています。また、サービスの停止や、配置したアプリケー
                 ションの除去などもこのツール上からできるようになっています。
                ただし、このツールから得られる各サーバ(各ロールインスタンス)の情報については、非常に限
                 られています。また、運用環境ではこのモニタツールを使用できません。例えば、CPU 稼働率
                 やメモリ利用率の監視、IIS ログの確認などといった内容については、このツールからでは確認
                 できません。これらに関しては、次に述べる Diagnostic Monitor による監視が必要になりま
                 す。


 以上で、基本的な開発用ファブリックの利用方法に関しては終わりです。引き続き、これらのサーバーをモニタリン
グする機能を追加していきます。


2.5        Diagnostic Monitor によるアプリケーション監視
 サーバーをモニタリングするためのツールである、Diagnostic Monitor を使用したアプリケーション監視の方法に
ついて説明します。




                                                                                                             p.27
                        © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                   本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
2.5.1   Diagnostic Monitor とは
   コンピュートサービス内の各仮想マシンには、Diagnostic Monitor ランタイムと呼ばれるサービスがインストー
 ルされています。このサービスは、イベントログやパフォーマンスログ、フラットファイルなどを定期的に監視・デー
 タ収集し、ストレージサービスへと転送するようになっています。このサービスが存在するため、各アプリケーション
 からは直接ストレージサービスへデータを書き込む必要はなく、従来通り、イベントログやパフォーマンスログなど
 に、データを出力しているだけで済むようになっています。




   Diagnostic Monitor ランタイムでは、様々なログデータを転送できるようになっていると説明しましたが、実際
 には尐し注意が必要です。Diagnostic Monitor ランタイムのドキュメント類を参照すると、以下のようなログファイ
 ルが転送できると示されています。




   しかしこの転送は、転送先が Table ストレージになっているものと、Blob ストレージになっているものとで、以下
 のように仕組みが大きく異なります。このため、注意が必要です。

    転送先のストレージの種類         転送の仕組み
    Table ストレージ          ログファイルは、構造を持ったテーブルデータとして、特定の Table ストレージに転送・追記され
                         る。
    Blob ストレージ           ログファイルは、バイナリファイルとして Blob ストレージに転送・保存される。



                                                                                                           p.28
                      © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
つまり、トレースログやパフォーマンスカウンタのデータは、スキーマを持ったデータとして Table ストレージに
      分解・整理・転送されますが、IIS ログファイルや FREB ログファイルなどは、ただのバイナリファイルとして Blob
      ストレージに転送される、という形になっています。このため、データ取得後のデータの取り出し方などが異なって
      きますので注意してください。詳細は後程解説します。


        さて、Diagnostic Monitor を使うためには、以下の作業が必要になります。


        ・     Azure ストレージ側の事前準備(2.5.2)
        ・     収集するログファイルに関する設定方法(2.5.3)
        ・     ログファイルの確認方法(2.5.4)


        以下に、これらについて順に解説していきます。


     2.5.2    Azure ストレージ側の事前準備
        まず、Azure ストレージ側に、データを格納するための Blob コンテナや Table ストレージを作成します。データ
      転送先となる Blob や Table の名称の多くは固定的に定められていますので、以下のような名称でコンテナやテ
      ーブルを作成します。




        具体的な作業手順は、以下のようになります。


       A. 開発用ストレージサービスの起動
             タスクトレイの [Windows Azure Simulation Environment] を右クリックし、[Start Development
         Storage service] を選択して開発用ストレージサービスを起動します10。




10   (参考) この開発用ストレージサービスは、内部的には SQL Server Express Edition のファイルアタッチデータベースを利用してい
     るため、SQL Server Express Edition がインストールされていないとうまく起動しません。また、開発用ストレージにゴミがたまってしまっ
     た場合には、”Show Development Storage UI” から Reset ボタンを押下すると、簡単に初期状態(空の状態)に戻すことができま
     す。



                                                                                                                p.29
                           © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                      本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
B. Blob コンテナやテーブルの作成
  次に、コンテナやテーブルを作成します。作成する際は、以下の 2 通りの方法があります。


  ・     ツールを使って、手作業でコンテナやテーブルを作成していく方法
  ・     コンソールアプリケーションなどを使って、コンテナやテーブルを作成する方法


  どちらの方法でも構いませんが、コンソールアプリケーションを使用すると、以下のような簡単なコードで作
成することが可能です。


  以下 2 つの、参照の追加が必要です。


  ・     Microsoft.WindowsAzure.ServiceRuntime.dll
  ・     Microsoft.WindowsAzure.StorageClient.dll

using   System;
using   System.Collections.Generic;
using   System.Linq;
using   System.Text;

using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 開発環境の場合(運用環境の場合には適宜コードを修正)
            CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;

             // 作成するコンテナ、テーブル、キューの名称一覧
             string[] containerNamesToCreate = new string[]
             {
                 "wad-iis-failedreqlogfiles", "wad-iis-logfiles", "wad-crash-dumps"




                                                                                                              p.30
                         © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                    本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
};

                 string[] tableNamesToCreate = new string[]
                 {
                     "WADLogsTable", "WADDiagnosticInfrastructureLogsTable",
                     "WADPerformanceCountersTable", "WADWindowsEventLogsTable", "WADDirectoriesTable" };

                 string[] queueNamesToCreate = new string[] { };

                 // コンテナ、テーブル、キューを作成
                 CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
                 foreach (string containerName in containerNamesToCreate)
                 {
                     CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName);
                     bool created = blobContainer.CreateIfNotExist();
                     if (created) Console.WriteLine("{0} : コンテナを作成しました。", containerName);
                 }

                 CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
                 foreach (string tableName in tableNamesToCreate)
                 {
                     bool result = tableClient.CreateTableIfNotExist(tableName);
                     if (result) Console.WriteLine("{0} : テーブルを作成しました。", tableName);
                 }

                 CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
                 foreach (string queueName in queueNamesToCreate)
                 {
                     CloudQueue queue = queueClient.GetQueueReference(queueName);
                     bool result = queue.CreateIfNotExist();
                     if (result) Console.WriteLine("{0} : キューを初期化しました。", queueName);
                 }

             }
        }
    }




   ストレージの準備ができたら、今度は Web アプリケーションに、ログデータ収集と自動転送を行わせるための設
 定コードを追加します。


2.5.3   収集するログファイルに関する設定方法
   Diagnostic Monitor による監視を行うためには、以下 2 つの設定が必要です。


   ・        データをローカルマシン内で収集させるための設定
   ・        それを Azure ストレージに自動転送させるための設定


   収集するログの種類ごとに、設定可能な項目が尐しずつ異なりますが、簡単に書くと、以下のような項目が設定
 できます。




                                                                                                                 p.31
                            © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                       本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
設定を行うためには、以下の作業を行います。


・       Web アプリケーションに WebRole.cs という名前のファイルを追加する
・       参照設定として、Microsoft.WindowsAzure.ServiceRuntime, StorageClient, Diagnostics の 3 つの
        DLL を追加する
・       using キーワードで、Microsoft.WindowsAzure, StorageClient, ServiceRuntime, Diagnostics の 4
        つの名前空間を導入する
・       WebRole.cs クラスを RoleEntryPoint クラスの派生クラスにする
・       OnStart() メソッドに Diagnostic Monitor の初期化処理を実装する


OnStart() メソッドについては、以下をご参照ください。

using   System;
using   System.Collections.Generic;
using   System.Linq;
using   System.Web;

using   Microsoft.WindowsAzure.ServiceRuntime;
using   Microsoft.WindowsAzure.Diagnostics;
using   Microsoft.WindowsAzure.StorageClient;
using   Microsoft.WindowsAzure;

namespace WebApplication1
{
    public class WebRole : RoleEntryPoint
    {
        public override bool OnStart()
        {
            // 構成設定が変更されたらロールインスタンスをリスタートする
            RoleEnvironment.Changing += (sender, e) => {
                if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)) e.Cancel =
true;
            };

             DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration();

             // トレースログ (※ web.config への設定も必要)
             dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(2);
             dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Warning;

             // Diagnostic Monitor ログ
             dmc.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(2);
             dmc.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Critical;

             // イベントログ
             dmc.WindowsEventLog.DataSources.Add("Application!*");
             dmc.WindowsEventLog.DataSources.Add("System!*");
             dmc.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(2);




                                                                                                              p.32
                         © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                    本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
dmc.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose;

                      // パフォーマンスカウンタ
                      dmc.PerformanceCounters.DataSources.Add(
                          new PerformanceCounterConfiguration()
                          {
                              CounterSpecifier = @"Processor(_Total)% Processor Time",
                              SampleRate = TimeSpan.FromSeconds(60)
                          });
                      dmc.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(2);

                      // カスタムファイルログ (※ IIS ログ, FREB ログ, クラッシュダンプは設定済み)
                      dmc.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);

                      // Diagnostic Monitor をスタートさせる
                      DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc);


                      return base.OnStart();
                  }

             }
        }



       こちらのコードは、基本的に以下 2 つの条件を指定しています。


        ・        データ収集に関する条件
        ・        データ自動転送に関する条件


       大まかに言うと、デ ー タ転送に関する条 件 を                                             .ScheduledTransferPeriod プ ロ パ テ ィ
      や.ScheduledTransferLogLevelFiler プロパティにより設定し、その他の.DataSource プロパティなどでデータ
      収集条件を設定します。ここでは 2 分間隔でデータ転送する形にしていますが、実際のシステムでは転送間隔は
      もう尐し長くてもよいでしょう11。


       さて、上記のサンプルコードについては、いくつかの注意点があります。要点を説明すると、以下の通りです。


       A. .SetConfigurationSettingPublisher() メソッド
            コードの先頭に書かれている、.SetConfigurationSettingPublisher() メソッドは、サービス構成設定の変
        更を動的に追いかけるためのコードです。(しかし、ここではまだ意味が分からないと思います。現段階では
        「呪文」だと思っておいていただければ結構です。)


       B. トレースログ
            「 ト レ ー ス ロ グ 」 と 書 か れ て い る の は 、 System.Diagnostics ト レ ー ス ( System.Diagnostics.Trace.
        WriteLine() な ど の 命 令 に よ り 出 力 さ れ る Win32 ト レ ー ス ロ グ ) で すが 、 こ の 機能を 使 う た め に は 、
        web.config ファイルに、以下の記述を追加する必要があります。このコードを追加することにより、Win32 トレ
        ースログの情報が、Azure の Diagnostic Monitor ランタイムの方に転送され、記録されるようになります。

        <?xml version="1.0"?>
        <configuration>




11    (参考) データの転送間隔については、むやみに短くしないことをおすすめします。これは、転送間隔をむやみに短くすると、それだけ
     システムに負荷がかかってしまうためです。「仮想マシンがクラッシュするとログデータが吹き飛ぶので、極力転送間隔を短くしておきた
     い」と考える人もいると思います。しかし、通常のオンプレミスのシステムでも、ローカルマシンに出力されたファイルを監視マシンに吸い
     上げる場合、ある程度の時間間隔を置いてチェックおよび吸出しを行っているはずです。それと同様に、あまり短く設定しすぎないことを
     推奨します。



                                                                                                                      p.33
                                 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                            本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
- - - (前略) - - -

        <system.diagnostics>
          <trace>
            <listeners>
              <add                     type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,
    Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                   name="AzureDiagnostics" />
            </listeners>
          </trace>
        </system.diagnostics>

    - - - (後略) - - -

    </configuration>


  C. Diagnostic Monitor ログ
         「Diagnostic Monitor ログ」とは、Diagnostic Monitor ランタイム自身から発生するログです。このログに
    対しては必ずフィルタリング条件を設定してください(尐なくとも Warning 以上)。 Verbose レベルでデータ
    収集を行うと、大量(数秒間に数十エントリ)のデータが出力されてしまいます。基本的には Critical などに
    設定しておけば十分でしょう。


  D. Diagnostic Monitor ランタイムの起動
         最後の DiagnosticMonitor.Start() メソッドによって Diagnostic Monitor ランタイムを起動しています。そ
    して、このメソッドの第 1 パラメータ(ここでは “DiagnosticsConnectionString”)で、転送先となる Azure スト
    レージへの接続情報を設定しています。この接続情報は、クラウドサービスプロジェクト側の “Settings” セク
    ションに設定されており、既定では “UseDevelopmentStorage=true” (開発ストレージにログ情報を転送
    する)という設定になっています。(運用環境に持っていく場合には、この設定値を、本番環境の Windows
    Azure ストレージサービスへの接続文字列に書き換えます。)




   以上で設定は完了です。この状態で、アプリケーションを実行してください。そして、これをしばらく使い、その後、
 しばらく放置(5 分程度)してみてください。これにより、ログデータが適宜 Azure ストレージに転送されているはず
 です。




2.5.4     ログファイルの確認方法
   最後に、転送されたログファイルを確認してみます。一番手っ取り早い方法は、各種のツール(Windows
 Azure MMC など)を使って Azure ストレージに接続し、その中を確認する方法です。しかしながら、以下のよう
 なログファイルダウンロード用のコンソールアプリケーションなどを準備しておく方法も便利です。ここでは、Azure



                                                                                                                 p.34
                            © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                       本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ストレージに保存された IIS のログファイルを、ダウンロードするためのコードを以下に示します。

 using   System;
 using   System.Collections.Generic;
 using   System.Linq;
 using   System.Text;
 using   Microsoft.WindowsAzure;
 using   Microsoft.WindowsAzure.StorageClient;
 using   System.IO;


 namespace ConsoleApplication2
 {
     class Program
     {
         static void Main(string[] args)
         {
             // Diagnostic Monitor のログデータ一括転送
             // 開発環境の場合(運用環境の場合には適宜コードを修正)
             CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;

              // 転送先となるローカルパス
              string localRootPath = @"C:temp" + DateTime.UtcNow.ToString("yyyyMMdd_HHmmss");
              bool willFileDelete = true; // 転送したファイルを消すか否か

             // ① Blob データのダウンロード
             CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
             foreach (string containerName in new string[] {
                 "wad-control-container",          "wad-iis-failedreqlogfiles",          "wad-iis-logfiles",
 "wad-crash-dumps" })
             {
                 CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName);
                 var blobs = blobContainer.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true });

                  foreach (var blob in blobs)
                  {
                      CloudBlob cb = blobContainer.GetBlobReference(blob.Uri.AbsoluteUri);
                      string localFilePath = localRootPath + @"Blob" + blob.Uri.PathAndQuery.Replace('/',
 '');
                     Console.WriteLine(blob.Uri.AbsoluteUri + " → " + localFilePath);
                     Directory.CreateDirectory(localFilePath.Substring(0,
 localFilePath.LastIndexOf('')));
                     cb.DownloadToFile(localFilePath);
                     if (willFileDelete) cb.Delete();
                 }
             }

          }
     }
 }



 このコンソールアプリケーションを実行すると、Azure ストレージに蓄積された IIS ログを、ローカルマシンにダウ
ンロードすることができるようになります。ダウンロードしたログを、Excel や各種のログ解析ツールなどに読み込ま
せると、分析することができます。




                                                                                                               p.35
                          © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                     本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ここまでコンピュートサービスの監視方法について解説してきました。これらの説明からわかるように、現時点で
は、コンピュートサービスの監視 API は、比較的剥き出しのような状態で、残念ながら、使いやすいツール類が充
実しているとは言い難い状況です。3rd party 製ツールとしては Cerebrata 社の Azure Diagnostics Manager
などのツールが出てきていますが、コンピュートサービスの監視については、今しばらくは手作業で行う必要があ
ります。ただ、Diagnostic Monitor ランタイムの基本動作やその考え方については、今のうちにきっちり理解して
おいた方がいいため、一度触ってみることを推奨します。




                                                                                                      p.36
                 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                            本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
第3章
                                                              Windows Azure 運用環境への展開

 いよいよ本章では、作成した Web アプリケーションを Azure 上へ展開していきます。


 まず、展開作業に入る前の Azure を使用するための準備として以下 2 つを行います。


 ・     Windows Azure サービスの購入(3.1)
 ・     各種サービスの初期化(3.2)


 Azure を使用する準備が整ったら、次にデータベース、ストレージ、アプリケーションの順番で Azure 上(Staging
環境)へ移行していきます。


 ・     SQL Azure データベースサービスへの移行(3.3)
 ・     Windows Azure ストレージサービスへの移行(3.4)
 ・     Windows Azure コンピュートサービスへの移行(3.5)


 そしてアプリケーションの移行が完了したら、最後に本番(Production)環境に展開します(3.6)。


 それでは、Windows Azure サービスの購入手順から説明していきます。


3.1         Windows Azure の購入
 2010 年 6 月 25 日現在 、Windows Azure Platform サービスでは、初期特別提供プランとして、Azure の 25
時間分の無償使用を含む「Windows Azure Platform 導入特別プラン」が提供されています。今回はこちらを利用
して検証作業を行います。なお、このプランは範囲内での試用は無償ですが、無償枠を超えてサービスを利用すると
従量課金のレートで課金が発生しますのでご注意ください。

      Windows Azure Platform 導入特別プラン
      http://www.microsoft.com/japan/windowsazure/offers/popup.aspx?lang=ja&locale=ja-JP&offer=MS-AZR-0001P


 下記手順では、クレジットカード払いによる購入手順を説明します。


 ・     Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録
 ・     Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買
 ・     Step 3 - Azure のアクティブ化


 3.1.1      Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録
      実際の Windows Azure の購入は、Microsoft Online Services カスタマーポータルサイト(略称:MOCP)か
     ら行います。最初の Step では、Microsoft Online Services カスタマー ポータルを使用するためのプロファイル
     登録を行います。




                                                                                                                     p.37
                                © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                           本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
A. Microsoft Online Services カスタマーポータルへのログイン
  ・      Internet Explorer で下記 Microsoft Online Services カスタマーポータルにアクセスします。

      Microsoft Online Services カスタマーポータル
      https://mocp.microsoftonline.com/site/default.aspx


  ・      [サインイン] をクリックすると、Windows Live ID でのログイン画面が表示されますので、Windows
         Live ID アカウント名 (メール アドレス) とパスワードを入力し、 [Sign in] ボタンをクリックしてくださ
         い。


B. プロファイルの登録
  ・      ログインに成功すると 新規プロファイル登録開始画面が表示されるので、必要な情報を入力します。
                既にプロファイル登録済みの場合は、Step 2 にお進みください。




  ・      下記の確認画面が表示されたら、プロファイル情報入力は完了です。 [閉じる] ボタンをクリックしま
         す。




                                                                                                                 p.38
                            © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                       本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
最初のプロファイル登録が終わると、カスタマーポータルの画面が表示されます。




3.1.2       Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買

  A. 初期特別提供プランの選択
        ・    画面中央の利用可能なサービスから [Windows Azure Platform] の利用可能なサービスの表示リン
             クをクリックします。
                 すると、現在利用可能な Azure の購買メニューが表示されます。




                                                                                                            p.39
                       © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                  本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   ここでは [初期特別提供プラン] を選択し、 [今すぐ購入] をクリックします。




・   購入の同意事項を確認してチェックボックスを入れ、 [購入手続きへ進む] ボタンをクリックします。




                                                                                                 p.40
            © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                       本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
B. クレジットカードの登録と注文の確定
         ・   支払い方法の入力画面からクレジットカードの情報を登録します12。
         ・   新しいクレジット カードが選択されていることを確認して [次へ] ボタンをクリックします。




12   このプランは、無償範囲の利用であれば課金が発生しません。しかし、無償範囲枠を超えて利用すると、登録したクレジットカードに課
     金が発生します。このため、無償範囲に注意しながら検証作業を進めてください。



                                                                                                          p.41
                     © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   必要事項を入力したら、 [次へ] ボタンをクリックします。
       すると、オンライン サブスクリプション契約が表示されます。




・   オンラインサブスクリプション契約をご確認いただき、問題がなければ [次へ] ボタンをクリックします。
    以下の 2 点に注意してください。
       氏名の署名欄には、上に記載されている文字列の通り入力してください
      姓と名の間に半角スペースが必要となりますので注意してください
・   注文の確認および確定画面が表示されます。内容を確認して [注文の確定] ボタンをクリックします。




                                                                                                 p.42
            © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                       本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
確認画面が表示されれば支払い情報の登録は完了です。この画面から引き続き Azure のアクティブ化を
    行います。




3.1.3       Step 3 - Azure のアクティブ化
   続いて、購入した権利で Azure を利用するための手続きであるアクティブ化を行います。


  A. Azure のアクティブ化
        ・    注文完了画面でアクティブ化ボタンをクリックして、サブスクリプション操作画面を表示します。




                                                                                                           p.43
                      © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   [アクション] のリストから [今すぐアクティブ化] を選択し、[移動] ボタンをクリックします。




・   サービスのサブスクリプション名を入力し、[次へ] ボタンをクリックします。
       サブスクリプション名は Azure で最初のプロジェクトの名称にも使用されます。




                                                                                                  p.44
             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   続いてサービス管理者の情報を入力します。
       すでに入力しているサービス購買の連絡先情報をコピーすることも可能です。
       前述のサービス購買者と、ここで解説するサービス管理者との違いは以下の通りです。
           企業で利用する場合は、購入手続きを行う部門と、実際にプロジェクトで利用する部門や
            担当者が異なる場合がよくあります。
           このような場合に備えて、それぞれ個別に指定ができるようになっています。
           なお、Azure では、サービス購買者として登録した ユーザーを「アカウントオーナー
            (Account Owner)」、サービス管理者として登録したユーザーを「サービスアドミニストレ
            ーター(Service Administrator)」と呼んで区別しています。
       アカウントオーナーとサービスアドミニストレータは、後で示す Windows Azure のポータル画面
        上では区別して表示されます。




                                                                                                   p.45
              © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                         本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   概要画面で入力情報を確認したら、[完了] ボタンをクリックします。




 確認完了画面が表示されたら手続きは終了です。




B. 作成されたプロジェクトの確認
 完了手続きを終えると、登録に利用した Windows Live ID のアカウント宛に完了メールが届きます。これ
で Windows Azure デベロッパー ポータルにアクセスできるようになります。


 ・   メールに記載されたデベロッパー ポータルのリンクから [Windows Azure] をクリックして、Windows
     Azure デベロッパー ポータルにアクセスします(または、https://windows.azure.com/ にアクセスし




                                                                                                    p.46
               © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                          本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
ます)。
                      新たに先ほど作成したプロジェクトが追加されていることをご確認ください13。




             以上で、Azure の購入とアクティブ化のプロセスが終了となります。


3.2              各種サービスの初期設定と Windows Azure API Certificate の登録
     Azure の各サービスを利用するためには、各々のサービスで初期設定を行う必要があります。また、Azure をロー
カルのツールから遠隔操作するためには、API 証明書(Windows Azure API Certificate)の登録が必要です。


     まず各種サービスの初期設定からご説明します。


     3.2.1       SQL Azure データベースサービスの初期設定
        以下の手順で、データベースサービスを初期設定します


       A. SQL Azure プロジェクトの作成
             ・    まず、ポータルサイト(https://sql.azure.com/)にアクセスします。
                      https://windows.azure.com/ のサイトの左側タブの中から [SQL Azure] の項目をクリックし
                       ても構いません。
             ・    使用条件を読み、 [Accept] ボタンをクリックします。




13   下図では、PDC08CTP というプロジェクトが存在しますが、これはβ版の頃から利用していた場合のみ表示されます。現在、新規にこの
     作業を行った場合には、作成したプロジェクトひとつだけが表示されます。



                                                                                                                  p.47
                             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
・   データベースサービスの管理者アカウントのアカウント名とパスワードを入力し、データベースサーバー
    の場所を選択します。
      ここでは、場所に関しては [Southeast Asia] を選択することを推奨します。
・   [Create Server] ボタンをクリックしサーバーを作成します。




                                                                                                  p.48
             © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan
                                        本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide
Windows azure stepbystep_tutorialguide

Contenu connexe

Similaire à Windows azure stepbystep_tutorialguide

Linux+PHPを学んで日程調整アプリを作ろう①
Linux+PHPを学んで日程調整アプリを作ろう①Linux+PHPを学んで日程調整アプリを作ろう①
Linux+PHPを学んで日程調整アプリを作ろう①Aina Hara
 
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdfHisaho Nakata
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfHisaho Nakata
 
Rの拡張を書く (R 2.15.2)
Rの拡張を書く (R 2.15.2)Rの拡張を書く (R 2.15.2)
Rの拡張を書く (R 2.15.2)itoyan110
 
Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版株式会社クライム
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
コーディング規約「Scratch編」v1.0
コーディング規約「Scratch編」v1.0コーディング規約「Scratch編」v1.0
コーディング規約「Scratch編」v1.0satoshi59
 
コーディング規約_Scratch編_v1.1
コーディング規約_Scratch編_v1.1コーディング規約_Scratch編_v1.1
コーディング規約_Scratch編_v1.1satoshi59
 
Keyword driventestexercisetext.20210506
Keyword driventestexercisetext.20210506Keyword driventestexercisetext.20210506
Keyword driventestexercisetext.20210506Toru Koido
 
PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)Noriyoshi Shinoda
 
B 64014 ja-04
B 64014 ja-04B 64014 ja-04
B 64014 ja-04mt7038
 
JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順Yoshii Ryo
 
Datalink Manual 1.6.0.1
Datalink Manual 1.6.0.1Datalink Manual 1.6.0.1
Datalink Manual 1.6.0.1guest9f8fb4aa
 
徹底検証!ホスティングサービスの比較 Googleとマイクロソフト
徹底検証!ホスティングサービスの比較 Googleとマイクロソフト徹底検証!ホスティングサービスの比較 Googleとマイクロソフト
徹底検証!ホスティングサービスの比較 GoogleとマイクロソフトCompare GW
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
Instalaciones de servidores ejemplo
Instalaciones de servidores ejemploInstalaciones de servidores ejemplo
Instalaciones de servidores ejemploGary Flores Marcos
 

Similaire à Windows azure stepbystep_tutorialguide (20)

Tour
TourTour
Tour
 
Tour
TourTour
Tour
 
Linux+PHPを学んで日程調整アプリを作ろう①
Linux+PHPを学んで日程調整アプリを作ろう①Linux+PHPを学んで日程調整アプリを作ろう①
Linux+PHPを学んで日程調整アプリを作ろう①
 
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdf
 
Rの拡張を書く (R 2.15.2)
Rの拡張を書く (R 2.15.2)Rの拡張を書く (R 2.15.2)
Rの拡張を書く (R 2.15.2)
 
Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
コーディング規約「Scratch編」v1.0
コーディング規約「Scratch編」v1.0コーディング規約「Scratch編」v1.0
コーディング規約「Scratch編」v1.0
 
コーディング規約_Scratch編_v1.1
コーディング規約_Scratch編_v1.1コーディング規約_Scratch編_v1.1
コーディング規約_Scratch編_v1.1
 
Keyword driventestexercisetext.20210506
Keyword driventestexercisetext.20210506Keyword driventestexercisetext.20210506
Keyword driventestexercisetext.20210506
 
PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)PostgreSQL 10 Beta1 New Features (Japanese)
PostgreSQL 10 Beta1 New Features (Japanese)
 
B 64014 ja-04
B 64014 ja-04B 64014 ja-04
B 64014 ja-04
 
JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順
 
Agatha操作ガイド 基本編
Agatha操作ガイド 基本編Agatha操作ガイド 基本編
Agatha操作ガイド 基本編
 
Datalink Manual 1.6.0.1
Datalink Manual 1.6.0.1Datalink Manual 1.6.0.1
Datalink Manual 1.6.0.1
 
徹底検証!ホスティングサービスの比較 Googleとマイクロソフト
徹底検証!ホスティングサービスの比較 Googleとマイクロソフト徹底検証!ホスティングサービスの比較 Googleとマイクロソフト
徹底検証!ホスティングサービスの比較 Googleとマイクロソフト
 
Install guide ja_jp
Install guide ja_jpInstall guide ja_jp
Install guide ja_jp
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
Instalaciones de servidores ejemplo
Instalaciones de servidores ejemploInstalaciones de servidores ejemplo
Instalaciones de servidores ejemplo
 

Dernier

2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 

Dernier (12)

What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 

Windows azure stepbystep_tutorialguide

  • 1. Windows Azure 用アプリケーション開発 Step-by-Step チュートリアルガイド マイクロソフト株式会社 コンサルティングサービス統括本部 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 2. 目次 第1章 はじめに ............................................................................................................................................. 5 1.1 本書の目的と前提条件 ....................................................................................................................... 5 1.2 Windows Azure Platform 概要 ........................................................................................................ 5 1.2.1 クラウドコンピューティングとは ...................................................................................................... 5 1.2.2 マイクロソフトのクラウドコンピューティングの全体像 ....................................................................... 6 1.2.3 Azure 用アプリケーション開発時に利用する主要サービス ............................................................ 7 1.2.4 Web アプリ開発時に考慮すべき Azure の特徴 ............................................................................ 9 第2章 簡単なサンプルを用いた Azure アプリケーションの開発 .................................................................... 11 2.1 開発環境の構築 ............................................................................................................................... 11 2.1.1 Windows 7 Enterprise 評価版のインストールと IIS の追加インストール ................................... 11 2.1.2 Visual Studio 2010 Ultimate 評価版のインストール ................................................................ 12 2.1.3 SQL Server 2008 R2 Management Studio Express のインストール ....................................... 12 2.1.4 Windows Azure Tools for Microsoft Visual Studio ver1.2 のインストール .............................. 13 2.2 ローカルでの Web アプリケーション開発 ............................................................................................ 13 2.2.1 Web アプリケーションプロジェクトの作成 .................................................................................... 13 2.2.2 1 つ目の Web ページの作成 ..................................................................................................... 14 2.2.3 2 つ目の Web ページの作成 ..................................................................................................... 14 2.2.4 ASP.NET 開発サーバー上での動作確認 .................................................................................. 16 2.3 クラウドサービスプロジェクトの追加 .................................................................................................... 17 2.3.1 クラウドサービスプロジェクトの役割 ............................................................................................. 17 2.3.2 クラウドサービスプロジェクトの追加 ............................................................................................. 17 2.3.3 複数の Web アプリケーションを同時に展開する場合 .................................................................. 19 2.3.4 クラウドサービスプロジェクトの構成設定 ..................................................................................... 20 2.4 開発用ファブリック上での動作確認 .................................................................................................... 21 2.4.1 動作確認 .................................................................................................................................. 21 2.4.2 開発用ファブリックのランタイム構成 ............................................................................................ 22 2.4.3 運用環境と比較した開発環境(開発用ファブリック)の特徴 .......................................................... 23 2.4.4 開発用ファブリックへの配置の仕組み ........................................................................................ 26 2.5 Diagnostic Monitor によるアプリケーション監視 ............................................................................... 27 2.5.1 Diagnostic Monitor とは ......................................................................................................... 28 2.5.2 Azure ストレージ側の事前準備 ................................................................................................. 29 2.5.3 収集するログファイルに関する設定方法 ..................................................................................... 31 2.5.4 ログファイルの確認方法 ............................................................................................................ 34 第3章 Windows Azure 運用環境への展開 ............................................................................................. 37 3.1 Windows Azure の購入................................................................................................................... 37 3.1.1 Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録........................... 37 3.1.2 Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買 ...................... 39 3.1.3 Step 3 - Azure のアクティブ化 ............................................................................................. 43 3.2 各種サービスの初期設定と Windows Azure API Certificate の登録 ............................................... 47 3.2.1 SQL Azure データベースサービスの初期設定 .......................................................................... 47 3.2.2 Windows Azure ストレージサービスの初期設定 ....................................................................... 51 3.2.3 Windows Azure コンピュートサービスの初期設定 ..................................................................... 55 3.2.4 API Certificate の登録 ............................................................................................................ 58 3.3 SQL Azure データベースサービスへの移行 ..................................................................................... 61 p.3 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 3. 3.3.1 SQL Server Management Studio からの接続........................................................................ 61 3.3.2 テーブルの作成 ........................................................................................................................ 62 3.3.3 データの移行 ............................................................................................................................ 63 3.3.4 アプリケーションの接続文字列を変更......................................................................................... 64 3.3.5 動作確認 .................................................................................................................................. 64 3.4 Windows Azure ストレージサービスへの移行 ................................................................................... 65 3.4.1 ストレージ接続文字列の設定 ..................................................................................................... 65 3.4.2 Blob コンテナ・テーブルの作成 ................................................................................................. 66 3.5 Windows Azure コンピュートサービスへの移行 ................................................................................ 68 3.5.1 インスタンス数の変更 ................................................................................................................ 68 3.5.2 クラウドサービスのパッケージングと Azure 上への配置 .............................................................. 69 3.5.3 Windows Azure コンピュートサービスの動作確認 ..................................................................... 72 3.6 アプリケーションの修正と Azure 環境への再配置 .............................................................................. 73 3.6.1 開発用ファブリックと本番環境の相違点 ...................................................................................... 73 3.6.2 アプリケーションの修正 .............................................................................................................. 74 3.6.3 アップグレード ........................................................................................................................... 74 3.6.4 解決されない問題 ..................................................................................................................... 76 3.6.5 構成設定の変更 ....................................................................................................................... 77 3.6.6 本番環境への展開 .................................................................................................................... 78 3.6.7 サービスの停止 ......................................................................................................................... 80 3.6.8 アカウントの削除 ....................................................................................................................... 80 第4章 Windows Azure 運用環境における課金 ....................................................................................... 81 4.1 Windows Azure 運用環境における課金を安く抑える方法 ................................................................ 81 4.1.1 トラフィックの課金 ...................................................................................................................... 81 4.1.2 Windows Azure コンピュートサービスの課金 ............................................................................ 82 4.1.3 Windows Azure ストレージサービスの課金 ............................................................................... 83 4.1.4 SQL Azure データベースサービスの課金 ................................................................................. 84 4.1.5 課金状況の確認 ....................................................................................................................... 84 4.1.6 課金の予測............................................................................................................................... 85 本書の利用条件: 本書に関するすべての権利は、マイクロソフト コーポレーション (以下、マイクロソフト) が保有しています。マイク ロソフトまたはその関連会社による事前の承諾がない限り、本書の全部または一部を複製 (電子装置等への保存・保管 を含む)、改変、翻案、再頒布、公衆送信、貸与、譲渡することは一切認められません。 マイクロソフトおよびその関連会社は、本書の内容について何ら保証するものではなく、本書の使用に関連してお客様 または第三者に生ずる間接的、付随的、結果的な損害 (営業機会や営業情報の損失などを含む) について一切責任を負 いません。 本書の中で例として使用されている企業、名前およびデータは、特に記述が無い限り架空のものです。 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan p.4 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 4. 第1章 はじめに 1.1 本書の目的と前提条件 本ガイドは、Windows Azure Platform について実際にご自身の手で開発を体験いただくためのチュートリアル ガイドとなっております。Windows Azure と SQL Azure を使った、サンプル Web アプリケーションを Azure 用のア プリケーションにカスタマイズし、実際にデプロイするまでを、順を追って解説していきます。 本ガイドでは ASP.NET、SQL Server などに関する、基本的な開発スキルを前提として解説していきます。もし、こ れらに不安がある場合には、まず ASP.NET や SQL Server に関する書籍を学習した上で、本ガイドをご参照くださ い。 1.2 Windows Azure Platform 概要 Azure 用アプリケーションを開発する前に、本章で Windows Azure Platform とはどのようなサービスかおさらい し、次章から Azure 用アプリケーションを開発していきます。 ・ クラウドコンピューティングとは(1.2.1) ・ マイクロソフトのクラウドコンピューティングの全体像(1.2.2) ・ Azure 用アプリケーション開発時に利用する主要サービス(1.2.3) ・ Azure 用アプリケーション開発時の基本的な注意点(1.2.4) 1.2.1 クラウドコンピューティングとは Azure は Microsoft が提供しているクラウドコンピューティングサービスの1つです。クラウドコンピューティング とは、ネットワークを介して提供される「サービス」を利用する形態のことを言います。 クラウドコンピューティングの大きな特徴は、低水準のハード構成やソフトウエアを意識する必要がないということ です。従来のコンピューティングシステムは、インフラ、アプリ、運用のすべてを自社で賄う必要がありました(これ をオンプレミスと言います)。クラウドコンピューティングでは、これらすべて、または一部を、他社に任せることがで きるようになります。ハード、ミドル、およびアプリの、どこの層まで他社に任せるかで、クラウドを分類することがで きます。 ・ IaaS ・・・ ハード部分のみ他社に任せてしまう ・ PaaS ・・・ インフラ部分(ハードおよびミドル)のみ他社に任せてしまう ・ SaaS ・・・ ハード、ミドルおよびアプリまで全て他社に任せてしまう p.5 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 5. コンピューティングシステムの全部または一部を他社に任せると、その部分の構築や保守、運用などについて 考える必要がなくなります。そのため、クラウドコンピューティングを活用すると、当該企業が本当に注力したい部 分にのみ、ビジネスリソースを割くことができるようになります。 1.2.2 マイクロソフトのクラウドコンピューティングの全体像 最適なクラウドコンピューティングは、ユーザー企業ごとに異なります。例えば、メールサーバーを例にとります。 メールサーバーの運用などをしたくない中小企業は SaaS が最適です。しかし、セキュリティポリシー上、メールを 社外に出せない企業は、オンプレミスが最適です。このため、マイクロソフトでは、オンプレミス型とクラウド型の 2 通りのシナリオを提供しています。 Windows Azure Platform は、マイクロソフトの PaaS 型のクラウドサービスです。自社開発アプリケーションを 載せるプラットフォームとして Windows Azure Platform を見た場合には、以下のような特徴があります。 ・ .NET Framework や Visual Studio を使った開発ができる ・ 煩わしいハードウェアやミドルウエア運用から解放される ・ 利用に応じた課金がなされる p.6 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 6. 1.2.3 Azure 用アプリケーション開発時に利用する主要サービス Azure 用アプリケーションを開発する場合には、主に以下 3 つのサービスを利用します。 ・ Windows Azure コンピュートサービス(以下、コンピュートサービス) ・ Windows Azure ストレージサービス(以下、ストレージサービス) ・ SQL Azure データベースサービス(以下、データベースサービス) これらの概要について簡単に解説していきます。 A. Windows Azure コンピュートサービス コンピュートサービスは、カスタムアプリケーションのホスティングサービスです。Windows Server OS のベ ースイメージが提供され、そこにカスタムアプリケーションを載せて実行することができます。コンピュートサー ビスには、大別して 2 種類の OS ベースイメージがあります。 a. Web Role サーバー 主に Web アプリケーションをホストするためのサーバーです。IIS が搭載されています。 b. Worker Role サーバー 主にバッチアプリケーションを動作させるためのサーバーです。IIS が搭載されていません。 これらの OS ベースイメージにアプリケーションをインストールし、実行させて使用します。 B. Windows Azure ストレージサービス Azure 上で動作するアプリケーションやサービスは、セキュリティ確保のため、基本的にローカルのファイル システムに書き込むことができません。それに代わるものとして、データ保存用に提供されているのが、ストレ ージサービスです。ストレージに格納できるデータ構造として、3 種類のデータ構造(Blob, Table, Queue)が p.7 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 7. 定義されており、そのデータ構造ごとに 3 種類のストレージがあります。それぞれのストレージには URI が付い ていて、HTTP-REST プロトコル1によるアクセスができるようになっています。 種類 データ 用途 URI BLOB バイナリ 巨大バイナリデータを種類問わずに格納でき http://<アカウント名 ストレージ データ るストレージになっています。そのため、マル >.blob.core.windows.net/<コンテナ名 チメディア系のファイル >/<Blob 名> (.wmv、.wav、.mp3、.jpg など)や巨大なデータ ファイル(.vhd、.zip など)などの格納に最適で す。 Table Key-Value プロパティ値のみを持つようなオブジェクトを、 http://<アカウント名 ストレージ データ 二つのキーにより一意化し、分散保有する設 >.table.core.windows.net/<Table 名 計になっています。そのため、キーを上手に >?$filter=<Blob 名> 設計することにより、巨大なデータ検索処理を 効率よく実行することができるようになります。 Queue メッセージキュー Web/Worker Role サーバー間の通信には http://<アカウント名 ストレージ データ HTTP または TCP による直接型通信を行いま >.queue.core.windows.net/<Queue 名 す。この通信を非同期で行いたい場合にのみ > Queue ストレージを使用します。 C. SQL Azure データベースサービス SQL Azure データベースサービスは、インターネット上で利用できる SQL Server データベースです。 TDS プロトコルを直接受けつけることができるため、通常の SQL Server とほぼ同一の開発ツールや管理ツ ールを利用できます。しかし、完全に SQL Server と同じというわけではなく、SQL Server に対していくつか のカスタマイズと、制限事項を加えて作られています。 a. 制限事項 ・ 容量の上限が 50GB と低い b. メリット ・ 内部でレプリケーションによるデータの多重保持が行われており、サービス可用性 99.9%が保証さ れている ・ カスタムアプリケーションのインフラとして見た場合、SQL Server の細かいサーバー運用に、気を 払わずに使うことができる 1 REST(Representational State Transfer)とは、HTTP のメソッドヘッダー上にデータアクセスのための命令(Post、Get、Put、 Delete)を記述することでリソースにアクセスできるように設計されたプロトコルのことです。 p.8 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 8. 1.2.4 Web アプリ開発時に考慮すべき Azure の特徴 通常(オンプレミス用)の Web アプリケーション開発と比較して、Azure 用の Web アプリケーション開発には、 PaaS アプリケーション開発特有の特徴があります。具体的には、オンプレミス型の開発とは異なり、ハードやミド ルなどの、インフラに関わる設定や運用を、ほとんど考えなくて済むという利点があります。しかしその半面、Web サーバーや DB サーバーの設定やバージョンを自由に決めることができない、または変更できないなどの注意点 があります。また、配置するアプリケーションそのものにも、ローカル HDD やレジストリへの書き込みができない、 複数の Web アプリを同一サーバー上に配置できないなどの制限事項があります。 具体的な制限事項・注意事項として、最初に知っておくべきものに、以下のようなものがあります。オンプレミスと 比べ、こうした注意事項や制限事項が多いため、きちんと理解した上で、開発を進める必要があります。 また、Windows Azure Platform は、リソースを共用するタイプの画一的なプラットフォームであることも忘れて はいけません。詳細はここでは解説しませんが、下図に示すように、コンピュートサービスにしろ、SQL Azure にし ろ、複数のユーザーがひとつのハードウェア筐体を共有する形式を取っており、またサービスレベルも画一的なも のとなります。オンプレミスであれば、単一のアプリケーションが全ハードウェアリソースを占有することも、また 99.999%のような超高可用性を目指すことも自由ですが、クラウドサービスではこのような自由がありません。 p.9 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 9. このような背景から、Azure に適したアプリケーションと不向きなアプリケーションとがあります。 A. Azure に適しているアプリケーション ・ 一般的なインターネットアプリケーション ・ トラフィックが時期や時間帯により、大きく変動するアプリケーション ・ ASP サービスとして展開しているアプリケーション ・ 自社でインフラを持たないソフトウエア会社が、開発するアプリケーション B. Azure に不向きなアプリケーション ・ セキュリティポリシー上、社外に持ち出すことのできないデータを取り扱っているイントラネットアプリケー ション ・ Azure の SLA では不十分な、ミッションクリティカルシステム ・ SP や QFE などの、ソフトウェアバージョンを固定したいアプリケーション 全てのアプリケーションが、Azure に適しているというわけではないということにご注意ください。このような注意 点を理解した上で、Azure 用のアプリケーションを開発する必要があります。 p.10 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 10. 第2章 簡単なサンプルを用いた Azure アプリケーションの開発 それでは、Azure 用のアプリケーションを開発していきましょう。 2.1 開発環境の構築 Windows Azure 上で動作するアプリケーションを開発するためには、Windows Azure 用の SDK が必要となりま す。本ガイドでは、Windows Azure SDK 1.2 を用いて開発するため、以下のような環境をセットアップする必要があ ります。なお、以下は全て一般に入手可能な評価版、またはフリーのツールになっています。 種類 製品 OS Windows 7 Enterprise 評価版 開発ツール Visual Studio 2010 Ultimate 試用版 Management Studio Microsoft SQL Server 2008 R2 RTM - Management Studio Express その他 Windows Azure Tools for Microsoft Visual Studio ver1.2 以下の手順で環境をセットアップします。 2.1.1 Windows 7 Enterprise 評価版のインストールと IIS の追加インストール Windows Azure SDK 1.2 に対応する OS は、2010 年 6 月 25 日時点で以下の 4 つとなります。Visual Studio 自体は Windows XP や Windows Server 2003 でも動作しますが、Windows Azure SDK が対応していないた め、Windows XP などでは Window Azure 上で動作するアプリケーションを開発することはできません。 ・ Windows Vista SP 1 以降 ・ Windows 7 ・ Windows Server 2008 ・ Windows Server 2008 R2 今回は「Windows 7 Enterprise 評価版」をインストールします。以下のリンクから ISO ファイルをダウンロード し、ご自分の端末にインストールしてください。 ダウンロードサイト http://technet.microsoft.com/ja-jp/evalcenter/cc442495.aspx Windows Azure SDK を使用するためには、IIS 7.0 以上のインストールと、オプションとして [ASP.NET] と [WCF HTTP Activation] の有効化が必要となります。以下の手順で追加インストールしてください。 ・ コントロールパネルの [プログラムと機能] を開き、左端のペインから [Windows 機能の有効化または無 効化] を選択します ・ ツリービューの [インターネットインフォメーションサービス] をチェックします ・ 「インターネットインフォメーションサービス」を展開し、「ASP.NET」をチェックしてください ・ また、「Microsoft .NET Framework 3.5.1」を展開し、「Windows Communication Foundation HTTP Activation」をクリックしてください p.11 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 11. これで IIS の追加インストールは終了となります。 2.1.2 Visual Studio 2010 Ultimate 評価版のインストール 次に開発ツールをインストールします。Windows Azure SDK 1.2 は、Visual Studio 2008 SP1 にも対応して いますが、今回は Visual Studio 2010 Ultimate 試用版を用いて開発します2。以下のリンクからダウンロードし、 インストールしてください。なお、インストール時にはすべてデフォルトのオプションを利用してください。 ダウンロードサイト http://www.microsoft.com/downloads/details.aspx?FamilyID=06a32b1c-80e9-41df-ba0c-79d56cb823f7&displaylang=ja 2.1.3 SQL Server 2008 R2 Management Studio Express のインストール 次に SQL Server Management Studio をインストールします。Management Studio を利用すると、データ ベースサービスを管理できます。以下のリンクよりダウンロードし、インストールしてください。なお、インストール時 にはすべてデフォルトのオプションを利用してください。 ダウンロードサイト http://www.microsoft.com/downloads/details.aspx?familyid=56AD557C-03E6-4369-9C1D-E81B33D8026B&displaylang=ja 2 (参考) Visual Studio 2008 SP1 に Windows Azure SDK 1.2 をインストールして開発する場合、Windows Azure SDK 1.2 のすべ ての機能を使うことができません。このため、Visual Studio に関しては、2010 を利用することを推奨します。 p.12 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 12. 2.1.4 Windows Azure Tools for Microsoft Visual Studio ver1.2 のインストール 最後に、Visual Studio 用の Windows Azure アプリケーション開発ツールキットをインストールします。今回は、 2010 年 6 月 25 日時点において最新版の、Windows Azure SDK 1.2 を含む、Windows Azure Tools for Microsoft Visual Studio ver 1.2 をインストールします。以下のリンクよりダウンロードし、インストールしてくださ い。 ダウンロードサイト http://www.microsoft.com/downloads/details.aspx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&displaylang=en インストールすると、同時に SDK もインストールされます。そして、Visual Studio で Cloud Service のプロジェ クトテンプレートが追加され、Windows Azure 上で動作するアプリケーションの開発が可能となります。 2.2 ローカルでの Web アプリケーション開発 さて、いよいよ Windows Azure 用のアプリケーションを開発していきます。オンプレミス型のアプリケーションを Azure 上へ移行するというシナリオも想定し、今回は、まずローカルで通常の Web アプリケーションを開発し(本章)、 それを Windows Azure 上へ展開する(次章)、という流れで作業を進めていきます。 2.2.1 Web アプリケーションプロジェクトの作成 まず、新規に.NET Framework 4.0 で [ASP.NET 空の Web アプリケーション] プロジェクトテンプレートから プロジェクトを作成します。[ASP.NET Web アプリケーション] というプロジェクトテンプレートもありますが、こちら ですと、必要のないモジュールまで含まれてしまいます。そのため、今回は Web.config のみを含む [ASP.NET 空の Web アプリケーション] プロジェクトテンプレートから作成します。 今回はサンプルとして、①一般的な Web ページと、②データベース入出力を行う Web ページの 2 つを作成し ます。 p.13 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 13. 2.2.2 1 つ目の Web ページの作成 まず、Web プロジェクトに [Web フォーム] テンプレートから、1 つ目の Web ページ(WebForm1.aspx)ページ を追加します。そして、以下のような画面とロジックを作成してください。 2.2.3 2 つ目の Web ページの作成 次に、2 つ目の Web ページを作成します。 A. データベースの追加 Web プロジェクトにデータベースファイルを追加します。以下の URL からサンプルデータベースをダウンロ ードし、インストールウィザードに従いインストールしてください。 p.14 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 14. ダウンロードサイト http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en インストールすると、C ドライブの ”SQL Server 2000 Sample Databases” フォルダに NORTHWND デ ータベースと PUBS データベースの 2 つが作成されます。今回は PUBS データベースを使用しますので、 Web プロジェクトに App_Data フォルダを追加し、さらにその App_Data フォルダに PUBS.MDF ファイルを 追加してください3。 B. テーブルの一覧表示をする Web ページの作成 次に、Web プロジェクトに 2 つ目の Web ページ(WebForm2.aspx)を追加してください。そして、 SqlDataSource と GridView を用いて、authors テーブルを一覧表示するプリケーションを作成してください (サーバーエクスプローラーから authors テーブルをドラッグ&ドロップすると簡単に作成できます)。 3 App_Data フォルダは [追加] → [新しいフォルダ] から”App_Data”を指定して追加できます。pubs.mdf ファイルは App_Data フォル ダにドラックアンドドロップすることで追加できます。 p.15 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 15. 2.2.4 ASP.NET 開発サーバー上での動作確認 以上の作業が終了したら、Ctrl + F5 キーでアプリケーションを起動し、実行してください。すると、ASP.NET 開 発サーバーが起動し、下図のようにアプリケーションが動作します。 p.16 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 16. 2.3 クラウドサービスプロジェクトの追加 それでは引き続き、このアプリケーションを Azure 用(Web Role サーバー用)に修正していきます。 2.3.1 クラウドサービスプロジェクトの役割 Window Azure Tools(開発ツールキット)によりインストールされるクラウドサービスプロジェクトは、簡単に言う と、以下の 2 つの作業を行うためのプロジェクトです。 ・ 開発用 PC の中で、開発用ファブリック(Windows Azure エミュレータ)を起動し、その上でアプリケーシ ョンを実行・デバッグする ・ 作成したアプリケーションのファイルを、Windows Azure 本番環境へアップロードできるようにパッケージ 化する 後者は次章で解説しますので、前者についてこれから解説していきます。 2.3.2 クラウドサービスプロジェクトの追加 まず、Visual Studio のソリューションファイルに対して、クラウドサービスプロジェクトを追加します。そして、先 ほど作成した Web アプリケーションプロジェクトを追加し、Web アプリケーションが Windows Azure 上に展開さ れるようにします。具体的には以下のようにします。 A. プロジェクトの追加 ・ ソリューションに対して、[Windows Azure Cloud Service] プロジェクトを追加する。 p.17 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 17. 次の [New Cloud Service Project] の画面で、何も選択せずに [OK] ボタンをクリックする。  先ほど作成した Web アプリケーションプロジェクトを追加するため、ここでは何も選択しません。 B. Roles へのプロジェクトの追加 次に、追加したクラウドサービスプロジェクトへ、Web Role として、先程作成した Web アプリケーションを追 加します。具体的な追加手順は、以下のようになります。 ・ クラウドサービスプロジェクト内の [Roles] フォルダを右クリックし、[Add] → [Web Role Project in solution…] をクリックする ・ 追加するプロジェクトとしては、先ほど作成した [WebApplication1] プロジェクトを指定する p.18 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 18. 以上の作業により、[Roles] フォルダの中に、[WebApplication1] プロジェクトが追加されます。これにより、こ の [WebApplication1] プロジェクトが Web ロールサーバー上に展開され、実行されるようになります。 2.3.3 複数の Web アプリケーションを同時に展開する場合 1 つの Web ロールサーバー上には、1 つの Web アプリケーションのみが展開(インストール)可能です。複数 の Web アプリケーションを、同一の Web ロールサーバー上に展開して実行することはできません。複数の Web アプリケーションを同時に展開したい場合には、下図のように、複数の Web ロールサーバーを使用する必要があ ります4。 4 ひとつの Web アプリケーションにまとめ直して、Web Role サーバー上に展開するという方法もあります。 p.19 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 19. 2.3.4 クラウドサービスプロジェクトの構成設定 次に、各ロール(サーバー)の構成設定を行います。クラウドサービスプロジェクトの [Roles] 下にある各ロール をダブルクリックすると、構成設定画面が現れます。こちらを使うと、以下のような項目が設定できます。 ・ 利用する仮想マシン(VM)のサイズ(仮想マシンに割り当てる CPU やメモリリソースのサイズ) ・ 利用する仮想マシンのインスタンス数 ・ CAS(Code Access Security)の設定 ・ 利用する通信の種類(エンドポイントの定義) 構成設定画面から構成設定を修正すると、その設定は “ServiceConfiguration.cscfg” と “ServiceDefinition.csdef” の 2 つの XML ファイルに反映されます5。 5 直接 XML ファイルを修正することもできます。 p.20 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 20. ここでは、もっとも簡単な設定として、[WebApplication1] プロジェクトを動作させる仮想マシンを、3 つに変更 しておきます6。 2.4 開発用ファブリック上での動作確認 ここまで設定が終了したら、いよいよ Windows Azure エミュレータ上で、このアプリケーションを動作させてみましょ う。 2.4.1 動作確認 [CloudService1] プロジェクトをスタートアッププロジェクトに変更し、Ctrl + F5 キーで実行します。その際、サ ーバーエクスプローラーが PUBS.MDF を握っていると、エラーが発生するため、デタッチしてから実行してくださ い。すると、タスクトレイ上に “Development Fabric” と呼ばれる Azure エミュレータ環境が起動し、この中でア プリケーションが起動します。 一見すると、先ほどと変わりなく動作しているように見えますが、実際にはかなり異なる環境で Web アプリケーシ ョンが動作しています。これについて以下に解説します。 6 (注意)実際の運用環境に配置する場合には、インスタンス数や仮想マシンのサイズをむやみに引き上げないようにしてください。むやみ に引き上げると、その分だけ課金が増えることになります。 p.21 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 21. 2.4.2 開発用ファブリックのランタイム構成 最終的な運用環境では、このアプリケーションは、ファブリックコントローラ 7によってコンピュートサービスのイン フラ上に展開され、複数の仮想マシン(VM、Virtual Machine)が起動します8。 通常、IIS 7 ではワーカープロセスとして w3wp.exe が利用されます。しかし、コンピュートサービスでは、専用 のワーカープロセスとして WaWebHost.exe というものが用意されており、アプリケーションを展開すると、この WaWebHost.exe が起動します。この WaWebHost.exe には、以下のような特徴があります。 ・ IIS 7 のモジュールをロードして動作するため、内部動作は w3wp.exe とほぼ同じ ・ 内部では、ASP.NET ランタイムが統合パイプラインモードで動作 運用環境では、複数の仮想マシンが展開され、1 仮想マシン(サーバ)あたり 1 ワーカープロセスが起動します。 これに対して、開発環境(開発用ファブリック)では、運用環境で利用される VM と同じ数のホストプロセス (WaWebHost.exe)が、ローカルコンピューター内で起動します。これにより、運用環境をエミュレーションするよう になっています。 7 コンピュートサービス全体を管理している制御コンピュータ群のことです。 8 わかりやすくするため、下図では各サーバーを物理マシンとしてイラストを描いていますが、実際には仮想マシンとして Azure 環境に展 開されます。 p.22 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 22. 2.4.3 運用環境と比較した開発環境(開発用ファブリック)の特徴 この開発環境におけるエミュレーション動作を運用環境の動作と比較すると、以下のような特徴があります。 A. ワーカープロセス ・ 開発用ファブリックでは、運用環境と同一のワーカープロセスが複数個使用されます。  開発用ファブリックでは、1 つのコンピュータ内で、複数のロール、複数の仮想マシンをまとめて エミュレーションする必要があります。  このため、開発用マシンの中では、複数の WaWebHost.exe(Worker ロールを使っている場合 には WaWorkerHost.exe)が起動する形になります。 ・ ワーカープロセスは比較的軽量ですが、沢山の VM を利用すれば、それなりにマシンリソース(特にメ モリ)を消費します。  そのため、開発環境ではあまり大量のインスタンスを起動しないよう、ご注意ください。 ・ 開発環境と運用環境で利用されるワーカープロセスはほぼ同じですが、開発環境では 32 ビット版が、 運用環境では 64 ビット版が利用されます。  .NET のみでアプリケーションを開発している際には問題になりませんが、Unmanaged Code を 利用している場合にはご注意ください。 B. ロードバランサ ・ 運用環境と同様、クライアントブラウザからのリクエストをロードバランサがルーティングします。  ワーカープロセスは、クライアントブラウザからのリクエストを直接受け付けるわけではありません。 いったん、ロードバランサのエミュレータである DFloadbalancer.exe がリクエストを受け付け、そ れが各ワーカープロセスにルーティングされる、という仕組みになっています。  これは運用環境でも同様で、リクエストは一旦ロードバランサが受け付け、それが各マシンにル ーティングされる形になります。 p.23 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 23. C. ポート番号 ・ 開発環境では、運用環境とはロードバランサからのリクエストのルーティング方法が異なります。  上図を見てわかる通り、運用環境では、各 VM マシンに対して、プライベート IP アドレスと、乱数 によるポートが定められ、フロントエンドのロードバランサからのリクエストがルーティングされま す。  これに対して開発用ファブリック(開発環境)では、各ワーカープロセスに対して乱数によるポート が定められ、フロントエンドのロードバランサからリクエストがルーティングされます。 ・ ポート番号は、運用環境で利用する予定のポート番号とはずれてしまうことがあるのでご注意ください。  例えば、このサンプルアプリケーションを動作させると、ブラウザはポート番号 81 上でこのアプリ ケーションを呼び出します。  これは、開発マシン上では、すでにポート番号 80 が IIS 7.5 にアサインされているため、使用で きないからです。  このため、DFloadbalancer.exe は 80 の代わりに 81(次の空きポート)を利用し、これをリスンす る、という形になっています。 p.24 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 24. さて、このままだと、このアプリケーションが実際にどのワーカープロセスで処理されているのかがわかりませ ん。そこで、このアプリケーションの WebForm1.aspx.cs ファイルに以下のような修正を加えてください。 ・ Microsoft.WindowsAzure.ServiceRuntime への参照設定の追加 ・ using キーワードの追加(using Microsoft.WindowsAzure.ServiceRuntime; ) ・ Page_Load() メソッド内への、インスタンス番号を解決して表示するロジックの追加(Label3.Text = RoleEnvironment.CurrentRoleInstance.Id;) 以上を行った上で、再度 Ctrl + F5 キーにより実行すると、Web 画面上にサーバーID が表示されるように なります。この状態で、リロードやポストバックなどを繰り返していると、ロードバランス機能により、複数のサー バー(ワーカプロセス)に分散処理されることがわかります9。 9 リロードやポストバックだけでは別サーバインスタンスに振りなおされないケースもあります。その場合には、別の Web ブラウザを起動する などしてご確認ください。 p.25 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 25. 2.4.4 開発用ファブリックへの配置の仕組み では次に、この開発用ファブリックの動作の仕組みについて、もう尐し詳しく解説します。まず、タスクトレイの [Windows Azure Simulation Environment] のアイコンを右クリックし、メニューから [Show Development Fabric UI] を選択してください。これにより、開発用ファブリックの UI が表示されます。 前述したように、Visual Studio からクラウドサービスプロジェクトを実行すると、開発用ファブリックが動作し、そ の上でアプリケーションが動作します。この動作については、以下の点を押さえておくとよいでしょう。 A. 開発用ファブリックへのアプリケーション展開 ・ Visual Studio からクラウドプロジェクトを実行すると、開発用ファブリック上にアプリケーションが展開さ れます。この作業を「配置」と呼びます。 ・ 配置の際には、一意の配置 ID(Deployment ID)が採番されるようになっています。ちなみに配置 ID は、開発環境と運用環境では全くフォーマットが異なります。  開発環境 → “deployment(21)” のように、一意連番が振られる。  運用環境 → “6f4d99b8b339413ea3dac24ce71929af” のように、ランダムな GUID 値が振 られる B. ロールインスタンスごとのフォルダ分け ・ 開発環境では、ローカルマシンの特殊なフォルダにアプリケーションが展開されます。  例えば上記のアプリケーションの場合、”WebApplication1” ロールのインスタンス#0 のアプリ p.26 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 26. ー シ ョ ン は 、 ” C:¥Users¥nakama¥AppData¥Local¥dftmp¥s0¥deployment(21)¥res¥deployment(2 1).CloudService1.WebApplication1.0” というパスの下側に、アプリケーションが展開されて 動作しています(このような動作は、ASP.NET 開発サーバーによる動作とは全く異なります)。  また、このフォルダの下側には、実際に利用する Web アプリケーションの他に、ASP.NET テン ポラリファイル、IIS ログ、Diagnostic Monitor によるログファイル、IIS 圧縮キャッシュなど 様々なデータが、ロールインスタンス(=運用環境における仮想マシン)ごとに保存されるように なっています。(このフォルダは、下図のように Development Fabric UI から選択すると、簡単 に開くことができます。) C. ワーカープロセスのモニタリング ・ 各ワーカープロセスの状況を、上図のツールからモニタできます。  このツールは、コンソール出力をモニタできるようになっているので、Diagnostic トレースなどを 簡単に見たりすることができるようになっています。また、サービスの停止や、配置したアプリケー ションの除去などもこのツール上からできるようになっています。  ただし、このツールから得られる各サーバ(各ロールインスタンス)の情報については、非常に限 られています。また、運用環境ではこのモニタツールを使用できません。例えば、CPU 稼働率 やメモリ利用率の監視、IIS ログの確認などといった内容については、このツールからでは確認 できません。これらに関しては、次に述べる Diagnostic Monitor による監視が必要になりま す。 以上で、基本的な開発用ファブリックの利用方法に関しては終わりです。引き続き、これらのサーバーをモニタリン グする機能を追加していきます。 2.5 Diagnostic Monitor によるアプリケーション監視 サーバーをモニタリングするためのツールである、Diagnostic Monitor を使用したアプリケーション監視の方法に ついて説明します。 p.27 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 27. 2.5.1 Diagnostic Monitor とは コンピュートサービス内の各仮想マシンには、Diagnostic Monitor ランタイムと呼ばれるサービスがインストー ルされています。このサービスは、イベントログやパフォーマンスログ、フラットファイルなどを定期的に監視・デー タ収集し、ストレージサービスへと転送するようになっています。このサービスが存在するため、各アプリケーション からは直接ストレージサービスへデータを書き込む必要はなく、従来通り、イベントログやパフォーマンスログなど に、データを出力しているだけで済むようになっています。 Diagnostic Monitor ランタイムでは、様々なログデータを転送できるようになっていると説明しましたが、実際 には尐し注意が必要です。Diagnostic Monitor ランタイムのドキュメント類を参照すると、以下のようなログファイ ルが転送できると示されています。 しかしこの転送は、転送先が Table ストレージになっているものと、Blob ストレージになっているものとで、以下 のように仕組みが大きく異なります。このため、注意が必要です。 転送先のストレージの種類 転送の仕組み Table ストレージ ログファイルは、構造を持ったテーブルデータとして、特定の Table ストレージに転送・追記され る。 Blob ストレージ ログファイルは、バイナリファイルとして Blob ストレージに転送・保存される。 p.28 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 28. つまり、トレースログやパフォーマンスカウンタのデータは、スキーマを持ったデータとして Table ストレージに 分解・整理・転送されますが、IIS ログファイルや FREB ログファイルなどは、ただのバイナリファイルとして Blob ストレージに転送される、という形になっています。このため、データ取得後のデータの取り出し方などが異なって きますので注意してください。詳細は後程解説します。 さて、Diagnostic Monitor を使うためには、以下の作業が必要になります。 ・ Azure ストレージ側の事前準備(2.5.2) ・ 収集するログファイルに関する設定方法(2.5.3) ・ ログファイルの確認方法(2.5.4) 以下に、これらについて順に解説していきます。 2.5.2 Azure ストレージ側の事前準備 まず、Azure ストレージ側に、データを格納するための Blob コンテナや Table ストレージを作成します。データ 転送先となる Blob や Table の名称の多くは固定的に定められていますので、以下のような名称でコンテナやテ ーブルを作成します。 具体的な作業手順は、以下のようになります。 A. 開発用ストレージサービスの起動 タスクトレイの [Windows Azure Simulation Environment] を右クリックし、[Start Development Storage service] を選択して開発用ストレージサービスを起動します10。 10 (参考) この開発用ストレージサービスは、内部的には SQL Server Express Edition のファイルアタッチデータベースを利用してい るため、SQL Server Express Edition がインストールされていないとうまく起動しません。また、開発用ストレージにゴミがたまってしまっ た場合には、”Show Development Storage UI” から Reset ボタンを押下すると、簡単に初期状態(空の状態)に戻すことができま す。 p.29 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 29. B. Blob コンテナやテーブルの作成 次に、コンテナやテーブルを作成します。作成する際は、以下の 2 通りの方法があります。 ・ ツールを使って、手作業でコンテナやテーブルを作成していく方法 ・ コンソールアプリケーションなどを使って、コンテナやテーブルを作成する方法 どちらの方法でも構いませんが、コンソールアプリケーションを使用すると、以下のような簡単なコードで作 成することが可能です。 以下 2 つの、参照の追加が必要です。 ・ Microsoft.WindowsAzure.ServiceRuntime.dll ・ Microsoft.WindowsAzure.StorageClient.dll using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 開発環境の場合(運用環境の場合には適宜コードを修正) CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount; // 作成するコンテナ、テーブル、キューの名称一覧 string[] containerNamesToCreate = new string[] { "wad-iis-failedreqlogfiles", "wad-iis-logfiles", "wad-crash-dumps" p.30 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 30. }; string[] tableNamesToCreate = new string[] { "WADLogsTable", "WADDiagnosticInfrastructureLogsTable", "WADPerformanceCountersTable", "WADWindowsEventLogsTable", "WADDirectoriesTable" }; string[] queueNamesToCreate = new string[] { }; // コンテナ、テーブル、キューを作成 CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); foreach (string containerName in containerNamesToCreate) { CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName); bool created = blobContainer.CreateIfNotExist(); if (created) Console.WriteLine("{0} : コンテナを作成しました。", containerName); } CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); foreach (string tableName in tableNamesToCreate) { bool result = tableClient.CreateTableIfNotExist(tableName); if (result) Console.WriteLine("{0} : テーブルを作成しました。", tableName); } CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); foreach (string queueName in queueNamesToCreate) { CloudQueue queue = queueClient.GetQueueReference(queueName); bool result = queue.CreateIfNotExist(); if (result) Console.WriteLine("{0} : キューを初期化しました。", queueName); } } } } ストレージの準備ができたら、今度は Web アプリケーションに、ログデータ収集と自動転送を行わせるための設 定コードを追加します。 2.5.3 収集するログファイルに関する設定方法 Diagnostic Monitor による監視を行うためには、以下 2 つの設定が必要です。 ・ データをローカルマシン内で収集させるための設定 ・ それを Azure ストレージに自動転送させるための設定 収集するログの種類ごとに、設定可能な項目が尐しずつ異なりますが、簡単に書くと、以下のような項目が設定 できます。 p.31 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 31. 設定を行うためには、以下の作業を行います。 ・ Web アプリケーションに WebRole.cs という名前のファイルを追加する ・ 参照設定として、Microsoft.WindowsAzure.ServiceRuntime, StorageClient, Diagnostics の 3 つの DLL を追加する ・ using キーワードで、Microsoft.WindowsAzure, StorageClient, ServiceRuntime, Diagnostics の 4 つの名前空間を導入する ・ WebRole.cs クラスを RoleEntryPoint クラスの派生クラスにする ・ OnStart() メソッドに Diagnostic Monitor の初期化処理を実装する OnStart() メソッドについては、以下をご参照ください。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.WindowsAzure.ServiceRuntime; using Microsoft.WindowsAzure.Diagnostics; using Microsoft.WindowsAzure.StorageClient; using Microsoft.WindowsAzure; namespace WebApplication1 { public class WebRole : RoleEntryPoint { public override bool OnStart() { // 構成設定が変更されたらロールインスタンスをリスタートする RoleEnvironment.Changing += (sender, e) => { if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)) e.Cancel = true; }; DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration(); // トレースログ (※ web.config への設定も必要) dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(2); dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Warning; // Diagnostic Monitor ログ dmc.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(2); dmc.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Critical; // イベントログ dmc.WindowsEventLog.DataSources.Add("Application!*"); dmc.WindowsEventLog.DataSources.Add("System!*"); dmc.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(2); p.32 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 32. dmc.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose; // パフォーマンスカウンタ dmc.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration() { CounterSpecifier = @"Processor(_Total)% Processor Time", SampleRate = TimeSpan.FromSeconds(60) }); dmc.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(2); // カスタムファイルログ (※ IIS ログ, FREB ログ, クラッシュダンプは設定済み) dmc.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); // Diagnostic Monitor をスタートさせる DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc); return base.OnStart(); } } } こちらのコードは、基本的に以下 2 つの条件を指定しています。 ・ データ収集に関する条件 ・ データ自動転送に関する条件 大まかに言うと、デ ー タ転送に関する条 件 を .ScheduledTransferPeriod プ ロ パ テ ィ や.ScheduledTransferLogLevelFiler プロパティにより設定し、その他の.DataSource プロパティなどでデータ 収集条件を設定します。ここでは 2 分間隔でデータ転送する形にしていますが、実際のシステムでは転送間隔は もう尐し長くてもよいでしょう11。 さて、上記のサンプルコードについては、いくつかの注意点があります。要点を説明すると、以下の通りです。 A. .SetConfigurationSettingPublisher() メソッド コードの先頭に書かれている、.SetConfigurationSettingPublisher() メソッドは、サービス構成設定の変 更を動的に追いかけるためのコードです。(しかし、ここではまだ意味が分からないと思います。現段階では 「呪文」だと思っておいていただければ結構です。) B. トレースログ 「 ト レ ー ス ロ グ 」 と 書 か れ て い る の は 、 System.Diagnostics ト レ ー ス ( System.Diagnostics.Trace. WriteLine() な ど の 命 令 に よ り 出 力 さ れ る Win32 ト レ ー ス ロ グ ) で すが 、 こ の 機能を 使 う た め に は 、 web.config ファイルに、以下の記述を追加する必要があります。このコードを追加することにより、Win32 トレ ースログの情報が、Azure の Diagnostic Monitor ランタイムの方に転送され、記録されるようになります。 <?xml version="1.0"?> <configuration> 11 (参考) データの転送間隔については、むやみに短くしないことをおすすめします。これは、転送間隔をむやみに短くすると、それだけ システムに負荷がかかってしまうためです。「仮想マシンがクラッシュするとログデータが吹き飛ぶので、極力転送間隔を短くしておきた い」と考える人もいると思います。しかし、通常のオンプレミスのシステムでも、ローカルマシンに出力されたファイルを監視マシンに吸い 上げる場合、ある程度の時間間隔を置いてチェックおよび吸出しを行っているはずです。それと同様に、あまり短く設定しすぎないことを 推奨します。 p.33 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 33. - - - (前略) - - - <system.diagnostics> <trace> <listeners> <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics" /> </listeners> </trace> </system.diagnostics> - - - (後略) - - - </configuration> C. Diagnostic Monitor ログ 「Diagnostic Monitor ログ」とは、Diagnostic Monitor ランタイム自身から発生するログです。このログに 対しては必ずフィルタリング条件を設定してください(尐なくとも Warning 以上)。 Verbose レベルでデータ 収集を行うと、大量(数秒間に数十エントリ)のデータが出力されてしまいます。基本的には Critical などに 設定しておけば十分でしょう。 D. Diagnostic Monitor ランタイムの起動 最後の DiagnosticMonitor.Start() メソッドによって Diagnostic Monitor ランタイムを起動しています。そ して、このメソッドの第 1 パラメータ(ここでは “DiagnosticsConnectionString”)で、転送先となる Azure スト レージへの接続情報を設定しています。この接続情報は、クラウドサービスプロジェクト側の “Settings” セク ションに設定されており、既定では “UseDevelopmentStorage=true” (開発ストレージにログ情報を転送 する)という設定になっています。(運用環境に持っていく場合には、この設定値を、本番環境の Windows Azure ストレージサービスへの接続文字列に書き換えます。) 以上で設定は完了です。この状態で、アプリケーションを実行してください。そして、これをしばらく使い、その後、 しばらく放置(5 分程度)してみてください。これにより、ログデータが適宜 Azure ストレージに転送されているはず です。 2.5.4 ログファイルの確認方法 最後に、転送されたログファイルを確認してみます。一番手っ取り早い方法は、各種のツール(Windows Azure MMC など)を使って Azure ストレージに接続し、その中を確認する方法です。しかしながら、以下のよう なログファイルダウンロード用のコンソールアプリケーションなどを準備しておく方法も便利です。ここでは、Azure p.34 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 34. ストレージに保存された IIS のログファイルを、ダウンロードするためのコードを以下に示します。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; using System.IO; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { // Diagnostic Monitor のログデータ一括転送 // 開発環境の場合(運用環境の場合には適宜コードを修正) CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount; // 転送先となるローカルパス string localRootPath = @"C:temp" + DateTime.UtcNow.ToString("yyyyMMdd_HHmmss"); bool willFileDelete = true; // 転送したファイルを消すか否か // ① Blob データのダウンロード CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); foreach (string containerName in new string[] { "wad-control-container", "wad-iis-failedreqlogfiles", "wad-iis-logfiles", "wad-crash-dumps" }) { CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName); var blobs = blobContainer.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true }); foreach (var blob in blobs) { CloudBlob cb = blobContainer.GetBlobReference(blob.Uri.AbsoluteUri); string localFilePath = localRootPath + @"Blob" + blob.Uri.PathAndQuery.Replace('/', ''); Console.WriteLine(blob.Uri.AbsoluteUri + " → " + localFilePath); Directory.CreateDirectory(localFilePath.Substring(0, localFilePath.LastIndexOf(''))); cb.DownloadToFile(localFilePath); if (willFileDelete) cb.Delete(); } } } } } このコンソールアプリケーションを実行すると、Azure ストレージに蓄積された IIS ログを、ローカルマシンにダウ ンロードすることができるようになります。ダウンロードしたログを、Excel や各種のログ解析ツールなどに読み込ま せると、分析することができます。 p.35 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 35. ここまでコンピュートサービスの監視方法について解説してきました。これらの説明からわかるように、現時点で は、コンピュートサービスの監視 API は、比較的剥き出しのような状態で、残念ながら、使いやすいツール類が充 実しているとは言い難い状況です。3rd party 製ツールとしては Cerebrata 社の Azure Diagnostics Manager などのツールが出てきていますが、コンピュートサービスの監視については、今しばらくは手作業で行う必要があ ります。ただ、Diagnostic Monitor ランタイムの基本動作やその考え方については、今のうちにきっちり理解して おいた方がいいため、一度触ってみることを推奨します。 p.36 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 36. 第3章 Windows Azure 運用環境への展開 いよいよ本章では、作成した Web アプリケーションを Azure 上へ展開していきます。 まず、展開作業に入る前の Azure を使用するための準備として以下 2 つを行います。 ・ Windows Azure サービスの購入(3.1) ・ 各種サービスの初期化(3.2) Azure を使用する準備が整ったら、次にデータベース、ストレージ、アプリケーションの順番で Azure 上(Staging 環境)へ移行していきます。 ・ SQL Azure データベースサービスへの移行(3.3) ・ Windows Azure ストレージサービスへの移行(3.4) ・ Windows Azure コンピュートサービスへの移行(3.5) そしてアプリケーションの移行が完了したら、最後に本番(Production)環境に展開します(3.6)。 それでは、Windows Azure サービスの購入手順から説明していきます。 3.1 Windows Azure の購入 2010 年 6 月 25 日現在 、Windows Azure Platform サービスでは、初期特別提供プランとして、Azure の 25 時間分の無償使用を含む「Windows Azure Platform 導入特別プラン」が提供されています。今回はこちらを利用 して検証作業を行います。なお、このプランは範囲内での試用は無償ですが、無償枠を超えてサービスを利用すると 従量課金のレートで課金が発生しますのでご注意ください。 Windows Azure Platform 導入特別プラン http://www.microsoft.com/japan/windowsazure/offers/popup.aspx?lang=ja&locale=ja-JP&offer=MS-AZR-0001P 下記手順では、クレジットカード払いによる購入手順を説明します。 ・ Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録 ・ Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買 ・ Step 3 - Azure のアクティブ化 3.1.1 Step 1 - Microsoft Online Services カスタマー ポータル プロファイル登録 実際の Windows Azure の購入は、Microsoft Online Services カスタマーポータルサイト(略称:MOCP)か ら行います。最初の Step では、Microsoft Online Services カスタマー ポータルを使用するためのプロファイル 登録を行います。 p.37 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 37. A. Microsoft Online Services カスタマーポータルへのログイン ・ Internet Explorer で下記 Microsoft Online Services カスタマーポータルにアクセスします。 Microsoft Online Services カスタマーポータル https://mocp.microsoftonline.com/site/default.aspx ・ [サインイン] をクリックすると、Windows Live ID でのログイン画面が表示されますので、Windows Live ID アカウント名 (メール アドレス) とパスワードを入力し、 [Sign in] ボタンをクリックしてくださ い。 B. プロファイルの登録 ・ ログインに成功すると 新規プロファイル登録開始画面が表示されるので、必要な情報を入力します。  既にプロファイル登録済みの場合は、Step 2 にお進みください。 ・ 下記の確認画面が表示されたら、プロファイル情報入力は完了です。 [閉じる] ボタンをクリックしま す。 p.38 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 38. 最初のプロファイル登録が終わると、カスタマーポータルの画面が表示されます。 3.1.2 Step 2 - Microsoft Online Services カスタマー ポータルから Azure の購買 A. 初期特別提供プランの選択 ・ 画面中央の利用可能なサービスから [Windows Azure Platform] の利用可能なサービスの表示リン クをクリックします。  すると、現在利用可能な Azure の購買メニューが表示されます。 p.39 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 39. ここでは [初期特別提供プラン] を選択し、 [今すぐ購入] をクリックします。 ・ 購入の同意事項を確認してチェックボックスを入れ、 [購入手続きへ進む] ボタンをクリックします。 p.40 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 40. B. クレジットカードの登録と注文の確定 ・ 支払い方法の入力画面からクレジットカードの情報を登録します12。 ・ 新しいクレジット カードが選択されていることを確認して [次へ] ボタンをクリックします。 12 このプランは、無償範囲の利用であれば課金が発生しません。しかし、無償範囲枠を超えて利用すると、登録したクレジットカードに課 金が発生します。このため、無償範囲に注意しながら検証作業を進めてください。 p.41 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 41. 必要事項を入力したら、 [次へ] ボタンをクリックします。  すると、オンライン サブスクリプション契約が表示されます。 ・ オンラインサブスクリプション契約をご確認いただき、問題がなければ [次へ] ボタンをクリックします。 以下の 2 点に注意してください。  氏名の署名欄には、上に記載されている文字列の通り入力してください  姓と名の間に半角スペースが必要となりますので注意してください ・ 注文の確認および確定画面が表示されます。内容を確認して [注文の確定] ボタンをクリックします。 p.42 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 42. 確認画面が表示されれば支払い情報の登録は完了です。この画面から引き続き Azure のアクティブ化を 行います。 3.1.3 Step 3 - Azure のアクティブ化 続いて、購入した権利で Azure を利用するための手続きであるアクティブ化を行います。 A. Azure のアクティブ化 ・ 注文完了画面でアクティブ化ボタンをクリックして、サブスクリプション操作画面を表示します。 p.43 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 43. [アクション] のリストから [今すぐアクティブ化] を選択し、[移動] ボタンをクリックします。 ・ サービスのサブスクリプション名を入力し、[次へ] ボタンをクリックします。  サブスクリプション名は Azure で最初のプロジェクトの名称にも使用されます。 p.44 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 44. 続いてサービス管理者の情報を入力します。  すでに入力しているサービス購買の連絡先情報をコピーすることも可能です。  前述のサービス購買者と、ここで解説するサービス管理者との違いは以下の通りです。  企業で利用する場合は、購入手続きを行う部門と、実際にプロジェクトで利用する部門や 担当者が異なる場合がよくあります。  このような場合に備えて、それぞれ個別に指定ができるようになっています。  なお、Azure では、サービス購買者として登録した ユーザーを「アカウントオーナー (Account Owner)」、サービス管理者として登録したユーザーを「サービスアドミニストレ ーター(Service Administrator)」と呼んで区別しています。  アカウントオーナーとサービスアドミニストレータは、後で示す Windows Azure のポータル画面 上では区別して表示されます。 p.45 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 45. 概要画面で入力情報を確認したら、[完了] ボタンをクリックします。 確認完了画面が表示されたら手続きは終了です。 B. 作成されたプロジェクトの確認 完了手続きを終えると、登録に利用した Windows Live ID のアカウント宛に完了メールが届きます。これ で Windows Azure デベロッパー ポータルにアクセスできるようになります。 ・ メールに記載されたデベロッパー ポータルのリンクから [Windows Azure] をクリックして、Windows Azure デベロッパー ポータルにアクセスします(または、https://windows.azure.com/ にアクセスし p.46 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 46. ます)。  新たに先ほど作成したプロジェクトが追加されていることをご確認ください13。 以上で、Azure の購入とアクティブ化のプロセスが終了となります。 3.2 各種サービスの初期設定と Windows Azure API Certificate の登録 Azure の各サービスを利用するためには、各々のサービスで初期設定を行う必要があります。また、Azure をロー カルのツールから遠隔操作するためには、API 証明書(Windows Azure API Certificate)の登録が必要です。 まず各種サービスの初期設定からご説明します。 3.2.1 SQL Azure データベースサービスの初期設定 以下の手順で、データベースサービスを初期設定します A. SQL Azure プロジェクトの作成 ・ まず、ポータルサイト(https://sql.azure.com/)にアクセスします。  https://windows.azure.com/ のサイトの左側タブの中から [SQL Azure] の項目をクリックし ても構いません。 ・ 使用条件を読み、 [Accept] ボタンをクリックします。 13 下図では、PDC08CTP というプロジェクトが存在しますが、これはβ版の頃から利用していた場合のみ表示されます。現在、新規にこの 作業を行った場合には、作成したプロジェクトひとつだけが表示されます。 p.47 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。
  • 47. データベースサービスの管理者アカウントのアカウント名とパスワードを入力し、データベースサーバー の場所を選択します。  ここでは、場所に関しては [Southeast Asia] を選択することを推奨します。 ・ [Create Server] ボタンをクリックしサーバーを作成します。 p.48 © 2010 Microsoft Corporation. All rights reserved. / Microsoft Consulting Services Japan 本書の全部または一部の無断複製・転載及び商用利用等を禁じます。