データベース · 2 min read · Oct 12, 2025

Debian 12にCockroachDBクラスターをインストールする方法

CockroachDBは、クラウドアプリケーション向けのオープンソースの分散型およびスケーラブルなSQLデータベースです。CockroachDBは、次世代の整合性、複製されたSQLデータベース、およびトランザクショナルデータストアを提供します。

CockroachDBは、データを複数の場所に保存することで、データ配信を迅速にします。また、スケーリングが容易で、高可用性とフォールトトレランスをアプリケーションに提供します。

このガイドでは、Debian 12サーバーにCockroachDBをインストールする方法を示します。その後、複数のDebianサーバーでCockroachDBクラスターを初期化する方法を示します。

前提条件

進む前に、以下の条件を満たしていることを確認してください:

  • お互いにローカルネットワークを介して接続されている2台以上のDebian 12サーバー。
  • 管理者権限を持つ非rootユーザー。
  • 各サーバーにFQDNが設定されていること。

CockroachDBのインストール

CockroachDBは、分散型およびスケーラブルなSQLデータベースシステムです。CockroachDBクラスターを展開する前に、各サーバーにCockroachDBアプリケーションをインストールする必要があります。

これから、各DebianサーバーにCockroachDBをインストールします。

まず、デフォルトのホームディレクトリ/opt/cockroachdbを持つ新しいシステムユーザーcockroachを作成します。

sudo adduser --home /opt/cockroachdb --system --group cockroach  
sudo chown -R cockroach:cockroach /opt/cockroachdb

以下のcurlコマンドを使用して、最新のCockroachDBのバージョンをダウンロードします。最新のCockroachDBのバージョンのリンクを取得するには、CockroachDBのダウンロードページを訪問してください。

curl https://binaries.cockroachdb.com/cockroach-v23.1.14.linux-amd64.tgz --output cockroach-v23.1.14.linux-amd64.tgz

ダウンロードが完了したら、cockroach-v23.1.14.linux-amd64.tgzファイルを抽出し、CockroachDBのバイナリファイルを/usr/bin/ディレクトリにコピーします。

tar -xzf cockroach-v23.1.14.linux-amd64.tgz  
cp -i cockroach-v23.1.14.linux-amd64/cockroach /usr/bin/

最後に、以下のコマンドを使用してCockroachDBのバージョンを確認します。

cockroach --version

以下に示すように、CockroachDB v23.1.14がインストールされており、これは現在の最新バージョンです。

check version

UFWの設定

CockroachDBをインストールした後、サーバーを保護するためにUFWをインストールする必要があります。次に、CockroachDBクラスターで使用されるTCPポート8080と26257を開きます。

以下のコマンドで、DebianサーバーにUFWパッケージをインストールします。

sudo apt install ufw -y

install ufw

次に、OpenSSHプロファイルを追加し、以下のコマンドを実行してUFWを有効にします。yを入力してUFWを開始および有効にします。

sudo ufw allow OpenSSH  
sudo ufw enable

UFWが有効になると、出力に‘Firewall is active and enabled on system startup’が表示されます。

enable ufw

次に、以下のコマンドでUFWにTCPポート8080と26257を追加します。これらのTCPポートはCockroachDBクラスターで使用されます。

sudo ufw allow 8080/tcp  
sudo ufw allow 26257/tcp

最後に、以下のコマンドでUFWのステータスと有効なルールのリストを確認します。UFWのステータスがActiveで、OpenSSH、ポート8080/tcpおよび26257/tcpが有効になっていることが確認できます。

sudo ufw status

setup ufw

証明書の生成

CockroachDBクラスターのための証明書を生成する前に、以下のコマンドを実行して、証明書を保存するための新しいディレクトリcertsとprivateを/opt/cockroachdb内に作成します。

mkdir -p /opt/cockroachdb/{certs,private}

次に、これらの証明書を生成します:CA証明書、ノード証明書、およびクライアント証明書

CAの生成

