接入教程
1. 在AWS控制台启用Compute Optimizer服务
2. 选择要分析的计算资源类型(如EC2实例)
3. 等待24-48小时收集使用数据
4. 查看优化建议报告
5. 根据建议调整资源配置
6. 持续监控优化效果
使用Python获取EC2实例优化建议
python
import boto3
from botocore.config import Config
# 配置客户端
config = Config(region_name='us-east-1')
client = boto3.client('compute-optimizer', config=config, aws_access_key_id='YOUR_API_KEY', aws_secret_access_key='YOUR_SECRET_KEY')
# 获取EC2实例建议
try:
response = client.get_ec2_instance_recommendations(
accountIds=['YOUR_ACCOUNT_ID'],
filters=[
{
'name': 'Finding',
'values': ['Optimized', 'Underprovisioned', 'Overprovisioned']
}
]
)
print('Recommendations:', response.get('instanceRecommendations', []))
except Exception as e:
print(f'Error: {e}')
PHP调用Compute Optimizer API
php
<?php
require 'vendor/autoload.php';
use Aws\ComputeOptimizer\ComputeOptimizerClient;
use Aws\Exception\AwsException;
$client = new ComputeOptimizerClient([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_SECRET_KEY'
]
]);
try {
$result = $client->getEC2InstanceRecommendations([
'accountIds' => ['YOUR_ACCOUNT_ID'],
'filters' => [
[
'name' => 'Finding',
'values' => ['Optimized', 'Underprovisioned']
]
]
]);
echo json_encode($result->get('instanceRecommendations'), JSON_PRETTY_PRINT);
} catch (AwsException $e) {
echo 'Error: ' . $e->getMessage();
}
?>
JavaScript获取Auto Scaling组建议
javascript
const AWS = require('aws-sdk');
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
});
const computeOptimizer = new AWS.ComputeOptimizer();
const params = {
accountIds: ['YOUR_ACCOUNT_ID'],
recommendationPreferences: {
cpuUtilizationMetrics: {
headroomMode: 'PERCENT_30'
}
}
};
computeOptimizer.getAutoScalingGroupRecommendations(params, (err, data) => {
if (err) {
console.error('Error:', err);
} else {
console.log('Recommendations:', data.autoScalingGroupRecommendations || []);
}
});
常见问题
Compute Optimizer支持分析哪些AWS资源?
支持分析Amazon EC2实例、EC2 Auto Scaling组、Lambda函数、EBS卷以及在Fargate上运行的ECS服务。
获取优化建议需要哪些权限?
需要IAM权限允许调用Compute Optimizer API(如compute-optimizer:GetRecommendations),以及对目标资源(如EC2)的只读访问权限。
建议的更新频率是多久?
Compute Optimizer每日自动更新一次建议,基于过去14天的资源利用率指标。也可手动触发重新分析。
Aitishiku.com