사용자 지정 가상 네트워크 마이그레이션
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.
Azure Spring Apps에서 관리되는 가상 네트워크 내에 애플리케이션을 배포할 수 있습니다. 이 설정을 사용하면 애플리케이션과 가상 네트워크의 다른 리소스(예: 데이터베이스 및 기타 서비스) 간의 보안 통신이 가능합니다. Azure Container Apps는 비슷한 기능을 제공하지만 몇 가지 차이점이 있습니다. 이 문서에서는 이러한 차이점을 살펴보고 관리형 가상 네트워크를 사용하여 Azure Container Apps 환경을 만들고 관리하는 방법에 대한 지침을 제공합니다.
필수 조건
가상 네트워크를 사용하여 Azure Container Apps 환경 만들기
Azure Spring Apps에서는 가상 네트워크 내에서 두 개의 서브넷을 구성해야 합니다. 하나는 시스템 런타임용이고 다른 하나는 사용자 앱용입니다. 이 설정은 시스템 구성 요소와 사용자 애플리케이션 모두에 대한 격리 및 보안을 보장합니다. 반면, Azure Container Apps는 가상 네트워크 내의 인프라에 대해 하나의 서브넷만 요구하여 네트워크 구성을 간소화합니다.
Azure Container Apps에서 인프라 가상 네트워크는 고객 가상 네트워크와 격리되므로 Azure Spring Apps에서 필요에 따라 가상 네트워크에 서비스 권한을 부여할 필요가 없습니다. 지원되는 두 가지 유형의 환경이 있습니다. 자세한 내용은 Azure Container Apps 환경의 형식 섹션을 참조하세요. 워크로드 프로필 환경을 사용하는 경우 서브넷을 위임하도록 가상 네트워크를 업데이트해야 합니다 Microsoft.App/environments
. 자세한 내용은 Azure Container Apps 환경에 가상 네트워크 제공의 환경 만들기 섹션을 참조하세요.
또한 더 작은 서브넷 범위에 대한 요구 사항은 두 서비스 간에 다릅니다.
가상 네트워크를 사용하여 Azure Container Apps 환경을 만들려면 다음 Azure CLI 명령을 사용합니다.
az containerapp env create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT \
--location "$LOCATION" \
--internal-only true \
--infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"
변수 $INFRASTRUCTURE_SUBNET
는 인프라 구성 요소 및 사용자 앱 컨테이너를 위한 고객 가상 네트워크의 서브넷 리소스 ID입니다. 자세한 내용은 Azure Container Apps 환경에 가상 네트워크 제공의 환경 만들기 섹션을 참조하세요.
Azure Container Apps에서 고객 가상 네트워크를 사용하도록 선택한다고 해서 컨테이너 앱이 공용 요청을 수락할 수 없다는 의미는 아닙니다. 고객 가상 네트워크에 대한 액세스만 완전히 제한하려면 매개 변수true
를 --internal-only
.로 설정해야 합니다. 이 설정은 퍼블릭 엔드포인트가 만들어지지 않도록 합니다. 자세한 내용은 Azure Container Apps 환경에서 네트워킹의 가상 IP 섹션을 참조하고 내부 Azure Container Apps 환경에 가상 네트워크를 제공합니다.
Azure Container Apps로 앱 마이그레이션
Azure Container Apps 환경을 만든 후 다음 단계는 앱을 Azure Container Apps로 마이그레이션하는 것입니다. 자세한 내용은 개념 매핑을 참조 하세요. 각 Azure Container App을 마이그레이션하려면 애플리케이션 마이그레이션 개요를 참조 하고 마이그레이션 프로세스에 대한 컨테이너 이미지 또는 아티팩트를 선택합니다.
수신 설정 변경
Azure Container Apps는 Azure Spring Apps에 비해 수신 설정을 사용자 지정하기 위한 더 많은 옵션을 제공합니다. 자세한 내용은 Azure Spring Apps에서 수신 구성 사용자 지정을 참조하세요.
다음 표에서는 두 서비스 간의 구성 속성을 매핑합니다.
기능 | Azure Spring Apps | Azure Container Apps |
---|---|---|
세션 선호도 | ingressSettings.sessionAffinity |
ingress.stickySessions.affinity |
세션 쿠키 최대 사용 기간 | ingressSettings.sessionCookieMaxAge |
EasyAuthConfig.login.cookieExpiration.timeToExpiration |
백 엔드 프로토콜 | ingressSettings.backendProtocol |
ingress.transport |
클라이언트 인증 | ingressSettings.clientAuth |
ingress.clientCertificateMode |
수신 읽기 시간 제한 | ingressSettings.readTimeoutInSeconds |
240 |
수신 송신 시간 제한 | ingressSettings.sendTimeoutInSeconds |
240 |
Azure Container Apps는 사용자가 사용자 지정 시간 제한 값을 지정하는 것을 허용하지 않습니다. 대신 240초로 제한되는 HTTP 요청에 대한 기본 제공 요청 시간 제한을 적용합니다. 따라서 요청이 이 기간을 초과하면 연결이 자동으로 종료되어 효율적인 리소스 관리를 보장하고 장기 실행 요청이 시스템을 독점하지 못하도록 방지합니다.
Azure Container Apps는 구성 항목을 직접 지원하지 session-max-age
않습니다. 그러나 다른 관련 설정을 통해 세션 기간 및 동작을 관리할 수 있습니다. 예를 들어 구성에서 cookieExpiration 설정을 EasyAuth
사용하여 인증 세션이 지속되는 기간을 제어할 수 있습니다. 이 설정을 사용하면 인증 쿠키가 유효한 기간을 지정할 수 있습니다.
Azure Container Apps에서 제공하는 수신 설정에 대한 자세한 내용은 Azure Container Apps의 수신을 참조 하세요.
Azure Spring Apps와 Azure Container Apps는 모두 공개적으로 액세스할 수 있는 엔드포인트를 생성하는 방법을 제공합니다. Azure Spring Apps에서 각 배포에는 파란색-녹색 배포 중에 테스트 목적으로 고유한 URL이 있습니다. 마찬가지로 Azure Container Apps에서 수정 레이블은 레이블이 할당된 특정 수정 버전으로 트래픽을 라우팅하는 데 사용할 수 있는 고유한 URL을 제공합니다. 자세한 내용은 Azure Container Apps에서 변경 내용 업데이트 및 배포의 레이블 섹션을 참조하세요.
Azure Spring Apps에서 시스템은 Enterprise 계획의 애플리케이션에 대한 기본/표준 계획 및 포트에서 애플리케이션의 포트 8080
를 자동으로 검색 1025
합니다. 이러한 프로브는 애플리케이션 컨테이너가 트래픽을 허용할 준비가 되었는지 여부를 결정하는 데 도움이 됩니다. 반면, Azure Container Apps는 사용자가 매개 변수를 사용하여 --target-port
프로브 포트 자체를 지정할 수 있도록 하여 더 많은 유연성을 제공합니다. 이 설정을 통해 사용자는 애플리케이션의 구성 및 동작을 더 많이 제어할 수 있습니다.
컨테이너 앱의 수신 대상 포트를 업데이트하려면 다음 Azure CLI 명령을 사용할 수 있습니다.
az containerapp ingress update \
--resource-group <resource-group> \
--name <app-name> \
--target-port <target-port>
다음 목록에서는 각 매개 변수에 대해 설명합니다.
-
--name
: 컨테이너 앱의 이름입니다. -
--resource-group
: 컨테이너 앱을 포함하는 리소스 그룹입니다. -
--target-port
: 컨테이너 앱이 수신 대기하는 포트입니다.
자세한 내용은 Azure Container Apps에서 앱에 대한 수신 구성의 수신 사용 섹션을 참조하세요.
송신 설정 변경(UDR)
Azure Spring Apps와 Azure Container Apps는 Azure Firewall을 사용하여 고유한 경로 테이블 기능인 UDR(사용자 정의 경로)을 통해 아웃바운드 트래픽을 제어하는 방법을 제공합니다. 그러나 다음과 같은 차이점을 기록해 둡니다.
- Azure Container Apps 리소스 공급자에 대한 역할 할당을 추가할 필요가 없습니다.
- Azure Container Apps 서비스 런타임 서브넷에 대한 전용 서브넷은 필요하지 않습니다.
- Azure Container Apps는 UDR을 지원하는 보다 유연한 방법을 제공합니다. Azure Container Apps에서는 Azure Spring Apps를 프로비전할
userDefinedRouting
때 옵션을--outbound-type
명시적으로 설정할 필요가 없습니다.
자세한 내용은 사용자 정의 경로를 사용하여 Azure Container Apps에서 CLI 및 제어 아웃바운드 트래픽을 사용하여 서브넷 구성의 경로 섹션을 참조하세요.
Azure Container Apps에서는 환경 유형의 워크로드 프로필만 UDR을 지원합니다. 또한 Azure Container Apps는 NAT 게이트웨이를 통한 송신 및 컨테이너 앱 환경에서 프라이빗 엔드포인트 만들기를 지원합니다.
UDR을 지원하는 Azure Container Apps 환경을 만들려면 다음 명령을 사용합니다.
az containerapp env create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT \
--location "$LOCATION" \
--enable-workload-profiles \
--infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"
워크로드 프로필을 사용하도록 매개 변수 --enable-workload-profiles
true
를 설정합니다.
네트워크 보안 그룹을 사용하여 가상 네트워크 보호
Azure Spring Apps와 Azure Container Apps는 모두 강력한 지원을 제공하므로 NSG(네트워크 보안 그룹)를 사용하여 아웃바운드 트래픽을 효과적으로 관리하고 보호할 수 있습니다. 주요 차이점은 특정 구성에 있습니다.
자세한 내용은 네트워크 보안 그룹을 사용하여 Azure Container Apps에서 사용자 지정 VNET 보안을 참조 하세요.
DNS 설정 변경
Azure Spring Apps와 Azure Container Apps는 모두 고객 가상 네트워크에서 사용자 지정 DNS 서버 사용을 지원합니다. 사용자 지정 DNS 서버에서 Azure DNS IP 168.63.129.16
를 업스트림 DNS 서버로 추가하는 것이 좋습니다.
자세한 내용은 Azure Container Apps 환경에서 네트워킹의 DNS 섹션을 참조하세요.
현재 소비 전용 환경 유형의 Azure Container Apps는 Azure Spring Apps와 마찬가지로 DNS 설정 변경 내용을 플러시하는 것을 지원하지 않습니다. 자세한 내용은 Azure Spring Apps의 플러시 DNS 설정 변경 내용을 참조 하세요. 그러나 환경의 워크로드 프로필 유형은 5분마다 DNS 설정을 자동으로 새로 고칩니다.
Azure Container Apps는 프라이빗 DNS 영역을 사용하여 배포를 지원합니다. 자세한 내용은 Azure Container Apps 환경에 가상 네트워크 제공의 프라이빗 DNS를 사용하여 배포 섹션을 참조하세요. 이 방법은 Azure Spring Apps를 사용하는 것보다 프라이빗 DNS 영역 연결을 지원하는 보다 유연한 방법을 제공합니다. 자세한 내용은 가상 네트워크의 Azure Spring Apps에서 앱에 액세스하는 Azure Spring Apps 섹션을 사용하여 프라이빗 DNS 영역 연결 섹션을 참조하세요.
고객 가상 네트워크 내의 Azure Container Apps에서 앱에 액세스
Azure Container Apps는 공용 네트워크 액세스 및 프라이빗 엔드포인트 기능을 모두 제공하여 애플리케이션을 인터넷에 노출하거나 프라이빗 네트워크 내에서 보호합니다. 마찬가지로 Azure Spring Apps는 다음 문서에 설명된 대로 이러한 기능을 지원합니다.