GCEでのRedash環境構築方法を分かりやすく解説してみる

Momota Sasaki
JDSC Tech Blog
Published in
8 min readMay 28, 2020

表題の通りですが、GCEにRedashの環境を構築する方法について整理しました。

基本的には以下の公式サイト並びに公式サイトの推薦しているgistの記事の通りですが、キャプチャ付きでもう少し丁寧に解説&日本語で書いたものとなります。

やりたいこと

  • Google Compute Engineにredashの環境を構築
  • HTTPS化(Let’s Encrypt)
  • Googleログインの有効化

前置き

GCPのProjectを持っていてかつ、独自ドメインを取得している前提です。

また、文中にあるexample.redashapp.comの部分は適宜取得した独自ドメインに変更してください。

手順

インスタンスの作成

イメージのバージョンは新しくなっていくので、公式サイトに記載のバージョンに書き換えておきましょう。あとはゾーンの指定はしておくと確実です。

$ gcloud compute images create "redash-8-0-0" --source-uri gs://redash-images/redash.8.0.0-b32245-1.tar.gz$ gcloud compute instances create redash --image redash-8-0-0 --zone asia-northeast1-a

インスタンス作成後にVMインスタンスの詳細画面からファイアーウォールの設定でHTTP並びにHTTPSのトラフィック許可にチェックを入れます。(HTTPS化が終わった後はHTTPトラフィックを無許可にします)

出典:GCP(https://console.cloud.google.com/)

次に、静的アドレスの予約を行います。以下リンク先から作成しますが、接続先に作成したインスタンス名(上記コマンドだと「redash」)を指定すれば勝手に紐付きます。

https://console.cloud.google.com/networking/addresses/add

出典:GCP(https://console.cloud.google.com/)

最後に、ドメインの設定です。こちらは、DNSゾーンを作成し、ドメインのレジストラにNSを設定してAレコードに上記で生成した静的IPを追加する事で実現できます。

DNNゾーンを作成する. 出典:GCP(https://console.cloud.google.com/)
NSレコードをドメインのレジストラに登録する. 出典:GCP(https://console.cloud.google.com/)
Aレコードの作成時に生成した静的IPを追記する. 出典:GCP(https://console.cloud.google.com/)

HTTPS化

HTTPS化に関してはgistの手順に倣いコマンドを入力していきます。configやyamlの具体的な中身はgistを参照してください。

$ sudo su$ cd /opt/redash
$ mkdir nginx && mkdir nginx/certs && mkdir nginx/certs-data
# nginx.confの編集
$ vi /opt/redash/nginx/nginx.conf
# docker-compose.yamlの編集
$ vi /opt/redash/docker-compose.yaml
# update docker-compose
$ docker-compose up -d
# 証明書の生成
$ docker run -it --rm \
-v /opt/redash/nginx/certs:/etc/letsencrypt \
-v /opt/redash/nginx/certs-data:/data/letsencrypt \
deliverous/certbot \
certonly \
--webroot --webroot-path=/data/letsencrypt \
-d example.redashapp.com
# nginxにSSLの内容を追記
$ vi /opt/redash/nginx/nginx.conf
# nginxの再起動
$ docker-compose restart nginx

ここまで実行すると任意の独自ドメインにて、HTTPSでのアクセスが可能になります。

Googleログインの有効化

OAuth同意画面の作成

以下リンク先からOAuth同意画面の作成と設定を行います。

https://console.cloud.google.com/apis/credentials/consent

OAuth同意画面の作成. 出典:GCP(https://console.cloud.google.com/)
OAuth同意画面の設定。アプリケーションの種類を内部に設定し、赤枠の部分を加筆する. 出典:GCP(https://console.cloud.google.com/)

認証情報の作成

以下リンク先からOAuthクライアントIDを作成します。

https://console.cloud.google.com/apis/credentials

「認証情報を作成」からOAuthクライアントIDを選択. 出典:GCP(https://console.cloud.google.com/)
赤枠の部分を埋めて作成する. 出典:GCP(https://console.cloud.google.com/)

作成を行うとクライアントIDとシークレットが払い出されるので、こちらをコピーして控えておきます。

こちらの情報を /opt/redash/envに追記ます。環境変数は以下です。

REDASH_GOOGLE_CLIENT_ID=
REDASH_GOOGLE_CLIENT_SECRET=

設定後、サーバーを再起動します

$ docker-compose up -d server

ここまで実施してredashのログイン画面にアクセスすると「Login with Google」の文字が表示されます

ログインできるドメインを指定したい場合は、以下のページにアクセスしてGoogle App Domainを指定すればOKです。

https://example.redashapp.com/settings/organization

以上で環境が無事に構築できます。

あとは楽しいredashライフをお送りください。

採用やってます!We’re Hiring!

JDSC社内には各ロールが揃っていますので、他のSIerや自社開発している企業とはレベルが違ったスピード開発が可能になっています。
そういう開発に興味があるエンジニアを絶賛募集中です!

採用LPは以下URLです。
https://jdsc.ai/recruit/

--

--