概要
お客様の環境で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のインストールを適切に行うことで、アップグレード中の接続断やトラブルを回避できます。
作業前には必ずスナップショットを取得し、万全の準備で臨んでください。