CA証明書は、クライアントとノードの両方の証明書に署名するために重要です。このセクションでは、comp1サーバーでCA証明書を生成し、scpを介してcomp2サーバーにCA証明書とキーを送信します。したがって、comp2サーバーへのSSHアクセスがあることを確認してください。

以下のコマンドを実行して、comp1サーバーでCA証明書を生成します。

cockroach cert create-ca \  
--certs-dir=/opt/cockroachdb/certs \  
--ca-key=/opt/cockroachdb/private/ca.key

generate ca

CAが生成されたら、ca.keyとca.crtの両方をcomp2サーバーにコピーします。

scp /opt/cockroachdb/private/ca.key [email protected]:/opt/cockroachdb/private/  
scp /opt/cockroachdb/certs/ca.crt [email protected]:/opt/cockroachdb/certs/

copy certs

クライアントの生成

CAを生成した後、次に必要なのはクライアント証明書です。これは、TLSを介してCockroachDBクラスターに安全に接続するために使用されます。

引き続きcomp1サーバーで、以下のコマンドを実行してデフォルトユーザーrootのためのクライアント証明書を作成します。

cockroach cert create-client \  
root \  
--certs-dir=/opt/cockroachdb/certs \  
--ca-key=/opt/cockroachdb/private/ca.key

プロセスが完了すると、クライアント証明書は/opt/cockroachdb/certs/client.root.crtおよび/opt/cockroachdb/certs/client.root.keyに利用可能になります。

generate client certs

ノードの生成

最後に、ノード証明書を生成する必要があります。これは、クラスター内のサーバーの数に依存します。この例では、comp1およびcomp2サーバーのためのノード証明書を生成します。

以下のコマンドをcomp1サーバーで実行して、comp1のためのノード証明書を生成します。IPアドレスとfqdnをサーバーの詳細に変更してください。

cockroach cert create-node \  
comp1.hwdomain.lan \  
192.168.5.21 \  
localhost \  
--certs-dir=/opt/cockroachdb/certs \  
--ca-key=/opt/cockroachdb/private/ca.key

node cert comp1

comp2サーバーに移動し、以下のコマンドを実行してcomp2のためのノード証明書を生成します。comp2サーバーのIPアドレスとfqdnの詳細を変更してください。

cockroach cert create-node \  
comp2.hwdomain.lan \  
192.168.5.22 \  
localhost \  
--certs-dir=/opt/cockroachdb/certs \  
--ca-key=/opt/cockroachdb/private/ca.key

node cert comp2

証明書の権限設定

すべての証明書が生成されたら、以下のコマンドを実行してcockroachユーザーが証明書ファイルにアクセスできるようにします。これは、comp1およびcomp2サーバーの両方で実行する必要があります。

sudo chown -R cockroach:cockroach /opt/cockroachdb/certs  
sudo chown -R cockroach:cockroach /opt/cockroachdb/private

systemdサービスの設定

CockroachDBのための証明書を生成した後、次のステップは、各サーバーのためにCockroachDBサービスファイルを作成することです。次に、CockroachDBサービスを開始および有効にします。

comp1のためのCockroachDBサービス

comp1サーバーで、以下のnanoエディタコマンドを使用して新しいsystemdサービス/etc/systemd/system/cockroachdb.serviceを作成します。

sudo nano /etc/systemd/system/cockroachdb.service

これらのサービス設定を追加します。–advertise-addrパラメータをcomp1のIPアドレスに変更してください。

[Unit]  
Description=Cockroach Database cluster node  
Requires=network.target  
  
[Service]  
Type=notify  
WorkingDirectory=/opt/cockroachdb  
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.21 --join=192.168.5.21,192.168.5.22  
TimeoutStopSec=60  
Restart=always  
RestartSec=10  
StandardOutput=syslog  
StandardError=syslog  
SyslogIdentifier=cockroach  
User=cockroach  
  
[Install]  
WantedBy=default.target

完了したら、ファイルを保存して終了します。

comp2のためのCockroachDBサービス

comp2サーバーに移動し、以下のnanoエディタコマンドを実行して新しいサービスファイル/etc/systemd/system/cockroachdb.serviceを作成します。

