[小ネタ] mackerel-agentのArm版がGAになってるのでAWS EC2のT4gインスタンスに導入してみた

11/02のアップデートで、mackerel-agentをArmアーキテクチャのホストに導入しやすくなっています。実際に試してみました。
2020.11.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

TL;DR

  • 普通に動きました

はじめに

今月頭の話ですが、Mackerel で OS 内部のメトリックを収集するエージェントソフトウェア mackerel-agent が Arm アーキテクチャに標準対応しました。

mackerel-agentは Go 言語で書かれているので、以前から動かすことは可能でした。ただし標準レポジトリに入っていたわけではないので、yumコマンドなどで導入することが出来ませんでした。

一方で、AWS は EC2 インスタンスに Arm アーキテクチャ(AWS Graviton2)のものを投入してきているので、Mackerel を監視サービスの基盤に使用している弊社 としては、なんとかこれを動かしたいという要望を持っていました。

特に T 系のインスタンスは汎用型の中でも安価に使えるため、アーキテクチャがamd64(x86_64) かarm64(AArch64) かを問わないワークロードについては、T4g インスタンスが気になってる方も多いのではないでしょうか。

そんなわけで、アナウンスはされたものの実際どうなん? と思ったので実際に試してみました。

手順の確認

導入の仕方はこれまでと全く変わりません。 Mackerel のコンソール画面から Hosts > 右上「エージェントをインストール」をクリック

表示された「新規ホストの登録」画面から、エージェントをインストールするホストに合致した項目を開きます。

今回は Amazon Linux 2 を導入した T4g.nano インスタンスで試してみるので、インストラクションに従ってこちらのコマンドラインをコピペします。

curl -fsSL https://mackerel.io/file/script/amznlinux/setup-all-yum-v2.sh \
    | MACKEREL_APIKEY='(MackerelのAPIキー)' sh

では試してみましょう。

試してみた

何の問題もなくすんなり入りました!(当然)

当然ですが AWS インテグレーションでもメトリックを収集でき、他の EC2 インスタンスと同様に監視できます。
Mackerel 上では CPU 種別が表示されないものの、OS のアーキテクチャで確認ができますね。

ちなみに C6g インスタンスでも試してみましたが、こちらもまったく問題なかったです。

まとめ

Mackerel で Arm アーキテクチャのインスタンスを楽に監視できるようになったよ、ということを試してみました。

x86_64 アーキテクチャにしばりがないワークロードは、T4g や M6g/C6g/R6g などの Graviton2 インスタンスを使うことでコストを最適化できる可能性があります。是非一度ご検討ください。