컨테이너 환경변수
QueryPie ACP 의 Server Container 를 실행하는데 필요한 환경변수에 대한 안내를 제공합니다. 이 문서는 QueryPie 10.3.0 또는 이후 버전에 적용됩니다.
기본 환경변수
| Environment Variable Name | Default Value | Description |
|---|---|---|
| VERSION | QueryPie 설치 버전입니다.예시) 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_HOST | Meta 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_PORT | 3306 | Meta DB, Log DB, Snapshot DB 로 사용하는 MySQL 의 TCP Port |
| DB_CATALOG | querypie | Meta DB 가 사용할 catalog |
| LOG_DB_CATALOG | querypie_log | Log DB 가 사용할 catalog |
| ENG_DB_CATALOG | querypie_snapshot | Snapshot 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_SIZE | 20 | QueryPie 가 Meta DB 연결에 사용하는 최대 connection 수 (20 사용 권장) |
| DB_DRIVER_CLASS | org.mariadb.jdbc.Driver | Meta DB 가 AWS Aurora 인 경우, Aurora Instance 부분 장애시 Failover 를 지원합니다.AWS Aurora 를 적용하여 Failover 기능을 사용하려는 경우, AWS에서 제공하는 전용 드라이버 software.amazon.jdbc.Driver 를 지정합니다. |
| REDIS_NODES | QueryPie 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_FILE | skip_command_config.json | 3rd 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 주소입니다.
| |
AWS_ACCOUNT_ID | 10.3.0 또는 이후 버전에서는, 이 값을 입력하지 않습니다. 자동으로 이 값이 선택됩니다. QueryPie Admin > CloudProvider > CrossAccountRole 설정 시 사용되는 값입니다. | |
REDIS_HOST | 10.2.1 또는 이후 버전에서, 이 값이 REDIS_NODES 로 대체되었습니다. Redis Hostname or IP Address - QueryPie Container 가 캐시 데이터 저장을 위해 사용합니다.
PoC 용도로 Single Machine 에 QueryPie Container, Redis Container 등을 모두 설치하는 경우, | |
REDIS_PORT |
| 10.2.1 또는 이후 버전에서, 이 값이 REDIS_NODES 로 대체되었습니다. Redis TCP Port |
REDIS_CONNECTION_MODE |
| 10.3.0 또는 이후 버전에서는, 이 값을 입력하지 않습니다. 자동으로 이 값이 선택됩니다.
|
CABINET_DATA_DIR | 10.2.8 또는 이후 버전에서는, 이 값을 입력하지 않습니다. OVEN 컴포넌트 설정으로 대체됩니다. SAC > RDP(WinSAC) 세션 레코딩에 사용하는 이미지를 EC2 인스턴스 서버 파일시스템에 저장하는 위치입니다.
( |
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 부분에서 사용됩니다.

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) 페이지를 참조하세요.