Azure Stack Hub に MySQL ホスティング サーバーを追加する

重要

Azure Stack Hub ビルド 2108 以降では、アクセスが許可されているサブスクリプションに SQL と MySQL リソース プロバイダーが提供されます。 この機能の使用を開始する場合、または以前のバージョンからアップグレードする必要がある場合は、サポート ケースを開くと、サポート エンジニアがデプロイまたはアップグレード プロセスを説明します。

MySQL リソース プロバイダーが SQL インスタンスに接続できる限り、その MySQL ホスティング サーバー インスタンスを、Azure Stack Hub 内の仮想マシン (VM) またはご利用の Azure Stack Hub 環境の外部にある VM でホストできます。

注意

MySQL リソース プロバイダーは既定のプロバイダー サブスクリプションに作成する必要がありますが、MySQL ホスティング サーバーは課金対象のユーザー サブスクリプションに作成する必要があります。 リソース プロバイダー サーバーは、ユーザー データベースをホストするためには使用しないでください。

ホスティング サーバーには、MySQL バージョン 5.6、5.7、および 8.0 を使用できます。 MySQL RP では、caching_sha2_password 認証はサポートされていません。 mysql_native_password を使用するには、MySQL 8.0 サーバーを構成する必要があります。

MySQL ホスティング サーバーを準備する

ネットワーク セキュリティ グループ規則を作成する

既定では、MySQL からホスト VM へのパブリック アクセスは構成されません。 Azure Stack Hub MySQL リソース プロバイダーが MySQL サーバーを接続して管理するには、受信ネットワーク セキュリティ グループ (NSG) 規則を作成する必要があります。

  1. 管理者ポータル上で、MySQL サーバーのデプロイ時に作成されたリソース グループに移動して、ネットワーク セキュリティ グループ (default-subnet-sg) を選択します。

    Azure Stack Hub 管理者ポータル上でネットワーク セキュリティ グループを選択します

  2. [受信セキュリティ規則] を選択してから、 [追加] を選択します。

    [宛先ポート範囲] に「3306」と入力し、必要に応じて [名前] フィールドと [説明] フィールドに説明を入力します。

    open

  3. [追加] を選択して、受信セキュリティ規則のダイアログを閉じます。

MySQL ホスティング サーバーへの外部アクセスを構成する

MySQL サーバーを Azure Stack Hub MySQL Server ホストとして追加する前に、外部アクセスを有効にする必要があります。 Azure Stack Hub マーケットプレースで入手できる Bitnami MySQL を例にとると、次の手順を行って外部アクセスを構成できます。

  1. SSH クライアントを使用して (この例では PuTTY を使用)、パブリック IP にアクセスできるコンピューターから MySQL サーバーにログインします。

    パブリック IP を使用して、ユーザー名と、前に作成した特殊文字を含まないアプリケーション パスワードを入力して、VM にログインします。

    LinuxLogin

  2. SSH クライアント ウィンドウで、次のコマンドを使用して、bitnami サービスがアクティブで実行中であることを確認します。 プロンプトが表示されたら、もう一度 bitnami パスワードを入力します。

    sudo service bitnami status

    bitnami サービスを確認する

  3. MySQL ホスティング サーバーがバージョン 8.0 以上の場合、認証方法を mysql_native_password に変更する必要があります。 MySQL のバージョンが 8.0 より下の場合、この手順はスキップできます。

    Bitnami MySQL を例に取ると、構成ファイルは /opt/bitnami/mysql/conf/my.cnf にあります。 プロパティ default_authentication_plugin を値 mysql_native_password で設定します。

    [mysqld]
    default_authentication_plugin=mysql_native_password
    

    Bitnami サービスを再起動し、正常に動作していることを確認します。ただし、Bitnami サービスを開始する前に、ib_logfile0 ファイルを削除する必要があります。

    sudo service bitnami stop
    sudo rm /bitnami/mysql/data/ib_logfile0
    sudo service bitnami start
    sudo service bitnami status
    
  4. Azure Stack Hub MySQL ホスティング サーバーが MySQL に接続するために使用するリモート アクセス ユーザー アカウントを作成します。

    ~/bitnami_credentials で記録したルート パスワードを使用し、次のコマンドを実行して MySQL に root としてログインします。 新しい管理者ユーザーを作成し、環境に合わせて <username> および <password> を置き換えます。 この例では、作成されたユーザーの名前は sqlsa であり、強力なパスワードが使用されています。

    mysql -u root -p
    create user <username>@'%' identified by '<password>';
    grant all privileges on *.* to <username>@'%' with grant option;
    flush privileges;
    

    管理者ユーザーを作成する

  5. 作成された SQL ユーザー sqlsa のプラグインが mysql_native_password であることを確認し、SSH クライアントを終了します。

    SELECT user,host,plugin from mysql.user;
    
  6. 新しい MySQL ユーザー情報をメモします。

    このユーザー名とパスワードは、Azure Stack Hub オペレーターがこの MySQL サーバーを使用して MySQL ホスティング サーバーを作成するときに使用されます。

MySQL ホスティング サーバーに接続する

システム管理特権を持つアカウントの資格情報があることを確認してください。

注意

