CockroachDB · 5 min read · Dec 19, 2025
우분투 서버에 안전한 CockroachDB 클러스터 배포하는 방법

CockroachDB는 CockroachLabs에서 개발한 오픈 소스 및 클라우드 네이티브 SQL 데이터베이스입니다. 이는 트랜잭션 및 키-값 저장소를 기반으로 구축된 분산 SQL 데이터베이스입니다. CockroachDB는 Google Spanner 데이터베이스와 비교되는 확장 가능한 SQL 데이터베이스입니다. PostgreSQL 프로토콜을 기반으로 하며 생산 준비가 완료되었습니다.
이 튜토리얼에서는 우분투 18.04에서 안전한 CockroachDB 클러스터를 설정하는 방법을 보여줍니다. 안전한 클러스터를 설정하고, CockroachDB 관리 대시보드에 액세스하고, CockroachDB에서 새 사용자를 생성하고, CockroachDB에서 데이터베이스를 생성하고 표시하는 방법을 배우게 됩니다.
전제 조건
CockroachDB 클러스터를 실행하기 위해 여러 서버가 필요합니다. 아래와 같이 세 개의 우분투 18.04 서버를 사용할 것입니다.
node1 10.5.5.21
node2 10.5.5.22
node3 10.5.5.23우리가 할 일은?
- Chrony로 NTP 서버 설정
systemctl restart chrony
systemctl enable chrony - CockroachDB 다운로드 및 설치
- 인증서 생성
- CockroachDB 클러스터 초기화
- CockroachDB 클러스터에 노드 추가
- 테스트
1단계 - Chrony로 NTP 서버 설정
먼저, 클러스터의 서버 간 시간을 동기화해야 합니다. 따라서 모든 서버에 NTP 패키지를 설치해야 합니다. 이 가이드에서는 chrony를 사용할 것입니다.
다음 명령을 사용하여 모든 서버에 chrony 패키지를 설치합니다.
sudo apt install chrony -y설치가 완료되면 ‘/etc/chrony/‘ 구성 디렉토리로 이동하여 ‘chrony.conf’ 파일을 편집합니다.
cd /etc/chrony/
vim chrony.conf기본 NTP 풀을 삭제하고 자신의 국가 풀로 교체합니다.
pool 0.id.pool.ntp.org iburst maxsources 4
pool 1.id.pool.ntp.org iburst maxsources 1
pool 2.id.pool.ntp.org iburst maxsources 1
pool 3.id.pool.ntp.org iburst maxsources 2저장하고 닫습니다.
이제 chrony 서비스를 재시작하고 chrony를 시작 서비스에 추가합니다.
systemctl restart chrony
systemctl enable chrony그 결과, 서버 간의 시간이 동일한 NTP 풀 서버에 동기화됩니다.

2단계 - CockroachDB 다운로드 및 설치
이 단계에서는 모든 서버에 CockroachDB를 다운로드하고 설치합니다. 따라서 클러스터 서버 모두에서 모든 명령을 실행합니다.
‘binary’라는 새 디렉토리를 만들고 그 안으로 들어갑니다.
mkdir -p binary; cd binaryLinux용 압축된 cockroachdb 바이너리 파일을 다운로드하고 추출합니다.
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz이제 ‘cockroach’ 바이너리 파일을 ‘/etc/local/bin’ 디렉토리로 복사합니다.
cp cockroach-*/cockroach /usr/local/bin/그 후, ‘cockroach’ 명령을 실행하고 도움말, 버전 확인 등을 위한 기본 명령을 탐색할 수 있습니다.
cockroach versionCockroachDB가 모든 서버에 설치되었습니다.

3단계 - 인증서 생성
이제 CockroachDB 클러스터를 보호하기 위해 몇 가지 인증서를 생성할 것입니다. OpenSSL 또는 cockroach 명령줄을 사용하여 인증서 파일을 생성할 수 있습니다.
CA 인증서와 키를 생성하고, 사용자 root에 대한 인증서와 클러스터의 각 노드에 대한 인증서를 생성합니다.
인증서 디렉토리 ‘~/.cockroach-certs’를 만들고 이에 대한 환경 변수를 설정합니다.
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'CA 생성 및 모든 노드에 복사
‘node1’ 서버에서 아래의 cockroach 명령을 사용하여 인증 기관을 생성합니다.
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key이제 ‘~/.cockroach-certs’ 디렉토리에 ‘ca.key’와 ‘ca.crt’가 생성됩니다.

그 후, 아래와 같이 scp 명령을 사용하여 모든 서버에 ca 인증서와 키를 복사합니다.
‘node2’ 서버에 복사합니다.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/‘node3’ 서버에 복사합니다.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/이제 CA 인증서와 키가 모든 호스트 서버에 업로드되었는지 확인합니다.
클라이언트 인증서 생성
인증 기관을 생성한 후, 클라이언트 인증서를 생성해야 합니다. 클라이언트 인증서는 내장 SQL 셸과 클러스터 간의 통신을 보호하는 데 사용됩니다.
아래의 cockroach 명령을 사용하여 모든 서버에서 클라이언트 인증서를 생성합니다.
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key이제 사용자 root에 대한 클라이언트 인증서 ‘client.root.crt’와 ‘client.root.key’를 얻습니다.
서버 인증서 생성
서버 인증서는 CockroachDB 클러스터의 서버 간 통신을 보호하는 데 사용됩니다. 안전한 클러스터에 참여하려면 각 서버에 대한 서버 인증서를 생성해야 합니다.
‘node1’에서 아래의 명령을 사용하여 서버 인증서를 생성합니다.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyIP 주소를 자신의 것으로 변경합니다.

