EC2에 redash 도입

5265 단어 redash

환경



redash 버전: v0.10.1
서버: amazon linux

절차



1. EC2 인스턴스 생성



amazon linux 선택


이번은 시험이므로, 스펙은 t2.nano로.


2. 생성한 인스턴스에 ssh 연결



아래 페이지를 참고하여 redash 서버에 ssh 연결할 수 있도록 한다.

Mac OS X에서 AWS EC2 Linux 인스턴스에 ssh 연결
ぃ tp // 이 m/모두 k단_칸세르l/있어 ms/5c83f090f958 또는 35b1d2

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번 포트가 중복되는 에러의 대처



이 상태에서 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번 포트의 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의 인스톨은 무사 완료.


admin/admin으로 로그인이 가능.

좋은 웹페이지 즐겨찾기