Skip to Content
제품 설치와 기술지원컨테이너 환경변수컨테이너 환경변수

컨테이너 환경변수

QueryPie ACP 의 Server Container 를 실행하는데 필요한 환경변수에 대한 안내를 제공합니다. 이 문서는 QueryPie 10.3.0 또는 이후 버전에 적용됩니다.

기본 환경변수

Environment Variable NameDefault ValueDescription
VERSIONQueryPie 설치 버전입니다.예시) 10.3.0이 환경변수의 값으로 Container Image 의 tag 를 지정합니다.
AGENT_SECRET권장하는 값: 32-char random string via openssl rand -hex 16QueryPie Container 와 User Agent 사이의 암호화된 통신에 사용하는 비밀키입니다. ASCII 32 자리로 설정하는 것이 필요합니다.High Availability (HA) 구성을 적용한 경우, 둘 이상의 QueryPie Server Container 의 compose-env 에서, AGENT_SECRET 값이 모두 동일해야 합니다.
KEY_ENCRYPTION_KEY권장하는 값: 16-char random string via openssl rand -hex 8QueryPie Meta DB 의 민감 데이터를 암호화하는 Data Encryption Key (DEK) 를 암호화하여 보관하기 위한 Key 입니다. KEK 는 DEK 를 노출하지 않도록 암호화하는데 사용됩니다.DEK 는 QueryPie Meta DB 에 저장하는 DB연결, SSH서버 연결을 위한 비밀값(Credential)을 암호화하는 Key 입니다.
DB_HOSTMeta DB, Log DB, Snapshot DB 로 사용하는 MySQL 의 Hostname 또는 IP Address 입니다.PoC 용도로 Single Machine 에 QueryPie Container, MySQL Container 등을 모두 설치하는 경우, host.docker.internal 을 입력하면 됩니다.QueryPie Container 가 설치된 Machine 이 아닌, AWS Aurora 등 분리된 MySQL 을 구성하는 경우, 그 MySQL 의 Hostname 또는 IP Address 를 입력하세요.
DB_PORT3306Meta DB, Log DB, Snapshot DB 로 사용하는 MySQL 의 TCP Port
DB_CATALOGquerypieMeta DB 가 사용할 catalog
LOG_DB_CATALOGquerypie_logLog DB 가 사용할 catalog
ENG_DB_CATALOGquerypie_snapshotSnapshot DB 가 사용할 catalog
DB_USERNAME권장하는 값: querypieMeta DB, Log DB, Snapshot DB 로 사용하는 MySQL 의 Username
DB_PASSWORD권장하는 값: 16-char random string via openssl rand -hex 8Meta DB, Log DB, Snapshot DB 로 사용하는 MySQL 의 Password
DB_MAX_CONNECTION_SIZE20QueryPie 가 Meta DB 연결에 사용하는 최대 connection 수 (20 사용 권장)
DB_DRIVER_CLASSorg.mariadb.jdbc.DriverMeta DB 가 AWS Aurora 인 경우, Aurora Instance 부분 장애시 Failover 를 지원합니다.AWS Aurora 를 적용하여 Failover 기능을 사용하려는 경우, AWS에서 제공하는 전용 드라이버 software.amazon.jdbc.Driver 를 지정합니다.
REDIS_NODESQueryPie Redis 에 연결하기 위한 Host, Port 정보를 입력합니다. 둘 이상의 Host, Port 정보를 입력하는 경우, Host1:Port1,Host2:Port2 와 같이, , 로 구분하여 입력할 수 있습니다.PoC 용도로 Single Machine 에 QueryPie Container, Redis Container 등을 모두 설치하는 경우, host.docker.internal:6379 을 입력하면 됩니다.Host 는 IP Address 형태를 입력하여도 되고, FQDN 을 입력하여도 됩니다.
REDIS_PASSWORD권장하는 값: 16-char random string via openssl rand -hex 8Redis Password
DAC_SKIP_SQL_COMMAND_RULE_FILEskip_command_config.json3rd Party Tool (DataGrip, DBeaver 등 워크벤치 툴) 에서 이용자가 입력하는 쿼리가 아닌, 툴이 자동으로 실행하는 SQL Query 를 Audit Log 에 남기지 않도록 설정합니다.툴이 자동으로 실행하는 SQL Query 는 구문의 패턴이 정해져 있다는 의미에서, 정형화된 Query 라고 부르기도 합니다.이러한 정형화된 Query 를 Audit Log 에 남기지 않도록 설정하면, 이용자가 체감하는 3rd Party Tool 의 응답속도가 빨라지게 됩니다. QueryPie Server 의 성능 부하를 감소시키는데, 도움이 됩니다.자세한 내용은 https://chequer.atlassian.net/wiki/spaces/QCP/pages/851346405/10.2.x#%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%B6%94%EA%B0%80.2  문서에서 확인할 수 있습니다.

