LoginSignup
12
4

More than 5 years have passed since last update.

AWS Redshiftの運用を楽にするWebコンソールを作った

Posted at

Screen Shot 2016-12-17 at 22.45.46.png

はじめに

AWS Redshiftは、PostgreSQL 8.0.2をベースに作られた列思考DBです。

DWHとして使われることが多く、GCP BigQueryがクエリ課金であるのに対し、AWS Redshiftは時間課金です。そのためRedshiftは、大規模なデータソースに対して高頻度にSQLを実行する場合に、非常にコストを抑えることができる製品です。

一方で、非常に高負荷なSQLが実行されたときに、他のクエリの実行に影響が出たり、はたまたテーブルを定期的にVACUUMしたりと、ある程度のモニタリングや管理が必要になります。

それらのモニタリングを楽にするRedshiftコンソール(Spectrometer)を作ったので、紹介させていただきます。Redshift(赤方偏移)にちなんで、Spectrometer(分光器)という名前です。

機能

  • Digest認証
    • Redshiftの接続ユーザ/パスワードで認証します
      (スーパーユーザ権限が必要です)
  • AWS ClowdWatchのメトリクス表示
    • CPUUtilization、Percentage Disk Space Usedなど
  • Admin View
Admin View 表示内容
Query Timelines 直近の長時間クエリをタイムライン&リスト表示(AWS コンソールのアレに近いもの)
Schema Tables スキーマとテーブルのリスト
Stats Queries クエリの実行回数グラフ
WLM Queue state WLMキューの状態 (STV_WLM_SERVICE_CLASS_STATE)
Inflight Queries 実行中のクエリの表示 & キャンセルの実行
Slow Queries スロークエリ一覧
Stats Off Tables 統計情報の古いテーブルのリスト (VACUUM & ANALYZEの実行推奨リスト)
Vacuum Results VACUUMの実行一覧
Cluster Restart Redshiftクラスタのリスタート履歴
User list ユーザの名前と直近のクエリ実行回数のリスト表示
Error list エラー一覧(STL_ERROR)
Load Error list データロードエラー一覧(STL_LOAD_ERROR)

※ 2016年12月18時点のものです

セットアップ

こちらのREADMEを参考にセットアップしてください。
Redshiftに接続するスーパーユーザの情報をdatabase.ymlに、
AWS CloudWatchからメトリクスを取得するためにaws.ymlの設定が必要です。

蛇足

実は他にもRedshift Consoleという名前そのままのものがありましたが、リポジトリ所有者のEverythingMeが解散してしまっていることと、1年以上メンテナンスされていない様子だったので1から作り直しました。

Livesense Advent Calendar 2016の19日目の記事でした。

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4