다음을 통해 공유


Azure Container Apps에서 유레카 서버 또는 Tanzu 서비스 레지스트리를 관리되는 Eureka Server for Spring로 마이그레이션

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.

이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.

이 문서에서는 Azure Container Apps에서 Eureka Server를 Spring용 Eureka Server로 마이그레이션하는 방법을 설명합니다.

Azure Container Apps의 관리형 Eureka Server for Spring은 Azure Spring Apps와 비슷한 환경을 제공합니다. 이를 통해 소스 코드를 수정하지 않고 기존 Spring 애플리케이션을 배포하고 관리되는 Eureka Server에 등록할 수 있습니다.

필수 조건

  • Tanzu Service Registry를 사용하도록 설정된 기존 Azure Spring Apps Enterprise 계획 인스턴스입니다.
  • 애플리케이션을 배포하는 데 사용되는 기존 Azure 컨테이너 앱 환경입니다. 자세한 내용은 Azure Container Apps 프로비저닝을 참조 하세요.
  • Eureka 클라이언트 역할을 하는 애플리케이션의 컨테이너 이미지입니다. 필요한 경우 샘플 이미지를 mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest사용할 수 있습니다.
  • Azure CLI

Spring용 관리되는 Eureka Server 프로비전

Spring용 관리되는 Eureka Server를 사용하려면 먼저 Azure Container Apps 환경 내에서 Eureka Server 구성 요소를 만들어야 합니다.

관리되는 Eureka Server for Spring을 만들려면 다음 단계를 사용합니다.

  1. Spring Java용 Eureka Server 구성 요소를 만들려면 다음 명령을 사용합니다.

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --environment $ENVIRONMENT
    
  2. (선택 사항) Spring Java 구성 요소 구성 요소 구성에 대한 Eureka Server를 업데이트하려면 다음 명령을 사용합니다.

    az containerapp env java-component eureka-server-for-spring update \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --environment $ENVIRONMENT \
        --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
    

Azure Portal을 통해 관리되는 Eureka Server를 삭제하면 Azure Container Apps는 등록된 모든 컨테이너 앱을 자동으로 바인딩 해제하고 관리되는 Eureka Server를 삭제합니다. 이 동작은 Tanzu 서비스 레지스트리를 삭제하기 전에 수동으로 서비스를 바인딩 해제해야 하는 Azure Spring Apps Enterprise 계획과 다릅니다.

리소스 할당 및 가격 책정

Azure Container Apps에서 관리되는 Eureka Server에 대한 컨테이너 리소스 할당은 다음 값으로 고정됩니다.

  • CPU: 0.5 vCPU
  • 메모리: 1Gi
  • 복제본: 1 - 확장 가능하지 않음

이에 비해 Azure Spring Apps Enterprise Plan Service Registry는 고정된 리소스를 프로비전하지만 각각 0.5 vCPU 및 1Gi 메모리가 있는 두 개의 복제본을 포함합니다.

요금이 부과되지 않는 Azure Spring Apps의 기본/표준 요금제와 달리 Azure Container Apps의 Spring용 관리되는 Eureka Server는 사용량 기반 가격 책정에 따라 작동합니다. 이 가격은 Azure Spring Apps Enterprise 플랜의 가격 책정과 유사합니다.

자세한 내용은 자습서의 고려 사항 섹션을 참조하세요. Azure Container Apps에서 관리되는 Eureka Server for Spring에 연결합니다.

애플리케이션 배포 및 바인딩

관리되는 Eureka Server for Spring을 프로비전한 후에는 Spring 애플리케이션을 Azure Container Apps에 배포하고 Eureka Server에 바인딩할 수 있습니다. 이 프로세스는 Azure Spring Apps에서 엔터프라이즈 계획이 작동하는 방식과 유사합니다. 특히 바인딩이 필요하지 않은 Azure Spring Apps 기본/표준 계획과 다른 Eureka Server에 애플리케이션을 바인딩해야 합니다.

참고 항목

샘플 이미지를 mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest 사용하여 애플리케이션을 배포하지 않는 경우 Azure Container Apps가 컨테이너 레지스트리에서 이미지를 끌어올 수 있도록 몇 가지 구성을 수행해야 할 수 있습니다. 예를 들어 ACR(Azure Container Registry)에서 이미지를 가져오는 데 필요한 권한을 준비하려면 자습서의 Azure Container Registry 만들기 섹션을 참조하세요. Azure Container Apps에 앱을 빌드하고 배포합니다.

