コスト最適化
コスト最適化
Section titled “コスト最適化”AWSのコストを最適化するための実践的な手法を解説します。
リザーブドインスタンス
Section titled “リザーブドインスタンス”# 1年間のリザーブドインスタンス購入# 最大72%の割引ReservedInstance: Type: AWS::EC2::ReservedInstancesOffering Properties: InstanceType: t3.medium InstanceCount: 1 OfferingType: All Upfront ProductDescription: Linux/UNIXSpotインスタンス
Section titled “Spotインスタンス”# Spotインスタンスの使用# 最大90%の割引SpotFleet: Type: AWS::EC2::SpotFleetRequestConfig Properties: SpotFleetRequestConfig: IamFleetRole: !GetAtt SpotFleetRole.Arn SpotPrice: '0.05' TargetCapacity: 10 LaunchSpecifications: - ImageId: ami-12345678 InstanceType: t3.mediumS3ライフサイクルポリシー
Section titled “S3ライフサイクルポリシー”{ "Rules": [ { "Id": "TransitionToIA", "Status": "Enabled", "Transitions": [ { "Days": 30, "StorageClass": "STANDARD_IA" }, { "Days": 90, "StorageClass": "GLACIER" } ] }, { "Id": "DeleteOldFiles", "Status": "Enabled", "Expiration": { "Days": 365 } } ]}実践例: コスト分析
Section titled “実践例: コスト分析”# 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}')