Azure Database for MySQL をデプロイして接続する方法
Azure Database for MySQL - フレキシブル サーバーの機能の概要を理解すると、Web ベースのアプリケーションの開発、テスト、運用の各環境に最適なデプロイ設定を明らかにできます。 ターゲットの Azure リージョンの選択、ゾーン冗長の高可用性、バックアップの冗長性など、重要な決定は設計段階で行う必要があります。 コンピューティングとストレージのリソースの割り当てなどのその他の決定は、時間が経つと変化する使用パターンによってもたらされます。
このモジュールのこれまでのユニットは、設計と計画のフェーズに役立つはずです。 ここでは、Azure Database for MySQL フレキシブル サーバーを独自のソリューションの一部として実装する準備ができたときに、それをデプロイして接続する方法に焦点を当てます。
デプロイの際に適切な選択を行うには、さまざまな構成設定間の依存関係を理解することが重要です。 具体的には、次の点に注意することが重要です。
- 高可用性を有効にしたサーバーでは、ストレージの自動拡張を無効にすることはサポートされていません。
- 高可用性はバースト可能レベルではサポートされませんが、サーバーを特定の可用性ゾーンにデプロイすることはできます。
Azure Database for MySQL フレキシブル サーバーをデプロイする方法
さまざまな方法を使って、Azure Database for MySQL フレキシブル サーバーをプロビジョニングできます。 完全に自動化されたデプロイを使うこともできますが、最も簡単なデプロイ方法は、Azure portal のグラフィカル ユーザー インターフェイス (GUI) を使ってインスタンスを作成することです。 ポータルを使ってインスタンスを作成するときに、サーバー設定の範囲を構成できます。これは、次の 5 つのグループに分けることができます: 基本、コンピューティングとストレージ、ネットワーク、セキュリティ、タグ。 各グループとそれに対応する設定オプションがそのページに表示されます。
[基本] ページには、次の構成に使用できる設定が含まれます。
プロジェクトの詳細: ターゲット サブスクリプションとリソース グループの名前。
サーバーの詳細:
- サーバーの名前
- ターゲット Azure リージョン
- MySQL のバージョンとコンピューティング レベル
- 可用性ゾーンの数
認証方法。 MySQL 認証、Microsoft Entra ID 認証、または 2 つの方法の組み合わせを選びます。
Note
選んだコンピューティング サイズとリージョンによっては、このステップの間は可用性ゾーンの選択を使用できない場合があります。
[基本] ページの [サーバーの構成] リンクからアクセスできる [コンピューティングとストレージ] ページには、構成に使用できる設定が含まれます。
コンピューティング。 コンピューティング層とコンピューティング サイズのオプション。
ストレージ。 ストレージ サイズ (GiB 単位)、IOPS 数 (または自動スケーリング)、ストレージ自動拡張オプション。
高可用性: 高可用性モード (同一ゾーンまたはゾーン冗長)。
バックアップ。 バックアップ保持期間とバックアップ geo 冗長性オプション。
[ネットワーク] ページでは、接続方法を指定できます。 選択に応じて、任意の Azure サービスからのパブリック アクセスの許可、ファイアウォール規則の構成、仮想ネットワーク統合の設定、プライベート エンドポイントの作成を行うこともできます。
[セキュリティ] ページには、既定で構成されるストレージ暗号化に加えて、アプリケーションを変更せずに、保存時にデータベース、バックアップ、ログを暗号化するためのデータ暗号化構成オプションが含まれています。
[タグ] ページでは、デプロイされるリソースのメタデータを定義するキーと値のペアを追加します。
Azure Database for MySQL フレキシブル サーバーに接続する方法
フレキシブル サーバーに接続する前に、デプロイの間に実装したネットワーク構成を検討してください。 たとえば、フレキシブル サーバーがパブリック アクセスを使って構成されていて、データベースに直接ネットワーク アクセスできない Azure Cloud Shell や他のクライアント アプリケーションから接続する場合は、サーバー ファイアウォールの [Azure 内の任意の Azure サービスにこのサーバーへのパブリック アクセスを許可する] オプションを有効にします。 オンプレミスのアプリケーション サーバーまたはインターネット接続されたデバイスから接続する場合は、接続するデバイスまたはサーバーのパブリック IP アドレスをファイアウォールの例外リストに追加します。
Azure VM から、または Azure で実行されているコンテナー化されたワークロードからのセキュリティ保護された接続の場合は、プライベート エンドポイントを有効にすることを検討します。 プライベート エンドポイントを使うと、プライベート ネットワーク経由でフレキシブル サーバーに安全に接続でき、パブリック インターネットに露出しないようにできます。 さらに、Azure Database for MySQL フレキシブル サーバーで必要な、TCP ポート 3306 経由での Azure へのアウトバウンド トラフィックが、接続元のネットワークで許可されていることを確認します。
新しいデプロイでは暗号化が既定で有効になるため、サーバーにインストールされているパブリック証明書をダウンロードし、TLS 1.2 経由で接続を確立するときはそれを使う必要があります。
ネットワークと証明書の要件に対処した後は、Azure Database for MySQL フレキシブル サーバーに接続し、たとえば次のものを使って、さまざまな方法でクエリを実行できるはずです。
Azure CLI (az mysql) または Azure Cloud Shell
- Azure CLI で接続するには、次のコマンド形式を使います:
az mysql flexible-server connect --name <server-name> --user <username>
- Azure CLI で接続するには、次のコマンド形式を使います:
mysql.exe コマンド ライン ユーティリティ
- MySQL コマンドライン ツールで接続するには、次のコマンド形式を使います:
mysql -h <server-name>.mysql.database.azure.com -u <username> -p
- MySQL コマンドライン ツールで接続するには、次のコマンド形式を使います:
MySQL Workbench グラフィカル ツール
- MySQL Workbench グラフィカル ツールでは、次の接続の詳細を使います。
- ホスト名:
<server-name>.mysql.database.azure.com
- ポート: 3306
- ユーザー名:
<username>
- パスワード:
<your-password>
- ホスト名:
- MySQL Workbench グラフィカル ツールでは、次の接続の詳細を使います。
Azure Data Studio と MySQL 拡張機能
- Azure Data Studio を起動し、MySQL 拡張機能がインストールされていることを確認します。
- [新しい接続] アイコンを選ぶか、[ファイル]>[新しいクエリ] に移動します。
- 接続ダイアログ ボックスで、[接続の種類] として [MySQL] を選びます。
- [接続の詳細] を次のように指定します。
- サーバー名:
<server-name>.mysql.database.azure.com
- ユーザー名:
<username>
- パスワード:
<your-password>
。または、Microsoft Entra ID 認証を使ってログインできます。 - ポート: 3306
- データベース名 (省略可能):接続する特定のデータベース名を指定するか、空白のままにしてすべてのデータベースの一覧を表示します
- サーバー名:
- SSL モード:
- [必須] または [CA を検証] を選びます。
- [CA を検証] モードを使う場合は、SSL 証明書をダウンロードします。
- [接続のテスト] を選んで、すべての詳細が正しいことを確認します。
- 必要に応じて、[パスワードの保存] を選び、後で使うために接続の詳細を保存できます。
- [接続] を選んで、Azure Database for MySQL フレキシブル サーバーへの接続を確立します。
PHP、Java、Python、C#、C++、JavaScript、Rust、Go、Ruby など、多数のプログラミング言語。
PHP の MySQL Improved extension (mysqli) クラスを使って Azure Database for MySQL フレキシブル サーバーに接続する基本的な例を次に示します。
<?php
$host = '<server-name>.mysql.database.azure.com';
$username = '<username>';
$password = '<your-password>';
$db_name = '<database-name>';
//Establish the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
//Run a query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res)) {
var_dump($row);
}
//Close the connection
mysqli_close($conn);
?>
Note
Azure Database for MySQL フレキシブル サーバーへのプログラムによる接続の詳細については、Microsoft Learn をご覧ください。