Upload
daichi-isami
View
2.699
Download
9
Embed Size (px)
Citation preview
ASP.NET MVC で Windows Azure の新機能
を余すところなく使ってみる!
2012年9月29日
#hokunet
勇大地
2
はじめに
Windows Azure 主要更新の紹介
ASP.NET MVC を利用したシナリオ
まとめ
自己紹介
• 勇 大地(いさみ だいち) – Japan Windows Azure User Group コアメンバ(キリッ
– 普段はスーツを着こなすリーマン(キリリッ
– Microsoft MVP for Windows Azure 2010~ ※Microsoft 様の社員ではありません
– 「Windows Azure テクニカルハンドブック」執筆 2012年6月更新で…(´;ω;`)ブワッ
3
本日のゴール
• Windows Azure が大幅更新した概要を知って頂く
• ASP.NET MVC を利用したアプリ開発にて、何が better なシナリオかを理解いただく
4
5
Q. ASP.NET 向けは PaaS じゃないの?
Q. .NET 4.5(常に最新版)が利用できる?
Q. 簡単なアプリを作ってもお金かかるの?
Q. 日本語 OS は利用できないんだよね?
Windows Azure への質問!
Windows Azure の全体像
6
Marketplace
Business Analytics in VMs
PaaS 型にとらわれない多様なサービスを提供
Business Analytics
SQL Reporting
Data Marketplace
Hadoop for BigData
Caching CDN
Caching Identity Active
Directory Service
Bus
Messaging
Queues
Networking
Virtual Network
Connect Traffic
Manager
Data Management
SQL Database
Tables Blob
Storage
VIRTUAL MACHINES
Cloud Services (Web Role
Worker Role) Web Sites
Media Services
Mobile Services
更新 新規
Computing Delivery
Windows Azure のフォーカス
7
アプリケーション
データ
ファイヤウォール
ネットワーク、OS
仮想化
ハードウェア
アプリケーション
データ
ファイヤウォール
仮想ネットワーク、OS
アプリケーション
データ
ファイヤウォール
仮想ネットワーク
アプリケーション
データ
アプリケーション フォーカス
VIRTUAL MACHINES
Cloud Services
Web Sites オンプレミス
Windows Azure のフォーカス
8
アプリケーション
データ
ファイヤウォール
ネットワーク、OS
仮想化
ハードウェア
アプリケーション
データ
ファイヤウォール
仮想ネットワーク、OS
アプリケーション
データ
ファイヤウォール
仮想ネットワーク
アプリケーション
データ
アプリケーション フォーカス
VIRTUAL MACHINES
Cloud Services
Web Sites オンプレミス
9
Q. ASP.NET 向けは PaaS じゃないの?
→ IaaS も可能です!
Q. .NET 4.5(常に最新版)が利用できる?
→ IaaS なら可能ですが、注意が必要!
Q. 簡単なアプリを作ってもお金かかるの?
→ Web サイトの free を利用すれば OK
Q. 日本語 OS は利用できないんだよね?
→ IaaS なら可能です!
Windows Azure への質問!
10
はじめに
Windows Azure 主要更新の紹介
ASP.NET MVC を利用したシナリオ
まとめ
Windows Azure の主要な更新
11
VIRTUAL MACHINES Web サイト
仮想ネットワーク SDK の拡充
• 管理ポータル HTML5 化 • IaaS 環境の利用が可能 • Linux が選択可能 • VHD を利用した高いポータビ
リティ
• Node.js, PHP, ASP.NET を利用した開発
• Git, FTP, TFS でデプロイ • 10 サイトまで無料
• Python, Node.js, PHP, Java, .NET 向けに提供
• Windows, Mac, Linux をサポート
• GitHub でソース公開
• クラウド上にユーザ指定のサブネットを作成
• VPN でオンプレミスと接続し、企業ネットワークの延長として利用可能
Windows Azure の主要な更新
12
VIRTUAL MACHINES Web サイト
仮想ネットワーク SDK の拡充
• 管理ポータル HTML5 化 • IaaS 環境の利用が可能 • Linux が選択可能 • VHD を利用した高いポータビ
リティ
• Node.js, PHP, ASP.NET を利用した開発
• Git, FTP, TFS でデプロイ • 10 サイトまで無料
• Python, Node.js, PHP, Java, .NET 向けに提供
• Windows, Mac, Linux をサポート
• GitHub でソース公開
• クラウド上にユーザ指定のサブネットを作成
• VPN でオンプレミスと接続し、企業ネットワークの延長として利用可能
まずは VIRTUAL
MACHINES
管理ポータルの刷新
13
HTML5 で作成された操作性の高い管理ポータル
iPad Galaxy SⅡ
Linux、Windows Server 2012 対応
Windows Server 2012 が選択可能
14
自分が作成したイメージを利用可能に
.NET Framework 4.5 が利用可能
• 日本語 OS に設定可能
• .NET Framework 4.5 利用可能
• データの永続化、追加ディスク Blob に VHD 形式で保存
Blob に追加 VHD として保存
• L4 ロードバランサ提供 Endpoint 追加時にロードバランス指定可能
15
VIRTUAL MACHINES の特徴
日本語 OS に設定可能
16
仮想マシン作成後、言語パックをインストールすることで日本語 OS に設定できる
.NET Framework 4.5 利用可能
17
1. Windows Server 2012 のインスタンス作成 2. ポート 80 番を開放 3. リモートデスクトップで接続 4. 「役割と機能の追加」で IIS, .NET 4.5 を追加
VHD(Hyper-V) のイメージを介した高い移植性
VHD を利用した高い移植性
18
オンプレミスにも容易に移行
クラウド
1. 独自イメージの作成
2. BLOB 上から VHD を取得
3. オンプレミスに移行
Linux, Mac 版の管理コマンド
19
Linux 版の管理コマンド
もちろん Windows 版も
VIERTUAL MACHINES の操作
20
demo ...
Windows Azure の主要な更新
21
VIRTUAL MACHINES Web サイト
仮想ネットワーク SDK の拡充
• 管理ポータル HTML5 化 • IaaS 環境の利用が可能 • Linux が選択可能 • VHD を利用した高いポータビ
リティ
• Node.js, PHP, ASP.NET を利用した開発
• Git, FTP, TFS でデプロイ • 10 サイトまで無料
• Python, Node.js, PHP, Java, .NET 向けに提供
• Windows, Mac, Linux をサポート
• GitHub でソース公開
• クラウド上にユーザ指定のサブネットを作成
• VPN でオンプレミスと接続し、企業ネットワークの延長として利用可能
次は Web サイト
• サイト作成は数十秒で完了
• 10 サイト無料でスモール スタート
• 容易なスケールアウトと 占有インスタンスへの移行
• Git, TFS, FTP でデプロイ可能
• CMS ベースのサイト構築も容易
Windows Azure Web サイト
Web サイトの使用料金 項目 Free Shared Reserved
価格 無料 ¥1.14/時間 (Preview) ¥1.75/時間 (GA)
¥7.00 (S) ~ ¥27.98 (L) /時間 (Preview) ¥10.49 (S) ~ ¥41.96 (L) /時間 (GA)
最大サイト数 10 100 100
最大インスタンス数
3 3 3
ストレージ 1GB*1 1GB*1 10GB*1
RDB (MySQL) 20MB*1 20MB*1 20MB*1
データ転送 (受信) 無料 無料 無料
データ転送 (送信) 最大 165MB/日 5GB/月まで無料 以降は標準従量課金
5GB/月まで無料 以降は標準従量課金
CPU 利用時間 60分/日まで 240分/日まで 専用
ドメイン azurewebsites.net azurewebsites.net カスタム*2
azurewebsites.net カスタム*2
*1 : 全サイト共有 *2 : CNAME, A レコード
無料で利用可能
Web サイト の操作
24
demo ...
Web サイトと Web ロールの違い
25
● 他サービスの利用(キャッシュ等)
ASP.NET, PHP, Node.js 利用
GIT, FTP
ネットワーク分離
VPN/Connect
リモートデスクトップ
アプリケーションのインストール
ランタイム、フレームワークの追加
●
● ●
●
●
●
●
●
●
Web サイト
Web ロール
V.S 機能が大きく異なるので注意
※ Web ロールは Cloud Services の一部
26
はじめに
Windows Azure 主要更新の紹介
ASP.NET MVC を利用したシナリオ
まとめ
他の 変態 Azure MVP は…
27
全部 Worker Role で良いじゃん
Worker Role が有れば何でもできるよ
@kamebuchi
@harutama
※ Worker Role は Cloud Services の一部
28
実際なんでもできますが…
Web サーバ構築 (nginx インストール)
日本語 PDF 作成 (フォントインストール)
そういう
問題ではない
29
仮想マシン (Virtual Machines)
クラウド サービス (Cloud Services)
Web サイト (Web Sites)
※ Worker Role のやりすぎは変態向け
• 簡易なサイトを作成して公開したい • まずは無料で初めて勉強したい場合 • 既存 Web サイト (ASP 等)からの移行
• 管理者権限を必要とする場合 • Caching 等の他のクラウドサービス
と連携が必要な場合 • N 層アプリケーション構築が必要
• 日本語 OS が必要な場合 • GUI インストールが必要な場合 • Office, PDF の帳票を生成したい場合 • ネットワーク分離や VPN が必要
各サービスの利用シナリオ
ストレージ
SQL データベース
データ層
オンプレミス (AD, DB, DNS)
帳票作成に IaaS
フロントエンドに Cloud Services
フロントは どう振り分ける?
30
(解)MVC4 を利用した振り分け
31
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("SP") { ContextCondition = (ctx => ctx.Request.UserAgent.IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) >= 0 || ctx.Request.UserAgent.IndexOf("Android", StringComparison.OrdinalIgnoreCase) >= 0 ) });
ASP.NET MVC4 のディスプレイモードを利用
32
はじめに
Windows Azure 主要更新の紹介
ASP.NET MVC を利用したシナリオ
まとめ
まとめ
33
PaaS 分野だけでなく IaaS 分野も強化
IaaS/PaaS を組み合わせていい
とこどりを
無料でも 半永続的に
使える
ASP.NET MVC を利用して柔軟なアーキテクチャ設計が可能
34
御清聴ありがとうございました
35
(参考)旧 Azure の アーキテクチャ
Web ロール
インターネット
LB
Web ロール Web
ロール
Worker ロール
Worker ロール
Worker ロール
Worker ロール
Worker ロール
Worker ロール
Endpoint
Endpoint
Endpoint
ストレージ・サービス SQL Azure
36