web-dev-qa-db-ja.com

AWS EC2 Auto Scaling Group:MinとMaxを取得しますが、望ましいインスタンスの制限は何ですか?

AWS EC2でAuto Scalingグループを設定すると、MinおよびMaxの境界が意味を持つように見えます。

  • ポリシーに基づいてスケールダウンする最小インスタンス数
  • ポリシーに基づいてスケールアップするインスタンスの最大数

しかし、Desiredが何に影響するのか、頭を包むことはできませんでした。

私は常にDesiredMinに設定しているだけです。なぜなら、一般にAmazonに十分な十分の一を支払うためであり、負荷を処理するインスタンスが必要でない限り、Minインスタンスの数。

ElasticBeanstalkを使用してMinを1に設定し、Maxを2に設定すると、Desiredが2に設定されます(もちろん!)。 Desiredの値を選択できません。

インスタンスの異なるDesired数のユースケースは何ですか?それはどのように違いますか?必要に応じてAWSがDesiredよりも小さいスケールになると予想される場合、Minよりも大きいですか?

53
Ray

AWSサポートからの「最小、希望、最大」値の説明は次のとおりです。

MIN:これは、自動スケールグループで実行できるインスタンスの最小数になります。スケールダウンCloudWatchアラームがトリガーされた場合、自動スケールグループはこの数以下のインスタンスを終了しません

望ましい:スケールアップイベントのためにCloudWatchアラームを作動させると、オートスケーラーに通知して指定されたより高い量に変更するように通知し、オートスケーラーはその数に合わせてインスタンスを開始します。 CloudWatchアラームを作動させてスケールダウンすると、希望する自動スケーラーが指定されたより小さな数値に変更され、自動スケーラーはインスタンスを終了してその数値に到達します。

MAX:これは、自動スケールグループで実行できるインスタンスの最大数になります。スケールアップCloudWatchアラームがトリガーされたままの場合、自動スケールグループは指定された最大量を超えるインスタンスを作成しません。

55

スライド範囲UI要素のように考えてください。

enter image description here

Minとmaxでは、インスタンスのスケーリングの下限を設定しています。必要な容量があれば、現在のインスタンス数をホバーさせるように設定します。

例:マーケティングメールや製品の発売により、アプリケーションに大きな負荷がかかることがわかっている場合...事前に希望の容量を拡張するだけです:

aws autoscaling set-desired-capacity --auto-scaling-group-name my-auto-scaling-group --desired-capacity 2 --honor-cooldown

ソース

24
Erik Ahlswede

必要に応じてAWSが最小よりも大きい場合、AWSが希望よりも小さいと予測される場合

これは、AutoScalingポリシーに基づいてCloudWatchアラームを設定すると発生します。そのアラームがトリガーされるたびに、DesiredCountがconfigに記載されているものに更新されます。

たとえば、AutoScalingGroup configにMin = 1、Desired = 3、Max = 5があり、AutoScalingPolicyに設定されたアラームがあり、連続10分間でCPU使用率が<50%の場合、Remove 1 instancesその後、DesiredCount = MinCountになるまでアラームがトリガーされるたびに、インスタンスカウントが1ずつ減り続けます。

教訓:MinCountを> 0または= DesiredCountに設定します。これにより、mincount = 0でCPU使用率が下がったときにアプリケーションが停止しないようにします。

7
A.K.Desai

「望ましい」は(必然的に)あいまいです。

  • これは、「initial」のインスタンス数を意味します。なぜ単に「初期」ではないのですか?数はイベントの自動スケーリングによって変化する可能性があるためです。
  • つまり、「current」インスタンスの数を意味します。なぜ「現在」だけではないのですか?自動スケーリングイベント中に、インスタンスが開始/終了するためです。それらのインスタンスは、「現在の」インスタンス数にはカウントされません。 「現在」では、ユーザーは操作可能なインスタンスを期待しています。
  • つまり、「target」インスタンスの数を意味します。なぜ「ターゲット」にしないのですか?私は「ターゲット」が「望ましい」と同じくらい(曖昧で)良いと思います...
1
Dai

私の読書に基づいて、素人の言葉では、DesiredCapacity値はスケールインおよびスケールアウトイベントで自動的に更新されます。

言い換えると、

スケールインまたはスケールアウトは、DesiredCapacity値を増減することにより行われます。

0
sateesh

必要な容量とは、自動スケーリングを起動したときに起動/起動されるインスタンスの数を意味します。つまり、必要な容量= 4の場合、スケールアップまたはスケールダウンイベントがトリガーされるまで、4つのインスタンスが実行され続けます。スケールアップイベントが発生すると、インスタンスの数は最大容量まで増加し、スケールダウンイベントが発生すると、最小容量まで減少します。

間違っている場合は修正してください、ありがとう。

0

希望する容量が低下することに気付き、新しいインスタンスが起動しなかったとき

  1. インスタンスの1つをスタンバイに設定します。実行し続けましたが、ELBから切り離されました(ELB DNS経由でアクセスした場合、リクエストはその特定のインスタンスに転送されませんでした)。 AWSによって開始された新しいインスタンスはありません。むしろ望ましい容量が1つ減少しました
  2. インスタンスの状態を(standbyから)変更すると、インスタンスは再びELBにアタッチされました(ELB DNSを介してアクセスすると、インスタンスはリクエストを取得し始めました)。必要な容量が1増加し、2になりました

したがって、ELBにアタッチされたインスタンスは、minおよびmaxで設定されたしきい値の制限を超えることはできませんが、希望する容量は、スケールインまたはスケールアウトイベントに基づいて自動的に調整または変更されます。それは間違いなく私にとって未知の何かでした。

これは、これがその時点で各ELBに必要な容量であることをAWSに知らせる方法かもしれません。

0
Farwa Naqvi