Schritt 5: Konfigurieren des Services für die Verwendung von Service Auto Scaling - Amazon ECS

Schritt 5: Konfigurieren des Services für die Verwendung von Service Auto Scaling

Sie haben die Möglichkeit, Ihren Amazon-ECS-Service für die Verwendung von Auto Scaling zu konfigurieren, um in Ihrem Amazon-ECS-Service je nach Bedarf mehr oder weniger Antworten auf CloudWatch-Alarme zu erhalten.

Amazon ECS-Service Auto Scaling unterstützt die folgenden Typen von Skalierungsrichtlinien:

  • Skalierungsrichtlinien für die Ziel-Nachverfolgung (Empfohlen): Erhöhen oder Verringern der Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage eines Zielwerts für eine bestimmte Metrik. Dies ähnelt der Art und Weise, wie ein Thermostat die Temperatur in Ihrem Zuhause konstant hält. Sie wählen eine Temperatur aus und der Thermostat erledigt den Rest.

  • Richtlinien zur schrittweisen Skalierung – Erhöht oder verringert die Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage einer Gruppe von Skalierungsanpassungen, die als Schrittanpassungen bezeichnet werden und je nach Ausmaß der Alarmüberschreitung variieren.

Weitere Informationen finden Sie unter Service Auto Scaling.

So konfigurieren Sie grundlegende Service Auto Scaling-Parameter

  1. Wenn Sie dies noch nicht getan haben, folgen Sie den Anweisungen zur grundlegenden Service-Konfiguration unter Schritt 1: Konfigurieren der grundlegenden Serviceparameter.

  2. Wählen Sie auf der Seite Set Auto Scaling Configure Service Auto Scaling to adjust your service’s desired count aus.

  3. Geben Sie unter Minimum number of tasks (Mindestanzahl an Aufgaben) die Untergrenze der Anzahl der Aufgaben an, die Auto Scaling verwenden kann. Die gewünschte Anzahl Ihres Services wird nicht automatisch unter diesem Betrag angepasst werden.

  4. Das Feld Desired number of tasks (Gewünschte Aufgabenanzahl) wird mit dem Wert vorausgefüllt, den Sie zuvor eingegeben haben. Sie können die gewünschte Anzahl für Ihren Service zu diesem Zeitpunkt ändern, dieser Wert muss aber zwischen der auf dieser Seite angegebenen minimalen und maximalen Anzahl von Aufgaben liegen.

  5. Geben Sie unter Maximum number of tasks (Höchstanzahl an Aufgaben) die Obergrenze der Anzahl der Aufgaben an, die Auto Scaling verwenden kann. Die gewünschte Anzahl Ihres Services wird nicht automatisch über diesem Betrag angepasst.

  6. Wählen Sie für IAM role for Service Auto Scaling (IAM-Rolle für Service Auto Scaling) die ecsAutoscaleRole. Wenn diese Rolle nicht vorhanden ist, wählen Sie Create new role (Neue Rolle erstellen), damit die Konsole sie für Sie erstellt.

  7. Die folgenden Verfahren enthalten eine Anleitung zum Erstellen von Richtlinien für Ziel-Nachverfolgung oder schrittweise Skalierung für Ihren Service. Wählen Sie den gewünschten Typ der Skalierungsrichtlinie aus.

In diesen Schritten wird erläutert, wie Sie Skalierungsrichtlinien für Ziel-Nachverfolgung und CloudWatch-Alarme erstellen, mit denen Sie Skalierungsaktivitäten für Ihren Service auslösen können.