애플리케이션 배포

다음 명령을 사용하여 컨테이너 애플리케이션을 만듭니다.

az containerapp create \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --environment $ENVIRONMENT \
    --image $IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

애플리케이션 바인딩

애플리케이션을 성공적으로 만든 후에는 애플리케이션을 관리되는 Eureka Server에 바인딩할 수 있습니다.

다음 명령을 사용하여 만든 애플리케이션을 Eureka Server에 바인딩합니다.

az containerapp update \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --bind $EUREKA_COMPONENT_NAME \
    --query properties.configuration.ingress.fqdn

바인딩은 주로 eureka.client.service-url.defaultZone 속성인 환경 변수로 여러 구성을 애플리케이션에 삽입합니다. 이 속성은 Eureka Server Java 구성 요소의 내부 엔드포인트를 나타냅니다. 다른 속성에 대한 자세한 내용은 Azure Container Apps에서 관리되는 Eureka Server for Spring에 연결의 Eureka Server for Spring Java 구성 요소 섹션에 컨테이너 앱 바인딩을 참조하세요.

Eureka Server에서 애플리케이션을 바인딩 해제해야 하는 경우 Azure Container Apps의 관리되는 Eureka Server for Spring에 연결의 Eureka Server for Spring Java 구성 요소 섹션에서 컨테이너 앱 바인딩 해제를 참조하세요.

대시보드를 사용하여 등록된 애플리케이션 보기

애플리케이션을 성공적으로 만들고 Eureka Server에 바인딩한 후에는 관리 대시보드를 통해 등록된 애플리케이션을 볼 수 있습니다. 자세한 내용은 Azure Container Apps에서 관리되는 Eureka Server for Spring에 연결의 대시보드 섹션을 통해 애플리케이션 보기를 참조하세요.

다음 스크린샷은 Eureka Server 대시보드의 모양을 보여 주는 예제입니다.

Eureka Server 대시보드의 스크린샷.

문제 해결

Azure Spring Apps의 로깅 메커니즘과 유사하게 작동하는 Log Analytics를 사용하여 Azure Container Apps에서 관리되는 Eureka Server for Spring에 대한 로그를 볼 수 있습니다.

Azure Container Apps에서 관리되는 유레카 서버 for Spring 로그를 보려면 다음 단계를 사용합니다.

  1. 컨테이너 앱 환경 페이지로 이동합니다.

  2. 모니터링>로깅 옵션으로 이동하고 로그 대상에서 Azure Log Analytics가 선택되어 있는지 확인합니다.

  3. 모니터링>로그이동합니다.

  4. (선택 사항) Log Analytics 범위가 로깅 옵션구성된 범위와 일치하지 않는 경우 범위 선택을 선택하여 올바른 로그 분석 작업 영역을 선택합니다.

  5. 다음 예제와 같이 쿼리 편집기에 쿼리를 입력하여 ContainerAppSystemLogs_CL 테이블의 로그를 봅니다.

    ContainerAppSystemLogs_CL
    | where ComponentType_s == "SpringCloudEureka"
    | project Time=TimeGenerated, ComponentName=ComponentName_s, Message=Log_s
    | take 100
    

    Eureka Server에 대한 로그 분석을 쿼리하는 스크린샷

Azure CLI를 사용하여 로그를 쿼리하는 방법에 대한 자세한 내용은 Log Analytics를 사용하여 Azure Container Apps에서 로그 모니터링을 참조 하세요.

알려진 제한 사항

  • 외부 액세스: Azure Container Apps의 Spring용 관리되는 Eureka Server는 외부에서 액세스할 수 없습니다.
  • 수정 트래픽: Azure Container Apps의 여러 수정 모드에서 Eureka에 등록된 애플리케이션의 모든 복제본은 트래픽을 수신합니다.

추가 리소스

Azure Container Apps에서 Eureka Server를 관리하는 방법에 대한 자세한 내용은 자습서: Azure Container Apps에서 Spring용 관리되는 Eureka Server에 연결합니다.