You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需Route53,同一任务中ECS Services分离子域名访问方案咨询

解决方案说明

核心概念澄清

首先明确:ECS任务是单个运行的容器实例(或容器组),ECS服务则是负责任务部署、扩容、高可用的管理组件。无法在同一个ECS任务中部署两个ECS服务,你需要在同一个ECS集群下部署两个独立的ECS服务(MyService1和MyService2),每个服务对应专属的任务定义。

无需Route53的子域名路由方案(适配Cloudflare域名)

以下是适配Fargate环境、域名托管在Cloudflare的实现方案:

1. 为两个ECS服务配置负载均衡(两种可选方式)

选项A:双独立Application Load Balancer(ALB)

  • 为MyService1创建一个ALB,配置80/443端口监听,将目标组指向MyService1的Fargate任务。
  • 为MyService2创建另一个ALB,重复上述步骤关联MyService2的任务。
  • 每个ALB会生成一个公网DNS地址。

选项B:共享单个ALB+主机头路由(成本更优)

  • 创建一个ALB,配置HTTPS监听(推荐)。
  • 添加两条主机头路由规则:
    • 规则1:当请求主机头为foo.example.com时,转发到MyService1的目标组。
    • 规则2:当请求主机头为bar.example.com时,转发到MyService2的目标组。
  • 该ALB对应唯一的公网DNS地址。

2. Cloudflare子域名解析配置

登录Cloudflare域名管理后台,添加两条CNAME记录:

  • 子域名foo.example.com:指向对应ALB的公网DNS地址(选项A对应MyService1的ALB;选项B对应共享ALB)。
  • 子域名bar.example.com:指向对应ALB的公网DNS地址(选项A对应MyService2的ALB;选项B对应共享ALB)。
  • 开启Cloudflare代理状态(橙色云朵图标),利用其CDN和安全防护能力。

3. CDK/TypeScript栈调整建议

基于你现有的CDK栈,需做以下修改:

  • 为两个服务分别创建TaskDefinition,各自配置对应容器镜像、环境变量等参数。
  • 部署两个FargateService,分别关联到对应的目标组。
  • 若选共享ALB方案:
    • 创建ALB并配置HTTPS监听(需使用Cloudflare托管的SSL证书,或AWS ACM证书并在Cloudflare做兼容配置)。
    • 为每个服务创建独立的ApplicationTargetGroup。
    • 给ALB监听添加两条基于主机头的转发规则,分别指向对应目标组。
  • 若选独立ALB方案:为每个服务单独创建ALB、监听和目标组。

关键注意事项

  • SSL证书:确保持有*.example.com或两个子域名的有效证书,配置ALB监听时使用对应证书。
  • 安全组:配置ALB安全组允许Cloudflare官方IP段访问,ECS任务安全组允许ALB IP段访问对应端口。
  • Fargate网络:使用awsvpc网络模式,确保任务所在子网可被ALB访问(需配置子网路由表和NAT网关,满足任务公网访问需求)。

内容的提问来源于stack exchange,提问作者Coder1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:51:09