在 Amazon ECS 上启用应用程序 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon ECS 上启用应用程序

遵照本部分的自定义设置步骤,在 Amazon ECS 上启用 CloudWatch Application Signals。

对于在 Amazon ECS 上运行的应用程序,您可以自行安装并配置 CloudWatch 代理和 Amazon Distro for OpenTelemetry。在这些启用了自定义 Application Signals 设置的架构上,Application Signals 不会自动发现您的服务的名称或运行这些服务的主机或集群。您必须在自定义设置期间指定这些名称,而您指定的名称就是显示在 Application Signals 控制面板上的名称。

使用自定义设置在 Amazon ECS 上启用 Application Signals

使用这些自定义设置说明,将您在 Amazon ECS 上的应用程序载入到 CloudWatch Application Signals。您可以自行安装并配置 CloudWatch 代理和 Amazon Distro for OpenTelemetry。

有两种方法可以在 Amazon ECS 上部署 Application Signals。请根据您的环境选择一种适合的方法。

  • 使用挎斗策略进行部署 – 向集群中的每个任务定义添加一个 CloudWatch 代理挎斗容器。

    优势:

    • 可同时支持 ec2Fargate 启动类型。

    • 在设置环境变量时,可以始终将 localhost 作为 IP 地址。

    劣势:

    • 必须为集群中运行的每个服务任务设置该 CloudWatch 代理挎斗容器。

    • 仅支持 awsvpc 网络模式。

  • 使用进程守护程序策略进行部署 – 只需在集群中添加一次 CloudWatch 代理任务,Amazon ECS 进程守护程序计划策略就会根据需要部署该任务。可确保每个实例都持续接收跟踪和指标,从而实现集中可见性,无需在每个应用程序任务定义中将代理作为挎斗运行。

    优势:

    • 只需在集群中为 CloudWatch 代理设置一次进程守护程序服务。

    劣势:

    • 不支持 Fargate 启动类型。

    • 如果您使用的是 awsvpcbridge 网络模式,则必须在环境变量中手动指定每个容器实例的私有 IP 地址。

无论使用哪种方法,在 Amazon ECS 集群上,Application Signals 都不会自动发现服务的名称。您必须在自定义设置期间指定服务名称,而您指定的名称就是显示在 Application Signals 控制面板上的名称。

使用模型上下文协议(MCP)服务器在 Amazon ECS 上启用 Application Signals

您可以使用 CloudWatch Application Signals 模型上下文协议(MCP)服务器,通过对话式人工智能交互在 Amazon ECS 集群上启用 Application Signals。这为设置 Application Signals 监控提供了自然语言界面。

MCP 服务器通过理解您的需求并生成相应的配置来自动执行启用过程。您只需简单描述要启用的功能,无需手动执行控制台步骤或编写 CDK 代码。

先决条件

在使用 MCP 服务器启用 Application Signals 之前,请确保满足以下条件:

  • 支持 MCP 的开发环境(例如 Kiro、Claude Desktop、带有 MCP 扩展的 VSCode 或其他与 MCP 兼容的工具)

  • 已在 IDE 中配置 CloudWatch Application Signals MCP 服务器。有关详细的设置说明,请参阅 CloudWatch Application Signals MCP 服务器文档

使用 MCP 服务器

在 IDE 中配置好 CloudWatch Application Signals MCP 服务器后,即可使用自然语言提示来请求启用指导。尽管编码助手可以从项目结构中推断出上下文,但在提示中提供具体细节有助于确保获得更准确、更相关的指导。包含一些信息,例如应用程序语言、Amazon ECS 集群名称、部署策略(sidecar 或进程守护程序)以及基础设施和应用程序代码的绝对路径等等。

最佳实践提示(具体且完整):

"Enable Application Signals for my Python service running on ECS. My app code is in /home/user/flask-api and IaC is in /home/user/flask-api/terraform" "I want to add observability to my Node.js application on ECS cluster 'production-cluster' using sidecar deployment. The application code is at /Users/dev/checkout-service and the task definitions are at /Users/dev/checkout-service/ecs" "Help me instrument my Java Spring Boot application on ECS with Application Signals using daemon strategy. Application directory: /opt/apps/payment-api CDK infrastructure: /opt/apps/payment-api/cdk"

效果较差的提示:

"Enable monitoring for my app" → Missing: platform, language, paths "Enable Application Signals. My code is in ./src and IaC is in ./infrastructure" → Problem: Relative paths instead of absolute paths "Enable Application Signals for my ECS service at /home/user/myapp" → Missing: programming language, deployment strategy

快速模板:

"Enable Application Signals for my [LANGUAGE] service on ECS. Deployment strategy: [sidecar/daemon] App code: [ABSOLUTE_PATH_TO_APP] IaC code: [ABSOLUTE_PATH_TO_IAC]"

使用 MCP 服务器的优势

使用 CloudWatch Application Signals MCP 服务器具有以下优势:

  • 自然语言界面:无需记住命令或配置语法,即可描述要启用的功能

  • 上下文感知指导:MCP 服务器了解特定环境并提供量身定制的建议

  • 减少错误:自动生成配置可最大限度地减少手动输入错误

  • 更快设置:更快地将想法过渡到实施

  • 学习工具:查看生成的配置,了解 Application Signals 的工作原理

有关配置和使用 CloudWatch Application Signals MCP 服务器的更多信息,请参阅 MCP 服务器文档