RedashをFargate, Datadog, Terraformで構築/運用する

こんにちは、タイミーSREチームの宮城です。
今回は弊社がRedashをFargateで構築/運用している話を紹介します。

背景

タイミーでは、CSやセールスのKPI策定から毎月の事業数値に至るまで、Redashが様々な用途で活用されています。
Fargateで構築する以前はEC2上のdocker-composeで運用されていましたが、以下の課題がありました。

  • オートスケールできないため、クエリが詰まってCPUが100%になってサービスが停止する。
    • その度slack上から再起動していた
  • セットアップしたエンジニアが退社しており、インフラ構成図やノウハウの共有、IaCによる管理ができていない。
  • クエリやダッシュボードなどのデータの定期的なバックアップができていない。
  • v7系からv8系へのアップデートがしたいが、アップデートによる影響範囲がわからず恐怖感がある。
  • 事業に大きく関わるサービスなのにも関わらず、モニタリングやアラートができていない。

上記をFargateに移行することで解決することができました。

移行後のアーキテクチャ

f:id:MH4GF:20200418180434p:plain

Redashで利用するミドルウェアに関しては下記コンポーネントを使い、全てをterraformで管理しています。
- PostgreSQL -> RDS
- Redis -> ElastiCache

それぞれの構成の紹介

ここからは、それぞれの構成をTerraformのソースコードやタスク定義のJSONなどを交えつつ説明していきます。

続きを読む