Hi,
I added n8n to our infrastructure using AWS Fargate with an Application Load Balancer, I used Postgres that seems to be working fine, but I’m having some issues with the EFS volume, even that is mounted the drive is always empty, I checked permissions, and everything looks correct on my end but data never gets written on the drive, I suspect is still using the ephemeral drive and that data will be lost when task is restarted. I tried different mount points, but when I do that, the image doesn’t start.
I also don’t know exactly how to scale to more than 1 Task since n8n uses its own internal Main and Workers pattern. If anyone had luck configuring correctly with more than 1 task, please share the task definition as well as the mount/volume settings.
{
"taskDefinitionArn": "arn:aws:ecs:us-west-1:575092700000:task-definition/n8n-admin:1",
"containerDefinitions": [
{
"name": "n8n",
"image": "n8nio/n8n:latest",
"cpu": 0,
"portMappings": [
{
"name": "n8n-5678-tcp",
"containerPort": 5678,
"hostPort": 5678,
"protocol": "tcp"
}
],
"essential": true,
"environment": [
{
"name": "N8N_DIAGNOSTICS_ENABLED",
"value": "false"
},
{
"name": "N8N_PROXY_HOPS",
"value": "1"
},
{
"name": "WEBHOOK_URL",
"value": "https://mypublicurl.com"
},
{
"name": "DB_POSTGRESDB_DATABASE",
"value": "n8n"
},
{
"name": "TZ",
"value": "America/Chicago"
},
{
"name": "DB_POSTGRESDB_SCHEMA",
"value": "n8n"
},
{
"name": "DB_POSTGRESDB_PASSWORD",
"value": "mypwd"
},
{
"name": "DB_POSTGRESDB_PORT",
"value": "5432"
},
{
"name": "N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS",
"value": "false"
},
{
"name": "N8N_PORT",
"value": "5678"
},
{
"name": "N8N_PROTOCOL",
"value": "http"
},
{
"name": "DB_POSTGRESDB_HOST",
"value": "postgres host"
},
{
"name": "DB_TYPE",
"value": "postgresdb"
},
{
"name": "DB_POSTGRESDB_USER",
"value": "n8n"
},
{
"name": "N8N_ENCRYPTION_KEY",
"value": "my key"
},
{
"name": "N8N_RUNNERS_ENABLED",
"value": "true"
},
{
"name": "GENERIC_TIMEZONE",
"value": "America/Chicago"
},
{
"name": "N8N_SECURE_COOKIE",
"value": "false"
}
],
"environmentFiles": [],
"mountPoints": [],
"volumesFrom": [],
"ulimits": [],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/n8n",
"awslogs-create-group": "true",
"awslogs-region": "us-west-1",
"awslogs-stream-prefix": "ecs"
},
"secretOptions": []
},
"systemControls": []
}
],
"family": "n8n-admin",
"executionRoleArn": "arn:aws:iam::575092700000:role/ecsTaskExecutionRole",
"networkMode": "awsvpc",
"revision": 17,
"volumes": [
{
"name": "n8n_data",
"efsVolumeConfiguration": {
"fileSystemId": "fs-09aff42fc35c00000",
"rootDirectory": "/"
}
}
],
"status": "ACTIVE",
"requiresAttributes": [
{
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
"name": "ecs.capability.execution-role-awslogs"
},
{
"name": "ecs.capability.efsAuth"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
},
{
"name": "ecs.capability.efs"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.25"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"name": "ecs.capability.task-eni"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
}
],
"placementConstraints": [],
"compatibilities": [
"EC2",
"FARGATE"
],
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "1024",
"memory": "4096",
"runtimePlatform": {
"cpuArchitecture": "X86_64",
"operatingSystemFamily": "LINUX"
},
"registeredAt": "2025-08-18T20:30:09.544Z",
"registeredBy": "arn:aws:iam::575092700000:user/myuser",
"tags": []
}