GCEでのRedash環境構築方法を分かりやすく解説してみる
表題の通りですが、GCEにRedashの環境を構築する方法について整理しました。
基本的には以下の公式サイト並びに公式サイトの推薦しているgistの記事の通りですが、キャプチャ付きでもう少し丁寧に解説&日本語で書いたものとなります。
- https://redash.io/help/open-source/setup
- https://gist.github.com/arikfr/64c9ff8d2f2b703d4e44fe9e45a7730e
やりたいこと
- 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トラフィックを無許可にします)
次に、静的アドレスの予約を行います。以下リンク先から作成しますが、接続先に作成したインスタンス名(上記コマンドだと「redash」)を指定すれば勝手に紐付きます。
https://console.cloud.google.com/networking/addresses/add
最後に、ドメインの設定です。こちらは、DNSゾーンを作成し、ドメインのレジストラにNSを設定してAレコードに上記で生成した静的IPを追加する事で実現できます。
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クライアントIDを作成します。
https://console.cloud.google.com/apis/credentials
作成を行うとクライアント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/