SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Downloaden Sie, um offline zu lesen
VSUG DAY 2009 Winter
      VSUG DAY 2008 Winter 東京
                     プログラミング
        Windows Azureプログラミング
             ・
        基本の
        基本のキ

VSUG Visual Studio フォーラムリーダー
             酒井 達明
  Microsoft MVP for Solutions Architect




            VSUG DAY 2009.12.5
アジェンダ

•   Windows Azure Platformの変遷
•   Windows Azure Platformを構成するサービス
•   Windows Azureファブリック
•   WebとWorker/2つのロール
•   簡単なAzureアプリケーション
•   ストレージの使い方
•   AppFabricによるサービス連携


               VSUG DAY 2009.12.5
Azure Services Platform


     Azure Services Platform




            VSUG DAY 2009.12.5
Windows Azure Platform


     Windows Azure Platform




 2009年3月
            VSUG DAY 2009.12.5
Windows Azure Platform


     Windows Azure Platform




 2009年7月
            VSUG DAY 2009.12.5
Windows Azure Platform


     Windows Azure Platform




 2009年9月
            VSUG DAY 2009.12.5
Windows Azure Platform


    Windows Azure Platform




 最終的にこれに落
 最終的にこれに落ち着きました☺
    にこれに   きました☺
           VSUG DAY 2009.12.5
Windows Azure Platformのサービス

•
    – クラウドのためのオペレーティングシステム
    – 64bitベースのWindows Server 2008+IIS7
    – .NET, Native C++(64bit), FastCGIアプリを実行
    – 3種のストレージ(Blob,Table,Queue)
      • Blob内に仮想的なNTFSを作成可能(XDrive)
    – ロールベースアーキテクチャ
      • Webロール、Workerロール、VMロール




                  VSUG DAY 2009.12.5
Windows Azure Platformのサービス

•
    – 旧.NET Services
    – 最初は2種のサービスを提供
    – サービスバス
     • 安全にオンプレミス&クラウドのサービスを連携
     • ファイヤーウォールやNATを介した連携も可能
    – アクセスコントロール
     • オンプレミス&クラウドの間でのシングルサインオンを
       実現
     • クレームベースのセキュリティトークンサービス

               VSUG DAY 2009.12.5
Windows Azure Platformのサービス

•
    – 読んで字の如く「SQL Server on the Cloud.」
    – TDS(Tabular Data Stream)をサポート
      •   ADO .NET・・・・・OK!
      •   ODBC・・・・OK!
      •   SQL Client・・・・OK!
      •   SQL CLR・・・・残念!
      •   RESTful・・・残念!(ADO.NET Data Servicesを使って自作可能)
    – 最大10GBのデータ領域を利用可能
      • ちょっと少なくないですか?でも、バージョン1ですから!

    – オブジェクトエクスプローラーも使用可

                      VSUG DAY 2009.12.5
プログラミング
Windows Azureプログラミング




         VSUG DAY 2009.12.5
Windows Azure Fabric

            アプリケーション



             コンピュート     ストレージ

   Config          ファブリック


                                                               AppFabric
                                       Applicatio
                                        Applicatio
                                      アプリケーション
                                          ns
                                           ns                           SQL Service
                                 Windows Azure




                                                 Application
                                                  Application
                                                アプリケーション
                                                         ss

                            Windows         Windows           Windows
                                                                           Clients
                             Server         XP/Vista/7         Mobile
                             VSUG DAY 2009.12.5
2つのロール




     バランス
      ロード
               Web ロール              Worker ロール




                      ストレージ

                       アカウント



         ブロブ           テーブル                キュー




               VSUG DAY 2009.12.5
Web ロール
                           • インターネット経由の
                             リクエストを処理
        インターネット
                           • IIS7 ホスト
                              – ASP.NET / WCF ホスト
                              – SSL サポート
          Web              • In-Bound接続のみ可能
          ロール              • Out-Bound接続なし
 ロード
バランサー                      • Cloud Service プロジェクト


   ストレージ サービス


                  VSUG DAY 2009.12.5
Worker ロール


• バックグラウンド プロセス
• Web ロールからは、キュー
                                          インターネット
  でリクエストを読込む
• In-Bound接続なし
• Out-Bound接続は可能
• Windows Azure Trust Policy               Worker
• Cloud Service プロジェクト                     ロール




                                      ストレージ サービス


                     VSUG DAY 2009.12.5
開発環境の構築

• OS及びVisual Studioの準備
   • Windows Vista SP1以降, Windows Server 2008,
     Windows 7, Windows Server 2008 R2
   • Visual Studio 2008 or Visual Studio 2010
      – (Express Editionでも可)

• SDKおよびツールをダウンロード
 – http://www.azure.com/ へアクセス
 – 「Get Tools & SDK」をクリック
 – ダウンロードするSDKおよびツールは1種類
   • Windows Azure Tools for Microsoft Visual Studio
• ツールのインストール
                   VSUG DAY 2009.12.5
Azureのアカウントを作成する

• CTPの招待キーはMicrosoft Connectで入手
 – https://connect.microsoft.com/site/sitehome.aspx?SiteID=681
 – ※招待キーの送付には数日かかります
• Windows Azureポータルにログイン
 – http://windows.azure.com/
 – 予めログイン用のLive IDを用意
 – Accountでトークン(プロダクトキー)を追加する




                       VSUG DAY 2009.12.5
VSUG DAY 2009.12.5
VSUG DAY 2009.12.5
ソリューションの作成

• Hosted Serviceのアイコンをクリック
 – Service LabelとService Descriptionは任意の値
   を入力
 – Hosted Service URLのService Name一意の値
   • 英小文字数字
   • 取得可能か否かは「Check Availability」で確認
 – Hosted Service Affinity Groupはデフォルトで




               VSUG DAY 2009.12.5
demo
最も簡単なWebロールの例
     Hello VSUGDAY




       VSUG DAY 2009.12.5
Visual Studioによる開発の流れ

