Azure Container Apps 자체 가상 네트워크를 실행하는 환경 컨텍스트에서 작동합니다. 환경을 만들 때 컨테이너 앱의 네트워킹 기능(환경 유형, 가상 네트워크 유형 및 접근성 수준)을 알리는 몇 가지 주요 고려 사항이 있습니다.
환경 선택
Container Apps에는 두 가지 환경 유형이 있습니다. 이러한 특성은 몇 가지 주요 차이점과 함께 동일한 네트워킹 특징을 많이 공유합니다.
| 환경 유형 | 지원 계획 형식 | 설명 |
|---|---|---|
| 워크로드 프로필(기본값) | 사용량, 전용 | UDR(사용자 정의 경로), Azure NAT 게이트웨이 통해 송신 및 컨테이너 앱 환경에서 프라이빗 엔드포인트 만들기를 지원합니다. 필요한 최소 서브넷 크기는 /27입니다. |
| 사용량 전용(레거시) | 소비 | UDR, Azure NAT 게이트웨이 통해 송신, 원격 게이트웨이를 통한 피어링 또는 기타 사용자 지정 송신을 지원하지 않습니다. 필요한 최소 서브넷 크기는 /23입니다. |
자세한 내용은 환경 유형을 참조하세요.
가상 네트워크 유형
기본적으로 Container Apps는 인터넷을 통해 공개적으로 액세스할 수 있고 인터넷에 액세스할 수 있는 엔드포인트와만 통신할 수 있는 Azure 네트워크와 통합됩니다. 또한 환경을 만들 때 기존 가상 네트워크를 제공하는 옵션도 있습니다. 기본 Azure 네트워크 또는 기존 가상 네트워크를 사용하여 환경을 만든 후에는 네트워크 유형을 변경할 수 없습니다.
다음과 같은 Azure 네트워킹 기능이 필요한 경우 기존 가상 네트워크를 사용합니다.
- 네트워크 보안 그룹.
- Azure Application Gateway 통합.
- Azure Firewall 통합.
- 컨테이너 앱에서 아웃바운드 트래픽을 제어합니다.
- 가상 네트워크의 프라이빗 엔드포인트 뒤에 있는 리소스에 액세스합니다.
기존 가상 네트워크를 사용하는 경우 배포하는 Container Apps 환경에만 전용으로 제공되는 서브넷을 제공해야 합니다. 이 서브넷은 다른 서비스에서 사용할 수 없습니다. 자세한 내용은 가상 네트워크 구성을 참조하세요.
접근성 수준
환경 수준에서 컨테이너 앱이 공용 인그레스를 허용할지, 아니면 가상 네트워크 내부에서만 인그레스를 허용할지를 구성할 수 있습니다.
| 접근성 수준 | 설명 |
|---|---|
| 외부 | 컨테이너 앱은 공용 요청을 수락할 수 있습니다. 외부 환경은 외부 공용 IP 주소에 가상 IP를 사용하여 배포됩니다. |
| 내부 | 내부 환경에는 퍼블릭 엔드포인트가 없으며 내부 IP 주소에 매핑된 가상 IP와 함께 배포됩니다. 내부 엔드포인트는 Azure 내부 부하 분산 장치입니다. IP 주소는 기존 가상 네트워크의 개인 IP 주소 목록에서 발급됩니다. |
공용 네트워크 액세스
공용 네트워크 액세스 설정은 공용 인터넷에서 Container Apps 환경에 액세스할 수 있는지 여부를 결정합니다. 환경을 만든 후 이 설정을 변경할 수 있는지 여부는 환경의 가상 IP 구성에 따라 달라집니다. 다음 표는 사용자 환경의 가상 IP 구성에 따라 공용 네트워크 액세스에 대한 유효한 값을 보여 줍니다.
| 가상 IP | 지원되는 공용 네트워크 액세스 | 설명 |
|---|---|---|
| 외부 |
Enabled, Disabled |
Container Apps 환경은 인터넷에 액세스할 수 있는 엔드포인트를 사용하여 만들어졌습니다. 공용 네트워크 액세스에 대한 설정은 트래픽이 퍼블릭 엔드포인트를 통해 허용되는지 아니면 프라이빗 엔드포인트를 통해서만 허용되는지 여부를 결정합니다. 환경을 만든 후 이 설정을 변경할 수 있습니다. |
| 내부 | Disabled |
Container Apps 환경은 인터넷에 액세스할 수 있는 엔드포인트 없이 만들어졌습니다. 인터넷에서 트래픽을 허용하도록 공용 네트워크 액세스에 대한 설정을 변경할 수 없습니다. |
Container Apps 환경에서 프라이빗 엔드포인트를 만들려면 공용 네트워크 액세스를 Disabled.로 설정해야 합니다.
Azure 네트워킹 정책은 공용 네트워크 액세스에 대한 플래그와 함께 지원됩니다.
수신 구성
ingress 섹션에서 다음 설정을 구성할 수 있습니다.
컨테이너 앱의 인그레스를 사용 또는 사용 안 함으로 설정합니다.
어디서나 또는 동일한 Container Apps 환경 내에서만 컨테이너 앱에 대한 트래픽을 허용합니다.
애플리케이션의 수정 버전 간에 트래픽 분할 규칙을 정의합니다. 자세한 내용은 트래픽 분할을 참조하세요.
네트워킹 시나리오에 대한 자세한 내용은 Azure Container Apps의 Ingress를 참조하세요.
인바운드 기능
| 특징 | 방법 알아보기 |
|---|---|
|
입구 수신 구성 |
컨테이너 앱에 대한 외부 및 내부 트래픽의 라우팅을 제어합니다. |
| 프리미엄 입장 | 인그레스용 워크로드 프로필 지원 및 유휴 시간 제한과 같은 고급 인그레스 설정을 구성합니다. |
| IP 제한 | IP 주소로 컨테이너 앱에 대한 인바운드 트래픽을 제한합니다. |
| 클라이언트 인증서 인증 | 컨테이너 앱에 대한 클라이언트 인증서 인증(상호 TLS 또는 mTLS라고도 함)을 구성합니다. |
|
트래픽 분할 청록색 배포 |
들어오는 트래픽을 컨테이너 앱의 활성 수정 버전 간에 분할합니다. |
| 세션 선호도 | 클라이언트의 모든 요청을 컨테이너 앱의 동일한 복제본으로 라우팅합니다. |
| CORS(원본 간 리소스 공유) | 브라우저를 통해 페이지의 원본과 일치하지 않는 도메인에 대한 요청을 허용하는 컨테이너 앱에 CORS를 사용하도록 설정합니다. |
| 경로 기반 라우팅 | 각 요청의 경로에 따라 규칙을 사용하여 사용자 환경의 다른 컨테이너 앱으로 요청을 라우팅합니다. |
| 가상 네트워크 | Container Apps 환경에 대한 가상 네트워크를 구성합니다. |
| DNS | Container Apps 환경의 가상 네트워크에 대한 DNS를 구성합니다. |
| 프라이빗 엔드포인트 | 프라이빗 엔드포인트를 사용하여 퍼블릭 인터넷에 노출하지 않고 컨테이너 앱에 안전하게 액세스합니다. |
| Azure Front Door와 통합 | 공용 인터넷 대신 프라이빗 링크를 사용하여 Azure Front Door 컨테이너 앱에 직접 연결합니다. |
아웃바운드 기능
| 특징 | 방법 알아보기 |
|---|---|
| Azure Firewall 사용 | Azure Firewall을 사용하여 컨테이너 앱에서 아웃바운드 트래픽을 제어합니다. |
| 가상 네트워크 | Container Apps 환경에 대한 가상 네트워크를 구성합니다. |
| 네트워크 보안 그룹을 사용하여 기존 가상 네트워크 보안 | 네트워크 보안 그룹을 사용하여 Container Apps 환경의 가상 네트워크를 보호합니다. |
| Azure NAT 게이트웨이 통합 | Azure NAT 게이트웨이 사용하여 워크로드 프로필 환경에서 가상 네트워크의 아웃바운드 인터넷 연결을 간소화합니다. |
사용 방법 기사
| 조항 | 방법 알아보기 |
|---|---|
| Azure Container Apps 환경에 가상 네트워크 제공 | 가상 네트워크를 사용합니다. |
| Application Gateway에서 Web Application Firewall 사용하여 Azure Container Apps 보호 | Azure Application Gateway에서 Azure 웹 애플리케이션 방화벽 구성 |
| 사용자 정의 경로를 사용하여 Azure Container Apps 아웃바운드 트래픽을 제어합니다 | UDR을 사용하도록 설정합니다. |
| Container Apps에서 mTLS 애플리케이션을 빌드합니다. | |
| Azure Container Apps 환경에서 프라이빗 엔드포인트 사용 | 프라이빗 엔드포인트를 사용하여 퍼블릭 인터넷에 노출하지 않고 컨테이너 앱에 안전하게 액세스합니다. |
| 공용 인터넷 대신 프라이빗 링크를 사용하여 Azure Front Door 컨테이너 앱에 직접 연결합니다. |
환경 보안
다음 작업을 수행하여 수신 및 송신 네트워킹 트래픽에 대한 워크로드 프로필 환경을 보호할 수 있습니다.
워크로드 프로필 환경에서 내부 Container Apps 환경을 만듭니다. 단계는 Azure CLI를 사용하여 워크로드 프로필 관리를 참조하세요.
Application Gateway와 Container Apps를 통합합니다.
Azure Firewall 통해 모든 트래픽을 라우팅하도록 UDR을 구성합니다.
HTTP 에지 프록시 동작
Azure Container Apps TLS를 종료하고 각 애플리케이션에 요청을 라우팅하는 에지 HTTP 프록시를 사용합니다.
HTTP 애플리케이션은 HTTP 요청 및 연결 수에 따라 크기가 조정됩니다. Envoy는 클러스터 내에서 내부 트래픽을 라우팅합니다.
다운스트림 연결은 HTTP/1.1 및 HTTP/2를 지원합니다. Envoy는 클라이언트 연결에 업그레이드가 필요한 경우 연결을 자동으로 검색하고 업그레이드합니다.
ingress 객체에서 transport 속성을 설정하여 업스트림 연결을 정의합니다.
포털 종속성
Container Apps의 모든 앱에는 두 개의 URL이 있습니다.
Container Apps 런타임은 처음에 앱에 액세스하는 데 사용되는 FQDN(정규화된 도메인 이름)을 생성합니다. 컨테이너 앱의 FQDN을 얻으려면 Azure 포털에서 컨테이너 앱으로 이동합니다. 개요 창에서 FQDN은 애플리케이션 URL 값입니다.
두 번째 URL도 자동으로 생성됩니다. 이 위치는 로그 스트리밍 서비스 및 콘솔에 대한 액세스 권한을 부여합니다. 필요한 경우 방화벽 또는 프록시의 허용 목록에 추가 https://azurecontainerapps.dev/ 합니다.
포트 및 IP 주소
인바운드 연결에 대해 다음 포트가 노출됩니다.
| 프로토콜 | Ports |
|---|---|
| HTTP/HTTPS | 80, 443 |
IP 주소의 유형은 다음과 같습니다.
| 유형 | 설명 |
|---|---|
| 공용 수신 IP | 외부 배포의 애플리케이션 트래픽 및 내부 및 외부 배포의 관리 트래픽에 사용됩니다. |
| 아웃바운드 공용 IP | 가상 네트워크에서 나가는 아웃바운드 연결의 "원본" IP로 사용됩니다. 이러한 연결은 VPN을 통해 라우팅되지 않습니다. 아웃바운드 IP는 시간이 지남에 따라 변경될 수 있습니다. Container Apps 환경에서 아웃바운드 트래픽에 Azure NAT 게이트웨이 또는 다른 프록시를 사용하는 것은 workload 프로필 환경에서만 지원됩니다. |
| 내부 부하 분산 장치 IP | 내부 환경에만 존재합니다. |