maco's life

最近は技術以外のことを主に記載しています。

mackerel-agentをECSで使う

ECSインスタンス立ち上げる時のuserdata内にmackerelのインストール処理を書いたのですが、今後設定変更する時にインスタンス作り直すか、またはECSインスタンス内にsshして設定を変えないといけなかったりなどで、インスタンスの状態を管理するのがイマイチでした。調べたらmackerel-agentのdockerコンテナがあったのでそちら使えばインスタンス上に状態持たなくてよさそうみたいな考えにいたり、ecsのタスク定義の設定方法備忘録書きました。

(といってもdocker runのコマンドをタスク定義の設定に落とし込んだだけ)

1. ECSタスク定義

適当なタスク名をつける f:id:Maco_Tasu:20170307181515p:plain

2. ECSインスタンス上のボリューム設定

ここに設定したものがコンテナ内へのマウントポイントとして使える。マウント先は公式のドキュメント通りに指定。 f:id:Maco_Tasu:20170307182250p:plain

3. コンテナの設定

docker hubからimageを取得する場合は下記のスクショのような感じ。tagは適宜変えてください。 f:id:Maco_Tasu:20170307181603p:plain

  • apikey: mackerelのapi key
  • auto_retirement: false
    • コンテナが消えた際も自動退役させないようにする
  • enable_docker_plugin: true
    • docker-pluginを有効にする f:id:Maco_Tasu:20170307181850p:plain

2で設定したボリューム設定をコンテナへマウントする f:id:Maco_Tasu:20170307182132p:plain

これで設定はおわり。

余談

esc-deployで本番にデプロイすると新旧のタスク分mackerelのグラフに反映されて古いコンテナの項目がしばらく残り続けて不安な気持ちになりますが、公式ドキュメントにもあるように

コンテナを新規に起動すると自動的にグラフに項目が追加され、コンテナを終了すると数時間後に自動的にその項目が見れなくなります。

とのことなので特に心配しないでも良さそうです。