平常運転

アニソンが好き

過去記事とかは記事一覧で見れます

Mackerel Meetup #11 Tokyo で Mackerel の時系列データベースについて発表しました

ここ1年半くらい仕事でサーバ管理・監視サービス Mackerelの開発をしているのですが、そのユーザミートアップイベント Mackerel Meetup #11 Tokyo が2/5にあり、そこで"AWS で実現した Mackerel 時系列データ1分粒度長期保存の裏側"というタイトルで発表してきました。

mackerelio.connpass.com


発表スライドはこちらです。タイトルスライドのピラミッドの写真は現地で自分で撮影した写真です*1。ピラミッドは適当に写真撮るだけでそれっぽい雰囲気が出るのでフォトジェニック。

speakerdeck.com

今回は先日リリースした1分粒度時系列データの長期保存をメイントピックとしましたが、そうはいっても時系列データベース(diamond)全体の話もしない訳にはいかないので、複数のストレージ (Amazon DynamoDB, Redis, Amazon S3) を組み合わせた階層型データストアのコンセプトを中心に、 diamond の構成全体についても駆け足で説明しました。
diamond 全体のコンセプトや書き込みの実装に関しては id:y_uukiid:itchyny が過去に発表しているので、是非そちらもご覧いただければと思います。

blog.yuuk.io
itchyny.hatenablog.com

diamond の開発には AWS のマネージドサービスを大きく活用しており、開発開始からリリースに至るまで、あるいはリリース以降においても、 AWS 側の機能拡張により開発が楽になったりコストを削減できた点が数多くありました。今回のメトリック長期保存のアーキテクチャはその筆頭であり、進化を続ける AWS の"巨人の肩"に乗る恩恵を感じさせられた/させられている日々です。
一方で、 AWS のサービスも万能というわけではなく、時にはコストや機能面での制約に当たることもあり、その点を含めてサービスの特性を活かした設計、開発がエンジニアの腕の見せ所だと思っています。

個人的に対外発表は久々で、また業務イベントでの発表となると気の持ちようが違うところもあってお見苦しい点があったかもしれませんがご容赦下さい。何か知見、興味など持ち帰っていただければ何よりです。

補足

ElastiCache ではなく EC2 上の Redis 自前構築を選択した点について発表後に質問をいただきましたが、こちらは id:kizkoh以前発表した際に言及していたように、稼働開始後の Redis クラスターのオンラインでのスケールアップ/アウト周辺が主な理由です。この後 ElastiCache も機能追加されているため、今後再び ElastiCache に移行することも十分あり得ると考えています。