🦞 OpenClaw × Amazon Web Services 🦞

AWS 部署全攻略

从单机到云原生,6 种方式将 OpenClaw 龙虾助手完美运行在 AWS 上。选择最适合你的方案,轻松上云。

6
部署方式
AWS
云平台支持
5 min
最快启动
99.9%
高可用目标

六种部署方式

从简单的单机部署到高可用的 K8s 集群,总有一种适合你的场景

🖥️
① EC2 裸机部署
Amazon Elastic Compute Cloud

最直接的方式。在 EC2 实例上直接安装 Node.js,通过 npm 安装 OpenClaw 并运行。适合开发测试或轻量个人使用,完全掌控底层环境。

推荐实例:t3.micro(免费额度)、t3.small、t3.medium

操作系统:Amazon Linux 2023 / Ubuntu 22.04 LTS

EC2 免费额度 最简单
🐳
② EC2 + Docker
容器化单机部署

在 EC2 上运行 Docker,通过 docker-compose 部署 OpenClaw。环境隔离、便于迁移,适合多服务并存场景。

推荐配置:t3.small 以上,开启 EBS gp3 磁盘

配套:Nginx 反向代理 + Let's Encrypt SSL 自动续签

EC2 Docker 环境隔离
🚀
③ ECS Fargate
Serverless 容器化部署

无需管理服务器,AWS 全托管底层基础设施。将 OpenClaw 打包为容器镜像推送 ECR,由 Fargate 按需调度,按实际 vCPU/内存秒级计费。

适合:按需运行、无流量时近零成本、自动扩缩容

配套:ALB 负载均衡、CloudWatch 日志、ECR 镜像仓库

Fargate Serverless ECR 自动扩缩
📦
④ ECS on EC2
EC2 托管容器集群

ECS 集群运行在自管 EC2 实例上,兼顾容器编排能力与更低的计算成本。适合需要稳定算力、对 GPU 或特殊实例有要求的场景。

优势:成本比 Fargate 低 30-50%,可使用竞价实例 Spot

支持:ECS Service Connect、蓝绿部署、Service Discovery

ECS EC2 Spot 省钱
⚙️
⑤ Amazon EKS
Kubernetes 企业级部署

在托管 Kubernetes 集群上部署 OpenClaw。适合已有 K8s 技术栈的团队,支持 Helm Chart 一键部署、HPA 自动伸缩、多租户隔离。

亮点:Ingress Controller、Cert-Manager 自动 SSL、Kustomize 多环境管理

支持:EKS Anywhere、Fargate Profile 混合调度

EKS Kubernetes Helm 企业级
🌱
⑥ Elastic Beanstalk
全托管 PaaS 快速部署

AWS 的 PaaS 平台,类似 Heroku 体验。只需上传代码/容器,Beanstalk 自动处理底层 EC2、负载均衡、Auto Scaling、监控等一切。

适合:不想运维的开发者、快速 PoC 验证

支持:Node.js / Docker 平台、一键回滚、蓝绿部署

PaaS 零运维 Auto Scaling

🎁 补充方案:Lambda + API Gateway(事件驱动)

将 OpenClaw 的 Webhook 处理层拆分为 Lambda 函数,通过 API Gateway 接收来自 Discord/Telegram/WeChat 的回调。 适合极低频率使用、极致降成本场景(每月前 100 万次调用免费)。 持久化状态需配合 DynamoDB 或 ElastiCache Redis。注意 Lambda 有 15 分钟超时限制,长任务需用 Step Functions 编排。

Lambda API Gateway DynamoDB 极低成本

横向对比分析

在成本、运维复杂度、可扩展性等维度全面比较,帮你快速选型

部署方式 月成本估算 运维复杂度 水平扩展 高可用 启动速度 最适场景
🖥️ EC2 裸机 ~$0(免费层) ★ 极低 手动 单点故障 秒级 个人 / 开发测试
🐳 EC2 + Docker ~$10-30 ★★ 低 有限 可配置 秒级 小团队 / 生产
🚀 ECS Fargate ~$20-60 ★★★ 中 自动 高可用 ~30s 冷启动 中等规模 SaaS
📦 ECS on EC2 ~$15-40 ★★★ 中 自动 高可用 秒级 成本敏感型生产
⚙️ EKS ~$80+ ★★★★★ 高 HPA 自动 极高可用 秒级 企业 / 多服务平台
🌱 Beanstalk ~$15-50 ★ 极低 自动 中等 2-5 min 快速上线 / PoC
⚡ Lambda ~$0-5 ★★★ 中 无限 高可用 冷启动 1-3s 事件驱动 / 低频
💡 选型建议 个人学习/开发测试 → EC2 免费层 | 独立部署快速上线 → Beanstalk 或 EC2+Docker | 稳定生产服务 → ECS Fargate | 企业级平台 → EKS

