Azure認定資格 WEB問題集&徹底解説

DP-900:Microsoft Azure Data Fundamentals

正解 B問題
分野2:Azure 上のリレーショナルデータの考慮事項の特定 タスクステートメント2.2:Azure のリレーショナルデータサービスの説明
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある EC 事業者は、Linux サーバー上で自前運用してきたオープンソースの MySQL データベースを Azure へ移行したいと考えている。移行の目的は、バックアップ取得やパッチ適用といった運用管理の負荷を下げることである。アプリケーションのコードや接続ドライバーは変更したくなく、データベースエンジン自体を別の製品に置き換えるつもりもない。
この要件を満たす移行先として最も適切なものはどれか。
  • Azure SQL Database
  • Azure Database for MySQL
  • Azure Database for PostgreSQL
  • Azure Virtual Machines(Linux)上に MySQL をインストールして運用する
解説 頻出度★★★★★
この問題は、「エンジンも接続ドライバーも変えない × バックアップやパッチ適用の運用負荷を下げる」という 2 つの条件を同時に満たす、MySQL Community Edition ベースの PaaS=Azure Database for MySQLを選べるかがポイント。エンジンは同じでも運用が自前のまま残るVM 上の MySQL(IaaS)が本命の罠です。

A. Azure SQL Database

Azure SQL Database はMicrosoft SQL Server をベースにした PaaSで、更新やバックアップは自動化されるため、運用負荷の軽減という目的には合っています。
しかしデータベースエンジンが MySQL から SQL Server に変わるため、「エンジンを別の製品に置き換えない」「接続ドライバーを変更しない」という条件に反します。SQL の方言やドライバーの違いから、アプリケーションの改修も避けられません。

正解

B. Azure Database for MySQL

Azure Database for MySQL は、MySQL Community Edition に基づく MySQL の PaaS 実装です。エンジンが同じ MySQL なので、既存のアプリケーションは同じ MySQL ドライバーのまま接続先を切り替えて利用でき、Learn もこのサービスを使う主な理由として「アプリケーションに大規模な変更を加えることなく迅速に Azure に移行できる」ことを挙げています。
さらにハードウェアやソフトウェアのパッチなど基盤の管理は Azure が担い、最大 35 日間(既定 7 日間)の自動バックアップとポイントインタイム リストアも提供されるため、運用管理の負荷を下げるという移行の目的も満たします。現在のデプロイオプションはフレキシブル サーバーです。

C. Azure Database for PostgreSQL

Azure Database for PostgreSQL も、MySQL のサービスと同じ可用性・スケーリング・管理上の利点を持つオープンソース系の PaaSで、運用負荷の軽減という目的だけなら満たせます。
しかし PostgreSQL は MySQL とは別のデータベースエンジン(独自の手続き型言語 PL/pgSQL などを持つオブジェクトリレーショナル データベース)であり、接続ドライバーも SQL の方言も異なります。「オープンソースの RDB どうし」で同じに見えても、エンジンの置き換えにあたるため条件に反します。

D. Azure Virtual Machines(Linux)上に MySQL をインストールして運用する

Azure Virtual Machines(Linux)に MySQL をインストールすれば、エンジンもドライバーもそのまま使えるため、互換性の条件だけは満たします。
しかしこれはIaaSです。Learn が VM 上の SQL Server について「オペレーティング システムと SQL Server の更新、構成、バックアップなど、サーバーのすべての側面を管理する必要がある」と述べているのと同じく、VM 上の MySQL でもOS とデータベースのパッチ適用やバックアップは利用者の責任のままです。自前の Linux サーバーが Azure の VM に置き換わるだけで、移行の目的である運用負荷の軽減を達成できません。

これだけ覚える(記憶フック)
エンジンそのまま×運用おまかせ=Azure Database for ○○(PaaS)。VM に入れるのは運用が残る IaaS。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
データベースエンジンを別の製品に置き換えない MySQL 以外のエンジン(SQL Server 系・PostgreSQL)は移行先にならない
→選択肢(A・C)を消す
アプリのコードや接続ドライバーを変更したくない MySQL をそのまま動かせる移行先、すなわち MySQL ベースの PaaS か、MySQL を入れた VM に絞られる
→選択肢(B・D)は候補
移行の目的はバックアップ取得やパッチ適用の運用負荷の軽減 VM(IaaS)ではOS・データベースの更新やバックアップが利用者の責任のまま残る
→選択肢(D)を消す
残る条件をすべて満たす移行先 自動バックアップと基盤のパッチ管理を Azure が担う PaaS の Azure Database for MySQL
→選択肢(B)が正解
ひっかけポイント
  • 本命の罠はVM 上の MySQL。エンジン・ドライバーの条件を満たすので正解に見えるが、IaaS では運用作業が手元に残り、「移行の目的」(運用負荷の軽減)を満たさない
  • PostgreSQL は MySQL と同じ「オープンソースの RDB の PaaS」なので紛らわしいが、エンジンが別製品。ドライバーも SQL の方言も異なり、アプリの改修が必要になる
  • 「Azure の RDB の PaaS=Azure SQL Database」と短絡しない。Azure SQL Database はSQL Server 系で、MySQL・PostgreSQL にはそれぞれ専用の Azure Database for ○○ がある
  • Azure Database for MySQL の単一サーバー(Single Server)は 2024 年 9 月に提供終了しており、現在のデプロイオプションはフレキシブル サーバー。古い教材の「単一サーバー」の記述は鵜呑みにしない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「自前運用の PostgreSQL を、エンジンを変えずにマネージドサービスへ移したい」 Azure Database for PostgreSQL が正解に変わる。
「OS の設定変更や独自ソフトの導入が必要で、サーバーのすべての側面を自分で制御し続けたい」 VM 上に MySQL をインストール(IaaS)が正解に変わる。
「オンプレミスの SQL Server インスタンスを、ほぼ 100% の互換性を保って最小限の変更で PaaS へ移したい」 Azure SQL Managed Instance が正解軸に。
「新規のクラウドアプリ向けに、最小限の管理で SQL Server 系のデータベースを使いたい」 Azure SQL Database が正解に変わる。
「既存の MongoDB を、アプリをほとんど変えずに Azure へ移したい」 MongoDB 互換の Azure DocumentDB が推奨の移行先。
関連サービスの解説 Azure SQL Database
Azure Database for MySQL
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
Azure Database for MySQL(Community Edition ベースの PaaS・自動バックアップ)と PostgreSQL の違い オープンソース データベース用の Azure サービスについて説明する - Training | Microsoft Learn
IaaS(VM 上の DB)では OS・DB の更新やバックアップを利用者が管理する Azure SQL のサービスと機能について説明する - Training | Microsoft Learn
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.8 解説
ある EC 事業者は、Linux サーバー上で自前運用してきたオープンソースの MySQL データベースを Azure へ移行したいと考えている。移行の目的は、バックアップ取得やパッチ適用といった運用管理の負荷を下げることである。アプリケーションのコードや接続ドライバーは変更したくなく、データベースエンジン自体を別の製品に置き換えるつもりもない。
この要件を満たす移行先として最も適切なものはどれか。
  • Azure SQL Database
  • Azure Database for MySQL
  • Azure Database for PostgreSQL
  • Azure Virtual Machines(Linux)上に MySQL をインストールして運用する

(会員限定)当問題の評価をお願いします。改善に活用します。