Direkt zum Inhalt

Wie tagge ich Amazon ECS-Ressourcen zur Kostenverfolgung und Compliance?

Lesedauer: 5 Minute
0

Ich möchte meine Amazon Elastic Container Service (Amazon ECS)-Ressourcen taggen, um Kosten und Compliance zu verfolgen.

Kurzbeschreibung

Verwende Tags, um deinen Amazon ECS-Ressourcen benutzerdefinierte Metadaten zuzuweisen.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.

Aktiviere die Berechtigung zum Ressourcen-Tagging auf Kontoebene

Um ein Tag zu verwenden und zu erstellen, wenn du einen Cluster oder Service erstellst, musst du über die Berechtigung ecs:TagResource verfügen. Du musst auch über die Berechtigungen für die Aktionen verfügen, die zum Erstellen der Ressource erforderlich sind, wie z. B. ecsCreateCluster.

Führe den folgenden AWS CLI-Befehl list-account-settings aus, um den aktuellen Tagging-Autorisierungsstatus auf AWS-Kontoebene anzuzeigen:

aws ecs list-account-settings --effective-settings

Prüfe in der Ausgabe des Befehls, ob du die Tagging-Autorisierung aktiviert hast. Wenn du die Tagging-Autorisierung nicht aktiviert hast, führe den folgenden Befehl put-account-setting-default aus, um sie zu aktivieren:

 aws ecs put-account-setting-default --name tagResourceAuthorization --value on --region regionname

Hinweis: Ersetze regionname durch deine AWS-Region.

Das richtige ARN-Format verwenden

Um Amazon-ECS-Ressourcen zu taggen, musst du die neuen ARN- und ID-Formate verwenden. Möglicherweise musst du deine Amazon ECS-Bereitstellung auf das neue ARN- und Ressourcen-ID-Format migrieren.

Sicherstellen, dass die IAM-Entität über die erforderlichen Berechtigungen verfügt, und Tag-Einschränkungen prüfen

Wenn du keine Tags zu deinem Amazon ECS-Service hinzufügen kannst, stelle sicher, dass deine AWS Identity and Access Management (IAM)-Entität die erforderlichen Berechtigungen hat. Weitere Informationen findest du im Abschnitt Sicherstellen, dass die IAM-Entität über die erforderlichen Berechtigungen verfügt, und Tag-Einschränkungen prüfen in Wie behebe ich Tagging-Probleme für Amazon ECS-Aufgaben?

Amazon-ECS-verwaltete Tags für die Fakturierung verwenden

Den Parameter enableECSManagedTags aktivieren

Wenn du Amazon-ECS-verwaltete Tags verwendest, taggt Amazon ECS automatisch alle neu gestarteten Aufgaben mit den Clusterinformationen und Aufgabendefinitions- oder Service-Tags. Amazon ECS taggt auch Amazon Elastic Block Service (Amazon EBS)-Volumes, die mit den Aufgaben verbunden sind. Der PropagateTags-Parameter ist standardmäßig nicht aktiviert. Um Tags aus der Aufgabendefinition oder dem Service in die Aufgabe zu kopieren, aktiviere den Parameter.

Führe den folgenden create-service-Befehl aus, um den enableECSManagedTags-Parameter zu aktivieren, wenn du einen Service erstellst:

aws ecs create-service \
 --cluster clustername \
 --service-name servicename \
 --task-definition taskdefinitionname \
 --desired-count 1 \
 --launch-type FARGATE \
 --enable-ecs-managed-tags \
 --network-configuration "awsvpcConfiguration={subnets=[subnet-ABCD],securityGroups=[sg-ABC],assignPublicIp=ENABLED}"

Hinweis: Ersetze clustername durch deinen Clusternamen, servicename durch deinen Servicenamen und taskdefinitionname durch den Namen deiner Aufgabendefinition. Füge deine Netzwerkkonfiguration zu der Option --network-configuration hinzu.

Führe den folgenden run-task-Befehl aus, um den Parameter enableECSManagedTags zu aktivieren, wenn du eine Aufgabe ausführst:

aws ecs run-task \
 --cluster clustername \
 --task-definition taskdefinitionname  \
 --launch-type FARGATE \
 --enable-ecs-managed-tags \
 --network-configuration "awsvpcConfiguration={subnets=[subnet-ABC],securityGroups=[sg-ABC]}"

