しばやん雑記

ASP.NET Core とメイドさんが大好きなフリーランスのプログラマーのブログ

Elastic Beanstalk で Windows Server Platform v2 が提供されるようになった

先月の話ですが、これまで Linux 系でしか提供されていなかった Platform v2 が、やっと Windows Server 2012 R2 / 2016 にも提供されるようになったようです。

これで Linux 系と同様に拡張ヘルスレポートや Immutable でのデプロイも設定可能になりました。

v2 から Platform のバージョンがちゃんと管理されるようになるので、そういう点でもありがたいアップデートだと思います。これまでは AMI 名で判断するしかなかったので。

リリースノート曰く、v2 ではデフォルトのルートボリュームサイズが 30GB から 35GB になったらしいです。そして v1 から v2 への移行すると拡張ヘルスレポートは無効になったままなので、手動で有効化する必要があるようです。

v1 と v2 は互換性があるので、AWS CLI とかで Platform を変えてしまえば良いはずです。

Console から手動で作成する時は Windows / .NET を選ぶとデフォルトで v2 が使われるようになってます。

f:id:shiba-yan:20190307011128p:plain

デプロイメントポリシーは Rolling 以外に Rolling with additional batch と Immutable が選べるようになっています。アプリケーションのデプロイ時だけではなく、設定の変更時にも Immutable を設定できます。

f:id:shiba-yan:20190307012116p:plain

とはいえ Immutable は Windows Server の起動時間を考えると少ししんどいケースが多そうです。デプロイを頻繁に行うケースには完全に向かないので、デプロイでの安定を求める場合だけですね。

そして割と Windows Server との相性が良いかなと思うのが Managed Platform Update ですね。Windows Server は毎月 1 回のアップデートが決まっているので、有効にしておくと楽できます。

f:id:shiba-yan:20190307011436p:plain

まだ Windows Server での Managed Platform Update は実績がないので、とりあえず最初は様子見を見として本番には入れない方が良いと思います。マイナーバージョンアップのタイミングも良くわかってないですし。

とりあえず Windows Server 2016 の Platform v2.0.1 な環境を作成して Immutable なデプロイだけ試しておきました。アプリケーションのデプロイ時にちゃんとポリシーが表示されます。

f:id:shiba-yan:20190307011513p:plain

基本的には挙動は Linux 系と同じなので、テンポラリの Auto Scaling Group とそれに紐づく EC2 が作成されて、新しいアプリのデプロイが行われます。

当然ながらダウンタイムの発生や Rolling のように一時的に稼働台数が減ったりしないですし、デプロイが失敗した時も動作している環境はそのままなので安全です。

f:id:shiba-yan:20190307011457p:plain

拡張ヘルスレポートが有効なので、デプロイ中もこれまでより多くの情報が確認出来ます。もっと早くに使えるようになって欲しかったですね。

f:id:shiba-yan:20190307011446p:plain

2 年遅れぐらいで Windows Server が追いついた形ですが、これまでよりモニタリング面で有利なのでサクッとアップデートしておいてよいと思います。

ひとまずは次の月例アップデート後にどうなるかを待つことにします。