가상 네트워크에 Azure Spring Apps 배포

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서는 다음에 적용됩니다. ✔️ 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.AppPlatformMicrosoft.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단계부터 시작하여 가상 네트워크에 대한 서브넷을 준비할 수 있습니다.

  1. Azure Portal 메뉴에서 리소스 만들기를 선택합니다. Azure Marketplace에서 네트워킹>가상 네트워크를 차례로 선택합니다.

  2. 가상 네트워크 만들기 대화 상자에서 다음 정보를 입력하거나 선택합니다.

    설정
    Subscription 구독을 선택합니다.
    Resource group 리소스 그룹을 선택하거나 새로 만듭니다.
    이름 azure-spring-apps-vnet을 입력합니다.
    위치 미국 동부를 선택합니다.
  3. 다음: IP 주소를 선택합니다.

  4. IPv4 주소 공간에 대해 10.1.0.0/16을 입력합니다.

  5. 서브넷 추가를 선택합니다. 그런 다음, 서브넷 이름service-runtime-subnet을 입력하고 서브넷 주소 범위10.1.0.0/24를 입력합니다. 그런 다음, 추가를 선택합니다.

  6. 서브넷 추가를 다시 선택한 다음 서브넷 이름 및 서브넷 주소 범위를 입력합니다. 예를 들어 apps-subnet10.1.1.0/24를 입력합니다. 그런 다음, 추가를 선택합니다.

  7. 검토 + 만들기를 선택합니다. 나머지 항목은 기본값으로 두고, 만들기를 선택합니다.

가상 네트워크에 서비스 권한 부여

이 섹션에서는 Azure Spring Apps에 가상 네트워크에 대한 소유자 권한을 부여합니다. 이 권한을 사용하면 추가 배포 및 유지 관리를 위해 가상 네트워크에 전용 및 동적 서비스 주체를 부여할 수 있습니다.

참고 항목

필요한 최소 권한은 사용자 액세스 관리자네트워크 기여자입니다. Owner 권한을 부여할 수 없는 경우 둘 다에 역할 할당을 부여할 수 있습니다.

고유한 경로 테이블 또는 사용자 정의 경로 기능을 사용하는 경우 경로 테이블에도 동일한 역할 할당을 Azure Spring Apps에 부여해야 합니다. 자세한 내용은 사용자 고유의 경로 테이블 가져오기 섹션 및 Azure Spring Apps 인스턴스에 대한 송신 트래픽 제어를 참조하세요.

다음 단계에 따라 권한을 부여합니다.

  1. 이전에 만든 가상 네트워크 azure-spring-apps-vnet을 선택합니다.

  2. 액세스 제어(IAM)를 선택한 다음, 추가>역할 할당 추가를 차례로 선택합니다.

    역할 할당 추가 단추가 강조 표시된 액세스 확인 탭을 보여 주는 Azure Portal IAM(Access Control) 페이지의 스크린샷.

  3. Azure Spring Apps 리소스 공급자에 Owner 역할을 할당합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하십시오.

    참고 항목

    Azure Spring Apps 리소스 공급자를 찾을 수 없는 경우 Azure Spring Cloud 리소스 공급자를 검색합니다.

    역할 할당 추가 창과 Azure Spring Apps 리소스 공급자가 강조 표시된 선택 상자가 있는 Azure Portal Access Control 페이지의 스크린샷

Azure Spring Apps 인스턴스 배포

다음 단계에 따라 Azure Spring Apps 인스턴스를 가상 네트워크에 배포합니다.

  1. Azure Portal을 엽니다.

  2. 맨 위 검색 상자에서 Azure Spring Apps를 검색합니다. 결과에서 Azure Spring Apps를 선택합니다.

  3. Azure Spring Apps 페이지에서 추가를 선택합니다.

  4. Azure Spring Apps 만들기 페이지에서 양식을 작성합니다.

  5. 가상 네트워크와 동일한 리소스 그룹 및 지역을 선택합니다.

  6. 서비스 세부 정보에서 이름azure-spring-apps-vnet을 선택합니다.

  7. 네트워킹 탭을 선택하고, 다음 값을 선택합니다.

    설정
    사용자 고유의 가상 네트워크에 배포 를 선택합니다.
    가상 네트워크 azure-spring-apps-vnet을 선택합니다.
    서비스 런타임 서브넷 service-runtime-subnet을 선택합니다.
    Spring Boot 마이크로 서비스 앱 서브넷 apps-subnet을 선택합니다.

    네트워킹 탭을 보여 주는 Azure Portal Azure Spring Apps 만들기 페이지의 스크린샷

  8. 검토 및 만들기를 선택합니다.

  9. 사양을 확인하고, 만들기를 선택합니다.

    검토 및 만들기 탭의 네트워킹 섹션을 보여 주는 Azure Portal Azure Spring Apps 만들기 페이지의 스크린샷.

