Azure Database for MySQL の Flexible Server とは?
※本ブログは、Microsoft Tech Community Blog “What is Flexible Server in Azure Database for MySQL?” の抄訳です。
Azure Database for MySQLの一般提供開始から 2 年以上の間に、MySQL マネージド データベース サービスを Azure で使用するユーザーから多くのことを聞き、多くのことを学びました。開発者は、プロビジョニングの容易さ、組み込みの高可用性、フルマネージドサービスの管理性を高く評価しています。しかし、一部のユーザーにとっては、マネージドサービスへの移行は、MySQL サーバーの構成に関して、データベース レベルの制御や柔軟性が失われると見なすことがありえます。
Azure OSS データベース エンジニアリング チームは、Microsoft Ignite での、Azure Database for MySQL の新しい Flexible Server デプロイオプションに関する大きな発表に非常に興奮しています。1年以上前に、マネージドサービスの制御と柔軟性のバランスを改善するサービスアーキテクチャを再考し、設計する行程を開始しました。
プレビュー中: Azure Database for MySQL Flexible Serverの紹介
MySQL の新しいFlexible Serverデプロイオプションは、次の目標を念頭に置いて設計されています:
- 開発者エクスペリエンスの簡素化 : 習熟、接続、および開始を迅速に行うことができます。
- データベースコントロールの最大化 – サーバー構成で最大限の制御を提供し、独自での MySQL 構築と同等のエクスペリエンスを提供します。
- より多くのコスト最適化コントロール – コストを最適化し、コストを節約するためのより多くのオプションを提供します。
- ゾーンの復元性に対応するアプリケーションを有効にする – MySQL データベースとアプリケーションを同じゾーンに配置して、可用性が高く、ゾーンの復元性に対応しパフォーマンスの高いアプリケーションを構築できるため、ゾーン レベルの障害を許容できます。
ここでは、Azure Database for MySQL の新しい Flexible Server デプロイオプションから期待できることと、エクスペリエンスについて少し説明します。
単一のAzure CLI コマンドで Flexible Server を作成する
開発者であれば、おそらく Azure Cloud Shell の Azure CLI コマンドに慣れているでしょう。次に示すように、単一の Azure CLI コマンドを使用して、MySQL の新しい Flexible Server デプロイオプションを作成できます。
Azure CLI 2.12.0以降 もしくは Azure Cloud Shell が必要です
az mysql flexible-server create -l location
単一の Azure CLI コマンドで仮想ネットワークに安全なFlexible Serverを作成する
コマンドの出力は、mysql cliクライアントで利用を開始できる接続文字列を示しています。
今日の時点で、Azure Database for MySQL Flexible Server は、次の Azure リージョンで稼働しています。
- East US 2
- West US 2
- North Europe
- Southeast Asia
今後数週間のうちに、8 つの新しいリージョンで Flexible Server をリリースする予定です。最新の情報については、ドキュメントを確認してください。
訳注:2020年10月19日に以下のリージョンが追加されました。
- Australia East
- Canada Central
- Central US
- East US
- Japan East
- Korea Central
- UK South
- West Europe
使い慣れたツールを使ってサーバーに接続すればうまくいきます!
MySQL の Flexible Server デプロイオプションを使用すると、MySQL ワークベンチやドライバーなどの使い慣れたツールを使用して接続でき、動作します!!!
ガイド付きのクイック スタートを取得する場合は、ここから始めることをお勧めします。以下に、コマンドの詳細な一覧を示します。
出力を示すスクリーンショット — Azure Cloud Shell のヘルプ パラメーター コマンドを使用して、az mysql Flexible Server cli でサポートされているすべてのコマンドの一覧を列挙します。
Azure ポータル、ARM (Azure Resource Manager)、または Terraform を使用してサーバーをプロビジョニングする際に、同じレベルのシンプルさと使いやすさが期待できます。
Flexible Serverによるサーバーパラメーター制御の追加
Flexible Server では、Single Server と比較して 30% 多くのパラメータを公開し、アプリケーションのニーズや依存関係に基づいて変更およびカスタマイズできるようになりました。
Azure ポータル上の Azure Database for MySQL Flexible Server のサーバーパラメーターブレードのスクリーンショット
ネットワーク分離の制御
Azure Database for MySQL の Flexible Server を使用すると、サーバーを稼働させ、パブリック アクセス モードにするか、プライベート アクセス モードで保護するかを選択できます。
プライベート アクセスを使用すると、Flexible Server をAzure 仮想ネットワークにデプロイできます。Azure 仮想ネットワークは、プライベートで安全なネットワーク通信を提供します。仮想ネットワーク内のリソースは、プライベート IP アドレスを介してのみ通信できます。プライベート アクセス モードの Flexible Server にはパブリック エンドポイントがなく、仮想ネットワークの外部からアクセスすることはできません。さらに、以下の単一のコマンドを使用して、仮想ネットワーク内に Flexible Server を作成できます。subnet には他のリソースがデプロイされていなければ、このサブネットは、まだ委譲されていない場合はMicrosoft.DBforMySQL/flexibleServersに委譲されます。詳細については、ネットワークコンセプトを参照してください。
az mysql flexible-server create –subnet /subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Network/virtualNetworks/{VNetName}/subnets/{SubnetName}
デフォルトでは、SSL は TLS 1.2 暗号化が適用された状態で有効になっています。現時点では、SSL/TLS 構成を制御できず、ポータルで自分で変更することはできません。製品チーム内で多くの議論を行い、最終的には信頼できるクラウドプロバイダーとして、セキュリティに関して正しい動作を強制することを選択しました。ただし、この点に関するフィードバックは歓迎しますので、SSL を無効にする、あるいは TLS < 1.2 をサポートする懸念や要件がある場合は、Azure フィードバック フォーラムで、Azure Database for MySQL のフィードバック項目を開くか投票することをお勧めします。
Azure ポータル上の Azure Database for MySQL の [ネットワーク] ブレードを示すスクリーンショット
計画メンテナンスのスケジュールを制御する
このサービスは、基になるハードウェア、OS、およびデータベース エンジンの自動修正プログラムを実行します。パッチには、セキュリティとソフトウェアの更新が含まれます。MySQL エンジンの場合、マイナー バージョンのアップグレードも、計画されたメンテナンス リリースの一部として含まれています。ミッション クリティカルなビジネス アプリケーションを管理および実行する場合、ビジネスのデータベース サーバーとアプリケーションの可用性に直接影響を与えるため、メンテナンス スケジュールを制御できることが重要です。また、アプリケーションの動作とパフォーマンスに対するパッチの影響をテストすることもできます。この場合、サービスがリリースしてテストを行い、後のスケジュールで実稼働環境でロールアウトする予定になるとすぐに、実稼働前およびテスト環境で更新プログラムを適用してリリースすることができます。Azure Database for MySQL の新しい Flexible Server オプションを使用すると、最適な時間にメンテナンスをスケジュールできるようになりました。Azure Portal の [メンテナンス] ブレードから、1 か月の範囲内で曜日と 1 時間の時間枠を指定できます。詳細については、スケジュールされたメンテナンスの概念を参照してください。
Azure ポータル上のAzure Database for MySQL Flexible Serverの[メンテナンス]ブレードで計画メンテナンスをスケジュールするスクリーンショット
月額$13から始められるバースト可能な SKU を使い始める
これは、個人的なプロジェクトや開発目的のためにMySQLサーバーを使用することを望んでいる多くの人からの長年の要望の一つでした。Azure Database for MySQL Flexible Server を使用すると、ワークロードが常に CPU 時間の 100% を必要としない場合は、バースト可能な SKU から始められるようになりました。一般に、バースト可能な SKU は開発/テスト シナリオに適しています。使用可能な最も低いバースト可能コンピューティング層 B1S は、月額 $ 13 からになります。詳細については、ドキュメントの「コンピューティング サイズとストレージサイズ」を参照してください。
Azure Database for MySQL Flexible Serverで使用可能なバースト可能な SKU の選択肢
コスト節約のために利用していないサーバを停止!
これは、サーバーを停止するだけで、使用されていないときにコンピューティング コストを節約しようとしている多くのユーザーからいただいていた要望の 1 つです。詳細については、「サーバーの概念」を参照してください。
Azure ポータルの[概要]ブレードでFlexible Serverを停止する
Flexible Server でゾーン冗長のアプリケーションを作成する
Azure Kubernetes サービス (AKS) または仮想マシン スケール セットを使用すると、ゾーンの障害に耐えることができるゾーンの復元性の高いアプリケーションを構築およびデプロイできます。Azure Database for MySQL Flexible Server を使用すると、MySQL データベース サーバーのゾーン冗長性も有効にできるようになりました。
MySQL サーバーに対して、Flexible Server でゾーン冗長高可用性を有効にすると、サービスはデータの同期レプリケーションを使用して、セカンダリ可用性ゾーン上のホット スタンバイ サーバーをプロビジョニングします。ゾーン障害が発生した場合、MySQL データベース サーバーは自動的にフェールオーバーしてセカンダリ可用性ゾーンのスタンバイ サーバーをオンラインにし、アプリケーションとデータベースが可用性ゾーン レベルの障害に対して高可用性とフォールト トレラントであることを保証します。詳細については、高可用性の概念を参照してください。
データの耐久性と高可用性を実現するために同期レプリケーションを利用するゾーン冗長HA
始めましょう
docs.microsoft.comのドキュメントのクイック スタートを使用して、最初のサーバーを作成することですぐに始められます:
- Create an Azure Database for MySQL Flexible server using Azure portal
- Create an Azure Database for MySQL Flexible server using Azure CLI
- Create an Azure Database for MySQL Flexible server using ARM template
詳細については、MySQL の Flexible Server のドキュメントを参照してください。
Azure Database for MySQLの操作に関する質問や提案については、 (Ask Azure DB for MySQL) に電子メールを送信できます。フィードバックを提供したり、新しい機能を要望いただくには、UserVoice経由でエントリを作っていただけると、我々が優先順位を付ける際に大変助かります。
Azure Database for MySQL の Flexible Server はプレビューでありSLA がないため、まだ運用環境のデプロイには利用できません。Single Server デプロイオプションは、引き続きエンタープライズ対応のプラットフォームであり、私の最新のサービスアップデートで共有したミッションクリティカルなアプリケーションとサービスをサポートしています。
Azure Database for MySQL の Single Server と Flexible Server を比較して、どのデプロイ オプションが適切であるかを把握できるように、ドキュメントに便利な機能比較マトリックスを作成してあります。