[アップデート] Amazon EC2 Auto Scaling のヘルスチェックで「Amazon EBS ヘルスチェック」がサポートされたので使ってみた

[アップデート] Amazon EC2 Auto Scaling のヘルスチェックで「Amazon EBS ヘルスチェック」がサポートされたので使ってみた

Clock Icon2024.09.01

いわさです。

先日のアップデートで Amazon EC2 のステータスチェックで、EBS ボリュームステータスについても検出出来るようになりました。

https://dev.classmethod.jp/articles/amazon-ec2-status-checks-reachability-health-ebs-volume/

この EC2 ステータスの属性追加に伴って EC2 Auto Scaling でも EC2 のヘルスチェックに EBS 到達性ステータスを設定出来るようになりました。

https://github.com/aws/aws-cli/commit/517ebf48dae0f455d43f4e6d3dbe8bff754855cc

これまでは EBS 障害までカバーするために CloudWatch メトリクスのStatusCheckFailed_AttachedEBSを監視する必要があったのですが、今回のアップデートで EBS 到達性チェックについて非常に簡単に設定しやすくなりました。

設定方法

Auto Scaling グループの作成を行う際にヘルスチェックの項目があり、EC2 ステータス以外にも様々なソースから通知を受け取ることが出来ます。
例えば ELB や VPC Lattice によるターゲットグループのヘルスチェック機能を ASG で参照させることが出来ます。
今回こちらに追加のヘルスチェックタイプとして「Amazon EBS ヘルスチェック」が追加されています。

32BEAB7D-E7F6-49E6-8CF9-219F214028B3.png

AWS CLI の場合だと前述のとおり v1.34.4 でサポートされるようになりました。使えるようになったのは 2024 年 8 月 23 日ごろでしょうか。
CreateAutoScalingGroup の HealthCheckType パラメータで EBS を指定出来るようになりました。

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/create-auto-scaling-group.html

EC2 のアップデートに依存した機能なので、同様に Nitro System インスタンスでのみ利用可能です。

試してみた

実際に試してみたいと思います。
ASG のヘルスチェックで EBS ヘルスチェックをオンにします。

D8777643-EB3A-4E99-9AB9-E4B45059038B.png

適当な起動テンプレートですが、インスタンスが 1 台自動で立ち上がるように構成していきます。

000F30EA-C52A-4CE8-8F66-7FD86A121858.png

AWS FIS で EBS の I/O 停止を発生させることが出来るのでこの機能を使って、EBS 障害をシミュレートします。

https://dev.classmethod.jp/articles/aws-fis-pause-io-action-ebs/

EC2 コンソール上でステータスチェックに失敗するようになりました。

F416686F-64B6-40CC-AAED-FA3FC2D24216.png

暫くすると ASG 側でも EBS のヘルスチェックステータスが検出され、インスタンス管理画面上でも Unhealthy になることが確認出来ました。
期待どおり EBS 障害が発生したインスタンスが置き換えられています。

00A453E5-31CF-47C8-97DB-DA9F26BC232C.png

さいごに

本日は Amazon EC2 Auto Scaling のヘルスチェックで「Amazon EBS ヘルスチェック」がサポートされたので使ってみました。

ASG + ALB などでロードバランサー側のヘルスチェックを使うことはよくあると思うのですが、EBS ヘルスチェックについても簡単に設定出来るようになりましたね。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.