배포 후에 Azure Spring Apps 인스턴스의 네트워크 리소스를 호스트하는 추가 리소스 그룹 두 개가 구독에 생성됩니다. 으로 이동한 다음, 위쪽 메뉴 항목에서 리소스 그룹을 선택하여 다음과 같은 새 리소스 그룹을 찾습니다.

ap-svc-rt_{service instance name}_{service instance region}이라는 리소스 그룹에는 서비스 인스턴스의 서비스 런타임에 대한 네트워크 리소스가 포함되어 있습니다.

서비스 런타임에 대한 리소스를 보여 주는 Azure Portal의 스크린샷

ap-app_{service instance name}_{service instance region}이라는 리소스 그룹에는 서비스 인스턴스의 Spring 애플리케이션에 대한 네트워크 리소스가 포함되어 있습니다.

Spring 애플리케이션에 대한 리소스를 보여 주는 Azure Portal의 스크린샷

이러한 네트워크 리소스는 이전 이미지에서 만든 가상 네트워크에 연결됩니다.

가상 네트워크에 대한 커넥트 디바이스 페이지를 보여 주는 Azure Portal의 스크린샷.

Important

리소스 그룹은 Azure Spring Apps 서비스에서 완전히 관리됩니다. 내부에 있는 리소스를 수동으로 삭제하거나 수정하지 마세요.

더 작은 서브넷 범위 사용

이 표에서는 더 작은 서브넷 범위를 사용하여 Azure Spring Apps에서 지원하는 최대 앱 인스턴스 수를 보여줍니다.

앱 서브넷 CIDR 총 IP 수 사용 가능한 IP 최대 앱 인스턴스 수
/28 16 8

코어 0.5개를 사용하는 앱: 192
코어 1개를 사용하는 앱: 96
코어 2개를 사용하는 앱: 48
코어 3개를 사용하는 앱: 32
코어 4개를 사용하여 앱: 24

/27 32 24

코어 0.5개를 사용하는 앱: 456
코어 1개를 사용하는 앱: 228
코어 2개를 사용하는 앱: 144
코어 3개를 사용하는 앱: 96
코어 4개를 사용하여 앱: 72

/26 64 56

코어 0.5개를 사용하는 앱: 500
코어 1개를 사용하는 앱: 500
코어 2개를 사용하는 앱: 336
코어 3개를 사용하는 앱: 224
코어 4개를 사용하여 앱: 168

/25 128 120

코어 0.5개를 사용하는 앱: 500
코어 1개를 사용하는 앱: 500
코어 2개를 사용하는 앱: 500
코어 3개를 사용하는 앱: 480
코어 4개를 사용하여 앱: 360

/24 256 248

코어 0.5개를 사용하는 앱: 500
코어 1개를 사용하는 앱: 500
코어 2개를 사용하는 앱: 500
코어 3개를 사용하는 앱: 500
코어 4개를 사용하여 앱: 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 또는 다른 송신 게이트웨이와 같은 인터넷 게이트웨이의 대상에 매핑되어야 합니다. 사용자 지정 규칙만 수정되는 경우 규칙을 업데이트할 때 주의해야 합니다.

경로 테이블 요구 사항

사용자 지정 vnet이 연결된 경로 테이블은 다음 요구 사항을 충족해야 합니다.

  • 새 Azure Spring Apps 서비스 인스턴스를 만드는 경우에만 Azure 경로 테이블을 vnet과 연결할 수 있습니다. Azure Spring Apps를 만든 후에는 다른 경로 테이블을 사용하도록 변경할 수 없습니다.
  • Spring 애플리케이션 서브넷과 서비스 런타임 서브넷 모두 다른 경로 테이블과 연결되거나 둘 다에 연결되지 않아야 합니다.
  • 인스턴스를 만들기 전에 권한을 할당해야 합니다. Azure Spring Apps 리소스 공급자에 라우팅 테이블에 대한 Owner 권한(또는 User Access AdministratorNetwork 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 서버로 추가할 수 없는 경우 다음 단계를 사용합니다.

다음 단계