在 AWS ECS 上自托管 N8N,使用 AWS CDK TypeScript

发布: (2025年12月19日 GMT+8 00:04)
5 分钟阅读
原文: Dev.to

Source: Dev.to

自托管 N8N 在 AWS ECS 上使用 AWS CDK TypeScript 的封面图片

📋 摘要

此仓库提供了一套基础设施即代码(IaC)解决方案,用于在 AWS 上使用 AWS Cloud Development Kit (CDK) 部署自托管的 N8N 工作流自动化平台。
该解决方案实现了一个 可扩展、成本优化且高可用 的架构,利用:

  • AWS ECS Fargate
  • PostgreSQL RDS 实例
  • 用于队列管理的 ElastiCache Redis

📑 Table of Contents

🏗️ Architecture Overview

Architecture Flow

关键组件

  • 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 CLIaws configure)。
  • 安装 Node.js 16+pnpm
  • 安装 AWS CDK CLInpm 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 Cluster

ECS 集群显示两个 N8N 服务均在运行,使用配置好的任务定义和容量提供程序。

2. 主服务

Main Service

N8N 主服务显示运行中的任务、自动伸缩配置以及健康状态。

3. 工作器服务

Worker Service

工作器服务显示正在处理排队作业的活跃工作器及其并发设置。

4. 网络负载均衡器

NLB

后续的验证步骤(测试 N8N 工作流、清理堆栈、结论、参考资料)遵循相同的模式,保持不变。

Source:

NLB 监听器和 DNS

NLB 显示监听器配置和 DNS 名称,该名称用于在 Route 53 中创建别名记录。

5. 目标组

Target Group

目标组显示已注册的 ECS 任务及其健康检查状态和路由配置。

🧪 测试 N8N 工作流

1. 访问 N8N UI

导航到您的 NLB DNS 名称或自定义域(如果已配置):

https://n8n.simflexcloud.com

N8N Interface

N8N 界面显示工作流编辑器,您可以在此创建、测试和监控自动化工作流。

2. 创建测试工作流

示例工作流: 每日从互联网获取励志名言并发送到 Slack。

3. 验证执行

Slack Integration

Slack 集成展示了工作流成功执行,消息已发送到配置的 Slack 频道。

🧹 Cleanup Stack

为了避免持续的 AWS 费用,销毁所有资源:

# Destroy the CDK stack
pnpm run destroy

🎉 结论

此 CDK 解决方案提供了一个 可扩展成本优化 的基础设施即代码 (AWS CDK),用于在 AWS ECS 上运行 N8N

📚 参考文献

Back to Blog

相关文章

阅读更多 »