在本篇文章中,我们将演示如何使用 AWS CLI 在 ECS Fargate 上部署 SkyWalking UI,并通过 Application Load Balancer (ALB) 提供公网访问入口,同时确保容器无法直接从公网访问。以下是详细步骤:
1. 创建 ALB
记录返回的 ALB ARN,例如:arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/skywalking-ui-alb/abcdef0123456789
。
2. 创建 ALB 目标组
记录返回的目标组 ARN,例如:arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/skywalking-ui-alb-tg/abcdef0123456789
。
3. 创建 ALB 监听器
4. 创建任务定义 JSON 文件 (skywalking-ui-task.json)
5. 注册任务定义
记录返回的任务定义 ARN,例如:arn:aws:ecs:us-east-1:123456789012:task-definition/skywalking-ui-task:1
。
6. 创建 ECS 服务
创建一个名为 skywalking-ui-service.json
的文件,内容如下:
7. 创建服务
8. 验证服务状态
确保服务状态为 RUNNING
。
9. 获取 ALB DNS 名称或 IP 地址
在输出中找到 DNSName
或 IPAddress
。
10. 访问 SkyWalking UI
通过 http://<your-alb-dns>
访问 SkyWalking UI。
通过以上步骤,您已经成功部署了 SkyWalking UI,并通过 ALB 提供了公网访问入口。同时,由于容器没有分配公网 IP 地址,因此无法直接从公网访问容器。所有流量都需要通过 ALB 进行路由。
在生产环境中,您可能需要采取额外的安全措施,例如为 ALB 配置 SSL/TLS 终止、启用健康检查等。同时,也建议定期检查和更新 SkyWalking 版本,以获取最新的功能和安全更新。