If you’re looking to deploy powerful, flexible workflow automation without vendor lock-in, deploying n8n on AWS is a smart move. With AWS, you can run n8n on your own infrastructure, scaling it as needed and maintaining full control over data security and performance. In this guide, you’ll learn how to deploy n8n on AWS using an EC2 instance—no DevOps wizardry required.
Whether you're a solo developer, a startup team, or automating tasks for enterprise workloads, this step-by-step tutorial will help you get set up quickly.
Why Deploy n8n on AWS?
Before diving into the how, let’s quickly look at why hosting n8n on AWS is a popular choice:
- Scalable hosting with EC2, ECS, or Lambda
- Competitive pricing — especially if using Spot Instances or free-tier
- Flexibility to self-host and control costs
- Easy integration with other AWS services like S3, RDS, or SES
- High availability setup possible with load balancers and autoscaling
Now let’s walk through the steps to get n8n running on an AWS EC2 instance using Docker.
Step 1: Launch an EC2 Instance
To host n8n on AWS, you’ll first need a virtual machine.
Choose an EC2 AMI and Instance Type
- Go to the AWS Management Console > EC2 Dashboard
- Click on Launch Instance
- Choose the Ubuntu 22.04 LTS AMI
- Select an instance type — for testing, t2.micro (free-tier) works fine; for production, consider t3.medium or larger
- Add a key pair (required for SSH access)
- Set security group rules:
- Allow port 22 for SSH
- Allow port 5678 for n8n (or whatever port you’ll run it on)
After review, click Launch, then wait while AWS provisions the instance.
Step 2: SSH Into the EC2 Instance
Once the instance is running, connect using your terminal:
ssh -i your-key.pem ubuntu@your-ec2-ip
Replace your-key.pem and your-ec2-ip with your actual SSH key and public IP from AWS.
Step 3: Install Docker and Docker Compose
n8n runs beautifully in Docker, and this method ensures portability.
Install Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
Install Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Test the installation with:
docker-compose --version
Step 4: Deploy n8n Using Docker Compose
Create a directory to hold your configuration:
mkdir n8n && cd n8n
Now, create a docker-compose.yml file:
version: '3.7'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=yoursecurepassword
- N8N_HOST=your-ec2-ip
- N8N_PORT=5678
- TZ=UTC
volumes:
- ~/.n8n:/home/node/.n8n
Start n8n
Now run:
docker-compose up -d
Visit http://your-ec2-ip:5678 in your browser, and log in using the credentials you provided in the docker-compose file.
Your AWS-hosted n8n instance is now live!
Step 5: Secure with HTTPS (Recommended)
Running automated services without encryption can leave your data at risk. Here’s a simple way to add HTTPS using a reverse proxy:
- Set up a domain name (e.g., n8n.yourdomain.com)
- Point an A record to your EC2's public IP
- Use NGINX + Let’s Encrypt or Caddy as a reverse proxy
Alternatively, for a full production-grade deployment, look into running n8n on Docker with persistent data and TLS support.
Bonus: Use Cases & Scaling Ideas
Once your instance is live, here are some workflow ideas and scaling strategies:
Common Use Cases
- Monitor email inboxes and route attachments
- Auto-post content on social media using n8n’s LinkedIn automation
- Create custom alerts from APIs or scraping tools
- Build internal tools by integrating with Notion, Airtable, or ClickUp
Scaling Tips
| Use Case | Suggested AWS Add-on |
|---|---|
| High traffic workflows | Use ALB + Auto Scaling |
| Heavy compute jobs | Connect to Fargate or ECS |
| Long-term logs/database | Connect with RDS or DynamoDB |
| File-heavy workflows | Store in AWS S3 |
For running n8n in cloud environments beyond AWS, you can check out how to deploy on DigitalOcean or Google Cloud.
Troubleshooting Tips
- Can’t access the web UI? Make sure port 5678 is open in your instance’s Security Group.
- Workflows not persisting? Ensure the
~/.n8nvolume is mounted in Docker Compose. - Auth issues? Double-check
N8N_BASIC_AUTH_USER&PASSWORD.
FAQ
What’s the easiest way to maintain persistence in this setup?
Mount a Docker volume (~/.n8n) as shown in the Compose file so your workflows and credentials are preserved even after a restart.
Can I deploy n8n on AWS Lambda?
Not recommended. While technically possible, n8n is a stateful service with long-running workflows, and Lambda functions are stateless.
Is this method suitable for production?
Yes, with additional hardening—set up HTTPS, lock down access with firewalls, monitor logs, and back up workflows. For advanced setups, look into container orchestration via ECS or Kubernetes.
Can I scale n8n horizontally?
n8n is not yet designed for full horizontal scaling, but you can run multiple isolated instances or create read-replica environments for specific functions.
Are there costs involved?
If you use the AWS Free Tier (t2.micro), your costs may be $0/month. For production (t3.medium or higher), expect to pay based on compute hours used.
Deploying n8n on AWS gives you enterprise-grade infrastructure with complete flexibility. Whether you're automating lead generation, customer follow-ups, or data syncing between SaaS tools, this setup gives you a powerful and private automation engine ready to scale.
Copy-paste templates.
Beginner friendly.