cdk-mackerel-container-agent: ECSのServiceにmackerel-container-agentを5行で追加

www.npmjs.com

GitHubリポジトリはこちら: GitHub - aereal/cdk-mackerel-container-agent: experimental: AWS-CDK library for mackerel-container-agent

mackerel-container-agentを5行くらいで追加

先日、mackerel-container-agentがベータリリースされましたね。めでたい。

mackerel.io

早速AWS ECSで使ってみたのですが、やや設定が煩雑な印象もあります (ベータなのでフィードバックしたら改善・検討してもらえるかもしれない)。 参考: コンテナを監視する - Mackerel ヘルプ

特に MACKEREL_CONTAINER_PLATFORM は使う側からすると自明な選択なので自動化したい! 構成管理の中にロジックを含められて、かつパッケージとして再配布できるとなるとAWS CDKだよね、ということで作った次第です。 使い方はsynopsisに書いた通りで:

import { addMackerelContainerAgent } from "@aereal/cdk-mackerel-container-agent"
import { Ec2TaskDefinition } from "@aws-cdk/aws-ecs"
import { Stack } from "@aws-cdk/cdk"

const stack = new Stack()
const taskDefinition = new Ec2TaskDefinition(stack, "TaskDefinition", {})

addMackerelContainerAgent({
  apiKey: 'keep-my-secret',
  taskDefinition,
})

……と、こういうかんじです。 TaskDefinitioncompatibilitynetworkMode を見てよしなに MACKEREL_CONTAINER_PLATFORM も設定します。便利。

注意点としてmackerel-container-agentはベータ版、AWS CDKはdeveloper previewということでこのライブラリもいきなり破壊的変更が入る可能性があります。 現時点でmackerel-container-agentやAWS CDKを利用している方はリスクを承知の上でのことと思いますが、念のため。

ちなみにAWS CDKとは The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation. というもので、CloudFormationの高水準かつプログラマブルなインターフェースを提供するライブラリといった趣です。 JavaやTypeScriptで提供されているためIDEの恩恵を受けやすいことだけではなく、IAMやSecurity Groupなどセキュリティに関係する変更が含まれる場合は別途diffを出力し、ユーザが明示的に同意する入力をしないとデプロイしないといった、CloudFormationにはまだない改善点も含んだ便利なツールキットでもあります。

現在developer previewですが、GAに向けて開発が続いているので広く利用できる日も近いのではないでしょうか。

どうぞご利用ください!

どうぞご利用ください!