快速上手指南

以 EC2 裸机部署为例,5 步完成 OpenClaw 上线

1

创建 EC2 实例

在 AWS 控制台启动一台 Amazon Linux 2023 实例(t3.micro 即可),配置安全组开放 80、443、3000 端口,绑定弹性 IP(Elastic IP)。

⚠️ 注意保存好 .pem 密钥文件,部署完成后安全组建议限制 SSH 只允许你的固定 IP。
2

安装运行环境

🖥️ SSH 到 EC2 实例后执行
# 更新系统
sudo dnf update -y

# 安装 Node.js 20 LTS
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs

# 安装 PM2 进程守护
sudo npm install -g pm2
3

安装 OpenClaw

📦 安装 OpenClaw CLI
# 全局安装 openclaw
sudo npm install -g openclaw

# 初始化配置
openclaw init

# 配置 AI 模型(Bedrock / OpenAI)
openclaw config set model amazon-bedrock/us.anthropic.claude-sonnet-4-5
4

配置 IAM 权限(使用 Bedrock)

为 EC2 绑定 IAM Role,赋予 bedrock:InvokeModel 权限,无需硬编码任何 AK/SK。

🔐 IAM Policy(最小权限原则)
{
  "Effect": "Allow",
  "Action": [
    "bedrock:InvokeModel",
    "bedrock:InvokeModelWithResponseStream"
  ],
  "Resource": "arn:aws:bedrock:us-east-1::foundation-model/*"
}
5

启动并设置开机自启

🚀 通过 PM2 守护运行
# 启动 OpenClaw Gateway
pm2 start "openclaw gateway start" --name openclaw

# 保存进程列表并设置开机启动
pm2 save && pm2 startup

# 检查运行状态
pm2 status
openclaw status
✅ 完成!OpenClaw 已在后台运行,重启服务器后会自动恢复。访问你的弹性 IP 即可连接。

🐳 Docker Compose 示例

📄 docker-compose.yml
version: '3.9'
services:
  openclaw:
    image: node:20-alpine
    working_dir: /app
    volumes:
      - ./workspace:/app/workspace
      - ./config:/root/.openclaw
    command: sh -c "npm i -g openclaw && openclaw gateway start"
    ports:
      - "3000:3000"
    restart: unless-stopped
    environment:
      - NODE_ENV=production

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/letsencrypt
    depends_on:
      - openclaw

推荐生产架构

ECS Fargate + ALB + RDS + ElastiCache,适合中等规模稳定生产环境

┌─ AWS Cloud ────────────────────────────────────────────────────────────┐
│                                                                        │
│  用户 📱  ──DNS──▶  Route 53  ──▶  CloudFront (CDN + DDoS 防护)      │
│                                        ↓                               │
│                            ACM (免费 SSL 证书)                         │
│                                        ↓                               │
│                   Application Load Balancer (ALB)                     │
│                       ↙                      ↘                         │
│        ECS Fargate Task             ECS Fargate Task               │
│        🦞 OpenClaw :3000           🦞 OpenClaw :3000  ← Auto Scaling  │
│               ↓                          ↓                             │
│               └────────────┬─────────────┘                            │
│                            ↓                                           │
│    ElastiCache Redis    RDS PostgreSQL    S3 Bucket              │
│    (Session 缓存)      (持久化数据)      (文件/日志存储)               │
│                                                                        │
│    CloudWatch Logs  X-Ray Tracing  Secrets Manager  Bedrock API  │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘
🔀
Application Load Balancer
多实例负载均衡、健康检查、SSL 终止、路径路由规则
🔒
Secrets Manager
加密存储 API Keys、数据库密码,支持自动轮换
📊
CloudWatch
日志聚合、指标监控、告警通知、可视化 Dashboard
Amazon Bedrock
Claude / Llama 等模型,同区域低延迟,无需管理 API Key

