가상 네트워크에 Azure Spring Apps 배포
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 Java ✅ C에✅ 적용됩니다.#
이 문서는 기본 ✅ 표준 ✅ 엔터프라이즈에 ❎ 적용됩니다.
이 자습서에서는 Azure Spring Apps 인스턴스를 가상 네트워크에 배포하는 방법을 설명합니다. 이 배포를 VNet 삽입이라고도 합니다.
배포를 통해 다음을 수행할 수 있습니다.
- 회사 네트워크의 인터넷에서 Azure Spring Apps 앱과 서비스 런타임 격리
- Azure Spring Apps에서 온-프레미스 데이터 센터의 시스템이나 다른 가상 네트워크의 Azure 서비스와 상호 작용
- Azure Spring Apps에 대한 인바운드 및 아웃바운드 네트워크 통신을 제어하는 고객의 역량 강화
다음 비디오에서는 관리 가상 네트워크를 사용하여 Spring Boot 애플리케이션을 보호하는 방법을 설명합니다.
참고 항목
새 Azure Spring Apps 서비스 인스턴스를 만드는 경우에만 Azure 가상 네트워크를 선택할 수 있습니다. Azure Spring Apps를 만든 후에는 다른 가상 네트워크를 사용하도록 변경할 수 없습니다.
필수 조건
Azure Portal에서 리소스 공급자 등록의 지침을 따르거나 다음 Azure CLI 명령을 실행하여 Azure Spring Apps 리소스 공급자인 Microsoft.AppPlatform
및 Microsoft.ContainerService
를 등록합니다.
az provider register --namespace Microsoft.AppPlatform
az provider register --namespace Microsoft.ContainerService
가상 네트워크 요구 사항
Azure Spring Apps 인스턴스를 배포하는 가상 네트워크에서 다음 요구 사항을 충족해야 합니다.
- 위치: 가상 네트워크는 Azure Spring Apps 인스턴스와 같은 위치에 있어야 합니다.
- 구독: 가상 네트워크는 Azure Spring Apps 인스턴스와 같은 구독에 있어야 합니다.
- 서브넷: 가상 네트워크에는 Azure Spring Apps 인스턴스 전용 서브넷 두 개가 포함되어 있어야 합니다.
- 서비스 런타임용 서브넷
- Spring 애플리케이션용 서브넷
- 이러한 서브넷과 Azure Spring Apps 인스턴스 간에는 일대일 관계가 있습니다. 새 서브넷을 배포하는 각 서비스 인스턴스에 사용합니다. 각 서브넷은 단일 서비스 인스턴스만 포함할 수 있습니다.
- 주소 공간: CIDR은 서비스 런타임 서브넷과 Spring 애플리케이션 서브넷 모두에 최대 /28까지 차단합니다.
- 경로 테이블: 기본적으로 서브넷에는 연결된 기존 경로 테이블이 필요하지 않습니다. 사용자 고유의 경로 테이블을 가져올 수 있습니다.
다음 단계를 사용하여 Azure Spring Apps 인스턴스를 포함하도록 가상 네트워크를 설정합니다.
가상 네트워크 만들기
Azure Spring Apps 인스턴스를 호스트하는 가상 네트워크가 이미 있으면 1, 2, 3단계를 건너뜁니다. 4단계부터 시작하여 가상 네트워크에 대한 서브넷을 준비할 수 있습니다.
Azure Portal 메뉴에서 리소스 만들기를 선택합니다. Azure Marketplace에서 네트워킹>가상 네트워크를 차례로 선택합니다.
가상 네트워크 만들기 대화 상자에서 다음 정보를 입력하거나 선택합니다.
설정 값 Subscription 구독을 선택합니다. Resource group 리소스 그룹을 선택하거나 새로 만듭니다. 이름 azure-spring-apps-vnet을 입력합니다. 위치 미국 동부를 선택합니다. 다음: IP 주소를 선택합니다.
IPv4 주소 공간에 대해 10.1.0.0/16을 입력합니다.
서브넷 추가를 선택합니다. 그런 다음, 서브넷 이름에 service-runtime-subnet을 입력하고 서브넷 주소 범위에 10.1.0.0/24를 입력합니다. 그런 다음, 추가를 선택합니다.
서브넷 추가를 다시 선택한 다음 서브넷 이름 및 서브넷 주소 범위를 입력합니다. 예를 들어 apps-subnet 및 10.1.1.0/24를 입력합니다. 그런 다음, 추가를 선택합니다.
검토 + 만들기를 선택합니다. 나머지 항목은 기본값으로 두고, 만들기를 선택합니다.
가상 네트워크에 서비스 권한 부여
이 섹션에서는 Azure Spring 앱에 가상 네트워크의 사용자 액세스 관리자 및 네트워크 기여자 권한을 부여하는 방법을 보여 줍니다. 이 권한을 사용하면 추가 배포 및 유지 관리를 위해 가상 네트워크에 전용 및 동적 서비스 주체를 부여할 수 있습니다.
참고 항목
고유한 경로 테이블 또는 사용자 정의 경로 기능을 사용하는 경우 경로 테이블에도 동일한 역할 할당을 Azure Spring Apps에 부여해야 합니다. 자세한 내용은 사용자 고유의 경로 테이블 가져오기 섹션 및 Azure Spring Apps 인스턴스에 대한 송신 트래픽 제어를 참조하세요.
다음 단계에 따라 권한을 부여합니다.
이전에 만든 가상 네트워크
azure-spring-apps-vnet
을 선택합니다.액세스 제어(IAM)를 선택한 다음, 추가>역할 할당 추가를 차례로 선택합니다.
Azure Spring Cloud 리소스 공급자에
Network Contributor
및User Access Administrator
역할을 할당합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하십시오.참고 항목
역할
User Access Administrator
는 권한 있는 관리자 역할에 있고Network Contributor
는 직무 역할에 있습니다.
Azure Spring Apps 인스턴스 배포
다음 단계에 따라 Azure Spring Apps 인스턴스를 가상 네트워크에 배포합니다.
Azure Portal을 엽니다.
맨 위 검색 상자에서 Azure Spring Apps를 검색합니다. 결과에서 Azure Spring Apps를 선택합니다.
Azure Spring Apps 페이지에서 추가를 선택합니다.
Azure Spring Apps 만들기 페이지에서 양식을 작성합니다.
가상 네트워크와 동일한 리소스 그룹 및 지역을 선택합니다.
서비스 세부 정보에서 이름에 azure-spring-apps-vnet을 선택합니다.
네트워킹 탭을 선택하고, 다음 값을 선택합니다.
설정 값 사용자 고유의 가상 네트워크에 배포 예를 선택합니다. 가상 네트워크 azure-spring-apps-vnet을 선택합니다. 서비스 런타임 서브넷 service-runtime-subnet을 선택합니다. Spring Boot 마이크로 서비스 앱 서브넷 apps-subnet을 선택합니다. 검토 및 만들기를 선택합니다.
사양을 확인하고, 만들기를 선택합니다.
배포 후에 Azure Spring Apps 인스턴스의 네트워크 리소스를 호스트하는 추가 리소스 그룹 두 개가 구독에 생성됩니다. 홈으로 이동한 다음, 위쪽 메뉴 항목에서 리소스 그룹을 선택하여 다음과 같은 새 리소스 그룹을 찾습니다.
ap-svc-rt_{service instance name}_{service instance region}
이라는 리소스 그룹에는 서비스 인스턴스의 서비스 런타임에 대한 네트워크 리소스가 포함되어 있습니다.
ap-app_{service instance name}_{service instance region}
이라는 리소스 그룹에는 서비스 인스턴스의 Spring 애플리케이션에 대한 네트워크 리소스가 포함되어 있습니다.
이러한 네트워크 리소스는 이전 이미지에서 만든 가상 네트워크에 연결됩니다.
Important
리소스 그룹은 Azure Spring Apps 서비스에서 완전히 관리됩니다. 내부에 있는 리소스를 수동으로 삭제하거나 수정하지 마세요.
더 작은 서브넷 범위 사용
이 표에서는 더 작은 서브넷 범위를 사용하여 Azure Spring Apps에서 지원하는 최대 앱 인스턴스 수를 보여줍니다.
앱 서브넷 CIDR | 총 IP 수 | 사용 가능한 IP | 최대 앱 인스턴스 수 |
---|---|---|---|
/28 | 16 | 8 | 코어 0.5개를 사용하는 앱: 192 |
/27 | 32 | 24 | 코어 0.5개를 사용하는 앱: 456 |
/26 | 64 | 56 | 코어 0.5개를 사용하는 앱: 500 |
/25 | 128 | 120 | 코어 0.5개를 사용하는 앱: 500 |
/24 | 256 | 248 | 코어 0.5개를 사용하는 앱: 500 |
서브넷의 경우 Azure에서 IP 주소 5개를 예약하며 Azure Spring Apps에는 IP 주소가 3개 이상 필요합니다. 따라서 8개 이상의 IP 주소가 필요하므로 /29 및 /30은 작동하지 않습니다.
서비스 런타임 서브넷의 경우 최소 크기는 /28입니다.
참고 항목
적은 서브넷 범위는 수신 컨트롤러와 같은 시스템 구성 요소에 사용할 수 있는 기본 리소스에 영향을 줍니다. Azure Spring Apps는 기본 수신 컨트롤러를 사용하여 애플리케이션 트래픽 관리를 처리합니다. 애플리케이션 트래픽이 증가함에 따라 수신 컨트롤러 인스턴스 수가 자동으로 증가합니다. 나중에 애플리케이션 트래픽이 증가할 수 있는 경우 더 넓은 가상 네트워크 서브넷 IP 범위를 예약합니다. 일반적으로 초당 10000개 요청의 트래픽에 대해 하나의 IP 주소를 예약합니다.
사용자 고유의 경로 테이블 가져오기
Azure Spring Apps에서는 기존 서브넷과 경로 테이블을 사용할 수 있습니다.
사용자 지정 서브넷에 경로 테이블이 포함되어 있지 않으면 Azure Spring Apps에서 서브넷마다 경로 테이블을 만들고 인스턴스 수명 주기 동안 여기에 규칙을 추가합니다. 사용자 지정 서브넷에 경로 테이블이 포함되어 있으면 Azure Spring Apps에서 인스턴스 작업 중에 기존 경로 테이블을 확인하고 작업에 따라 규칙을 추가하거나 업데이트합니다.
Warning
사용자 지정 규칙을 사용자 지정 경로 테이블에 추가하고 업데이트할 수 있습니다. 그러나 Azure Spring Apps에서 규칙을 추가하므로 업데이트하거나 제거하면 안 됩니다. 0.0.0.0/0과 같은 규칙은 항상 지정된 경로 테이블에 존재해야 하며 NVA 또는 다른 송신 게이트웨이와 같은 인터넷 게이트웨이의 대상에 매핑되어야 합니다. 사용자 지정 규칙만 수정되는 경우 규칙을 업데이트할 때 주의해야 합니다.
경로 테이블 요구 사항
사용자 지정 가상 네트워크가 연결된 경로 테이블은 다음 요구 사항을 충족해야 합니다.
- Azure Spring Apps 서비스 인스턴스를 새로 만들 때만 Azure 경로 테이블을 가상 네트워크에 연결할 수 있습니다. Azure Spring Apps 인스턴스를 만든 후에는 다른 경로 테이블을 사용하도록 변경할 수 없습니다.
- Spring 애플리케이션 서브넷과 서비스 런타임 서브넷 모두 다른 경로 테이블과 연결되거나 둘 다에 연결되지 않아야 합니다.
- 인스턴스를 만들기 전에 권한을 할당해야 합니다. Azure Spring Cloud 리소스 공급자에게 경로 테이블에 대한
User Access Administrator
및Network Contributor
권한을 부여해야 합니다. - 클러스터를 만든 후에는 연결된 경로 테이블 리소스를 업데이트할 수 없습니다. 경로 테이블 리소스를 업데이트할 수는 없지만 경로 테이블에서 사용자 지정 규칙을 수정할 수 있습니다.
- 잠재적으로 충돌하는 라우팅 규칙으로 인해 여러 인스턴스에서 경로 테이블을 재사용할 수 없습니다.
사용자 지정 DNS 서버 사용
Azure Spring Apps는 가상 네트워크에서 사용자 지정 DNS 서버 사용을 지원합니다.
DNS 서버 가상 네트워크 설정에서 사용자 지정 DNS 서버를 지정하지 않으면 Azure Spring Apps는 기본적으로 Azure DNS를 사용하여 IP 주소를 확인합니다. 가상 네트워크가 사용자 지정 DNS 설정으로 구성된 경우 Azure DNS IP 168.63.129.16
을 사용자 지정 DNS 서버의 업스트림 DNS 서버로 추가합니다. Azure DNS는 가상 네트워크에서 Azure Spring Apps를 실행하는 고객 책임에 언급된 모든 공용 FQDN에 대한 IP 주소를 확인할 수 있습니다. 가상 네트워크에서 *.svc.private.azuremicroservices.io
의 IP 주소를 확인할 수도 있습니다.
사용자 지정 DNS 서버가 Azure DNS IP 168.63.129.16
을 업스트림 DNS 서버로 추가할 수 없는 경우 다음 단계를 사용합니다.
- 사용자 지정 DNS 서버가 모든 공용 FQDN의 IP 주소를 확인할 수 있는지 확인합니다. 자세한 내용은 가상 네트워크에서 Azure Spring Apps를 실행하는 고객 책임을 참조하세요.
- 애플리케이션의 IP에 DNS 레코드
*.svc.private.azuremicroservices.io
를 추가합니다. 자세한 내용은 가상 네트워크에서 Azure Spring Apps의 앱에 액세스의 애플리케이션의 IP 주소 찾기 섹션을 참조하세요.