MariaDB データベースを Azure に移行するMigrate MariaDB databases to Azure

この記事では、Contoso という架空の会社が、オンプレミスの MariaDB オープンソース データベース プラットフォームの Azure への移行をどのように計画し、実行したかについて説明します。This article demonstrates how the fictional company Contoso planned and migrated its on-premises MariaDB open-source database platform to Azure.

Contoso では、次の理由により、MySQL ではなく MariaDB が使用されています。Contoso is using MariaDB instead of MySQL because of its:

  • 多数のストレージ エンジン オプション。Numerous storage engine options.
  • キャッシュとインデックスのパフォーマンス。Cache and index performance.
  • 機能と拡張機能によるオープンソースのサポート。Open-source support with features and extensions.
  • 分析ワークロード用の ColumnStore ストレージ エンジン。ColumnStore storage engine for analytical workloads.

会社の移行の目標は、MariaDB をサポートするために必要な環境の管理について心配せずに、これを引き続き使用することです。The company's migration goal is to continue to use MariaDB but not worry about managing the environment needed to support it.

ビジネス ドライバーBusiness drivers

IT リーダーシップ チームは、ビジネス パートナーと密接に連絡を取り合い、彼らがこの移行で何を達成しようとしているのかを理解しました。The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration. 目的は次のとおりです。They want to:

  • 可用性の向上。Increase availability. Contoso は、オンプレミスの MariaDB 環境で可用性の問題を抱えていました。Contoso has had availability issues with its MariaDB on-premises environment. ビジネス部門は、このデータ ストアを使用するアプリケーションの信頼性を高めることを求めています。The business requires the applications that use this data store to be more reliable.
  • 効率化。Increase efficiency. Contoso では、不要な手順を排除し、開発者とユーザーのプロセスを効率化する必要があります。Contoso needs to remove unnecessary procedures and streamline processes for developers and users. ビジネス部門は、顧客の要求により迅速に対応するために、IT 部門に対して、時間やコストを無駄にせず、迅速に作業を行うことを求めています。The business needs IT to be fast and not waste time or money to deliver faster on customer requirements.
  • 機敏性の向上。Increase agility. Contoso IT は、ビジネス部門の要求に対して、対応力を向上させる必要があります。Contoso IT needs to be more responsive to the needs of the business. また、グローバル経済で成功を収めるために、市場の変化よりも迅速に対応する必要があります。It must react faster than the changes in the marketplace to enable success in a global economy. ビジネスの妨げや、障害にならないようにする必要があります。It mustn't get in the way or become a business blocker.
  • スケール。Scale. ビジネスが順調に成長している中で、Contoso IT 部門は、同じペースで拡張するシステムを提供する必要があります。As the business grows successfully, Contoso IT must provide systems that grow at the same pace.

移行の目標Migration goals

Contoso クラウド チームは、この移行の目標を設定しました。The Contoso cloud team has pinned down goals for this migration. これらの目標を使用して、最良の移行方法を決定しました。These goals were used to determine the best migration method.

