AWS + SST
使用 SST 把 Carbon 栈部署到你自己的 AWS 账户:ECS Fargate、ECR 和 WAF。
这个自托管方案使用 SST 把 ERP 和 MES 容器部署到负载均衡器之后的 ECS Fargate。基础设施定义在 sst.config.ts 中,应用为 carbon,home 为 aws。单服务器部署参见 Docker + Caddy。
会创建哪些资源
| 资源 | 详情 |
|---|---|
| VPC + ECS 集群 | CarbonVpc2 和 CarbonCluster。 |
CarbonERPService | 2 vCPU / 4 GB · 端口 3000 · 健康检查 /health · 按 CPU 和内存自动扩缩容 1–10 个任务。 |
CarbonMESService | 相同规格,用于 MES。 |
| WAF Web ACL | AppAlbWebAcl:每 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,并导出基础设施变量。
部署栈
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 在本地运行参见本地开发。