BETA

自宅k8sクラスタを監視するためのSaaS選択

投稿日:2019-09-08
最終更新:2019-09-08

やりたいこと

自宅のrpiを使ったk8sクラスタをモニタリングしたい。CPUやメモリ使用率などのリソース使用量に加え、podが吐いているログも監視したい。
但し、会社のプロダクション環境等ではなく、あくまで趣味及び勉強用の環境であるため、支出は最低限にしたい。
なお、当該のクラスタは3台のRPiから構成される。

候補

  • Datadog
    一番有名。リソース使用量に加え、ログも収集できる。またk8sにエージェントを展開するための手順が公式から案内されている(armhfで動くかは知らない。amd64以外のアーキテクチャ向けコンテナが用意されていない可能性はある)。ただし、無料利用ではリソース使用量は一日しか保存されない。ログは不明。
  • AWS CloudWatch
    AWSの監視サービス。リソース使用量に加え、ログも収集できる。ただし公式の手順をつぎはぎする必要がある(リソース監視はエージェントを入れる。ログ監視はfluentdなどで飛ばす)。無料枠が大きいが、料金体系が複雑。

価格調査

リソース使用量(メトリクス)

  • Datadog
    Freeは無料だがメトリクスが一日しか保存されない。Proからは15カ月保存される。料金はProで$15/hosts/month。三台いるので月$45(≒4500円)。個人の、趣味と学習用の環境で払い続けられる額ではない。
  • AWS CloudWatch
    無料枠が以下のように設定されている。
項目 内容
メトリクス 基本モニタリングのメトリクス (5 分間隔)
詳細モニタリングのメトリクス 10 個 (1 分間隔)
100 万の API リクエスト (GetMetricData および GetMetricWidgetImage には適用されません)
ダッシュボード 毎月最大 50 個のメトリクスに対応するダッシュボード 3 個
アラーム 10 件のアラームメトリクス (高分解能アラームには適用されません)
ログ 5 GB データ (取り込み、ストレージのアーカイブ、Logs Insights クエリによってスキャンされたデータ)
イベント カスタムイベントを除くすべてのイベントが対象

基本モニタリングのメトリクスのみであれば無料だが、メモリ使用量やディスク使用率はカスタムメトリクスに区分される。大して変動しないディスク使用率はともかくメモリ使用量は監視したい。その場合、以下のような課金枠になる。

範囲 コスト (メトリクス/月)
最初の 10,000 メトリクス 0.30USD
次の 240,000 メトリクス 0.10USD
次の 750,000 メトリクス 0.05USD
1,000,000 を超えるメトリクス 0.02USD

最初1メトリクス0.3USD(≒30円)取られるのかと思ったが、以下の記事を読む限り違うらしい。

メモリ使用量のみ取るものとして、60*24*30/5*3=25920(メトリクス/月)となるので、おそらく0.4USD/月(≒40円)かかる。

ログ

  • Datadog
    1.27~2.50USD/1,000,000ログイベント/月。保存期間によって異なる。最短7日、最長30日。
    なお、公式ドキュメントによると、ログとログイベントは区別されるらしい。しかし料金のページにはログイベントの情報しかない。
  • AWS CloudWatch Logs
    5GBまで無料なのは上記の通り。それ以降は以下のように課金される。
項目 金額
収集 (データの取り込み) 0.76USD/GB
保存 (アーカイブ) 0.033USD/GB
分析 (Logs Insights のクエリ) スキャンしたデータ 1 GB あたり 0.0076USD

厳密な金額を算出するにはログと分析の量が必要になる。ただし、データの収集だけに絞っても、Datadogの額を超えるために必要な2GBを超えることは、めったにないと思う。

結論

メトリクスを一日以上保存しておきたいかどうかでDatadogかCloudWatchかを選ぶことになる。メトリクスの保存期間にこだわらないのであれば、Datadogを選んだほうが良い。構築がCloudWatchに比べ圧倒的に楽で、ログの料金を考慮に入れても十分に安価で済むと思われる。
一方で、メトリクスを長期間保存しておきたい場合、問答無用でCloudWatchを採用することになる。よほど激しくログを出力しない限り、CloudWatchの料金をDatadogが上回ることはないと思われる。
一般にメトリクスを一日だけ保存すればよい環境というのはそうそうないように思われる。サービスの動作やパフォーマンスに異常が見つかった場合、過去のメトリクスが参照できなければ原因の究明に支障をきたす。以上のことから、自宅のk8sクラスタを可能な限り安価に監視するため、CloudWatchを採用する。
なお、その他のパブリッククラウド(AzureやGCP)でもサービスの内容や料金は大体横並びなので、それほど事情は変わらないと思われる。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@s7LRiAjJC0T8mtuJの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!