• プロジェクトの新規作成
 – Cloud Serviceプロジェクトテンプレートを選択
 – 追加したいロールを選択
   • ロールは複数追加可能
 – 各ロールの開発
 – Development Fabric上でのテスト




             VSUG DAY 2009.12.5
2通りのロールの連携


• WebロールとWorkerロールは疎結合
 – WebロールによるWorkerロールの直接参照は
   NG(近い将来可能になる予定)
 – ストレージを介したコミュニケーションに限定
 – リクエストはQueue
 – 付加的なデータはBlob or Tableで受渡し




           VSUG DAY 2009.12.5
ロールを分けるメリット

 ロードバランス




                                Queue




                                Worker
                                ロール




           VSUG DAY 2009.12.5
Windows Azure ストレージ

3種類のストレージ
 種類の
 種類
• Blob
  – 単純な階層を持つファイルストレージ
• テーブル
  – リレーショナルを持たない構造化ストレージ
• キュー
  – メッセージ交換のための信頼性のあるストレージ


                 Blob              テーブル   キュー




              VSUG DAY 2009.12.5
Queueストレージの構造



                キュー             メッセージ


                                http://...

             uploadjob
                                http://...
   Sakai

              indexjob          http://...


           VSUG DAY 2009.12.5
Queue利用の流れ

•   ストレージアカウントのインスタンス生成
•   Queueストレージインスタンス生成
•   Queueの取得と生成
•   送信時
    – Messageの作成
    – Messageのポスト
• 受信時
    – Messageの取得
    – 取得済Messageの削除


                VSUG DAY 2009.12.5
Queueによるロール連携
メッセージ送信側
メッセージ送信側
//ストレージアカウントの生成
  ストレージアカウントの
  ストレージアカウント
CloudStorageAccount queueaccount =
    CloudStorageAccount.FromConfigurationSetting(”ConnectionString”);
       ストレージインスタンス生成
//Queueストレージインスタンス生成
       ストレージインスタンス
CloudQueueClient qsEvalAnswer = queueaccount.CreateCloudQueueClient();
try
{
           ストレージから
           ストレージからQueueを取得
    //Queueストレージから         を
    CloudQueue qAnswer =
        qsEvalAnswer.GetQueueReference(“azurevalanswer”);
    qAnswer.CreateIfNotExist(); //Queueの新規作成
                                        の
    //メッセージをポスト
      メッセージを
      メッセージ
    qAnswer.AddMessage(new CloudQueueMessage(“answes:12345”));    }
catch (StorageClientException) { }




                            VSUG DAY 2009.12.5
Queueによるロール連携
メッセージ受信側
メッセージ受信側
//Queueストレージインスタンスの作成までは先ほどと同じ
       ストレージインスタンスの作成までは先ほどと同
       ストレージインスタンス            までは
bool exists;
try
{
    CloudQueue qAnswer =
             qsEvalAnswer.GetQueueReference(”azurevalanswer”);
    qAnswer.CreateIfNotExist(); //Queueの新規作成
                                        の
    CloudQueueMessage msg = qAnswer.GetMessage();
        if (msg != null)
        {
              メッセージを
            //メッセージをstringで取得
              メッセージ          で
            foo(msg.AsString);
                                          メッセージの
            qAnswer.DeleteMessage(msg); //メッセージの削除
                                          メッセージ
        }
    }
}
catch (StorageClientException) { }




                          VSUG DAY 2009.12.5
Blobの構造



  アカウント        コンテナ                Blob


                                 img001.jpg

              Pictures
                                 img002.jpg
    Sakai

               Movies            mov001.avi

            VSUG DAY 2009.12.5
Blockによるデータの分割




                              IMG001.
                                JPG
           pictures
                              IMG002.
                                JPG

   Sakai
                                        Block 1


           movies            MOV1.AVI   Block 2


                                        Block 3

                VSUG DAY 2009.12.5
Blob利用の流れ


• ストレージアカウントのインスタンス生成
• Blobストレージインスタンス生成
• Containerの取得と生成(新規作成時)
 – 作成時にメタデータを設定
• Blobインスタンスの生成
 – 作成時にメタデータを設定




            VSUG DAY 2009.12.5