So konfigurieren Sie Skalierungsrichtlinien für Ziel-Nachverfolgung für Ihren Service

  1. Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.

  2. Geben Sie für Policy name (Richtlinienname) einen beschreibenden Namen für Ihre Richtlinie ein.

  3. Wählen Sie für ECS service metric (ECS-Servicemetrik) die Metrik, die verfolgt werden soll. Die folgenden Metriken sind verfügbar:

    • ECSServiceAverageCPUAuslastung: Durchschnittliche CPU-Auslastung des Service.

    • ECSServiceAverageMemoryUtilisation: Durchschnittliche Speicherauslastung des Service.

    • ALBRequestCountPerTarget: Anzahl der Anforderungen, die pro Ziel in einer Application Load Balancer-Zielgruppe abgeschlossen wurden.

  4. Geben Sie unter Target value (Zielwert) den metrischen Wert ein, den die Richtlinie einhalten soll. Verwenden Sie z. B. einen Zielwert von 1000 für ALBRequestCountPerTarget, oder einen Zielwert von 75(%) für ECSServiceAverageCPUUtilization.

  5. Geben Sie für Scale-out cooldown period (Ruhephase vor Hochskalierung) die Zeitspanne in Sekunden ein, nach der eine Scale-Out-Aktivität abgeschlossen sein muss, bevor eine weitere Scale-Out-Aktivität gestartet werden kann. Während die Ruhephase wirksam ist, wird die Kapazität, die durch das vorherige Skalierungsereignis nach oben (Scale-Out) hinzugefügt wurde, das die Ruhephase initiiert hat, als Teil der gewünschten Kapazität für das nächste Skalierungsereignis nach oben berechnet. Der Zweck ist eine kontinuierliche (jedoch nicht exzessive) Erweiterung.

  6. Geben Sie für Scale-in cooldown period (Ruhephase vor Herunterskalierung) die Zeitspanne in Sekunden ein, nach der eine Scale-in-Aktivität abgeschlossen sein muss, bevor eine weitere Scale-in-Aktivität gestartet werden kann. Die Ruhephase wird verwendet, um nachfolgende Anforderungen zum Herunterskalieren so lange zu blockieren, bis sie abgelaufen ist. Der Zweck ist eine vorsichtige Verkleinerung, um die Verfügbarkeit Ihrer Anwendung zu schützen. Wenn während der Ruhephase nach einer Abwärts-Skalierung jedoch ein anderer Alarm eine Aufwärts-Skalierung auslöst, skaliert das Auto Scaling Ihr skalierbares Ziel sofort.

  7. (Optional) Um die Abskalierungs-Aktionen für diese Richtlinie zu deaktivieren, wählen Sie Disable scale-in (Abskalierung deaktivieren). Auf diese Weise können Sie später eine separate Skalierungsrichtlinie für das Skale-in erstellen.

  8. Klicken Sie auf Next step.

In diesen Schritten wird erläutert, wie Sie Skalierungsrichtlinien für schrittweise Skalierung und CloudWatch-Alarme erstellen, mit denen Sie Skalierungsaktivitäten für Ihren Service auslösen können. Sie können einen Scale out-Alarm erstellen, um die gewünschte Anzahl für Ihren Service zu erhöhen, und einen Scale in-Alarm, um die gewünschte Anzahl für Ihren Service zu senken.

