S3のStorage LensはFree metricsだけでも割と便利なので、Terraformで展開したくなるのですがやったことなかったのでメモです。 うっかり展開するとすぐにAdvanced metricsが有効になるので罠っぽさありました。
Storage LensをFree metricsで展開する
aws_s3control_storage_lens_configurationを使って、account_levelとbucket_levelを両方空にするとFree metricsになります。1
resource "aws_s3control_storage_lens_configuration" "main" { config_id = "default" storage_lens_configuration { enabled = true # 無指定だとFree metricsになる account_level { bucket_level { } } data_export { cloud_watch_metrics { enabled = false } } } }
失敗例
以下のようにaccount_levelとbucket_levelを指定するとAdvanced metricsになります。全部falseでもAdvanced metricsになるの罠すぎる。
resource "aws_s3control_storage_lens_configuration" "main" { config_id = var.storage_lens_name storage_lens_configuration { enabled = true # 全部falseでもAdvanced metricsになる account_level { activity_metrics { enabled = false } advanced_cost_optimization_metrics { enabled = false } advanced_data_protection_metrics { enabled = false } detailed_status_code_metrics { enabled = false } bucket_level { activity_metrics { enabled = false } advanced_cost_optimization_metrics { enabled = false } advanced_data_protection_metrics { enabled = false } detailed_status_code_metrics { enabled = false } } } data_export { cloud_watch_metrics { enabled = false } } } }
差分は以下の通りです。
~ resource "aws_s3control_storage_lens_configuration" "main" {
id = "123456789012:default"
tags = {}
# (4 unchanged attributes hidden)
~ storage_lens_configuration {
# (1 unchanged attribute hidden)
~ account_level {
+ activity_metrics {
+ enabled = false
}
+ advanced_cost_optimization_metrics {
+ enabled = false
}
+ advanced_data_protection_metrics {
+ enabled = false
}
~ bucket_level {
+ activity_metrics {
+ enabled = false
}
+ advanced_cost_optimization_metrics {
+ enabled = false
}
+ advanced_data_protection_metrics {
+ enabled = false
}
+ detailed_status_code_metrics {
+ enabled = false
}
}
+ detailed_status_code_metrics {
+ enabled = false
}
}
# (1 unchanged block hidden)
}
}
Advancedになるの悲しい。
まとめ
もともとはGlacierの利用分ってStorage Lensで見られたかな?というのが始まりだったのですが、そういえばStorage Lensではみれないのでした。残念。
- 以前ならawsccのawscc_s3_storage_lensが使えそうでしたが、awsプロバイダーで対応したので↩