Business Intelligence를 위한 Redash - 2부 (업그레이드)

92·2023년 5월 4일
0
post-thumbnail

1. 작업 설명

✏️ 1부에서 설명한 Redash 설치 방법외에 Redash에서 제공하는 AMI(Amazon Machine Image)을 사용하여 설치를 진행할 수 있습니다.

버전은 V8(8.0.0+b32245)을 설치하게 되는데, 업그레이드 가이드를 제공하고 있습니다.
지금부터 v10.1.0(10.1.0.b50633)으로 업그레이드 해보도록 할게요!

1.1 환경 구성

  • 우선 서버에 접속을 해보겠습니다.

    $ ssh -i mykey.pem ubuntu@[public ip]
  • 설정 파일이 있는 디렉토리로 이동합니다.

    // redash 관련 경로 이동
    $ cd /opt/redash/
    // 도커 설정 백업
    $ sudo cp docker-compose.yml docker-compose_backup.yml
    // 수정
    $ sudo vi docker-compose.yml
  • 아래와 같이 이미지 파일 버전을 변경해줍니다. (8.0.0.b32245 > 10.1.0.b50633)

    version: "2"
    x-redash-service: &redash-service
      image: redash/redash:10.1.0.b50633

1.2 docker-compose.yml 수정사항

  • services.scheduler.environment 모두 제거

    1) 이전 버젼은 아래와 같이 구성되어 있습니다. 아래 내용을 수정할 것입니다.
    환경마다 다를 수 있으니 참고만 해주세요..! 🫠

    services:
      server:
        <<: *redash-service
        command: server
        ports:
          - "5000:5000"
        environment:
          REDASH_WEB_WORKERS: 4
      scheduler:
        <<: *redash-service
        command: scheduler
        environment:
          QUEUES: "celery"
          WORKERS_COUNT: 1
      scheduled_worker:
        <<: *redash-service
        command: worker
        environment:
          QUEUES: "scheduled_queries,schemas"
          WORKERS_COUNT: 1
      adhoc_worker:
        <<: *redash-service
        command: worker
        environment:
          QUEUES: "queries"
          WORKERS_COUNT: 2

    2) 위 내용을 아래와 같이 수정해주면 됩니다!

    services:
      server:
        <<: *redash-service
        command: server
        ports:
          - "5000:5000"
        environment:
          REDASH_WEB_WORKERS: 4
      scheduler:
        <<: *redash-service
        command: scheduler
      scheduled_worker:
        <<: *redash-service
        command: worker
      adhoc_worker:
        <<: *redash-service
        command: worker

    3) services.worker를 추가해준다.

    services:
    ...
      adhoc_worker:
        <<: *redash-service
        command: worker
      worker:
        <<: *redash-service
        command: worker
        environment:
          QUEUES: "periodic emails default"
          WORKERS_COUNT: 1

    4) 저장 후 도커 컨테이너를 중단해준다.

    $ sudo docker-compose stop server scheduler scheduled_worker adhoc_worker

1.3 컨테이너 빌드

컨테이너 강제 빌드를 해줍니다.

  • build 를 통해 이미지 재빌드, --force-recreate 를 통해 모든 컨테이너를 지우고 다시 작성 되도록 하는 명령어 입니다.

  • redash 접속시(public ip 브라우저창에 입력) 로그인 화면이 정상적으로 뜨면 ctrl+c 를 눌러 우선 종료해줍니다.

    $ sudo docker-compose up --force-recreate --build
    Pulling worker (redash/redash:10.0.0.b50363)...
    10.0.0.b50363: Pulling from redash/redash
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Pull complete
    zzzzzzzzzzzz: Extracting [=================================================> ]  119.8MB/120.5MB
    zzzzzzzzzzzz: Download complete
    aaaaaaaaaaaa: Download complete
    zzzzzzzzzzzz: Download complete
    ...
  • 마이그레이션 작업이 필요합니다. 아래와 같이 작성해주세요!

    $ sudo docker-compose run --rm server manage db upgrade
    Starting redash_redis_1    ... done
    Starting redash_postgres_1 ... done
    [2022-02-26 03:03:21,963][PID:1][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
    [2022-02-26 03:03:21,963][PID:1][INFO][alembic.runtime.migration] Will assume transactional DDL.
    [2022-02-26 03:03:21,984][PID:1][INFO][alembic.runtime.migration] Running upgrade e5c7a4e2df4d -> d7d747033183, encrypt alert destinations
    [2022-02-26 03:03:21,998][PID:1][INFO][alembic.runtime.migration] Running upgrade e5c7a4e2df4d -> 0ec979123ba4, empty message
    [2022-02-26 03:03:22,028][PID:1][INFO][alembic.runtime.migration] Running upgrade 0ec979123ba4, d7d747033183 -> 89bc7873a3e0, fix_multiple_heads
  • 컨테이너 시작 후 재 접속 하여 버전 확인하면 업그레이드 작업이 끝이 납니다.

    ```java
    $ sudo docker-compose up -d
    ```

    참 쉽죠? ✌️

2. 기타 에러

redash 10버젼 업데이트 중 아래와 같은 에러 발생한다면?

E: Could **not** get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), **is** another process using it?

당황 하지말고, 이렇게 해결하시면 됩니다.

sudo dpkg --configure -a
sudo apt update

마지막인 3부에서는 AWS Route 53로드밸런서을 통해 도메인 주소를 설정하는 것까지 진행해보겠습니다!

profile
{ "ME" : "DataEngineer, DataAnalyst" }

0개의 댓글