Re:dashをAWSに構築してみた
最近まであまりRe:dashのことを認識してなかったけど、結構使われてるのですね。
会社で入れてみたら?という話になり、構築してみました。
Qiitaなどの過去記事が散乱してるので、、
古いAMIから作ってしまったりしてしまったけど、
結局はhelpから探して最新版を入れるのがいいみたい。
構築
https://redash.io/help-onpremise/setup/setting-up-redash-instance.html
私が作ったときのが東京リージョンの以下を選択
ami-34cfe853
ただこれが Re:dashのバージョンが1.01になっている。
最新版ではないので後でバージョンアップする。
EC2のインスタンスは t2.micro で構築してたが、
後で面倒なことになるので small 以上で構築することをおすすめします。
インスタンスが立ち上がったら
アップグレードしておく
cd /opt/redash/current sudo bin/upgrade
Ubuntuでつくっているからなのか再起動時に/etc/init.d配下に起動スクリプトがないと怒られてしまった。
最後の再起動ができてないだけのようなので、手動で再起動してしまう。
sudo supervisorctl restart redash_server
バージョン確認する。
readlink -f /opt/redash/current
最新になっていることを確認
Google認証でログイン
特定のドメインだけで Google認証でログインさせたかったので
cd /opt/redash/current sudo -u redash bin/run ./manage.py org set_google_apps_domains {{domains}}
{{domains}}の箇所は適宜設定してくだされ。
このときに外部からcvsをインポートしようとするのかImportErrorとかRedisに書き込めないとかエラーになってしまった。
redash の プロセスを落としてから実行させたらエラーは出なくはなったがそもそもメモリ足りてないっぽいので
インスタンスをsmall以上にしておいたほうがいい。
以下エラー内容。
Traceback (most recent call last): File "/opt/redash/redash.1.0.1.b2833/manage.py", line 6, in <module> from redash.cli import manager File "/opt/redash/redash.1.0.1.b2833/redash/__init__.py", line 66, in <module> import_query_runners(settings.QUERY_RUNNERS) File "/opt/redash/redash.1.0.1.b2833/redash/query_runner/__init__.py", line 171, in import_query_runners __import__(runner_import) File "/opt/redash/redash.1.0.1.b2833/redash/query_runner/big_query.py", line 13, in <module> from redash.utils import JSONEncoder File "/opt/redash/redash.1.0.1.b2833/redash/utils/__init__.py", line 2, in <module> import csv File "/usr/lib/python2.7/csv.py", line 8, in <module> from _csv import Error, __version__, writer, reader, register_dialect, \ ImportError: /usr/lib/python2.7/lib-dynload/_csv.x86_64-linux-gnu.so: failed to map segment from shared object
Traceback (most recent call last): File "/opt/redash/redash.1.0.1.b2833/manage.py", line 6, in <module> from redash.cli import manager File "/opt/redash/redash.1.0.1.b2833/redash/__init__.py", line 70, in <module> reset_new_version_status() File "/opt/redash/redash.1.0.1.b2833/redash/version_check.py", line 36, in reset_new_version_status _compare_and_update(latest_version) File "/opt/redash/redash.1.0.1.b2833/redash/version_check.py", line 49, in _compare_and_update redis_connection.set(REDIS_KEY, latest_version) File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 1072, in set return self.execute_command('SET', *pieces) File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 573, in execute_command return self.parse_response(connection, command_name, **options) File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 585, in parse_response response = connection.read_response() File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 582, in read_response raise response redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
データソースの登録
最近のバージョンではデータソースの登録はすべて画面からできるようなので、
再起動できたらアクセスしてみて
DatasourceにRDSを追加しておくと、SQLを使って簡単にグラフ化できたりする。
以上、色々データを使ってエンジニア以外の人にもデータを見てもらうには結構便利そう。