Erstellen Sie Ihren ersten Express-Modus-Dienst mit dem AWS CLI - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie Ihren ersten Express-Modus-Dienst mit dem AWS CLI

Dieses Tutorial zeigt Ihnen, wie Sie eine Expressmodus-Dienstanwendung mit dem erstellen. AWS AWS CLI Sie stellen eine einfache Webanwendung bereit, die die Kernfunktionen des Express Mode-Dienstes demonstriert.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Sie über Folgendes verfügen:

  • Ein AWS Konto mit den entsprechenden Berechtigungen

  • Das AWS AWS CLI installierte und konfigurierte

  • Ein Container-Image, das in Amazon ECR oder einer privaten Registrierung gespeichert ist

Schritt 1: IAM-Rollen erstellen

Für einen Expressmodus-Dienst sind zwei IAM-Rollen erforderlich. Die Aufgabenausführungsrolle ermöglicht es Amazon ECS, in Ihrem Namen Container-Images abzurufen und Protokolle zu schreiben. Erstellen Sie eine Rolle zur Aufgabenausführung und eine Infrastrukturrolle mit den folgenden Richtlinien:

#Create the roles with ECS trust policies aws iam create-role --role-name ecsTaskExecutionRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }' aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessInfrastructureForECSExpressServices", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
#Attach the AWS managed policies aws iam attach-role-policy --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices

Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.

Schritt 2: Erstellen Sie Ihre erste Express-Modus-Dienstanwendung

Erstellen Sie eine Expressmodus-Dienstanwendung mit den mindestens erforderlichen Parametern:

aws ecs create-express-gateway-service \ --image "public.ecr.aws/nginx/nginx:latest" \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --monitor-resources

Dieser Befehl erstellt eine Expressmodus-Dienstanwendung mit:

  • Ein eindeutiger Dienstname, der aus dem Imagenamen generiert wird

  • 1 vCPU und 2 GB Arbeitsspeicher

  • Port 80 für HTTPS-Verkehr

  • Automatische Skalierung basierend auf der CPU-Auslastung

  • Ein mit dem Internet verbundener Application Load Balancer in der Standard-VPC und öffentlichen Subnetzen

  • Eine für diesen Dienst eindeutige URL im folgenden Format servicename.ecs.region.on.aws

Der Befehl überwacht kontinuierlich Ressourcen, während sie bereitgestellt werden, und gibt den Status zurück. Sobald die Bereitstellung des Dienstes abgeschlossen ist, ist die Anwendungs-URL bereit, Datenverkehr zu empfangen. Wenn Sie die Überwachung unterbrechen, werden die Informationen über den erstellten Dienst zurückgegeben, einschließlich des Dienst-ARN und der URL:

{ "service": { "cluster": "arn:aws:ecs:region:123456789012:cluster/default", "serviceName": "nginx-1234", "serviceArn": "arn:aws:ecs:region:123456789012:service/default/nginx-1234", "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices", "status": { "statusCode": "ACTIVE" }, "createdAt": "UNIXTIMESTAMP" } }

Schritt 3: Erstellen Sie eine Expressmodus-Dienstanwendung mit benutzerdefinierten Einstellungen

Sie können Ihre Expressmodus-Dienstanwendung anpassen, indem Sie zusätzliche Parameter angeben:

aws ecs create-express-gateway-service \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --primary-container \ ‘{“image”=“123456789012.dkr.ecr.region.amazonaws.com/my-app:latest", \ “containerPort”=8080, \ “environment”=[{“name”=“ENV”,”value”=“production”},{“name”=“DEBUG”,”value”=“false”}]}’ \ --service-name "my-web-app" \ --cpu 2 \ --memory 4 \ --health-check-path "/health" \ --scaling-target ‘{“minTaskCount”=3,”maxTaskCount”=100}’ --monitor-resources

Dadurch wird eine Anwendung erstellt mit:

  • Ein benutzerdefinierter Name "my-web-app“

  • 2 vCPU und 4 GB Arbeitsspeicher

  • Port 8080 für Anwendungsdatenverkehr

  • Benutzerdefinierter Endpunkt für die Gesundheitsprüfung

  • Umgebungsvariablen

  • Mindestens 3 Aufgaben, maximal 100 Aufgaben für Auto Scaling

Schritt 4: Überwachen Sie Ihre Bereitstellung

Die --monitor-resources Markierung funktioniert bei jedem Create-, Update- oder Delete-Aufruf an Ihre Express-Modus-Dienste. Darüber hinaus können Sie die Ressourcen in einem Dienst unabhängig von einer mutierenden Aktion jederzeit überwachen. Die Bereitstellungszeit kann je nach den Ressourcen, die bereitgestellt werden müssen, variieren. Sobald sich der Status auf ändertACTIVE, ist Ihre Anwendung bereit, Datenverkehr zu empfangen.

aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

Sie können auch die aktuelle Konfiguration und den Status Ihrer Express Mode-Dienstanwendung abrufen:

aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

Schritt 5: Greifen Sie auf Ihre Anwendung zu

Greifen Sie über die angegebene URL auf die Expressmodus-Dienstanwendung zu, wenn sie aktiv wird. Das URL-Format ist:

https://<service-name>.ecs.<region>.on.aws/

Beispiel:

https://app-23d97h88.ecs.us-west-2.on.aws/

Ihre Anwendung läuft jetzt mit:

  • Automatische SSL/TLS Kündigung

  • Lastenausgleich über mehrere Availability Zones

  • Automatische Skalierung basierend auf der CPU-Auslastung

  • CloudWatch Protokollierung und Überwachung

  • 5XX-Rollback-Alarme und Canary-Bereitstellungen für future Updates