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

CockroachDBは、CockroachLabsによって開発されたオープンソースでクラウドネイティブなSQLデータベースです。これは、トランザクションおよびキー・バリュー・ストアに基づいた分散SQLデータベースです。CockroachDBはスケーラブルなSQLデータベースであり、Google Spannerデータベースと比較されています。これはPostgreSQLプロトコルワイヤーに基づいており、商用利用に適しています。
このチュートリアルでは、Ubuntu 18.04上にセキュアなCockroachDBクラスターを設定する方法を示します。セキュアなクラスターの設定、CockroachDB管理ダッシュボードへのアクセス、新しいユーザーの作成、CockroachDB上のデータベースの作成と表示を学びます。
前提条件
CockroachDBクラスターを実行するには、複数のサーバーが必要です。以下の詳細なホスト名とIPアドレスを持つ3つのUbuntu 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アドレスを自分のものに変更します。
これで、’node.crt’と’node.key’のサーバー証明書が’~/.cockroach-certs’ディレクトリに生成されます。
ステップ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.21ノード1がIPアドレス10.5.5.21で稼働中で、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そして、3つの異なるサーバーが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@#';‘ を入力して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以下のクエリを使用して、2つのデータベース’hakasedb’と’hakasedb2’を作成します。
create database hakasedb;
create database hakasedb2;データベースリストを印刷し、先ほど作成した2つのデータベースが表示されることを確認します。
show databases;
次に、’node2’サーバーにログインし、以下のコマンドを使用してCockroachDB SQLシェルにアクセスします。
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22データベースリストを確認します。
show databases;そして、’hakasedb’と’hakasedb2’が’node2’サーバーにレプリケートされていることがわかります。

最後に、Ubuntu 18.04を使用したセキュアなCockroachDBクラスターのインストールと構成が成功裏に完了しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。