EC2にredashの導入

# 環境
redashのバージョン: v0.10.1
サーバ: amazon linux

# 手順

## 1. EC2のインスタンス作成
amazon linuxを選択
<img width="1269" alt="スクリーンショット 2017-02-12 19.48.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/24831/f92ea80d-fbc0-66fe-72b1-4eecf01262bf.png">

今回はお試しなので、スペックはt2.nanoで。
<img width="1268" alt="スクリーンショット 2017-02-12 19.49.31.png" src="https://qiita-image-store.s3.amazonaws.com/0/24831/1a3811fe-728a-2b10-a846-4596b985b08f.png">

## 2. 作成したインスタンスにssh接続
下記のページを参考にして、redashサーバへssh接続出来るようにする

Mac OS XでAWS EC2のLinuxインスタンスにssh接続する
http://qiita.com/tomoktan_cansell/items/5c83f090f958ca35b1d2

## 3. 作成したインスタンスに、redashのインストール
作成したインスタンスにログイン後、下記のコマンドを入力する。

```
$ wget https://github.com/getredash/redash/archive/v0.10.1.b1834.zip
$ unzip v0.10.1.b1834.zip
$ cd redash-0.10.1.b1834/
$ cd setup/amazon_linux/
$ ./bootstrap.sh
```

## 4. 80番portが重複しているエラーの対処
この状態でredashにアクセスすると、

```
2017/02/12 10:45:24 [emerg] 23011#0: a duplicate default server for 0.0.0.0:80 in /etc/nginx/nginx.conf:41
```
となり、80番portのnginxの設定が重複していてエラーとなる。

/etc/nginx/conf.d/redash.confに、80番portの設定が入っているので、
/etc/nginx/nginx.confの設定を80番port以外に変更する必要がある。

```
$ vi /etc/nginx/nginx.conf
>>> before
     40     server {
     41         listen       80 default_server;
     42         listen       [::]:80 default_server;
     43         server_name  localhost;
>>>

>>> after
     40     server {
     41         listen       8081 default_server;
     42         listen       [::]:8081 default_server;
     43         server_name  localhost;
>>>

$ sudo /etc/init.d/nginx restart
```

### 5. 「TemplateNotFound: login.html」の対応

assetのpath指定を行なっていないのと、下記のエラーが出る。

```
[2017-02-12 12:14:32,296][PID:19995][ERROR][redash.wsgi] Exception on /login [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/site-packages/flask_restful/__init__.py", line 271, in error_router
    return original_handler(e)
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/redash/redash.0.9.2.b1536/redash/handlers/authentication.py", line 49, in login
    show_saml_login=settings.SAML_LOGIN_ENABLED)
  File "/usr/local/lib/python2.7/site-packages/flask/templating.py", line 127, in render_template
    return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
  File "/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 851, in get_or_select_template
    return self.get_template(template_name_or_list, parent, globals)
  File "/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 812, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 774, in _load_template
    cache_key = self.loader.get_source(self, name)[1]
  File "/usr/local/lib/python2.7/site-packages/flask/templating.py", line 64, in get_source
    raise TemplateNotFound(template)
TemplateNotFound: login.html
```

.envにassetのpath指定を行う

```
$ sudo vi /opt/redash/.env

>>> before
export REDASH_LOG_LEVEL="INFO"
export REDASH_REDIS_URL=redis://localhost:6379/1
export REDASH_DATABASE_URL="postgresql://redash"
export REDASH_COOKIE_SECRET=veryverysecret
>>>

>>> after
export REDASH_LOG_LEVEL="INFO"
export REDASH_REDIS_URL=redis://localhost:6379/1
export REDASH_DATABASE_URL="postgresql://redash"
export REDASH_COOKIE_SECRET=veryverysecret
export REDASH_STATIC_ASSETS_PATH="../rd_ui/dist/"
>>>
$ supervisorctl restart all
```

## 6. 管理画面へアクセス

ブラウザから、redashにアクセスすると下記の画面が出れば、redashのインストールは無事完了。
<img width="1280" alt="スクリーンショット 2017-02-12 23.17.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/24831/da7f5347-2e1e-dfbf-8371-73489259e363.png">

admin/adminでログインが可能。
<img width="1280" alt="スクリーンショット 2017-02-12 23.18.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/24831/603d28f8-ee16-d790-28d1-49d407db3666.png">