So konfigurieren Sie Skalierungsrichtlinien für die schrittweise Skalierung für Ihren Service

  1. Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Step scaling (Schrittweise Skalierung) aus.

  2. Geben Sie für Policy name (Richtlinienname) einen beschreibenden Namen für Ihre Richtlinie ein.

  3. Wählen Sie für Execute policy when (Richtlinie ausführen wenn) den CloudWatch-Alarm aus, der verwendet werden soll, um Ihren Service auf- oder abwärts zu skalieren.

    Sie können einen vorhandenen CloudWatch-Alarm verwenden, den Sie zuvor erstellt haben, oder einen neuen Alarm erstellen. Der Workflow Create new alarm (Neuen Alarm erstellen) ermöglicht Ihnen, CloudWatch-Alarme basierend auf dem Wert für CPUUtilization und MemoryUtilization des Service festzulegen, den Sie erstellen. Wenn Sie andere Metriken verwenden möchten, können Sie Ihren Alarm in der CloudWatch-Konsole erstellen und dann zu diesem Assistenten zurückkehren, um den betreffenden Alarm auszuwählen.

  4. (Optional) Wenn Sie einen neuen Alarm erstellen möchten, führen Sie die folgenden Schritte aus.

    1. Geben Sie unter Alarm name einen aussagekräftigen Namen für Ihren Alarm ein. Wenn der Alarm z. B. ausgelöst werden soll, wenn die CPU-Auslastung Ihres Service 75 % überschreitet, könnten Sie den Alarm service_name-cpu-gt-75 nennen.

    2. Wählen Sie unter ECS service metric die Service-Metrik aus, die für den Alarm verwendet werden soll. Weitere Informationen finden Sie unter Service Auto Scaling.

    3. Geben Sie unter Alarm threshold die folgenden Informationen ein, um den Alarm zu konfigurieren:

      • Wählen Sie die CloudWatch-Statistik für den Alarm aus (der Standardwert Average (Durchschnitt) funktioniert in vielen Fällen). Weitere Informationen finden Sie unter Statistiken im Amazon CloudWatch-Benutzerhandbuch.

      • Wählen Sie den Vergleichsoperator für den Alarm aus und geben Sie den Wert ein, auf den der Vergleichsoperator prüft (z. B. > und 75).

      • Geben Sie die Anzahl der aufeinanderfolgende Zeiträume ein, nach denen der Alarm ausgelöst wird, sowie die Länge des Zeitraums. So würde es bei zwei aufeinanderfolgenden Zeiträume von je 5 Minuten z. B. 10 Minuten dauern, bis der Alarm ausgelöst wird. Da Ihre Amazon-ECS-Aufgaben schnell nach oben und nach unten skaliert werden können, sollten Sie berücksichtigen, dass Sie einer niedrigen Anzahl aufeinanderfolgender Zeiträume und einer kurzen Länge der Zeiträume schneller auf Alarme reagieren können.

    4. Wählen Sie Save (Speichern) aus.

  5. Geben Sie unter Scaling action die folgenden Informationen ein, um die Reaktion Ihres Service auf den Alarm zu konfigurieren:

    • Legen Sie fest, ob zur Anzahl dazu gerechnet, davon abgezogen oder eine bestimmte gewünschte Anzahl für den Service festgelegt werden soll.

    • Wenn Sie Aufgaben hinzufügen oder verringern möchten, geben Sie die Anzahl der Aufgaben (oder den Prozentsatz der vorhandenen Aufgaben) ein, um die bzw. den erhöht oder verringert werden soll, wenn die Skalierungsaktion ausgelöst wird. Wenn Sie die gewünschte Anzahl festlegen möchten, geben Sie die gewünschte Anzahl ein, auf die der Service eingestellt werden soll, wenn die Skalierungsaktion ausgelöst wird.

    • (Optional) Wenn Sie Aufgaben hinzufügen oder verringern möchten, legen Sie fest, ob der vorherige Wert als Ganzzahl oder Prozentsatz der vorhandenen gewünschten Anzahl verwendet werden soll.

    • Geben Sie den unteren Grenzwert der Schrittanpassung der Skalierung ein. Für die erste Skalierungsaktion ist dieser Wert standardmäßig der metrische Wert, bei dem Ihr Alarm ausgelöst wird. Die nächste Skalierungsaktion fügt beispielsweise 100 % der vorhandenen gewünschten Anzahl hinzu, wenn CPU-Auslastung größer als 75 % ist.

      
                                        Beispiel der Skalierungsaktivität
  6. (Optional) Sie können Schritt 5 wiederholen, um für einen einzelnen Alarm mehrere Skalierungsaktionen zu konfigurieren (z. B. zum Hinzufügen einer Aufgabe bei einer CPU-Auslastung zwischen 75-85 % und von zwei Aufgaben bei einer CPU-Auslastung größer als 85 %).

  7. (Optional) Wenn Sie die vorhandene gewünschte Anzahl um einen Prozentsatz erhöhen oder verringern möchten, geben Sie unter Add tasks in increments of N task(s) einen minimalen Inkrementwert ein.

  8. Geben Sie unter Cooldown period die Anzahl von Sekunden zwischen Skalierungsaktionen ein.

  9. Wiederholen Sie Schritt 1 bis Schritt 8 für die Scale in-Richtlinie und wählen Sie dann Save (Speichern).

  10. Wählen Sie Next step (Nächster Schritt), um fortzufahren, und navigieren Sie zu Schritt 6: Überprüfen und Erstellen Ihres Service.