Azure Managed Service Column <Azure運用コラム>

コンテナサービスをもっと手軽に利用できる!Azure Container Appsとは?

Category: 入門編

2022.11.19

Azureが提供するコンテナサービスとAzure Container Appsについて紹介します

近年、仮想化技術の進化によりクラウドサービスが普及し、 DX 化の推進、働き方改革など、社会環境の変化によりビジネススピードは年々加速しています。特にコンテナ型の仮装技術を用いたクラウドネイティブなアプリケーション開発が注目を集めています。

アプリケーションやサービスのデプロイを環境の変化に柔軟に対応するために、コンテナサービスは、これからの DX 時代支える技術として今後さらなる活用が予想されています。

そんな中で Microsoft 社は2022 年 5 月に Azure Container Apps を正式リリースしました。Azure Container Apps は開発したコンテナプリケーションを迅速にデプロイして運用できるサービスです。

本記事では Azure が提供するコンテナサービスと Azure Container Apps について解説します。

1.コンテナサービスとは

コンテナサービスとはソフトウェアやアプリケーションを、 OS に依存することなく、どのような環境でも一貫して実行できるコンテナ環境を提供するサービスです。パブリックなクラウド環境で利用するタイプや、独自仕様のオンプレミス環境で利用するタイプのものがあります。

この時利用される代表的なコンテナエンジンが Docker です。 Docker はオープンソースで提供され、現在ではベンダー業界で統一仕様として取り扱われています。

コンテナサービスとしてのメリットは、この Docker のようなコンテナ環境を様々なサービスと連携させ提供している点です。レジストリサービス、オーケストレーションサービス、認証サービスなど、これらを統合的に利用できる環境を提供しているのがコンテナサービスです。

2.Azureが提供するコンテナサービス

Azure ではさまざまなコンテナサービスが用意されています。どのような種類があり、どういう環境で、どのようなサービスを利用すればよいのでしょうか?本章では Azure が提供するコンテナサービスを紹介します。

<コンテナ関連の周辺サービス>

コンテナ関連の周辺サービス

Azure Kubernetes Service(AKS)

Kubernetes とは複数のコンテナをもちいてアプリケーションを構築する場合に用いられる管理エンジンです。リソースのスケーリングや冗長化による耐障害性の向上など柔軟な運用が可能となるオーケストレーションツールと呼ばれています。

オーケストレーションツールは管理が煩雑になりがち、 AKS は主要なコンポーネントを Azure がホスティングしてくれるため、複数のコンテナを運用する場合などの負担を軽減することが可能です。

Azure Container Instances(ACI)

ACI は VM のようなハイパーバイザーや Kubernetes などオーケストレーションツールを利用せず、 Azure 環境で簡単にコンテナサービスを実行することができます。

レポートの生成やファイル形式の変換、単純なバッチ処理で利用されることが多いですが、バッチ処理は他の処理と依存関係が弱いケースが多いので、簡単な処理をコンテナ化しながら業務の効率化が可能です。

Azure Container Registry(ACR)

ACR は Azure 上でホスティングされたプライベートなDockerレジストリサービスです。 Docker レジストリとは Docker イメージをバージョンごとに管理することのできるライブラリです。

Docker レジストリにある Docker イメージを取得、自分が作成した Docker イメージを登録等の操作が可能となり、環境を問わずコンテナイメージを展開することができます。

Azure Container Apps

Web アプリケーションやバッチアプリケーションをサーバーレスなコンテナ環境で実行できるマイクロサービス向きのフルマネージドなサーバレスコンテナサービスです。互いに関連する複数のコンテナを実行し、イベントに応じて柔軟にスケーリングすることが可能です。

Azure Container Apps もサービスの基盤として Kubernetes を使用しており、 AKS に比べて Kubernetes の設定自由度は低いものの、気軽にコンテナサービスを利用する事ができます。

Web App for Containers

Azure App Service はインフラストラクチャを管理することなく、任意のプログラミング言語で Web アプリケーション等を構築することができるサービスです。マイクロサービス以外の Web アプリ全般に向いています。

