テスト環境デプロイツール「anydbver」を使ってみた

はじめに

私はMySQLやPercona Serverの検証環境を構築する際に、よくdbdeployerを利用します。これまでのブログ記事(,,)でも度々登場しているように、とても便利なツールです。

しかし、同ツールの愛用者でも以下のような点に不足を感じていました。

  • MariaDB Galera Clusterがサポートされていない(Perconaはサポート済み)
  • Percona関連製品(PMM, PKOなど)がサポートされていない
  • MySQL以外のオープンソースDB(PostgreSQL, MongoDB)がサポートされていない

そこで、上記のような製品をサポートしている検証環境デプロイツールを探していたところ、anydbverというツールを見つけました。

本記事では、このツールの概要と使い方について説明したいと思います。

概要

anydbverは LXDAnsible を組み合わせたデータベース環境のデプロイツールです。特に、MySQL/MariaDB/MongoDB/PostgreSQLといったオープンソースDBをサポートしています。

このツールを開発したのはPercona社のNickolay Ihalainen氏で、Perconaブログでも紹介記事「Deploying Any Version of Leading Open Source Databases for Tests and Experiments」を公開しています。

anydbverは、LXC(Ubuntu に標準実装されているLinux Containers)を使用してテスト用インスタンスを立ち上げます。この点も、ローカル上に .tar.gz版パッケージを展開していくdbdeployerとは仕様(挙動)が異なります。

セットアップ

早速、anydbverを使ってみます。まずは、Githubから必要なファイルをダウンロードします。その中にある Vagrantfile を使って vagrant up を実行します。

なお、このツールはVagrant + VirtualBox がインストールされている環境が前提となっています。これは Vagrant で立ち上げるインスタンスのOSが「Ubuntu 20.04」で、その元となるBOXが VirtualBox プロバイダしか用意されていないことが原因と考えられます。

https://app.vagrantup.com/ubuntu/boxes/focal64

1 provider for this version.
virtualbox Externally hosted (cloud-images.ubuntu.com)

VMが立ち上がったら、sshログインします。ホームディレクトリに anydbver が配置されていればセットアップは完了です。

もしここまでの手順で上手くいかない場合は、vagrant-vbguestを入れてから再度 vagrant up をしてみるといいかもしれません。

セットアップ(手元のUbuntu18.04の場合)

通常の方法では、上記のようにVagrantで立ち上げた環境(Ubuntu 20.04)で使用しますが、Vagrantfile内に記載されているスクリプトと同じようなコマンドを実行することで、シングル構成のUbuntu 18.04インスタンスでもセットアップできます。

ただし、CnetOS環境では少しセットアップが難しいかもしれません。

Percona Serverをデプロイ

まずは試しに Percona Server のテスト環境をデプロイしてみます。
LXC、Ansibleのログが一気に流れていきますが、エラーが出ることなくコマンドが完了したらOKです。

デプロイが完了したら早速SSHログインしてみます。Percona Server8.0の最新バージョンがインストールされています。

また、このインスタンス自体が独立したインスタンス(CentOS7.9)なので、sysbenchなどをインストールすることも可能です。

作成したコンテナはdestroyコマンドで削除できます。ただし、このdestroyコマンドはdeploy時にも最初に実行されるため、毎回実行する必要はありません。

MariaDB Galera Clusterをデプロイ

次に、dbdeployerではサポートされていないMariaDB Galera Cluster環境をデプロイしてみます。
以下の条件の環境をデプロイします。MariaDB 10.4 → 10.5のバージョンアップを意識した構成です。

  • MariaDB 10.4 の最新版(10.4.17)ではなく、少し古いバージョン(10.4.15)を使用します
  • MariaDB Galera Clusterの3ノード構成にします

デプロイコマンドは以下のようになります。イメージとしては、レプリケーションの最上位層のインスタンスが「default」となり、その下に追加するインスタンスを並べていく形です。

デプロイした各インスタンスへのログインは以下のようになります。

Galera Clusterが正常に動作していることを確認します

この通り、MariaDB Galera Cluster 10.4.15の環境を作ることができました。

ProxySQL をデプロイ

最後に、Perconaの関連ソフトウエアである ProxySQLをデプロイしてみます。

非同期レプリケーション(ソース1台、レプリカ2台)の環境をProxySQLで制御するような環境をデプロイします。

デプロイした各インスタンスへのログインは以下のようになります。

ProxySQLが正常に動作していることを確認します。

この状態から、/etc/proxysql.cnfを変更すればProxySQLが利用できます。

おわりに

上記では紹介しきれませんでしたが、anydbverを使えばPercona Kubernetes Operator(deploy k3s)やPostgreSQL(deploy pg:12.3)、Percona Monitoring and Management(deploy pmm)の環境をデプロイすることもできます。

もし、MySQLなどのテスト環境をデプロイするツールを探している方がいれば一考してみてください。

 

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃オープンソースデータベースのサポート業務に従事している有資格者で構成された技術サポートチームがMariaDBに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃オープンソースデータベースのサポート業務に従事している有資格者で構成された技術サポートチームがPerconaに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次