Cloud Service
Azure Database for MariaDB
MariaDB を運用込みで貸したフルマネージド PaaS。ただし既に提供終了し、現在は Azure Database for MySQL フレキシブルサーバーへの移行が推奨される。AWS の RDS 系に相当した位置づけ。
- 1.MariaDB を運用込みで貸したフルマネージド PaaS だが、既に提供を終了している。
- 2.新規作成は不可。移行先は Azure Database for MySQL フレキシブルサーバーが推奨。
- 3.設計思想は MySQL のマネージドサービスとほぼ共通で、概念はそのまま読み替えられる。
解決する課題
- MariaDB サーバーの OS パッチ・マイナーバージョン更新・バックアップが重い → マネージドで自動化したかった
- 障害でデータベースが止まると困る → 組み込みの高可用性とバックアップで可用性を上げたかった
- 既存の MariaDB アプリ(各種 OSS、CMS など)をほぼ無改修でクラウドに移したかった
このサービスは MariaDB エンジンの互換性を保ったまま運用を肩代わりするマネージド PaaS でした。ただし現在は提供を終了しており、新規構築には使えません。これから MariaDB 互換のワークロードを Azure で動かす場合は、後述の移行先を前提に設計してください。
Azure Database for MariaDB は退役(リタイア)済みで、新規サーバーの作成はできません。Microsoft は移行先として Azure Database for MySQL フレキシブルサーバーを推奨しています。MariaDB と MySQL は共通の起源を持ち多くのワークロードで移行は比較的容易ですが、バージョン互換や一部機能の差異があるため、移行は計画的に進めてください。最新の退役スケジュールと移行手順は必ず公式情報で確認してください。
主要概念と用語
- マネージド MariaDB(PaaS): MariaDB エンジンをサービス側が運用し、ユーザーはデータベースとアプリに集中できる提供形態
- コンピューティング階層: 用途別の階層構成。小規模・断続負荷向けのバースト可能な階層、本番の標準となる汎用階層、高負荷向けのメモリ最適階層といった分け方
- 自動バックアップ: 定期的に自動取得されるバックアップ。保持期間内であれば任意時点へ復元できる
- ポイントインタイムリストア(PITR): 自動バックアップを使い、保持期間内の任意の時点へ復元する機能
- 読み取りレプリカ: 非同期レプリケーションで読み取り負荷を分散するためのレプリカ
- 退役(リタイア): サービスの提供を終了するライフサイクル上の段階。新規作成停止 → 既存サーバーの停止という流れで進む
- 移行先: 退役に伴う推奨の移行ターゲット。本サービスでは Azure Database for MySQL フレキシブルサーバー
仕様・制限・クォータ
- 新規作成は不可: 退役済みのため、新しい MariaDB サーバーは作成できない。これが最大の制約
- 対応していた MariaDB バージョンは主要なメジャー系列に限られ、最新のメジャーバージョンには追随していなかった
- 自動バックアップと PITR: 保持期間内であれば任意時点への復元に対応していた。保持期間は一定の範囲内で設定可能だった
- 接続数の上限はコンピューティングサイズ(メモリ)に比例して決まる構成だった
- リージョンやサブスクリプションごとにクォータがあり、必要に応じて引き上げ申請する形だった
具体的な対応バージョン・保持日数・退役の正確な日付は変動・確定情報のため、最新値は公式ドキュメントで確認してください。
内部の仕組み
- ストレージとコンピューティングの分離: データは耐久性のあるストレージに保持され、コンピューティングノードがその上で MariaDB エンジンを動かす。サイズ変更はコンピューティングを入れ替える形でスケールした
- 高可用性とバックアップ: 基盤側でデータを冗長化し、自動バックアップを定期取得して PITR を可能にしていた
- 読み取りレプリカ: プライマリの変更を非同期でレプリカに反映する。非同期のためレプリケーション遅延が生じうる
- メンテナンスとパッチ: マイナー更新や基盤のパッチはサービス側が適用していた。アプリ側は**接続の再試行(リトライ)**を実装しておくと、再起動時の瞬断に強くなる
設計思想は Azure Database for MySQL のマネージドサービスとほぼ共通です。MariaDB から MySQL への移行を考える際、これらの概念はそのまま読み替えられます。
設計パターン / ベストプラクティス
- 新規構築では本サービスを選ばない。Azure Database for MySQL フレキシブルサーバーを前提に設計する
- 既存の MariaDB サーバーを運用中なら、退役前に移行計画を立てて実行する。検証環境で互換性を先に確認する
- 移行時はバージョン互換(MariaDB と MySQL のメジャー対応関係)を確認し、SQL や関数の差異を洗い出す
- 接続はプライベートアクセスを基本にし、パブリックアクセスは無効化するかファイアウォール規則を最小限に絞る
- 接続のたびに新規接続を張らず、コネクションプーリングでハンドシェイクの負荷と接続数を抑える
小~中規模のデータベースはダンプ&リストア(論理バックアップの取得と読み込み)でシンプルに移せます。ダウンタイムを最小化したい大規模データベースでは Azure Database Migration Service(DMS)やレプリケーションを使ったオンライン移行を検討します。レプリケーション遅延がゼロになった時点でカットオーバーするのが基本的な流れです。
運用・監視
- 既存サーバーを退役まで運用する場合も、Azure Monitor / メトリクスで CPU・メモリ・ストレージ使用率・接続数・レプリケーション遅延を監視する
- しきい値を超えたらアラートで通知し、容量逼迫やレプリカ遅延を早期に検知する
- スロークエリログや監査ログを有効化し、重いクエリや想定外のアクセスを把握する
- バックアップからの**復元手順(PITR)**を事前にリハーサルし、目標復旧時点(RPO)を確認しておく
- 最優先の運用タスクは移行の完了。退役後はサーバーが停止・削除され、データへアクセスできなくなる点を運用計画に織り込む
読み取りレプリカは非同期レプリケーションです。プライマリへの書き込み直後にレプリカを読むと、レプリケーション遅延により最新値が見えないことがあります。整合性が重要な読み取りはプライマリへ、許容できる参照系のみレプリカへ振り分けてください。
コスト
- 課金は概ね コンピューティング + ストレージ + バックアップ + ネットワーク(送信など) で構成されていた
- 断続的・小規模な負荷にはバースト可能な階層がコスト効率的だった
- 高可用性や読み取りレプリカは追加のコンピューティング/ストレージ費用が発生した
- コスト面でも、移行先の Azure Database for MySQL フレキシブルサーバーは停止/開始による課金抑制など、より柔軟な節約手段を備える
実際の料金は変動するため、最新の料金は公式の料金ページで見積もってください。
セキュリティ
- 保存データは保存時暗号化が既定で有効だった
- 転送時は TLS/SSL を強制でき、最小 TLS バージョンを指定できた
- ネットワークはプライベートアクセスを基本とし、パブリックアクセスはファイアウォール規則で最小化する
- 接続文字列やパスワードはコードに直書きせず、Key Vault などのシークレット管理に保管する
退役後に未移行のサーバーを放置すると、データへのアクセス手段を失うだけでなく、サポートやセキュリティ更新も受けられません。退役前にデータを移行・退避し、移行先で TLS 強制・プライベートアクセス・最小権限を再設定してください。ファイアウォールで全 IP 範囲を許可したまま運用するのも NG です。
関連サービス・比較
最も関連の深いサービスは移行先である Azure Database for MySQL フレキシブルサーバーです。両者を比較します。
| 観点 | Azure Database for MariaDB | Azure Database for MySQL フレキシブルサーバー |
|---|---|---|
| 提供状況 | 退役済み(新規作成不可) | 現行の推奨サービス |
| エンジン | MariaDB 互換 | MySQL 互換 |
| 位置づけ | 旧来のマネージド OSS DB | MariaDB からの推奨移行先 |
| 高可用性 | 基盤側で冗長化 | ゾーン冗長 HA(自動フェイルオーバー) |
| 読み取りスケール | 読み取りレプリカ(非同期) | 読み取りレプリカ(非同期) |
| 停止/再開 | 限定的 | 停止/開始で課金抑制 |
| 新規採用 | 不可 | 推奨 |
アプリが MariaDB 固有の機能に強く依存している場合は、移行前に MySQL との差異を検証してください。差異が大きく移行が難しいときは、仮想マシン上に自前で MariaDB を構築する(IaaS)選択肢もありますが、その場合はパッチ・バックアップ・高可用性を自分で運用する負担が戻る点に注意します。
ハンズオン / CLI例
# 注意: Azure Database for MariaDB は退役済みのため、新規作成はできません。
# 既存サーバーの確認と、移行先(MySQL フレキシブルサーバー)作成の例を示します。
# 既存の MariaDB サーバーを一覧表示(移行対象の棚卸し)
az mariadb server list \
--resource-group demo-rg \
--output table
# 移行先のリソースグループを作成
az group create --name demo-rg --location japaneast
# 移行先: MySQL フレキシブルサーバーを作成(ゾーン冗長 HA を有効化)
az mysql flexible-server create \
--name demo-mysql-target \
--resource-group demo-rg \
--location japaneast \
--admin-user mysqladmin \
--admin-password 'StrongP@ssw0rd!' \
--tier GeneralPurpose \
--high-availability ZoneRedundant \
--public-access None \
--version 8.0
# 以降はダンプ&リストア、または Database Migration Service でデータを移行する
Azure Service
Azure Database for MariaDBを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
データベース
比較で見る軸
クラウド: Azure / カテゴリ: データベース / 難易度: basic
導入後に効く点
新規作成は不可。移行先は Azure Database for MySQL フレキシブルサーバーが推奨。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Azure
- カテゴリ
- データベース
- 難易度
- basic
- 関連資格
- —
- 設計柱
- reliability / operational
判断チェックリスト
- 自社の用途が「データベース / reliability」に近いか確認する。
- 強みである「MariaDB を運用込みで貸したフルマネージド PaaS だが、既に提供を終了している。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。