AWSでは、「アプリケーションロードバランサーのターゲットあたりのリクエスト数」に基づいてスケーリングする自動スケーリングポリシーを作成できます。
このように:
これには、最小で1つのインスタンス、最大で5があります。これは、ElbTargetGroupで10の「ターゲットあたりのリクエスト数」を達成することを目的としています。
私の質問は、「ターゲットごとのアプリケーションロードバランサーリクエスト数」とは何ですか?
これは:
ドキュメント ここ はただ言う:
ターゲットグループ内の各ターゲットが受信したリクエストの平均数。 TargetGroupディメンションを使用してターゲットグループを指定する必要があります。
また、新しいインスタンスの作成を開始するには、そのターゲットをどのくらい超えている必要がありますか?私が尋ねる主な理由は、このロードバランサーに多くのリクエストを送信したが、スケーリングイベントがトリガーされていないことです。
答えは最初の選択です: "ロードバランサーからターゲットへのアクティブな接続の数をターゲットの数で割った値"メトリックがiまたは5を超えているかどうか分は、以下で説明するようにCloudWatchの設定によって異なります。
ロードバランサーのすべてのメトリック定義は、 AWS ALB doc で確認できます。
「RequestCount」と「RequestCountPerTarget」の両方があり、後者は前者をアクティブなターゲットの数で割ったものであるというわけではありません。
CloudWatchコンソールでこれらの指標の両方を確認できますが、EC2コンソールで確認できます。左側の痛みで[ターゲットグループ]を選択し、次に[監視]タブを選択します。 (ターゲットグループの監視タブとロードバランサー画面の監視の間には多くの重複があることに注意してください)
変更後に自動スケーリングが機能するまでにかかる時間に関しては、デフォルトではCloudWatchが5分ごとにメトリクスをチェックすることに注意してください。 AWSが推奨 詳細なモニタリングをオンにして、毎分メトリックを取得します
RequestCountPerTarget
はロードバランサーの指標です。 ドキュメント で概説されているように、ELBメトリックは常に1分を超えています。
Elastic Load Balancingは、リクエストがロードバランサーを通過している場合にのみ、メトリックスをCloudWatchにレポートします。ロードバランサーを通過するリクエストがある場合、Elastic Load Balancingは、60秒間隔でそのメトリックを測定して送信します。ロードバランサーを通過するリクエストがない場合、またはメトリックのデータがない場合、メトリックは報告されません。
したがって、このメトリックに固執する場合、詳細なEC2インスタンスメトリックに料金を支払う必要はありません。これは、インスタンスでCPU使用率などを使用する必要がある場合にのみ関係します。