LoginSignup
4

More than 1 year has passed since last update.

はじめに

事の発端は、上司の「Metabaseって知ってる?」という一言でした。
私は28年間生きてきて一度も聞いたことが無かったので、簡単に調べてみたのですが、
どうもオープンソースでなかなかUIUXがイケているBIツールらしい・・・。

色々記事を見てみたけど、やっぱり実際に触ってみたいなぁ〜と思ったので、
タイトルの通りサクッと触れるような環境を作ってみようと思います。

Metabaseとは?

0.TOP.gif
こんな感じのBIツールです。

OSSという点に加え、コンテナイメージが配布されており導入が簡単で手軽に試すことができるほか、
SQLを書かずにマウスだけで見える化が可能だったり、データを探索し自動でグラフを生成できたりするようです。

今回構築する環境

以下を使って環境を構築します。

  • Google Cloud
    • Cloud Run
    • Container Registry (GCR)

正直サクッと触るだけなら、ローカルPCへインストールで良いのですが、

今回は私だけでなく他のメンバーにも触ってほしいので、Google Cloud上に構築したいと思います。
ちなみに、Google Cloud使うのはじめてです。

本格的に運用したい方は、追加でPostgreSQL/Mysql等のデータベース構築をオススメします。
※ 詳細は公式ドキュメントを参照ください。

環境構築開始

一部 実行コマンドと結果を加工しています。もしご自身で実行する場合は適宜変更してください。
{PROJECT-ID} : 使用するGoogle CloudのプロジェクトID

1. Dockerイメージの取得 → GCRへプッシュ

公式ドキュメントに則って、Dockerイメージを取得します。

イメージ取得のやり方にも色々ありますが、前述した通りGoogle Cloud上に環境構築しますし、せっかくならローカルPCには何もインストールせずにやりたいと思います。そう、CloudShellならね。

CloudShell とは?

Cloud Shell は、ブラウザから場所を問わずにアクセスできる、オンラインの開発および運用環境です。gcloud コマンドライン ツールや kubectl などのユーティリティがプリロードされたオンライン ターミナルを使用して、リソースを管理できます。また、オンラインの Cloud Shell Editor を使用して、クラウドベースのアプリの開発、ビルド、デバッグ、デプロイを行うこともできます。
引用:GoogleCloud|Cloud Shell

Dockerもプリインストールされているということなので、今回にピッタリですね。
使い方はこちらを参考にしました。

(1) CloudShellを起動、Dockerイメージをpull

実行結果
$ docker pull metabase/metabase:latest
latest: Pulling from metabase/metabase
213ec9aee27d: Pull complete
4e5835cc7e6e: Pull complete
1491a19a147a: Pull complete
4c9f399c8d2a: Pull complete
99deb383aa88: Pull complete
24a999ed325b: Pull complete
Digest: sha256:527a30f88f79a90bba0951d352a9fcbdecbf5f1b011a41b30e7a074265549168
Status: Downloaded newer image for metabase/metabase:latest
docker.io/metabase/metabase:latest

(2) タグ付けして

実行結果
$ docker tag metabase/metabase:latest gcr.io/{PROJECT-ID}/metabase:latest

(3) GCRへpush

実行結果
$ docker push gcr.io/{PROJECT-ID}/metabase:latest
The push refers to repository [gcr.io/{PROJECT-ID}/metabase]
e057bb6a0219: Layer already exists
9217ffff0600: Layer already exists
17f4f78d8e02: Layer already exists
7b2d869ec8a3: Layer already exists
57c379a94f03: Layer already exists
994393dc58e7: Layer already exists
latest: digest: sha256:527a30f88f79a90bba0951d352a9fcbdecbf5f1b011a41b30e7a074265549168 size: 1583

(4) Webコンソールで確認

正しくpushできたか確認します。
Webコンソールから「Container Registry」へ移動し、さきほどpushしたイメージがあるか確認します。
3.GCRアップロード後確認.png
↓ "metabase"をクリック
4.GCRアップロード後確認.png
ちゃんとpushできてますね。

2. Cloud Runの設定

(1) Cloud Runサービス作成
Webコンソールから「CloudRun」へ移動し、「サービスを作成」を押します。
5.サービスの作成.png
押すと、このような画面になるので、

以下の通り入力してサービスを作成します。
※ デフォルトから変更した項目のみ記載します。

項目名 入力内容
コンテナイメージのURL GCRのイメージURL
自動スケーリング(インスタンス最小数) 0
自動スケーリング(インスタンス最大数) 1
Ingress すべてのトラフィックを許可する
認証 未認証の呼び出しを許可

コンテナ設定

項目名 入力内容
全般 (コンテナポート) 3000
容量 (メモリ) 1GiB

コンテナポート、メモリ設定共にデフォルトでは正常に動かないので変更が必要です。
・コンテナポート:Docker Image側でport:3000に設定されているのでそちらに揃えます。
・メモリ:最低でも1GiBはないと、サービス作成時にメモリ上限超過でエラーになります。

入力したら「作成」を押してデプロイ完了するまで待ちます・・・。
デプロイ成功すると以下のようにURLが発行されるので、アクセスしてみると、
7.デプロイ完了後.png

8.metabase起動画面.png
動いた!!!!
あとはスタートアップ画面に沿って、言語設定やアカウントの作成などを設定します。

BigQueryやMysqlなどのデータベースと接続することもできますが、
今回は付属しているサンプルデータベースを使用するので、スキップしました。

9.metabaseホーム.png
というわけで、サクッと環境構築できました。

結構長くなってしまったので今回はここまで。
次回は、具体的にMetabaseを触ってみてどんなことできるか?を書きたいと思います。

つづく!

参考にした文献

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
4