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 von Amazon ECS-Ressourcen mit AWS CloudFormation
Amazon ECS ist integriert in AWS CloudFormation, einem Service, den Sie verwenden können, um AWS-Ressourcen mit Vorlagen, die Sie definieren, zu modellieren und einzurichten. Auf diese Weise können Sie weniger Zeit mit der Erstellung und Verwaltung Ihrer Ressourcen und Infrastruktur verbringen. Nutzen Sie AWS CloudFormation und erstellen Sie eine Vorlage, in der alle AWS-Ressourcen, die Sie benötigen, wie z. B. bestimmte Amazon ECS-Cluster, beschrieben sind. Und AWS CloudFormation übernimmt dann die Bereitstellung und Konfiguration dieser Ressourcen für Sie.
Wenn Sie AWS CloudFormation verwenden, können Sie Ihre Vorlage wiederverwenden, um Ihre Amazon ECS-Ressourcen auf einheitliche und wiederholbare Weise einzurichten. Sie beschreiben Ihre Ressourcen dann einmal und können die gleichen Ressourcen dann erneut über mehrere AWS-Konten und AWS-Regionen bereitstellen.
Amazon ECS- und AWS CloudFormation-Vorlagen
Um Ressourcen für Amazon ECS und zugehörige Dienste bereitzustellen und zu konfigurieren, sollten Sie mit AWS CloudFormation-Vorlagen vertraut sein. AWS CloudFormation-Vorlagen sind Textdateien im JSON- oder YAML-Format, die Ressourcen beschreiben, die Sie in Ihren AWS CloudFormation-Stapeln bereitstellen möchten. Wenn Sie noch keine Erfahrungen mit JSON oder YAML haben, können Sie den AWS CloudFormation-Designer verwenden, um einen Einstieg in die Verwendung von AWS CloudFormation-Vorlagen zu bekommen. Weitere Informationen finden Sie unter Was ist AWS CloudFormation-Designer? im AWS CloudFormation-Benutzerhandbuch.
Amazon ECS unterstützt das Erstellen von Clustern, Aufgabendefinitionen, Services und Aufgabensets in AWS CloudFormation. Die folgenden Beispiele zeigen, wie Sie Ressourcen mit diesen Vorlagen erstellen können, indem Sie AWS CLI verwenden. Sie können diese Ressourcen auch mithilfe der AWS CloudFormation-Konsole erstellen. Weitere Informationen zum Erstellen von Ressourcen über die AWS CloudFormation-Konsole finden Sie im AWS CloudFormationBenutzerhandbuch.
Beispielvorlagen
Erstellen von Amazon ECS-Ressourcen über separate Stapel
Die folgenden Beispiele zeigen, wie Sie Amazon ECS-Ressourcen erstellen können, indem Sie separate Stapel für jede Ressource verwenden.
Amazon-ECS-Aufgabendefinitionen
Sie können die folgende Vorlage verwenden, um eine Fargate Linux-Aufgabe zu erstellen.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "ECSTaskDefinition": { "Type": "AWS::ECS::TaskDefinition", "Properties": { "ContainerDefinitions": [ { "Command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "EntryPoint": [ "sh", "-c" ], "Essential": true, "Image": "httpd:2.4", "LogConfiguration": { "LogDriver": "awslogs", "Options": { "awslogs-group": "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "Name": "sample-fargate-app", "PortMappings": [ { "ContainerPort": 80, "HostPort": 80, "Protocol": "tcp" } ] } ], "Cpu": 256, "ExecutionRoleArn": "arn:aws:iam::
aws_account_id
:role/ecsTaskExecutionRole", "Family": "task-definition-cfn", "Memory": 512, "NetworkMode": "awsvpc", "RequiresCompatibilities": [ "FARGATE" ], "RuntimePlatform": { "OperatingSystemFamily": "LINUX" } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: ECSTaskDefinition: Type: 'AWS::ECS::TaskDefinition' Properties: ContainerDefinitions: - Command: - >- /bin/sh -c "echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground" EntryPoint: - sh - '-c' Essential: true Image: 'httpd:2.4' LogConfiguration: LogDriver: awslogs Options: awslogs-group: /ecs/fargate-task-definition awslogs-region: us-east-1 awslogs-stream-prefix: ecs Name: sample-fargate-app PortMappings: - ContainerPort: 80 HostPort: 80 Protocol: tcp Cpu: 256 ExecutionRoleArn: 'arn:aws:iam::
aws_account_id
:role/ecsTaskExecutionRole' Family: task-definition-cfn Memory: 512 NetworkMode: awsvpc RequiresCompatibilities: - FARGATE RuntimePlatform: OperatingSystemFamily: LINUX
Amazon-ECS-Cluster
Sie können die folgende Vorlage verwenden, um einen leeren Cluster zu erstellen.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "ECSCluster": { "Type": "AWS::ECS::Cluster", "Properties": { "ClusterName": "MyEmptyCluster" } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: ECSCluster: Type: 'AWS::ECS::Cluster' Properties: ClusterName: MyEmptyCluster
Erstellen mehrerer Amazon ECS-Ressourcen in einem Stack
Sie können die folgende Beispielvorlage verwenden, um mehrere Amazon ECS-Ressourcen in einem Stack zu erstellen. Die Vorlage erstellt einen Amazon ECS-Cluster mit dem Namen CFNCluster
. Der Cluster enthält eine Linux-Fargate-Aufgabendefinition, die einen Webserver einrichtet. Die Vorlage erstellt auch einen Service mit dem Namen cfn-service
, der die in der Aufgabendefinition definierte Aufgabe startet und verwaltet. Bevor Sie diese Vorlage verwenden, vergewissern Sie sich, dass die IDs des Subnetzes und der Sicherheitsgruppe in der NetworkConfiguration
des Services alle zur gleichen VPC gehören und dass die Sicherheitsgruppe über die erforderlichen Regeln verfügt. Weitere Informationen zu Sicherheitsgrupperegeln finden Sie unter Sicherheitsgruppenregeln im Amazon-VPC-Benutzerhandbuch.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "ECSCluster": { "Type": "AWS::ECS::Cluster", "Properties": { "ClusterName": "CFNCluster" } }, "ECSTaskDefinition": { "Type": "AWS::ECS::TaskDefinition", "Properties": { "ContainerDefinitions": [ { "Command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "EntryPoint": [ "sh", "-c" ], "Essential": true, "Image": "httpd:2.4", "LogConfiguration": { "LogDriver": "awslogs", "Options": { "awslogs-group": "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "Name": "sample-fargate-app", "PortMappings": [ { "ContainerPort": 80, "HostPort": 80, "Protocol": "tcp" } ] } ], "Cpu": 256, "ExecutionRoleArn": "arn:aws:iam::
aws_account_id
::role/ecsTaskExecutionRole", "Family": "task-definition-cfn", "Memory": 512, "NetworkMode": "awsvpc", "RequiresCompatibilities": [ "FARGATE" ], "RuntimePlatform": { "OperatingSystemFamily": "LINUX" } } }, "ECSService": { "Type": "AWS::ECS::Service", "Properties": { "ServiceName": "cfn-service", "Cluster": { "Ref": "ECSCluster" }, "DesiredCount": 1, "LaunchType": "FARGATE", "NetworkConfiguration": { "AwsvpcConfiguration": { "AssignPublicIp": "ENABLED", "SecurityGroups": [ "sg-abcdef01234567890
" ], "Subnets": [ "subnet-abcdef01234567890
" ] } }, "TaskDefinition": { "Ref": "ECSTaskDefinition" } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: ECSCluster: Type: 'AWS::ECS::Cluster' Properties: ClusterName: CFNCluster ECSTaskDefinition: Type: 'AWS::ECS::TaskDefinition' Properties: ContainerDefinitions: - Command: - >- /bin/sh -c "echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground" EntryPoint: - sh - '-c' Essential: true Image: 'httpd:2.4' LogConfiguration: LogDriver: awslogs Options: awslogs-group: /ecs/fargate-task-definition awslogs-region: us-east-1 awslogs-stream-prefix: ecs Name: sample-fargate-app PortMappings: - ContainerPort: 80 HostPort: 80 Protocol: tcp Cpu: 256 ExecutionRoleArn: 'arn:aws:iam::
aws_account_id
:role/ecsTaskExecutionRole' Family: task-definition-cfn Memory: 512 NetworkMode: awsvpc RequiresCompatibilities: - FARGATE RuntimePlatform: OperatingSystemFamily: LINUX ECSService: Type: 'AWS::ECS::Service' Properties: ServiceName: cfn-service Cluster: !Ref ECSCluster DesiredCount: 1 LaunchType: FARGATE NetworkConfiguration: AwsvpcConfiguration: AssignPublicIp: ENABLED SecurityGroups: -sg-abcdef01234567890
Subnets: -subnet-abcdef01234567890
TaskDefinition: !Ref ECSTaskDefinition
Verwendung von AWS CLI, um Ressourcen aus Vorlagen zu erstellen
Der folgende Befehl erstellt einen Stapel mit dem Namen ecs-stack
und verwendet eine Vorlagentextdatei mit dem Namen ecs-template-body.json
. Stellen Sie sicher, dass die Vorlagentextdatei im JSON- oder YAML-Format vorliegt. Der Speicherort der Datei ist im --template-body
-Parameter. In diesem Fall befindet sich die Vorlagen-Textdatei im aktuellen Verzeichnis.
aws cloudformation create-stack \ --stack-name
ecs-stack
\ --template-body file://ecs-template-body.json
Um sicherzustellen, dass die Ressourcen korrekt erstellt werden, überprüfen Sie die Amazon ECS-Konsole oder verwenden Sie alternativ die folgenden Befehle:
-
Mit dem folgenden Befehl werden alle Aufgabendefinitionen aufgelistet.
aws ecs list-task-definitions
-
Mit dem folgenden Befehl werden alle Cluster aufgelistet.
aws ecs list-clusters
-
Mit dem folgenden Befehl werden alle Dienste aufgelistet, die im Cluster
definiert sind. Ersetzen SieCFNCluster
mit dem Namen des Clusters, in dem Sie den Service erstellen möchten.CFNCluster
aws ecs list-services \ --cluster
CFNCluster
Weitere Informationen zu AWS CloudFormation
Weitere Informationen zu AWS CloudFormation finden Sie in den folgenden Ressourcen.