[EC2]Windows Server 2008 R2 をインプレースアップグレードしてみた

AWS運用自動化サービス「Cloud Automator」

こんにちは、技術2課、大阪勤務の全(ちょん)です。
2019年も残りわずかとなりましたね。
終わりということで、今回はサポート終了間近であるWindows Server 2008 R2 のOSインプレースアップグレードについてブログとして残しました。

はじめに

今回、参考とさせていただいた記事をご紹介します。

・インプレースアップグレードを実行する
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/os-inplaceupgrade.html

条件の確認

アップグレードを始める前にドキュメントに記載されている注意点を確認しておきましょう。

また、アップグレードバージョンのインストール要件も確認しておきます。
例えば Windows Server 2008 R2 Standard with SP1 は Windows Server 2012 R2 Standard または Windows Server 2012 R2 Datacenter にアップグレードが可能ですが、Windows Server 2008 R2 Datacenter with SP1 は Windows Server 2012 R2 Datacenter へのみアップグレードが可能です。

・Upgrade Options for Windows Server 2012 R2
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn303416(v=ws.11)?redirectedfrom=MSDN

アップグレードの実施

今回はWindows Server 2008 R2 から Windows Server 2012 R2 へのアップグレードを実施してみました。

対象インスタンスのAMI取得

バックアップは大事です。アップグレード前に必ず取得しましょう。

PV ドライバーのアップデート

こちらから最新のドライバーパッケージをダウンロードし、Zipファイルを解凍後、AWSPVDriverSetup.msiを実行します。(2019年11月時点で最新は8.3.2)
アップデート後、インスタンスの再起動が必要となります。

Windows Server インストールメディアボリュームの作成

ナビゲーションペインで、「スナップショット」へアクセスし、「パブリックスナップショット」を選択します。

今回はWindows Server 2012の日本語版を選択し、ボリュームを作成します。

ボリュームはインスタンスと同じAZに作成し、インスタンスにアタッチします。
インスタンスへ接続しインストーラを起動します。
インストールするOSバージョンに注意しましょう。今回はWindows Server 2012 R2 Datacenterを選択しました。

インストールの種類はアップグレードを選択します。

互換性のチェックを行い、覚悟を決めて「次へ」を押しましょう。

あとは待つだけです。インスタンスを停止、再起動しないように気を付けましょう
アップグレードが完了するとWindows Server 2012 R2の画面が表示されます。
さらば、Windows Server 2008 R2。

【番外編】

別の方法としてオートメーションを利用したアップグレードを実施してみました。

・AWSでのサポート終了のMicrosoft 2008 R2ワークロードを簡単にアップグレード
https://aws.amazon.com/jp/blogs/database/upgrade-your-end-of-support-microsoft-2008-r2-workloads-in-aws-with-ease/

PV ドライバーのアップデート

こちらから最新のドライバーパッケージをダウンロードし、Zipファイルを解凍後、AWSPVDriverSetup.msiを実行します。(2019年11月時点で最新は8.3.2)

IAMロールの作成

事前にAWS Systems Managerがアカウント内のAmazon EC2およびAMIインスタンスで自動化を実行できるように、AmazonEC2RoleforSSM のポリシーをアタッチしたロールを作成しましょう。

アップグレードの実施

System Manager コンソールへアクセスし、オートメーションを選択し、「オートメーションの実行」を選択します。

検索フィルター欄にAWSEC2-CloneInstanceAndUpgradeWindowsを入力し、これを選択後、「次へ」を選択します。

入力パラメーターにそれぞれ入力していきます。

・InstanceId:アップグレード対象インスタンスID
・InstanceProfile:IAMロールの作成で作成したインスタンスプロファイル名
・SubnetId:アップグレード対象インスタンスが配置されているサブネットのID
・KeepPreUpgradedBackUp(オプション):このパラメーターがTrueに設定されている場合、オートメーションはインスタンスから作成されたイメージを保持します。デフォルトはFalseです。
・RebootInstanceBeforeTakingImage(オプション):デフォルトはFalse(再起動なし)です。このパラメーターがTrueに設定されている場合、AWS Systems Managerはアップグレード用のAMIを作成する前にインスタンスを再起動します。
・BYOLWindowsMediaSnapshotId(オプション):BYOLインスタンスをアップグレードする場合にのみ必要となります。

入力が完了したら「実行」を選択します。

検証ではおおよそ1時間程度かかりました。
完了すると、出力にアップグレードされたAMIのIDが表示されます。

アップグレードに必要がないステップは自動的にスキップされます。(失敗と表示されるため少しドキッとしました)

こちらのAMIを起動すればWindows Server 2012 R2が起動されます。

まとめ

AWS環境にあるEC2をアップグレードすることができました。
本番環境にてアップグレードを実施する場合は十分に検証を行い臨んでください。

AWS運用自動化サービス「Cloud Automator」