---
title: コンテナ使うならAzureで決まり！個人的推しサービスのAzure Container Appsを語る_
tags:  #azure  
author: [ussvgr](https://convert.docswell.com/user/ussvgr)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJRW533Y79.jpg?width=480
description: 2024/04/13 第2回 Azure Travelers 勉強会 神戸の旅 の登壇資料です
published: April 14, 24
canonical: https://convert.docswell.com/s/ussvgr/ZEN271-love-aca
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJRW533Y79.jpg)

コンテナ使うならAzureで決まり！
個人的推しサービスの
Azure Container Appsを語る
2024/04/13 第2回 Azure Travelers 勉強会 神戸の旅
Shunsuke Yoshikawa


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PEXPK4447X.jpg)

Shunsuke Yoshikawa
X: @ussvgr
Technical Evangelist @ AP Communications
Organizer @Platform Engineering Meetup
Microsoft MVP (Microsoft Azure) 2023～


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3EKD5ZZPJD.jpg)

I’m Azure Traveler!
愛知県から来ました
© OpenStreetMap contributors


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L73RKDD4J5.jpg)

皆さんにとってAzureと言えば？
最近の風潮からして、やっぱりAI？
Microsoft自身も &quot;Microsoft is the Copilot Company&quot; って言ってたりする


# Page. 5

![Page Image](https://bcdn.docswell.com/page/87DY3PP57G.jpg)

私にとってのAzure
Azureと言えば コンテナ です！
●
●
●
Web App for Containers, Azure Container Apps,
Azure Kubernetes Serviceなど選択肢が豊富
Kubernetesのオリジナル開発者の1人、Brendan Burnsが在籍
AKSにWASM対応追加したり、マルチクラスタ管理のFleet Managerなど
意欲的な機能追加をバシバシやってる
みんな大好きOpenAI社もAzure Kubernetes Service使ってるらしいですよ


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJP64NNDE8.jpg)

Azure上の代表的なコンテナサービス
Azure Kubernetes Service
Azure Container Apps
Web App for Containers
難易度
高
中
小
自由度
高
中
小
※個人の見解です


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2EV3XKKG7Q.jpg)

「ちょうどいい」サービス
Azure Kubernetes Service
Azure Container Apps
Web App for Containers
難易度
高
中
小
自由度
高
中
小
※個人の見解です


# Page. 8

![Page Image](https://bcdn.docswell.com/page/57G3VQ9DJL.jpg)

ここまで前置き
「ちょうどいい」サービス、Azure Container Apps(ACA) が個人的に一推し！
そんな推しサービスの推しポイントを語るというのが本セッションの内容です。
Q. AIの本場に来てるのにAIの話しないの？
A. もっと詳しい人たちが話してくれると思うので…


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EQ56KWXJP.jpg)

ACA 概要


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KJ494PK271.jpg)

フルマネージドなKubernetesサービス
ACA は Azure Kubernetes Service(AKS) と同じく Kubernetes をベースにしたサービス
AKS と ACA の大きな違いは、ACAは「フルマネージド」であること
Kubernetes の API にユーザーがアクセスすることはできないが、
その代わりに面倒な管理部分はすべてMicrosoft がやってくれる
ノードのキャパシティ管理やKubernetes のバージョンアップなどに悩まされることなく
アプリケーションの開発・運用に注力できる


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE1K49XKJG.jpg)

２つのリソース
ACAは
Container Apps 環境
コンテナー アプリ
の2つのリソースで構成される
Container Apps 環境 は
ネットワークやログの保管先などを定義する論理的な境界
コンテナー アプリ は
実際に稼働させるアプリケーションコンテナーの
リソースを指す
引用元: Azure Container Apps のコンテナー


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GEWDXQNPJ2.jpg)

Azure の中でもモダンな構成
2022年に GA したサービスということもあり、インフラ的に使いやすい構成になっている
●
VNet内に配置可能
●
インターネット上に公開、VNet内にのみ公開のどちらのパターンも可
●
可用性ゾーン対応
●
マネージド ID 利用可能
●
開発ロードマップが GitHub で公開されている
https://github.com/orgs/microsoft/projects/540


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47ZG6W36E3.jpg)

ここが凄いぞACA


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YJ6Y2GXL7V.jpg)

お財布に優しい料金プラン
コンテナに割り当てたvCPU コア数と メモリ量に応じた秒単位での課金
Azureのサービスには珍しく、アイドル時にはvCPU の費用が下がる
使ってないときは 0個にスケールインして課金を止めることもできる
無料枠もそこそこある（180,000 vCPU 秒 , 360,000 GiB 秒）
特に小規模なアプリケーションをホストする時にはこれらの特徴はグッとくるはず
去年から Savings Plan の対象にもなったので、組み合わせれば更にお安く


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJ5G2VXMJ4.jpg)

多様なワークロードに対応
引用元: Azure Container Apps の概要 | Microsoft Learn


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9E2Y43XRER.jpg)

Webアプリケーション・APIの実行基盤として
●
●
●
●
●
標準でTLS対応
マネージド証明書が無料で提供されるので、有効期限の管理いらず
HTTPリクエスト数に応じてコンテナの数をスケーリングできる
リクエストがないときはコンテナを0個にスケールインしてコストを抑えられる
2つのバージョンのコンテナアプリケーションを同時に動かせる
○
○
●
Blue / Green デプロイしたり
カナリアリリースしたり
認証（EasyAuth）も利用可能