‘node2’에서 아래의 명령을 사용하여 서버 인증서를 생성합니다.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyIP 주소를 자신의 것으로 변경합니다.

‘node3’에서 아래의 명령을 사용하여 서버 인증서를 생성합니다.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyIP 주소를 자신의 것으로 변경합니다.
이제 ‘~/.cockroach-certs’ 디렉토리에 서버 인증서 ‘node.crt’와 ‘node.key’가 생성됩니다.
4단계 - 안전한 CockroachDB 클러스터 시작
몇 가지 SSL 인증서를 생성한 후, ‘node1’ 서버에서 안전한 CockroachDB 클러스터를 초기화합니다.
‘node1’ 서버에서 다음 명령을 실행합니다.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21오류가 없는지 확인합니다.
그 후, 아래의 cockroach 명령을 실행하여 클러스터 노드 상태를 확인합니다.
cockroach node status --host=10.5.5.21IP 주소 10.5.5.21의 node1이 CockroachDB v2.1.6으로 실행 중임을 확인할 수 있습니다.
5단계 - 클러스터에 노드 추가
다음으로, ‘node2’와 ‘node3’을 CockroachDB 안전 클러스터에 추가합니다.
CA 및 서버 인증서가 ~/.cockroach-certs 디렉토리에 있는지 확인합니다.
ls -lah ~/.cockroach-certs/이제 다음 명령을 실행하여 IP 주소 10.5.5.22의 ‘node2’를 CockroachDB 클러스터에 추가합니다.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \
--join=10.5.5.21:26257완료되면 ‘node3’로 이동하여 다음 명령을 실행합니다.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \
--join=10.5.5.21:26257IP 주소를 자신의 것으로 변경합니다.
이제 ‘node2’와 ‘node3’이 안전한 CockroachDB 클러스터에 추가되었습니다. 아래의 명령을 사용하여 ‘node1’ 서버에서 확인합니다.
cockroach node status --host=10.5.5.21세 개의 서로 다른 서버가 Cockroach v2.1.6으로 실행 중임을 확인할 수 있습니다.

6단계 - 테스트
마지막 단계에서는 관리 대시보드에 액세스하고 서버 간 데이터베이스 복제를 테스트하여 CockroachDB 안전 클러스터 설치를 테스트합니다.
CockroachDB 대시보드 테스트
CockroachDB는 클러스터를 모니터링하기 위한 아름다운 대시보드 UI를 제공합니다. 웹 브라우저를 열고 서버 IP 주소 뒤에 포트 8080을 입력합니다.
그러면 아래와 같은 CockroachDB 로그인 페이지가 표시됩니다.

대시보드에 로그인하려면 CockroachDB 데이터베이스에 사용자를 생성해야 합니다.
‘node1’ 터미널로 돌아가 아래의 명령을 사용하여 cockroachdb SQL 셸에 로그인합니다.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21이제 아래의 쿼리를 사용하여 ‘hakase’라는 새 사용자와 비밀번호 ‘hakase-labs123@#’을 생성합니다.
CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';‘[0m’를 입력하여 CockroachDB SQL 셸에서 나갑니다.

이제 웹 브라우저로 돌아가 로그인 페이지에서 사용자 ‘hakase’와 비밀번호 ‘hakase-labs123@#’을 입력하고 로그인 버튼을 클릭합니다.

그러면 아래와 같은 CockroachDB 관리 대시보드가 표시됩니다.

데이터베이스 복제 테스트
이제 ‘node1’에서 데이터베이스를 생성하고 ‘node2’ 또는 ‘node3’에서 데이터베이스를 확인하여 CockroachDB 클러스터 간의 데이터베이스 복제를 테스트합니다.
‘node1’에서 아래의 명령을 사용하여 CockroachDB SQL 셸에 액세스합니다.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21아래의 쿼리를 사용하여 두 개의 데이터베이스 ‘hakasedb’와 ‘hakasedb2’를 생성합니다.
create database hakasedb;
create database hakasedb2;이제 데이터베이스 목록을 출력하고 방금 생성한 두 개의 데이터베이스가 있는지 확인합니다.
show databases;
다음으로, ‘node2’ 서버에 로그인하고 아래의 명령을 사용하여 CockroachDB SQL 셸에 액세스합니다.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22데이터베이스 목록을 확인합니다.
show databases;그러면 ‘hakasedb’와 ‘hakasedb2’가 ‘node2’ 서버에 복제되었음을 확인할 수 있습니다.

마지막으로, 우분투 18.04를 사용하여 안전한 CockroachDB 클러스터의 설치 및 구성이 성공적으로 완료되었습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.