Webページ

超簡単!IIS7.0→IIS10.0への移行とざっくりトラブルシュート

#インフラ
written by クッキーさん

みなさんこんにちわ!クッキーさんです。
サーバリプレースに伴って、どうしてもついてくるのがソフトウェアだったり、Windowsの機能だったりの移行ですね。

今回は、IIS7.0からIIS10.0への移行について簡単に説明してみたいと思います!
基本的にすべてコマンドプロンプトからの作業のみで解決できます。
ついでに、めちゃくちゃざっくりとしたトラブルシュートも書いておきます。

事前準備

■WebDeployTool
ダウンロード先:Download Web Deploy v3.6 from Official Microsoft Download Center
移行元、移行先にバージョンを合わせてインストールしておきます。

■移行元の情報収集
WebDeployToolの利用で基本的には移行できますが、確認用として収集しておきます。

移行方法

【移行元フェーズ】

■バックアップ
まずは、何かあったときのためにバックアップを取得しておきます。
%SystemRoot%\system32\inetsrv\appcmd.exe add backup <バックアップ名>

ちなみにリストアはこちら
%SystemRoot%\system32\inetsrv\appcmd.exe restore backup <バックアップ名>

■依存関係の確認
移行元で稼働しているIISの依存関係を出力します。
cd "c:\Program Files\IIS\Microsoft Web Deploy V3"
msdeploy -verb:getDependencies -source:webServer

※正直言ってしまえば、Get-WindowsFeatureで取った機能・役割に合わせても問題ない気がする

■アーカイブの出力
移行元のアーカイブ出力します。これを基に復元をかけていきます。
msdeploy -verb:sync -source:webServer -dest:archivedir=<アーカイブ出力先>,encryptPassword=<展開用パスワード> -enableLink:AppPoolExtension > <ログファイル名>

※ここでエラーとかあると、ログファイルに出力されないでプロンプト上で出ます。
 問題がなかったら、基本何もでないので赤文字で出力されたらエラーです。

▼トラブルシュート点
・文字化けしててもファイル名は出るんで、コマンドの実行ユーザが権限持っているかとか確認すると解決しやすい

現行サーバでやることは以上で終わりです。
出力されたアーカイブがIISのサイト情報とか持ってるので、ファイル量多いときは気を付けましょう。

【移行先フェーズ】

■依存関係の解決
移行元の機能とか役割に合わせます。
IISも基本的にはこのタイミングでいれたほうがよいです。

■動作検証
アーカイブの復元検証を行います。実際には復元されないので、まずはお試しっていう感じです。
この時点でエラー出てると、後続で復元できないので解決しましょう。
cd "c:\Program Files\IIS\Microsoft Web Deploy V3"
msdeploy -verb:sync -source:archivedir=<アーカイブ>,encryptPassword=<展開用パスワード> -dest:webServer -enableLink:AppPoolExtension -whatif > <ログファイル名>

■復元
検証で問題がなかったら、実際に復元かけましょう。実行後、IISにサイト等が移行されています。
msdeploy -verb:sync -source:archivedir=<アーカイブ>,encryptPassword=<展開用パスワード> -dest:webServer -enableLink:AppPoolExtension > <ログファイル名>

ちなみに、証明書とかバインドとかはちゃんと移行されます。
その他については保証できないので、実際に検証環境とか立てて試すのが一番安心です。

移行後のトラブルシュート

移行完了後、じゃぁ動作確認してみよう!と動かしてみたら503エラーとか500エラーとか色々出たりします。
下記を参考の上に、対応してみてください。

■再起動
こまったら再起動、これ鉄板です。

■イベントログ(アプリケーションログ)
503エラー関連の場合はこちら?IIS関連のログが出てるとだいたい「●●.dllが~~」とか出てたりします。
機能・役割が不足してたりするので、要確認。

■サイトの設定おかしくなっていないか
500エラーだとこっちのほうが確立高い気がします、確認してみると幸せになれたりします。

直近出たものだと、[rewrite.dll]が不足しているだかで、インストールして再起動したら治りました。
ダウンロード先:URL Rewrite : The Official Microsoft IIS Site

まとめ

ざっくりとIISの移行についてまとめてみました!
近々自身で移行した時にあった問題とかもかるーくまとめてみたので、ぜひ参考にしてみてください。

以上、クッキーさんでした!