Azure Database for MySQL - フレキシブル サーバーとは
適用対象: Azure Database for MySQL - フレキシブル サーバー
この記事では、フレキシブル サーバー デプロイ モデルの中核となる概念を概説し、その導入について説明します。 ワークロードに適したデプロイ オプションについては、「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 - フレキシブル サーバーの最新の更新情報については、「Azure Database for MySQL - フレキシブル サーバーの新機能」を参照してください。
ーキテクチャの概要
フレキシブル サーバーのデプロイ オプションには、データベース ワークロードをサポートするために、次の 3 つのコンピューティング レベルに異なるコンピューティング容量とメモリ容量が用意されています。
- バースト可能レベルは、低コストの開発ワークロードや、フル コンピューティング容量を継続的に必要としない低コンカレンシーのワークロードに最適です。
- General Purpose と Business Critical レベルは、高いコンカレンシー、スケール、予測可能なパフォーマンスを必要とする運用ワークロードに適しています。
最初のアプリをバースト可能レベルで低コストで構築し、後から実際のソリューションのニーズに応じて、スケールを調整することができます。 詳細については、「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 リージョンのサブセットで利用できます。
同一ゾーンの高可用性: プライマリサーバーとスタンバイサーバーが同じ可用性ゾーン内に配置されるため、ネットワーク待機時間が短い、インフラストラクチャの冗長性が確保されます。 ゾーンをまたいでアプリケーションの冗長性を構成することなく、高可用性を提供します。
同一ゾーン HA は、Azure Database for MySQL - フレキシブル サーバー インスタンスを作成できるすべての Azure リージョンで使用できます。
詳細については、「Azure Database for MySQL フレキシブル サーバーでの高可用性の概念」を参照してください。
マネージド メンテナンス期間によるパッチの自動適用
このサービスでは、基になるハードウェア、ペレーティング システム、およびデータベース エンジンの自動修正が実行されます。 パッチには、セキュリティとソフトウェアの更新プログラムが含まれています。 MySQL エンジンの場合、マイナー バージョンのアップグレードも計画メンテナンス リリースに含まれています。
パッチ適用のスケジュールをシステム管理として構成することも、独自のカスタム スケジュールを定義することもできます。 メンテナンス スケジュールの実行時にパッチが適用されるため、サーバーの再起動が必要になる場合があります。 カスタム スケジュールを使用すると、パッチ適用のサイクルを予測でき、ビジネスへの影響を最小限に抑えられるメンテナンス期間を選択できます。 サービスは、毎月のリリース スケジュールに従って、継続的インテグレーションとリリースを行っています。
詳細については、「Azure Database for MySQL - フレキシブル サーバーでの予定メンテナンス」を参照してください。
自動バックアップ
Azure Database for MySQL - フレキシブル サーバー サービスは、サーバーのバックアップを自動的に作成し、ユーザーが構成したローカル冗長ストレージまたは geo 冗長ストレージに保存します。 バックアップを使用して、バックアップの保有期間内の任意の時点にサーバーを復元できます。
1 日間から 35 日間の保有期間で設定できます。 既定は 7 日です。 すべてのバックアップが、AES 256 ビット暗号化によって暗号化されます。
詳細については、「Azure Database for MySQL - フレキシブル サーバーでのバックアップと復元」を参照してください。
ネットワークの分離
Azure Database for MySQL - フレキシブル サーバーに接続するには、次の 2 つのネットワーク オプションがあります。
プライベート アクセス (仮想ネットワーク統合): Azure Database for MySQL - フレキシブル サーバー インスタンスを Azure 仮想ネットワークにデプロイできます。 仮想ネットワーク内のリソースでは、プライベート IP アドレスを通した通信が可能です。
次の機能が必要な場合は、仮想ネットワーク統合オプションを選択します。
- プライベート IP アドレスを使用して、同じ仮想ネットワーク内の Azure リソースから Azure Database for MySQL - フレキシブル サーバー インスタンスに接続します。
- 仮想プライベート ネットワーク (VPN) または ExpressRoute を使用して Azure 以外のリソースからAzure Database for MySQL - フレキシブル サーバー インスタンスに接続します。
- パブリックエンドポイントの使用は避けてください。
パブリック アクセス (許可された IP アドレス): Azure Database for MySQL - フレキシブル サーバー インスタンスは、パブリックエンドポイントを使用してデプロイできます。 パブリック エンドポイントは、パブリックに解決できる DNS アドレスです。 IP アドレスの範囲を選択して、サーバーへのアクセスを許可します。 このような種類のアクセス許可は、ファイアウォール規則と呼ばれます。
「Azure Database for MySQL の接続およびネットワークの概念 - フレキシブル サーバー」を参照してください。
パフォーマンスとスケールの迅速な調整
月あたり数ドルを支払って小規模なデータベースで最初のアプリを構築し、後から実際のソリューションのニーズに応じて、スケールをシームレスに調整することができます。 Azure Database for MySQL - フレキシブル サーバーのストレージスケーリングはオンラインで行え、ストレージの自動拡張機能をサポートしています。
Azure Database for MySQL - フレキシブル サーバーを使用すると、ストレージ容量とは別に、無料の IOPS 制限を超える 1 秒あたりの追加の入出力操作 (IOPS) をプロビジョニングできます。 この機能を使用すると、ワークロードの要件に基づいてプロビジョニングされる IOPS の数をいつでも増減できます。 動的なスケーラビリティにより、データベースは変化の激しいリソース要件に透過的に対処することができます。 消費したリソースについてのみ料金を支払います。
詳細については、「Azure Database for MySQL - フレキシブル サーバーのサービス レベル」を参照してください。
読み取りレプリカを使用して、読み取りワークロードをスケールアウトする機能
MySQL は、インターネット規模の Web およびモバイル アプリケーションを実行するための人気のあるデータベース エンジンの 1 つです。 Microsoft のお客様は、オンライン教育、ビデオ ストリーミング、デジタル決済ソリューション、eコマース プラットフォーム、ゲーム サービス、ニュース ポータル、政府機関や医療機関の Web サイトにこれを使用しています。 Web アプリケーションやモバイル アプリケーションのトラフィック増加に対応して、これらのサービスを提供し、スケーリングする必要があります。
通常、アプリケーションは Java または PHP で開発され、次のいずれかになります。
- Azure 仮想マシン スケール セットまたは Azure アプリ Service で実行するように移行されている
- Azure Kubernetes Service (AKS) 上で実行できるようにコンテナー化されている
App Service または AKS が基盤となるインフラストラクチャで仮想マシン スケール セットを使用すると、新しい仮想マシンが瞬時にプロビジョニングされ、アプリケーションのステートレス コンポーネントがレプリケートされて要求に対応するため、アプリケーションのスケーリングが簡略化されます。 しかし、多くの場合、データベースは負荷の中心となるステートフル コンポーネントとしてボトルネックになります。
読み取りレプリカ機能を使用すると、Azure Database for MySQL - フレキシブル サーバー インスタンスから読み取り専用サーバーにデータをレプリケートできます。 ソース サーバーから最大で 10 個のレプリカにレプリケートできます。
レプリカは、MySQL エンジンのネイティブなバイナリ ログ (binlog) ファイルの位置ベースのレプリケーション テクノロジにより非同期的に更新されます。 ProxySQL などのロード バランサー プロキシ ソリューションを使用して、アプリケーションのリファクタリング コストを発生させることなく、アプリケーションのワークロードを読み取りレプリカにシームレスにスケールアウトすることができます。
詳細については、「Azure Database for MySQL - フレキシブル サーバーの読み取りレプリカ」を参照してください。
データインレプリケーションによるハイブリッドまたはマルチクラウドのデータ同期
データイン レプリケーション機能を使用して、外部 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 Key Vault またはマネージドハードウェアセキュリティモジュールに格納し、それらのキーを使用して、保存中のデータを暗号化することも可能です。 詳細については、「Azure Database for MySQL - フレキシブル サーバーのカスタマー マネージド キーを使用したデータ暗号化」を参照してください。
Azure Database for MySQL フレキシブル サーバーでは、既定で適用されるトランスポート層セキュリティを使用して、移動中のデータが暗号化されます。 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 portal 内に豊富な視覚レポートを作成するための柔軟なキャンバスが得られます。 Azure Database for MySQL - フレキシブル サーバーには、Server Overview、Auditing、Query Performance Insights という 3 つのブック テンプレートが用意されています。
Query Performance Insight ワークブックは、次のような情報を提供することで、データベースのパフォーマンスのトラブルシューティングに費やす時間を短縮するのに役立ちます。
- 実行時間の長いクエリの上位 N 個とその傾向。
- クエリの詳細: クエリ テキストと、クエリ時間の最小値、最大値、平均値、標準偏差を含む実行履歴を表示します。
- リソース使用率 (CPU、メモリ、ストレージ)。
さらに、Percona Monitoring and Management などのコミュニティ監視ツールを使用し、それらを Azure Database for MySQL - フレキシブル サーバーと統合できます。
詳細については、「Azure Database for MySQL - フレキシブル サーバーを監視する」を参照してください。
移行
Azure Database for MySQL - フレキシブル サーバーでは、MySQL のコミュニティ バージョンを実行します。 この設計により、アプリケーションの完全な互換性が確保され、MySQL エンジン上で開発された既存のアプリケーションを Azure Database for MySQL - フレキシブル サーバーに移行するために必要なリファクタリング コストが最小限に抑えられます。 次のオプションを使用して、Azure Database for MySQL - フレキシブル サーバーに移行できます。
オフライン移行
ソースと Azure の間のネットワーク帯域幅が適切な場合 (高速 ExpressRoute 接続など) は、Azure Data Migration Service を使用します。 手順の詳細については、「チュートリアル: DMS を使用して MySQL を Azure Database for MySQL にオフラインで移行する」を参照してください。
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 Database for MySQL への移行に使用する適切なツールを選択する」を参照してください。
Azure リージョン
Azure でワークロードを実行する利点の 1 つは、グローバルに展開できることです。 Azure Database for MySQL - フレキシブル サーバーは現在、次の Azure リージョンで利用できます
リージョン | 可用性 | 同一ゾーン HA | ゾーン冗長 HA | geo 冗長バックアップ |
---|---|---|---|---|
オーストラリア中部 | ✔️ | ✔️ | ❌ | ❌ |
オーストラリア東部 | ✔️ | ✔️ | ✔️ | ✔️ |
Australia Southeast | ✔️ | ✔️ | ❌ | ✔️ |
ブラジル南部 | ✔️ | ✔️ | ✔️ | ✔️ |
カナダ中部 | ✔️ | ✔️ | ✔️ | ✔️ |
カナダ東部 | ✔️ | ✔️ | ❌ | ✔️ |
インド中部 | ✔️ | ✔️ | ✔️ | ✔️ |
米国中部 | ✔️ | ✔️ | ✔️ | ✔️ |
中国東部 2 | ✔️ | ✔️ | ❌ | ✔️ |
China East 3 | ✔️ | ✔️ | ❌ | ✔️ |
中国北部 2 | ✔️ | ✔️ | ❌ | ✔️ |
China North 3 | ✔️ | ✔️ | ✔️ | ✔️ |
東アジア (香港特別行政区) | ✔️ | ✔️ | ✔️ | ✔️ |
米国東部 | ✔️ | ✔️ | ✔️ | ✔️ |
米国東部 2 | ✔️ | ✔️ | ✔️ | ✔️ |
フランス中部 | ✔️ | ✔️ | ✔️ | ✔️ |
フランス南部 | ✔️ | ✔️ | ❌ | ✔️ |
ドイツ中西部 | ✔️ | ✔️ | ✔️ | ✔️ |
ドイツ北部 | ✔️ | ✔️ | ❌ | ✔️ |
イスラエル中部 | ✔️ | ✔️ | ✔️ | ❌ |
イタリア北部 | ✔️ | ✔️ | ✔️ | ❌ |
東日本 | ✔️ | ✔️ | ✔️ | ✔️ |
西日本 | ✔️ | ✔️ | ❌ | ✔️ |
JIO インド西部 | ✔️ | ✔️ | ❌ | ❌ |
韓国中部 | ✔️ | ✔️ | ✔️ | ✔️ |
韓国南部 | ✔️ | ✔️ | ❌ | ✔️ |
米国中北部 | ✔️ | ✔️ | ❌ | ✔️ |
北ヨーロッパ | ✔️ | ✔️ | ✔️ | ✔️ |
ノルウェー東部 | ✔️ | ✔️ | ✔️ | ✔️ |
ノルウェー西部 | ✔️ | ✔️ | ❌ | ❌ |
ポーランド中部 | ✔️ | ✔️ | ✔️ | ❌ |
カタール中部 | ✔️ | ✔️ | ✔️ | ❌ |
南アフリカ北部 | ✔️ | ✔️ | ✔️ | ✔️ |
南アフリカ西部 | ✔️ | ✔️ | ❌ | ✔️ |
米国中南部 | ✔️ | ✔️ | ✔️ | ✔️ |
インド南部 | ✔️ | ✔️ | ❌ | ✔️ |
東南アジア | ✔️ | ✔️ | ✔️ | ✔️ |
スペイン中部 | ✔️ | ✔️ | ❌ | ✔️ |
スウェーデン中部 | ✔️ | ✔️ | ✔️ | ❌ |
スイス北部 | ✔️ | ✔️ | ✔️ | ✔️ |
スイス西部 | ✔️ | ✔️ | ❌ | ✔️ |
台湾北部 | ✔️ | ✔️ | ❌ | ❌ |
台湾北西部 | ✔️ | ✔️ | ❌ | ❌ |
アラブ首長国連邦中部 | ✔️ | ✔️ | ❌ | ✔️ |
アラブ首長国連邦北部 | ✔️ | ✔️ | ✔️ | ✔️ |
英国南部 | ✔️ | ✔️ | ✔️ | ✔️ |
英国西部 | ✔️ | ✔️ | ❌ | ✔️ |
USGov バージニア州 | ✔️ | ✔️ | ❌ | ❌ |
USGov アリゾナ | ✔️ | ✔️ | ❌ | ✔️ |
USGov テキサス | ✔️ | ✔️ | ❌ | ✔️ |
米国中西部 | ✔️ | ✔️ | ❌ | ✔️ |
西ヨーロッパ | ✔️ | ✔️ | ✔️ | ✔️ |
米国西部 | ✔️ | ✔️ | ❌ | ✔️ |
米国西部 2 | ✔️ | ✔️ | ✔️ | ✔️ |
米国西部 3 | ✔️ | ✔️ | ✔️ | ✔️ |
フィードバックとサポート
Azure Database for MySQL - フレキシブル サーバーの使用に関するご質問やご提案がある場合は、次の連絡先をご利用ください。
- Azure サポートに連絡する場合、Azure portal でサポート要求を提出してください。
- ご意見や新機能に関するご要望については、コミュニティ フィードバックにご投稿ください。
関連するコンテンツ
- Azure portal を使用して Azure Database for MySQL - フレキシブル サーバー インスタンスを作成する
- Azure CLI を使用して Azure Database for MySQL - フレキシブル サーバー インスタンスを作成する
- Azure CLI を使用して Azure Database for MySQL - フレキシブル サーバー インスタンスを管理する
- Python を使用して Azure Database for MySQL - フレキシブル サーバーに接続し、データのクエリを実行する
- Azure Database for MySQL - フレキシブル サーバーで PHP を使用する