必要条件Requirements 詳細Details
可用性Availability 現在、社内スタッフは、MariaDB インスタンスのホスティング環境で苦労しています。Currently internal staff are having a hard time with the hosting environment for the MariaDB instance. Contoso は、データベース レイヤーの可用性を 99.99% に近づけたいと考えています。Contoso wants to have close to 99.99 percent availability for the database layer.
スケーラビリティScalability オンプレミスのデータベース ホストの容量が急速に減っています。The on-premises database host is quickly running out of capacity. Contoso は、現在の制限を超えてインスタンスをスケーリングする方法や、ビジネス環境が変化した場合にインスタンスをスケールダウンしてコストを節約する方法を必要としています。Contoso needs a way to scale its instances past current limitations or scale down if the business environment changes to save on costs.
パフォーマンスPerformance Contoso の人事 (HR) 部門には、毎日、毎週、および毎月実行される複数のレポートがあります。The Contoso human resources (HR) department has several reports it runs on a daily, weekly, and monthly basis. これらのレポートを実行すると、従業員向けアプリケーションで重大なパフォーマンスの問題が発生することがわかりました。When it runs these reports, it notices considerable performance issues with the employee-facing application. アプリケーションのパフォーマンスに影響を与えずに、レポートを実行する必要があります。It needs to run the reports without affecting application performance.
SecuritySecurity Contoso は、データベースに内部アプリケーションだけがアクセスでき、インターネット経由で表示およびアクセスできないことがわかっている必要があります。Contoso needs to know that the database is accessible only to its internal applications and isn't visible or accessible via the internet.
MonitoringMonitoring 現在、Contoso では、ツールを使用して MariaDB データベースのメトリックを監視し、CPU、メモリ、またはストレージに問題があるときに通知されるようにしています。Contoso currently uses tools to monitor the metrics of the MariaDB database and provide notifications when CPU, memory, or storage have issues. 会社は、Azure でもこの同じ機能を利用したいと考えています。The company wants to have this same capability in Azure.
ビジネス継続性Business continuity HR データ ストアは Contoso の日常業務の重要な部分です。The HR data store is an important part of Contoso's daily operations. 破損したり、復元が必要になったりした場合に、ダウンタイムを最小限に抑える必要があります。If it became corrupted or needed to be restored, the company wants to minimize downtime.
AzureAzure Contoso は、アプリケーションを VM で実行せずに Azure に移行することを望んでいます。Contoso wants to move the application to Azure without running it on VMs. Contoso の要件には、データ層に Azure のサービスとしてのプラットフォーム (PaaS) サービスを使用することが示されています。Contoso requirements state to use Azure platform as a service (PaaS) services for the data tier.

ソリューション設計Solution design

Contoso は、目標と要件を明確にした後、デプロイ ソリューションを設計してレビューし、移行プロセスを確認します。After pinning down goals and requirements, Contoso designs and reviews a deployment solution and identifies the migration process. 移行に使用するツールとサービスも識別されます。The tools and services that it will use for migration are also identified.

現在のアプリケーションCurrent application

MariaDB データベースでは、会社の HR 部門のあらゆる側面に使用される従業員データがホストされています。The MariaDB database hosts employee data that's used for all aspects of the company's HR department. LAMP ベースのアプリケーションは、従業員の HR 要求を処理するフロントエンドとして使用されています。A LAMP-based application is used as the front end to handle employee HR requests. Contoso は世界中に 100,000 人の従業員を抱えているので、データベースのアップタイムが重要となります。Contoso has 100,000 employees worldwide, so uptime is important for its databases.

提案されるソリューションProposed solution

  • 移行の互換性について環境を評価します。Evaluate the environments for migration compatibility.
  • 一般的なオープンソース ツールを使用して、データベースを Azure Database for MariaDB インスタンスに移行します。Use common open-source tools to migrate databases to the Azure Database for MariaDB instance.
  • 新しい Azure Database for MariaDB インスタンスを使用するように、すべてのアプリケーションとプロセスを変更します。Modify all applications and processes to use the new Azure Database for MariaDB instance.

データベースの考慮事項Database considerations

ソリューション設計プロセスの一環として、Contoso は MariaDB データベースをホストするための Azure の機能を確認しました。As part of the solution design process, Contoso reviewed the features in Azure for hosting its MariaDB databases. Azure の使用を決定する際に、次の考慮事項が役立ちました。The following considerations helped the company decide to use Azure:

  • Azure SQL Database と同様に、Azure Database for MariaDB ではファイアウォール規則を使用できます。Similar to Azure SQL Database, Azure Database for MariaDB allows for firewall rules.
  • インスタンスにパブリックにアクセスできないように、Azure Database for MariaDB を Azure Virtual Network で使用できます。Azure Database for MariaDB can be used with Azure Virtual Network to prevent the instance from being publicly accessible.
  • Azure Database for MariaDB には、Contoso が監査担当者のために満たす必要がある、必須のコンプライアンス認定とプライバシー認定があります。Azure Database for MariaDB has the required compliance and privacy certifications that Contoso must meet for its auditors.
  • 読み取りレプリカを使用すると、レポートおよびアプリケーション処理のパフォーマンスが向上します。Report and application processing performance will be enhanced by using read replicas.
  • Azure Private Link を使用して、サービスを内部ネットワーク トラフィックだけに公開できます (パブリック アクセスなし)。Ability to expose the service to internal network traffic only (no-public access) by using Azure Private Link.
  • Contoso では、将来、MariaDB ColumnStore およびグラフ データベース モデルを使用する可能性を検討しているため、Azure Database for MySQL に移行しないことを選択しました。Contoso chose not to move to Azure Database for MySQL because it's looking at potentially using the MariaDB ColumnStore and graph database model in the future.
  • 選択されたゲートウェイ (Azure ExpressRoute またはサイト間 VPN) に基づいて、アプリケーションからデータベースへの帯域幅と待機時間が十分に確保されます。The bandwidth and latency from the application to the database will be sufficient enough based on the chosen gateway (either Azure ExpressRoute or Site-to-Site VPN).