sudo nano /etc/systemd/system/cockroachdb.service

以下の設定を挿入し、–advertise-addrパラメータをcomp2のIPアドレスに変更してください。

[Unit]  
Description=Cockroach Database cluster node  
Requires=network.target  
  
[Service]  
Type=notify  
WorkingDirectory=/opt/cockroachdb  
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.22 --join=192.168.5.21,192.168.5.22  
TimeoutStopSec=60  
Restart=always  
RestartSec=10  
StandardOutput=syslog  
StandardError=syslog  
SyslogIdentifier=cockroach  
User=cockroach  
  
[Install]  
WantedBy=default.target

完了したら、ファイルを保存してエディタを終了します。

CockroachDBの開始

CockroachDBサービスファイルが作成されたので、変更を適用し、CockroachDBサービスを開始および有効にできます。

以下のコマンドを実行してsystemdマネージャーをリロードし、CockroachDBの新しいサービスを適用します。

sudo systemctl daemon-reload

次に、以下のコマンドでcomp1およびcomp2サーバーの両方でCockroachDBサービスを開始および有効にします。

sudo systemctl start cockroachdb  
sudo systemctl enable cockroachdb

start enable cockroachdb service

最後に、以下のコマンドを使用してCockroachDBサービスを確認し、サービスが実行中であることを確認します。

sudo systemctl status cockroachdb

これで、両方のDebianサーバーでCockroachDBサービスが実行されていることを確認してください。

cockroachdb service comp1 status

cockroachdb service comp2 status

CockroachDBクラスターの初期化

CockroachDBサービスが各サーバーで実行されているので、comp1サーバーからCockroachDBクラスターを初期化することができます。次に、CockroachDBの管理ユーザーを作成し、CockroachDBのWeb管理ダッシュボードにアクセスします。

comp1サーバーで、以下のコマンドを実行してCockroachDBクラスターを初期化します。プロセスが完了すると、出力に「Cluster successfully initialized」と表示されます。

cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257

さらに、以下のコマンドでCockroachDBのログファイルを介して初期化プロセスを確認することもできます。

grep 'node starting' /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

出力の「CockroachDB node starting..」は、クラスターが初期化されたことを確認します。

initialized cluster

次に、以下のコマンドを実行してCockroachDBクラスターを確認します。lsオプションはクラスター内のサーバーのリストを取得するために使用され、statusコマンドはCockroachDBクラスターのステータスを確認するために使用されます。

cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 ls  
cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 status

以下に、CockroachDBクラスター内のサーバーの数と各サーバーのステータスが表示されます。

クラスターが実行中になったので、以下のコマンドを実行してCockroachDBサーバーにログインします。このコマンドはcomp1サーバーから実行してください。なぜなら、クライアント証明書はcomp1マシンにあるからです。

cockroach sql --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257

接続されると、以下のようなCockroachDBプロンプトが表示されます。

cockroachdb sql shell

以下のクエリを実行して、新しいユーザーbobをパスワードp4ssw0rdで作成します。次に、ユーザーbobに管理者権限を付与します。

CREATE USER bob WITH PASSWORD 'p4ssw0rd';  
GRANT admin TO bob;

Ctrl+dを押してCockroachDBサーバーから退出します。

create admin user

最後に、ローカルマシンのWebブラウザを開き、ポート8080を使用してcomp1のIPアドレスにアクセスします(https://192.168.5.21:8080)。CockroachDBのログインページが表示されます。

ユーザーbobとパスワードp4ssw0rdでログインします。

login page

ログインすると、以下のようなCockroachDB管理ダッシュボードが表示されます。

cockroachdb dashboard

結論

まとめとして、Debian 12サーバーにCockroachDBクラスターのインストールが完了しました。また、CockroachDBの管理ユーザーを作成し、CockroachDBのWeb管理ダッシュボードにアクセスしました。これで、新しいデータベースとユーザーを作成し、CockroachDBのインストールを管理するためにCockroachDBのWeb管理ダッシュボードを利用できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。