ランブックを活用したWindows Serverインプレースアップグレードのススメ

RMAG news

みなさんWindows ServerのEOL対策はどのようにされていますか?
直近ではWindows Server 2012R2の延長サポートが2023/10/10に終了しました。

Windows Server 2012R2が動いているAmazon EC2も多いのではないでしょうか?これらのインスタンスを新しいOSに移行するためには、新しいOSバージョンのAMIを使って再度アプリケーションをインストールするという方法もありますが、オンプレミスと同様にインプレースアップグレードをすることもできます。

インプレースアップグレードを行うことで、ドキュメントに残されていない手順によって新しくインストールしなおしても動作しないといった問題に悩まされることは少なくなります。

アップグレードが必要なEC2インスタンスがたくさんある場合には、AWS Systems ManagerのオートメーションランブックのAWSEC2-CloneInstanceAndUpgradeWindows ランブックを活用することもできます。

今回はAWSEC2-CloneInstanceAndUpgradeWindows ランブックを活用して実際にインプレースアップグレードを行ない、発生した問題とAWSサポートの協力を得て実施した対応策についてまとめてみました。

サポート切れになっているWindows Server 2012R2以前のOSを利用されている方は、ぜひ参考にしてみてください。

なお、アップグレードするためにはt2.medium相当以上のインスタンス(インストール作業にてかなりのCPUリソースを使用し、smallインスタンスサイズ相当ではクレジットが枯渇するため)と30GB以上の空き容量が必要ですので、注意してください。

また、Windows Server 2012R2のインスタンスにてAWS PV ドライバーをアップグレードするとインスタンスのステータスチェックが失敗して起動しないということが起こることがありましたが、8.3.5にアップグレードすることにより対応することができました。(AWSマネジメントコンソールより対象インスタンスのコンソールログを参照することで現在インストールされているAWS PVドライバーを確認できます)

getOSVersion ステップでタイムアウトする

SSM Agent on Instances: [i-xxxxxxx] are not functioning

SSM Agentのインストールを行ってください。

runUpgradeFrom2012R2Or2016 ステップで失敗する

Fail to start automation, errorMessage: Parameter “TargetWindowVersion” has value “2012R2” not found in [2016, 2019, 2022]. (Service: AmazonSSM; Status Code: 400; Error Code: InvalidAutomationExecutionParametersException; Request ID: xxxxxxxxxxxxx; Proxy: null)

ランブック指定時の TargetWindowVersion の指定が間違っているため、移行先のバージョンを正しく入力します。

checkForSSMAgent でタイムアウトし、prepareServerInstanceForSSMInstall、getUpgradedImageDetailsで失敗する

runUpgradeFrom2012R2Or2016のステップが以下で失敗する場合に、内部的にAWSEC2-CloneInstanceAndUpgradeWindows2019のオートーションランブックが呼ばれていて、その中でcheckForSSMAgentのタイムアウトが発生する事象です。

Failed to run automation with executionId: xxxxxxxxxxxxx TimedOut :
{Status=[TimedOut], Output=[No output available yet because the step is not successfully executed, No output available yet because the step is not successfully executed], ExecutionId=[xxxxxxxxxxxxx]}

ランブック指定時の SubnetId にNAT Gatewayが有効になっているか「パブリック IPv4 アドレスの自動割り当て」になっているサブネットを指定します。もしくは「パブリック IPv4 アドレスの自動割り当て」を有効に変更します

checkAfterWindowsUpgrade2019 でタイムアウトする

SSM Agent on Instances: [i-xxxxxxxxxxxxx] are not functioning

dism /online /get-intlコマンド実行時に表示されるインストールされている言語とフォールバック言語が異なる場合に発生するため、以下の設定を変更し、いったんフォールバック言語に変更したうえで、アップグレードを行い、そのあと再び元に戻す必要があります。(以下の例では英語版のAMIを使って日本語設定をしているEC2の手順となります)

日本語のインストールと表示言語の変更でEnglish (United States)を選択
地域の変更でUnited Statesを選択
タイムゾーンを(UTC) Coordinated Universal Timeに変更
Unicode 対応ではないプログラムの言語の変更でEnglish (United States)を選択
ようこそ画面と新しいユーザーアカウントの言語設定

以上です

Leave a Reply

Your email address will not be published. Required fields are marked *