ElasticBeanstalkでメモリ使用率やHDD残量をモニタリングする方法

最初に

ここに書いてある

ざっくり解説

  • ElasticBeanstalkでは、CloudWatchを使って各項目のモニタリングが可能
  • CloudWatchがEC2でモニタリングしている項目に、メモリ使用量やHDD残量はない
  • そのため、CloudWatchに独自のデータを送信する カスタムメトリクス という手段を使う

「例: カスタム Amazon CloudWatch メトリクスの使用」でやっていることの解説

例: カスタム Amazon CloudWatch メトリクスの使用 - AWS Elastic Beanstalk

. ebextensions を使ってEC2構築時に以下のことをやっている

  • CloudWatchにデータ送信するためのツール(perlスクリプト)をインストール
  • 上記を動作させる為に必要なyumライブラリもインストール
  • crontabに5分に1回データを送信する処理を追記
    • /etc/cron.d/cwpump にもデータを格納
    • 動作確認用。動作確認が済んだら標準出力先を /dev/null にするように書かれている

またIAMにて、ElasticBeanstalkで生成されたEC2用のロールaws-elasticbeanstalk-ec2-roleに、CloudWatchにデータを送信する許可を追加している

ここまでやるとこんな風に、ElasticBeanstalkの「モニタリング」で、メモリの使用率やHDDの残量をメトリクスできるようになる

f:id:kasei_san:20170505164319p:plain

ちなみに統計は最大を使用すること。平均だと、一台だけ異常値になった時に気づけないので