Webアプリケーションの移行

Download Report

Transcript Webアプリケーションの移行

Windows Server 2003 サポート終了前!
新環境への移行解説セミナー
~ Webアプリケーションの移行編 ~
はじめに
• 本コースの目標
• Web配置ツールを用いたASP.NET Webアプリケーションの移行手順
を
理解できる
• Webアプリケーション移行に関する注意点を理解できる
• アジェンダ
1.
2.
3.
4.
5.
移行のプロセスと考慮点
移行前に知っておきたい基礎知識
ASP.NET Webアプリケーションの移行手順
その他のWebアプリケーション移行のヒント
まとめ
本講座のスコープ
Webアプリケーションの移行
chapter 2
chapter 3
ASP.NET
chapter 4
Classic
ASP
PHP
Java
Ruby
chapter 1
移行のプロセスと考慮点
サポート終了までの期間
• 2015 年 7 月 15 日(日本時間)に
Windows Server 2003 のサポートが終了
• サポート終了までの間に、移行を完了させるための、計画や実
施が必要
• 2020年にはWindows Server 2008およびWindows7の両方
のサポート期間が終了するため、可能であれば最新版のOSへ
の移行を考慮する。
現状の把握
検討と準備
移行の実施
現状の把握(1/2)
対象サーバーの洗い出し
運用方法の確認
• 移行すべきWindows Server 2003が稼働する
サーバー の台数
• 構成情報(ドメイン構成、ネットワークトポロ
ジーなど)
• バックアップ手法
• 長期保存しているバックアップデータ
動作している役割サービスや
アプリケーションの洗い出し
• Active Directory のドメインコントローラー
• ファイルサーバー
• Exchange Server や SQL Server などの
サーバーアプリケーション
• IIS で動作している Web アプリケーション
サーバー
• その他のWeb アプリケーションサーバー
ドキュメントの有無の確認
• 設計書や試験仕様書の有無
現状の把握(2/2):Webアプリケーション
• 対象のWebアプリケーションやWebアプリケーションが依存して
いる
コンポーネントが、アップグレードするOSに対応しているかの確
認
• .NET Framework
• サードパーティー製のコンポーネント
• 対象のWebアプリケーションが依存している他のサーバーの確認
• SQL Server
• メールサーバー
• Active Directoryなど
検討と準備(1/2)
• 移行先の決定
• 移行方法の決定
• オンプレミス
• 新規構築
• アップグレード
• 物理マシン
• 仮想マシン(Hyper-V)
• Windows Server 2003 から
Windows Server 2012 R2 への
インプレースアップグレードは不
可
• クラウド
• PaaS
• IaaS
• Azure Webサイト
物理マシン
• P2V
• 「サポート終了対策」にはならな
い
Hyper-V
Windows Azure
検討と準備(2/2)
• 新機能の確認
• IIS
• Webアプリケーション
• Webアプリケーションが依存し
ている
コンポーネント
• 設計
• 事前検証
• 移行先OS上でのWebアプリ
ケーションの動作確認・影響範
囲調査
• 機材やサービスの新規調達の
ための業務処理(予算化など
も)
• 移行手順、リカバリー手順の設
計
• その他各種調整
• スケジュールの確定
• 移行/運用に関わるドキュメント
作成
移行の実施
• 仮想化
• Windows Server 2012 R2のHyper-V上に仮想サーバーを構築
• P2Vは本質的な解決策にはならない
• 移行の手段
• 手動によるWebアプリケーション移行
• Web Deploy ツールによるWebアプリケーション移行
• 移行の方式
• 単純な移行
• Webアプリケーションのアップグレードを伴う移行
移行実施時の考慮点
• サービスやアプリケーション、環境によっては、複数回にわけ
る必要あり
• 必ずデータのバックアップを取得してから実施
• 何か問題が発生した場合、ロールバックできる状態を保持
• 十分に時間の余裕を持たせたタイムスケジュールの確保
• 業務時間外の十分な日程スケジュール
• Webアプリケーションに関する各種確認
• Webアプリケーションが依存しているコンポーネントのバージョン確
認
• .NET Frameworkなど
事前検証の重要性
• 多くの場合、移行は新規構築よりもリスクや制約が多くなる
• 事前に、可能な限り本番環境に近い検証環境を用意して、何度
も事前検証を行うことを推奨
• Hyper-V上に仮想環境を構築することにより、チェックポイントを使
用したトライ&エラーが可能
• 特に自社製Webアプリケーションは必ず移行先環境での動作確
認の必要がある
• 事前検証による移行の手順の明確化および手順書のテストが重
要となる
スケジュール(移行実施日)についての参考情報
• 大がかりな移行の場合は、連休中の実施などが必要になる
• 2015 年 7 月までの連休の把握
7 /19(土)~21(月)
9 /12(土)~15(月)
2014 年 10/11(土)~13(月)
11/ 1(土)~ 3(月)
11/22(土)~24(月)
年末年始休暇
1 /10(土)~12(月)
2015 年
ゴールデンウイーク
chapter 2
移行前に知っておきたい基礎知識
IIS(Internet Information Service)とは
• Webサイト、サービスおよびアプリケーションを高い信頼性で
ホストするための、セキュリティで保護された管理しやすいモ
ジュール式の拡張可能なプラットフォームです。
• 主な特長
• IISマネージャー(GUI)を使用して、機能を構成しWebサイトを管理
できます。
• Webサイトを分離して、1つのWebサイトがサーバー上の他のサイト
に干渉することを防止します。
• 様々なテクノロジを使用して記述されたWebアプリケーションを構成
できます。
(Classic ASP/ASP.NET/PHPなど)
http://technet.microsoft.com/ja-jp/library/hh831725.aspx
IIS6/IIS7/IIS8の各バージョンの相違点(1/2)
IIS7.0の新機能
• コア サーバー
• IISの各機能のモジュール化
• 管理ツール
• グラフィカル ユーザー インターフェイスの IIS マネージャ、コマンド ライン ツー
ルの appcmd.exe
提供など
IIS7.5の新機能
• Server Core での .NET サポートの強化
• .NET Framework 2.0/3.0/3.5/4.0 をサポート
• 管理機能の強化
• ベスト プラクティス アナライザー、Windows PowerShell 用 IIS モジュールなど
IIS6/IIS7/IIS8の各バージョンの相違点(2/2)
IIS8.0の新機能
• 大規模サイト対応
• 性能、管理面のスケーラビリティ確保
• セキュリティ強化
• Webサイトの分離によるセキュリティ強化対応
• IIS8.5の機能強化
• PHP on Windows
• リソース使用率の低減によるコストパフォーマンスの向上
• 動的キャッシュ、拡張圧縮機能によるパフォーマンス向上
IISの32bitモードと64bitモード
移行元のWebアプリケーションが
32bit上で動作しているが、64bit
上での動作検証が取れていない。
または動作しない。
IIS上で32bitのWebアプリケー
ションを動作できるようにする。
.NET Frameworkとそのバージョン(1/2)
OS
含まれているバージョン
インストール可能.なバージョン
Windows Server 2012 R2
.NET Framework 4.5.1 (既定で有効)
.NET Framework 3.5 SP1
Windows Server 2012
.NET Framework 4.5
.NET Framework 4.5.1
.NET Framework 3.5 SP1
Windows Server 2008 R2
SP1
.NET Framework 2.0 SP2 (既定で有効)
.NET Framework 3.5 SP1
.NET Framework 3.0 SP2
.NET Framework 4.5.1
.NET Framework 4.5
.NET Framework 4
Windows Server 2008 SP2
.NET Framework 2.0 SP2 (既定で有効)
.NET Framework 3.0 SP2
.NET Framework 4.5.1
.NET Framework 4.5
.NET Framework 4
.NET Framework 3.5 SP1
Windows Server 2003
.NET Framework 1.1 (既定で有効)
.NET Framework 2.0 SP2
.NET Framework 4
.NET Framework 3.5 SP1
.NET Framework 3.0 SP2
.NET Frameworkとそのバージョン(2/2)
互換性
• 原則として下位互換性を持つ。
• ただし、一部の非推奨メソッド等が新しいものに置き換えられ
ている場合がある。
side-by-side実行
• アプリケーションまたはコンポーネント
の複数のバージョンを同じコンピュータ
で実行する機能。
• .NET FrameworkのランタイムはGACに
インストールされ、side-by-side実行される。
Web Deployツールとは
Webアプリケーションおよびその設定をIIS上に同期するクライ
アント・サーバーツール。コマンドラインツールとして提供され
ている。主な機能は以下の2つ。
1. 開発者による開発環境からIISへWebアプリケーションの同
期
2. 運用者による旧環境上のWebアプリケーションの新環境への
移行
Web Deployツールの動作(1/2)
• Web Deploy ツールはフレームワークとして提供されている。
• 様々な設定・データを同期するためのプロバイダが用意されて
いる。
• 自前でプロバイダを作成し、使用することも可能。
Web Deployツールの動作(2/2)
• Web Deploy ツールは同期元、
同期先の接続のためにいくつ
かの
ミドルウェアを必要とする。
• IISのバージョンにより使用
するミドルウェアが異なるの
で確認が必要。
Web Deployツールの主機能(1/4)
• Webアプリケーションの同期/パッケージ化/展開
同期
展開
パッケージ化
Web Deploy Tool
Web Deploy Tool
Web Deploy Tool
Web Deployツールの主機能(2/4) :同期
• 同期元、同期先で指定したIIS上のWebアプリケーションを同
期させることができる。
• 同期元、同期先はローカルでもリモートでも可能。
構文
msdeploy -verb:sync -source:<同期元> -dest:<同期先>
使用例
msdeploy -verb:sync -source:metakey=lm/w3svc/1
,computerName=webserver1 -dest:metakey=lm/w3svc/1
Web Deployツールの主機能(3/4) :パッケージ化
• package プロバイダーを使用することで、Web コンテンツの
圧縮アーカイブを作成できる。
• IIS上のWebアプリケーションのスナップショットをzipファイ
ルまたはアーカイブディレクトリにパッケージ化することがで
きる。
構文
msdeploy -verb:sync -source:<パッケージ化対象>
-dest:package=<パッケージ化ファイルパス>
使用例
msdeploy -verb:sync -source:metakey=lm/w3svc/1
-dest:package=C:\Temp\website1.zip
Web Deployツールの主機能:展開(4/4)
• パッケージ化されたWebアプリケーションを指定したWebサー
バーへ展開することができる。
構文
msdeploy -verb:sync -source:package=<パッケージ化ファイル>
-dest:<展開先>
使用例
msdeploy -verb:sync -source:package=C:\Temp\webapp1.zip
-dest:metakey=lm/w3svc/1
Web Deployツールのサブ機能(1/2) :依存関係の表示
• 対象のWebアプリケーションが依存するコンポーネントを確認
することができる。
構文
msdeploy -verb:getDependencies,<出力設定>
-source:metakey=<provider>
使用例
msdeploy -verb:getDependencies, alltrigger
-source:webserver60
Web Deployツールのサブ機能(2/2):トラブルシューティング
• Web Deployツールではトラブルシューティングを実行するた
めの機能を備えている。
• whatifオプション
• verboseオプション
• whatifオプション
• sync操作を実行する前にその結果を確認できる。
• 移行前準備や移行時にWeb Deploy ツールの動作を確認できる。
• verboseオプション
• sync操作の詳細なログを出力することができる。
• 移行前準備や移行時のトラブル時の解決に役立てることができる。
chapter 3
ASP.NET Web アプリケーションの移行手
順
ASP .NET アプリケーションの移行方法(1/2)
ASP.NET アプリケーションの移行方法には、大きく分けて以下
の3つが存在する。
手動による移行
Web Deploy ツールの
同期機能による移行
Web Deploy ツールの
パッケージ化・展開機能による移行
ASP .NET アプリケーションの移行方法(2/4)
• 手動による移行
• Web Deploy ツールを使用せずに手動によりWebアプリケーションを移行。
• Webアプリケーションに関連するコンテンツ、バイナリをすべて手動で収集し、配
置先へ展開する必要がある。
• Web Deploy ツールの同期機能による移行
• Web Deploy ツールの同期機能でWebアプリケーションの直接同期による移行。
• Web Deploy ツールの範囲外については自前の移行手順が必要。
• 移行元と移行先がネットワークで接続されている必要あり。
• Web Deploy ツールのパッケージ化・展開機能による移行
•
•
•
•
Web Deploy ツールのパッケージ化・展開機能でWebアプリケーションを移行
Web Deploy ツールの範囲外については自前の移行手順が必要
移行元と移行先がネットワークで接続されている必要なし
Webアプリケーションのアーカイブを一時的に保管しておく必要あり
ASP .NET Webアプリケーションの移行方法(3/4):比較表
手動による移行
Web Deploy ツール Web Deploy ツール
の同期機能による のパッケージ化・展
移行
開機能による移行
・特定のWebアプリケーショ
ンに特化可能
・移行の自動化が容易
・移行の自動化が容易
・移行元、移行先がネット
ワークで接続している必要
なし
・移行を自動化するための
バッチファイル等は、すべて
独自に開発する必要あり
・操作の手順が増えるため、
操作ミスをする可能性が高
くなる
・Web Deploy ツールの対象
外のアプリケーションについ
ては自前で移行を実施する
必要あり
・移行元、移行先がネット
ワークで接続している必要
あり
・Webアプリケーションの
アーカイブを一時的に格納
するためのディスク領域が
必要
メリット
デメリット
ASP .NET Webアプリケーションの移行方法(4/4):まとめ
• 基本的にはWeb Deploy ツールによる移行を検討する。ただし、
Web Deploy ツールの機能範囲外については手動による移行を
実施する。
• Webアプリケーション移行前に、現時点のWebアプリケーショ
ンのバックアップを取るという側面も考慮する場合と、直接同
期ではなく、パッケージ化・展開による移行手順が有力となる。
Web Deploy ツールの実行画面
Web Deploy ツールの同期機能による移行
Web Deploy ツールの同期機能を使用したWebアプリケー
ションの移行は以下の流れで実施する。
コンポーネント
依存関係確認
コンポーネント
のインストール
Webアプリケー
ションの同期
動作確認
Web Deploy ツールの同期機能による移行手順(1/4)
1. 移行元Webアプリケーションのコンポーネント依存関係確認
• Web Deploy ツールの依存関係表示機能により移行対象の
Webアプリケーションが依存するコンポーネントを取得する。
• 対象のWebアプリケーションが複数存在する場合は、すべての
対象に対して依存するコンポーネントを確認する。
使用例
msdeploy -verb:getDependencies, alltrigger
-source:webserver60
Web Deploy ツールの同期機能による移行手順(2/4)
2. 移行先サーバーへ必要なコンポーネントのインストール
• 調査した移行元のWebアプリケーションが依存するコンポーネ
ントを、
移行先のサーバーに手動にてインストールする。
移行先のサーバー
管理ツール
.NET
Framework
GAC
ミドルウェア
クラス
各種
ライブラリ
ドライバー
system32
DLL
application
directory
winsxs
Web Deploy ツールの同期機能による移行手順(3/4)
3. 移行元、移行先Webサーバー間のWebアプリケーションの同
期
• Web Deploy ツールの同期機能により移行対象のWebアプリ
ケーションのコンテンツ・バイナリを同期する。
使用例1
msdeploy -verb:sync -source:metakey=lm/w3svc/1
,computerName=webserver1 -dest:metakey=lm/w3svc/1
使用例2
msdeploy -source:contentPath="WebSite1/webapp1"
,computerName=webserver1
-dest:contentPath="WebSite1/webapp1"
Web Deploy ツールの同期機能による移行手順(4/4)
4. Webアプリケーションの動作確認
• 移行先のWebアプリケーションが正常に動作していることを回
帰テストなどを利用して確認する。
試験実施計画
回帰テスト実施
ステージング環境での試験
本番環境での運用試験
テストの自動化等を通じて
コストの最小化と品質の最
大化を図る
Web Deploy ツールのパッケージ・展開機能による移行
Web Deploy ツールのパッケージ・展開機能を使用したWeb
アプリケーションの移行は以下の流れで実施する。
依存関係
確認
コンポーネ
ントのイン
ストール
パッケージ
化
展開
動作確認
Web Deploy ツールのパッケージ・展開機能による移行手順(1/5)
1. 移行元Webアプリケーションのコンポーネント依存関係確認
• Web Deploy ツールの依存関係表示機能により移行対象の
Webアプリケーションが依存するコンポーネントを取得する。
• 対象のWebアプリケーションが複数存在する場合は、全ての対
象に対して調査し、依存するコンポーネントを確認する。
使用例
msdeploy -verb:getDependencies, alltrigger
-source:webserver60
Web Deploy ツールのパッケージ・展開機能による移行手順(2/5)
2. 移行先サーバーへ必要なコンポーネントのインストール
• 調査した移行元のWebアプリケーションが依存するコンポーネ
ントを、
移行先のサーバーに手動にてインストールする。
移行先のサーバー
管理ツール
.NET
Framework
GAC
ミドルウェア
クラス
各種
ライブラリ
ドライバー
system32
DLL
application
directory
winsxs
Web Deploy ツールのパッケージ・展開機能による移行手順(3/5)
3. 移行元Webアプリケーションのパッケージ化
• Web Deploy ツールのパッケージ化機能により対象Webアプ
リケーションのパッケージ化を行い、ディスクに保管する。
使用例1
msdeploy -verb:sync -source:metakey=lm/w3svc/1
-dest:package=C:\Temp\website1.zip
使用例2
msdeploy -verb:sync -source:contentPath="WebSite1/webapp1"
-dest:package=C:\Temp\webapp1.zip
Web Deploy ツールのパッケージ・展開機能による移行手順(4/5)
4. 移行先へのWebアプリケーションの展開
• Web Deploy ツールの展開機能に生成したWebアプリケー
ションのパッケージを、移行先のサーバーへ展開する。
使用例1
msdeploy -verb:sync -source:package=C:\Temp\website1.zip
-dest:metakey=lm/w3svc/1
使用例2
msdeploy -verb:sync -source:package=C:\Temp\webapp1.zip
-dest:contentPath="WebSite1/webapp1"
Web Deploy ツールのパッケージ・展開機能による移行手順(5/5)
5. Webアプリケーションの動作確認
• 移行先のWebアプリケーションが正常に動作していることを回
帰テストなどを利用して確認する。
試験実施計画
回帰テスト実施
ステージング環境での試験
本番環境での運用試験
テストの自動化等を通じて
コストの最小化と品質の最
大化を図る
chapter 4
その他のWebアプリケーション移行
のヒント
ASP.NET以外のWebサイトの移行
社内の様々なS/W資産
Windows Server 2012 + IIS8
staticな
Webページ
PHP
Webサイト
Windows Azure Webサイト
Classic ASP
Webサイト
•
•
•
•
パフォーマンス向上
スケーラビリティの向上
信頼性の向上
仮想化
Classic ASP WebサイトのIIS7以降のバージョンへの移行と配
置
• IIS7以降でClassic ASPは規定で
インストールされていない
⇒役割追加でASPをチェック
• Classic ASPの親パスは規定で無効
⇒IIS Managerで有効にする
• エラーメッセージは規定ではブラウザに
表示されない
⇒要求トレースを使用してトラブル
シュートする
AzureコンピューティングとAzure Webサイト
IaaS
PaaS
仮想マシン
 Windows Server と Linux のサポート
 多くの既存ワークロードを稼動可能
 オンプレミスと仮想マシンを移動可能
