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
Eine Standard-VPC mit öffentlichen Subnetzen in der AWS Region, in der Sie den Service erstellen. Standardmäßig erstellt der Expressmodus-Dienst einen mit dem Internet verbundenen Load Balancer in der Standard-VPC und den öffentlichen Subnetzen Ihres Kontos. Wenn Ihr Konto nicht über eine Standard-VPC verfügt, erstellen Sie eine, bevor Sie beginnen, oder geben Sie Ihre eigenen Subnetze an, wenn Sie den Service erstellen. Weitere Informationen finden Sie unter Standard-VPCs im Amazon VPC-Benutzerhandbuch.
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.
Anmerkung
IAM-Rollen sind letztendlich konsistent, sodass eine neu erstellte Rolle möglicherweise nicht sofort verwendet werden kann. Wenn Ihr erster create-express-gateway-service Aufruf direkt nach dem Erstellen dieser Rollen fehlschlägt Unable to assume the service linked role (oder ein ähnlicher Fehler beim Annehmen der Rolle übernehmen), warten Sie eine kurze Zeit (etwa eine Minute), bis die Rollen weitergegeben werden, und versuchen Sie dann erneut, den Befehl auszuführen.
Schritt 2: Erstellen Sie Ihre erste Expressmodus-Dienstanwendung
Erstellen Sie eine Expressmodus-Dienstanwendung mit den mindestens erforderlichen Parametern:
aws ecs create-express-gateway-service \ --primary-container "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
Erstellen Sie einen Expressmodus-Dienst mit Ihrer eigenen Aufgabendefinition
Sie können auch einen Expressmodus-Dienst mit Ihrer eigenen Aufgabendefinition erstellen. Mit Ihrer eigenen Aufgabendefinition haben Sie die volle Kontrolle über die Konfiguration auf Aufgabenebene. Der Expressmodus verwaltet weiterhin die Infrastruktur, einschließlich Load Balancing, Auto Scaling und Canary-Bereitstellungen.
Der folgende Befehl AWS Command Line Interface (AWS AWS CLI) erstellt einen Expressmodus-Dienst mit einer benutzerdefinierten Aufgabendefinition:
aws ecs create-express-gateway-service \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:3 \ --health-check-path "/health" \ --monitor-resources
Ihre Aufgabendefinition muss die folgenden Anforderungen erfüllen:
Ein Container mit dem Namen
MainDer
MainContainer muss über eine einzige TCP-Portzuordnung mit einem Container-Port und einem Portnamen verfügenDie Aufgabendefinition muss
FARGATEin ihren Kompatibilitäten
Anmerkung
Der taskDefinitionArn Parameter kann nicht mitprimaryContainer,, executionRoleArn taskRoleArncpu, oder memory im selben API-Aufruf angegeben werden. Der Expressmodus leitet diese Werte aus der bereitgestellten Aufgabendefinition ab.
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/default/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/default/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