redashでデータドリブンなチームを構築
こんにちは。
あなたの会社では分析ツールやダッシュボードなどを使っていますか?もしまだ使ってない、あるいは現状のツールに満足していないのであれば、redashが代案になるかもしれません。redashはとてもシンプルで簡単ですし、分析に必要十分なツールだといえるでしょう。この記事ではAWS EC2を使ったビルド方法を紹介します。
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としてsshでexample.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