1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Azure Container Appsにおける基本的なネットワークの概念を解説

Last updated at Posted at 2024-07-09

はじめに

3回に分けてAzure Container Apps(以下、ACA)の内部ネットワーク構造に注目し、深堀りしていきます。
以下の流れで説明していきます。

第1回目:Azure Container Appsにおける基本的なネットワークの概念を解説
第2回目:Azure Container Appsにおいて選択できるネットワークオプションとパラメータを解説
第3回目:Azure Container Appsにおけるパターンごとのネットワーク構成図を解説

今回は第1回目で、ACAにおける基本的なネットワークの概念について解説していきます。

ACAとは

  • 2022年5月にGAした、コンテナベースのアプリケーションを簡単にデプロイ、管理、スケールできるサービス
  • フルマネージドk8sベースのアプリケーションプラットフォーム
  • k8sが提供する高い可用性、セキュリティ、スケーラビリティの恩恵を受けつつ、k8sの管理は不要
  • KEDA、Dapr、EnvoyといったCNCFプロジェクトの成果物をマネージドサービスとして提供する

用語

Azure Container Apps Environment

Azure Container Apps Environment(以降、ACAE)は、ACAのインスタンスをホストするための論理的な境界。
ACAEは、アプリケーションが実行されるネットワーク、セキュリティ、およびリソースの設定を提供する。
ACAE内のアプリケーションは、同じリージョン内で物理的に近い場所に配置され、低遅延の通信を実現する。
ちなみに、Azure portalから作成する場合、ACAEの画面からACAEのみを新規作成することはできない(2024年7月初時点)。なので、ACAの作成画面にてACAEの「新規作成」を選択することでACAEの設定が可能になる。

image.png

Revision

ACAの特定のバージョン(断面)のこと。
構成管理のための概念。

その他、ACAの基礎知識は以下の記事を参考にしてください。

ネットワークについて整理しようと思ったきっかけ

以下のMSLearnの通り、ACAEとACAのネットワークオプションによって内部的なネットワーク構成やアプリの公開範囲が異なります。そこで、オプションごとのネットワーク構成の違いについて整理したと思ったのがきっかけです。
image.png

なお、以降は主にACA外との通信に使用するイングレスやロードバランサに焦点を当てていますが、マイクロサービス間の通信について興味のある方はDaprについても調べてみて下さい。

ACAの基本的なネットワーク構成

図にすると以下のようなイメージです。
image.png

ポイント

  1. VNet統合していない場合は、VNetはユーザから非可視となる。 つまり、VNet統合しないとVNetに関して何か設定することは一切できない
  2. イングレス(Envoy)は、ACAと同時に作成され、ACA内のコンテナ間で通信を負荷分散するコンポーネント。 実態としてはACA内に存在するPodの一つ
  3. ロードバランサは、ACAEと同時に作成され、ACAE内のACA間で通信を負荷分散するAzureリソース

「イングレス」と「ロードバランサ」の違い

イングレスもロードバランサもどちらも負荷分散に関するコンポーネントですが、上記のポイントの通り役割が異なります。
また、ロードバランサはACAEをパブリック設定にした場合は1つ作成されますが、プライベート設定にした場合、インバウンド通信用とアウトバウンド用で2つ作成されるという違いがあります。

まとめると以下の通りです。
image.png

「イングレス エンドポイント」と「アプリケーションURL」の違い

上記に関連して混同しやすい概念を説明します。

イングレス エンドポイント

例えば「/api」パスを指定するなど、アプリケーションの中でもイングレスによるルーティングが必要な、特定のサービスにアクセスするために利用する。
例)https://azfooaca-aca01--s2nydbk.redgrass-bb786982.japaneast.azurecontainerapps.io

アプリケーションURL

application URLはACAのアプリケーション全体にアクセスするために利用するURL。
例)https://azfooaca-aca01.redgrass-bb786982.japaneast.azurecontainerapps.io

使い分け

バックエンドのアプリ間で処理をする場合や特定のサービスにアクセスする場合は「イングレス エンドポイント」を使う。
ユーザ等がフロントエンドにアクセスする場合には「アプリケーションURL」を使う。

image.png

おわりに

ACAの基本的なネットワークの概念についてまとめてみました。
次回はACAにおいて選択できるネットワークオプションとパラメータの意味について解説していきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?