Web サイト
 Web サイト構築に最適なサービス
 オープン ソース ソフトの活用
 無償で開始、成長に合わせた利用
モバイル
サービス
 マルチデバイス向けアプリ構築に特化
 Windows 8, iOS, Android に対応
 開発工数を削減
クラウド
サービス
 Windows ベースの汎用 PaaS
 事実上無限のスケーラビリティ
 運用管理の自動化
Azure 管理ポータルからのWebサイト作成
AzureコンピューティングとAzure Webサイト
言語サポート
素早い配置
多くの機能
AzureコンピューティングとIaaS
IaaS
PaaS
仮想マシン
 Windows Server と Linux のサポート
 多くの既存ワークロードを稼動可能
 オンプレミスと仮想マシンを移動可能
Web サイト
 Web サイト構築に最適なサービス
 オープン ソース ソフトの活用
 無償で開始、成長に合わせた利用
モバイル
サービス
 マルチデバイス向けアプリ構築に特化
 Windows 8, iOS, Android に対応
 開発工数を削減
クラウド
サービス
 Windows ベースの汎用 PaaS
 事実上無限のスケーラビリティ
 運用管理の自動化
Azure IaaSの特徴
• Microsoft のパブリッククラウド上に、自由な用途で仮想マシ
ンを何個でも作成できるインフラストラクチャーをサービスと
して提供している
• 特長
•
•
•
•
•
•
•
•
アプリケー
ション
データ
数クリックでサーバーを入手可能
ランタイム
いつでも、柔軟に伸縮可能
ミドルウエア
ユ
ー
オンプレミスの仮想マシンと同様の管理
ゲスト OS
ザ
ー
オンプレミスへの移行が可能
仮想化
管
理
ホスト OS
オンプレミスとのハイブリッド構成が可能
サーバー
データは保護される
ストレージ
不要になった際に使用をやめることができる
ネットワーク
MSDNライセンスを利用可能
ユ
ー
ザ
ー
管
理
アプリケー
ション
データ
ランタイム
ミドルウエア
ゲスト OS
Windows Azure 仮想マシンの作成手順
手順 1 : アフィニティ グループの作成
手順 2 : クラウド サービスの作成 ☆
手順 3 : ストレージ アカウントの作成 ☆
Windows Azure
仮想マシンを作成
する前の準備
手順 4 : 仮想ネットワークの作成
手順 5 : 仮想マシンの作成
☆ : 必須
まとめ
• Windows Server 2003 のサポート期間終了まであとわずかで
す
• 無理のない移行計画を立て、十分な移行期間を準備しましょう。