0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

こんにちは。
これは、2022年 NI+C Advent Calendar 14日目の記事です。
いつもNode-RED絡めた記事ですが、今年はなんとNode-REDではない記事なのです!

そもそもMetabaseって何?

Metabaseは、オープンソースソフトウェアのBI(データ可視化)ツール。LookerStudioとかRe:Dashとかと同じ類の製品です。様々なデータを参照/可視化し、分析に役立てることができます。他のOSSのBIと比べてグラフのデザインがキレイなこと、コード(クエリ)を直接書くこと無くクリックベースでグラフ等可視化できることが特徴です。

画面イメージ
スクリーンショット 2022-12-14 17.03.59.png

なぜApp Engineで動かしたいの?

Googleマネージドで動くサーバーレス環境だから。この点でしょうか。利用の面でどうしても気にしないといけないのが、環境の運用面。障害対応とかもそうですし、負荷に対する対応なども気にする必要があります。こういったところをうまーくやってくれる(やりやすくしてくれる)のが、マネージドなサーバーレス環境の利点だと思うのです。
・・・と書きましたが、単にGAEが好きだから。それが大切なのですっ。

どうやってApp Engineで動かすの?

GAE用のカスタムコンテナを作って、それをデプロイするだけ。文字にするとこれだけです。

事前準備しておくもの

  • (必須)App Engine Flexible 環境の有効化
  • (必須)CloudSQL(MySQL)インスタンスの準備
  • (任意)oAuthの有効化・・・MetabaseでGoogle認証を使いたい場合
    • oAuth同意画面の設定
    • 認証情報 ウェブアプリケーションのクライアントIDの作成

定義ファイルの作成

  • (必須)app.yaml・・・GAEの環境定義です。以下のような定義になります。
service: default
runtime: custom
env: flex

manual_scaling:
  instances: 1

resources:
  cpu: 1
  memory_gb: 2
  disk_size_gb: 10

env_variables:
  MB_DB_TYPE: mysql
  MB_DB_DBNAME: metabase
  MB_DB_USER: <<CloudSQL DB User ID>>
  MB_DB_PASS: <<CloudSQL DB User Password>>
  MB_DB_HOST: 127.0.0.1

beta_settings:
  cloud_sql_instances: <<CloudSQL 接続名>>
  • (必須)Dockerfile・・・GAE上で動かすカスタムコンテナ定義です。以下のような定義になります。
FROM gcr.io/google-appengine/openjdk

EXPOSE 8080

ENV PORT 8080
ENV MB_PORT 8080
ENV MB_JETTY_PORT 8080
ENV MB_DB_PORT 5432
ENV METABASE_SQL_INSTANCE <<CloudSQL 接続名>>
ENV JAVA_OPTS "-XX:+IgnoreUnrecognizedVMOptions -Dfile.encoding=UTF-8 --add-opens=java.base/java.net=ALL-UNNAMED --add-modules=java.xml.bind"

ADD https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 ./cloud_sql_proxy
ADD http://downloads.metabase.com/<<Metabaseのバージョン>>/metabase.jar ./metabase.jar

RUN chmod +x ./cloud_sql_proxy

CMD ./cloud_sql_proxy -instances=$METABASE_SQL_INSTANCE=tcp:$MB_DB_PORT & java -jar ./metabase.jar

GAEへのデプロイ

  • (必須)gcloudコマンドでGCP Projectへログイン
  • (必須)上記の定義ファイルがあるディレクトリで、デプロイコマンドを実行
gcloud app deploy

これだけで、App EngineでMetabaseが稼働できるようになります。
Metabaseが起動した後は、Metabaseにログインして初期設定を行ってください。

まとめ

いかがでしたか??
Metabaseは、クエリ知識がなくともある程度使えるところが一番のポイント。また、サーバーレス環境であるGAEで動かすことで、運用の省力化にも繋げられます。
Google Cloudでのデータ可視化/分析ツールの一つの選択肢として、ご参考になれば嬉しいです!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?