Amazon EC2 Auto Scaling のスケールアウトが遅い時に確認すること

2023.03.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていること

Amazon EC2 Auto Scaling のターゲット追跡スケーリングポリシーを作成しました。
ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、Auto Scaling グループをスケールアウトする挙動と認識してます。
指定されたメトリクスがターゲット値を超えているものの、時々スケールアウトするまでの応答時間が長く掛かっていることを確認しています。 確認するべき点(原因)と、対処法を教えてください。

どう対応すればいいの?

確認するべき点(原因)

ターゲットグループに対して CloudWatch の詳細モニターリングを使用しているか確認する
CloudWatch の基本モニタリング は 5 分間隔でメトリクスが公開されます。

基本モニタリング データは自動的に 5 分間隔で取得されます。
詳細モニタリング データは 1 分間隔で取得されます。このレベルのデータを取得するには、インスタンスのデータ取得を明確に有効にする必要があります。詳細モニタリングを有効にしたインスタンスでは、同様のインスタンスグループの集約データを取得することもできます。

ドキュメント 記載の通り、CloudWatch の基本モニタリングのメトリクスにてターゲット値を設定している場合、上記の仕様に従い応答時間が長くなり古いメトリクスデータに基づいてスケーリングが行われる可能性があります。

スケーリングポリシーで EC2 インスタンスメトリクスを使用する場合は、メトリクス値の変化に迅速に対応できるように、これらのメトリクスを 1 分間隔で設定することをお勧めします。インスタンスメトリクスのスケーリングを 5 分間隔に設定すると、応答時間が長くなり、古いメトリクスデータに基づいてスケーリングが行われる可能性があります。

弊社ブログ も参考になると思いますので合わせてご確認ください。

対処法

CloudWatch の詳細モニターリングを使用する
スケーリングポリシーで EC2 インスタンスメトリクスを使用する場合、AWS ではメトリクス値の変化に迅速に対応できるように詳細モニタリングを明示的に有効にすることを強くお勧めしています。
参考情報 より、手順や留意点の記載があるので確認いただきご対応ください。

Auto Scaling グループを作成する前に、アプリケーションに適したモニタリングタイプを許可する起動テンプレートまたは起動設定を作成する必要があります。グループにスケーリングポリシーを追加する場合は、負荷の変動に迅速に対応するために、詳細モニタリングを使用して EC2 インスタンスのメトリクスデータを 1 分単位で取得することを強くお勧めします。

参考資料