はじめに
本記事は、Azure Container Apps(以下ACA)をお試しで使ってみるにあたり、メモを書き留めたものです。
数回に分けてACAを使って見たいと思います。
Azure Container Apps
Azureにはコンテナが利用できるリソース自体、いくつかありますが、
ACAは、開発者が Kubernetes の複雑な管理を意識せずに、
コンテナ化されたアプリケーションをデプロイして実行できるようになっています。
私が個人的に思う、AzureでフルマネージドなK8S環境を利用できるAzure Kubernetes Serviceとの比較は以下のとおりです。
導入ハードルはAKSと比較すると低いため、非常に使いやすいと思っています。
当たり前ですが、アプリ自体はコンテナで開発しているため、アプリ規模が大きくなってきて、
フルマネージドな環境が良いとなった場合は、AKSへ移行するのもありと感じました。
項目 | Azure Container Apps (ACA) | Azure Kubernetes Service (AKS) |
---|---|---|
管理の容易さ | 非常に簡単 | 中級〜上級者向け |
インフラ管理 | 不要 | 必要 |
カスタマイズ性 | 低い | 高い |
スケーリング | 自動(イベント駆動、ゼロスケール可能) | 手動または自動(詳細設定が可能) |
ユースケース | 小規模~中規模アプリケーション | 大規模かつ複雑なアプリケーション |
コスト | 使用量に応じた課金(サーバーレス) | クラスターの維持費が発生 |
Kubernetesの知識 | 必要なし | 必要 |
マイクロサービス開発 | 簡単(Dapr 統合) | フルカスタマイズ可能 |
ネットワークとセキュリティ | 簡単な設定のみ | 高度な設定が可能 |
今回のシリーズで目指す構成
今回は、イメージ管理にAzure Container Registry(以下、ACR)を利用します。
GitHub Packages等も利用可能です。
本記事で説明する構成
今回の記事では、ACRリソース作成~ACA環境構築~初期イメージデプロイまでを説明します。
環境
- Windows11
- Podmanv version 5.3.1
ACRリソース作成
コンテナイメージの準備
Azureのリソースを利用する前に、コンテナイメージを準備します。
今回は、最低限画面が表示されればいいのでNginxのイメージを利用します。
# Dockerfile
FROM nginx:alpine
COPY . /usr/share/nginx/html
Dockerfileを保存、保存したディレクトリへ移動し、ビルドします。
podman build -f Dockerfile -t demo/myapp:latest .
タグ付けを実施
podman build -f Dockerfile -t demo/myapp:latest .
PodmanにてACRへログイン情報
先ほど有効にした管理者ユーザの情報を入力
podman login containerregistryasdfg.azurecr.io --username <ユーザ名> --password <パスワード>
ACRへプッシュ
podman push containerregistryasdfg.azurecr.io/demo/myapp:latest
ACAリソース作成
Container Apps環境については、デフォルトで作成されますが、今回はリソース名も指定したいため、新規作成リンクから新規作成します。
Container Apps環境にてログ出力先の設定も行います。
今回は、LogAnalyticsWorkspaceの名前も指定したいため、こちらも新規作成します。
HTTPのエンドポイントを有効にするため、
Ingressを有効にし、トラフィックはどこからでも受け入れるようにします。
これですべてのリソースが作成され、コンテナイメージの起動までできました。
画面アクセス
最後に、画面にアクセスします。
コンテナアプリリソースを開き、アプリケーションURLをコピーします。
無事に開けました!!
最後に、今回のリソースはリソースグループごと削除しました。
今回はここまでです。
まとめ
ACAを利用することで簡単にコンテナアプリをデプロイすることができました。
手軽にコンテナをデプロイできるところがやはり一番のメリットだと感じました。
次回以降は、以下のようなことを試してみたいです。
- AzureDevOpsを利用したCI/CD実装
- ACAの各種設定
- 環境内でのアプリ通信
- その他諸々・・・・