データベース · 2 min read · Dec 19, 2025
Ubuntu 20.04サーバーにセキュアCockroachDBクラスターをデプロイする方法

CockroachDBは、CockroachLabsによって開発されたオープンソースでクラウドネイティブなSQLデータベースです。これは、トランザクションおよびキー・バリュー・ストアに基づいた分散SQLデータベースです。
CockroachDBはスケーラブルなSQLデータベースで、Google Spannerデータベースと比較されています。これはPostgreSQLプロトコルワイヤーに基づいており、商用利用に適しています。
このチュートリアルでは、Ubuntu 20.04上にセキュアCockroachDBクラスターをセットアップする方法を示します。セキュアクラスターのセットアップ、CockroachDB管理ダッシュボードへのアクセス、新しいユーザーの作成、CockroachDB上のデータベースの作成と表示を学びます。
前提条件
このガイドでは、3つのUbuntuサーバー20.04でセキュアCockroachDBクラスターをセットアップします。
node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5
何をしますか?
- ChronyでNTPをセットアップ
- Linux用のCockroachDBバイナリをダウンロード
- CockroachDBクラスター用のSSL証明書を生成
- セキュアCockroachDBクラスターを起動
- CockroachDB用の管理ユーザーを作成
- CockroachDBダッシュボードにアクセス
- CockroachDBクラスターでのデータベースレプリケーションをテスト
ステップ1 - ChronyでNTPサーバーをセットアップ
まず、chronyを使用してすべてのサーバーの時間をNTPサーバーと同期します。このステップのすべてのコマンドをすべてのサーバーで実行してください。
次に、システム上のすべての利用可能なリポジトリを更新し、以下のaptコマンドを使用してchronyパッケージをインストールします。
sudo apt update
sudo apt install chrony -yすべてのインストールが完了したら、’/etc/chrony’ディレクトリに移動し、vimエディタを使用して設定ファイル’chrony.conf’を編集します。
cd /etc/chrony/
vim chrony.confデフォルトのプールを最寄りのNTPサーバーに変更します。
pool 0.sg.pool.ntp.org iburst maxsources 4
pool 1.sg.pool.ntp.org iburst maxsources 1
pool 2.sg.pool.ntp.org iburst maxsources 1
pool 3.sg.pool.ntp.org iburst maxsources 2保存して閉じます。
次に、chronyサービスを再起動し、システム起動時に追加します。
systemctl restart chrony
systemctl enable chronychronyサービスが稼働中であることを確認するために、以下のコマンドを使用します。
systemctl status chrony以下は得られる結果です。

その結果、Chronyのインストールと設定が完了しました。すべてのサーバーの時間が同じNTPサーバーと同期されています。
ステップ2 - CockroachDBバイナリをダウンロード
このステップでは、3つのサーバーすべてにCockroachDBをダウンロードしてインストールします。
新しいディレクトリ’binary’を作成し、その中に移動します。
mkdir -p binary; cd binaryその後、CockroachDBの最新バージョンのバイナリファイルをダウンロードして抽出します。
wget -q https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xf cockroach-latest.linux-amd64.tgz次に、バイナリファイル’cockroach’を’/usr/local/bin’ディレクトリに移動します。
cp cockroach-*/cockroach /usr/local/bin/その結果、システム上で’cockroach’コマンドを実行できるようになります。
以下のコマンドを使用して’cockroach’バイナリファイルとCockroachDBのバージョンを確認します。
which cockroach
cockroach version以下は得られる結果です。

