2

Ich arbeite an einer API mit Microservice-Architektur. Ich verwende ECS über Elastic Beanstalk. Jeder Microservice ist eine langwierige Aufgabe (die auf ECS einem einzelnen Container entspricht). Ich habe gerade 10 Aufgaben bestanden und kann nicht mehr bereitstellen.AWS ECS: Wie komme ich mit meiner Microservice-Architektur-API zu "zu vielen Containern" zurecht?

ERROR: Service:AmazonECS, Code:ClientException, Message:Too many containers., Class:com.amazonaws.services.ecs.model.ClientException

According to the documentation, 10 Aufgabendefinition Behältnisse ist eine harte Grenze für ECS.

Gibt es eine Möglichkeit, dies zu umgehen? Wie kann ich meiner API auf ECS weiterhin Services hinzufügen? Diese Beschränkung bedeutet für mich, dass ich den Dienst nicht wie vorgesehen nutze. Was ist der beste Weg, um eine Sammlung von Microservices als separaten Docker-Container auf AWS bereitzustellen?

EDIT: Mein Verständnis der Beziehung zwischen Containern und Aufgaben war völlig falsch. Es sieht so aus, als ob die gesamte API eine einzelne Aufgabe ist und jeder Container in meiner Dockerrun.aws.json ein Container innerhalb der API-Aufgabe ist. Die Begrenzung ist also ein Limit für Container innerhalb einer einzelnen Aufgabe.

+0

Sie müssen das Service-Limit erhöhen, indem Sie AWS-Unterstützung kontaktieren – error2007s

+1

@ error2007s Diese besondere Einschränkung ist unter "andere Einschränkungen für Amazon ECS, die _cannot_ geändert werden können" – raddevon

+0

Können Sie auf Lambda umrüsten? Dort gibt es keine solche Beschränkung; Sie sind nur auf die Anzahl der IP-Adressen beschränkt, die im Subnetz verfügbar sind, in dem die Funktion aufgerufen wird. –

Antwort

-2

Da es nicht änderbar ist, bedeutet dies, dass Sie eine neue Aufgabendefinition benötigen.

Task definition max containers bedeutet, dass Sie 10 pro Aufgabe Definition haben können. Klonen Sie einfach die Definition, wenn Sie so viele weitere Container benötigen.

Nehmen Sie es mit einem Körnchen Salz, aber wenn Sie Ihre Aufgaben pro Instanz festlegen, können Sie nicht stattdessen mit dem Erstellen von AMIs arbeiten oder möglicherweise mehrere Aufgaben auf der gleichen Container-Instanz gehen lassen?

+0

Wie kann ich Elastic Beanstalk konfigurieren, um separate Aufgaben zu erstellen? Es scheint, alle Behälter in eine einzelne Aufgabe zu werfen, und ich kann eine dokumentierte Weise nicht finden, sie zu konfigurieren, um sie zu trennen. – raddevon

+0

Sie haben amazon-ecs getaggt, das können Sie mit Bohnenstange nicht machen. Ich würde vorschlagen, Ihre Frage erneut zu markieren. –

0

In ECs API die Behälter Garantien in einem gleiche Aufgabe definiert diese Behälter werden auf einer Instanz eingesetzt werden. Wenn dies das gewünschte Bereitstellungsverhalten ist, definieren Sie Container in einer "Task".

Wenn Sie Container über den ecs-Cluster hinweg bereitstellen möchten, sollten Sie unterschiedliche Aufgaben mit nur einem Container definieren, damit alle Container im Cluster ausgewogen bereitgestellt werden können.