チュートリアル: AKS アプリを Azure SQL Database (プレビュー) に接続する
このチュートリアルでは、AKS にデプロイされたアプリケーションを、サービス コネクタを使用して Azure SQL Database に接続する方法を学習します。 次のタスクを実行します。
- Azure SQL Database リソースを作成する
- サービス コネクタを使用して、AKS クラスターとデータベースの間に接続を作成する。
- コンテナーを更新する
- アプリケーション コードを更新する
- Azure リソースをクリーンアップする。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- AKS にデプロイされたアプリケーション。
-
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
Azure SQL Database の作成
az group create
コマンドを使用して、このチュートリアルで作成する Azure リソースを格納するためのリソース グループを作成します。az group create \ --name $RESOURCE_GROUP \ --location eastus
指示に従って、前の手順で作成したリソース グループに Azure SQL Database を作成します。 このチュートリアル全体で使用するサーバー名、データベース名、データベース資格情報を書き留めておきます。
Service Connector を使用して AKS でサービス接続を作成する (プレビュー)
サービス コネクタと Kubernetes 構成リソース プロバイダーを登録する
az provider register
コマンドを使用して、サービス コネクタと Kubernetes 構成リソース プロバイダーを登録します。
az provider register --namespace Microsoft.ServiceLinker
az provider register --namespace Microsoft.KubernetesConfiguration
ヒント
az provider show --namespace "Microsoft.ServiceLinker" --query registrationState
および az provider show --namespace "Microsoft.KubernetesConfiguration" --query registrationState
コマンドを使用して、これらのリソース プロバイダーが既に登録されているかどうかを確認できます。 出力が Registered
の場合、サービス プロバイダーは既に登録されています。
新しいつながりの作成
Microsoft Entra ワークロード ID を使用して、AKS クラスターと SQL データベースの間にサービス接続を作成する
Azure portal で、ご使用の AKS クラスター リソースに移動します。
[設定]>[サービス コネクタ (プレビュー)]>[作成] を選択します。
[基本] タブで次の設定を構成します。
- [Kubernetes 名前空間]: [既定] を選択します。
- [サービスの種類]: [SQL Database] を選択します。
- [接続名]: サービス コネクタによって提供される接続名を使用するか、独自の接続名を入力します。
- [サブスクリプション]: Azure SQL Database サービスを含むサブスクリプションを選択します。
- [SQL サーバー]: SQL サーバーを選択します。
- [SQL データベース]: 使用する SQL データベースを選択します。
- [クライアントの種類]: Python など、ターゲット サービスに接続するために使用するコード言語またはフレームワーク。
[次へ: 認証] を選択します。 [認証] タブで、[ワークロード ID] を選択し、1 つのユーザー割り当てマネージド ID を選択します。
[次へ: ネットワーク]>[次へ: 確認と作成]>[Cloud Shell での作成] を選択します。
Cloud Shell が起動し、接続を作成するためのコマンドが実行されます。 場合によっては、コマンド処理中にいくつかの構成の変更を確認する必要があります。 コマンドの実行が成功すると、接続情報が表示され、[サービス コネクタ] ペインの更新ボタンをクリックすることで、最新の結果を表示できます。
警告
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フローでは、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、より安全なフローが実行可能ではない場合にのみ使用してください。 認証方法として "ワークロード ID (推奨)" を選択します。
接続文字列を使用して AKS クラスターと SQL データベースの間にサービス接続を作成する
Azure portal で、ご使用の AKS クラスター リソースに移動します。
[設定]>[サービス コネクタ (プレビュー)]>[作成] を選択します。
[基本] タブで次の設定を構成します。
- [Kubernetes 名前空間]: [既定] を選択します。
- [サービスの種類]: [SQL Database] を選択します。
- [接続名]: サービス コネクタによって提供される接続名を使用するか、独自の接続名を入力します。
- [サブスクリプション]: Azure SQL Database サービスを含むサブスクリプションを選択します。
- [SQL サーバー]: SQL サーバーを選択します。
- [SQL データベース]: 使用する SQL データベースを選択します。
- [クライアントの種類]: Python など、ターゲット サービスに接続するために使用するコード言語またはフレームワーク。
[次へ: 認証] を選択します。 [認証] タブで、データベース ユーザー名とパスワードを入力します。
[次へ: ネットワーク]>[次へ: 確認と作成]>[作成] を選択します。
デプロイが成功すると、新しい接続に関する情報が [サービス コネクタ] ペインに表示されます。
コンテナーを更新する
AKS クラスターとデータベースの間に接続を作成したら、接続シークレットを取得してコンテナーにデプロイする必要があります。
Azure portal で、ご使用の AKS クラスター リソースに移動します。 [設定] で、[サービス コネクタ (プレビュー)] を選択します。
新しく作成された接続を選択して、[YAML スニペット] を選択します。 このアクションにより、サービス コネクタによって生成されたサンプル YAML ファイルを表示するパネルが開きます。
接続シークレットをコンテナーの環境変数として設定するには、次の 2 つのオプションがあります。
提供されている YAML サンプル コード スニペットを使用して、デプロイを直接作成します。 スニペットには、環境変数として挿入されるシークレット オブジェクトを示す強調表示されたセクションが含まれています。 [適用] を選択してこの方法を続行します。
または、[リソースの種類] で、[Kubernetes ワークロード] を選択し、既存の Kubernetes ワークロードを選択します。 このアクションにより、選択したワークロードの環境変数として、新しい接続のシークレット オブジェクトが設定されます。 ワークロードを選択した後、[適用] を選択します。
アプリケーション コードを更新する
最後の手順として、こちらの手順に従って、環境変数を使用するようにアプリケーション コードを更新します。
リソースをクリーンアップする
このチュートリアルに従う場合、作成したリソースが必要なくなったら、Azure リソース グループを削除することで削除できます。
az group delete
コマンドを使用して、リソース グループを削除します。
az group delete --resource-group $RESOURCE_GROUP
関連するコンテンツ
サービス コネクタの概念と、それを使って AKS を Azure サービスに接続する方法について詳しくは、次の記事をご覧ください。