MySQL 8.0 以降のバージョンでは、リモート アクセスは既定では有効になっていません。 ホスティング サーバーとして追加する前に、新しいユーザー アカウントを作成し、このユーザー アカウントにリモート アクセスの特権を付与する必要があります。

ホスティング サーバーを追加するには、次の手順に従います。

  1. Azure Stack Hub 管理ポータルにサービス管理者としてサインインします。

  2. [すべてのサービス] を選択します。

  3. [管理リソース] カテゴリで [MySQL Hosting Servers](MySQL ホスティング サーバー)>[+追加] の順に選択します。 次の画面キャプチャに示される [MySQL ホスティング サーバーの追加] ダイアログが開きます。

    MySQL ホスティング サーバーを構成する

  4. MySQL サーバー インスタンスの接続詳細を指定します。

    • [MySQL Hosting Server Name](MySQL ホスティング サーバー名) では、完全修飾ドメイン名 (FQDN) または有効な IPv4 アドレスを指定します。 短い VM 名は使用しないでください。
    • Azure Stack Hub Marketplace で利用可能な Bitnami MySQL イメージ用の既定の管理者ユーザー名root です。
    • root のパスワードがわからない場合は、Bitnami のドキュメントで取得方法を確認してください。
    • 既定の MySQL インスタンスが指定されていないため、 [ホスティング サーバーのサイズ (GB)] を指定する必要があります。 データベース サーバーの容量に近いサイズを入力します。
    • [サブスクリプション] の既定の設定のままにします。
    • [リソース グループ] で、新しいリソース グループを作成するか、既存のグループを使用します。

    重要

    デプロイ中に MySQL リソース プロバイダーのインストーラーによって作成されたリソース グループsystem.<region>.sqladapter は選択しないでください。 ホスティング サーバー用に別のリソース グループを用意する必要があります。

    注意

    テナントと管理者の Azure Resource Manager から MySQL インスタンスにアクセスできる場合は、そのインスタンスをリソース プロバイダーの管理下に置くことができます。 ただし、MySQL インスタンスは、リソース プロバイダーに排他的に割り当てる必要があります

  5. [SKU] を選択して [Create SKU](SKU の作成) ダイアログを開きます。

    MySQL SKU を作成する

    ユーザーが自分のデータベースを適切な SKU にデプロイできるように、SKU の [名前] には SKU のプロパティが反映される必要があります。

  6. [OK] を選択して SKU を作成します。

    注意

    SKU はポータルに表示されるまで最大 1 時間かかることがあります。 SKU がデプロイされて実行されるまで、データベースを作成することはできません。

  7. [Add a MySQL Hosting Server](MySQL ホスティング サーバーの追加) の下で、 [作成] を選択します。

サーバーを追加する際に、サービス内容を区別するために新規または既存の SKU に割り当てます。 たとえば、増加したデータベースと自動バックアップを提供する MySQL エンタープライズ インスタンスを使用できます。 この高パフォーマンス サーバーは、組織内のさまざまな部門用に予約できます。

MySQL のセキュリティに関する考慮事項

次の情報は、RP および MySQL ホスティング サーバーに適用されます。

バックエンド データベース容量を増やす

バックエンド データベース容量を増加するには、Azure Stack Hub ポータルで追加で MySQL サーバーをデプロイします。 これらのサーバーを新規または既存の SKU に追加します。 サーバーを既存の SKU に追加する場合は、サーバーの特性が SKU 内の他のサーバーと同じであることを確認してください。

SKU に関する注意

使用する SKU 名は、SKU 内のサーバーの機能 (容量やパフォーマンス) を示すものにしてください。 この名前は、該当する SKU にユーザーがデータベースをデプロイするときの助けになります。 たとえば、SKU 名を使用して、サービス内容を次の特性によって区別することもできます。

  • 大容量
  • ハイ パフォーマンス
  • 高可用性

ベスト プラクティスとして、SKU 内のすべてのホスティング サーバーに同じリソースとパフォーマンス特性を持たせてください。

特定のテナントに対して SKU を非表示にしたり、特定のテナント専用にしたりすることはできません。

SKU を編集するには、 [すべてのサービス]>[MySQL アダプター]>[SKU] に移動します。 変更する SKU を選択し、必要な変更を加えた後、 [保存] をクリックして変更を保存します。

不要になった SKU を削除するには、 [すべてのサービス]>[MySQL アダプター]>[SKU] に移動します。 SKU 名を右クリックし、 [削除] を選択して削除します。

重要

新しい SKU がユーザー ポータルで使用可能になるまでに最大で 1 時間かかることがあります。

ユーザーが MySQL データベース サーバーを使用できるようにする

ユーザーが MySQL データベース サーバーを使用できるようにプランとオファーを作成します。 プランに Microsoft.MySqlAdapter サービスを追加し、新しいクォータを作成します。 MySQL では、データベースのサイズの制限が許可されません。

重要

ユーザー ポータルで新しいクォータが使用可能になるまで、または変更されたクォータが適用されるまでに最大で 2 時間かかることがあります。

注意

クォータを使用する現在のプランがある場合、そのクォータは削除できません。 まず、クォータを参照しているプランを削除する必要があります。

次のステップ

MySQL データベースの作成