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