はじめに
Microsoftが定期的に開催しているVirtual Training Daysの中のAzure Container Appsの基本の回を視聴してみたのでまとめてみました。
Azureの主なコンテナ関連サービス
よく仮想化と比較されますが、そもそもコンテナとは、アプリケーションレベルの分離であり、同一のホストOSを使います。
そのため、スケールアウトが必要なアプリに向いています。
アプリケーションがパッケージ化されているので、どこでも稼働可能です。
機能ごとにコンテナを作ってマイクロサービス型のアプリを作成するのに向いています。
ビジネス+ITのこちらの記事によく見る仮想化とコンテナの比較図があります👇
その中でコンテナサービスとして以下4つが紹介されていました。
- Container Instances
- シングルコマンドで実行可能
- バッチ処理などに向いている
- WebApp for Containers
- Azure Web Appの主要機能(セキュリティ、負荷分散、自動スケール、DevOps等)が使える
- Container Apps
- Kubernetesの存在を意識することなく利用できる
- Dapr統合
- Azure Kubenetes Service
- マネージドKubernetesサービス
- コントロールプレーンをAzureが管理する
上記4つのコンテナアプリのホスティング環境に関して分類すると以下のようになる
☆インフラをお客さんで管理する必要がある
(メンテナンス・パージョンアップなどはユーザー側で管理したい)
- VM
- Azure Kubernetes Service
☆Microsoftがコンテナを管理
- Azure Container Instances(シンプルなコンテナを動かしたい)
- Azure Container Apps(コンテナアプリをメンテフリーで動かしたい)
- Web App for Conteiners
Azure Container Apps
この講座の本題であったAzure Container Appsとはそもそもなんなのでしょうか
⇒開発者がアプリケーション開発に集中できることを目指して作られたサービスとのこと
OSSによるモダンなアプリ開発が可能であり、Kubernetesへのシームレスな移行ができるそうです
提供している機能は以下の通り
- コンテナレジストリからコンテナ実行
- シークレット管理
- アプリケーションログ管理
- バージョン/リビジョン管理
- アプリケーションの自動スケーリング
- Ingress/負荷分散
- ブルーグリーンデプロイ/トラフィック分割
- 仮想ネットワーク統合
- Dapr統合
構成できるアプリケーション
以下5つが紹介されていました。
- Microservices (マイクロサービスアーキテクチャのデプロイ・管理)
- Event-driven processing (メッセージ処理)
- Web Applications (Webアプリ展開)
- Public API endpoints (HTTP要求をアプリの2つのリビジョンに分割)
- Background processing (連続実行バックグラウンドプロセス等)
環境のプラン
2種類があります。
- 従量課金
- サーバーレス環境でゼロからスケール可能
- ワークロードプロファイル(従量/専用)
- 専用ワークロードプロファイルでは、特定のCPU・メモリを確保して各アプリがそのリソースを確保して実行できる
Vnetの設定
- マネージドVNet
- Conteiner Appsが自動で作成するVNetを使う
- カスタムVNet
- 個別要件に応じてネットワーク構成をカスタマイズ可能
基本的にはカスタムVnetといっていました。
Conteiner Apps作成後VNetの変更はできないので注意です。
試してみた
コンテナーレジストリにあるイメージをAzure Container Appsへデプロイするのを試してみました。
リソースの作成から「コンテナー アプリ」を検索して作成
設定値などはこちらを参考に
learn.microsoft.comサンプルイメージを作成するように設定したので、作成されたリソースのアプリケーションURLを選択すると、このような画面に飛びます。
コンテナレジストリを作成して、以下のページを参考にしてイメージをプッシュしました。
learn.microsoft.comリビジョンからコンテナレジストリにアップしたイメージをコンテナの追加で追加
※追加済みなので、スクショは「コンテナーの編集」となっていますコンテナーの編集とデプロイで👆で追加したリビジョンとコンテナを選択
再びContainer AppsのアプリケーションURLをクリックすると、先ほどアップしたイメージが展開されるようになりました。
まとめ
コンテナについていろいろ聞くけどよくわからないという感じだったので、今回の講座はとても勉強になりました。
MicrosoftのVirtual Training Dayは参考になる講座がちょいちょい上がっているので、機会があれば見てみると勉強になります。