🎛️
Azure Container Apps とKEDA に入門してみる
はじめに
- 技術書店14で購入した Azure Mix Book 23H1 の2章 「AKS で KEDA を使ってオートスケールを試してみる」に影響を受け、Azure Conteiner AppsでKEDAを使ってみようという記事になります。
- 各技術の説明はChatGPTにサポートしてもらってます。
Azure Container Appsとは?
-
Azure Container Appsは、Azureが提供する新しいサービスで、コンテナベースのアプリケーションを簡単にデプロイし、スケールすることができます。このサービスは、マイクロサービスアーキテクチャを採用しており、各サービスは独立してスケールし、更新することができます。
-
Azure Container Appsは、Kubernetesの上に構築されていますが、Kubernetesのクラスタを管理する必要はありません。これにより、開発者はアプリケーションのコードに集中し、インフラストラクチャの管理から解放されます。
KEDAとは?
-
KEDA(Kubernetes Event-Driven Autoscaling)は、Kubernetesベースのイベント駆動型オートスケーラーです。KEDAは、イベントデータ(例えば、メッセージキューの長さ)に基づいて、アプリケーションのスケールを自動的に調整します。
-
KEDAは、Kubernetesのカスタムリソース定義(CRD)として実装されており、KubernetesのネイティブAPIを使用してスケーリングルールを定義します。これにより、Kubernetesの知識を持つ開発者は、KEDAを簡単に利用することができます。
Azure Container AppsとKEDAを使ってみる
- Azure Container Appsは、KEDAと密接に連携しています。Azure Container Appsでデプロイされたアプリケーションは、KEDAを利用してイベント駆動型のオートスケーリングを行うことができます。これにより、リソースの使用効率を最大化し、コストを最小化することが可能になります。
実際の使用例
-
以下に、Azure Container AppsとKEDAを使用した具体的な使用例を紹介します。この例では、HTTPリクエストの数に応じてアプリケーションをスケーリングするシナリオを考えます。
-
まず、Azure Container Appsの環境をセットアップします。Azure CLIを使用して、新しいContainer Appを作成します。
az group create --name myContainerApp --location japaneast
az containerapp up \
--name my-container-app \
--resource-group myContainerApp \
--location japaneast \
--environment 'my-container-apps' \
--image mcr.microsoft.com/azuredocs/containerapps-helloworld:latest \
--target-port 80 \
--ingress external \
--query properties.configuration.ingress.fqdn
- 次に、KEDAを使用してアプリケーションをスケーリングします。
今回は以下のように、portal 画面から設定しました。
- この例ではAzure Service Busスケーラを利用しています。
- 下記の図は、Azure Container AppsとKEDAがどのように連携して動作するかを示しています。Azure Container Appsはアプリケーションをデプロイし、KEDAはHTTPリクエストの数に応じてアプリケーションを自動的にスケーリングします。
まとめ
- Azure Container AppsとKEDAを触ってみました。リクエストが増えた際のオートスケーリングに有効であることが分かりました。
- 調べていてdapr も面白そうなので今後検証してみたいです。
参考
GitHubで編集を提案
Discussion