ソリューションのレビューSolution review

Contoso は、長所と短所の一覧をまとめて、提案されたデザインを評価します。Contoso evaluates the proposed design by putting together a pros and cons list.

考慮事項Consideration 詳細Details
長所Pros Azure Database for MariaDB は、金銭的な補償を伴う 99.99% のサービス レベル アグリーメント (SLA) で高可用性を提供します。Azure Database for MariaDB offers a 99.99 percent financially backed service-level agreement (SLA) for high availability.

Azure では、四半期ごとの負荷のピーク時にスケールアップまたはスケールダウンする機能が提供されます。Azure offers the ability to scale up or down during peak load times each quarter. Contoso は、予約容量を購入することでさらに節約できます。Contoso can save even more by purchasing reserved capacity.

Azure では、Azure Database for MariaDB のポイントインタイム リストア機能と geo リストア機能が提供されます。Azure provides point-in-time restore and geo-restore capabilities for Azure Database for MariaDB.

短所Cons Azure でサポートされている MariaDB リリース バージョン (現在、10.2 および 10.3) に限定されます。Contoso is limited to the MariaDB release versions that are supported in Azure, which are currently 10.2 and 10.3.

Azure Database for MariaDB には、ストレージのスケールダウンなどの制限事項があります。Azure Database for MariaDB has some limitations, such as scaling down storage.

提案されたアーキテクチャProposed architecture

シナリオのアーキテクチャを示す図。 図 1: シナリオのアーキテクチャDiagram shows the scenario architecture. Figure 1: Scenario architecture.

移行プロセスMigration process

準備Preparation

MariaDB データベースを移行する前に、移行を成功させるために、これらのインスタンスが Azure のすべての前提条件を満たしていることを確認する必要があります。Before you can migrate your MariaDB databases, you need to ensure that those instances meet all the Azure prerequisites for a successful migration.

サポートされているバージョン:Supported versions:

  • MariaDB では、x.y.z の名前付けスキームを使用します。MariaDB uses the x.y.z naming scheme. たとえば、x はメジャー バージョン、y はマイナー バージョン、z はパッチ バージョンです。For example, x is the major version, y is the minor version, and z is the patch version.
  • Azure では、現在、10.2.25 と 10.3.16 がサポートされています。Azure currently supports 10.2.25 and 10.3.16.
  • Azure では、パッチの更新プログラムのアップグレードが自動的に管理されます。Azure automatically manages upgrades for patch updates. 10.2.21 から 10.2.23 のような場合です。Examples are 10.2.21 to 10.2.23. マイナー バージョンとメジャー バージョンのアップグレードはサポートされていません。Minor and major version upgrades aren't supported. たとえば、MariaDB 10.2 から MariaDB 10.3 へのアップグレードはサポートされていません。For example, upgrading from MariaDB 10.2 to MariaDB 10.3 isn't supported. 10.2 から 10.3 にアップグレードする場合は、データベース ダンプを取得し、ターゲット エンジンのバージョンで作成されたサーバーにそれを復元します。If you want to upgrade from 10.2 to 10.3, take a database dump and restore it to a server created with the target engine version.

ネットワーク:The network:

Contoso は、オンプレミス環境から、MariaDB データベースが配置されている仮想ネットワークへの仮想ネットワーク ゲートウェイ接続を設定する必要があります。Contoso needs to set up a virtual network gateway connection from its on-premises environment to the virtual network where its MariaDB database is located. この接続より、接続文字列が更新されたときに、オンプレミス アプリケーションはゲートウェイを介してデータベースにアクセスできるようになります。This connection allows the on-premises application to access the database over the gateway when the connection strings are updated.

