見出し画像

EC2のインスタンスをC4→C6i変更時にハマった点(WindowsServer 2008 R2編)

こんにちは@peto335です。今回はEC2のインスタンスをC4.4xlarge系からC6i.4xlargeに変更する際にハマった点です。対象はWindowsServerの2008 R2と2016があったのですが、今回は2008編です。2016も後日に投稿する予定です。
まぁ、WindowsServer 2008 R2を使用している時点でヤバいのですが・・・今回はその点は目をつむって頂きますようお願いします。

ということで、以下のリンクを情報元に作業を勧めていきました。

パート 1: AWS PV ドライバーのインストールとアップグレード

まずは、パート1を実施します。サイト内の手順通りに実施します。

AWS PV ドライバーのアップグレードを実行するには

1.リモートデスクトップを使用してインスタンスに接続し、アップグレードのためにインスタンスを準備します。アップグレードを実行する前に、システムディスク以外をすべてオフラインにします。AWS PV ドライバーのインプレースアップグレードを実行する場合は、このステップは必要ありません。また、サービスコンソールで、不可欠でないサービスを [手動] 起動に設定します。
2.インスタンスに最新のドライバーパッケージをダウンロードします。
3.フォルダの内容を展開し、AWSPVDriverSetup.msi を実行します。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#install-serial-port-bare-metal

とここで以下の作業中にエラー発生!
「3.フォルダの内容を展開し、AWSPVDriverSetup.msi を実行します。」

どうやら、バージョン違いだったようだ。手順2の
「2.インスタンスに最新のドライバーパッケージをダウンロードします。」
の最新という事を真に受けてしまったようだ。
という事で気を取り直し、以下サイトから対応しているバージョン、AWS PVドライバの8.3.5を取得し、実行出来る事を確認。ということでパート2へ

パート 2: ENA のインストールとアップグレード

以下、パート2をそのまま記載します。

1.インスタンスに最新のドライバーをダウンロードします。
2.zip アーカイブを展開します。
3.展開したフォルダから install.ps1 PowerShell スクリプトを実行してドライバーをインストールします。
4.ご使用の AMI が enaSupport を有効にしているかどうか確認します。有効でない場合は、Windows インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 のマニュアルに従ってください。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#install-serial-port-bare-metal

という事で、手順通り実行しようとしましたが、またまた最新という言葉を発見!なので、きっと今度も最新版使用したら、エラーになるだろうと思い、対応バージョンを探しました。
対応バージョン(2.2.3 以前)を以下のサイトから取得し、スクリプトの実行を確認。パート3へ

パート 3: AWS NVMe ドライバーをアップグレード

以下、パート3をそのまま記載します。

1.インスタンスに最新のドライバーパッケージをダウンロードします。
2.zip アーカイブを展開します。
3.dpinst.exe を実行してドライバーをインストールします。
4.PowerShell セッションを開き、次のコマンドを入力します。
 start rundll32.exe sppnp.dll,Sysprep_Generalize_Pnp -wait
5.Windows Server 2008 R2 および Windows Server 2012 の場合、インスタンスをシャットダウンし、インスタンスタイプを最新世代のインスタンスに変更して起動してからパート 4 に進みます。インスタンスを最新世代のインスタンスタイプに移行する前に以前の世代のインスタンスタイプでインスタンスを再び開始しても、起動しません。他のサポートされた Windows AMI の場合は、デバイスの sysprep の後いつでもインスタンスタイプを変更できます。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#install-serial-port-bare-metal

はい!またでました最新!という事で対応バージョン探します。
対応バージョン(1.3.2 以前)を取得。上記の手順5までを実行し、パート4へ。

パート 4: EC2Config および EC2Launch の更新

以下、パート4をそのまま記載します。

EC2Config のインストールまたは更新

1.EC2Config インストーラをダウンロードして解凍します。
2.EC2Install.exe を実行します。オプションの完全なリストについては、EC2Install オプションを指定して /? を実行してください。デフォルトでは、セットアップによってプロンプトが表示されます。プロンプトを表示せずにコマンドを実行するには、/quiet オプションを使用します。

EC2Launch のインストールまたは更新

1.インスタンスで EC2Launch をすでにインストールして設定している場合は、EC2Launch 設定ファイルのバックアップを作成します。インストールプロセスでは、このファイルに変更内容が保存されません。デフォルトでは、このファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Config ディレクトリにあります。
2.EC2-Windows-Launch.zip をインスタンス上のディレクトリにダウンロードします。
3.install.ps1 を EC2-Windows-Launch.zip のダウンロード先と同じディレクトリにダウンロードします。
4.install.ps1 を実行します。
5.EC2Launch 設定ファイルのバックアップを作成する場合は、同ファイルを C:\ProgramData\Amazon\EC2-Windows\Launch\Config ディレクトリにコピーします。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#install-serial-port-bare-metal

今回は、特に最新の取得という記載がなかったので、そもまま進めました。
上記の「EC2Config のインストールまたは更新」までは無事に成功。
次に「EC2Launch のインストールまたは更新」の手順まで進んだところで「4.install.ps1 を実行します。」でエラー発生
「EC2-Windows-Launch.zipの対応バージョンか?」等調べましたが情報がありませんでした。という事でスクリプトのエラーを表示したところ、今度はPowerShellのバージョンが古い事が判明。「install.ps1」で使用しているコマンドが対応していませんでした。
WindowsServer 2008 R2のPowerShellのバージョンはv2で「install.ps1」に記載されいるコマンドは v3から使用出来るものでした。ということでPowerShellをバージョンアップ。
以下のサイトからWMF 3.0をインストールし、「install.ps1」が実行出来る事を確認。パート6へ

パート 6: 電源管理設定の更新

パート6はドラブル無く終了。

終わりに

今回は、バージョンに振り回されました。なんでもかんでも最新はだめですね。互換性大事。はじめにも書きましたが、そもそもWindowsServer 2008 R2なんて使用している時点で最新で対応出来るはずも無いなと思いました。

最後まで読んで頂きありがとうございました。WindowsServer2016版もどこかで書きたいと思います。こちらはこちらでハマりまくったので。


この記事が気に入ったらサポートをしてみませんか?