分散データベース YugabyteDB は、運用・管理の自動化機能やエンタープライズ向けのサポートが追加された有償版「YugabyteDB Aeon」以外にも、自動化機能やサポートがない代わりに、無償で利用できるオープンソースソフトウェア (OSS) 版も提供されています。
前回の記事では、YugabyteDB OSS版の使い方について紹介しました。
今回は有償版 YugabyteDB Aeon Self-Managed (旧 YugabyteDB Anywhere) の使い方について紹介します。
YugabyteDB Aeon Self-Managed (以下、YugabyteDB Anywhere) のデプロイおよび管理は、Web UI から行うか、以下の自動化ツールを利用して行います。本記事では、Web UIからの操作方法について紹介します。
YugabyteDB Anywhere の構成
YugabyteDB Anywhere は YugabyteDB データベースクラスタのデプロイと管理を行うコントロールプレーン (以下、YBA) と Universe と呼ばれるデータベースノードで構成されています。
構成図は次の通りです。
デプロイ環境およびバージョン情報
YugabyteDB Anywhere は、その名前の通り、パブリッククラウド、Kubernetes、物理サーバ、仮想環境、プライベートクラウドなど、さまざまなプラットフォームに対応しています。
本記事では、同一リージョン内の3つの AZ に配置された EC2 インスタンスに YugabyteDB Anywhere をデプロイする方法を紹介します。
クラスタ構成は次の通りです。
事前準備
- YugabyteDB Anywhere ライセンスの準備
- サーバの準備
YBA をインストールするサーバを準備します。YBA サーバのハードウェアやソフトウェア要件、対応OSについてはこちらを参照してください。
オンプレミスで利用する場合は、データベースノード用のサーバを事前に準備する必要がありますが、本記事ではクラウド環境を利用するため、データベースノード用のサーバは自動的に作成され、プロビジョニングされるため、事前の準備は不要です。 - ネットワークの設定
クラウド環境を利用する場合、使用する VPC やサブネット、セキュリティグループを事前に設定しておきます。YBA およびデータベースノードの特定ポート (構成図参照) へのアクセスを許可しておく必要があります。
YBA のインストール
以下のコマンドを実行し、YBA をインストールします。
$ wget https://downloads.yugabyte.com/releases/2024.1.3.0/yba_installer_full-2024.1.3.0-b105-linux-x86_64.tar.gz $ tar -xf yba_installer_full-2024.1.3.0-b105-linux-x86_64.tar.gz $ cd yba_installer_full-2024.1.3.0-b105/ $ sudo ./yba-ctl preflight $ sudo ./yba-ctl install -l /path/to/license
インストールが完了すると、ブラウザから YBA の管理画面 https://<yugabytedbanywhere-host-ip>/register にアクセスし、Admin ユーザを作成し、ログインします。
ログインに成功すると、以下のダッシュボードが表示されます。
クラウドプロバイダーの設定
次に、クラウドプロバイダーの情報を登録します。
今回は AWS にデータベースクラスタを作成するため、「Integrations」 >「Create AWS Config」を選択します。
表示された画面で、アクセスキーとシークレットアクセスキーを入力します。
続いて、データベースノードがデプロイされるリージョンや AZ などの情報を追加します。
「Add Linux Version」を選択して、データベースノードのCPUアーキテクチャやAMIなどの情報を入力します。
Universe の作成
YugabyteDB Anywhere では YugabyteDB クラスタ全体を管理する単位を Universe と呼びます。
ここでは、Universe を作成する手順について説明します。
今回は以下の構成で Universe を作成します。
ノード#1 | ノード#2 | ノード#3 | |
---|---|---|---|
AZ | ap-northeast-1a | ap-northeast-1c | ap-northeast-1d |
リージョン | ap-northeast-1 | ||
ami | ami-04d3ba818c434b384 (Red Hat Enterprise Linux version 9 (HVM)) |
||
EC2タイプ | m6i.2xlarge | ||
ディスク容量 | 250GB | ||
データベースバージョン | 2.23.0.0-b710 |
サイドバーから「Dashboard」または「Universes」を選択し、「Create Universe」をクリックします。必要な情報を入力し、作成ボタンをクリックします。
進捗は画面上で確認できます。
完了すると、以下のような画面が表示されます。
これで、Universe の作成が完了です。
Universeとデータベースノードの管理
ここでは、Universe とデータベースノードの管理方法について紹介します。
Universe のアップグレード、スケールアウト/スケールイン、構成変更などの管理は、作成済みの Universe を選択し、「Actions」>「Edit Universe」から行います。
ここでは、3ノードから6ノードへのスケールアウト方法を説明します。
「Actions」>「Edit Universe」を選択すると、Universe の設定画面が表示されます。「Total Nodes」を 3 から 6 に変更し、「Save」ボタンをクリックすると、ノードが追加されます。
各データベースノードの管理(例えば、ノードの再起動・停止、ログのダウンロード、スロークエリやライブクエリの表示など)は、Universe のノードタブ内にある各ノードの「Actions」ボタンから行えます。
バックアップ
バックアップの設定は、サイドバーの「backups」を選択し、「Backups」、「Scheduled Backup Policies」、「Point-in-time Recovery」タブから行います。
- Backups (オンデマンドバックアップ)/Scheduled Backup Policies (定期バックアップ)
オンデマンドバックアップの実行や定期バックアップの設定が可能です。バックアップデータは、事前に設定したストレージ(例えば、Amazon S3)に保存されます。
- Point-in-time Recovery (PITR)
特定のデータベースで PITR を有効にすると、1 日に 1 回データのスナップショットが取得され、各スナップショットには継続的な変更履歴が保持されます。そのスナップショットを使ってスナップショット内の任意の時点にリカバリが可能です。デフォルトではスナップショットは 7 日間保持され、過去 7 日間の任意の時点にリカバリできます。スナップショットの保持期間は設定で変更可能ですが、保持期間を延長するとディスク容量の消費が増加するため、注意が必要です。
モニタリング
OSS版ではメトリクスの収集や可視化のために Prometheus や Grafana を別途構築する必要がありますが、YugabyteDB Anywhere では外部ツールを導入せずに、標準でモニタリング機能を利用できます。
「Universes」 > 「Metrics」タブから、リソース監視やパフォーマンス監視のグラフを確認できます。
トラブルシューティングや性能問題の解決に役立つ機能
PostgreSQL では、トラブルシューティングの際に、pg_stat_activity ビューを使用して現在実行中の処理や開始時刻を確認したり、遅いクエリをログに出力する方法がありますが、YugabyteDB Anywhere では Web UI からこれらの情報を簡単に確認できます。
「Live Queries」タブでは、実行中のクエリや経過時間、クライアント情報などを確認できます。
「Slow Queries」タブでは、スロークエリの確認が可能です。また、特定のクエリで絞り込んで表示することもできます。
YugabyteDB Anywhere のメリット
ここまで、YugabyteDB Anywhere の使い方について紹介しました。
最後に、YugabyteDB OSS版と比較した YugabyteDB Anywhere のメリットをまとめます。
YugabyteDB OSS版 | YugabyteDB Anywhere | |
---|---|---|
運用方法 | コマンドラインから | Web UIから |
セキュリティ面 | あらかじめ証明書を作成する | 証明書の自動生成 無停止証明書更新 |
モニタリング | 外部ツール導入 | 標準機能 |
障害対応 | データベースにアクセスしてログの確認やクエリの実行 | Web UIからライブクエリ・スロークエリを確認、ログ収集 |
24/365エンタープライズサポート | なし | あり |
まず、運用方法に関して、OSS版ではコマンドライン操作が必要ですが、YugabyteDB Anywhere では Web UIを通じてデプロイや運用管理ができるため、運用管理の手間を大幅に削減できます。
次にセキュリティ面では、OSS版が事前に証明書を作成する必要があるのに対し、YugabyteDB Anywhere では証明書の自動生成や無停止での証明書更新がサポートされており、セキュリティ強化が容易です。
モニタリングについても、OSS版では Prometheus や Grafana などの外部ツールの導入が必要ですが、YugabyteDB Anywhere には標準でモニタリングとアラート通知機能が搭載されています。
障害対応においては、OSS版ではデータベースノードにアクセスしてログを確認し、クエリを実行する必要があり、専門知識が要求され、調査に時間がかかることがあります。しかし、YugabyteDB Anywhere では Web UI を介してパフォーマンスの確認やライブクエリ、スロークエリのモニタリング、ログのダウンロードが行えるため、対応にかかる手間や時間が大幅に削減されます。
さらに、OSS版では 24/365 のエンタープライズサポートが提供されていないのに対し、YugabyteDB Anywhere ではこのサポートが含まれているため、安心して運用を続けられる点も大きなメリットです。
おわりに
前回の記事(YugabyteDB OSS版の使い方)に続き、今回は有償版製品である YugabyteDB Anywhere の使い方やメリットについて紹介しました。
YugabyteDB Anywhere は、運用・管理の自動化やトラブルシューティングに役立つ機能が追加されており、エンタープライズ向けの 24/365 サポートも提供されています。そのため、本番環境での利用においても安心して運用を続けられることから、YugabyteDB Anywhere の利用を強く推奨いたします。
これらの記事が、YugabyteDB の製品を検討される際にお役に立てれば幸いです。