この記事では、フレキシブル サーバー デプロイ モデルの中核となる概念を概説し、その導入について説明します。 ワークロードに適したデプロイ オプションの詳細については、「Azure で適切な MySQL サーバー オプションを選択する」を参照してください。
Azure Database for MySQL - フレキシブル サーバーは、Microsoft Cloudでフル マネージドで運用対応のリレーショナル データベース サービスです。 これは、MySQL Community Edition (GPLv2 ライセンスで利用可能) のデータベース エンジン、バージョン 5.6 (廃止)、5.7、および 8.0 に基づいています。 このサービスは、データベース管理機能と構成設定に対してよりきめ細かい制御と柔軟性を提供します。 さまざまな Azure リージョンで一般提供されています。
Azure Database for MySQL - フレキシブル サーバーは次のサービスを提供します。
- ゾーン冗長性とローカル冗長性の高可用性 (HA)。
- メンテナンス期間をスケジュールする機能。
- 自動バックアップと最大 35 日間のポイントインタイム リストアを使用したデータ保護。
- サービスをセキュリティで保護し、最新の状態に保つための、基盤となるハードウェア、オペレーティング システム、データベース エンジンに対する自動修正とメンテナンス。
- 包括的な従量課金制の価格設定を使用した、予測可能なパフォーマンス。
- 秒単位のエラスティック スケーリング。
- 低コストのバースト可能なコンピューティング層と、サーバーを停止/起動する機能によるコスト最適化コントロール。
- 保存および移動中の機密データを保護するエンタープライズ レベルのセキュリティ、コンプライアンス、プライバシー。
- 大規模なデプロイの管理を簡素化するための監視と自動化。
- サポートを受ける複数の方法。
これらの機能には追加コストや管理はほとんど必要ありません。 そのため、時間とリソースを仮想マシンとインフラストラクチャの管理に奪われることなく、迅速なアプリ開発や、製品化に要する時間の短縮に専念することができます。 加えて、選択したオープンソース ツールとプラットフォームを使用してアプリケーションの開発を続けることができるので、新たにスキルを身に付けなくてもビジネスが求めるスピードと効率を実現することができます。
Azure Database for MySQL - フレキシブル サーバーは予約インスタンスもサポートします。 コンピューティングリソースの使用量が安定している運用ワークロードでは、予約インスタンスを使用することで、コストを節約できます。
Azure Database for MySQL - フレキシブル サーバーの最新の更新プログラムについては、
アーキテクチャの概要
フレキシブル サーバーのデプロイ オプションには、データベース ワークロードをサポートするために、次の 3 つのコンピューティング レベルに異なるコンピューティング容量とメモリ容量が用意されています。
- バースト可能レベルは、低コストの開発ワークロードや、フル コンピューティング容量を継続的に必要としない低コンカレンシーのワークロードに最適です。
- General Purpose レベルとメモリ最適化レベルは、高いコンカレンシー、スケール、予測可能なパフォーマンスを必要とする運用環境のワークロードに適しています。
最初のアプリをバースト可能レベルで低コストで構築し、後から実際のソリューションのニーズに応じて、スケールを調整することができます。 詳細については、「Azure Database for MySQL - フレキシブル サーバー サービス レベル」を参照してください。
フレキシブル サーバー アーキテクチャを使用すると、単一の可用性ゾーン内または複数の可用性ゾーンにまたがる高可用性を選択できます。 フレキシブル サーバーは、以下の点で最適です。
- バックアップ、高可用性、セキュリティ、監視などのデータベース管理のオーバーヘッドの低減、容易なデプロイ、簡素化されたスケーリング。
- より優れた制御とカスタマイズを備えた、MySQL のコミュニティ バージョンを必要とするアプリケーション開発。
- マネージド メンテナンス期間と共に、ローカル冗長またはゾーン冗長の高可用性を備えた運用ワークロード。
- 簡素化された開発エクスペリエンス。
12 か月間の無料プラン
Azure無料アカウントでは、Azure Database for MySQL - フレキシブルサーバーを12ヶ月間無料で使用できます。 オファーには、月間の利用制限として以下が含まれます
- バースト可能な Standard_B1ms 仮想マシンの使用時間は、最大 750 時間。 これはデータベース インスタンスを毎月十分に継続実行できるだけの時間です。
- 32 GB のストレージと 32 GB のバックアップ ストレージ。
このオファーを使用して、フレキシブル サーバー用Azureデータベース アプリケーションを開発およびデプロイできます。 Azure無料アカウントを使用して Azure Database for MySQL - フレキシブル サーバー インスタンスを無料で作成して使用する方法については、こちらのチュートリアルを参照してください。
可用性ゾーン内および可用性ゾーン間での高可用性
Azure Database for MySQL - フレキシブル サーバーを使用すると、自動フェールオーバーを使用して高可用性を構成できます。 高可用性ソリューションは、障害によってコミットされたデータが失われることがないように、またアプリケーションの全体的な稼働時間を向上させるのに役立ちます。
高可用性を構成すると、フレキシブル サーバーによってスタンバイ レプリカが自動的にプロビジョニングされて管理されます。 プライマリ レプリカとセカンダリ レプリカ用にプロビジョニングされたコンピューティングとストレージに対して課金されます。
高可用性アーキテクチャ モデルには、次の 2 つがあります。
ゾーン冗長の高可用性: このオプションは完全な分離を提供し、複数の可用性ゾーンにわたるインフラストラクチャの冗長性を構成する必要があります。 可用性ゾーン内のインフラストラクチャ障害に対して最高レベルの可用性を提供し、可用性ゾーン間の待機時間を許容できる場合に適しています。
ゾーン冗長 HA は、複数の可用性ゾーンとゾーン冗長 Premium ファイル共有をサポートするAzure リージョンの
subset で使用できます。 ローカル冗長高可用性: このオプションでは、プライマリ サーバーとスタンバイ サーバーの両方が同じ可用性ゾーンにあるため、ネットワーク待機時間が短いインフラストラクチャ冗長性が提供されます。 ゾーンをまたいでアプリケーションの冗長性を構成することなく、高可用性を提供します。
ローカル冗長 HA は、Azure Database for MySQL - フレキシブル サーバー インスタンスを作成できる すべてのAzure リージョン で使用できます。
詳細については、「
管理されたメンテナンスウィンドウによるパッチの自動適用
このサービスでは、基になるハードウェア、ペレーティング システム、およびデータベース エンジンの自動修正が実行されます。 パッチには、セキュリティとソフトウェアの更新プログラムが含まれています。 MySQL エンジンの場合、マイナー バージョンのアップグレードも計画メンテナンス リリースに含まれています。
パッチ適用のスケジュールをシステム管理として構成することも、独自のカスタム スケジュールを定義することもできます。 メンテナンス スケジュールの実行時にパッチが適用されるため、サーバーの再起動が必要になる場合があります。 カスタム スケジュールを使用すると、パッチ適用のサイクルを予測でき、ビジネスへの影響を最小限に抑えられるメンテナンス期間を選択できます。 サービスは、毎月のリリース スケジュールに従って、継続的インテグレーションとリリースを行っています。
詳細については、
自動バックアップ
Azure Database for MySQL - フレキシブル サーバー サービスは、サーバー バックアップを自動的に作成し、ユーザーが構成したローカル冗長ストレージまたは geo 冗長ストレージに格納します。 バックアップを使用して、バックアップの保有期間内の任意の時点にサーバーを復元できます。
1 日間から 35 日間の保有期間で設定できます。 既定は 7 日です。 すべてのバックアップが、AES 256 ビット暗号化によって暗号化されます。
詳細については、「backup and restore in Azure Database for MySQL」を参照してください。
ネットワークの分離
Azure Database for MySQLフレキシブル サーバーに接続するには、次の 2 つのネットワーク オプションがあります。
Private アクセス (仮想ネットワーク統合): Azure Database for MySQL - フレキシブル サーバー インスタンスを Azure 仮想ネットワークにデプロイできます。 仮想ネットワーク内のリソースでは、プライベート IP アドレスを通した通信が可能です。
次の機能が必要な場合は、仮想ネットワーク統合オプションを選択します。
- プライベート IP アドレスを使用して、同じ仮想ネットワーク内のAzure リソースから Azure Database for MySQL - フレキシブル サーバー インスタンスに接続します。
- 仮想プライベート ネットワーク (VPN) またはAzure ExpressRouteを使用して、Azure以外のリソースから Azure Database for MySQL - フレキシブル サーバー インスタンスに接続します。
- パブリックエンドポイントの使用は避けてください。
パブリック アクセス (許可された IP アドレス): パブリック エンドポイントを使用して Azure Database for MySQL フレキシブル サーバー インスタンスをデプロイできます。 パブリック エンドポイントは、パブリックに解決できる DNS アドレスです。 IP アドレスの範囲を選択して、サーバーへのアクセスを許可します。 このような種類のアクセス許可は、ファイアウォール規則と呼ばれます。
詳細については、「Azure Database for MySQL - フレキシブル サーバーの接続とネットワークの概念
パフォーマンスとスケールの迅速な調整
月あたり数ドルを支払って小規模なデータベースで最初のアプリを構築し、後から実際のソリューションのニーズに応じて、スケールをシームレスに調整することができます。 ストレージのスケーリングはオンラインであり、Azure Database for MySQL - フレキシブル サーバーの torage autogrow 機能をサポートします。
Azure Database for MySQL - フレキシブル サーバーを使用すると、ストレージに依存しない無料の IOPS 制限を超える 1 秒あたりの追加の入出力操作 (IOPS) をプロビジョニングできます。 この機能を使用すると、ワークロードの要件に基づいてプロビジョニングされる IOPS の数をいつでも増減できます。 動的なスケーラビリティにより、データベースは変化の激しいリソース要件に透過的に対処することができます。 消費したリソースについてのみ料金を支払います。
詳細については、「Azure Database for MySQL - フレキシブル サーバー サービス レベル」を参照してください。
読み取りレプリカを使用して、読み取りワークロードをスケールアウトする機能
MySQL は、インターネット規模の Web およびモバイル アプリケーションを実行するための人気のあるデータベース エンジンの 1 つです。 Microsoftお客様は、オンライン教育、ビデオ ストリーミング、デジタル決済ソリューション、eコマース プラットフォーム、ゲーム サービス、ニュース ポータル、政府および医療の Web サイトに使用します。 Web アプリケーションやモバイル アプリケーションのトラフィック増加に対応して、これらのサービスを提供し、スケーリングする必要があります。
アプリケーションは通常、Javaまたは PHP で開発され、次のいずれかになります。
- Azure仮想マシン スケール セットで実行するように移行するか、Azure App Serviceで実行するように移行するようにしました。
Azure Kubernetes Service (AKS)
App Service または AKS が基盤となるインフラストラクチャで仮想マシン スケール セットを使用すると、新しい仮想マシンが瞬時にプロビジョニングされ、アプリケーションのステートレス コンポーネントがレプリケートされて要求に対応するため、アプリケーションのスケーリングが簡略化されます。 しかし、多くの場合、データベースは負荷の中心となるステートフル コンポーネントとしてボトルネックになります。
read レプリカ機能を使用すると、Azure Database for MySQL - フレキシブル サーバー インスタンスから読み取り専用サーバーにデータをレプリケートできます。 ソース サーバーから最大で 10 個のレプリカにレプリケートできます。
レプリカは、MySQL エンジンのネイティブなバイナリ ログ (binlog) ファイルの位置ベースのレプリケーション テクノロジにより非同期的に更新されます。 ProxySQL などのロード バランサー プロキシ ソリューションを使用して、アプリケーションのリファクタリング コストを発生させることなく、アプリケーションのワークロードを読み取りレプリカにシームレスにスケールアウトすることができます。
詳細については、「read replicas in Azure Database for MySQL」を参照してください。
データインレプリケーションによるハイブリッドまたはマルチクラウドのデータ同期
data-in レプリケーション機能を使用して、外部 MySQL サーバーから Azure Database for MySQL - フレキシブル サーバーにデータを同期できます。 外部サーバーは、オンプレミス、仮想マシン、Azure Database for MySQL - 単一サーバー、または他のクラウド プロバイダーによってホストされているデータベース サービス内に存在できます。
データイン レプリケーションは、バイナリ ログ (binlog) ファイル内の位置に基づいて行われます。 この機能を使用する上で、以下のシナリオを考慮する必要があります。
- ハイブリッド データ同期
- マルチクラウド同期
- Azure Database for MySQL - フレキシブル サーバーへの最小化ダウンタイムの移行
詳細については、「データを Azure Database for MySQL - フレキシブル サーバーにレプリケートする」を参照してください。
オンデマンド サーバーの停止/開始
Azure Database for MySQL - フレキシブル サーバーを使用すると、必要に応じてサーバーを停止して起動し、コストを最適化できます。 サーバーが停止すると、コンピューティング レベルの課金は直ちに停止します。 この機能は、開発中、テスト中、期限付きの予測可能な運用ワークロードの実行中に大幅にコストを削減するのに役立ちます。 サーバーは、すぐに再起動しない限り 30 日間停止状態のままになります。
詳細については、「Azure Database for MySQL - フレキシブル サーバーの
エンタープライズ グレードのセキュリティ、コンプライアンス、プライバシー
Azure Database for MySQL - フレキシブル サーバーは、保存データのストレージ暗号化に FIPS 140-2 検証済み暗号化モジュールを使用します。 クエリの実行中に作成されるデータ (バックアップを含む) と一時ファイルは暗号化されます。
このサービスでは、Azure ストレージ暗号化に含まれる AES 256 ビット暗号が使用され、キーはシステム管理 (既定) にすることができます。 保存データの暗号化には、Azure キー コンテナーまたはマネージド ハードウェア セキュリティ モジュールに格納されているカスタマー マネージド キーを使用することもできます。 詳細については、「Azure Database for MySQL のカスタマー マネージド キーを使用した
Azure Database for MySQL - フレキシブル サーバーでは、トランスポート層セキュリティ (TLS) が既定で適用され、移動中のデータが暗号化されます。 Azure Database for MySQL - フレキシブル サーバーでは、TLS 1.2 を使用する暗号化された接続がサポートされます。 TLS 1.0 および TLS 1.1 を使用するすべての受信接続は拒否されます TLS の強制を無効にするには、 require_secure_transport サーバー パラメーターを設定してから、サーバーの最小 tls_version 値を設定します。 詳細については、「暗号化された接続でフレキシブル サーバーとして Azure Database for MySQL に接続する」を参照してください。
Azure Database for MySQL - フレキシブル サーバーでは、仮想ネットワーク統合を介してサーバーへの完全なプライベート アクセスを許可します。 仮想ネットワーク内のサーバーには、プライベート IP アドレスを介してのみアクセスおよび接続できます。 仮想ネットワーク統合により、パブリック アクセスが拒否され、パブリック エンドポイントを介してサーバーにアクセスできなくなります。 詳細については、「Azure Database for MySQL - フレキシブル サーバーの接続とネットワークの概念
監視とアラート
Azure Database for MySQL - フレキシブル サーバーには、パフォーマンスの監視とアラート機能が組み込まれています。 すべてのAzureメトリックの頻度は 1 分です。 各メトリクスは、過去30日間のデータを保持します。
メトリックにアラートを構成できます。 Azure Database for MySQL - フレキシブル サーバーは、リソース使用率を監視するためのホスト サーバー メトリックを公開し、低速クエリ ログを構成できるようにします。 これらのツールを使用すると、ワークロードをすばやく最適化し、最適なパフォーマンスが得られるようにサーバーを構成することができます。
Azure Database for MySQL - フレキシブル サーバーでは、Azure Monitor ブックを使用して、低速クエリと監査ログ データを視覚化できます。 ブックを使用すると、データを分析し、Azure ポータル内で豊富なビジュアル レポートを作成するための柔軟なキャンバスが得られます。 Azure Database for MySQL - フレキシブル サーバーには、次の 3 つのブック テンプレートが用意されています。サーバーの概要、Tutorial: Azure Database for MySQLを使用して監査ログを構成する - フレキシブル サーバー、および Tutorial: Query Performance Insight for Azure Database for MySQL。
Query Performance Insight ワークブックは、次のような情報を提供することで、データベースのパフォーマンスのトラブルシューティングに費やす時間を短縮するのに役立ちます。
- 実行時間が長いクエリの上位とその傾向。
- クエリの詳細: クエリ テキストと、クエリ時間の最小値、最大値、平均値、標準偏差を含む実行履歴を表示します。
- リソース使用率 (CPU、メモリ、ストレージ)。
さらに、Percona の監視と管理などのコミュニティ監視ツールを使用して、Azure Database for MySQL - フレキシブル サーバーと統合できます。
詳細については、「Monitor Azure Database for MySQL - フレキシブル サーバーを参照してください。
Migration
Azure Database for MySQL - フレキシブル サーバーは、コミュニティ バージョンの MySQL を実行します。 この設計により、アプリケーションの完全な互換性が確保され、MySQL エンジンで開発された既存のアプリケーションを Azure Database for MySQL - フレキシブル サーバーに移行するためのリファクタリング コストを最小限に抑える必要があります。 次のオプションを使用して、Azure Database for MySQL - フレキシブル サーバーに移行できます。
オフライン移行
ソースとAzureの間のネットワーク帯域幅が良好な場合 (高速 ExpressRoute 接続など) にAzure Database Migration Serviceを使用します。 詳しい手順については、「
mydumper と myloader を用いて、圧縮設定を行い、低速ネットワーク(インターネットなど)経由でのデータ転送を効率化します。 詳しい手順については、 mydumper/myloader を使用して大規模なデータベースを Azure Database for MySQL に移行する方法を参照してください。
オンラインの移行または最小限のダウンタイムでの移行
初期シードにおいて、mydumper/myloader を使用した一貫性のあるバックアップと復元により、データインレプリケーションを使用します。 詳細な手順については、「オープン ソース ツールを使用した Azure Database for MySQL - 単一サーバーから Azure Database for MySQL への移行 - フレキシブル サーバーを参照してください。
5 つの簡単な手順で Azure Database for MySQL - 単一サーバーから Azure Database for MySQL - フレキシブル サーバーに移行するには、こちらのブログを参照してください。
詳細については、「
Azure リージョン
Azureでワークロードを実行する利点の 1 つは、そのグローバルなリーチです。 Azure Database for MySQL - フレキシブル サーバーは現在、次のAzure リージョンで使用できます。
| Region | Availability | ローカル冗長 HA | ゾーン冗長 HA | geo 冗長バックアップ |
|---|---|---|---|---|
| オーストラリア中部 | Yes | Yes | No | No |
| オーストラリア東部 | Yes | Yes | Yes | Yes |
| オーストラリア南東部 | Yes | Yes | No | Yes |
| オーストリア東部 | Yes | Yes | No | Yes |
| ベルギー中部 | Yes | Yes | No | Yes |
| ブラジル南部 | Yes | Yes | Yes | Yes |
| カナダ中部 | Yes | Yes | Yes | Yes |
| カナダ東部 | Yes | Yes | No | Yes |
| インド中部 | Yes | Yes | Yes | Yes |
| 米国中部 | Yes | Yes | Yes | Yes |
| チリ中部 | Yes | Yes | Yes | Yes |
| 中国東部 2 | Yes | Yes | No | Yes |
| 中国東部 3 | Yes | Yes | No | Yes |
| 中国北部 2 | Yes | Yes | No | Yes |
| 中国北部 3 | Yes | Yes | Yes | Yes |
| デンマーク東部 | Yes | Yes | Yes | Yes |
| 東アジア (香港特別行政区) | Yes | Yes | Yes | Yes |
| 米国東部 | Yes | Yes | Yes | Yes |
| 米国東部 2 | Yes | Yes | Yes | Yes |
| フランス中部 | Yes | Yes | Yes | Yes |
| フランス南部 | Yes | Yes | No | Yes |
| ドイツ中西部 | Yes | Yes | Yes | Yes |
| ドイツ北部 | Yes | Yes | No | Yes |
| インドネシア中部 | Yes | Yes | No | No |
| イスラエル中部 | Yes | Yes | Yes | No |
| イタリア北部 | Yes | Yes | Yes | No |
| 東日本 | Yes | Yes | Yes | Yes |
| 西日本 | Yes | Yes | Yes | Yes |
| JIO インド西部 | Yes | Yes | No | No |
| 韓国中部 | Yes | Yes | Yes | Yes |
| 韓国南部 | Yes | Yes | No | Yes |
| マレーシア西部 | Yes | Yes | Yes | Yes |
| メキシコ中部 | Yes | Yes | Yes | No |
| ニュージーランド北部 | Yes | Yes | Yes | No |
| 米国中北部 | Yes | Yes | No | Yes |
| 北ヨーロッパ | Yes | Yes | Yes | Yes |
| ノルウェー東部 | Yes | Yes | Yes | Yes |
| ノルウェー西部 | Yes | Yes | No | No |
| ポーランド中部 | Yes | Yes | Yes | No |
| カタール中部 | Yes | Yes | Yes | No |
| 南アフリカ北部 | Yes | Yes | Yes | Yes |
| 南アフリカ西部 | Yes | Yes | No | Yes |
| 米国中南部 | Yes | Yes | Yes | Yes |
| インド南部 | Yes | Yes | No | Yes |
| 東南アジア | Yes | Yes | Yes | Yes |
| スペイン中部 | Yes | Yes | Yes | Yes |
| スウェーデン中部 | Yes | Yes | Yes | No |
| スイス北部 | Yes | Yes | Yes | Yes |
| スイス西部 | Yes | Yes | No | Yes |
| 台湾北部 | Yes | Yes | No | No |
| 台湾北西部 | Yes | Yes | No | No |
| アラブ首長国連邦中部 | Yes | Yes | No | Yes |
| アラブ首長国連邦北部 | Yes | Yes | Yes | Yes |
| 英国南部 | Yes | Yes | Yes | Yes |
| 英国西部 | Yes | Yes | No | Yes |
| アメリカ政府 バージニア州 | Yes | Yes | Yes | No |
| USGov アリゾナ | Yes | Yes | Yes | Yes |
| USGov テキサス | Yes | Yes | No | Yes |
| 米国中西部 | Yes | Yes | No | Yes |
| 西ヨーロッパ | Yes | Yes | Yes | Yes |
| 米国西部 | Yes | Yes | No | Yes |
| 米国西部 2 | Yes | Yes | Yes | Yes |
| 米国西部 3 | Yes | Yes | Yes | Yes |
フィードバックとサポート
Azure Database for MySQL - フレキシブル サーバーの使用についてご質問やご提案がある場合は、次の連絡先を検討してください。
- Azure サポートに連絡するには、Azure ポータルで要求を送信します。
- ご意見や新機能に関するご要望については、コミュニティ フィードバックにご投稿ください。