LoginSignup
14
8

More than 3 years have passed since last update.

Redash環境をGCPに構築する(2020)

Last updated at Posted at 2020-02-05

最新の情報で日本語化されてるものがなかったので、手順をまとめておきます。
手順は難しくないので、初見でも10分くらいで環境構築できるかなと思います。良い時代ですね。

環境

  • Google Compute Engine
  • Redash 8.0.0
  • docker
  • Let's Encrypt

目標

  • Redash環境をGoogle Compute Engine上に作る
  • Redashにログインできる
  • https化する

前提

  • GCPプロジェクトが作成できていること
  • ドメインが取得できていること

参考

この記事の内容は、だいたいここに書いてあることの日本語訳です。
Setting up a Redash Instance

こちらの記事内容を最新にしたものが、この記事の内容となります。(フォーマットを参考にさせていただきました)
https://qiita.com/t-oi/items/6fd670b89ed71a7928d4

作業手順

インスタンスの作成

GCP上でCloud Shellを開き、以下を実行

# プロジェクト名を設定
$ gcloud config set project PROJECT_ID

# redashイメージを取得
$ 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

ドメインの紐付け

VPCネットワーク > 外部IPアドレス > タイプ より、「エフェメラル」を「静的」に変更してIPアドレスを永続化。

永続化したIPアドレスを、自身のDNSのAレコードに追加しドメインを紐付け。(ここは省略します)

Redash側の設定

ここまでで、設定したドメインにアクセスすればセットアップ画面が開くようになっている。
セットアップ画面で必要事項を記入する。

HTTPS化

公式の説明の上部注意書きの通り、このページの説明は古くなっているので、以下のgistを参考に作業する。
https://gist.github.com/arikfr/64c9ff8d2f2b703d4e44fe9e45a7730e

Compute Engine > VMインスタンス > 接続 > SSH を使い、インスタンスにSSHして作業する。

$ sudo su
$ cd /opt/redash
$ mkdir nginx && mkdir nginx/certs && mkdir nginx/certs-data

# ファイルの内容はgist参照
$ vi nginx/nginx.conf

# nginxのサービスに、portsとvolumesを追加
$ vi docker-compose.yml

# 再起動
$ 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
# メールアドレスを聞かれたりするので入力する

# SSL用のnginx.confに書き換え
$ vi nginx/nginx.conf

# 再起動
$ docker-compose restart nginx

ここまでで、httpsでアクセスできるようになる。

※GCPインスタンスでhttp接続を許可していないと証明書の更新がうまく行かないので注意。

証明書の更新

以下コマンドで更新できる。
(gistにコメントが付いている通り、gistのコマンドは間違っているので注意)

$ sudo docker run -t --rm \
  -v /opt/redash/nginx/certs:/etc/letsencrypt \
  -v /opt/redash/nginx/certs-data:/data/letsencrypt \
  deliverous/certbot \
  renew \
  --webroot --webroot-path=/data/letsencrypt
$ sudo docker-compose kill -s HUP nginx

cronで更新させたい場合は、rootで登録すべきなことに注意する。

sudo crontab -u root -e
# 毎月1日に実行したければ以下(renew-certificate.shの中身は上)
# 0 0 1 * * sudo sh /opt/redash/renew-certificate.sh

その他

環境変数を変更したければ、 vi /opt/redash/env する。
例えば、redashのdatetimeの表示を変更するには、以下の環境変数で変更できる。

REDASH_DATE_FORMAT=YYYY/MM/DD
14
8
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
14
8