概要

お客様の環境でEC2上のWindows Server 2012 R2のサポート終了が迫り、最新のOSへの移行作業を実施した際に躓いたポイントを記載します。
本記事では、Windows Server 2012 R2からWindows Server 2022へのインプレースアップグレードを、具体的なコマンドと注意点を交えながら解説します。

はじめに:なぜ直接2022にアップグレードできないのか?

まず、重要な注意点です。Windows Server 2012 R2からWindows Server 2022へのインプレースアップグレードは、一度に実行することはできません。これは、マイクロソフトのサポートポリシーにより、インプレースアップグレードは1世代までと定められているためです。

そのため、Windows Server 2012 R2から2022へのアップグレードは、以下の2段階のプロセスで行う必要があります。

①Windows Server 2012 R2 → Windows Server 2016
②Windows Server 2016 → Windows Server 2022

また、EC2環境特有の注意点として、OSのアップグレードに伴い、AWSの専用ドライバを事前に更新しておく必要があります。この作業を怠ると、アップグレード中にインスタンスが接続できなくなるリスクがあるため、注意してください。

それでは、具体的な手順を見ていきましょう。

前提条件と事前の準備

作業を開始する前に、以下の準備が不可欠です。

・インスタンスのバックアップ: 必ず作業前にスナップショットを取得してください。万が一アップグレードに失敗した場合でも、元の状態にすぐに復旧できます。

・管理者権限でのRDP接続: サーバーにRDPで接続し、管理者権限でPowerShellを実行できる状態であることを確認します。

・インターネット接続: ドライバやEC2Launch v2をダウンロードするため、インターネット接続が必要です。

手順1:Windows Server 2016へのアップグレード準備

まず、2012 R2から2016へのアップグレードに備えて、必要なドライバを更新します。

① ネットワークドライバの更新(躓きポイント)

ここが一番躓いたポイントになります。
Windows Server 2012 R2は、最新のネットワークドライバをそのままインストールすると互換性の問題が発生する場合があります。公式ドキュメントによると、AWS PV Driverのバージョン8.4.3をインストールする必要があります。

AWS公式サイトから、AWSPVDriver.zip をダウンロードし、ローカルPCに保存します。

Amazon EC2 Windows ドライバのダウンロードページ
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/xen-drivers-overview.html

ダウンロードしたファイルを展開し、AWSPVDriverSetup.msi を対象インスタンスにコピーします。最も簡単な方法は、RDPセッション中にファイルをドラッグ&ドロップすることです。

インスタンス上で AWSPVDriverSetup.msi を実行し、ドライバをインストールします。

PowerShellを管理者として開き、以下のコマンドを実行して、バージョンが 8.4.3 になっていることを確認します。

Get-ItemProperty HKLM:\SOFTWARE\Amazon\PVDriver

② EC2Configサービスのアンインストール

EC2Launch v2をインストールするために、古いEC2Configサービスをアンインストールする必要があります。

サービスを開き、EC2Configサービスを探して停止します。

「コントロールパネル」→「プログラムと機能」から EC2ConfigService をアンインストールします。

③ EC2Launch v2のインストール

EC2Launch v2は、Windows Server 2016以降で必須の初期設定ツールです。

PowerShellを管理者として開きます。

以下のコマンドで、ダウンロード用のディレクトリを作成します。

mkdir $env:USERPROFILE\Desktop\EC2Launchv2

セキュリティプロトコルをTLS 1.2に設定し、EC2Launch v2のインストーラをダウンロードします。

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Url = "https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi"
$DownloadFile = "$env:USERPROFILE\Desktop\EC2Launchv2\" + $(Split-Path -Path $Url -Leaf)
Invoke-WebRequest -Uri $Url -OutFile $DownloadFile

ダウンロードした AmazonEC2Launch.msi を実行し、EC2Launch v2をインストールします。

msiexec /i "$DownloadFile"

C:\ProgramData\Amazon\EC2Launch フォルダが作成されていることを確認します。

手順2:Windows Server 2016へのアップグレード実行

EC2のマネージドコンソールを利用して、Windows Server 2016のイメージをマウントし、アップグレードを実行します。

AWSマネジメントコンソールから[EC2] → [スナップショット] を開きます。

スナップショットの種別を「パブリックスナップショット」に変更します。

検索バーで Windows 2016 Japanese Installation Media を検索し、該当のスナップショットを選択します。

「アクション」から「スナップショットからボリュームを作成」を選択し、新しいボリュームを作成します。

作成したボリュームを、対象のEC2インスタンスにアタッチします。

RDP接続に戻り、「ディスクの管理」を開きます。新しいディスクが「オフライン」になっている場合は、右クリックして「オンライン」に変更します。

新しいドライブ(例:Eドライブ)に移動し、コマンドを実行して、アップグレードを開始します。

E:
./setup.exe /auto upgrade /dynamicupdate disable

このコマンドは、「Windows Server 2016 DataCenter (デスクトップエクスペリエンス)」を選択してアップグレードを実行します。

アップグレードには数時間かかる場合があります。完了すると、サーバーは自動的に再起動します。

手順3:Windows Server 2022へのアップグレード準備

ここからは、2016から2022へのアップグレード準備です。

① 再びネットワークドライバを更新

Windows Server 2016にアップグレードされたことで、最新版のドライバが利用できるようになります。

以下のURLから最新のAWSPVDriver.zipをローカルにダウンロードします。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/xen-drivers-overview.html

ダウンロードしたファイルを展開し、AWSPVDriverSetup.msi をインスタンスにコピーして実行します。

PowerShellでバージョンが 8.6.0 以上になっていることを確認します。

Get-ItemProperty HKLM:\SOFTWARE\Amazon\PVDriver

手順4:Windows Server 2022へのアップグレード実行

手順2とほぼ同様ですが、マウントするイメージと選択するバージョンが異なります。

AWSマネジメントコンソールから[EC2] → [スナップショット] を開きます。

検索バーで Windows 2022 Japanese Installation Media を検索し、該当のスナップショットを選択します。

手順2と同様にスナップショットからボリュームを作成し、対象インスタンスにアタッチします。

RDP接続に戻り、ディスクをオンラインにしてから、以下のコマンドでアップグレードを開始します。

E:
./setup.exe /auto upgrade /dynamicupdate disable

このコマンドは、「Windows Server 2022 DataCenter (デスクトップエクスペリエンス)」を選択してアップグレードを実行します。

これでWindows Server 2022へのアップグレードが完了し、インスタンスが再起動します。

まとめ

本記事では、Windows Server 2012 R2から2022へのインプレースアップグレードを、2段階のステップで安全に行う方法を解説しました。EC2環境特有のドライバ更新やEC2Launch v2のインストールを適切に行うことで、アップグレード中の接続断やトラブルを回避できます。

作業前には必ずスナップショットを取得し、万全の準備で臨んでください。