Blobの利用例

 CloudStorageAccount strg_account;
 CloudBlobClient strg_Bolbs;
 strg_account =
       CloudStorageAccount.FromConfigurationSetting("DataConnectionString“);
Strg_Bolbs = strg_account.CreateCloudBlobClient();
CloudBlobContainer cntNewAlbum;
  コンテナの
//コンテナの新規作成
  コンテナ
cntNewAlbum = m_PhotoBolbs.GetContainerReference(“mypictures”);
cntNewAlbum.CreateIfNotExist();
  コンテナの
  コンテナ メタデータ設定
//コンテナのメタデータ設定
cntNewAlbum.Metadata.Add("AlbumDescription“,description);
cntNewAlbum.SetMetadata();
  コンテナへのアクセス権
  コンテナへのアクセス
//コンテナへのアクセス権を設定
var permissions = cntNewAlbum.GetPermissions();
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
cntNewAlbum.SetPermissions(permissions);



                              VSUG DAY 2009.12.5
Blobの利用例

//Blobの書き込みの例
      の      みの例
CloudBlob blbNewImage = cntAlbum.GetBlobReference(“blobname”);
      にデータを
//Blobにデータを読み込む
blbNewImage.UploadFile(“C:¥images¥newpicture.jpg”);
      のメタデータを
//Blobのメタデータを設定
                                                             写真1
blbNewImage.Metadata[“description”] = HttpUtility.UrlEncode(“写真1”);
                                                             写真
blbNewImage.SetMetadata();

//Blob読み出しの例
      読     しの例
 CloudBlob blbPicture = cntBlobs.GetBlobReference(“blobname”);
//メタデータを読み出す前にFetchAttributesを実行しておく
  メタデータを
  メタデータ                                  を実行しておく
blbPicture.FetchAttributes();
//メタデータの読出し
  メタデータの
  メタデータ 読出し
string description = HttpUtility.UrlDecode(blbPicture.Metadata["description“]);




                                VSUG DAY 2009.12.5
Blob使用時の注意事項


• メタデータはHTTPヘッダの一部として受渡
 – そのままでは日本語が通りません!
 – URLエンコードするなどして対応
• コンテナ名は小文字英数字で!
 – コンテナ名がそのままサブフォルダ名に




          VSUG DAY 2009.12.5
demo
Blobを使ったアプリケーションの例
    写真共有サイトの構築




       VSUG DAY 2009.12.5
図5




アカウント              テーブル                   エンティティ

                                          Name=…has
                                             h=…
                     users
                                          Name=…has
                                             h=…
 Sakai

                                          Tag=…id=
                  photoindex
                                             …

     http://<アカウント>.table.core.windows.net/<テーブル名>
                VSUG DAY 2009.12.5
図6

                                         プロパティ
           必須                   <Name, TypedValue> ペアが保
                                            存
Partition Key   Row Key   Property 3       …..   Property n
Document        Version   Modification           Description
Name                      Time
                                                      異なるプロパティの組み
                                                        合わせでもよい
福利厚生Doc         V1.0      3/21/2007        …..   2007年度

福利厚生Doc         V1.0.6    9/28/2007              2008年度用 酒井作成中

勤怠Doc           V1.0      3/28/2007              2007年度

勤怠Doc           V1.0.1    7/6/2007               2008年度用 砂洲作成中



                                          スキーマを持たない

                          255個以内のプロパティ


                          VSUG DAY 2009.12.5
Tableストレージの使い方

• ADO .NET Data Servicesを利用
  – Context:TableServiceContextを継承
  – Entity:TableServiceEntityを継承
    • 利用するプロパティの一覧を定義
    • PartitionKeyとRowKeyはTableServiceEntity内で
      定義済
• クエリはLINQを利用




                  VSUG DAY 2009.12.5
Tableの定義例

public class EvaluationsDataServiceContext : TableServiceContext
 {
   public EvaluationsDataServiceContext(CloudStorageAccount accountInfo)
       : base(accountInfo.BlobEndpoint.ToString(),accountInfo.Credentials)
   { }
   public IQueryable<EvaluationsRow> EvaluationsTable
   {
       get
       {
          return this.CreateQuery<EvaluationsRow>(“Evaluations”);
       }
   }
 }




                              VSUG DAY 2009.12.5
Tableの定義例

public class EvaluationsRow : TableServiceEntity
  {
    public EvaluationsRow() : base() { }
    public EvaluationsRow(string EventID, string ID, string Title)
    {
       PartitionKey = EventID;
       RowKey = ID;
       EvalID = ID;
       EvalTitle = Title;
       EvalExp = DateTime.Today + new TimeSpan(90, 0, 0, 0, 0);
    }
     public string EvalID { get; set; }
     public string EvalTitle { get; set; }
     public DateTime EvalExp { get; set; }
  }




                                VSUG DAY 2009.12.5
Tableの利用例

CloudStorageAccount strg_account;
CloudTableClient strg_Table;
strg_account =
      CloudStorageAccount.FromConfigurationSetting("DataConnectionString“);
strg_Table = strg_account.CreateCloudTableClient();
TableServiceContext svc = strg_Table.GetDataServiceContext();
var query =
      svc.CreateQuery<EvaluationsRow>("EvaluationsTable“).Select(c => c);




                             VSUG DAY 2009.12.5
demo
Table&Queueを使った
アプリケーションの例
   セッションアンケートサイトの例



        VSUG DAY 2009.12.5
既存のASP .NETからの移行

• 移行は簡単
 – SQL Serverを利用している場合→SQL Azure
• 既存のASP.NETプロジェクトをAzure化
   • 空(ロールなし)のCloud Serviceプロジェクトを作成
   • 既存のASP .NETプロジェクトをソリューションに追加
   • パッケージの”Roles”にASP.NETを関連付け




             VSUG DAY 2009.12.5
demo
既存ASP .NETアプリケーションの
Azure化




       VSUG DAY 2009.12.5
注意事項

• ASP .NETの.NET Frameworkバージョンは3.5SP1
  – 他のバージョンで実行されている場合は3.5SP1に変更
• このままでは完全なAzureアプリではない
  – プロジェクトにMicrosoft.WindowsAzureライブラリを参照設定
  – WebRole.cs(or.vb)を追加し、以下のイベントハンドラを実装
     • OnStart
     • RoleEnvironmentChanging




                  VSUG DAY 2009.12.5
WebRoleの利用例

using System.Linq;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;
namespace WebRole1
{
  public class WebRole : RoleEntryPoint
  {
    public override bool OnStart()
    {
       DiagnosticMonitor.Start(“DiagnosticsConnectionString”);
       RoleEnvironment.Changing += RoleEnvironmentChanging;
       return base.OnStart();
    }
    private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
    {
       if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
       {
            e.Cancel = true;
        }
...

                                   VSUG DAY 2009.12.5
AppFabricの利用
         の




         VSUG DAY 2009.12.5
AppFabricの概要

• Windows Azureはエンタープライズクラウド
  –   エンタープライズ顧客が利用することを前提
  –   他のクラウドにはない高信頼性が要求される
  –   オンプレミスとクラウドのシームレスな連携
  –   適材適所にサービスを配置
• AppFabricはエンタープライズ向けサービス
  –   サービスバスによる安全なサービス連携
  –   アクセスコントロールによるシングルサインオン
  –   キャッシュによるデータアクセス高速化(予定)
  –   WF4ベースのワークフロー(予定)
  –   WCFサービスのホスティング(予定)

               VSUG DAY 2009.12.5
AppFabricのアーキテクチャ


   アクセス                                   ネーミング
  コントロール         サービスバス                 サービスレジストリ
   サービス
                                        メッセージング




 内製    クライアント        オンプレミス ESB           MS/3rd パーティー サービス
サービス
                            ESB
       Desktop,
        デスクトップ
       RIA, Web
          RIA
           Web




                   VSUG DAY 2009.12.5
サービスバスによるサービス連携
               sb://servicebus.windows.net/services/solution/a/b/
バックエンドの
ネーミング・
ルーティング               ③ルーティング
ファブリック                                             ①登録

                                                           サービスバス
フロントエンド
  ノード

                                     NLB




                                                 ①
                        接続
          TCP/SSL                                              TCP/SSL




                                                  双
          808/828                                                828




                                                   ⽅
                          cp




                                                    向
                       t.t




                                                     ア
                    ne




                                                      ウ
                                                       ト
                    ド




                                                        バ
                 ウン




                                                         ウ
                                                           ン
               トバ




                                                           ド
                                                           ソ
              アウ




                                                            ケ
                                                ③メッセージ




                                                               ッ
                    ③メッセージ
            ⽅向




                                                                ト
                                                                 接
          ②⼀




                                                                  続
                                              NAT
      クライアント                                  ファイアウォール         サービス
                                              Dynamic IP
                               VSUG DAY 2009.12.5
AppFabricサービスバスメッセージング

• プログラミング モデル
 – 専用の WCF バインディングを提供




                                お勧め!!




           VSUG DAY 2009.12.5
AppFabricの開発環境

• AppFabric(.NET Services) SDK
  – Nov. ‘09CTPが最新
• JavaおよびRubyからも利用可能
  – Java:AppFabric SDK for Java Developers
  – Ruby: AppFabric SDK for Ruby Developers
• Windows Azure SDKは必須ではない
  – オンプレミス内のサービスであれば、不要




                   VSUG DAY 2009.12.5
demo
サービスバスサンプルの実行




       VSUG DAY 2009.12.5
まとめ

• Windows Azure Platformはエンタープライズ向け
  – Windows Azure
  – AppFabric
  – SQL Azure
• ロールベースのアーキテクチャモデル
  – WebロールとWorkerロール
  – 疎結合モデル
• 3種のストレージ
  – Blob, Table, Queue
• サービスバスによるサービス連携
  – 安全なサービスの公開を実現
                    VSUG DAY 2009.12.5
参考文献/URL
         Microsoftの
     クラウドコンピューティング

• Windows Azure入門
  – アスキーメディアワークス刊
  – 定価:2,730円
• Windows Azureポータル
  – http://azure.com/
• Windows Azure Platformデベロッパーセンター
  – http://msdn.microsoft.com/ja-jp/azure/default.aspx
• Twitterタグ:#Azure
• Tatsuaki Sakai’s Blog
  – http://ameblo.jp/louisville0919/
                        VSUG DAY 2009.12.5

Weitere ähnliche Inhalte

Was ist angesagt?

S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)Microsoft Azure Japan
 
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携Microsoft Azure Japan
 
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source ConferencePHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source ConferenceMicrosoft
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門Yuto Takei
 
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップ
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップS06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップ
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップMicrosoft Azure Japan
 
Microsoft っぽいハイパーコンバージドって?
Microsoft っぽいハイパーコンバージドって?Microsoft っぽいハイパーコンバージドって?
Microsoft っぽいハイパーコンバージドって?Daichi Ogawa
 
Azure Backup と Azure Site Recovery
Azure Backup と Azure Site RecoveryAzure Backup と Azure Site Recovery
Azure Backup と Azure Site RecoveryJunji Yamamoto
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_finalTakano Masaru
 
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)Microsoft Azure Japan
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようmizusawa
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...Norio Sashizaki
 
今さら聞けない!Microsoft Azure仮想マシン入門
今さら聞けない!Microsoft Azure仮想マシン入門今さら聞けない!Microsoft Azure仮想マシン入門
今さら聞けない!Microsoft Azure仮想マシン入門Trainocate Japan, Ltd.
 
build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめbuild 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめSunao Tomita
 
Windows Azureの歴史 2013年2月版
Windows Azureの歴史 2013年2月版Windows Azureの歴史 2013年2月版
Windows Azureの歴史 2013年2月版Sunao Tomita
 
S14 azure site recovery を利用したオンプレミスから azure のサイト回復
S14 azure site recovery を利用したオンプレミスから azure のサイト回復S14 azure site recovery を利用したオンプレミスから azure のサイト回復
S14 azure site recovery を利用したオンプレミスから azure のサイト回復Microsoft Azure Japan
 
20120201 windowsazureの歴史
20120201 windowsazureの歴史20120201 windowsazureの歴史
20120201 windowsazureの歴史Sunao Tomita
 
VMC on AWS データ保護のベストプラクティス【カタログ】
VMC on AWS データ保護のベストプラクティス【カタログ】VMC on AWS データ保護のベストプラクティス【カタログ】
VMC on AWS データ保護のベストプラクティス【カタログ】vxsejapan
 

Was ist angesagt? (20)

S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
 
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携
S04 企業内システムと Microsoft Azure の VPN 接続、ファイルサーバー連携
 
PHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source ConferencePHP on Windows Azure in Open Source Conference
PHP on Windows Azure in Open Source Conference
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップ
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップS06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップ
S06 Azure バックアップを利用した Microsoft Azure 仮想マシンのバックアップ
 
Microsoft っぽいハイパーコンバージドって?
Microsoft っぽいハイパーコンバージドって?Microsoft っぽいハイパーコンバージドって?
Microsoft っぽいハイパーコンバージドって?
 
Azure Backup と Azure Site Recovery
Azure Backup と Azure Site RecoveryAzure Backup と Azure Site Recovery
Azure Backup と Azure Site Recovery
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_final
 
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)
S08 Microsoft Azure SQL Server の活用 (IaaS 環境における設定や運用)
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
 
azureから使うlinux
azureから使うlinuxazureから使うlinux
azureから使うlinux
 
今さら聞けない!Microsoft Azure仮想マシン入門
今さら聞けない!Microsoft Azure仮想マシン入門今さら聞けない!Microsoft Azure仮想マシン入門
今さら聞けない!Microsoft Azure仮想マシン入門
 
build 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめbuild 2012 Windows Azure 的まとめ
build 2012 Windows Azure 的まとめ
 
Windows Azureの歴史 2013年2月版
Windows Azureの歴史 2013年2月版Windows Azureの歴史 2013年2月版
Windows Azureの歴史 2013年2月版
 
S14 azure site recovery を利用したオンプレミスから azure のサイト回復
S14 azure site recovery を利用したオンプレミスから azure のサイト回復S14 azure site recovery を利用したオンプレミスから azure のサイト回復
S14 azure site recovery を利用したオンプレミスから azure のサイト回復
 
20120201 windowsazureの歴史
20120201 windowsazureの歴史20120201 windowsazureの歴史
20120201 windowsazureの歴史
 
[Japan Tech summit 2017] CLD 009
[Japan Tech summit 2017]  CLD 009[Japan Tech summit 2017]  CLD 009
[Japan Tech summit 2017] CLD 009
 
VMC on AWS データ保護のベストプラクティス【カタログ】
VMC on AWS データ保護のベストプラクティス【カタログ】VMC on AWS データ保護のベストプラクティス【カタログ】
VMC on AWS データ保護のベストプラクティス【カタログ】
 
[Japan Tech summit 2017] DAL 004
[Japan Tech summit 2017] DAL 004[Japan Tech summit 2017] DAL 004
[Japan Tech summit 2017] DAL 004
 

Andere mochten auch (9)

Vsugday ichigan
Vsugday ichiganVsugday ichigan
Vsugday ichigan
 
Vsug architect academy_sakakibara_20101016
Vsug architect academy_sakakibara_20101016Vsug architect academy_sakakibara_20101016
Vsug architect academy_sakakibara_20101016
 
VSUG DAY_ ICHIGAN
VSUG DAY_ ICHIGANVSUG DAY_ ICHIGAN
VSUG DAY_ ICHIGAN
 
Vsugアーキテクトアカデミー設立のご挨拶
Vsugアーキテクトアカデミー設立のご挨拶Vsugアーキテクトアカデミー設立のご挨拶
Vsugアーキテクトアカデミー設立のご挨拶
 
Dynamic Data
Dynamic DataDynamic Data
Dynamic Data
 
Vsug2011 lt
Vsug2011 ltVsug2011 lt
Vsug2011 lt
 
Parallel Technology
Parallel TechnologyParallel Technology
Parallel Technology
 
OpenStackベースのハイブリッド・クラウドで変わるITの姿
OpenStackベースのハイブリッド・クラウドで変わるITの姿OpenStackベースのハイブリッド・クラウドで変わるITの姿
OpenStackベースのハイブリッド・クラウドで変わるITの姿
 
さようなら、オートシェイプ
さようなら、オートシェイプさようなら、オートシェイプ
さようなら、オートシェイプ
 

Ähnlich wie Windows Azure Programming

Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報Genta Watanabe
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)kekekekenta
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるKazunori Hamamoto
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてHiroyasu Suzuki
 
AWS初心者向けWebinar AWSクラウドでのWindowsの実行
AWS初心者向けWebinar AWSクラウドでのWindowsの実行AWS初心者向けWebinar AWSクラウドでのWindowsの実行
AWS初心者向けWebinar AWSクラウドでのWindowsの実行Amazon Web Services Japan
 
20140725 tf azure_pack_slideshare
20140725 tf azure_pack_slideshare20140725 tf azure_pack_slideshare
20140725 tf azure_pack_slideshareosamut
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -SORACOM, INC
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編Amazon Web Services Japan
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでDaisuke Masubuchi
 
Build Windows ラップアップ
Build Windows ラップアップBuild Windows ラップアップ
Build Windows ラップアップSunao Tomita
 
201204 プロ生@大阪 #15
201204 プロ生@大阪 #15201204 プロ生@大阪 #15
201204 プロ生@大阪 #15Keiji Kamebuchi
 
2011/12/3 わんくま同盟
2011/12/3 わんくま同盟2011/12/3 わんくま同盟
2011/12/3 わんくま同盟貴仁 大和屋
 
クラウド勉強会in北陸Azure資料
クラウド勉強会in北陸Azure資料クラウド勉強会in北陸Azure資料
クラウド勉強会in北陸Azure資料Shinichiro Isago
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Takamasa Maejima
 

Ähnlich wie Windows Azure Programming (20)

Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
 
Azureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみるAzureでmicroservicesに触れてみる
Azureでmicroservicesに触れてみる
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack について
 
AWS初心者向けWebinar AWSクラウドでのWindowsの実行
AWS初心者向けWebinar AWSクラウドでのWindowsの実行AWS初心者向けWebinar AWSクラウドでのWindowsの実行
AWS初心者向けWebinar AWSクラウドでのWindowsの実行
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
20140725 tf azure_pack_slideshare
20140725 tf azure_pack_slideshare20140725 tf azure_pack_slideshare
20140725 tf azure_pack_slideshare
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
ShizuokaITpro_Azure
ShizuokaITpro_AzureShizuokaITpro_Azure
ShizuokaITpro_Azure
 
Oss on Azure, Websites, WordPress
Oss on Azure, Websites, WordPressOss on Azure, Websites, WordPress
Oss on Azure, Websites, WordPress
 
20130222 osc tokyo
20130222 osc tokyo20130222 osc tokyo
20130222 osc tokyo
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
 
2011/11/26 Dot netlab
2011/11/26 Dot netlab2011/11/26 Dot netlab
2011/11/26 Dot netlab
 
Build Windows ラップアップ
Build Windows ラップアップBuild Windows ラップアップ
Build Windows ラップアップ
 
201204 プロ生@大阪 #15
201204 プロ生@大阪 #15201204 プロ生@大阪 #15
201204 プロ生@大阪 #15
 
2011/12/3 わんくま同盟
2011/12/3 わんくま同盟2011/12/3 わんくま同盟
2011/12/3 わんくま同盟
 
クラウド勉強会in北陸Azure資料
クラウド勉強会in北陸Azure資料クラウド勉強会in北陸Azure資料
クラウド勉強会in北陸Azure資料
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
 

Windows Azure Programming

  • 1. VSUG DAY 2009 Winter VSUG DAY 2008 Winter 東京 プログラミング Windows Azureプログラミング ・ 基本の 基本のキ VSUG Visual Studio フォーラムリーダー 酒井 達明 Microsoft MVP for Solutions Architect VSUG DAY 2009.12.5
  • 2. アジェンダ • Windows Azure Platformの変遷 • Windows Azure Platformを構成するサービス • Windows Azureファブリック • WebとWorker/2つのロール • 簡単なAzureアプリケーション • ストレージの使い方 • AppFabricによるサービス連携 VSUG DAY 2009.12.5
  • 3. Azure Services Platform Azure Services Platform VSUG DAY 2009.12.5
  • 4. Windows Azure Platform Windows Azure Platform 2009年3月 VSUG DAY 2009.12.5
  • 5. Windows Azure Platform Windows Azure Platform 2009年7月 VSUG DAY 2009.12.5
  • 6. Windows Azure Platform Windows Azure Platform 2009年9月 VSUG DAY 2009.12.5
  • 7. Windows Azure Platform Windows Azure Platform 最終的にこれに落 最終的にこれに落ち着きました☺ にこれに きました☺ VSUG DAY 2009.12.5
  • 8. Windows Azure Platformのサービス • – クラウドのためのオペレーティングシステム – 64bitベースのWindows Server 2008+IIS7 – .NET, Native C++(64bit), FastCGIアプリを実行 – 3種のストレージ(Blob,Table,Queue) • Blob内に仮想的なNTFSを作成可能(XDrive) – ロールベースアーキテクチャ • Webロール、Workerロール、VMロール VSUG DAY 2009.12.5
  • 9. Windows Azure Platformのサービス • – 旧.NET Services – 最初は2種のサービスを提供 – サービスバス • 安全にオンプレミス&クラウドのサービスを連携 • ファイヤーウォールやNATを介した連携も可能 – アクセスコントロール • オンプレミス&クラウドの間でのシングルサインオンを 実現 • クレームベースのセキュリティトークンサービス VSUG DAY 2009.12.5
  • 10. Windows Azure Platformのサービス • – 読んで字の如く「SQL Server on the Cloud.」 – TDS(Tabular Data Stream)をサポート • ADO .NET・・・・・OK! • ODBC・・・・OK! • SQL Client・・・・OK! • SQL CLR・・・・残念! • RESTful・・・残念!(ADO.NET Data Servicesを使って自作可能) – 最大10GBのデータ領域を利用可能 • ちょっと少なくないですか?でも、バージョン1ですから! – オブジェクトエクスプローラーも使用可 VSUG DAY 2009.12.5
  • 12. Windows Azure Fabric アプリケーション コンピュート ストレージ Config ファブリック AppFabric Applicatio Applicatio アプリケーション ns ns SQL Service Windows Azure Application Application アプリケーション ss Windows Windows Windows Clients Server XP/Vista/7 Mobile VSUG DAY 2009.12.5
  • 13. 2つのロール バランス ロード Web ロール Worker ロール ストレージ アカウント ブロブ テーブル キュー VSUG DAY 2009.12.5
  • 14. Web ロール • インターネット経由の リクエストを処理 インターネット • IIS7 ホスト – ASP.NET / WCF ホスト – SSL サポート Web • In-Bound接続のみ可能 ロール • Out-Bound接続なし ロード バランサー • Cloud Service プロジェクト ストレージ サービス VSUG DAY 2009.12.5
  • 15. Worker ロール • バックグラウンド プロセス • Web ロールからは、キュー インターネット でリクエストを読込む • In-Bound接続なし • Out-Bound接続は可能 • Windows Azure Trust Policy Worker • Cloud Service プロジェクト ロール ストレージ サービス VSUG DAY 2009.12.5
  • 16. 開発環境の構築 • OS及びVisual Studioの準備 • Windows Vista SP1以降, Windows Server 2008, Windows 7, Windows Server 2008 R2 • Visual Studio 2008 or Visual Studio 2010 – (Express Editionでも可) • SDKおよびツールをダウンロード – http://www.azure.com/ へアクセス – 「Get Tools & SDK」をクリック – ダウンロードするSDKおよびツールは1種類 • Windows Azure Tools for Microsoft Visual Studio • ツールのインストール VSUG DAY 2009.12.5
  • 17. Azureのアカウントを作成する • CTPの招待キーはMicrosoft Connectで入手 – https://connect.microsoft.com/site/sitehome.aspx?SiteID=681 – ※招待キーの送付には数日かかります • Windows Azureポータルにログイン – http://windows.azure.com/ – 予めログイン用のLive IDを用意 – Accountでトークン(プロダクトキー)を追加する VSUG DAY 2009.12.5
  • 20. ソリューションの作成 • Hosted Serviceのアイコンをクリック – Service LabelとService Descriptionは任意の値 を入力 – Hosted Service URLのService Name一意の値 • 英小文字数字 • 取得可能か否かは「Check Availability」で確認 – Hosted Service Affinity Groupはデフォルトで VSUG DAY 2009.12.5
  • 21. demo 最も簡単なWebロールの例 Hello VSUGDAY VSUG DAY 2009.12.5
  • 22. Visual Studioによる開発の流れ • プロジェクトの新規作成 – Cloud Serviceプロジェクトテンプレートを選択 – 追加したいロールを選択 • ロールは複数追加可能 – 各ロールの開発 – Development Fabric上でのテスト VSUG DAY 2009.12.5
  • 23. 2通りのロールの連携 • WebロールとWorkerロールは疎結合 – WebロールによるWorkerロールの直接参照は NG(近い将来可能になる予定) – ストレージを介したコミュニケーションに限定 – リクエストはQueue – 付加的なデータはBlob or Tableで受渡し VSUG DAY 2009.12.5
  • 24. ロールを分けるメリット ロードバランス Queue Worker ロール VSUG DAY 2009.12.5
  • 25. Windows Azure ストレージ 3種類のストレージ 種類の 種類 • Blob – 単純な階層を持つファイルストレージ • テーブル – リレーショナルを持たない構造化ストレージ • キュー – メッセージ交換のための信頼性のあるストレージ Blob テーブル キュー VSUG DAY 2009.12.5
  • 26. Queueストレージの構造 キュー メッセージ http://... uploadjob http://... Sakai indexjob http://... VSUG DAY 2009.12.5
  • 27. Queue利用の流れ • ストレージアカウントのインスタンス生成 • Queueストレージインスタンス生成 • Queueの取得と生成 • 送信時 – Messageの作成 – Messageのポスト • 受信時 – Messageの取得 – 取得済Messageの削除 VSUG DAY 2009.12.5
  • 28. Queueによるロール連携 メッセージ送信側 メッセージ送信側 //ストレージアカウントの生成 ストレージアカウントの ストレージアカウント CloudStorageAccount queueaccount = CloudStorageAccount.FromConfigurationSetting(”ConnectionString”); ストレージインスタンス生成 //Queueストレージインスタンス生成 ストレージインスタンス CloudQueueClient qsEvalAnswer = queueaccount.CreateCloudQueueClient(); try { ストレージから ストレージからQueueを取得 //Queueストレージから を CloudQueue qAnswer = qsEvalAnswer.GetQueueReference(“azurevalanswer”); qAnswer.CreateIfNotExist(); //Queueの新規作成 の //メッセージをポスト メッセージを メッセージ qAnswer.AddMessage(new CloudQueueMessage(“answes:12345”)); } catch (StorageClientException) { } VSUG DAY 2009.12.5
  • 29. Queueによるロール連携 メッセージ受信側 メッセージ受信側 //Queueストレージインスタンスの作成までは先ほどと同じ ストレージインスタンスの作成までは先ほどと同 ストレージインスタンス までは bool exists; try { CloudQueue qAnswer = qsEvalAnswer.GetQueueReference(”azurevalanswer”); qAnswer.CreateIfNotExist(); //Queueの新規作成 の CloudQueueMessage msg = qAnswer.GetMessage(); if (msg != null) { メッセージを //メッセージをstringで取得 メッセージ で foo(msg.AsString); メッセージの qAnswer.DeleteMessage(msg); //メッセージの削除 メッセージ } } } catch (StorageClientException) { } VSUG DAY 2009.12.5
  • 30. Blobの構造 アカウント コンテナ Blob img001.jpg Pictures img002.jpg Sakai Movies mov001.avi VSUG DAY 2009.12.5
  • 31. Blockによるデータの分割 IMG001. JPG pictures IMG002. JPG Sakai Block 1 movies MOV1.AVI Block 2 Block 3 VSUG DAY 2009.12.5
  • 32. Blob利用の流れ • ストレージアカウントのインスタンス生成 • Blobストレージインスタンス生成 • Containerの取得と生成(新規作成時) – 作成時にメタデータを設定 • Blobインスタンスの生成 – 作成時にメタデータを設定 VSUG DAY 2009.12.5
  • 33. Blobの利用例 CloudStorageAccount strg_account; CloudBlobClient strg_Bolbs; strg_account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString“); Strg_Bolbs = strg_account.CreateCloudBlobClient(); CloudBlobContainer cntNewAlbum; コンテナの //コンテナの新規作成 コンテナ cntNewAlbum = m_PhotoBolbs.GetContainerReference(“mypictures”); cntNewAlbum.CreateIfNotExist(); コンテナの コンテナ メタデータ設定 //コンテナのメタデータ設定 cntNewAlbum.Metadata.Add("AlbumDescription“,description); cntNewAlbum.SetMetadata(); コンテナへのアクセス権 コンテナへのアクセス //コンテナへのアクセス権を設定 var permissions = cntNewAlbum.GetPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Container; cntNewAlbum.SetPermissions(permissions); VSUG DAY 2009.12.5
  • 34. Blobの利用例 //Blobの書き込みの例 の みの例 CloudBlob blbNewImage = cntAlbum.GetBlobReference(“blobname”); にデータを //Blobにデータを読み込む blbNewImage.UploadFile(“C:¥images¥newpicture.jpg”); のメタデータを //Blobのメタデータを設定 写真1 blbNewImage.Metadata[“description”] = HttpUtility.UrlEncode(“写真1”); 写真 blbNewImage.SetMetadata(); //Blob読み出しの例 読 しの例 CloudBlob blbPicture = cntBlobs.GetBlobReference(“blobname”); //メタデータを読み出す前にFetchAttributesを実行しておく メタデータを メタデータ を実行しておく blbPicture.FetchAttributes(); //メタデータの読出し メタデータの メタデータ 読出し string description = HttpUtility.UrlDecode(blbPicture.Metadata["description“]); VSUG DAY 2009.12.5
  • 35. Blob使用時の注意事項 • メタデータはHTTPヘッダの一部として受渡 – そのままでは日本語が通りません! – URLエンコードするなどして対応 • コンテナ名は小文字英数字で! – コンテナ名がそのままサブフォルダ名に VSUG DAY 2009.12.5
  • 36. demo Blobを使ったアプリケーションの例 写真共有サイトの構築 VSUG DAY 2009.12.5
  • 37. 図5 アカウント テーブル エンティティ Name=…has h=… users Name=…has h=… Sakai Tag=…id= photoindex … http://<アカウント>.table.core.windows.net/<テーブル名> VSUG DAY 2009.12.5
  • 38. 図6 プロパティ 必須 <Name, TypedValue> ペアが保 存 Partition Key Row Key Property 3 ….. Property n Document Version Modification Description Name Time 異なるプロパティの組み 合わせでもよい 福利厚生Doc V1.0 3/21/2007 ….. 2007年度 福利厚生Doc V1.0.6 9/28/2007 2008年度用 酒井作成中 勤怠Doc V1.0 3/28/2007 2007年度 勤怠Doc V1.0.1 7/6/2007 2008年度用 砂洲作成中 スキーマを持たない 255個以内のプロパティ VSUG DAY 2009.12.5
  • 39. Tableストレージの使い方 • ADO .NET Data Servicesを利用 – Context:TableServiceContextを継承 – Entity:TableServiceEntityを継承 • 利用するプロパティの一覧を定義 • PartitionKeyとRowKeyはTableServiceEntity内で 定義済 • クエリはLINQを利用 VSUG DAY 2009.12.5
  • 40. Tableの定義例 public class EvaluationsDataServiceContext : TableServiceContext { public EvaluationsDataServiceContext(CloudStorageAccount accountInfo) : base(accountInfo.BlobEndpoint.ToString(),accountInfo.Credentials) { } public IQueryable<EvaluationsRow> EvaluationsTable { get { return this.CreateQuery<EvaluationsRow>(“Evaluations”); } } } VSUG DAY 2009.12.5
  • 41. Tableの定義例 public class EvaluationsRow : TableServiceEntity { public EvaluationsRow() : base() { } public EvaluationsRow(string EventID, string ID, string Title) { PartitionKey = EventID; RowKey = ID; EvalID = ID; EvalTitle = Title; EvalExp = DateTime.Today + new TimeSpan(90, 0, 0, 0, 0); } public string EvalID { get; set; } public string EvalTitle { get; set; } public DateTime EvalExp { get; set; } } VSUG DAY 2009.12.5
  • 42. Tableの利用例 CloudStorageAccount strg_account; CloudTableClient strg_Table; strg_account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString“); strg_Table = strg_account.CreateCloudTableClient(); TableServiceContext svc = strg_Table.GetDataServiceContext(); var query = svc.CreateQuery<EvaluationsRow>("EvaluationsTable“).Select(c => c); VSUG DAY 2009.12.5
  • 43. demo Table&Queueを使った アプリケーションの例 セッションアンケートサイトの例 VSUG DAY 2009.12.5
  • 44. 既存のASP .NETからの移行 • 移行は簡単 – SQL Serverを利用している場合→SQL Azure • 既存のASP.NETプロジェクトをAzure化 • 空(ロールなし)のCloud Serviceプロジェクトを作成 • 既存のASP .NETプロジェクトをソリューションに追加 • パッケージの”Roles”にASP.NETを関連付け VSUG DAY 2009.12.5
  • 46. 注意事項 • ASP .NETの.NET Frameworkバージョンは3.5SP1 – 他のバージョンで実行されている場合は3.5SP1に変更 • このままでは完全なAzureアプリではない – プロジェクトにMicrosoft.WindowsAzureライブラリを参照設定 – WebRole.cs(or.vb)を追加し、以下のイベントハンドラを実装 • OnStart • RoleEnvironmentChanging VSUG DAY 2009.12.5
  • 47. WebRoleの利用例 using System.Linq; using Microsoft.WindowsAzure.Diagnostics; using Microsoft.WindowsAzure.ServiceRuntime; namespace WebRole1 { public class WebRole : RoleEntryPoint { public override bool OnStart() { DiagnosticMonitor.Start(“DiagnosticsConnectionString”); RoleEnvironment.Changing += RoleEnvironmentChanging; return base.OnStart(); } private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e) { if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)) { e.Cancel = true; } ... VSUG DAY 2009.12.5
  • 48. AppFabricの利用 の VSUG DAY 2009.12.5
  • 49. AppFabricの概要 • Windows Azureはエンタープライズクラウド – エンタープライズ顧客が利用することを前提 – 他のクラウドにはない高信頼性が要求される – オンプレミスとクラウドのシームレスな連携 – 適材適所にサービスを配置 • AppFabricはエンタープライズ向けサービス – サービスバスによる安全なサービス連携 – アクセスコントロールによるシングルサインオン – キャッシュによるデータアクセス高速化(予定) – WF4ベースのワークフロー(予定) – WCFサービスのホスティング(予定) VSUG DAY 2009.12.5
  • 50. AppFabricのアーキテクチャ アクセス ネーミング コントロール サービスバス サービスレジストリ サービス メッセージング 内製 クライアント オンプレミス ESB MS/3rd パーティー サービス サービス ESB Desktop, デスクトップ RIA, Web RIA Web VSUG DAY 2009.12.5
  • 51. サービスバスによるサービス連携 sb://servicebus.windows.net/services/solution/a/b/ バックエンドの ネーミング・ ルーティング ③ルーティング ファブリック ①登録 サービスバス フロントエンド ノード NLB ① 接続 TCP/SSL TCP/SSL 双 808/828 828 ⽅ cp 向 t.t ア ne ウ ト ド バ ウン ウ ン トバ ド ソ アウ ケ ③メッセージ ッ ③メッセージ ⽅向 ト 接 ②⼀ 続 NAT クライアント ファイアウォール サービス Dynamic IP VSUG DAY 2009.12.5
  • 52. AppFabricサービスバスメッセージング • プログラミング モデル – 専用の WCF バインディングを提供 お勧め!! VSUG DAY 2009.12.5
  • 53. AppFabricの開発環境 • AppFabric(.NET Services) SDK – Nov. ‘09CTPが最新 • JavaおよびRubyからも利用可能 – Java:AppFabric SDK for Java Developers – Ruby: AppFabric SDK for Ruby Developers • Windows Azure SDKは必須ではない – オンプレミス内のサービスであれば、不要 VSUG DAY 2009.12.5
  • 55. まとめ • Windows Azure Platformはエンタープライズ向け – Windows Azure – AppFabric – SQL Azure • ロールベースのアーキテクチャモデル – WebロールとWorkerロール – 疎結合モデル • 3種のストレージ – Blob, Table, Queue • サービスバスによるサービス連携 – 安全なサービスの公開を実現 VSUG DAY 2009.12.5
  • 56. 参考文献/URL Microsoftの クラウドコンピューティング • Windows Azure入門 – アスキーメディアワークス刊 – 定価:2,730円 • Windows Azureポータル – http://azure.com/ • Windows Azure Platformデベロッパーセンター – http://msdn.microsoft.com/ja-jp/azure/default.aspx • Twitterタグ:#Azure • Tatsuaki Sakai’s Blog – http://ameblo.jp/louisville0919/ VSUG DAY 2009.12.5