자습서: 사용자 지정 가상 네트워크 내에서 Oracle WebLogic Server를 Azure Kubernetes Service로 마이그레이션

이 자습서에서는 소비자 구독의 사용자 지정 가상 네트워크와 통합되는 AKS(Azure Kubernetes Service) 제품에 WLS(Oracle WebLogic Server)를 배포하는 방법을 보여 줍니다. AKS 제품의 WLS를 사용하면 새 가상 네트워크를 만들거나 기존 가상 네트워크를 사용할지 결정할 수 있습니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 사용자 지정 가상 네트워크를 만들고 네트워크 내에서 인프라를 만듭니다.
  • 사용자 지정 가상 네트워크의 AKS에서 Oracle WebLogic Server를 실행합니다.
  • Azure 애플리케이션 Gateway를 부하 분산 장치로 사용하여 Oracle WebLogic Server를 노출합니다.
  • 성공적인 배포의 유효성을 검사합니다.

필수 조건

  • Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

  • Bash 환경을 사용하여 Azure Cloud Shell을 사용합니다. Azure CLI 버전이 2.37.0 이상인지 확인합니다.

    Launch Cloud Shell in a new window

  • 원하는 경우 Azure CLI 2.37.0 이상을 설치하여 Azure CLI 명령을 실행합니다.

    • 로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI로 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI로 로그인을 참조하세요.
    • 메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
    • az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
  • AKS Marketplace 제품의 WLS에는 사용자 할당 관리 ID를 만들고 Azure 역할을 할당할 수 있는 권한이 필요합니다. Azure 역할을 할당하려면 User Access 관리istrator 또는 Owner와 같은 권한이 있어야 합니다Microsoft.Authorization/roleAssignments/write.

  • Oracle 계정입니다. Oracle Container Registry단계는 WebLogic Server 이미지에 대한 사용권 계약에 동의하도록 지시합니다. Oracle 계정 암호 및 전자 메일을 기록해 둡다.

리소스 그룹 만들기

az group create를 사용하여 리소스 그룹을 만듭니다. 이 예제에서는 위치에 명명된 myResourceGroupeastus 리소스 그룹을 만듭니다.

export RESOURCE_GROUP_NAME="myResourceGroup"
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

사용자 지정 가상 네트워크 만들기

사용자 지정 가상 네트워크를 만들 때 제약 조건이 있습니다. 사용자 환경에서 가상 네트워크를 만들기 전에 다음 문서를 읽어보세요.

이 섹션의 예제에서는 주소 공간이 192.168.0.0/16있는 가상 네트워크를 만들고 AKS 및 Application Gateway에 사용되는 두 개의 서브넷을 만듭니다.

먼저 az network vnet create를 사용하여 가상 네트워크를 만듭니다. 다음 예제에서는 다음과 같은 기본 myVNet가상 네트워크를 만듭니다.

az network vnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myVNet \
    --address-prefixes 192.168.0.0/16

다음으로, AKS 클러스터에 대해 az network vnet subnet create를 사용하여 서브넷을 만듭니 다. 다음 예제는 myAKSSubnet이라는 서브넷을 만듭니다.

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAKSSubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.1.0/24

다음으로 Application Gateway용 az network vnet subnet create를 사용하여 서브넷을 만듭니 다. 다음 예제는 myAppGatewaySubnet이라는 서브넷을 만듭니다.

az network vnet subnet create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAppGatewaySubnet \
    --vnet-name myVNet \
    --address-prefixes 192.168.2.0/24

다음으로, 다음 명령을 사용하여 AKS 서브넷 리소스 ID를 가져오고 이 문서의 뒷부분에서 사용할 변수에 저장합니다.

export AKS_SUBNET_ID=$(az network vnet subnet show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --vnet-name myVNet \
    --name myAKSSubnet \
    --query id \
    --output tsv)

가상 네트워크에서 AKS 클러스터 만들기

다음 명령을 사용하여 az aks create 명령을 사용하여 가상 네트워크 및 서브넷에 AKS 클러스터를 만듭니 다.

참고 항목

이 예제에서는 kubenet 및 시스템 할당 ID를 사용하여 AKS 클러스터를 만듭니다. Azure CLI는 클러스터를 만든 후 시스템 할당 ID에 네트워크 기여자 역할을 부여합니다.

Azure CNI를 사용하려면 AKS에서 Azure CNI 네트워킹 구성을 참조하여 Azure CNI 지원 AKS 클러스터를 만듭니다.

사용자 할당 관리 ID를 사용하려면 시스템 할당 관리 ID를 사용하여 AKS 클러스터 만들기를 참조 하세요.

