-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathcost.py
More file actions
27 lines (20 loc) · 1.13 KB
/
Copy pathcost.py
File metadata and controls
27 lines (20 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import boto3
def get_compute_optimizer_recommendations():
# Create a Compute Optimizer client
compute_optimizer_client = boto3.client('compute-optimizer')
# Get EC2 recommendations
response = compute_optimizer_client.get_ec2_instance_recommendations()
recommendations = response['instanceRecommendations']
for recommendation in recommendations:
instance_id = recommendation['instanceArn'].split('/')[-1]
finding = recommendation['finding']
estimated_monthly_savings = recommendation.get('utilizationMetrics', [])[0].get('estimatedMonthlySavings', {}).get('amount', 0)
# Get On-Demand price (assuming USD, adapt as needed)
current_on_demand_price = recommendation.get('utilizationMetrics', [])[0].get('onDemandCost', {}).get('amount', 0)
print(f"Instance ID: {instance_id}")
print(f"Finding: {finding}")
print(f"Current On-Demand Price: ${current_on_demand_price}")
print(f"Estimated Monthly Savings (On-Demand): ${estimated_monthly_savings}")
print('-' * 40)
if __name__ == "__main__":
get_compute_optimizer_recommendations()