Azure Container Apps は、独自の仮想ネットワークを実行する 環境のコンテキストで動作します。 環境を作成するときに、コンテナー アプリのネットワーク機能を通知するいくつかの重要な考慮事項があります。
環境の選択
Container Apps には 2 つの異なる環境の種類があり、これらは多くの同じネットワーク特性を共有しますが、いくつかの重要な違いがあります。
環境の種類 | サポートされるプランの種類 | 説明 |
---|---|---|
ワークロード プロファイル | 従量課金、専用 | コンテナー アプリ環境でのユーザー定義ルート (UDR)、NAT Gateway 経由のエグレス、プライベート エンドポイントの作成をサポートします。 必要な最小サブネット サイズは /27 です。 |
消費量のみ | 従量課金 | ユーザー定義ルート (UDR)、NAT Gateway 経由のエグレス、リモート ゲートウェイ経由のピアリング、またはその他のカスタム エグレスはサポートされません。 必要な最小サブネット サイズは /23 です。 |
詳細については、「 環境の種類」を参照してください。
仮想ネットワークの種類
既定では、Container Apps は Azure ネットワークと統合され、インターネット経由でパブリックにアクセスでき、インターネットにアクセスできるエンドポイントとのみ通信できます。 代わりに、環境を作成するときに既存の VNet を提供することもできます。 既定の Azure ネットワークまたは既存の VNet を使用して環境を作成すると、ネットワークの種類を変更することはできません。
次のような Azure ネットワーク機能が必要な場合は、既存の VNet を使用します。
- ネットワーク セキュリティ グループ
- Application Gateway の統合
- Azure Firewall の統合
- コンテナー アプリからの送信トラフィックを制御する
- 仮想ネットワーク内のプライベート エンドポイントの背後にあるリソースへのアクセス
既存の VNet を使用する場合は、デプロイするコンテナー アプリ環境専用のサブネットを提供する必要があります。 このサブネットは、他のサービスでは使用できません。 詳細については、「 仮想ネットワークの構成」を参照してください。
アクセシビリティ レベル
コンテナー アプリで、環境レベルで VNet 内からのみパブリック イングレスまたはイングレスを許可するかどうかを構成できます。
アクセシビリティ レベル | 説明 |
---|---|
外部 | コンテナー アプリで、パブリック要求を受け入れることを許可します。 外部環境は、外部のパブリック IP アドレスに仮想 IP を使用してデプロイされます。 |
内部 | 内部環境にはパブリック エンドポイントが存在せず、内部環境は内部 IP アドレスにマップされた仮想 IP (VIP) を使用してデプロイされます。 内部エンドポイントは Azure 内部ロード バランサー (ILB) であり、IP アドレスは既存の VNet のプライベート IP アドレスの一覧から発行されます。 |
公衆ネットワーク アクセス
公衆ネットワーク アクセスの設定により、パブリック インターネットからコンテナー アプリ環境にアクセスできるかどうかが決まります。 環境の作成後にこの設定を変更できるかどうかは、環境の仮想 IP の構成によって異なります。 次の表では、環境の仮想 IP 構成に基づく、公衆ネットワーク アクセスの有効な値を示します。
仮想 IP | サポートされている公衆ネットワーク アクセス | 説明 |
---|---|---|
外部 | Enabled 、Disabled |
コンテナー アプリ環境は、インターネット アクセス可能なエンドポイントを使って作成されました。 公衆ネットワーク アクセスの設定により、パブリック エンドポイント経由のトラフィックを受け入れるか、それともプライベート エンドポイント経由のみを受け入れるかが決まります。パブリック ネットワーク アクセスの設定は、環境の作成後に変更できます。 |
内部 | Disabled |
コンテナー アプリ環境は、インターネット アクセス可能なエンドポイントを使わずに作成されました。 パブリック ネットワーク アクセス設定を変更して、インターネットからのトラフィックを受け入れることはできません。 |
Azure Container Apps 環境にプライベート エンドポイントを作成するには、公衆ネットワーク アクセスを Disabled
に設定する必要があります。
Azure ネットワーク ポリシーは、パブリック ネットワーク アクセス フラグでサポートされています。
イングレスの構成
ingress セクションでは、次の設定を構成できます。
イングレス: コンテナー アプリのイングレスを有効または無効にすることができます。
イングレス トラフィック: どこからでもコンテナー アプリへのトラフィックを受け入れたり、同じ Container Apps 環境内からのトラフィックに制限したりできます。
トラフィック分割ルール: アプリケーションのさまざまなリビジョン間でトラフィック分割ルールを定義できます。 詳細については、「トラフィックの分割」を参照してください。
異なるネットワークのシナリオの詳細については、「Azure Container Apps でのイングレス」を参照してください。
受信時の機能
特徴 | 方法を学ぶ |
---|---|
イングレス イングレスを構成する |
コンテナー アプリへの外部トラフィックと内部トラフィックのルーティングを制御します。 |
プレミアム イングレス | イングレスとアイドル タイムアウトに対するワークロード プロファイルのサポートなどの高度なイングレス設定を構成します。 |
IP 制限 | IP アドレスによってコンテナー アプリへの受信トラフィックを制限します。 |
クライアント証明書認証 | コンテナー アプリのクライアント証明書認証 (相互 TLS または mTLS とも呼ばれます) を構成します。 |
トラフィックの分割 Blue/Green デプロイメント |
コンテナー アプリのアクティブなリビジョン間で受信トラフィックを分割します。 |
セッション アフィニティ | クライアントからコンテナー アプリの同じレプリカにすべての要求をルーティングします。 |
クロス オリジン リソース共有 (CORS) | コンテナー アプリの CORS を有効にします。これにより、ブラウザー経由でページの配信元と一致しないドメインに対して行われた要求が許可されます。 |
パスベースのルーティング | ルールを使用して、各要求のパスに応じて、環境内のさまざまなコンテナー アプリに要求をルーティングします。 |
仮想ネットワーク | コンテナー アプリ環境用に VNet を構成します。 |
DNS | コンテナー アプリ環境の VNet の DNS を構成します。 |
プライベート エンドポイント | プライベート エンドポイントを使用して、パブリック インターネットに公開することなく、Azure Container App に安全にアクセスします。 |
Azure Front Door との統合 | パブリック インターネットではなくプライベート リンクを使用して、Azure Front Door から Azure Container Apps に直接接続します。 |
送信時の機能
特徴 | 方法を学ぶ |
---|---|
Azure Firewall の使用 | Azure Firewall を使用して、コンテナー アプリからの送信トラフィックを制御します。 |
仮想ネットワーク | コンテナー アプリ環境用に VNet を構成します。 |
NSG を使用した既存の VNet のセキュリティ保護 | ネットワーク セキュリティ グループ (NSG) を使用して、コンテナー アプリ環境の VNet をセキュリティで保護します。 |
NAT ゲートウェイの統合 | NAT ゲートウェイを使用して、ワークロード プロファイル環境の仮想ネットワーク内の送信インターネット接続を簡略化します。 |
チュートリアル
チュートリアル | 方法を学ぶ |
---|---|
仮想ネットワークを使用する | 仮想ネットワークを使用します。 |
WAF Application Gateway の構成 | WAF アプリケーション ゲートウェイを構成します。 |
ユーザー定義ルート (UDR) を有効にする | ユーザー定義ルート (UDR) を有効にします。 |
相互トランスポート層セキュリティ (mTLS) を使用する | Azure Container Apps で mTLS アプリケーションを構築します。 |
プライベート エンドポイントを使用する | プライベート エンドポイントを使用して、パブリック インターネットに公開することなく、Azure Container App に安全にアクセスします。 |
Azure Front Door との統合 | パブリック インターネットではなくプライベート リンクを使用して、Azure Front Door から Azure Container Apps に直接接続します。 |
環境のセキュリティ
次のアクションを実行することで、イングレスおよびエグレスのネットワーク トラフィック ワークロード プロファイル環境を完全にセキュリティ保護できます。
ワークロード プロファイル環境で内部コンテナー アプリ環境を作成します。 手順については、「Azure CLI を使用してワークロード プロファイルを管理する」を参照してください。
Container Apps を Application Gateway と統合します。
すべてのトラフィックを Azure Firewall 経由でルーティングするために UDR を構成します。
HTTP エッジ プロキシの動作
Azure Container Apps は、トランスポート層セキュリティ (TLS) を終了し、各アプリケーションに要求をルーティングするエッジ HTTP プロキシを使用します。
HTTP アプリケーションは、HTTP の要求と接続の数に基づいてスケーリングされます。 Envoy は、内部トラフィックをクラスターの内部でルーティングします。
ダウンストリーム接続では HTTP1.1 と HTTP2 がサポートされ、クライアント接続をアップグレードする必要がある場合、Envo では接続を自動的に検出してアップグレードします。
アップストリーム接続は、transport
オブジェクトの プロパティを設定することによって定義されます。
ポータルの依存関係
Azure Container Apps 内のすべてのアプリに、2 つの URL が存在します。
Container Apps ランタイムでは、アプリにアクセスするために使用される完全修飾ドメイン名 (FQDN) が最初に生成されます。 コンテナー アプリの FQDN は、Azure portal でコンテナー アプリの [概要] ウィンドウの [アプリケーション URL] で確認してください。
2 つ目の URL も自動的に生成されます。 この場所では、ログ ストリーミング サービスとコンソールへのアクセス権が付与されます。 必要に応じて、ファイアウォールまたはプロキシの許可リストに https://azurecontainerapps.dev/
を追加することが必要な場合があります。
ポートと IP アドレス
インバウンド接続には、次のポートが公開されます。
プロトコル | ポート |
---|---|
HTTP/HTTPS | 80、443 |
IP アドレスは、次の種類に分類されます。
タイプ | 説明 |
---|---|
パブリック インバウンド IP アドレス | 外部デプロイにおけるアプリケーション トラフィックのほか、内部デプロイと外部デプロイの両方における管理トラフィックに使用されます。 |
アウトバウンド パブリック IP | 仮想ネットワークから出ていくアウトバウンド接続の "発信元" IP として使用されます。 これらの接続は VPN 経由ではルーティングされません。 送信 IP は時間の経過と共に変化する可能性があります。 Container Apps 環境からの送信トラフィックに NAT ゲートウェイまたはその他のプロキシを使用することは、ワークロード プロファイル環境でのみサポートされています。 |
内部ロード バランサー IP アドレス | このアドレスは内部環境にのみ存在します。 |