az aks create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myAKSCluster \
    --generate-ssh-keys \
    --enable-managed-identity \
    --node-count 3 \
    --network-plugin kubenet \
    --vnet-subnet-id $AKS_SUBNET_ID \
    --yes

Storage 계정에 Java EE 애플리케이션 저장

AKS 제품 배포의 WLS와 함께 Java EE 애플리케이션을 배포할 수 있습니다. 애플리케이션 파일(.war, .ear 또는 .jar)을 해당 계정 내의 기존 Azure Storage 계정 및 스토리지 컨테이너에 업로드해야 합니다.

다음 예제와 같이 az storage account create 명령을 사용하여 Azure Storage 계정을 만듭니 다.

export STORAGE_ACCOUNT_NAME="stgwlsaks$(date +%s)"
az storage account create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${STORAGE_ACCOUNT_NAME} \
    --location eastus \
    --sku Standard_RAGRS \
    --kind StorageV2

az storage container create 명령을 사용하여 Blob을 저장하기 위한 컨테이너를 만듭니 다. 다음 예제에서는 스토리지 계정 키를 사용하여 컨테이너를 만드는 작업에 권한을 부여합니다. Microsoft Entra 계정을 사용하여 컨테이너를 만드는 작업에 권한을 부여할 수도 있습니다. 자세한 내용은 Azure CLI를 사용하여 Blob 또는 큐 데이터에 대한 액세스 권한 부여를 참조하세요.

export KEY=$(az storage account keys list \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --query [0].value \
    --output tsv)

az storage container create \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --name mycontainer \
    --account-key ${KEY} \
    --auth-mode key

다음으로, az storage blob upload 명령을 사용하여 Blob에 Java EE 애플리케이션을 업로드 합니다. 다음 예제에서는 testwebapp.war 테스트 애플리케이션을 업로드합니다.

curl -fsL https://aka.ms/wls-aks-testwebapp -o testwebapp.war

az storage blob upload \
    --account-name ${STORAGE_ACCOUNT_NAME} \
    --container-name mycontainer \
    --name testwebapp.war \
    --file testwebapp.war \
    --account-key ${KEY} \
    --auth-mode key

여러 파일을 동시에 업로드하려면 Azure CLI를 사용하여 Blob 만들기, 다운로드 및 나열을 참조하세요.

AKS 제품에 WLS 배포

이 섹션에서는 이전에 만든 AKS 인스턴스를 사용하여 WLS 클러스터를 프로비전하는 방법을 보여 줍니다. 사용자 지정 가상 네트워크 내에서 클러스터를 프로비전하고 Azure 애플리케이션 게이트웨이를 부하 분산 장치로 사용하여 클러스터 노드를 내보냅니다. 이 제품은 Application Gateway TLS/SSL 종료에 대한 자체 서명된 인증서를 자동으로 생성합니다. Application Gateway에서 TLS/SSL 종료를 고급으로 사용하는 경우 Application Gateway 수신 컨트롤러를 참조 하세요.

먼저 AKS의 Oracle WebLogic Server 사용자 가이드설명된 대로 WebLogic Server를 배포하는 프로세스를 시작하지만, 다음 스크린샷과 같이 AKS 클러스터 구성에 도달하면 이 페이지로 돌아갑니다.

Screenshot of Azure portal showing the Configure AKS cluster pane of the Create Oracle WebLogic Server on Azure Kubernetes Service page.

AKS 클러스터 구성

이제 가상 네트워크 내에 AKS 클러스터가 있으므로 배포에 대한 AKS 클러스터를 선택합니다.

  1. 새 AKS 클러스터를 만들려면 아니요를 선택합니다.
  2. AKS 클러스터 선택에서 드롭다운 메뉴를 연 다음, 만든 AKS 클러스터(이 예제에서 명명됨myAKSCluster)를 선택합니다.
  3. Oracle Container Registry의 기존 WebLogic Server Docker 이미지를 사용하려면 예를 선택합니다.
  4. 애플리케이션 이미지를 저장할 새 Azure Container Registry를 만들려면 예를 선택합니다.
  5. Oracle Single Sign-On 인증에 대한 사용자 이름 아래에서 Oracle Single Sign-On 계정 사용자 이름을 입력합니다.
  6. Oracle Single Sign-On 인증에 대한 암호 아래에서 해당 계정의 암호를 입력합니다.
  7. 암호 확인에서 이전 필드의 값을 다시 입력합니다.
  8. WebLogic Server, JDK 및 연산자 시스템 또는 정규화된 Docker 태그의 원하는 조합을 선택하려면 기본값을 유지합니다.
  9. 애플리케이션 패키지 배포의 경우 예를 선택합니다.
  10. 애플리케이션 패키지(.war,.ear,.jar)의 경우 찾아보기를 선택합니다.
    • 만든 스토리지 계정을 선택합니다. 이름은 이 예제에서 시작합니다 stgwlsaks .
    • 컨테이너 페이지에서 컨테이너를 선택합니다. 이 예제에서는 mycontainer를 사용합니다.
    • 컨테이너에 나열된 애플리케이션을 확인합니다. 이 예제에서는 testwebapp.war을 사용합니다.
    • 선택을 선택합니다.
  11. 다른 필드의 경우 기본값을 유지합니다.

