N8n hosted using AWS Fargate

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": []
}

@Alex_N Were able to figure it out?

Looking for something similar. Please if anyone has any documentations related to running n8n in Multi-main Queue mode in ECS fargate put it here.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.