S3 ストレージエンジン – MariaDB Enterprise Server

本記事は MariaDB Corporation より寄稿された記事となります

はじめに

2019年6月にリリースされた MariaDB Enterprise Server 10.4 / 10.3 では S3 ストレージエンジンが追加されています。

Enterprise Documentation / Reference / Included Plugins / S3 Plugin
MariaDB Subscription Services Policies 1.03 – 2019-07-08

この S3 ストレージエンジンでは,InnoDB / Aria テーブルを Amazon S3 に簡単にバックアップ/アーカイブすることが可能です。今回はこの機能を解説いたします。

S3 ストレージエンジン / libMariaS3

AWS の各機能を 3rd party のC++プログラムから利用するには,通常 AWS SDK for C++ を利用しますが,MaraiDB Server のライセンスは GPL v2 であり,一方 AWS SDK for C++ は Apache License 2.0 であるため不整合が生じます。そこで MariaDB Corporaation では libMariaS3 というライブラリを新規開発,LGPL 2.1 ライセンスで公開しています。
S3 ストレージエンジンはこのライブラリを用いてAmazon S3 にアクセスするため,ビルド済バイナリが再配布可能となっています(AWS SDK for C++ を用いる AWS KMS プラグインはユーザがソースからビルドする必要があります)。

テスト環境

執筆時点で最新版の MariaDB Enterprise Server 10.4.7-2 を用いました。

S3 ストレージエンジンの設定

/etc/my.cnf.d/server.cnfに以下のような設定を行います。

ここで,s3-access-key は AWS Access key ID, s3-secret-key は Secret access key を指定します。
なお,現状 us-east-1 リージョン(N. Virginia)しか利用できません。ap-northeast-1(Tokyo) 等を指定すると Access Denied となります。

S3 ストレージエンジンのテスト

S3 ストレージエンジンは基本的に InnoDB / Aria テーブルを S3 バケットにバックアップ/アーカイブするためのものです。
以下の例では,InnoDB テーブルを通常のようにローカルストレージ(@@datadir)上に作成後,ALTER TABLE ENGINE=s3 で s3_bucket パラメータで指定した S3 バケットにコピー,ローカルストレージからは .ibd ファイルがなくなります。

ここで,AWS CLI を用いて test-s3-plugin-201909 バケットを確認してみます。

正常にオブジェクトが作成されていることが確認できました。
この状態で t1 テーブルを確認しますと,

ENGINE=S3 となっていることが確認できます。

t1 に対して SELECT 文によるクエリを実行することはできますが,

S3 テーブルは read only であるため,書込はできません。/var/lib/mysql/test (@@datadir/test) ディレクトリを確認しますと,

t1.ibd は存在しません。
この状態で,ALTER TABLE t1 ENGINE=InnoDB; を実行します。

/var/lib/mysql/test には,t1.ibd ファイルが戻ります。

t1 テーブルは InnoDB テーブル(ENGINE=InnoDB)に戻っています。

まとめ

今回は MariaDB Enterprise Server に追加された S3 ストレージエンジンに関して簡単な検証を行ってみました。
Knowledge Base では Community Server 10.5 で実装予定となっていて,GitHub レポジトリから 10.5 ブランチのコードを clone し,ビルドすれば Community Server 10.5 でも利用可能です(GAではありませんのでサブスクリプション契約をお持ちでもサポート対象外です)。

 

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

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

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