이제 AKS 클러스터, WebLogic 기본 이미지 및 Java EE 애플리케이션 구성을 완료했습니다.

다음으로, TLS/SSL 구성 창에서 사용자 고유의 인증서를 사용하여 엔드투엔드 TLS/SSL을 WebLogic Server 관리istration Console 및 HTTPS(보안) 포트의 클러스터로 구성합니다. 이 작업의 경우 AKS의 Oracle WebLogic Server 사용자 가이드의 단계를 수행하지만 다음 스크린샷과 같이 네트워킹에 도달하면 이 페이지로 돌아갑니다. 다음 섹션을 사용하여 네트워킹을 구성한 다음, AKS의 WLS 사용자 가이드로 돌아가 배포를 완료합니다.

Screenshot of Azure portal showing the Networking pane of the Create Oracle WebLogic Server on Azure Kubernetes Service page.

Application Gateway 수신 컨트롤러 구성

다음 단계를 사용하여 가상 네트워크 내에서 Application Gateway 수신 컨트롤러를 구성합니다.

  1. 게이트웨이를 Azure 애플리케이션 커넥트 경우 예를 선택합니다.
  2. 가상 네트워크 구성에서 가상 네트워크에 대해 만든 가상 네트워크를 선택합니다. 이 예제에서는 .에서 myResourceGroup사용합니다myVNet. 서브넷의 경우 Application Gateway에 대한 서브넷을 선택합니다. 이 예제에서는 myAppGatewaySubnet를 사용합니다.
  3. 원하는 TLS/SSL 인증서 선택 옵션의 경우 자체 서명된 프런트 엔드 인증서 생성을 선택합니다.
  4. 관리용 수신 만들기 콘솔의 경우 예를 선택하여 WebLogic 관리istration Console을 노출합니다.
  5. 다른 필드의 경우 기본값을 유지합니다.

이제 AKS의 Oracle WebLogic Server 사용자 가이드에 설명된 대로 WLS 배포의 다른 측면을 계속 진행할 수 있습니다.

WLS의 성공적인 배포 유효성 검사

이 섹션에서는 WLS 클러스터 및 Application Gateway 수신 컨트롤러의 성공적인 배포 유효성을 신속하게 검사하는 방법을 보여 줍니다.

배포가 완료되면 출력을 선택합니다. WebLogic 관리istration Console 및 클러스터의 외부 URL을 찾을 수 있습니다. 다음 지침을 사용하여 이러한 리소스에 액세스합니다.

  • WebLogic 관리istration Console을 보려면 먼저 출력 변수adminConsoleExternalUrl의 값을 복사합니다. 그런 다음 브라우저 주소 표시줄에 값을 붙여넣고 Enter 키를 눌러 WebLogic 관리istration Console의 로그인 페이지를 엽니다.
  • WebLogic 클러스터를 보려면 먼저 출력 변수 clusterExternalUrl의 값을 복사합니다. 다음으로 이 값을 사용하여 다음 템플릿 ${clusterExternalUrl}testwebapp/에 적용하여 샘플 애플리케이션 URL을 생성합니다. 이제 애플리케이션 URL을 브라우저 주소 표시줄에 붙여넣고 Enter 키를 누릅니다. 샘플 애플리케이션은 Application Gateway 수신 컨트롤러가 라우팅하는 Pod의 개인 주소 및 호스트 이름을 보여 줍니다.

리소스 정리

WLS 클러스터를 계속 사용하지 않려면 다음 Azure Portal 단계를 사용하여 가상 네트워크 및 WLS 클러스터를 삭제합니다.

  1. 리소스 그룹에 myResourceGroup대한 개요 페이지를 방문한 다음, 리소스 그룹 삭제를 선택합니다.
  2. AKS 제품에 WLS를 배포한 리소스 그룹의 개요 페이지를 방문한 다음, 리소스 그룹 삭제를 선택합니다.

다음 단계

Azure에서 WLS를 실행하는 옵션을 계속 탐색합니다.