その結果、LinuxサーバーにCockroachDB v20.1.5をダウンロードしてインストールし、CockroachDBクラスターを作成できるようになりました。
ステップ3 - CockroachDBクラスター用のSSL証明書を作成
新しいCockroachDBクラスターを作成する前に、クラスターを保護するためのSSL証明書を作成および生成します。SSL証明書を生成するには、OpenSSLを使用するか、’cockroach’コマンドラインを使用できます。
- CockroachDB証明書ディレクトリを作成
まず、CockroachDBクラスター用のすべてのSSL証明書を保存するための新しいディレクトリを作成する必要があります。
ルートユーザーとして、’~/.cockroach-certs’という新しいディレクトリを作成し、以下のコマンドを使用してシステム環境変数’COCKROACH_CERTS_DIR’を追加します。
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'次に、’COCKROACH_CERTS_DIR’環境変数を永続的にするために、vimエディタを使用して~/.bashrc設定を編集します。
vim ~/.bashrc行の最後に以下の設定を貼り付けます。
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'保存して閉じます。
次に、~/.bashrc設定を再読み込みし、’COCKROACH_CERTS_DIR’環境変数を確認します。
source ~/.bashrc
echo $COCKROACH_CERTS_DIRそして、’COCKROACH_CERTS_DIR’変数が’${HOME}/.cockroach-certs/‘の値を持つことがわかります。

- CA証明書とキーを作成
SSLパスディレクトリを作成した後、’node01’サーバーで’cockroach’コマンドラインを使用してCA証明書とキーを生成します。
以下の’cockroach’コマンドを使用して’$COCKROACH_CERT_DIR’にCA証明書とキーを生成します。
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyその後、生成された’ca.crt’と’ca.key’をscpコマンドを使用して他のサーバー’node02’と’node03’にコピーします。
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/その結果、CA証明書とキーが作成され、すべてのサーバーにアップロードされました。

- node01でクライアント証明書を作成
CA証明書とキーを作成した後、組み込みSQLシェルとクラスター間の通信を保護するために使用されるクライアント証明書を生成します。
以下のcockroachコマンドを使用してクライアント証明書を生成します。
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyこれで、’$COCKROACH_CERTS_DIR’ディレクトリに新しい証明書’client.root.crt’と’client.root.key’が生成されます。

- すべてのサーバーでサーバー証明書を作成
サーバー証明書は、CockroachDBクラスター内のサーバー間の通信を保護するために使用されます。セキュアクラスターに参加するには、各サーバーのサーバー証明書を生成する必要があります。
最初の’node01’で、以下のコマンドを使用してサーバー証明書を生成し、IPアドレスを自分のものに変更してください。
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.3 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key次に、以下のコマンドを使用して’node02’のサーバー証明書を生成します。
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.4 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyその後、’node03’サーバーのサーバー証明書を生成します。
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.5 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key今、’~/.cockroach-certs’ディレクトリを確認すると、すべてのサーバーに新しい証明書’node.crt’と’node.key’が生成されていることがわかります。
ls -lah ${HOME}/.cockroach-certs/以下は、マスターサーバー’node01’にあるすべての利用可能な証明書です。

CA証明書、クライアント証明書、サーバー証明書の3つの異なる証明書が表示されます。
他のノード’node02’と’node03’では、CA証明書とサーバー証明書の2つの証明書が表示されます。

その結果、CockroachDBセキュアクラスターを開始して作成する準備が整いました。
ステップ4 - セキュアクラスターCockRoachDBを開始
セキュアCockroachDBクラスターを開始するには、各サーバーでCockroachDBプロセスを開始する必要があります。
CockroachDBプロセスを開始する前に、各サーバーの詳細IPアドレスを自分のものに変更し、’$COCKROACH_CERTS_DIR’環境変数が読み込まれていることを確認してください。
最初に、以下のコマンドを使用して’node01’でCockroachDBプロセスを開始します。
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.3 --listen-addr=172.16.0.3 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
次に、’node02’サーバーに移動し、CockroachDBプロセスを開始します。
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.4 --listen-addr=172.16.0.4 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
その後、’node03’サーバーでCockroachDBプロセスを開始します。
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--store=/var/lib/cockroachdb \
--advertise-host=172.16.0.5 --listen-addr=172.16.0.5 \
--join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257
これで、すべてのサーバーでCockroachDBプロセスが開始されました。ポート’26257’で実行されており、CockroachDBデータは’/var/lib/cockroachdb’ディレクトリに保存されています。
以下のコマンドを使用してCockroachDBポートを確認できます。
ss -plntuCockroachDBプロセスがデータベース接続用のTCPポート’26257’で実行されており、デフォルトのCockroachDB管理ダッシュボード用のポート’8080’で実行されていることがわかります。
次に、マスターサーバー’node01’に戻り、以下のコマンドを使用してCockroachDBセキュアクラスターを初期化します。
cockroach init --host=172.16.0.3:26257次のメッセージが表示されます。
Cluster successfully initializedさらに、CockroachDBログファイルを確認してクラスター初期化の詳細を確認できます。
grep 'node starting' /var/lib/cockroachdb/logs/cockroach.log -A 11以下は得られる結果です。