移行プロセスを示す図。Diagram shows the migration process. " 図 2:移行プロセスFigure 2: The migration process.

移行Migration

MariaDB は MySQL に似ているため、Contoso は MySQL Workbench、mysqldump、Toad、Navicat などの同じ一般的なユーティリティとツールを使用して、Azure Database for MariaDB に接続し、データを移行できます。Because MariaDB is similar to MySQL, Contoso can use the same common utilities and tools such as MySQL Workbench, mysqldump, Toad, or Navicat to connect to and migrate data to Azure Database for MariaDB.

Contoso では、次の手順を使用してデータベースを移行しました。Contoso used the following steps to migrate its databases.

  • 次のコマンドを実行し、出力を確認して、オンプレミスの MariaDB バージョンを確認します。Determine the on-premises MariaDB version by running the following commands and observing the output. ほとんどの場合、スキーマとデータ ダンプに関しては、バージョンはそれほど重要ではありません。In most cases, your version shouldn't matter much for the schema and data dump. アプリケーション レベルで機能を使用する場合は、それらのアプリケーションが Azure のターゲット バージョンと互換性があることを確認します。If you're using features at the application level, ensure those applications are compatible with the target version in Azure.

      mysql -h localhost -u root -P
    

    オンプレミスの MariaDB のバージョンを確認する方法を示すスクリーンショット。 図 3: オンプレミスの MariaDB バージョンの確認Screenshot shows how to determine the on-premises MariaDB version. Figure 3: Determining the on-premises MariaDB version.

  • Azure で新しい MariaDB インスタンスを作成します。Create a new MariaDB instance in Azure:

    • Azure Portalを開きます。Open the Azure portal.

    • [リソースの追加] を選択します。Select Add a resource .

    • MariaDB を検索します。Search for MariaDB.

      Azure の新しい MariaDB インスタンスを示すスクリーンショット。 図 4: Azure の新しい MariaDB インスタンスScreenshot shows a new MariaDB instance in Azure. Figure 4: A new MariaDB instance in Azure.

    • [作成] を選択しますSelect Create .

    • サブスクリプションとリソース グループを選択します。Select your subscription and resource group.

    • サーバー名と場所を選択します。Select a server name and location.

    • ターゲットのバージョン (10.2 または 10.3) を選択します。Select your target version, which is 10.2 or 10.3.

    • コンピューティングとストレージを選択します。Select your compute and storage.

    • 管理者のユーザー名とパスワードを入力します。Enter an admin username and password.

    • [Review + create](レビュー + 作成) を選択します。Select Review + create .

      MariaDB サーバーの作成画面を示すスクリーンショット。 図 5:確認と作成Screenshot shows the Create MariaDB server screen. Figure 5: Review and create.

    • [作成] を選択しますSelect Create .

    • サーバーのホスト名、ユーザー名、パスワードを記録します。Record the server hostname, username, and password.

    • [接続のセキュリティ] を選択します。Select Connection Security .

    • [クライアント IP の追加] (データベースの復元元の IP) を選択します。Select Add Client IP (the IP that you'll be restoring the database from).

    • [保存] を選択します。Select Save .

  • 次のコマンドを実行して、Employees というデータベースをエクスポートします。Run the following commands to export the database called Employees. データベースごとにこれを繰り返します。Repeat for each database:

    mysqldump -h localhost -u root -p -–skip-triggers -–single-transaction –-extended-insert -–order-by-primary -–disable-keys Employees > Employees.sql
    
  • データベースを復元します。Restore the database. Azure Database for MariaDB インスタンスのエンドポイントとユーザー名に置き換えます。Replace with the endpoint for your Azure Database for MariaDB instance and the username:

    mysql -h {name}.mariadb.database.azure.com -u user@{name} -p –ssl
    create database employees;
    use database employees;
    source employees.sql;
    
  • phpMyAdmin または同様のツール (MySQL Workbench、Toad、Navicat など) を使用し、各テーブルのレコード数をチェックして復元を確認します。Use phpMyAdmin or a similar tool, such as MySQL Workbench, Toad, and Navicat, to verify the restore by checking record counts in each table.

  • 移行したデータベースを参照するように、すべてのアプリケーション接続文字列を更新します。Update all application connection strings to point to the migrated database.

  • すべてのアプリケーションが正しく動作するかどうかをテストします。Test all applications for proper operation.

移行後にクリーンアップするClean up after migration

Contoso は、移行が正常に完了したことを確認したら、保持の目的でオンプレミス データベースをバックアップし、バックアップ ファイルを保存する必要があります。After a verified successful migration, Contoso needs to back up and store the on-premises database backup files for retention purposes. オンプレミスの MariaDB サーバーを廃止します。Retire the on-premises MariaDB server.

デプロイを再調査するReview the deployment

リソースを Azure に移行したら、新しいインフラストラクチャを完全に操作可能にして、セキュリティで保護する必要があります。With the migrated resources in Azure, Contoso needs to fully operationalize and secure its new infrastructure.

セキュリティSecurity

Contoso は次のことを行う必要があります。Contoso needs to:

  • 新しい Azure Database for MariaDB インスタンスとデータベースを確実にセキュリティで保護します。Ensure that its new Azure Database for MariaDB instance and databases are secure. 詳細については、「Azure Database for MariaDB のセキュリティ」をご覧ください。For more information, see Security in Azure Database for MariaDB.
  • ファイアウォール規則と仮想ネットワーク構成を確認して、接続を必要とするアプリケーションのみに接続が制限されていることを確認します。Review the firewall rules and virtual network configurations to verify that connections are limited to only the applications that require it.
  • MariaDB ゲートウェイ IP アドレスへの接続を許可するように、送信 IP 要件を構成します。Configure any outbound IP requirements to allow connections to the MariaDB gateway IP addresses.
  • データベースへの SSL 接続を要求するように、すべてのアプリケーションを更新します。Update all applications to require SSL connections to the databases.
  • Private Link を設定して、すべてのデータベース トラフィックが Azure とオンプレミス ネットワーク内に保持されるようにします。Set up Private Link so that all database traffic is kept inside Azure and the on-premises network.
  • Azure Advanced Threat Protection (ATP) を有効にします。Enable Azure Advanced Threat Protection (ATP).
  • 対象のセキュリティおよびログ エントリを監視し、アラートを送信するように Log Analytics を構成します。Configure Log Analytics to monitor and send alerts on security and logs entries of interest.

バックアップBackups

geo リストアを使用して、Azure Database for MariaDB インスタンスが確実にバックアップされるようにします。Ensure that the Azure Database for MariaDB instances are backed up by using geo-restore. これにより、リージョン規模の障害が発生した場合は、ペアのリージョンにあるバックアップを使用できます。In this way, backups can be used in a paired region if a regional outage occurs.

重要

Azure Database for MariaDB インスタンスにリソース ロックが確実に設定されるようにして、削除されないようにしてください。Make sure that the Azure Database for MariaDB instance has a resource lock to prevent it from being deleted. 削除されたサーバーを復元することはできません。Deleted servers can't be restored.

ライセンスとコストの最適化Licensing and cost optimization

  • Azure Database for MariaDB は、スケールアップまたはスケールダウンすることができます。Azure Database for MariaDB can be scaled up or down. サーバーとデータベースのパフォーマンスを監視することは、ニーズを満たすためだけではなく、コストを最小限に維持するためにも重要です。Performance monitoring of the server and databases is important to ensure you meet your needs but also keep costs at a minimum.
  • CPU とストレージの両方がコストに関連します。Both CPU and storage have costs associated. 選択できる価格レベルはいくつかあります。There are several pricing tiers to select from. データ ワークロードに適した価格プランが選択されていることを確認してください。Be sure the appropriate pricing plan is selected for the data workloads.
  • 各読み取りレプリカは、選択されたコンピューティングとストレージに基づいて課金されます。Each read replica is billed based on the compute and storage selected.
  • 予約容量を使用してコストを節約します。Use reserved capacity to save on costs.

まとめConclusion

この記事では、Contoso が MariaDB データベースを Azure Database for MariaDB インスタンスに移行しました。In this article, Contoso migrated its MariaDB databases to an Azure Database for MariaDB instance.