
CockroachDB は、クラウドネイティブアプリケーションと開発向けに特別に開発された、オープンソースの分散型スケーラブル SQL データベースです。Cockroach は、強力な一貫性を備えたデータベースレプリケーション、SQL クエリ言語のサポート、自動スケーリングと修復、高可用性といった機能を特徴としています。
参照:知っておくべきオープンソースと Linux の用語 40 選 (TechRepublic Premium)
CockroachDB は、分散専用のトランザクション処理、低レイテンシまたは規制コンプライアンスのための地理的パーティショニング、メタデータ、記録システム、クラウドへのレガシー ブリッジとして、また信頼性、可用性、拡張性、正確性を備えたデータを必要とするあらゆるアプリケーションに最適なデータベース システムです。
Ubuntu Server 20.04にCockroachDBをインストールするだけでなく、クラスターとしてデプロイする方法についても解説します。2台のサーバーのみでデモを行いますが、必要に応じてノード数を増やすことができます。
必要なもの
2ノードのCockroachDBクラスタをデプロイするには、Ubuntu Serverのインスタンス2つとsudo権限を持つユーザーが必要です。これで準備は完了です。さあ、これを壁に投げつけて、うまくいくかどうか試してみましょう。
CockroachDB のインストール方法
両方のサーバーにCockroachDBをインストールする必要があります。ここでは、IPアドレス192.168.1.50のノードとIPアドレス192.168.1.51のノードを使ってデモを行います。
最初のサーバーにログインします。次のコマンドでバイナリファイルをダウンロードし、/usr/local/binにコピーします。
curl https://binaries.cockroachdb.com/cockroach-v21.2.8.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-v21.2.8.linux-amd64/cockroach /usr/local/bin/
ファイルをダウンロードしたら、次のコマンドで新しいディレクトリを作成します。
sudo mkdir -p /usr/local/lib/cockroach
ディレクトリを作成したら、次の 2 つのコマンドを使用して 2 つの libgeos ファイルをディレクトリにコピーする必要があります。
sudo cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos.so /usr/local/lib/cockroach/
sudo cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos_c.so /usr/local/lib/cockroach/
コマンドcockroach versionを実行すると、次のような行が表示されます。
Build Tag: v21.2.8
CockroachDB は最初のサーバーにインストールされています。次に進む前に、2 番目のサーバーでも同じ操作を実行してください。
CockroachDB でファイアウォールを設定する方法
次のステップは、必要なCockroachDBポートに対してファイアウォールを開くことです。そのためには、以下のコマンドを実行してポートを追加します。
sudo ufw allow 8080/tcp
sudo ufw allow 26257/tcp
次に、次のコマンドでファイアウォールをリロードします。
sudo ufw reload
クラスターの作成方法
いよいよ楽しい作業です。まずは個々のノードを設定し、次にクラスターを初期化します。最初のサーバー(ここではserver1とします)で、以下のコマンドを実行します(IPアドレスは各ノードに割り当てたIPアドレスに合わせて変更してください)。
cockroach start --insecure --store=server1 --listen-addr=192.168.1.50:26257 --http-addr=192.168.1.50:8080 --join=192.168.1.50:26257,192.168.1.51:26258 --background
server2 でも同じことを実行しますが、コマンドは次のようになります (ここでも、スキームに合わせて IP アドレスを変更します)。
cockroach start --insecure --store=server2 --listen-addr=192.168.1.51:26257 --http-addr=192.168.1.51:8080 --join=192.168.1.50:26257,192.168.1.51:26258 --background
両方のサーバーが設定されたら、サーバー 1 に戻り、次のコマンドでクラスターを初期化します (IP アドレスをサーバー 1 の IP アドレスに変更します)。
cockroach init --insecure --host=192.168.1.50:26257
これで、CockroachDB クラスターが起動して実行されるはずです。
ウェブインターフェースにアクセスする方法
ウェブブラウザを開き、http://SERVER:8080(SERVERはserver1のIPアドレス)にアクセスします。すると、CockroachDBのウェブベース管理コンソール(図A)にすぐにアクセスできるようになります。
図A

注意すべき点は、Webコンソールからはデータベースの作成や編集ができないことです。このツールは、クラスターの健全性を監視し、パフォーマンスを最適化するためのものです。データベースの作成と操作には、CockroachDBコマンドラインコンソールを使用します。これは、以下のコマンドでアクセスできます(IPアドレスはserver1のIPアドレスに変更してください)。
cockroach sql --insecure --host=192.168.1.51:26257
おめでとうございます。これで準備は完了です。ユーザーフレンドリーなWebベースのUIから、Cockroachデータベースの構築と管理、そしてクラスターの追跡を開始できます。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube でTechRepublic の How To Make Tech Work を購読してください。