✅ 一、ECS 服务配置
-
Dockerfile 确保监听 80 端口
EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
或
EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]
-
任务定义(Task Definition)
-
设置 容器端口为 80
-
映射到宿主机端口(如果是 EC2 模式)
-
如果是 Fargate,只需定义容器端口即可
-
✅ 二、服务启动(Service)
-
使用该 Task Definition 创建 ECS 服务
-
网络模式(Fargate 通常用
awsvpc
,EC2 可用bridge
或host
)
✅ 三、负载均衡(可选但推荐)
🔹 方式 A:使用 Application Load Balancer(ALB)
-
创建 ALB(或者使用已有的)
-
创建一个 Target Group,目标类型为 IP 或 instance
-
配置 ECS 服务时,绑定该 Load Balancer
-
配置监听器:
-
HTTP(端口 80) -> Forward 到 Target Group
-
🔹 方式 B:不使用负载均衡(仅限 EC2 模式)
如果你用的是 EC2 Launch Type 并且将容器绑定在 EC2 主机的 80 端口:
-
直接通过 EC2 实例公网 IP 访问,例如:
http://<EC2 公网 IP>
✅ 四、安全组设置
-
ECS 服务关联的安全组
-
开放端口
80
,来源为0.0.0.0/0
(公网访问)
-
-
如果使用 ALB
-
ALB 的安全组也要开放 80
-
容器的安全组允许来自 ALB 的访问(源为 ALB 安全组)
-
✅ 五、VPC 子网和路由
-
ECS 任务或服务必须运行在 公有子网(子网的路由表连通到 Internet Gateway)
-
Fargate 模式必须开启 Auto-assign public IP
✅ 六、测试访问
如果都设置正确,访问 URL 如下:
示例:
-
使用 ALB:
http://<ALB-DNS-NAME>
-
使用 EC2:
http://<EC2-Public-IP>