Document

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との連携など、まだ面白いことができそうだ。。。
ご静聴、ありがとうございました。