亚马逊AWS官方博客

AWS Compute Optimizer – 您的定制资源优化服务

当我公开谈论 Amazon EC2 实例类型时,我经常会收到一个问题:“如何确定我为应用程序选择了正确的实例类型?” 选择正确的实例类型是艺术与科学之间的抉择。它通常涉及了解正常情况下的应用程序性能特征(基准)和预期的每日变化,并选择与这些特征匹配的实例类型。在此之后,您需要监控关键指标以验证您的选择,然后不断迭代以调整最适合您的应用程序性价比的实例类型。过度预置资源会导致您为基础设施支付过多的费用,而资源不足会导致应用程序性能降低,进而可能影响客户体验。

今年早些时候,我们发布了 Cost Explorer 调整建议,它可帮助您确定未充分利用的 Amazon Elastic Compute Cloud (EC2) 实例,您可以对同一系列中的这些实例进行缩减以节省资金。我们收到了很好的反馈,客户正在寻求更多建议,而不仅仅是在同一实例系列中缩减。

今天,我们宣布推出一项新服务来帮助您针对工作负载优化计算资源AWS Compute OptimizerAWS Compute Optimizer 使用机器学习技术来分析您帐户上的资源消耗的历史记录,并针对您的资源使用情况提出明确可行的建议。AWS Compute Optimizer 已集成到 AWS Organizations,您可以从主 AWS Organizations 帐户查看有关多个帐户的建议。

为了开始使用 AWS Compute Optimizer,我将浏览到 AWS 管理控制台,选择 AWS Compute Optimizer 并激活服务。它将立即开始使用 Amazon CloudWatch 指标来分析我的资源使用情况和历史记录,并在几个小时后提出最初的建议。

我可以在 AWS Compute Optimizer 仪表板上查看最初的建议:

单击过度预置:8 个实例可以获得以下详细信息:

单击 8 个链接中的某个链接可以获得可指导行动的结果:

AWS Compute Optimizer 提供了多个选项。我可以向下滚动到页面底部,以验证如果决定应用此建议会产生什么影响:

我还可以从 AWS 命令行界面 (CLI) 访问建议:

$ aws compute-optimizer get-ec2-instance-recommendations --instance-arns arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658
{
    "instanceRecommendations": [
        {
            "instanceArn": "arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658",
            "accountId": "012345678912",
            "currentInstanceType": "m5.xlarge",
            "finding": "OVER_PROVISIONED",
            "utilizationMetrics": [
                {
                    "name": "CPU",
                    "statistic": "MAXIMUM",
                    "value": 2.0
                }
            ],
            "lookBackPeriodInDays": 14.0,
            "recommendationOptions": [
                {
                    "instanceType": "r5.large",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 3.2
                        }
                    ],
                    "performanceRisk": 1.0,
                    "rank": 1
                },
                {
                    "instanceType": "t3.xlarge",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 2.0
                        }
                    ],
                    "performanceRisk": 3.0,
                    "rank": 2
                },
                {
                    "instanceType": "m5.xlarge",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 2.0
                        }
                    ],
                    "performanceRisk": 1.0,
                    "rank": 3
                }
            ],
            "recommendationSources": [
                {
                    "recommendationSourceArn": "arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658",
                    "recommendationSourceType": "Ec2Instance"
                }
            ],
            "lastRefreshTimestamp": 1575006953.102
        }
    ],
    "errors": []
}

请记住,AWS Compute Optimizer 使用 Amazon CloudWatch 指标作为建议的基础。默认情况下,CloudWatch 指标是可从管理程序角度观察到的指标,例如 CPU 利用率、磁盘 IO 和网络 IO。如果您希望 AWS Compute Optimizer 考虑操作系统级别指标(例如内存使用率),则需要EC2 实例上安装 CloudWatch 代理。AWS Compute Optimizer 会自动识别这些指标(如果可用),并在创建建议时将其考虑在内,否则,它将在控制台中显示“数据不可用”。

AWS 客户告诉我们性能并不是选择资源时唯一考虑的指标,性价比也很重要。例如,即使似乎为工作负载过度预置了下一代实例系列,使用下一代实例系列(如 m5)而不是上一代实例系列(m3 或 m4)也可能很有意义。正因为如此,当 AWS Compute Optimizer 确定适合您的工作负载的最佳 AWS 资源列表之后,会向其提供按需定价预留实例定价、预留实例利用率、预留实例覆盖率及其建议的预期资源效率。

AWS Compute Optimizer 可让您轻松调整资源大小。但是,请记住,尽管为现代应用程序或横向扩展的无状态应用程序调整资源大小相对容易,但调整旧版应用程序的大小却非常困难。某些旧版应用程序可能无法在不同的硬件架构下正常运行,或者需要不同的驱动程序,或者根本不受应用程序供应商支持。在尝试优化打包或旧版应用程序的云资源之前,请务必先与您的供应商联系。

将任何建议应用于生产之前,强烈建议您在新推荐的实例类型上彻底测试您的应用程序。

Compute Optimizer 可供免费使用,最初在以下 AWS 区域推出:美国东部(弗吉尼亚背部)美国西部(俄勒冈)欧洲(爱尔兰)美国东部(俄亥俄)南美洲(圣保罗)。立即连接到 AWS 管理控制台,并了解通过为云应用程序选择合适的资源大小可以节省多少成本。

— seb