? 一、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>