Mon objectif est d'envoyer des journaux de conteneur de docker à CloudWatch via terraform. Tel est le rôle ECS que j'utilise pour IAM:Envoi de journaux de docker à AWS CloudWatch via Terraform
{
"Version": "2008-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": ["ecs.amazonaws.com", "ec2.amazonaws.com"]
},
"Effect": "Allow"
}
]
}
Et voici la politique de rôle de service ECS:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticloadbalancing:Describe*",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"ec2:Describe*",
"ec2:AuthorizeSecurityGroupIngress",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
}
]
}
Dans ma définition de tâche pour conteneur docker, entre autres choses que j'ai ce pour l'enregistrement CloudWatch:
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "awslog-mylogs",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "awslogs-mylogs-stream"
}
}
(Je le groupe awslog-mylogs
journal pré-créé via la console AWS). Le problème est que si je lance l'instance AWS (via Terraform apply) sans la configuration de journalisation ci-dessus pour le conteneur, tout fonctionne correctement et mon conteneur est opérationnel (à l'exception bien sûr, les journaux ne sont pas envoyés à Cloudwatch). Dès que j'ai cette information de configuration de journalisation en place, l'instance EC2 se déroule mais le conteneur ne démarre pas correctement. Après ssh-ing dans l'instance EC2, je trouve que le conteneur docker renfloué.
Une idée de ce qui ne va pas ici? Que pourrais-je manquer en ce qui concerne la configuration de l'envoi de journaux à Cloudwatch via terraform?
Merci. Comment inclure CloudWatch dans le service ECS? –
copier et coller à votre politique de service ECS existant (la deuxième partie de vos codes) – BMW