在本篇文章中,我们将演示如何使用 AWS CLI 在 ECS Fargate 上部署 SkyWalking OAP Server,并利用 AWS 服务发现为 gRPC 流量提供一个静态入口点。这样,客户端就可以通过服务发现名称访问 gRPC 服务。以下是详细步骤:
1. 注册任务定义
创建一个名为 dev-skywalking-oap-server-task.json
的文件,内容如下:
首先,我们需要注册一个任务定义,示例任务定义文件为 dev-skywalking-oap-server-task.json
。执行以下命令:
这将返回新创建的任务定义 ARN,例如:arn:aws:ecs:us-east-1:123456789012:task-definition/dev-skywalking-oap-server-task:1
。请记录下这个 ARN。
2. 创建 ECS 服务发现命名空间
使用以下命令创建一个 ECS 服务发现命名空间:
记录返回的 OperationId
,并使用以下命令查看命名空间创建状态:
等待状态变为 SUCCESS
。然后记录返回的 Service
值,这是您的服务发现命名空间 ARN,例如:arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-abcdef0123456789
。
3. 创建 ECS 服务
创建一个名为 dev-skywalking-oap-server-service.json
的文件,内容如下:
确保替换以下值:
<your-ecs-cluster-name>
: 您的 ECS 集群名称<your-task-definition-arn>
: 您在步骤 1 中获取的任务定义 ARN<your-subnet-id-1>
和<your-subnet-id-2>
: 您的 VPC 子网 ID<your-security-group-id>
: 您的安全组 ID,确保它允许访问端口 11800、12800 和 1234<your-service-registry-arn>
: 您在步骤 2 中获取的服务发现命名空间 ARN
使用以下命令创建服务:
4. 验证服务状态
执行以下命令以验证服务状态:
当服务状态变为 RUNNING
时,表示任务已成功启动。
5. 配置客户端
对于 gRPC 流量,在客户端应用程序中,将 SkyWalking 代理或探针的 service-addr
设置为 dev-skywalking-oap-server-service.skywalking-oap.local:11800
。
例如,对于 Java 应用程序,修改 agent.config
文件:
对于 HTTP 流量,将 Web UI 访问地址设置为 http://<your-service-ip>:1234
。
通过以上步骤,您已经成功在 ECS Fargate 上部署了 SkyWalking OAP Server,并利用了服务发现为 gRPC 流量提供了一个静态入口点。客户端可以通过服务发现名称访问 gRPC 服务。
请注意,在生产环境中,您可能需要采取额外的安全措施,例如使用 AWS 负载均衡器、配置 SSL/TLS 等。同时,也建议定期检查和更新 SkyWalking 版本,以获取最新的功能和安全更新。