こんにちは。Mackerel SRE チームの id:hayajo_77 です。
すでにご活用いただいている Mackerel 用の Terraform Provider において、先日リリースした v0.0.6 から AWS インテグレーションがサポートされました。 これによって Terraform で AWS インテグレーションの設定を管理できます。
mackerelio-labs/mackerel | Terraform Registry
今回の機能は @Gompei さんにコントリビュートしていただいたものとなります。 リリースにあたりご協力いただいた @Gompei さんにはこの場を借りて感謝を申し上げます。ありがとうございました。
設定例
IAM ロールを利用した AWS インテグレーション設定例です(AWS アクセスキーを指定した設定も可能です)。
resource "mackerel_aws_integration" "test_integration" { name = "test AWS integration" memo = "This AWS integration is managed by Terraform." role_arn = "arn:aws:iam::1234567890:role/MackerelAWSIntegrationRole" external_id = "dJhaxAGdfQRSkXGCFqKjvgXNQ0I5DyeSylibsw8p" region = "ap-northeast-1" included_tags = "service:foo" excluded_tags = "environment:staging, environment:develop" alb { role = "foo: alb" } rds { role = "foo: rds" excluded_metrics = ["rds.cpu.used", "rds.memory.swap"] } ec2 { role = "foo: ec2" retire_automatically = true } }
external_id
にはすでに Web コンソールなどで登録済のインテグレーション設定の外部IDを利用する、もしくは API から取得したものを指定します。
下記は API を利用した external_id の取得例です(<YOUR_API_KEY>
は使用する API キーに読み替えてください)。
$ curl -XPOST -H "Content-Type: application/json" -H "X-Api-Key: <YOUR_API_KEY>" https://api.mackerelio.com/api/v0/aws-integrations-external-id {"externalId":"dJhaxAGdfQRSkXGCFqKjvgXNQ0I5DyeSylibsw8p"}
Mackerel で AWS インテグレーションを利用するために必要な設定や使用する権限などの詳しい説明は AWS インテグレーションのヘルプ をご参照ください。
また、Terraform での設定については Terraform Mackerel Provider のドキュメント をご参照ください。
困ったときは
Mackerel の Slack Workspace にてご連絡ください!
https://mackerel-ug-slackin.herokuapp.com/
ぜひご利用下さい
以上、 Terraform Mackerel Provider の AWS インテグレーションについてご案内させていただきました。 IaC によるサービス管理にぜひお役立てください。