Redash를 AMI에서 시작해 보았습니다.

5808 단어 redashAWS

공식 AMI에서 인스턴스 시작



에서 AMI를 선택합니다. Region ap-northeast-1의 AMI 링크를 클릭하면 인스턴스 유형을 선택하는 화면으로 이동하므로 적절한 인스턴스 유형을 선택합니다.

1년간의 무료 프레임을 사용하고 있으므로 무료로 사용할 수 t2.micro 로 했습니다.

키 쌍을 설정하고 시작합니다.

액세스 설정



관리 콘솔에서 인스턴스의 보안 그룹 인바운드에서 HTTP 액세스를 적절하게 허용합니다.

이제 브라우저에서 인스턴스의 IP에 액세스하면 페이지가 표시됩니다.



Internal Server Error(500 오류)군요. 서비스측에 문제가 있을 것 같으므로 확인합니다.

서버측 설정



시작된 인스턴스에 SSH 로그인합니다.

우선 서비스를 다시 시작해 보겠습니다.
$ sudo supervisorctl restart all
redash_server: stopped
redash_celery_scheduled: stopped
redash_celery: stopped
redash_celery: started
redash_server: started
redash_celery_scheduled: started

다시 브라우저를 다시로드해 봅니다. 그러나 Internal Server Error는 변경되지 않습니다.

supervisord의 로그를 확인합니다.
$ less /var/log/supervisor/supervisord.log

하지만 수상한 로그는 나오지 않습니다. Redash가 사용하는 서비스의 시작 상태를 확인합니다.

PostgreSQL 프로세스를 확인합니다.
$ ps aux | grep -i postgres
ubuntu   21547  0.0  0.0  12948   932 pts/0    S+   13:47   0:00 grep --color=auto -i postgres

발견되지 않기 때문에 PostgreSQL 가 기동하고 있지 않는 것이 원인인 것 같습니다. 로그를 확인합니다.
$ less /var/log/postgresql/postgresql-9.5-main.log
2017-10-16 13:32:30 UTC [1352-1] LOG:  database system was shut down at 2017-08-13 12:39:56 UTC
2017-10-16 13:32:30 UTC [1352-2] LOG:  MultiXact member wraparound protections are now enabled
2017-10-16 13:32:30 UTC [1351-1] LOG:  database system is ready to accept connections
2017-10-16 13:32:30 UTC [1356-1] LOG:  autovacuum launcher started
2017-10-16 13:32:31 UTC [1361-1] [unknown]@[unknown] LOG:  incomplete startup packet
2017-10-16 13:34:33 UTC [1351-2] LOG:  received fast shutdown request
2017-10-16 13:34:33 UTC [1351-3] LOG:  aborting any active transactions
2017-10-16 13:34:33 UTC [1705-1] redash@redash FATAL:  terminating connection due to administrator command
2017-10-16 13:34:33 UTC [1704-1] redash@redash FATAL:  terminating connection due to administrator command
2017-10-16 13:34:33 UTC [1356-2] LOG:  autovacuum launcher shutting down
2017-10-16 13:34:34 UTC [1353-1] LOG:  shutting down
2017-10-16 13:34:34 UTC [1353-2] LOG:  database system is shut down
2017-10-16 13:34:53 UTC [19851-1] FATAL:  could not map anonymous shared memory: Cannot allocate memory
2017-10-16 13:34:53 UTC [19851-2] HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 148488192 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
FATAL 오류가 발생했습니다. 그 전에 로그의 시각이 보기 어렵기 때문에, 타임 존을 일본 시간으로 변경합니다.
$ sudo timedatectl set-timezone Asia/Tokyo
$ date
Mon Oct 16 22:53:17 JST 2017

JST로 변경되었습니다.

방금 전의 PostgreSQL 에러는 할당할 수 있었던 메모리 사이즈가 크다고 하는 것 같습니다.
$ sudo vi /etc/postgresql/9.5/main/postgresql.conf

#max_connections = 100
max_connections = 50

#shared_buffers = 128MB
shared_buffers = 32MB

적습니다. 다시 시작합니다.
$ sudo /etc/init.d/postgresql restart
Restarting postgresql (via systemctl): postgresql.service.

프로세스를 확인합니다.
$ ps aux | grep -i postgres
postgres 21785  0.0  1.5 186840 15880 ?        S    23:02   0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf
postgres 21787  0.0  0.3 186840  3832 ?        Ss   23:02   0:00 postgres: checkpointer process
postgres 21788  0.0  0.3 186840  3832 ?        Ss   23:02   0:00 postgres: writer process
postgres 21789  0.0  0.3 186840  3832 ?        Ss   23:02   0:00 postgres: wal writer process
postgres 21790  0.0  0.6 187244  6104 ?        Ss   23:02   0:00 postgres: autovacuum launcher process
postgres 21791  0.0  0.3 148544  3128 ?        Ss   23:02   0:00 postgres: stats collector process
ubuntu   21808  0.0  0.1  12948  1092 pts/0    S+   23:02   0:00 grep --color=auto -i postgres

시작했다!

브라우저에서 액세스하면.



표시되었습니다!

Admin 사용자를 등록하면 우선 사용할 수 있습니다.

이 상태로 메일 설정 등을 할 수 있기 때문에 필요한 경우 도움말

등을 참고로 합니다.

그건 그렇고



처음 시도했을 때는 다음과 같은 en_US.UTF-8 로케일이 없다는 오류가 나왔습니다.
2017-10-09 08:38:28 UTC [2801-1] redash@redash FATAL:  database locale is incompatible with operating system
2017-10-09 08:38:28 UTC [2801-2] redash@redash DETAIL:  The database was initialized with LC_COLLATE "en_US.UTF-8",  which is not recognized by setlocale().
2017-10-09 08:38:28 UTC [2801-3] redash@redash HINT:  Recreate the database with another locale or install the missing locale.

확인하면 확실히 없다.
$ locale -a
C
C.UTF-8  # en_US.utf8 がない
POSIX

따라서 다음과 같이 en_US.UTF-8를 설치하고 시작했습니다.
$ sudo locale-gen en_US.UTF-8
$ locale -a
C
C.UTF-8
en_US.utf8
POSIX

이 기사를 쓰기 위해 처음부터 통과해 보면 en_US.utf8 로컬이 들어가 있어, 재현하지 않았습니다.

Issue를 세웠습니다만, 착각이었을 가능성이 높기 때문에 살짝 닫았습니다.
  • Can't start PostgreSQL instead of installing locale "en_US.UTF-8" when using AMI instance · Issue #2009 · getredash/redash
  • 좋은 웹페이지 즐겨찾기