Slide 1

Slide 1 text

Azure Container Apps を使ってみた shu-kitamura

Slide 2

Slide 2 text

自己紹介 ● 名前 ○ 北村(shu-kitamura) ● 業務 ○ SIer ○ デバイスドライバ開発・保守 ● 趣味 ○ テニス、フットサルやってます ○ お笑いが好きです ● 最近 ○ 先週合格しました

Slide 3

Slide 3 text

話すこと ● Azureのコンテナサービス ● Container Appsと主要コンポーネント ● アプリのデプロイ

Slide 4

Slide 4 text

Azureのコンテナサービス

Slide 5

Slide 5 text

Azureのコンテナサービス ● Azure Container Instances ○ サーバーを管理することなくコンテナを実行 ● Azure Container Apps ○ フルマネージドのサーバーレスコンテナ基盤 ● Azure Kubernetes Service ○ マネージドの Kubernetes でコンテナを実行 ● Azure App Services for Container ○ コンテナ化された Web アプリをWindows / Linux上で実行

Slide 6

Slide 6 text

Azure Container Apps とは フルマネージドなサーバレスコンテナ基盤。Kubernetes をラップしている。 開発者は Kubernetes の構築や運用をしなくていい。 2022年5月に GA された。コンテナ系サービスでは新しい方。 以下のような需要があったのではないか(想像) スケーリングなどの機能欲し いけど、Kubernetesの運用・ 管理は難しいなぁ

Slide 7

Slide 7 text

Container Appsの主要コンポーネント

Slide 8

Slide 8 text

Azure Container Apps Environment Container Apps Environment は、コンテナアプリの実行基盤。 1つ目のContainer Appsを作るときに、同時に作成される。 Environment と Container Appsは 1対多の関係 参考: https://learn.microsoft.com/ja-jp/azure/container-apps/environment

Slide 9

Slide 9 text

リビジョン コンテナイメージと設定のスナップショット。 Container Appsをデプロイしたら リビジョンが1つ、自動で作成される 以下のような更新・変更があれば、新し いリビジョンを作成する。 ● コンテナイメージの更新 ● 設定の変更 ○ レプリカ(後述) ○ 環境変数 ○ スケーリング ○ ボリューム ○ etc…

Slide 10

Slide 10 text

レプリカ 実行されているコンテナの集まり。負荷に応じて、中で動くコンテナ数を増減させること ができる。 中で動くコンテナの最大値、最小値を設 定できる。 最小値を0に設定すると、コンテナ数は 0 個になる(負荷無いとき) ⇒コンテナ0個だと料金が発生しない

Slide 11

Slide 11 text

スケーリング 以下のスケールルールを設定できる ● HTTPスケーリング ● Azure キュー ● カスタムプリセット ○ CPU、メモリ使用率 ○ Cron ○ Azure Service Bus ○ etc… スケーリングには KEDA を使っている。 KEDA がサポートしているスケーリングを使用できる。 KEDAはKubernetesベースのイベント駆動型オートスケーラーらしいです。(知らないので小声)

Slide 12

Slide 12 text

アプリのデプロイ

Slide 13

Slide 13 text

アプリをデプロイする流れ コンテナレジストリ Container Apps を作成 開発者 Push コンテナ イメージ Pull

Slide 14

Slide 14 text

試した構成図 フロントエンド バックエンド Container Apps Environment Subnet Virtual Network Container Registry コンテナ イメージ Push ローカルで使ったDockerfileを そのままPushするだけだったので、 非常に楽だった。

Slide 15

Slide 15 text

気づき ● Container Apps Environment 単体では作れない(左) Container Apps の作成画面で新規/既存環境を選択する(右) Container Apps Environmentを 選択(作成)できる。 新規作成はメニューにない Azureポータルでは作れなかった。 Bicep なら単体で作れた。

Slide 16

Slide 16 text

まとめ ● Azure Container Appsはフルマネージドのコンテナ実行基盤 ● Kubernetesの運用・管理を自分でやらなくていい ● ローカルで使うDockerfileをレジストリにPushするだけで、 アプリをデプロイできて楽だった。 ● 動作確認レベルだと、レプリカの最小数を0個にしておけば、 料金が発生せず嬉しい。

Slide 17

Slide 17 text

尺が余ったときのために

Slide 18

Slide 18 text

リビジョン間のトラフィック分散 リビジョンが複数ある時、トラフィックを分散させることができる。 https://learn.microsoft.com/ja-jp/azure/container-apps/revisions

Slide 19

Slide 19 text

デプロイ方式への対応 Blue/Green デプロイ 100% 100% 100% 新しいリビジョンを作成 トラフィックを新しいリビ ジョンに切り替え

Slide 20

Slide 20 text

デプロイ方式への対応 カナリアデプロイ 100% 80% 80% 新しいリビジョンを作成。トラ フィックの一部を新リビジョン に向ける トラフィックの割合を増やし ていく 20% 20%