# Page. 17

![Page Image](https://bcdn.docswell.com/page/D7YGM1857M.jpg)

バックグラウンド処理の実行基盤として
Webアプリケーションのように継続して起動し続けるものだけでなく、
一連の処理を実行したらそのまま終了するようなジョブ型のアプリケーションも実行可能
Cron式で起動時間を指定できるので、
夜間バッチ処理や月次処理のようなジョブの実行基盤としてACAを利用できる


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VENGW2Q4J8.jpg)

イベントドリブンアプリケーションの実行基盤として
KEDA (Kubernetes Event Driven Autoscaling) が組み込まれており、
多様な イベントの発生 をトリガーにしてコンテナを起動できる
●
●
●
Blob Storage にデータが配置された
Service Bus キューにメッセージが格納された
Event Hub からイベントを受信した


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y79WX1D473.jpg)

イベントドリブン応用編
KEDAが対応しているイベントには
Azure Pipelines / GitHub Actions のジョブキューも含まれる
これを利用して、
Azure Pipelines / GitHub Actions のセルフホステッドエージェント/ランナーをACA上で動かせる
コンテナならではの制約はあれど、
仮想ネットワーク内で実行でき、使った分だけの従量課金で済むのでけっこう便利
チュートリアル :Azure Container Apps ジョブを使用してセルフホスト型 CI/CD ランナーとエージェントをデプロイする


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G78N243VJD.jpg)

イベントドリブンならAzure Functionsでよくね？
実はACA上で コンテナ化したFunctionsを動かせる (Azure Functions on Azure Container Apps)
Functions特有のトリガー・バインディングでコード記述量減らしたいならFunctionsで、
Azureに慣れてなくて汎用的なコード書きたいなら通常のコンテナアプリケーションとして、
どちらでも対応できる懐の広さ


# Page. 21

![Page Image](https://bcdn.docswell.com/page/L7LP26VRJR.jpg)

Dockerﬁleなしでもアプリを動かせる
通常コンテナアプリケーションを起動するには、
Dockerﬁleを書いてビルドしてコンテナイメージを作って…という手順が必要
ACA では Buildpack というOSSのコンテナビルドツールを利用して
Dockerﬁleなしでもいい感じにコンテナイメージを作ってアプリケーションを起動できる
C#, Java, Javascript, Python, Go に対応している模様
個人的にはプロダクションで使うならDockerﬁleは書く派だけど、
手元のコードをパッと動かしたいときには便利な選択肢
クイックスタート: ローカル ソース コードから Azure Container Apps へのビルドとデプロイを行う


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4EM485GPJW.jpg)

アドオン機能でデータベースを利用できる
OSSの PostgreSQL や Redis を Container Apps環境内で起動してアプリケーションからアクセスできる
あくまで非運用環境向けの提供で本番環境では使えないものの、
開発用途で利用するのであれば
Azure Database for PostgreSQL や Azure Cache for Redis より低コストでお手軽に利用可能
他のコンテナと同様0スケールもできるし、
ストレージにデータを保管してくれるので0スケール後再起動してもデータは保持される


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PERW53ZYJ9.jpg)

監視まわり
メトリックは Azure Monitor で取得できる
AKSと比べると、ノードのメトリックを気にしなくてもよいので、
アプリケーションコンテナのメトリックのみに集中できてわかりやすい
ログは標準で Log Analytics ワークスペースに出力する
基盤側のシステムログとコンテナのログがそれぞれ別テーブルに保存される
コンテナ側では stdout/stderr にログを吐いておけば収集できる


# Page. 24

![Page Image](https://bcdn.docswell.com/page/P7XPK494JX.jpg)

最近のアップデート


# Page. 25

![Page Image](https://bcdn.docswell.com/page/37KD5ZPPED.jpg)

OpenTelemetry サポートの追加（プレビュー）
Container Apps 環境内に OpenTelemetryエージェントを構成することにより、
監視データを OpenTelemetry 形式で送信可能
Application Insights
OpenTelemetry
SDK
OpenTelemetry
エージェント
Datadog


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LJ3RKDX4E5.jpg)

Vector Database add-on のサポート（プレビュー）
データベースを環境内に作成できるアドオン機能に、
OSSのベクターストアが追加された
利用できるのは以下の3種
●
●
●
Qdrant
Milvus
Weaviate


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8JDY3P25JG.jpg)

ちょっと AI 関連っぽい話


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VEP64N1D78.jpg)

最近 YouTube でこんな動画が公開されててな
引用元: Build a multi-LLM chat application with Azure Container Apps


# Page. 29

![Page Image](https://bcdn.docswell.com/page/27V3XKYGJQ.jpg)

Azure Container Apps に LLM Chat アプリをデプロイ
引用元: Build a multi-LLM chat application with Azure Container Apps


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5JG3VQWDEL.jpg)

GitHub で公開されている
引用元: https://github.com/simonjj/multi-llm-chat


# Page. 31

![Page Image](https://bcdn.docswell.com/page/47Q56K3XEP.jpg)

まとめ


# Page. 32

![Page Image](https://bcdn.docswell.com/page/KE494P12J1.jpg)

私の推し
多様なユースケースに使える、ステキサービスAzure Container Appsの紹介でした
みんなも好きになってくれるとうれしいな


# Page. 33

![Page Image](https://bcdn.docswell.com/page/L71K49GKEG.jpg)

ご清聴ありがとうございました


