AWS + SST

使用 SST 把 Carbon 栈部署到你自己的 AWS 账户:ECS Fargate、ECR 和 WAF。

这个自托管方案使用 SST 把 ERP 和 MES 容器部署到负载均衡器之后的 ECS Fargate。基础设施定义在 sst.config.ts 中,应用为 carbon,home 为 aws。单服务器部署参见 Docker + Caddy。

TIP

不想自己运维?

Carbon Cloud 管理基础设施、扩缩容、备份和升级。只有当 Carbon 必须运行在你的 AWS 账户内时才需要自托管。

会创建哪些资源

资源详情
VPC + ECS 集群CarbonVpc2 和 CarbonCluster。
CarbonERPService2 vCPU / 4 GB · 端口 3000 · 健康检查 /health · 按 CPU 和内存自动扩缩容 1–10 个任务。
CarbonMESService相同规格,用于 MES。
WAF Web ACLAppAlbWebAcl:每 IP 1000 请求的限流规则,加上 AWS 托管通用规则集。

容器镜像从 ECR(carbon/erp 和 carbon/mes)拉取,由 CI 构建并推送。SST 不构建镜像。

前置条件

要求详情
AWS 账户含 AWS_REGION 和 AWS_ACCOUNT_ID。
ECR 镜像已构建并用 IMAGE_TAG 打标签。
TLS 证书CERT_ARN_ERP 和 CERT_ARN_MES;可选自定义域名 URL_ERP 和 URL_MES。
Supabase 实例在流程之外预置,不由 SST 创建。提供 SUPABASE_URL、SUPABASE_DB_URL、密钥和 SUPABASE_JWT_SECRET。
HEADS UP

WAF Web ACL 必须在首次部署后手工关联到应用负载均衡器。SST 会创建它,但不会挂接。

部署

在仓库根目录运行 SST,并导出基础设施变量。

设置环境

导出 AWS_REGION、AWS_ACCOUNT_ID、IMAGE_TAG、CERT_ARN_* 值、可选的 URL_* 值,以及应用运行时配置。请单独预置 Supabase。

部署栈

bash
npx sst deploy --stage prod

这会创建 VPC、集群、Fargate 服务和 WAF,然后拉取由 IMAGE_TAG 标记的 ECR 镜像。prod 阶段在移除时保留资源;其他阶段会删除它们。

关联 WAF

在 AWS 控制台(或使用 CLI)把 AppAlbWebAcl 关联到应用负载均衡器。SST 创建 Web ACL 但不挂接它。

NOTE

SST 不构建容器镜像。CI 构建 carbon/erp 和 carbon/mes 并推送到 ECR;部署拉取 IMAGE_TAG 指定的标签。

完整配置面参见环境变量,单台 VPS 方案参见 Docker + Caddy,使用 crbn CLI 在本地运行参见本地开发。