RoadMovie

write down memos or something I found about tech things

redashでデータドリブンなチームを構築

こんにちは。

あなたの会社では分析ツールやダッシュボードなどを使っていますか?もしまだ使ってない、あるいは現状のツールに満足していないのであれば、redashが代案になるかもしれません。redashはとてもシンプルで簡単ですし、分析に必要十分なツールだといえるでしょう。この記事ではAWS EC2を使ったビルド方法を紹介します。



https://redash.io/

Make Your Company Data Driven Connect to any data source, easily visualize and share your data

お金を払えば一切何もしないでredashを利用することもできますが、あなたがエンジニアであれば(あるいはエンジニアに手伝ってもらえば)すべての機能を無料で使うことができます。

documentは下記になります。

https://redash.io/help-onpremise/setup/setting-up-redash-instance.html


Steps

1. EC2をredash AMIを使って起動

2. データソースに接続

3. SESを使ってEmailシステムを構築

First Step: EC2をredash AMIを使って起動

redashはビルド方法として2つ用意しています。ひとつはDockerを用いた方法で、もうひとつがAWSのAMIを使った方法です。 ここではAMIを使った方法を紹介します。

EC2のダッシュボードで、"Launch Instance"をクリックします。そして、左側の"Community AMIs"をクリック。次に、検索窓から先程のdocumentにあったAMIの名前を探します。インスタンスサイズはsmallで十分なようです。起動が完了するとpublic DNSでアクセス可能になります。もちろん独自ドメインの設定も可能です。


Second Step: データソースに接続

最初のステップはとても簡単でした。次のステップは少し難しくなるかもです。PostgreSQLをデータソースに選んだ場合の方法を示します。

難しいポイントはポート指定です。autosshを使うと比較的簡単に設定が可能になります。もしAWS RDSを使っていれば簡単に接続できますが、そうでない場合はこの手段を用いるのが良いでしょう。

ubuntuにautosshをインストールします。

$ sudo apt-get install autossh

コネクションの設定例です。

$ autossh -M 0 -f -N -L 127.0.0.1:15432:127.0.0.1:5432 ubuntu@example.com -p 5082

上記のケースでは,

1. ubuntu userとしてsshexample.comにport 5082で接続

2. example.comのport 127.0.0.1:5432をhost(autosshを使っている)のport 127.0.0.1:15432に接続

autosshのプロセスを確認しておきましょう。

ubuntu@redash-production:~$ ps ax | grep autossh
 5746 pts/0    S+     0:00 grep --color=auto autossh
14346 ?        Ss     0:00 /usr/lib/autossh/autossh -M 0    -N -L 127.0.0.1:15432:127.0.0.1:5432 ubuntu@example.com -p 5082

ところで、実際はredashユーザーを作成して、read-onlyの権限を与えて運用するのが良いでしょう。

Third Step: SESを使ってEmailシステムを構築

もしredashにログイン可能なユーザーを追加したければ、Email送信機能を構築する必要があります。これは、redashでユーザーを追加した際、登録したメールアドレスに確認URLが書かれたメールが届くからです。ここではAWSを使っているのでSESを利用するのが簡単で良いでしょう。

先程のEC2内の /opt/redash にredashの設定があります。ここに.envという隠しファイルがあるので、SESの設定をここに書いていきましょう。

下記は設定例です。

# .env

export REDASH_LOG_LEVEL="INFO"
export REDASH_REDIS_URL=redis://localhost:6379/0
export REDASH_DATABASE_URL="postgresql:///redash"
export REDASH_COOKIE_SECRET=SECRET_KEY // set by default

export REDASH_MAIL_SERVER="email-smtp.eu-west-1.amazonaws.com" # default: localhost
export REDASH_MAIL_PORT="587" # default: 25
export REDASH_MAIL_USE_TLS="true" # default: false
export REDASH_MAIL_USE_SSL="false" # default: false
export REDASH_MAIL_USERNAME="USERNAME_OF_SES" # default: None
export REDASH_MAIL_PASSWORD="PASSWORD_OF_SES" # default: None
export REDASH_MAIL_DEFAULT_SENDER="email@email.com" # Email address to send from

export REDASH_HOST="https://redashhost.com" # base address of your Redash instance, for example: "https://demo.redash.io"

SESのusernameとpasswordがわからなければ下記のdocumentをチェックしてみてください。 https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html


これで完了になります。クエリを作成してダッシュボードを作ってみましょう。

Happy life with redash! :D