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