AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
CloudWatch アラームの状態が変化しても Amazon EC2 Auto Scaling ポリシーが呼び出されない理由を教えてください。
Amazon CloudWatch アラームで Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling ポリシーを呼び出すよう設定されていますが、機能しません。
簡単な説明
CloudWatch アラームが新しいアラーム状態に移行すると、アラームからは、そのアラーム状態に設定したアクションすべてが呼び出されます。Amazon EC2 Auto Scaling では、アラームに設定した期間を利用して、アラームの状態を変更すべきかどうかが判断されます。ただし、アラームが新しい状態のままだと、設定した期間に関係なく、アラームから Auto Scaling アクションが毎分 1 回呼び出されます。
CloudWatch アラームの状態が変化しても Amazon EC2 Auto Scaling ポリシーが呼び出されない一般的な理由は次のとおりです。
- Auto Scaling アクションが CloudWatch アラームに設定されていない。
- Amazon EC2 Auto Scaling グループのスケーリングポリシーが設定されていない。このため、Auto Scaling グループの評価がされなくなります。
- Auto Scaling グループにあるシンプルスケーリングポリシーかステップスケーリングポリシーが競合している。このため、一部のポリシーが開始されなくなります。
- Auto Scaling グループのライフサイクルフックが完了していない。このため、シンプルスケーリングポリシーがすべて適用されなくなります。保留中のインスタンスがあると、ステップスケーリングポリシーとターゲット追跡スケーリングポリシーにも遅延が生じます。これは、Auto Scaling では、ライフサイクルフックとウォームアップ時間が終了するまで、インスタンスが (スケールアウトで) グループのキャパシティとしてカウントされないためです。過度なスケーリングを防ぐため、インスタンスは (スケールインで) グループのキャパシティとしてカウントされます。
- ライフサイクルフックが終了するのは、タイムアウトになるか、CompleteLifecycleAction オペレーションまたは AWS コマンドラインインターフェイス (AWS CLI) を呼び出したときである。
解決方法
開始する前に、CloudWatch アラームが ALARM 状態になっていることを確認します。アラームの設定が監視対象のメトリクスしきい値と一致しない場合、そのアラームは ALARM 状態に移行しない可能性があります。アラームの状態が変化しないと、Auto Scaling ポリシーは呼び出されません。CloudWatch アラームがどのように評価されるかの詳細については、「Evaluating an alarm」(アラームを評価する) を参照してください。
アラームのしきい値を確認して、CloudWatch アラームが想定どおりに ALARM 状態になることを確認します。しきい値を増減させ、期待値に合わせます。また、アラームの期間と評価期間を確認します。Auto Scaling ポリシーを想定どおりに呼び出すためには、アラームの期間と評価期間の編集が必要になる場合もあります。
重要: アラームの作成や編集をする際は、次の点を留意してください。
- Auto Scaling グループのスケーリングプロセスを中断していないことを確認してください。スケーリングプロセスを中断している場合は、このプロセスを再開してください。
- ターゲット追跡スケーリングポリシーに関連付けられるアラームの作成、編集、削除はしないでください。こうしたアラームは自動的に作成されるものであり、変更すると意図しない影響が生じる可能性があります。こうしたアラームのしきい値は、スケーリングポリシーで設定した目標値に基づいて自動的に決定されます。
Auto Scaling アクションが CloudWatch アラームで許可されているかどうかを確認する
CloudWatch アラームで Auto Scaling ポリシーを呼び出すには、アラームの設定で ActionsEnabled パラメータをオンにします。アラームの設定で ActionsEnabled パラメータが true に設定されていることを確認します。
注: CloudWatch コンソールでアラームの作成や更新をする場合、ActionsEnabled パラメータはデフォルトで true に設定されます。
AWS CLI を使用してアラームアクションを確認し許可するには、次の手順を実行します。
-
describe-alarms コマンドを使用して設定を確認します。
aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'注: myalarm は、該当するアラームの ID に置き換えてください。
-
出力を確認します。ActionsEnabled パラメータが true に設定されていない場合は、enable-alarm-actions コマンドでアラームアクションをオンにします。
aws cloudwatch enable-alarm-actions --alarm-names myalarm
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
CloudWatch API でアラームアクションを確認して有効にするには、次の手順を実行します。
- DescribeAlarms オペレーションを呼び出して、現在の設定を確認します。
- アラームでアクションが許可されていない場合は、EnableAlarmActions オペレーションを呼び出してアクションを有効にします。
Auto Scaling グループのシンプルスケーリングポリシーとステップスケーリングポリシーを確認する
グループのスケーリングポリシーを Amazon EC2 コンソールで確認するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [自動スケーリング] で、[Auto Scaling グループ] を選択します。
- コンテンツペインで、該当する Auto Scaling グループを選択します。
- [自動スケーリング] タブを選択し、ポリシータイプをメモします。
スケーリングポリシーを AWS CLI で確認するには、describe-policies コマンドに --policy-types パラメータを指定して実行します。スケーリングポリシーを AWS API で確認するには、DescribePolicies オペレーションを PolicyTypes パラメータで呼び出します。出力には、各ポリシータイプが一覧表示されます。
シンプルスケーリングポリシーが 1 つ有効になっていると、他のシンプルスケーリングポリシーは次の条件が満たされるまで呼び出されません。
- 有効なシンプルスケーリングポリシーが完了した。
- Auto Scaling ポリシーのクールダウン期間が経過した。シンプルスケーリングポリシーは、Auto Scaling ポリシーのデフォルトか指定のクールダウン期間に従います。
注: シンプルスケーリングポリシーを実行しても、ステップスケーリングポリシーやターゲット追跡スケーリングポリシーが完全にブロックされるわけではありません。矛盾するポリシーが同時に適用されることがないようにしてください。
Auto Scaling ポリシーに Auto Scaling ライフサイクルフックがないか確認する
シンプルスケーリングポリシーのスケーリングアクティビティは、Auto Scaling ライフサイクルフックが実行されている間は一時停止します。ただし、ライフサイクルフックが実行中であっても、ステップスケーリングポリシーは実行されます。
すべてのライフサイクルフックが CONTINUE または ABANDON という結果になることを、グローバルタイムアウト期間かハートビートタイムアウト期間が終了してから確認します。
ライフサイクルフックアクションを Amazon EC2 コンソールで確認するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [自動スケーリング] で、[Auto Scaling グループ] を選択します。
- コンテンツペインで、該当する Auto Scaling グループを選択します。
- [アクティビティ] タブを選択し、[アクティビティ履歴] セクションまでスクロールします。
- アクティビティに進行中のライフサイクルフックアクションがないかどうかを確認します。
ライフサイクルフックを完了する手順については、「Complete a lifecycle action」(ライフサイクルアクションを完了する) を参照してください。
関連情報
Amazon EC2 Auto Scaling グループでのスケーリングに関する問題をトラブルシューティングする方法を教えてください
- 言語
- 日本語
