タダです.
AWS のアカウントで Config のコストが一時期は月間数10ドルほどの課金だったのが膨れ上がって1000ドル以上になったことがあり,さすがに削減を試みることにしました.やってみたことをまとめます.
コスト高騰の状況と詳細確認
AWS Config のコストの高騰の要因は ConfigurationItemRecorded
という項目です.東京リージョンで見ると Configuration Item recorded で $0.003
毎にかかっているのですが,これが高騰していました.より詳細にどの項目が変更回数が多く記録されて,コストを喰っているかを確認する時は Athena を使いました.
Config の Athena テーブル作成
CREATE EXTERNAL TABLE awsconfig ( fileversion string, configSnapshotId string, configurationitems ARRAY < STRUCT < configurationItemVersion : STRING, configurationItemCaptureTime : STRING, configurationStateId : BIGINT, awsAccountId : STRING, configurationItemStatus : STRING, resourceType : STRING, resourceId : STRING, resourceName : STRING, ARN : STRING, awsRegion : STRING, availabilityZone : STRING, configurationStateMd5Hash : STRING, resourceCreationTime : STRING > > ) PARTITIONED BY (`year` string,`month` string,`day` string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://<BUCKET-NAME>/AWSLogs/<ACCOUNT-ID>/Config/<REGION>/' TBLPROPERTIES ( 'projection.enabled'='true', 'projection.year.interval'='1', 'projection.year.range'='2021,2121', 'projection.year.type'='integer', 'projection.month.interval'='1', 'projection.month.range'='1,12', 'projection.month.type'='integer', 'projection.day.interval'='1', 'projection.day.range'='1,31', 'projection.day.type'='integer', 'storage.location.template'='s3://<BUCKET-NAME>/AWSLogs/<ACCOUNT-ID>/Config/<REGION>/${year}/${month}/${day}/ConfigHistory/')
どの項目が変更回数が多く記録されているかを出力するクエリ
SELECT configurationItem.resourceType, configurationItem.resourceId, COUNT(configurationItem.resourceId) AS NumberOfChanges FROM default.awsconfig CROSS JOIN UNNEST(configurationitems) AS t(configurationItem) WHERE "$path" LIKE '%ConfigHistory%' AND configurationItem.configurationItemCaptureTime >= '2023-05-01T%' AND configurationItem.configurationItemCaptureTime <= '2023-05-20T%' GROUP BY configurationItem.resourceType, configurationItem.resourceId ORDER BY NumberOfChanges DESC
関連記事
コスト高騰要因の確認~削減で試してみたこと
Athena で確認してみたところ ENI の変更が多く記録されていたため, AWS EC2 NetworkInterface
の記録を止めるようにしてそれ以外の設定変更のチェックは有効化してみました.設定変更後の日次推移を見てみたところ日次で数10ドルかかっていたのが1桁台の課金額になっていました.これであれば,当初の月間数10ドルほどの課金状況に戻せそうな推移となりそうで,コスト削減効果が高くなりそうです.
まとめ
AWS Config のコスト削減で試してみたことと,その後の日次コスト推移を確認してみたのをまとめてみました.