Лично я бы посмотрел бегло или бегло в другом контейнере рядом с вашим приложением https://docs.fluentbit.io/manual/pipeline/outputs/elasticsearch
Вы можете отправлять свои журналы напрямую в ES без затрат на облачные часы.
РЕДАКТИРОВАТЬ
Вот окончательное решение на случай, если кто-то ищет более дешевое решение.
Запустите Fluentd / Fuentbit в другом контейнере рядом с вашим приложением
Используя Github Config , я смог переслать журналы в ES с помощью следующей конфигурации:
{
"family": "workflow",
"cpu": "256",
"memory": "512",
"containerDefinitions": [
{
"name": "log_router",
"image": "docker.io/amazon/aws-for-fluent-bit:latest",
"essential": true,
"firelensConfiguration": {
"type": "fluentbit",
"options":{
"enable-ecs-log-metadata":"true"
}
},
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-create-group": "true",
"awslogs-group": "your_log_group",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "ecs"
}
},
"memoryReservation": 50
},
{
"name": "ContainerName",
"image": "YourImage",
"cpu": 0,
"memoryReservation": 128,
"portMappings": [
{
"containerPort": 5005,
"protocol": "tcp"
}
],
"essential": true,
"command": [
"YOUR COMMAND"
],
"environment": [],
"logConfiguration": {
"logDriver": "awsfirelens",
"secretOptions": [],
"options": {
"Name": "es",
"Host": "YOUR_ES_DOMAIN_URL",
"Port": "443",
"tls": "On",
"Index": "INDEX_NAME",
"Type": "TYPE"
}
},
"resourceRequirements": []
}
]
}
Контейнер log_router
собирает журналы и отправляет их в ES. Для получения дополнительной информации см. Custom Log Routing
Обратите внимание, что в случае Fargate требуется контейнер log_router
, но не с ECS.
Это самое дешевое из известных мне решений, в которое не входят Cloudwatch, Lamdas, Kinesis.