こんにちは、技術3課、大阪勤務の全(ちょん)です。
サーバーワークスに入社し「クラウドワークスタイル」を経験して、仕事はオフィスでするものの常識が変わりました。
ちなみに、このブログも自宅で作成しました。
ただ、この時期だとエアコンの電気代が心配です。
はじめに
今回はWindowsOSのインスタンスタイプを非Nitro世代インタンスからNitro世代インスタンスに変更してみました。
2018年8月以前に作成されたAmazonから提供されたAMIについては本手順を推奨(ほぼ必須)しており、それより新しく作成したものについては従来通り変更できます。
Nitro世代インスタンスは以下の通りとなります。
・A1、C5、C5d、C5n、I3en、M5、M5a、M5ad、M5d、p3dn.24xlarge、R5、R5a、R5ad、R5d、T3、T3a、および z1d
・ベアメタル: i3.metal, m5.metal, m5d.metal, r5.metal, r5d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, and z1d.metal
Nitro世代の詳細はこちらのリンクをお読みください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
実際に変更してみた
今回、Windows Server 2012 R2(t2.micro)のインスタンスタイプを変更してみました。
下記、公式ドキュメントを参考としています。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/migrating-latest-types.html
始める前に
もしもの場合に備えて、(特に本番環境)事前にバックアップを取得しましょう。
インスタンスタイプ変更作業中、数回のインスタンス再起動が発生します。 また、検証環境等で十分に検証を行い、本番環境に望みましょう。
AWS PV ドライバーのインストール
こちらから最新のドライバーパッケージをダウンロードし、Zipファイルを解凍後、AWSPVDriverSetup.msiを実行します。
基本的に 次へ をクリックしていくだけで完了します。
AWSPVDriverSetup.msi実行後、インスタンスは自動的に再起動されます。 RDP接続が切断されるため、再接続します。
再接続後、デバイスマネージャーからAWS PV Storage Host Adapter Propertiesのバージョンを確認します。
2019年8月時点では 8.3.1.56 がインストールされます。
ENA のインストール
こちらから最新のドライバーパッケージをダウンロードし、Zipファイルを解凍後、PowerShellを起動しinstall.ps1を実行します。
install.ps1実行後、ENAサポートを有効にするためインスタンスを停止し、下記 AWS CLI コマンドを実行します。
aws ec2 modify-instance-attribute --instance-id instance_id --ena-support
※instance_id を対象インスタンスidに書き換えて実行してください。
確認のため、下記 AWS CLI コマンドを実行し、結果が trueと出力されれば正常です。
aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
※instance_id を対象インスタンスidに書き換えて実行してください。
再度インスタンスに接続します。
AWS NVMe ドライバーのアップグレード
こちらから最新のドライバーパッケージをダウンロードし、Zipファイルを解凍後、dpinst.exeを実行します。
基本的に 次へ をクリックしていくだけで完了します。
PowerShellを管理者で起動し下記コマンドを実行します。
start rundll32.exe sppnp.dll,Sysprep_Generalize_Pnp -wait
インスタンスタイプの変更
ここまでの手順でインスタンスタイプの変更準備が完了しました。
マネージドコンソールにてインスタンスタイプを変更(今回はt3.microへ)します。
インスタンスの起動してみます。
インスタンスタイプの変更はできましたが、完了まではもう少しかかります。
EC2ConfigおよびEC2Launchのインストール
こちらから最新のE2Configインストーラをダウンロードし、Zipファイルを解凍後、EC2Install.exeを実行します。
Options でいろいろ指定ができるそうですが、そのまま Install です。
続いてこちらとこちらを同じディレクトリにダウンロードした後、PowerShellを管理者で起動しinstall.ps1を実行します。
※公式ドキュメントに記載されている設定ファイルのバックアップについては当ブログでは省略させていただきます。
電源管理設定の更新
公式ドキュメントによると、電源管理設定を更新するとディスプレイが消灯しないように設定され、Nitro システムで正常な OS のシャットダウンが可能になるとのことです。
PowerShellを管理者で起動し下記コマンドを実行します。
powercfg /setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0 powercfg /setacvalueindex 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0 powercfg /setacvalueindex a1841308-3541-4fab-bc81-f71556f20b4a 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
以上で変更手順は完了となります
インスタンスタイプによっては追加で必要な手順があるため、公式ドキュメントを参照願います。
まとめ
今回はWindows環境で非Nitro世代からNitro世代インスタンスへ変更しました。
当ブログではシンプルな環境で試しましたが、本番環境では十分な検証を行い、臨んでください。
また、最新AMIから利用した新規環境構築を行い、その後移行してもらうといったことも検討頂ければと思います。