[SEO 副标题]
本指南演示如何配置 AWS Observability Accelerator,以收集和可视化 Amazon Elastic Kubernetes Service(Amazon EKS)集群上的指标、日志和跟踪。将其与 AWS Observability Accelerator for Terraform 基础设施即代码模型一起使用,为您的 AWS 环境快速部署和运行可观测性。
请注意:[免责声明]
架构图
-
可选
-
主架构
-
可选
-
此架构图提供了一种可选方式,用于设置通过 Amazon EKS Blueprint for Terraform 配置的 Amazon Elastic Kubernetes Service(Amazon EKS)集群。有关主架构的更多详细信息,请打开其他选项卡。
可选
要部署本指南,您需要预置 Amazon Elastic Kubernetes Service(Amazon EKS)集群。以下步骤展示了如何使用 Amazon EKS Blueprint for Terraform 预置 Amazon EKS 集群。
第 1 步
管理员或 DevOps 用户将 Amazon EKS 蓝图的基础设施即代码(IaC)代码更改提交到 Git 存储库。第 2 步
将代码推送到 Git 存储库后即可调用蓝图预置工作流程。第 3 步
Terraform 针对目标 AWS 环境启动资源部署流程。第 4 步
通过 Terraform 创建所需的 AWS Identity and Access Management(IAM)角色、策略和 AWS Key Management Service(AWS KMS)密钥。第 5 步
通过 Terraform 为控制面板组件部署 Amazon EKS 虚拟私有云(VPC)。
第 6 步
通过 Terraform 将 Amazon EKS 集群控制面板组件部署到 Amazon EKS VPC 中。第 7 步
通过 Terraform 为计算面板部署您的 VPC。第 8 步
通过 Terraform 将子网和其他网络组件部署到集群 VPC 中。第 9 步
Amazon EKS 节点组包含计算面板节点(自动扩缩组中的 Amazon Elastic Compute Cloud(Amazon EC2)实例),通过 Terraform 将该节点组部署到集群 VPC 中并加入 Amazon EKS 集群。第 10 步
Amazon EKS 集群可用于应用程序部署。命令行界面(CLI)客户端和应用程序可通过网络负载均衡器(NLB)访问 Kubernetes API。 -
主架构
-
此架构图演示了如何在 Amazon Elastic Kubernetes Service(Amazon EKS)集群上部署 AWS 可观测性加速器。要获得设置 Amazon EKS 集群的可选方法,请打开其他选项卡。
第 1 步
管理员或 DevOps 团队用户通过 Terraform 蓝图启动 AWS 可观测性加速器的安装。第 2 步
通过 Terraform 创建所需的 IAM 角色和策略。第 3 步
通过 Terraform 将适用于 OpenTelemetry 的 AWS Distro 收集器资源部署到 Amazon EKS 集群中。第 4 步
在多个可用区(多可用区)中部署 Amazon Managed Service for Prometheus,并通过 Terraform 配置警报和规则。第 5 步
以多可用区模式部署 Amazon Managed Grafana。通过 Terraform 将它与 Amazon Managed Service for Prometheus 以及其他服务集成。第 6 步
通过适用于 OpenTelemetry 的 Distro 收集器从 Amazon EKS 集群上运行的微服务、容器组或作业中收集指标。第 7 步
通过写入器端点将收集的指标导出到 Amazon Managed Service for Prometheus,并存储在时间序列数据库中。可以将指标导出到 Amazon Simple Storage Service(Amazon S3)。根据指标阈值在 Amazon Managed Service for Prometheus 中创建警报规则。第 8 步
导入的指标可用于通过数据来源的查询端点向 Amazon Managed Grafana 进行查询。第 9 步
用户通过 AWS IAM Identity Center(或其他单点登录提供商)向 Amazon Managed Grafana 进行身份验证。第 10 步
可在 Amazon Managed Grafana 用户界面中通过控制面板向 IAM 认证和授权的用户提供指标和元数据。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指南使用的服务通过监控和记录提供全面的可观测性,为您提供可靠、稳定且值得信赖的应用程序。云管理员和 DevOps 团队用户可以查看本指南中定义的指标并接收警报,以监控其基础设施和云工作负载的运行状况。
如果 AWS 区域完全中断(这种情况几乎不可能发生,但不是完全没可能),本指南中包含的示例代码可以重新部署到另一个 AWS 区域,只需对 Terraform 模块进行少量更改即可。由于托管服务的高可用性配置以及基于 Amazon EKS 集群的组件,所有资源都得到了高效管理。云管理员和 DevOps 团队可以通过相关的日志事件深入了解 AWS 资源利用率。
最后,不妨查看实施反馈循环文档,该文档描述了反馈循环的设置方式、工作原理,以及它们如何帮助获得有助于决策的切实可行的洞察信息。
-
安全性
最低权限原则贯穿本指南,将每种资源的访问权限限制在所需的范围内。Amazon EKS 集群通常部署在单独的虚拟私有云(VPC)中,只能由负载均衡器使用具有 SSL 凭证的 HTTPS 流量通过受保护的 API 端点进行访问。Amazon Managed Service for Prometheus 端点以及 Amazon Managed Grafana 工作空间通过 HTTPS 流量和证书得以保护。Amazon Managed Grafana 用户界面的访问权限通过 IAM 进行控制。
-
可靠性
Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 都是区域级服务,部署在不同的可用区,以实现高可用性和可靠性。Kubernetes 支持 Amazon EKS 组件,例如 Amazon Managed Service for Prometheus 节点导出器和 Distro for OpenTelemetry 指标收集器容器组(pod)。通过使用 Kubernetes,您可以构建由微服务组成的分布式系统,在这些系统中,可靠性等同于稳定性。
可以使用 Amazon CloudWatch 启用 Amazon Managed Service for Prometheus 服务日志。此外,部署到 Amazon EKS 集群中的核心组件的日志组是在 CloudWatch 中创建的,可用于问题排查。警报也可以根据这些指标进行配置,并通过 Amazon Simple Notification Service(Amazon SNS)等通知渠道直接发送给云管理员或 DevOps 团队。
-
性能效率
Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 是 Amazon 的原生服务。本指南重点介绍部署这些应用程序并将其与选定资源集成的高性能且高效的方法,以便您可以监控和提高 Amazon EKS 应用程序的效率,同时实现高可用性和低运营成本。可以根据您的 CPU 和内存使用率、网络流量以及每秒进行读写操作的次数(IOPS)进行进一步优化。
-
成本优化
自动化和可扩展性是本指南分别在 Terraform 和 AWS 管理控制台中使用的节省成本的功能。集中管理通过控制台、AWS 命令行界面(AWS CLI)和 Amazon Managed Grafana 控制台来实现。这些功能允许有效检测和纠正基础设施和应用程序开发或部署过程中的问题,从而降低开发工作的总成本。
Amazon Managed Service for Prometheus 定价包括有关您为摄取和存储的指标而支付的费用的详细信息。更具体地说,我们会对每个摄取的指标样本及用于存储这些样本的磁盘空间收费。将时间序列数据的分辨率降低到更长的时间片可以减少存储指标的数量及其相关成本。
-
可持续性
本指南将在 AWS 云端部署和集成 AWS 服务及 Amazon EKS 集群,无需购买任何物理硬件。容量提供程序最大限度地减少了虚拟“基础设施”预置,并在工作负载需要时执行必要的自动扩展活动。
在 Kubernetes 平台上运行的每个容器组(pod)(包括 Amazon EKS 集群)都会消耗内存、CPU、I/O 和其他资源。本指南允许对这些指标进行细致的收集和可视化。云管理员和 DevOps 工程师可以通过自己的内部指标和日志事件监控其资源利用率,并在这些指标指示时执行配置更新,以实现资源的可持续利用。
实施资源
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
AWS Observability Accelerator for Terraform
AWS Observability Accelerator for Terraform
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。