その結果、CockroachDBセキュアクラスターの初期化が正常に完了しました。
ステップ5 - CockroachDB用の管理ユーザーを作成
CockroachDBクラスターを正常に初期化した後、CockroachDB管理ダッシュボードにログインする新しいユーザーを作成する必要があります。
マスターサーバー’node01’から、以下のコマンドを使用してCockroachDB SQLシェルにログインします。
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=172.16.0.3次に、以下のクエリを使用して’yume’という名前の新しいユーザーを作成し、パスワード’yume321’を設定します。
CREATE USER yume WITH PASSWORD 'yume321';その後、ユーザー’yume’にログインを許可し、’admin’ロールに追加します。
ALTER USER yume LOGIN;
GRANT admin TO yume;次に、以下のクエリを使用してCockroachDB上のすべての利用可能なユーザーを確認します。
SHOW USERS;以下は得られる結果です。

新しいユーザー’yume’がリストに表示されていることがわかります。これは’admin’ロールのメンバーです。
その結果、CockroachDBデータベース用の新しいユーザーを作成しました。
ステップ6 - CockroachDBダッシュボードにアクセス
デフォルトでは、CockroachDBはデフォルトのTCPポート’8080’で動作するWebベースの管理ダッシュボードを提供します。
Webブラウザを開き、アドレスバーにサーバーのIPアドレスとポート’8080’を入力します。
次に、以下のようなCockroachDBログインページが表示されます。

ユーザー’ yume ‘とパスワード’ yume321 ‘を入力し、’ LOG IN ‘ボタンをクリックします。
次に、以下のようなCockroachDBダッシュボードが表示されます。

これで、3つのライブノードを持つCockroachDBクラスターが表示されます。
その結果、新しいユーザーでCockroachDB管理ダッシュボードに正常にログインしました。
ステップ7 - データベースレプリケーションのテスト
このステップでは、クラスター内の各ノード間でデータベースレプリケーションをテストします。
‘node01’サーバーでユーザー’yume’を使用して新しいデータベースを作成し、他のノード’node02’と’node03’からデータベースを確認します。
- node01に接続してデータベースを作成
‘node01’サーバーで、以下のコマンドを使用してユーザー’yume’としてCockroachDB SQLシェルにログインします。
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.3CockroachDB SQLシェルにログインしたら、以下のクエリを使用して新しいデータベースを作成します。
CREATE DATABASE yumedb;
CREATE DATABASE yumedb2;次に、CockroachDB上のすべての利用可能なデータベースを確認します。
SHOW DATABASES;そして、データベースのリストに’yumedb’と’yumedb2’が表示されます。

- node02とnode03でデータベースレプリケーションを確認
次に、’node02’サーバーに移動し、以下のコマンドを使用してユーザー’yume’としてCockroachDB SQLシェルにログインします。
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.4ログインしたら、以下のクエリを使用してすべての利用可能なデータベースを確認します。
SHOW DATABASES;そして、データベースのリストに’yumedb’と’yumedb2’が表示されます。

‘node03’サーバーでも同様の操作を行い、同じ結果が得られます。
以下は’node03’サーバーの結果です。

その結果、CockroachDBクラスター内のノード間でのデータベースレプリケーションが機能しています。
さらに、以下にCockroachDB管理ダッシュボードからすべてのデータベースを確認できます。

最後に、Ubuntu 20.04上でのセキュアCockroachDBクラスターのインストールと設定が正常に完了しました。
参考
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。