Azure で適切な MySQL サーバー オプションを選択する
適用対象: Azure Database for MySQL - 単一サーバー Azure Database for MySQL - フレキシブル サーバー
重要
Azure Database for MySQL シングル サーバーは廃止パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、Azure Database for MySQL シングル サーバーの現状に関するページを参照してください
Azure では、MySQL サーバーのワークロードをホスト型仮想マシンのサービスとしてのインフラストラクチャ (IaaS) で実行することも、ホスト型のサービスとしてのプラットフォーム (PaaS) として実行することもできます。 PaaS には 2 つのデプロイ オプションがあり、各デプロイ オプション内にサービス レベルがあります。 IaaS か PaaS かを選択する際には、データベースの管理、修正プログラムの適用、バックアップ、セキュリティ、監視、スケーリングを自分で行うか、これらの操作を Azure に委任するかを決定する必要があります。
決定する際に、次の 2 つのオプションを検討します。
Azure Database for MySQL。 このオプションは PaaS の業界カテゴリに分類され、MySQL コミュニティ エディションの安定バージョンに基づくフル マネージドの MySQL データベース エンジンを表します。 このサービスとしてのリレーショナル データベース (DBaaS) は、Azure クラウド プラットフォームでホストされ、業界内のカテゴリとしては PaaS に分類されます。 Azure 上の MySQL のマネージド インスタンスでは、MySQL サーバーがオンプレミスまたは Azure VM に存在する場合には大がかりな構成が必要となるような組み込みの機能、すなわち、パッチの自動適用、高可用性、自動バックアップ、エラスティック スケーリング、エンタープライズ グレードのセキュリティ、コンプライアンスとガバナンス、監視、アラートなどを使用できます。 MySQL をサービスとして使用する場合は、従量課金制になり、中断することなく制御の強化のためにスケールアップまたはスケールアウトするオプションが用意されています。 MySQL コミュニティ エディションを搭載したAzure Database for MySQLは、次の 2 つのデプロイ モードで利用できます。
フレキシブル サーバーは、データベース管理機能と構成設定のきめ細かな制御と柔軟性を高めることを目的に設計された、運用環境対応のフル マネージド データベース サービスです。 フレキシブル サーバー アーキテクチャの採用により、ユーザーは単一の可用性ゾーン内での可用性と、複数の可用性ゾーンにまたがる高可用性を選択できます。 また、フレキシブル サーバーでは、より優れたコスト最適化制御によって、サーバーを停止/起動する機能や、完全なコンピューティング容量を継続的には必要としないワークロードに最適な、バースト可能なコンピューティング層を実現できます。 フレキシブル サーバーでは、予約インスタンスもサポートされ、最大 63% のコストを削減できるため、コンピューティング容量要件が予測できる運用環境ワークロードに最適です。 サービスでは、MySQL 5.7 と 8.0 のコミュニティ バージョンがサポートされています。 このサービスは現時点で一般提供されており、さまざまな Azure リージョンで利用できます。 フレキシブル サーバーは、運用環境ワークロードのすべての新規開発と Azure Database for MySQL サービスへの移行に最適です。
単一サーバーは、最小限のカスタマイズ用に設計されたフル マネージド データベース サービスです。 単一サーバー プラットフォームは、修正プログラムの適用、バックアップ、高可用性、セキュリティなど、データベース管理機能のほとんどを、最小限のユーザー構成と制御で処理するよう設計されています。 このアーキテクチャは、単一の可用性ゾーンで 99.99% の可用性を備えた組み込みの高可用性を実現するよう最適化されています。 MySQL 5.6 (廃止)、5.7、8.0 のコミュニティ バージョンをサポートしています。 このサービスは現時点で一般提供されており、さまざまな Azure リージョンで利用できます。 単一サーバーは、既に単一サーバーを活用している既存のアプリケーションにのみ最適です。 すべての新規開発または移行には、フレキシブル サーバーを選ぶことをお勧めします。
Azure VM 上の MySQL。 このオプションは、IaaS の業界カテゴリに分類されます。 このサービスを使用すると、Azure クラウド プラット フォーム上の管理された仮想マシン内で MySQL サーバーを実行できます。 MySQL のすべての最新バージョンとエディションを仮想マシンにインストールできます。
Azure の MySQL デプロイ オプションを比較する
これらのオプションの主な違いを次の表に示します。
属性 | Azure Database for MySQL シングル サーバー |
Azure Database for MySQL フレキシブル サーバー |
Azure VM 上の MySQL |
---|---|---|---|
全般 | |||
一般公開 | 一般公開 | 一般公開 | 一般公開 |
サービス レベル アグリーメント (SLA) | 99.99% の可用性の SLA | 可用性ゾーンの使用時に 99.99% | 可用性ゾーンの使用時に 99.99% |
基盤 O/S | Windows | Linux | ユーザー管理 |
MySQL のエディション | Community Edition | Community Edition | Community または Enterprise Edition |
MySQL バージョンのサポート | 5.6 (廃止)、5.7、および 8.0 | 5.7、8.0 | 任意のバージョン |
アプリケーション コロケーションのための可用性ゾーンの選択 | いいえ | イエス | はい |
接続文字列のユーザー名 | [https://login.microsoftonline.com/consumers/](<user_name>@server_name ) たとえば、mysqlusr@mypgServer のように指定します。 |
ユーザー名のみ。 たとえば、mysqlusr のように指定します。 |
ユーザー名のみ。 たとえば、mysqlusr のように指定します。 |
コンピューティングおよびストレージのスケーリング | |||
コンピューティング レベル | Basic、General Purpose、Memory Optimized | Burstable、General Purpose、Memory Optimized | Burstable、General Purpose、Memory Optimized |
コンピューティングのスケーリング | サポートされています (Basic レベルとの間のスケーリングはサポートされていません) | サポートされています | サポートされています |
ストレージ サイズ | 5 GiB ~ 16 TiB | 20 GiB ー 16 TiB | 32 GiB ~ 32,767 GiB |
オンライン ストレージのスケーリング | サポートされています | サポート対象 | サポートされていません |
ストレージの自動スケーリング | サポートされています | サポート対象 | サポートされていません |
IOPS のスケーリング | サポートされていません | サポート対象 | サポートされていません |
コストの最適化 | |||
予約インスタンスの価格 | サポートされています | サポート対象 | サポートされています |
開発用サーバーの停止および開始 | サーバーは最大 7 日間停止できます | サーバーは最大 30 日間停止できます | サポートされています |
低コストのバースト可能 SKU | サポートされていません | サポートされています | サポートされています |
ネットワーク/セキュリティ | |||
ネットワーク接続 | - サーバー ファイアウォールがあるパブリック エンドポイント。 - Private Link がサポートされているプライベート アクセス。 |
- サーバー ファイアウォールがあるパブリック エンドポイント。 - Private Link がサポートされているプライベート アクセス。 - Virtual Network 統合を使用したプライベート アクセス。 |
- サーバー ファイアウォールがあるパブリック エンドポイント。 - Private Link がサポートされているプライベート アクセス。 |
SSL/TLS | 既定で有効になり、TLS v1.2、1.1、および 1.0 がサポートされます | 既定で有効になり、TLS v1.3、および 1.2 がサポートされます | TLS v1.2、1.1、および 1.0 でサポートされています |
保存データの暗号化 | カスタマー マネージド キーを使用してサポートされます (BYOK) | サービス マネージド キーを使用してサポートされます | サポートされていません |
Microsoft Entra 認証 | サポートされています | サポート対象 | サポートされていません |
Microsoft Defender for Cloud サポート | はい | はい | いいえ |
[Server Audit] | サポートされています | サポートされています | ユーザー管理 |
修正プログラムの適用とメンテナンス | |||
オペレーティング システムの修正プログラムの適用 | 自動 | 自動 | ユーザー管理 |
MySQL のマイナー バージョンのアップグレード | 自動 | 自動 | ユーザー管理 |
MySQL のメジャー バージョンのインプレース アップグレード | 5\.6 から 5.7 までサポートされます | 5.7 から 8.0 までサポートされます | ユーザー管理 |
メンテナンス管理 | システム管理 | お客様による管理 | ユーザー管理 |
メンテナンス期間 | 15 時間以内の任意の時間 | 1 時間の期間 | ユーザー管理 |
計画メンテナンスの通知 | 3 日 | 5日間 | ユーザー管理 |
高可用性 | |||
高可用性 | 組み込みの HA (ホット スタンバイなし) | 組み込みの HA (ホット スタンバイなし)、ホット スタンバイを使用した同じゾーンとゾーン冗長 HA | ユーザー管理 |
ゾーン冗長性 | サポートされていません | サポートされています | サポートされています |
スタンバイ ゾーンの配置 | サポートされていません | サポートされています | サポートされています |
自動フェールオーバー | はい (別のサーバーをスピン) | はい | ユーザー管理 |
ユーザーが開始した強制フェールオーバー | いいえ | はい | ユーザー管理 |
アプリケーションの透過的なフェールオーバー | はい | はい | ユーザー管理 |
レプリケーション | |||
読み取りレプリカのサポート | はい | はい | ユーザー管理 |
サポートされる読み取りレプリカの数 | 5 | 10 | ユーザー管理 |
レプリケーションのモード | 非同期 | 非同期 | ユーザー管理 |
読み取りレプリカでの GTID のサポート | サポートされています | サポートされています | ユーザー管理 |
リージョン間のサポート (geo レプリケーション) | はい | はい | ユーザー管理 |
ハイブリッド シナリオ | データイン レプリケーションを使用してサポートされます | データイン レプリケーションを使用してサポートされます | ユーザー管理 |
受信データのレプリケーションでの GTID のサポート | サポートされています | サポートされています | ユーザー管理 |
送信データのレプリケーション | サポートされていません | サポートされています | サポートされています |
バックアップと回復 | |||
自動バックアップ | はい | はい | いいえ |
バックアップ保持期間 | 7 から 35 日 | 1 から 35 日 | ユーザー管理 |
バックアップの長期的な保有期間 | ユーザー管理 | ユーザー管理 | ユーザー管理 |
バックアップのエクスポート | 論理バックアップを使用してサポートされます | 論理バックアップを使用してサポートされます | サポートされています |
保有期間内の任意の時点へのポイントインタイム リストア機能 | はい | はい | ユーザー管理 |
高速復元ポイント | いいえ | 有効 | いいえ |
別のゾーンで復元する機能 | サポートされていません | はい | はい |
別の VNet に復元する機能 | いいえ | イエス | はい |
別のリージョンに復元する機能 | はい (geo 冗長) | はい (geo 冗長) | ユーザー管理 |
削除されたサーバーを復元する機能 | はい | はい | いいえ |
ディザスター リカバリー | |||
Azure リージョン間での DR | リージョン間での読み取りレプリカの使用、geo 冗長バックアップ | geo 冗長バックアップの使用 | ユーザー管理 |
自動フェールオーバー | いいえ | いいえ | いいえ |
同じ r/w エンドポイントを使用できる | いいえ | サポートされていません | いいえ |
監視 | |||
Azure Monitor の統合およびアラート | サポートされています | サポートされています | ユーザー管理 |
データベース操作の監視 | サポートされています | サポートされています | ユーザー管理 |
Query Performance Insights | サポートされています | サポートされています (Workbooks を使用) | ユーザー管理 |
サーバー ログ | サポートされています | サポートされています (診断ログを使用) | ユーザー管理 |
[監査ログ] | サポートされています | サポート対象 | サポートされています |
エラー ログ | サポートされていません | サポートされています | サポートされています |
Azure Advisor のサポート | サポートされています | サポート対象 | サポートされていません |
プラグイン | |||
validate_password | サポートされていません | プレビュー段階 | サポートされています |
caching_sha2_password | サポートされていません | プレビュー段階 | サポートされています |
開発者の生産性 | |||
フリート管理 | Azure CLI、PowerShell、REST、Azure Resource Manager でサポートされています | Azure CLI、PowerShell、REST、Azure Resource Manager でサポートされています | Azure CLI、PowerShell、REST、Azure Resource Manager を使用して VM でサポートされています |
Terraform のサポート | サポートされています | サポート対象 | サポートされています |
GitHub のアクション | サポートされています | サポートされています | ユーザー管理 |
PaaS と IaaS のいずれかを選択するときのビジネスの要因
MySQL データベースをホストするために PaaS と IaaS のどちらを選択するかに影響する可能性のある要素がいくつかあります。
コスト
データベースをホストするための最適なソリューションを決定する際に、主な考慮事項は、多くの場合、コストの削減です。 これは、資金が少ないスタートアップ企業であるか、厳しい予算の制約下で運用している老舗企業内のチームであるかに関係なく当てはまります。 このセクションでは、Azure Database for MySQL と Azure VM 上の MySQL に適用される Azure の課金とライセンスの基礎について説明します。
課金
Azure Database for MySQL は現在、異なるリソース料金の複数のサービス レベルでサービスとして利用できます。 すべてのリソースは、固定レートで時間単位で課金されます。 現在サポートされているサービス レベル、コンピューティング サイズ、ストレージ容量の最新情報については、料金のページを参照してください。 サービス レベルとコンピューティング サイズを動的に調整して、アプリケーションのさまざまなスループット ニーズを満たすことができます。 インターネット トラフィックの送信に対しては、通常のデータ転送料金で課金されます。
Azure Database for MySQL では、Microsoft がデータベース ソフトウェアの構成、修正プログラムの適用、およびアップグレードを行います。 これらの自動化されたアクションにより、管理コストが削減されます。 また、Azure Database for MySQL には 自動化されたバックアップ機能があります。 こうした機能は、特に多数のデータベースがある場合の大幅なコスト削減に役立ちます。 対照的に、Azure VM 上の MySQL では、任意の MySQL バージョンを選択して実行できます。 どの MySQL バージョンを使用するかを問わず、プロビジョニングされた VM、データに関連するストレージ コスト、バックアップ、監視データ、ログ ストレージ、および使用される特定の MySQL ライセンスの種類 (存在する場合) に対応するコストを支払います。
Azure Database for MySQL は、ノードレベルの中断に対して組み込みの高可用性を提供し、サービスに対する 99.99% の SLA 保証を維持します。 ただし、VM 内でデータベースの高可用性を実現するには、MySQL データベースで利用できる MySQL レプリケーションなどの高可用性オプションを使用します。 サポートされている高可用性オプションを使用しても、追加の SLA は提供されません。 ただし、追加コストと管理オーバーヘッドで 99.99% を超えるデータベース可用性を実現できます。
価格の詳細については、次の記事を参照してください。
管理
多くの企業では、クラウド サービスに移行する決断によって、コストと同様に管理の複雑さを低減できます。
IaaS の場合、Microsoft では次のことを行います。
- 基になるインフラストラクチャを管理します。
- 基になるハードウェアと OS に対して自動化されたパッチ適用を提供します。
PaaS の利用時には、Microsoft が以下のことを行います。
- 基になるインフラストラクチャを管理します。
- 基になるハードウェア、OS、およびデータベース エンジンに対して修正プログラムを自動的に適用します。
- データベースの高可用性を管理します。
- 自動的にバックアップを実行してすべてのデータをレプリケートし、ディザスター リカバリーを提供します。
- 既定で保存データと移動中のデータを暗号化します。
- サーバーを監視して、クエリ パフォーマンスの分析情報とパフォーマンスに関する推奨事項についての機能を提供します。
各オプションの管理上の考慮事項について、次の一覧で説明します。
Azure Database for MySQL では、データベースを引き続き管理できます。 しかしながら、データベース エンジン、オペレーティング システム、ハードウェアを管理する必要はなくなります。 引き続き管理できる項目の例を次に示します。
- データベース
- サインイン
- インデックスのチューニング
- クエリのチューニング
- 監査
- セキュリティ
また、別のデータ センターに高可用性を構成するために必要な構成や管理は、最小限で済むか、まったく行わないで済みます。
Azure VM 上の MySQL では、オペレーティング システムと MySQL サーバー インスタンスの構成を制御できます。 VM を使用する場合は、オペレーティング システムとデータベース ソフトウェアの更新またはアップグレードをいつ行うかと、どのパッチを適用するかを決定します。 また、ウイルス対策アプリケーションなどの追加ソフトウェアをインストールするタイミングも選択します。 大幅な修正プログラムの適用、バックアップ、高可用性の実現を簡素化するために、自動化された機能がいくつか用意されています。 VM のサイズ、ディスクの数、ストレージの構成を制御できます。 詳細については、Azure の仮想マシンおよびクラウド サービスのサイズに関する記事を参照してください。
Azure へ移行するタイミング
Azure Database for MySQL は、開発者の生産性と新しいソリューションの製品化に要する時間の短縮が重要な場合において、クラウド用に設計されたアプリケーションに最適なソリューションです。 このサービスは、DBA のようなプログラムによる機能を備えることで、基になるオペレーティング システムとデータベースを管理する必要性が減少するため、クラウドの設計者と開発者に適しています。
新しいオンプレミス ハードウェアの購入に伴う時間とコストを回避したい場合、サービスではサポートされない MySQL エンジンのきめ細かな制御とカスタマイズが必要なアプリケーションや、基になっている OS へのアクセスを必要とするアプリケーションには、Azure VM 上の MySQL が適切なソリューションです。 このソリューションは、Azure Database for MySQL の適合性が低い場合、既存のオンプレミス アプリケーションとデータベースを Azure にそのまま移行する場合にも適しています。
プレゼンテーション層、アプリケーション層、データ層を変更する必要がないため、既存のソリューションを再設計する時間と予算が節約されます。 その代わりに、すべてのソリューションを Azure に移行することと、Azure プラットフォームで必要となる可能性のあるパフォーマンス最適化に取り組むことに集中できます。
次のステップ
- 「Azure Database for MySQL の価格」をご確認ください。
- 初めてのサーバーを作成してみましょう。