Hinweis: Ersetze clustername durch deinen Clusternamen, und taskdefinitionname durch den Namen deiner Aufgabendefinition. Füge deine Netzwerkkonfiguration zu der Option --network-configuration hinzu.

Amazon-ECS-verwaltete Tags aktivieren

Verwende entweder die Amazon ECS-Konsole oder AWS CLI, um verwaltete Tags zu aktivieren.

Amazon-ECS-Konsole

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-ECS-Konsole.
  2. Wähle die Region für deine Amazon ECS-Ressource aus.
  3. Wähle im Navigationsbereich Aufgabendefinitionen aus.
  4. Wähle die Aufgabendefinition aus der Ressourcenliste aus und wähle dann Aktionen aus.
  5. Wähle Service erstellen oder Aufgabe ausführen aus.
  6. Wähle unter Task-Tagging-Konfiguration die Option ECS-verwaltete Tags aktivieren aus.
    Hinweis: Um Tags aus der Aufgabendefinition oder dem Service in die Aufgabe zu kopieren, wähle deine Ressource für Tags übertragen aus aus. Standardmäßig ist der Parameter PropagateTags auf Nicht propagieren gesetzt.

AWS CLI

Führe den folgenden update-service-Befehl aus:

aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment

Hinweis: Ersetze servicename durch deinen Servicenamen und clustername durch deinen Clusternamen.

Tag-Propagierung einrichten

Die Tag-Propagierung ist standardmäßig deaktiviert. Um zu überprüfen, ob du PropagateTags in einem bestimmten Service aktiviert hast, führe den folgenden Befehl describe-services aus:

 aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text

Hinweis: Ersetze servicename durch deinen Servicenamen, clustername durch deinen Clusternamen und region durch deine Region.

Um die Tag-Propagierung beim Erstellen eines Services hinzuzufügen, führe den folgenden create-service-Befehl aus:

aws ecs create-service \
--cluster clustername \
--service-name servicename \
--task-definition taskdefinitionname \
--desired-count 1 \
--launch-type FARGATE \
--enable-ecs-managed-tags \
--propagate-tags TASK_DEFINITION-SERVICE \
--network-configuration "awsvpcConfiguration={subnets=[subnet-ABCD],securityGroups=[sg-ABC],assignPublicIp=ENABLED}"

Hinweis: Ersetze clustername durch deinen Clusternamen, servicename durch deinen Servicenamen und taskdefinitionname durch deine Aufgabendefinition. Ersetze außerdem FARGATE durch deinen Starttyp und TASK_DEFINITION-SERVICE durch TASK_DEFINITION oder SERVICE, je nachdem, wohin du die Aufgaben propagieren möchtest. Füge deine Netzwerkkonfiguration zu der Option --network-configuration hinzu.

Um die Tag-Propagierung bei der Ausführung einer Aufgabe hinzuzufügen, führe den folgenden run-task-Befehl aus:

aws ecs run-task \
--cluster clustername \
--task-definition taskdefinitionname \
--launch-type FARGATE \
--enable-ecs-managed-tags \
--propagate-tags TASK_DEFINITION-SERVICE \
--network-configuration "awsvpcConfiguration={subnets=[subnet-ABC],securityGroups=[sg-ABC]}"

Hinweis: Ersetze clustername durch deinen Clusternamen, und taskdefinitionname durch deine Aufgabendefinition. Ersetze außerdem FARGATE durch deinen Starttyp und TASK_DEFINITION-SERVICE durch TASK_DEFINITION oder SERVICE, je nachdem, wohin du die Aufgaben propagieren möchtest. Füge deine Netzwerkkonfiguration zu der Option --network-configuration hinzu.

Um die Tag-Propagierung zu einem bestehenden Service hinzuzufügen, führe den folgenden update-service-Befehl aus:

aws ecs update-service --cluster clustername --service servicename --propagate-tags servicetagdefinition --force-new-deployment

Hinweis: Ersetze servicename durch deinen Servicenamen, clustername durch deinen Clusternamen und servicetagdefinition durch deine Service- oder Tagdefinition.

Du musst die Kostenzuordnungs-Tags aktivieren, damit sie in deinem Fakturierungsbericht erscheinen.

Hinweis: Es kann bis zu 24 Stunden dauern, bis die Tags aktiviert werden.

Ähnliche Informationen

Amazon ECS-Nutzungsberichte

AWS OFFICIALAktualisiert vor 2 Jahren