常见问题

部署过程中最常遇到的问题与解决方案

🔑 如何在 EC2 上安全管理 AI API 密钥?

推荐三种方式(按安全级别从高到低):

  • 最佳:IAM Role + Bedrock — EC2/Fargate 绑定 IAM Role,代码无需任何密钥,直接调用 Bedrock API
  • 次选:AWS Secrets Manager — 密钥加密存储,运行时动态获取,支持自动轮换,每个 Secret 约 $0.40/月
  • 备选:Parameter Store(SecureString) — 免费额度更大,适合非频繁访问的配置参数

⚠️ 禁止将 API Key 硬编码在代码或 docker-compose.yml 中,也不要提交到 Git 仓库!

💰 哪种部署方式最省钱?

取决于使用频率和规模:

  • 几乎免费:EC2 t3.micro(AWS 免费层每月 750 小时,首年有效)
  • 极低频率:Lambda,每月前 100 万次调用 + 40 万 GB·秒计算完全免费
  • 持续运行省钱:EC2 Spot 实例比按需价格低 70-90%,配合 ECS 混合调度
  • 中等规模:ECS on EC2 + Spot 比纯 Fargate 省 40% 以上成本
  • Reserved Instances:提前承诺 1-3 年,可节省 40-60% 费用
🌐 如何配置自定义域名和 HTTPS?
  • 在 Route 53 创建托管区域,或将域名 NS 指向 Route 53(约 $0.50/月)
  • 用 ACM(AWS Certificate Manager)申请 SSL 证书 — 完全免费,自动续签
  • ALB 上配置 HTTPS 监听器,绑定 ACM 证书,HTTP 自动重定向到 HTTPS
  • Route 53 A 记录(Alias)指向 ALB 域名,无需额外费用
  • EC2 裸机方案:用 Certbot + Let's Encrypt,或 Caddy 自动 HTTPS(零配置)
📡 OpenClaw Gateway 需要开放哪些端口?
  • 3000 — OpenClaw Gateway 默认端口(仅内网,不要直接暴露公网)
  • 80 — HTTP(用于 HTTP→HTTPS 重定向)
  • 443 — HTTPS(对外服务的主要端口)
  • 22 — SSH(强烈建议仅允许你的固定 IP,或用 AWS Systems Manager Session Manager 无需开放 SSH)

安全最佳实践:ALB 安全组开放 80/443,EC2 安全组只允许来自 ALB 安全组的 3000 端口流量,完全不对公网暴露应用端口。

🔄 如何实现 OpenClaw 零停机更新?
  • ECS Fargate:更新 Task Definition,ECS 自动滚动替换容器,默认保持最少 100% 健康实例,用户无感知
  • Beanstalk:选择"滚动更新"或"蓝绿部署"策略,控制台一键操作,失败可一键回滚
  • EC2 裸机:pm2 reload(graceful restart),配合 Nginx reload,秒级重启无断连
  • EKS:kubectl rolling update,配置 PodDisruptionBudget 确保可用副本数,支持金丝雀发布
🌏 如何部署多区域高可用架构?

面向全球用户的多区域部署方案:

  • 在多个 AWS Region 分别部署 OpenClaw(如 us-east-1、ap-northeast-1、ap-southeast-1)
  • Route 53 配置地理位置路由或延迟路由,将用户引导到最近节点,毫秒级响应
  • CloudFront 作为全球 CDN 层,边缘节点缓存静态资源,减少源站压力
  • 数据同步:RDS Global Database(跨区复制)或 DynamoDB Global Tables(多活写入)
  • 故障转移:Route 53 健康检查 + Failover 路由,主区域故障时自动切换备用区域
🛠️ 使用 AWS Systems Manager 管理 EC2,无需 SSH

SSM Session Manager 是更安全的 EC2 管理方式:

  • 完全不需要开放 22 端口,安全组零入站规则
  • 通过 AWS 控制台或 CLI 直接获取 Shell,操作记录自动审计到 CloudTrail
  • 仅需 EC2 绑定 AmazonSSMManagedInstanceCore IAM Policy
  • 支持端口转发(本地 → EC2),调试应用无需暴露端口