在 AWS ECS 上自托管 N8N,使用 AWS CDK TypeScript
Source: Dev.to

📋 摘要
此仓库提供了一套基础设施即代码(IaC)解决方案,用于在 AWS 上使用 AWS Cloud Development Kit (CDK) 部署自托管的 N8N 工作流自动化平台。
该解决方案实现了一个 可扩展、成本优化且高可用 的架构,利用:
- AWS ECS Fargate
- PostgreSQL RDS 实例
- 用于队列管理的 ElastiCache Redis
📑 Table of Contents
- 📋 摘要
- 📑 目录
- 🏗️ 架构概览
- 🔍 深入探讨解决方案
- 🚀 部署 CDK 堆栈并测试
- 📋 前置条件
- ⚙️ 环境设置
- 🚀 部署步骤
- ✅ 验证部署
- 🧪 测试 N8N 工作流
- 🧹 清理堆栈
- 🎉 结论
- 📚 参考文献
🏗️ Architecture Overview
关键组件
- VPC with Multi‑AZ Subnets – 隔离网络,包含跨多个可用区的公共、私有和隔离子网。
- Network Load Balancer (NLB) – 将 HTTPS 流量分发到 N8N 主服务实例。
- ECS Fargate Cluster – 运行容器化的 N8N 服务,具备自动伸缩能力。
- RDS PostgreSQL – 跨可用区的托管数据库,用于工作流数据持久化。
- ElastiCache Redis – 用于 BullMQ 作业队列管理的内存缓存。
- AWS Cloud Map – 用于内部服务间通信的服务发现。
🔍 深入了解解决方案
🚀 部署 CDK 堆栈并测试
📋 前置条件
在部署之前,请确保您已:
- 安装并配置 AWS CLI(
aws configure)。 - 安装 Node.js 16+ 和 pnpm。
- 安装 AWS CDK CLI(
npm install -g aws-cdk)。 - 拥有具备相应权限的 AWS 账户。
- 拥有 Route 53 托管区域(可选,用于自定义域名)。
⚙️ 环境设置
1. 克隆仓库
git clone
cd aws-cdk-self-hosted-n8n-infra
2. 安装依赖
pnpm install
3. 配置环境变量
在项目根目录创建 .env 文件:
CDK_DEFAULT_ACCOUNT=your-aws-account-id
CDK_DEFAULT_REGION=your-aws-region
HOSTED_ZONE_NAME=example.com
HOSTED_ZONE_ID=Z1234567890ABC
🚀 部署步骤
1. 合成 CloudFormation 模板
pnpm run synth
2. 查看更改
pnpm run diff
3. 部署堆栈
pnpm run deploy
✅ 验证部署
在成功部署后,请在 AWS 控制台中验证资源。
1. ECS 集群
ECS 集群显示两个 N8N 服务均在运行,使用配置好的任务定义和容量提供程序。
2. 主服务
N8N 主服务显示运行中的任务、自动伸缩配置以及健康状态。
3. 工作器服务
工作器服务显示正在处理排队作业的活跃工作器及其并发设置。
4. 网络负载均衡器
后续的验证步骤(测试 N8N 工作流、清理堆栈、结论、参考资料)遵循相同的模式,保持不变。
Source: …
NLB 监听器和 DNS
NLB 显示监听器配置和 DNS 名称,该名称用于在 Route 53 中创建别名记录。
5. 目标组

目标组显示已注册的 ECS 任务及其健康检查状态和路由配置。
🧪 测试 N8N 工作流
1. 访问 N8N UI
导航到您的 NLB DNS 名称或自定义域(如果已配置):
https://n8n.simflexcloud.com

N8N 界面显示工作流编辑器,您可以在此创建、测试和监控自动化工作流。
2. 创建测试工作流
示例工作流: 每日从互联网获取励志名言并发送到 Slack。
3. 验证执行

Slack 集成展示了工作流成功执行,消息已发送到配置的 Slack 频道。
🧹 Cleanup Stack
为了避免持续的 AWS 费用,销毁所有资源:
# Destroy the CDK stack
pnpm run destroy
🎉 结论
此 CDK 解决方案提供了一个 可扩展 且 成本优化 的基础设施即代码 (AWS CDK),用于在 AWS ECS 上运行 N8N。