더이상 사용되지 않는 환경변수

Environment Variable Name

Default Value

Description

QUERYPIE_WEB_URL

10.2.8 또는 이후 버전에서는, Web Console 에서 이 값을 설정합니다. 환경변수에서 설정하지 않습니다.

Web Console 에 접근하기 위한 QueryPie 의 URL 주소입니다.
(예시. https://querypie.customer.com)
이 URL 은 QueryPie 의 Base URL 이라고 부르기도 합니다. 이 URL 은 / 로 끝나지 않아야 합니다. https://querypie.customer.com/ 와 같이 URL 의 마지막에 / 를 붙이지 않도록 주의하여 주세요. 이 URL 은 아래의 용도로 사용됩니다.

AWS_ACCOUNT_ID

10.3.0 또는 이후 버전에서는, 이 값을 입력하지 않습니다. 자동으로 이 값이 선택됩니다.

QueryPie Admin > CloudProvider > CrossAccountRole 설정 시 사용되는 값입니다.
QueryPie 가 설치된 AWS 계정의 Account ID 를 넣어주세요. AWS 가 아닌 아닌 환경에서는 빈 값으로 둡니다.

REDIS_HOST

10.2.1 또는 이후 버전에서, 이 값이 REDIS_NODES 로 대체되었습니다.

Redis Hostname or IP Address - QueryPie Container 가 캐시 데이터 저장을 위해 사용합니다. PoC 용도로 Single Machine 에 QueryPie Container, Redis Container 등을 모두 설치하는 경우, host.docker.internal 을 입력하면 됩니다. QueryPie Container 가 설치된 Machine 이 아닌, AWS ElastiCache 등 분리된 Redis 을 구성하는 경우, 그 Redis 의 Hostname 또는 IP Address 를 입력하세요.

REDIS_PORT

6379

10.2.1 또는 이후 버전에서, 이 값이 REDIS_NODES 로 대체되었습니다.

Redis TCP Port

REDIS_CONNECTION_MODE

STANDALONE

10.3.0 또는 이후 버전에서는, 이 값을 입력하지 않습니다. 자동으로 이 값이 선택됩니다.

STANDALONE 또는 CLUSTER 라는 값을 사용합니다. PoC 용도로 Single Machine 에 QueryPie Container, Redis Container 등을 모두 설치하는 경우, STANDALONE 을 입력하면 됩니다. QueryPie Redis 를 Cluster 모드로 사용하는 경우 CLUSTER 를 입력하면 됩니다. CLUSTER 모드로 사용하는 경우, 여러 주소의 값을 REDIS_NODES 에 입력하게 됩니다.

CABINET_DATA_DIR

10.2.8 또는 이후 버전에서는, 이 값을 입력하지 않습니다. OVEN 컴포넌트 설정으로 대체됩니다.

SAC > RDP(WinSAC) 세션 레코딩에 사용하는 이미지를 EC2 인스턴스 서버 파일시스템에 저장하는 위치입니다. (/data 사용 권장)

FAQ

Q: DB_HOST, REDIS_HOST 에 127.0.0.1 이나 localhost 를 사용할 수 있나요?

A: DB_HOST, REDIS_HOST 에 127.0.0.1, localhost 를 사용할 수 없습니다.

Single Machine 구성인 경우, 하나의 Linux machine 에 MySQL, Redis 를 모두 설치할 수 있습니다. 이때, QueryPie Container 는 default network mode 인 bridge mode 가 사용됩니다. bridge mode 에서 127.0.0.1, localhost 는 container 내부의 프로세스 사이에만 통신이 가능합니다. MySQL, Redis 는 별개의 Container 에서 실행되기에, QueryPie Container 에서 127.0.0.1, localhost 주소를 이용해 MySQL, Redis 에 연결할 수 없습니다.

이 경우, host.docker.internal 주소를 사용하여, Docker Host, 즉 docker daemon 이 실행 중인 Linux machine 의 host network 에 연결할 수 있습니다.

Q: 운영 도중AGENT_SECRET를 변경해도 괜찮은가요?

A: 변경하는 절차가 복잡하고 고객사 이용자에게 불편을 주기에, 변경하지 않는 것을 권합니다.

이 값을 변경하는 경우, 다음의 절차를 적용해야 합니다.

  • compose-env 파일에서 해당값을 변경하고, QueryPie Container 를 재시작해 주어야 합니다.
  • 이중화, 다중화 구성의 경우, 모든 QueryPie Container 가 동일한 값을 가져야 합니다.
  • ⚠️ User Agent 사용자들은 설치한 User Agent 를 삭제, Uninstall 한 이후, 재설치하여 사용하여야 합니다.

초기에 어떤 값으로 생성해야할지 애매하다면 그냥 리눅스 터미널에서 uuidgen | tr -d '-' 으로 생성된 값을 사용하여도 됩니다.

해당 환경변수는 이용자가 입력하지 않고, 서버 내에서 스스로 구성하는 방식으로 대체될 계획이 있습니다.

Q. 운영 도중KEY_ENCRYPTION_KEY를 변경할 수 있나요?

A: 이 값을 변경할 수 없습니다. 최초 설치 시 사용한 값을 반드시 보관하고 있어야 합니다.

만약 이 값을 잃어버리거나, 변경된 값을 환경변수로 지정하는 경우, 운영 중인 QueryPie Meta DB 내 암호화된 민감데이터를 QueryPie Container 가 읽을 수 없습니다. 이에 따라, QueryPie Container 가 정상적으로 작동할 수 없게 됩니다.

이 환경변수의 값으로 요구하는 길이, 문자의 종류에 대한 제약은 없습니다. 예를 들어 8자리 이상이어야 한다, 특수문자가 들어가야 한다 등의 제약이 없습니다. 실제 이런 값을 사용하는 것을 권장하지 않지만, 이용자가 1 이라는 간단한 값을 설정하여도, QueryPie 가 기능적으로 정상 작동합니다.

그러나, 고객사의 보안 담당자에게 문의하여, 고객사 내부의 정보보안 정책, 가이드라인에 따라 설정하는 것을 권장합니다.

Q:AWS_ACCOUNT_ID는 반드시 입력해야 하는 값인가요? 어떤 값을 입력해야 하나요?

A: QueryPie 10.3.0 또는 이후 버전에서는, AWS_ACCOUNT_ID 를 입력하지 않습니다. QueryPie Server Container 가 스스로 이 값을 알아냅니다.

AWS_ACCOUNT_ID 환경변수값은 Web Console 에서 Cloud Provider 를 설정에서, CrossAccount Role 사용시 타겟 Account 에 Role 을 생성할 때, 기본값으로 사용됩니다. 아래의 스크린샷에서 보이는 Account ID 값은 AWS_ACCOUNT_ID 환경변수에서 제공된 값입니다.

아래 그림 처럼 Account ID 부분에서 사용됩니다.

image-20241031-062026.png

Q: SAC, RDP 기능을 사용하지 않습니다.CABINET_DATA_DIR 항목을 없애어도 되나요?

A: QueryPie 10.3.0 또는 이후 버전에서는, CABINET_DATA_DIR 항목을 사용하지 않습니다. OVEN 컴포넌트의 설정값으로 대체되었습니다.

Q:Redis 설정이 필수인가요?

A: QueryPie Container 의 서버 소프트웨어는 Redis 를 필수 요소로 사용하고 있습니다.

Redis는 다음과 같은 목적으로 사용됩니다.

  • 연결중인 웹서버의 세션 메타 정보를 캐시하는 용도
  • 서버 애플리케이션 내 백그라운드 작업을 위한 메세지 큐

하지만, Redis 내에 저장된 데이터가 유실되더라도, 크리티컬한 이슈가 발생하지 않습니다. 그 시점에 실행 중이던 특정 작업, 이용자 요청이 실패하게 됩니다. Redis 와 QueryPie Container 를 재시작하게 되면, QueryPie Container 가 정상적으로 작동하게 됩니다.

고급기능을 위한 환경변수

Environment Variables for Advanced Setup - 10.3.x (KO) 페이지를 참조하세요.

Last updated on