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プロバイダーで対応したので↩