Skip to content

コスト最適化

AWSのコストを最適化するための実践的な手法を解説します。

# 1年間のリザーブドインスタンス購入
# 最大72%の割引
ReservedInstance:
Type: AWS::EC2::ReservedInstancesOffering
Properties:
InstanceType: t3.medium
InstanceCount: 1
OfferingType: All Upfront
ProductDescription: Linux/UNIX
# Spotインスタンスの使用
# 最大90%の割引
SpotFleet:
Type: AWS::EC2::SpotFleetRequestConfig
Properties:
SpotFleetRequestConfig:
IamFleetRole: !GetAtt SpotFleetRole.Arn
SpotPrice: '0.05'
TargetCapacity: 10
LaunchSpecifications:
- ImageId: ami-12345678
InstanceType: t3.medium
{
"Rules": [
{
"Id": "TransitionToIA",
"Status": "Enabled",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
}
]
},
{
"Id": "DeleteOldFiles",
"Status": "Enabled",
"Expiration": {
"Days": 365
}
}
]
}
# AWS Cost Explorer APIを使用したコスト分析
import boto3
ce = boto3.client('ce')
response = ce.get_cost_and_usage(
TimePeriod={
'Start': '2024-01-01',
'End': '2024-01-31'
},
Granularity='MONTHLY',
Metrics=['BlendedCost'],
GroupBy=[
{'Type': 'DIMENSION', 'Key': 'SERVICE'}
]
)
for result in response['ResultsByTime']:
for group in result['Groups']:
service = group['Keys'][0]
cost = group['Metrics']['BlendedCost']['Amount']
print(f'{service}: ${cost}')