本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
卓越运营支柱
Well-Architect AWS ed Framework 的卓越运营支柱侧重于运行和监控系统,以及不断改进流程和程序。它包括能够有效地支持开发和运行工作负载,深入了解其运行情况,并不断改进支持流程和程序以实现业务价值。您可以通过自我修复工作负载降低运营复杂性,这些工作负载无需人工干预即可检测和修复大多数问题。您可以按照本节所述的最佳实践努力实现这一目标,并使用 Amazon Neptune Analytics 指标和机制在工作负载偏离预期行为时做出正确响应。 APIs
本次对卓越运营支柱的讨论侧重于以下关键领域:
-
基础设施即代码(IaC)
-
变更管理
-
弹性策略
-
事件管理
-
合规审计报告
-
日志记录和监控
使用 IaC 方法自动部署
使用 IaC 在 Neptune 上自动部署的最佳实践包括以下内容:
-
应用 IaC 部署 Neptune Analytics 图表和相关资源。要实现一致的环境配置,请使用提供的对 Nep tune Analytics 的支持AWS CloudFormation来配置图表和私有端点。
-
用于 CloudFormation 在 Ama SageMaker zon AI 上配置 Neptune 笔记本实例。您可以使用笔记本在 Neptune Analytics 图表中查询和可视化数据。
-
自动执行 Neptune Analytics 操作程序,例如调整图表大小、删除图表并生成图表快照、从快照中恢复图表以及重置和重新加载图表。使用 Nep tune Analytics API,该API可通过 AWS Command Line Interface (AWS CLI)
或 SDK 获得。 -
评估图表所需的正常运行时间。分析通常是短暂的;只有在需要运行算法时才需要使用图表。如果是这种情况,请使用 AWS CLI 或 SDKs 对图表进行快照,并在不再需要图表时将其删除。然后,如有必要,您可以稍后从快照中将其恢复。
-
将来自客户端的连接字符串存储在外部。您可以将连接字符串存储在AWS Secrets Manager、Amazon Dy namoDB 或任何可以动态更改它们的位置。
-
使用标签将元数据添加到您的 Neptune Analytics 资源中,并根据标签跟踪使用情况。标签有助于整理您的资源。例如,您可以将通用标签应用于特定环境或应用程序中的资源。您还可以使用标签来分析资源使用量的账单;有关更多信息,请参阅《AWS 账单用户指南》中的使用 AWS 成本分配标签组织和跟踪成本。此外,您还可以使用您的 AWS Identity and Access Management (IAM) 策略中的条件,根据该 AWS 资源上使用的标签来控制对资源的访问权限。您可以使用全局
aws:ResourceTag/tag-key
条件键完成此操作。有关更多信息,请参阅 IAM 用户指南中的控制 AWS 资源访问权限。
运营设计
采用各种方法来改进 Neptune Analytics 图表的操作方式:
-
维护单独的 Neptune Analytics 图表,以供开发、测试和生产使用。这些图表可能具有不同的数据集、用户和操作控件。
-
为不同的用途保留单独的 Neptune Analytics 图表。例如,如果两组分析用户需要不同的图表,这些图表具有不同的时间表、模型、性能和可用性以及使用模式 SLAs,则为每组用户保留单独的图表。
-
让用户和操作人员做好准备,了解 Neptune Analytics 的维护更新。
进行频繁的、微小的、可逆的更改
以下建议侧重于您可以进行的微小、可逆的更改,以最大限度地降低复杂性并降低工作负载中断的可能性:
-
将 IaC 模板和脚本存储在源代码控制服务(例如 GitHub 或 GitLab)中。
重要
不要在源代码管理中存储 AWS 凭据。
-
要求部署 IaC 才能使用持续集成和持续交付 (CI/CD) 服务,例如或。AWS CodeDeployAWS CodeBuild在将代码提升到生产图表之前,在非生产版 Neptune Analytics 环境中编译、测试和部署代码。
实现可观察性以获得可操作的见解
全面了解工作负载行为、性能、可靠性、成本和运行状况。以下建议可帮助你在 Neptune Analytics 中获得这种程度的理解:
-
监控 Neptune Analytics 的亚马逊 CloudWatch 指标。根据这些指标,您可以确定图表的大小(节点、边和向量的数量,加上总字节大小)、CPU 利用率以及查询请求和错误率。
-
为关键指标(例如
NumQueuedRequestsPerSec
、、NumOpenCypherRequestsPerSec
GraphStorageUsagePercent
GraphSizeBytes
、和)CPUUtilization
以及应用程序日志中的 Neptune 客户端响应创建 CloudWatch 仪表板和警报。 -
设置通知以监控 Neptune Analytics 图表的运行状况,例如图表大小、请求速率或 CPU 利用率何时超过您的阈值。例如,如果您打算大幅增长的图表上
GraphStorageUsagePercent
已攀升至90%,请决定是否增加内存优化的 Neptune 容量单位 (m-nCU) 容量。如果当前的 m-ncU 为 128,则将其增加到 256 将减少大约 45% 的存储空间。如果通常大于零,NumQueuedRequestsPerSec
则可以考虑增加 m-ncU 容量以提供更多的计算容量。或者,您可以减少客户端的并发性。
从所有操作失败中吸取教训
自我修复基础设施是一项长期的工作,在出现罕见问题或响应效果不如预期时,它会不断迭代发展。采用以下做法可以推动将注意力集中在实现该目标上:
-
通过从所有失败中吸取教训来推动改进。
-
跨团队和组织分享所学知识。如果您的组织中有多个团队使用 Neptune,请创建一个公共聊天室或用户群组来分享经验和最佳实践。
使用日志记录功能监控未经授权或异常的活动
使用日志记录来观察异常的性能和活动模式。考虑下面的最佳实践:
-
Neptune Analytics 支持使用记录控制平面动作。 AWS CloudTrail有关更多信息,请参阅使用记录 Neptune Analytics API 调用。 AWS CloudTrail通过此功能,您可以跟踪 Neptune Analytics 资源的创建、更新和删除。为了实现强大的监控和警报,您还可以将 CloudTrail 事件与 Amazon CloudWatch 日志集成。为了增强您对 Neptune Analytics 服务活动的分析并识别活动的变化 AWS 账户,您可以使用 Amazon Athen CloudTrail a 查询日志。例如,可以使用查询确定趋势,并根据属性(如源 IP 地址或用户)进一步隔离活动。
-
您还可以使用 CloudTrail 来启用 Neptune Analytics 数据平面活动的日志记录,例如查询执行。您可以查看正在运行哪些查询、其频率和来源。默认情况下, CloudTrail 不记录数据事件。记录数据事件将收取额外费用。有关更多信息,请参阅 AWS CloudTrail 定价
。 -
您还可以在控制平面或数据平面中记录对 Neptune Analytics 的应用程序调用。例如,如果您使用适用于 Python (Boto3) 的 AWS SDK
进行查询,则可以启用调试级别的日志记录 以获取对控制台或文件的查询跟踪。这在开发过程中很有用。我们还建议您捕获并记录应用程序中的异常。