Web App for Containers は Azure App Service 上に Web アプリケーション用途の Docker コンテナをデプロイすることができるサービスです。

Azure Functions

Azure Function は、 Azure 上でコードをサーバーレスで実行できるサービスです。厳密にはコンテナサービスではなく、サーバーレスサービスですが、サーバーの構築や保守が不要となり、必要に応じてスケーリングも行ってくれる点においてはコンテナサービスと共通しています。イベント駆動で実行時間が短いプロセス向きのサービスです。

Azure Function は C# 、 Java 、 JavaScript 、 Python など多くのプログラミング言語に対応しています。また Azure Function を利用して、 Docker の構築が可能であり、コンテナ環境を構築することができます。

3.Azure Container Appsとは

ここまで、 Azure の提供するコンテナサービスを解説してきました。本章では 2022 年 5 月に一般公開されたばかりで、今注目を集めている Azure Container Apps について解説します。

Azure Container Appsの概要

Azure Container Apps は、マイクロサービス向きのフルマネージドサーバーレスコンテナサービスです。主に一般的な用途として、 API エンドポイントのデプロイ、バックグラウンド処理アプリケーションのホスティング、イベント駆動型処理、マイクロサービスの実行等があげられます。

サービスの基盤としてオーケストレーション機能を提供する Azure Kubernetes Service が含まれていますが、 Kubernetes の複雑さを取り去り、フルマネージドで提供されている点が特徴です。そのため Azure Container Apps 上に構築されたアプリケーションは、 HTTPトラフィック、イベント、リソースの負荷などに応じて動的にスケーリングできます。

Azure Container Appsの概要

図版出典:Microsoft 公式サイト

Azure Container Appsの主な機能

KEDAによる動的なスケーリング

KEDA は Kubernetes-based Event-Driven Autoscaling の略で、イベントをトリガーとし Kubernetes 上でイベント駆動のオートスケールを実現する機能です。

HTTP のリクエスト数やキューのメッセージ数、 CPU 使用率など、様々なトリガーに基づいてアプリケーションのスケーリングを実現します。

イベント駆動という点において Azure Functions の従量課金プランでは回数当たりの実行時間が制限されていますが、 Azure Container Apps には実行時間の制限がありません。

Daprによるマイクロサービス開発の容易化

Azure Container Apps では、マイクロサービスを構築するときに、 Dapr API のフルマネージドバージョンを利用する事ができます。

Dapr は Distributed Application Runtime の略で、プログラミング言語に依存せず、サービス間の呼び出し機能や、ステート管理の機能、サービス間のメッセージング機能、リソースのバインディング、分散サービス間のトレーシング機能などを提供するためのソフトウェアです。

Azure Container Apps では、 Dapr を有効にすることでコンテナアプリにセットで Dapr をデプロイできるため、サービス間連携が容易になります。

Azure Container Appsの料金について

Azure Container Apps は、 1 秒あたりのリソース割り当てとリクエストに基づいて課金されます。 2022 年 10 月現在、毎月最初の 180,000 vCPU 秒、 360,000 GiB 秒、 200 万件のリクエストが無料です。

Azure Container Apps のレプリカはコンテナがゼロにスケーリングされている間、 vCPU にはアイドル使用料金が適用されます。リクエストの処理、リソースの使用量がアクティブなしきい値を超えると、レプリカはアクティブモードになりアクティブ料金で課金される仕組みです。詳しくは公式サイトにてご確認ください。

4.まとめ

本記事では近年注目を集めている Azure のコンテナサービス及び Azure Container Apps を紹介しました。 Azure Container Apps はコンテナ技術、サーバーレス、オーケストレーションなどの技術的なメリットを組み合わせたサービスです。

Azure は様々なコンテナサービスが用意され、用途や規模によって使い分けることができるため、詳細の導入に当たっては専門家へ相談されることを推奨いたします。

Azure の導入を相談したい

Azure導入支援サービス

Azure 導入支援サービス

Microsoft Azure 導入の具体的な方法の検討や技術検証を専門家にサポートいたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Azure導入個別相談会(無料)

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php