スマートスタイル TECH BLOG

データベース&クラウド技術情報

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ではありませんのでサブスクリプション契約をお持ちでもサポート対象外です)。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB CorporationにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top