WindowsAzure での 2009.10.18 けんちゃん アプリ開発 目次 1.WindowsAzureの概要 2.試作アプリ紹介 3.開発の流れ 4.DataStore(DataStorageServiceと SQL Azure) 5.開発TIPS集 1.WindowsAzureの概要 1-1.WindowsAzureの概要1 Azureは、MSのサーバ上で動作する「パブリッククラウド」 WindowsAzure 上で動作する アプリケーション SQL Azure .NET Services (今回の対象外) 非クラウドのアプリケーション WindowsXP WindowsMobile WindowsServer ちなみに、Azureとは「青空、碧空、蒼穹」の意味 「青空にポッカリ浮かんだ白い雲」のイメージか? 参考にしたWebの記事 ■WindowsAzurePlatformデベロッパーセンター http://msdn.microsoft.com/ja-jp/azure/default.aspx 1-2.WindowsAzureの概要2 WebロールとWorkerロールの2つのロール構成 HTTP(S) VM ロード バランサー IIS VM Web ロール Worker ロール (バッチ ジョブ) Windows Azure ファブリックレイヤー 参考にしたWebの記事 ■WindowsAzurePlatformデベロッパーセンター http://msdn.microsoft.com/ja-jp/azure/default.aspx WebロールとWorkerロールは、 直接アクセスはできない。 アクセスは、QUEUEサービス (後述)を利用 1-3. Azureの料金体系 Azureの使用料金は、以下のように発表されている。(2009年9月時点) 他社のサービスによって、さらに変更になる可能性も。 WindowsAzureの料金について VM使用:$0.12/Hour (月額8000円ほど) ストレージ:$0.15/GB/Month(月額1GBあたり約15円) ストレージ利用:$0.01/10k(転送10Kあたり、約1円) SQLAzureの料金について BusinessEdition:$99.99(10GBまで、月額約1万円) WebEdition:$9.99(1GBまで、月額約千円) 参考にしたWebの記事 ■WindowsAzureの料金体系について http://www.microsoft.com/azure/pricing.mspx 2.試作アプリ紹介 2-1. 試作アプリの紹介1 本サイトは、既存 の.NET C#ベースの Webアプリを移植 Azure以外のサイト との連携試作 (livedoor提供の 天気予報) ゲスト用アカウント 「guest/guest」で利 用いただけます。 参考にしたWebの記事 ■試作アプリのURL http://fileuploadtest.cloudapp.net/ 2-2. 試作アプリの紹介2 SQL Azureとの SQL連携試作 (ポイント管理 システム試作) BLOBとQUEUEサービ スの連携試作 (イメージデータ 預かりサービス) 参考にしたWebの記事 ■TORIPOTO(トリポト) Silverlightを用いた本格的なAzureアプリ http://toripotoazure.cloudapp.net/ 3.開発の流れ 3-1. (無償)開発環境の構築 09年8月時点で提供されているCTP版Windows Azure 開発環境を、無償開発環境として、構築した。 (1)Windows VISTAあるいは2008Serverの用意 (2)IIS7.0の設定 (3)VisualStudio2008ExpressEditionsのインストール (4)SQL Server2008ExpressEditionのインストール SQL Server Management Studioもあれば便利。 (5)Microsoft PowerShellのインストール(必須ではない) (6)Windows Azure SDKのインストール (7)Windows Azure Toolsのインストール ここまでで所要時間は、約5H 参考にしたWebの記事 使用ディスク容量は、約1GB http://www.atmarkit.co.jp/fdotnet/dnfuture/winazuretry_01/winazuretry_01_01.html http://www.atmarkit.co.jp/fdotnet/dnfuture/winazuretry_02/winazuretry_02_01.html 3-2. Windows Azure利用申請 作成したサービスを、Windows Azureへ配置するには、 利用申請をMSに行う必要あり。 (1)(持っていない方)Windows Live IDのアカウント作成 →アカウント申請後、即時にIDが発行された。 (2)Azureポータルサイトのアカウント作成 →Live IDがあれば、すぐに作成された。 (3)WindowsAzureの招待コード(Invitation Token)の申告 申告から、実際に招待コードが届くまで、3 ~4日かかった。 利用申請用ページ http://www.microsoft.com/azure/default.mspx 3-3. ローカルでの開発~最初の一歩 (1)VisualWebDeveloper2008の起動 (2)新規プロジェクトの作成 Cloud Serviceのプ ロジェクトのテン プレートが追加さ れている 3-4.お決まりのHelloWorldプログラム (簡単な)クラウドサービスプログラムの作成 非クラウドの.Net Webアプ リケーションの作成と、基 本的には変わらない。 ↓ 開発時は、.NET Webアプリ ケーションとして開発する 方が楽。 Protected void Page_Load(object sender, EventArgs e) { Panel1.Text = “HelloWorld”; } 3-5.HelloWorldプログラムの実行 クラウドサービスプログラムのローカルでの実行結果 HelloWorldが (ローカル環境 で)実行できた。 ・Windows Azure SDKの「Development Fabric」 (クラウドサービスのエミュレータ)と 「Development Storage」(Azureストレージサービ スのエミュレータ)を、先に起動しておく。 3-6. プログラムの公開 AzurePlatformのポータルサイトを利用して、作成した プログラムを公開する ②ステージン グ環境で動作 確認後、本番 環境に切り替 え ①まずは、 ステージ ング環境 にアップ 3-7. 開発のツボ (1)非クラウドのWebアプリケーションとして開発する。 最初からクラウドと繋げると開発効率が上がらない。 (2)開発時は、データストレージもローカルに持つ。 開発効率の問題から、ローカルのSQLServerに繋げる。 Azureに切り替えるには、ConnectionStringを書き換える だけでOK。 (3)ツールを活用する。 SQLServerの管理ツールの他、データストレージの管理 ツールを活用して開発する。 巻末にツールの紹介を参照。 3-8. Azureの学習 (1)SDK付属のサンプルソースを読む。 先ずは、使って、動かしてみる。 (2).NETウェブアプリの学習を行う。 使われている技術は、.NETなので、.NETを勉強する。 (3)Webを検索してみる。 日本語でのサイトが今のところ少ない。 (4)書籍で学習する。 具体的な事例を使った書籍が少ない。英語なら。。 AzureDeveloperCenter http://msdn.microsoft.com/ja-jp/azure/cc994380.aspx 4.DataStore(DataStorageServiceとSQL Azure) 4-1.DataStorageServiceとSQL Azure BLOBサービス (非表形式のデータ用) TABLEサービス (表形式データkey-value型) QUEUEサービス (WebとWorkerロールとの データ連携) Windows Azure 参考にしたWebの記事 http://d.hatena.ne.jp/griefworker/20090203/1233618759 SQLサービス SQLServerとの乗り換 えは比較的容易。 ConnectionString変 更のみでOK。 Join構文などもロー カルと同様に使える。 SQL Azure 4-2. SQL Azureの制限について SQL Azureには、以下のような制限がある。 ①text型、ntext型、image型は利用できない。 ②既存のシステムのテーブル定義用スクリプトがその ままでは利用できない。 (未対応プロパティがあるため) →ひとつひとつ手作業で確認する必要あり ③SQL Server Management Manager(管理ツール)で、 オブジェクトブラウジングできない。開発効率↓。 ④接続制限として、5分の制限時間がある。 →大きなトランザクションは、小分けにするなど対 処が必要 参考にしたWebの記事 ■クラウドで利用できるRDBMSとしてのSQL Azure http://thinkit.jp/article/1028/3/ 5.開発TIPS集 5-1. TIPS1(開発環境でのデバッグ) クラウドサービスプログラムの実行 いきなり、怒ら れた・・・ 「DevelopmentFabric(Azure環境のエミュレータ) の実行には、より上位の権限が必要です。」 →管理者モードで、開発環境(MS Visual Web Devoper) を実行する。 5-2.TIPS2(Web.configの設定) Web.configの設定 ①StorageEndpointの設定 「http://<ストレージ名>.blob.core.windows.net/」が StrageServiceのアドレスだが、StorageEndpointの設定には、 ストレージ名は付けない。 「http://blob.core.windows.net/」が正解。 ② allowInsecureRemoteEndpointsの設定 →ローカルでの実行時には、未設定でも”False”と解釈さ れたが、Azure環境で未設定の場合は、例外が発生する。 httpの場合はFalse、httpsの場合はTrueに設定 参考にしたWebの記事 ■ Webアプリケーションをクラウドの中に移行した例 http://www.atmarkit.co.jp/fdotnet/dnfuture/winazuredemo_01/winazuredemo_01_01.html 5-3.TIPS3(SQLServerからの移行) SQL Serverの管理ツール(SQL Server Management Studio)を利用し、 テーブル作成とデータ挿入用のSQL文を作成 ポイントは、オプションの設定にあり ①「UDDTsを基本データ型に変換」 →True ②「拡張プロパティのスクリプトを作 成」→False ③「USE DATABASEのスクリプト作成」 →False ④「データのスクリプトを作成→True ※上記以外は、デフォルトでいいはず。 参考にしたWebの記事 ■クラウドで利用できるRDBMSとしてのSQL Azure http://thinkit.jp/article/1028/1/ 5-4.TIPS4(ツールの利用) ・BLOBの閲覧&編集 □SpaceBlock (http://www.codeplex.com/spaceblock) Cloud Storage(Sun Cloud Storageなど)に対応 □Azure Storage Explorer (http://azurestorageexplorer.codeplex.com/) Windows Azure StorageのBlob、Table、Queueに対応。 □Azure XML ログ解析ツール 現在調査中。 参考にしたWebの記事 ■ WindowsAzureBlobStorage http://thinkit.jp/article/1019/2/ 最後に まだ正式版ではなく、CTP版のみの提供で、原因不明の ワーニングが出たり、サーバが突如ダウンしたりしているが、 今後の展開に注目したい。 Silverlightとの連携など、まだ面白いことができそうだ。。。 ご静聴、ありがとうございました。
© Copyright 2024 ExpyDoc