Windows Server 2016でYour Windows Licence Will Expire【エンジニアブログより】
プロフェッショナルサービス課の杉村です。
Windows Serverはあまり得意ではないのですが、可能なら<花粉等の異物に反応して鼻水や鼻づまりを発生させる>役割と機能をアンインストールしたいです。
"Your Windows Licence Will Expire"だと...?
Windows Server 2016のECインスタンスで "Your Windows Licence Will Expire" といったメッセージがログイン時に表示される場合があります。
これは、Windows Server 2012以前で標準AMIに導入されていたEC2Configと、Windows Server 2016以降に導入されているEC2Launchの間の仕様の違いに起因している可能性があります。
EC2Configではインスタンスの起動時に毎回、OSのルーティングテーブルに対し
- 169.254.169.250
- 169.254.169.251
- 169.254.169.254
に対するルート情報の追加(または更新)が行われていました。
そのため、インスタンスからAMIを取得してそのAMIで異なるCIDRのVPCに再ローンチした場合でも、上記アドレスに対するGatewayが正しく設定しなおされました。
GatewayはVPCの仮想ルータ(VPCのCIDRのネットワークアドレスに+1した値)となる
一方EC2Launchでは、このRoute追加が初回起動時のみ実施されます。
ですので異なるCIDRのVPCに再ローンチした場合にGatewayが正しいものに更新されず、AWSがもつWindowsライセンスサーバやメタデータにアクセスできないといった事象が発生します。
冒頭のライセンス切れを示すメッセージは、これによるものの可能性があります。
解決方法
以下の手順を実施すると、メタデータに対するルーティングを自動的に上書きしてくれます。
1. PowerShellコンソールを開く
2. 次のコマンドレットを実行し、EC2Launchモジュールをインポートする
PS> Import-Module C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1
3. 次のようにAdd-Routesを実行する
PS> Add-Routes
※確認はroute printコマンドで可能
なお「初回起動時のみroute追加を実施する」というEC2Launchの仕様は2017年11月01日現在のものであり、
将来的に変更される可能性があることもご留意ください。