見出し画像

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

※本稿はテックブログからの転載です。

表題の通りですが、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/)

画像1

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

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

画像2

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

▼DNNゾーンを作成する. 出典:GCP(https://console.cloud.google.com/)

画像3

▼NSレコードをドメインのレジストラに登録する. 出典:GCP(https://console.cloud.google.com/)

画像4

▼Aレコードの作成時に生成した静的IPを追記する. 出典:GCP(https://console.cloud.google.com/)

画像5

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同意画面の作成と設定を行います。

▼OAuth同意画面の作成. 出典:GCP(https://console.cloud.google.com/)

画像6

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

画像7

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

▼「認証情報を作成」からOAuthクライアントIDを選択. 出典:GCP(https://console.cloud.google.com/)

画像8

▼赤枠の部分を埋めて作成する. 出典:GCP(https://console.cloud.google.com/)

画像9

作成を行うとクライアントIDとシークレットが払い出されるので、こちらをコピーして控えておきます。
こちらの情報を /opt/redash/envに追記ます。環境変数は以下です。

***

REDASH_GOOGLE_CLIENT_ID=
REDASH_GOOGLE_CLIENT_SECRET=

***

画像10

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

***

$ docker-compose up -d server

***

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

画像11

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

https://dor-redash.jdsc.ai/settings/organization

画像12

以上で環境が無事に構築できます。
あとは楽しいredashライフをお送りください。

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

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


この記事が気に入ったらサポートをしてみませんか?