🎛️

Azure Container Apps とKEDA に入門してみる

2023/05/31に公開

はじめに

  • 技術書店14で購入した Azure Mix Book 23H1 の2章 「AKS で KEDA を使ってオートスケールを試してみる」に影響を受け、Azure Conteiner AppsでKEDAを使ってみようという記事になります。

https://techbookfest.org/product/wgZJASDjMznuWLndpV3dc0?productVariantID=qP0rvvKVd1LqZs3V7D7LZB

  • 各技術の説明はChatGPTにサポートしてもらってます。

Azure Container Appsとは?

  • Azure Container Appsは、Azureが提供する新しいサービスで、コンテナベースのアプリケーションを簡単にデプロイし、スケールすることができます。このサービスは、マイクロサービスアーキテクチャを採用しており、各サービスは独立してスケールし、更新することができます。

  • Azure Container Appsは、Kubernetesの上に構築されていますが、Kubernetesのクラスタを管理する必要はありません。これにより、開発者はアプリケーションのコードに集中し、インフラストラクチャの管理から解放されます。

https://azure.microsoft.com/ja-jp/products/container-apps/

KEDAとは?

  • KEDA(Kubernetes Event-Driven Autoscaling)は、Kubernetesベースのイベント駆動型オートスケーラーです。KEDAは、イベントデータ(例えば、メッセージキューの長さ)に基づいて、アプリケーションのスケールを自動的に調整します。

  • KEDAは、Kubernetesのカスタムリソース定義(CRD)として実装されており、KubernetesのネイティブAPIを使用してスケーリングルールを定義します。これにより、Kubernetesの知識を持つ開発者は、KEDAを簡単に利用することができます。

https://keda.sh/

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 も面白そうなので今後検証してみたいです。

参考

https://learn.microsoft.com/ja-jp/azure/container-apps/scale-app?pivots=azure-portal

https://techblog.ap-com.co.jp/entry/2022/12/14/203000

GitHubで編集を提案
Microsoft (有志)

Discussion