マイクロソフト株式会社

セッション ID: T1-402
既存業務システムの
Windows Azure への移行
マイクロソフト株式会社
コンサルティングサービス統括本部
プリンシパルコンサルタント
赤間 信幸
セッションの目的とゴール
Session Objectives and Takeaways
セッションの目的
Windows Azure に適したシステムを理解する
既存システムの移行における課題を理解する
セッションのゴール
システムの分類方法を理解し、クラウド化の適
否をおおまかに判断できるようにする
クラウド化に際して、設計の考え方が質的に大
きく変化するポイントを理解する
3
セッションアジェンダ
Session Agenda
クラウド コンピューティングの波
システムタイプの分類
クラウドの適用領域
クラウドにおける設計の考え方の変化
まとめ
(ご注意)
本セッションでは、解説時間の関係上、
・ .NET アプリケーションのみを対象とします
・ 細かい実装コードについては触れません
4
クラウド コンピューティングの波
IT システムへのプレッシャー
クラウド コンピューティングの到来により、
既存 IT システムは見直しを迫られている
自社保有 (オンプレミス) vs クラウド化
コスト削減圧力の強い今日において、クラ
ウドの存在を無視することはできない
パブリック クラウド
移行
企業 A
自社
保有
5
Microsoft, Google, Amazon,
Salesforce, etc.
システムタイプの分類
クラウド化に適したシステムの選別
業務システムのクラウド化を考える場合に
は、システム特性に応じた使い分けが必要
すべてクラウド、というのは非現実的
システム特性を鑑みて、クラウド化を検討
クラウド化を考える際には、システムを 3
つのタイプに分けて考えるとわかりやすい
① ミッション
クリティカル
システム
6
② クラウド
ならではの
新システム
③ 従来から
存在する
業務システム
システムタイプの分類
① ミッションクリティカルな業務システム
オンプレ
MC 系業務システムはクラウドには不向き
主な理由:
性能保証 (特にレイテンシ保証) が難しい
可用性要件が非常に厳しい
自社でのデータ保有・管理の要件があることが多い
こうしたシステムは、オンプレミス (プライ
ベート クラウド) での構築が適している
パブリック クラウド
オンプレミス
(プライベート クラウド)
7
占有型
共用度
共用型
自由
サービス レベル
画一的
システムタイプの分類
クラウド
② クラウドならではの新しいタイプのシステム
クラウドの特性を生かした、全く新しいタ
イプの業務システムも登場してきている
MapReduce などの大規模分散計算処理
大規模ログ解析、統計分析、学術計算領域など、
伸縮自在性を生かせる領域で強みを発揮
Windows Azure プラットフォーム
Worker ロール
Web ロール
一時的に
大量のサーバー
Worker ロール
を利用
SQL Azure など
ジョブ投入
並列な
タスクに
分解
8
Queue
Queue
各ノードの
処理結果を
収集・整理
システムタイプの分類
③ 従来から存在する典型的な業務システム
簡単な .NET アプリの場合には、ほぼその
ままの形を保って Azure 上に乗せられる
例) 2 階層型 Web-DB システムの場合
オンプレミス
Windows Server
(IIS Web サーバー)
SQL Server
TCP/IP
(TDS)
Azure
ほぼ
そのまま
移行! SQL Azure
Windows Azure
コンピュートサービス
データベース サービス
TCP/IP
(TDS)
9
システムタイプの分類
③ 従来から存在する典型的な業務システム
Windows Azure プラットフォーム
クライアント
Web ロール サーバー
ASP.NET (AJAX 含む)
UI
SQL Azure
BC
DAC
BC
DAC
HTTP/HTTPS
UI 制御
C#/VB
動的な
画面処理
UI 制御
JavaScript
HTTP/HTTPS
SI
XMLHTTP
Request
Silverlight
動的な
画面処理
Web ロール サーバー
HTTP/HTTPS
SI
BC
DAC
UI 制御
C#/VB
WPF, WIndows フォーム
Web ロール サーバー
HTTP/HTTPS
または TCP/IP
動的な
画面処理
UI 制御
C#/VB
10
SI
BC
※ TCP/IP 通信を受け付ける
場合には Worker ロール
サーバーを利用
DAC
システムタイプの分類
③ 従来から存在する典型的な業務システム
しかし、本当にそんなに簡単に移植できる
のか? となると、必ずしもそうではない
サンプルアプリケーションはともかく、実シス
テムとなるとそんなに簡単ではないはず
可用性や性能保証の要件がさほど厳しくな
いシステムであったとしても、実システム
は、そのままでは移行できないことが多い
現在の Azure には制限事項がそれなりにある
このため、ある程度のコード書き換えなどが必
要になることがほとんどである
11
システムタイプの分類
③ 従来から存在する典型的な業務システム
現在の Azure に見られる典型的な制約事項
としては、以下のようなものがある
必要な修正が大きいと、移行は非現実的になる
海外データセンターのみ
可用性が一律設定 99.9%
Dedicate 型 Azure がない
お客様監査の受け入れ不可
データベース最大容量 50 GB
日本語リソース ファイルなし
リモート デスクトップ接続不
可
Web アプリの構成
特権が必要な処理
サーバー間リモート通信
12
メール送信処理
帳票印刷処理
各種のバッチ処理
国際化対応
Azure 上で使えない機能
ASP
32 bit アプリ
他社製データベース
パッケージソフト
ローカル リソース アクセス
Java, PHP 対応
etc...
クラウドの適用領域
昨今の状況
以上より、現在のクラウドの適用可否の境
界は、この③の領域に存在する
多くの業務アプリは...
『クラウドのコストメリットを享受したい』
しかし『クラウド化の一歩を踏み出しにくい』
という状況にある
大規模
① ミッション
クリティカル
システム
オンプレミス向き
13
(現在の) クラウド適用領域
小規模
③ 従来から
存在する
業務システム
② クラウド
ならではの
新システム
クラウド向き
クラウドの適用領域
今後の見通し
しかし、「何が・どこまでクラウド化でき
るか?」は、技術進化と共に変化する
クラウド技術はまだまだ発展途上
今後の技術進化により、適用領域は広がる
(未来の) クラウド適用領域
技術進化
大規模
① ミッション
クリティカル
システム
オンプレミス向き
14
小規模
③ 従来から
存在する
業務システム
② クラウド
ならではの
新システム
クラウド向き
クラウドの適用領域
Windows Azure の今後の見通し
Azure に関して言えば、以下の 2 つが登場
してくると、状況がかなり変わってくる
① VM Role
IaaS 型に近いクラウド サービスの提供
② Windows Azure Platform Appliance
ワールドワイドで一律のサービス「のみ」→ アプラ
イアンスの登場により、様々な Azure が出現
この 2 つが実利用可能になると、Azure の
適用領域が一気に広がる可能性が高い
広範なアプリ・システムが適用領域に入る可能
性が高くなってくる
15
クラウドの適用領域
Windows Azure の今後の見通し
例) Windows Azure Platform Appliance
従来 →「マイクロソフトの Azure」のみ
今後 →「プロバイダーの Azure」「自社内の
Azure」なども利用することができるように
物理的な Azure の制御、地理的に近い場所で
の Azure 利用、データの保有などが可能に
16
エンド企業
サービス プロバイダー
Appliance
Appliance
Microsoft Azure
※ 現時点では限定されたパートナー様とのみパイロット実施
クラウドの適用領域
今、何をすべきか?
こうした見通しの中で、今のうちにやるべ
きことは、「とりあえず使ってみる」こと
クラウドは進展が早い → 数年後は全く違う状
況になっている可能性が高い
特に Azure に関しては、適用領域が大幅に広
がっている可能性もある
もう少し待ってから.... と言っていると、いつ
の間にか波に乗り遅れる可能性が高い
いきなり実システムに適用するのではなく、
評価・検証 PJ を開始するのがよい
机上検証を繰り返すより、使ってみた方が早い
17
クラウド化で何が変わる?
評価・検証を行っていく際の視点
クラウドへの移行では、ものの見方や考え
方を変えなければならないところがある
実装作業にかかわる細かい課題 → 頑張るだけ
設計やアーキテクチャ → 考え方の理解が必要
設計やアーキテクチャの
考え方にかかわる課題
重要!
・
・
・
・
18
ストレージの選択
オンプレ/クラウド連携
運用監視
次ページ以降で
ポイント解説
etc …
実装などの細かい作業に
かかわる課題
・
・
・
・
国際化対応
各種の特権処理見直し
デバッグ容易性
etc …
クラウド化で何が変わる?
評価・検証を行っていく際の視点
従来のシステム設計と比べて、大きく考え
方を変えなければならないポイントは 3 つ
1. データストレージ選択の考え方
2. オンプレミス/クラウド連携の考え方
3. 運用監視の考え方
これらは、技術的制約が緩和されてきても
残る大きな問題である
クラウドならではの考え方に慣れることが重要
これらについて解説する
19
クラウドならではの考え方
1. データストレージ選択の考え方
クラウド コンピューティングへの移行で、
最も厄介なのがデータベースの移行である
RDBMS の基本思想は「一事実一ヶ所」
オンプレミスの DB はスケール アップが基本
これらの思想は、クラウドと真っ向から反する
オンプレミス型
アーキテクチャ
スケール
アップ
巨大なサーバーで
一括処理するモデル
20
クラウド型
アーキテクチャ
スケール
アウト
小さなサーバーで
分散処理するモデル
クラウドならではの考え方
1. データストレージ選択の考え方
考え方のポイント: クラウド環境では、機
能か容量のどちらかが犠牲になる
クラウド環境 → 安価なハードで分散処理
この結果、機能か容量のどちらかが犠牲になる
Azure に 2 種類のストレージがあるのはこの
◎ 機能
ため
SQL Server
(オンプレミス)
機能を優先
容量を犠牲
◎
×
◎
21
機能
容量
価格
SQL Azure
データベース
サービス
◎
×
容量
価格
容量を優先
機能を犠牲
Windows Azure ×
ストレージ
◎
サービス
◎
機能
容量
価格
クラウドならではの考え方
1. データストレージ選択の考え方
参考: 具体的な比較表
SQL Server
(オンプレミス)
SQL Azure
データベース
サービス
Windows Azure
ストレージ
サービス
22
コスト
機能性
容量
×
○
○
相対的に高価
高機能
ACID 制御
~16 TB/DB
○
○
×
比較的安価
($9.99/GB)
高機能
ACID 制御
○
×
総じて
言えば…
高いけど
なんでも
できる
容量を犠牲に
して機能と
~50 GB/DB
価格を優先
○
さらに安価 相対的に低機能 ~100 TB
($0.15/GB) BASE 制御
機能を犠牲に
して容量と
価格を優先
クラウドならではの考え方
1. データストレージ選択の考え方
このため Azure 環境では、2 つのストレー
ジをうまく使い分ける必要がある
JOIN などを要する業務データ → SQL Azure
蓄積に主眼を置くような巨大なデータ →
Windows Azure ストレージサービス
Windows Azure
コンピュート
サービス
TCP/IP
(TDS)
HTTP
REST
23
業務
SQL Azure データ
データベース
サービス
巨大な
Windows Azureデータ
ストレージ
サービス
クラウドならではの考え方
1. データストレージ選択の考え方
注意! データベースの水平分散について
中~大規模の業務システムでは、SQL Azure
の容量制限にひっかかることがある
このような場合には、DB の水平分割が必要
大がかりな設計変更が必要なので注意すること
SQL Azure
ユーザー ID ごとに
分割してデータを
各 DB に保持
(水平分散保持)
ユーザー ID
ユーザー ID
ユーザー ID
00,001 ~ 10,000
10,001 ~ 20,000
20,001 ~ 30,000
ユーザー ID に
よって接続先の
DB を変更
24
通常は以下のような
キーで DB 水平分割
ユーザー ID
ユーザー ID
ユーザー ID
店舗 ID、地域 ID、
30,001 ~ 40,000
40,001 ~ 50,000
50,001 ~ 60,000
ユーザー ID、顧客 ID、
注文日時、etc …
(処理が重ならない
ユーザー ID
ユーザー ID
ユーザー ID
ようなキーで分割)
60,001 ~ 70,000
70,001 ~ 80,000
80,001 ~ 90,000
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
また、多くの業務シス
テムでは、オンプレミ
スとクラウドの連携が
必要になる
すべての業務システム
や DB をクラウド化で
きないことの方が多い
ケースバイケースでの
検討が必要だが、考え
方の枠組みを知ってお
くことが重要
25
インターネット
ユーザー
認証
連携
データ連携
(バックアップや
データ同期など)
システム間連携
(オンライン/オフライン)
オンプレミス
Active
Directory
統合監視
オペレーター
イントラネット
ユーザー
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
考え方のポイント: 連携させるべきものは
主に以下の 4 つである
26
データ連携
オンプレミスと Azure 間で
マスター データなどを同期
させる
・TDS 接続
・SSIS によるデータ コピー
・Data Sync によるデータ同期
処理連携
オンラインまたはオフライ
ンで処理を連携させる
オンプレの DB にアクセス
・AppFabric サービス バスを
活用したシステム間連携
認証連携
すでに使われているユーザー ・ADFS、WIF を利用したフェ
ID、パスワードを使って、
デレーション認証
Azure のシステムを使う
・Windows Live ID の利用
運用連携
イントラネットのシステム
と Azure 上のシステムとを
一気通貫で運用監視する
・ (現時点ではほとんど機能
なし)
・ (一部は作り込みが必要)
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
連携に関するキー テクノロジとして、以下
の 2 つを知っておくことが望ましい
① AppFabric サービス バス (処理連携)
クラウド → オンプレミスへの呼び出しを可能とす
る技術
② フェデレーション認証 (認証連携)
オンプレミスの AD アカウントで、クラウド上のシ
ステムにログインできるようにする技術
これらについて解説する
27
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
① AppFabric サービス バスとは...
オンプレミスから AppFabric サービス バスに
向かって接続
クラウドからの要求を受信できるようになる
オンプレミス側の FW の受信ポート解放不要
オンプレミス
ユーザー アプリ
データベース
サーバーなど
呼び出し
物理的な接続方向
論理的な接続方向
28
AppFabric サービス バス
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
② フェデレーション認証とは...
AD 環境下のイントラネットでは、Windows
統合認証によるログインを行うことが多い
ADFS を使うと、Azure 上のシステムに AD ア
カウントでログインできるようになる
イントラネットシステムの段階的移行に便利
オンプレミス
Web
サーバー
SSO
パスワード
入力なし!
29
Active
Directory
ADFS
サーバー
ADFS
クッキー
WIF (Windows Identity
Foundation) のモジュールを
組み込んだアプリケーション
ADFS クッキーで
アクセスする
パスワード
入力なし!
SSO
クラウドならではの考え方
2. オンプレミス/クラウド連携の考え方
こうしたシステム間連携については、以下
のようなポイントが課題になりやすい
これらは、机上検証だけでは不確実になりやす
い → プロトタイプによる実機評価を推奨
実現方式
30
・どんな技術を活用して実現するか?
・現状では、WIF/ADFS, AppFabric の 2 つが基本
・不足部分については作り込みが必要なことも
ネットワーク
速度
・特にオンライン連携処理やデータバックアップなどは
ネットワーク速度が問題になりやすい
・机上検証が特に困難な領域なので、実機評価が必要
課金
・大量データを頻繁にやり取りすると、課金が膨らむ
・データをキャッシュさせたり、差分データだけを転送
させたりするといった、アプリ的な工夫も必要
クラウドならではの考え方
3. 運用監視の考え方
Azure 環境にアプリを移行すると、オンプ
レミスのような運用監視はできなくなる
クラウド環境のアプリの監視=リモート監視
必然的に、オンプレミスとは運用監視の勝手が
異なることになる
オンプレミス
運用監視
31
パブリック クラウド
クラウドならではの考え方
3. 運用監視の考え方
特に従来と大きく異なるのは、Azure が
PaaS 型のサービスであるという点である
PaaS の基本思想 = ミドルとインフラはブ
ラックボックス = 気にせずに済むようになる
オンプレミスの場合は中
身がよく見えていたので
不安はなかったが...
障害時は実際どうなる?
パッチ適用は?
32
PaaS
アプリ部分を
開発・運用・監視
アプリ
ミドル
ブラック
ボックス
インフラ
運用監視
これは、従来とかなり勝
手が違う
クラウドならではの考え方
3. 運用監視の考え方
考え方のポイント: SLA 境界線より下を分
解する必要があるケースは何か? を考える
まずはアプリの運用監視をメインに考える
アプリの性能監視/障害監視/運用を中心に考える
アプリ
ミドル
ブラック
ボックス
インフラ
33
運用監視
その上で、ミドルやインフラを解体しなければ
ならないケースとして何があるか? を考える
ここをメインに運用監視
PaaS
SLA
ミドルやインフラを解体
しなければならないケー
スにはどんなものが?
クラウドならではの考え方
3. 運用監視の考え方
クラウドならではのものもある
が、ほとんどはオンプレミス同様
アプリの運用監視とは...
定常的なタスクとして以下のようなものがある
34
アプリの
性能監視
アプリケーションが異常な
スロー ダウンを起こしてい
ないかを監視
・パフォーマンス ログを利用
した性能監視
・開発時はトレースも活用
アプリの
障害検知
アプリケーションやシステ
ムが障害を起こした場合に
速やかに検知
・イベント ログへのログ出力
・サービス インスタンスのヘ
ルスチェック
アプリの
ver up
アプリの機能修正や追加の
際に、スムーズにアプリを
バージョンアップ
・アプリケーションのビルド
とデプロイ プロセスの確立
・VIP Swap による差し替え
アプリの
運用
アプリケーションの設定管
理やオペミス対策用の DB
バックアップなどの実施
・DB のバックアップ
・プラットフォーム更新時の
アプリのデグレチェック
クラウドならではの考え方
3. 運用監視の考え方
インフラ/ミドルの解体が必要となるのは...
障害や性能劣化の原因追究の際に、インフラ/
ミドルの分解が必要になるケースがある
例) 金融系システム → 障害の原因報告が必要
例) アプリの性能劣化 → 原因の追究が必要
インフラ/ミドルが原因であると推測された場合には、
その内部を分解しなければならないことがある
インフラ/ミドル内部の問題の原因追究は、
ユーザーサイドで自由に行えるものではない
このため、PaaS ベンダー (マイクロソフト) に
問い合わせる際に必要なデータを収集しておく
35
クラウドならではの考え方
3. 運用監視の考え方
インフラ/ミドルについて、収集したり、
ウォッチしたりするとよいデータとしては...
ロール インスタンスの状態
Service Management API でチェック
ロール インスタンスの再起動の発生
現在の Azure では、インスタンス障害
を通知するメカニズムがないため
Dr. Watson ID
アプリケーション障害時の例外ログ
SQL Azure アクティビティ ID
etc...
36
運用サイト
障害は適宜
マイクロ
ソフトに
問い合わせ
クラウドならではの考え方
3. 運用監視の考え方
重要なポイント (繰り返し)
最初からミドルやインフラを分解して考えない
に無視することは難しい
が、可能な限り、任せら
れるところは任せるよう
にするのが PaaS のコツ
37
アプリ
ミドル
ブラック
ボックス
インフラ
運用監視
PaaS のメリット=ミドルやインフラの保有や運用
から解放されること
ミドルやインフラを必要以上に気にすることは、
PaaS ならではのメリットを失うことにつながる
ミドルやインフラを完全 PaaS
まとめ
Summary
技術進化により、Azure の適用可能領域は
確実に広がりつつある
オンプレ/クラウドの棲み分けは今後も必要だ
が、Azure 適用範囲は確実に広がりつつある
今すぐ Azure を使わない場合でも、少しずつ
検証作業を進めておくことを推奨
Azure への移行に際しては、クラウド
PaaS ならではの考え方に慣れることが重要
1. ストレージの選択
2. オンプレミス/クラウドの連携
3. 運用監視
38
関連セッション
T1-302: クラウド時代のデータベース、ベスト プラクティス~企業
情報システムをクラウドへ移せ~
T1-307: Windows Azure を利用したスケーラブルなアプリケー
ション構築
T1-308: クラウド開発の高速道路~ Visual Studio 2010 による
Windows Azure アプリケーション開発
T1-401: クラウド時代の SOA のあり方と Windows Azure への展
開
T1-502: クラウド コンピューティングの最先端技術動向と選択の戦
略
39
リファレンス
クラウドならマイクロソフト
http://www.microsoft.com/japan/business/cloud/default.mspx
マイクロソフトのクラウド OS
http://www.microsoft.com/japan/windowsazure
とあるコンサルタントのつぶやき
http://blogs. msdn.com/b/nakama/
Azure の鼓動: ITmedia オルタナティブ・ブログ
http://blogs. itmedia.co.jp/isago/
Windows Azure Platform 勉強会キット
http://www.microsoft.com/japan/powerpro/study/
40
Announcing...
コンサルティングサービス Azure 実装ガイド提供!
マイクロソフトコンサルティングサービス
による Azure 実装ガイドを提供予定!
コンサルティングサービスの Azure 実装編
Workshop の資料をダウンロードで提供
具体的な提供方法については後日告知予定
41
ご清聴ありがとうございました。
T1-402
アンケートにご協力ください。