다음을 통해 공유


빠른 시작: Azure VM(Virtual Machines)에 JBoss EAP 클러스터 배포

이 문서에서는 Azure Portal을 사용하여 Azure VM(Virtual Machines)에 JBoss EAP(Enterprise Application Platform) 클러스터를 빠르게 배포하는 방법을 보여 줍니다.

이 문서에서는 JBoss EAP 클러스터용 Azure Marketplace 제품을 사용하여 Azure VM으로의 경험을 가속화합니다. 이 제품은 RHEL(Azure Red Hat Enterprise Linux) VM, 각 VM의 JBoss EAP 인스턴스, 각 VM의 Red Hat OpenJDK 빌드, JBoss EAP 관리 콘솔 및 선택적으로 Azure App Gateway 인스턴스를 포함한 다양한 리소스를 자동으로 프로비전합니다. 제품을 보려면 Azure Portal을 사용하여 RHEL VM의 JBoss EAP 클러스터 솔루션을 참조하세요.

Azure Marketplace 제품에서 지원하는 자동화를 사용하지 않는 Azure VM에 Red Hat JBoss EAP Cluster를 설치하기 위한 수동 단계별 지침을 선호하는 경우 자습서: Azure Virtual Machines에 Red Hat JBoss EAP 수동 설치를 참조하세요.

피드백을 제공하거나 Azure 솔루션에서 JBoss EAP를 개발하는 엔지니어링 팀과 함께 마이그레이션 시나리오에 대해 긴밀히 작업하려는 경우 JBoss EAP 마이그레이션에 대한 이 간단한 설문 조사를 작성하고 연락처 정보를 포함하세요. 프로그램 관리자, 설계자 및 엔지니어 팀이 즉시 연락을 취하여 긴밀한 공동 작업을 시작합니다.

필수 구성 요소

  • Azure 구독 Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
  • 로그인하는 데 사용하는 Azure ID에 현재 구독에서 기여자 역할 또는 소유자 역할이 있는지 확인합니다. Azure 역할의 개요는 Azure RBAC(역할 기반 액세스 제어)란?을 참조하세요.
  • JDK(Java Development Kit) 버전 17. 이 가이드에서는 OpenJDK의 Red Hat 빌드를 권장합니다. 명령을 실행하는 셸에서 JAVA_HOME 환경 변수가 올바르게 설정되었는지 확인합니다.
  • Git git --version를 사용하여 git이 작동하는지 테스트합니다. 이 자습서는 버전 2.34.1로 테스트되었습니다.
  • Maven mvn -version를 사용하여 mvn이 작동하는지 테스트합니다. 이 자습서는 버전 3.8.6으로 테스트되었습니다.

참고 항목

이 문서에서 사용할 Azure Marketplace 제품에는 라이선스 관리를 위한 Red Hat Satellite 지원이 포함되어 있습니다. Red Hat Satellite 사용은 이 빠른 시작의 범위를 벗어납니다. Red Hat Satellite에 대한 개요는 Red Hat Satellite를 참조하세요. Red Hat JBoss EAP 및 Red Hat Enterprise Linux 구독을 Azure로 이동하는 방법에 대한 자세한 내용은 Red Hat Cloud Access 프로그램을 참조하세요.

Azure Database for PostgreSQL 유연한 서버 설정

이 섹션의 단계에서는 다음 섹션에서 JBoss EAP 클러스터를 설정하는 동안 데이터베이스 연결을 구성하는 데 사용하는 Azure Database for PostgreSQL 유연한 서버를 배포하도록 안내합니다.

먼저 다음 명령을 사용하여 일부 환경 변수를 설정합니다.

export RG_NAME=<db-resource-group-name>
export SERVER_NAME=<database-server-name>
export ADMIN_PASSWORD=<postgresql-admin-password>

자리 표시자를 문서 전체에서 사용되는 다음 값으로 바꿉니다.

  • <db-resource-group-name>: PostgreSQL 유연한 서버에 사용할 리소스 그룹의 이름입니다(예: ejb040323postgresrg).
  • <database-server-name>: Azure 전체에서 고유해야 하는 PostgreSQL 서버의 이름입니다(예: ejb040323postgresqlserver).
  • <postgresql-admin-password>: PostgreSQL 서버의 암호입니다. 암호는 최대 128자여야 합니다. 문자는 영어 대문자, 영어 소문자, 숫자(0-9) 및 영숫자가 아닌 문자(!, $, #, % 등) 중 세 가지 범주에 속해야 합니다.

그런 다음, 다음 단계에서 Azure Database for PostgreSQL 유연한 서버를 만듭니다.

  1. 다음 명령을 사용하여 Azure Database for PostgreSQL 유연한 서버를 만듭니다.

    az postgres flexible-server create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --database-name testdb \
        --public-access 0.0.0.0  \
        --admin-user testuser \
        --admin-password ${ADMIN_PASSWORD} \
        --yes
    
  2. PostgreSQL 서버의 호스트를 가져오려면 다음 명령을 사용합니다.

    export DB_HOST=$(az postgres flexible-server show \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    
  3. PostgreSQL 서버의 JDBC(Java Database Connectivity) 연결 URL을 가져오려면 다음 명령을 사용합니다.

    echo jdbc:postgresql://${DB_HOST}:5432/testdb
    

    이 문서 뒷부분에서 PostgreSQL 서버의 데이터 원본 연결 문자열로 사용하는 출력을 기록해 둡니다.

Azure VM에 JBoss EAP 클러스터 배포

이 섹션의 단계에서는 Azure VM에 JBoss EAP 클러스터를 배포하는 방법을 안내합니다.

Azure VM의 JBoss EAP 클러스터 제품을 찾으려면 다음 단계를 따릅니다.

  1. https://aka.ms/publicportal을 방문하여 Azure Portal에 로그인합니다.

  2. Azure Portal 위쪽의 검색 표시줄에 JBoss EAP를 입력합니다. 검색 결과의 Marketplace 섹션에서 VM의 JBoss EAP Cluster를 선택합니다.

    Azure Portal에서 검색 결과에 Azure VM의 JBoss EAP Server를 보여 주는 스크린샷.

  3. 드롭다운 메뉴에서 PAYG가 선택되어 있는지 확인합니다.

또는 Azure VM의 JBoss EAP 클러스터 제품으로 직접 이동할 수도 있습니다. 이 경우 올바른 계획이 이미 선택되어 있습니다.

두 경우 모두 이 제품은 배포 시 Red Hat 구독을 제공하여 Azure VM에 JBoss EAP 클러스터를 배포합니다. 이 제품은 기본 VM에 대한 종량제 결제 구성을 사용하여 Red Hat Enterprise Linux에서 클러스터를 실행합니다.

다음 단계에서는 다음 스크린샷에 표시된 기본 사항 창을 작성하는 방법을 보여 줍니다.

Azure Portal에서 VM 기본 사항 창의 JBoss EAP 클러스터를 보여 주는 스크린샷.

  1. 제안 페이지에서 만들기를 선택합니다.
  2. 기본 사항 창에서 구독 필드에 표시된 값이 필수 구성 요소 섹션에 나열된 역할이 있는 값과 동일한지 확인합니다.
  3. 빈 리소스 그룹에 제안을 배포해야 합니다. 리소스 그룹 필드에서 새로 만들기를 선택하고 리소스 그룹 값을 입력합니다. 리소스 그룹은 구독 내에서 고유해야 하므로 고유한 이름을 선택합니다. 고유한 이름을 갖는 쉬운 방법은 이니셜, 오늘 날짜 및 일부 식별자의 조합을 사용하는 것입니다. 예: ejb040323jbosseapcluster.
  4. 인스턴스 세부 정보에서 배포 지역을 선택합니다.
  5. 가상 머신 크기에 기본 VM 크기를 그대로 둡니다.
  6. JDK 버전에 기본 옵션 OpenJDK 17을 그대로 둡니다.
  7. 사용자 이름에 기본값 jbossuser를 그대로 둡니다.
  8. 인증 유형에 기본 옵션 암호를 그대로 둡니다.
  9. 암호에 암호를 입력합니다. 암호 확인에 동일한 값을 사용합니다.
  10. 만들 가상 머신 수에는 3을 사용합니다.
  11. 선택적 기본 구성에서 선택적 구성에 대한 기본값 적용에 기본 옵션 를 그대로 둡니다.
  12. 기본 사항 창의 아래쪽으로 스크롤하여 보고서 문제, 도움말 및 피드백 공유에 대한 유용한 링크를 확인합니다.
  13. 다음: JBoss EAP 설정을 선택합니다.

다음 단계에서는 다음 스크린샷에 표시된 JBoss EAP 설정 창을 작성하는 방법을 보여 줍니다.

Azure Portal에서 VM JBoss EAP 설정 창의 JBoss EAP 클러스터를 보여 주는 스크린샷.

  1. 관리되는 도메인 또는 독립형 호스트를 사용하여 클러스터 형성에 대한 기본 옵션인 관리되는 도메인을 그대로 둡니다.
  2. JBoss EAP 관리자 사용자 이름에 기본값 jbossadmin을 그대로 둡니다.
  3. JBoss EAP 암호에 JBoss EAP 암호를 입력합니다. 암호 확인에 동일한 값을 사용합니다. 나중에 사용할 수 있도록 값을 따로 보관해 둡니다.
  4. Connect to an existing Red Hat Satellite Server?(기존 Red Hat Satellite 서버에 연결하시겠어요?)에 기본 옵션 아니요를 그대로 둡니다.
  5. 다음: Azure Application Gateway를 선택합니다.

다음 단계에서는 다음 스크린샷에 표시된 Azure Application Gateway 창을 작성하는 방법을 보여 줍니다.

Azure Portal에서 VM Azure Application Gateway 창의 JBoss EAP 클러스터를 보여 주는 스크린샷.

  1. Azure Application Gateway에 연결하려고 하나요?에서 를 선택합니다.

  2. 다음: 네트워킹을 선택합니다.

    이 창에서는 JBoss EAP 클러스터가 배포되는 가상 네트워크와 서브넷을 사용자 지정할 수 있습니다. 가상 네트워크에 대한 자세한 내용은 가상 네트워크 만들기, 변경 또는 삭제를 참조하세요. 이 창에서는 기본값을 적용합니다.

  3. 다음: 데이터베이스를 선택합니다.

다음 단계에서는 다음 스크린샷에 표시된 데이터베이스 창을 작성하고 배포를 시작하는 방법을 보여 줍니다.

Azure Portal에서 VM 데이터베이스 창의 JBoss EAP 클러스터를 보여 주는 스크린샷.

  1. 데이터베이스에 연결하려고 하나요?에서 를 선택합니다.
  2. 데이터베이스 형식 선택에서 PostgreSQL을 선택합니다.
  3. JNDI 이름java:jboss/datasources/JavaEECafeDB를 입력합니다.
  4. 데이터 원본 연결 문자열(jdbc:postgresql://<host>:<port>/<database>)에 이전에 저장한 PostgreSQL 서버의 JDBC 연결 URL을 제공합니다.
  5. 데이터베이스 사용자 이름testuser를 입력합니다.
  6. 데이터베이스 암호에 대해 이전에 지정한 자리 표시자 <postgresql-admin-password>의 값을 제공합니다. 암호 확인에 동일한 값을 사용합니다.
  7. 검토 + 만들기를 선택합니다. 위쪽에 녹색 유효성 검사 통과 메시지가 표시되는지 확인합니다. 메시지가 표시되지 않으면 유효성 검사 문제를 해결한 다음 검토 + 만들기를 다시 선택합니다.
  8. 만들기를 실행합니다.
  9. 배포 진행 중 페이지에서 배포 진행률을 추적합니다.

선택한 지역의 네트워크 조건 및 기타 활동에 따라 배포를 완료하는 데 최대 35분이 걸릴 수 있습니다. 그런 다음 배포가 완료됨이라는 텍스트가 배포 페이지에 표시됩니다.

배포 기능 확인

Red Hat JBoss Enterprise Application Platform 관리 콘솔에서 Azure VM의 JBoss EAP 클러스터 배포 기능을 확인하려면 다음 단계를 따릅니다.

  1. 배포 페이지에서 출력을 선택합니다.

  2. adminConsole 옆에 있는 복사 아이콘을 선택합니다.

    Azure Portal에서 adminConsole URL이 강조 표시된 배포 출력을 보여 주는 스크린샷.

  3. 인터넷에 연결된 웹 브라우저에 URL을 붙여넣고 Enter 키를 누릅니다. 다음 스크린샷처럼 친숙한 Red Hat JBoss Enterprise Application Platform 관리 콘솔 로그인 화면이 표시됩니다.

    JBoss EAP 관리 콘솔 로그인 화면의 스크린샷.

  4. JBoss EAP 관리 사용자 이름에 대해 jbossadmin을 입력합니다. 이전에 암호에 지정한 JBoss EAP 암호 값을 입력한 다음 로그인을 선택합니다.

  5. 다음 스크린샷에 표시된 대로 친숙한 Red Hat JBoss Enterprise Application Platform 관리 콘솔 시작 페이지가 표시됩니다.

    JBoss EAP 관리 콘솔 홈페이지의 스크린샷.

  6. 런타임 탭을 선택합니다. 탐색 창에서 토폴로지를 선택합니다. 다음 스크린샷에 표시된 것처럼 클러스터에 하나의 도메인 컨트롤러 마스터와 두 개의 작업자 노드가 포함되어 있는 것을 확인해야 합니다.

    JBoss EAP 관리 콘솔 런타임 토폴로지의 스크린샷.

  7. 구성 탭을 선택합니다. 탐색 창에서 프로필>ha>데이터 원본 및 드라이버>데이터 원본를 선택합니다. 다음 스크린샷과 같이 데이터 원본 dataSource-postgresql이 나열되어 있는지 확인해야 합니다.

    데이터 원본이 선택된 JBoss EAP 관리 콘솔 구성 탭의 스크린샷.

관리 콘솔을 열어 둡니다. 다음 섹션에서는 이를 사용하여 JBoss EAP 클러스터에 샘플 앱을 배포합니다.

JBoss EAP 클러스터에 앱 배포

다음 단계에서 Java EE Cafe 샘플 애플리케이션을 Red Hat JBoss EAP 클러스터에 배포합니다.

  1. 다음 단계에서 Java EE Cafe 샘플을 빌드합니다. 다음 단계에서는 Git 및 Maven이 설치된 로컬 환경이 있다고 가정합니다.

    1. 다음 명령을 사용하여 GitHub에서 소스 코드를 복제하고 이 문서 버전에 해당하는 태그를 체크 아웃합니다.

      git clone https://github.com/Azure/rhel-jboss-templates.git --branch 20240904 --single-branch
      

      You are in 'detached HEAD' state 텍스트가 포함된 오류 메시지가 표시되면 무시해도 됩니다.

    2. 다음 명령을 사용하여 소스 코드를 빌드합니다.

      mvn clean install --file rhel-jboss-templates/eap-coffee-app/pom.xml
      

      이 명령은 rhel-jboss-templates/eap-coffee-app/target/javaee-cafe.war 파일을 만듭니다. 다음 단계에서 이 파일을 업로드합니다.

  2. Red Hat JBoss Enterprise Application Platform 관리 콘솔에서 다음 단계에서 javaee-cafe.war콘텐츠 리포지토리에 업로드합니다.

    1. Red Hat JBoss EAP 관리 콘솔의 배포 탭에 있는 탐색 패널에서 콘텐츠 리포지토리를 선택합니다.

    2. 추가를 선택한 다음 콘텐츠 업로드를 선택합니다.

      콘텐츠 업로드 메뉴 항목이 강조 표시된 JBoss EAP 관리 콘솔 배포 탭의 스크린샷.

    3. 브라우저 파일 선택기를 사용하여 javaee-cafe.war 파일을 선택합니다.

    4. 다음을 선택합니다.

    5. 다음 화면에서 기본값을 수락하고 마침을 선택합니다.

    6. 콘텐츠 보기를 선택합니다.

  3. 다음 단계에서 main-server-group에 애플리케이션을 배포합니다.

    1. 콘텐츠 리포지토리에서 javaee-cafe.war을 선택합니다.

    2. 드롭다운 메뉴를 열고 배포를 선택합니다.

    3. javaee-cafe.war 배포를 위한 서버 그룹으로 main-server-group을 선택합니다.

    4. 배포를 선택하여 배포를 시작합니다. 다음 스크린샷과 유사한 알림이 표시됩니다.

      성공적인 배포 알림 스크린샷.

이제 Java EE 애플리케이션 배포가 완료되었습니다. 다음 단계에 따라 애플리케이션에 액세스하고 모든 설정의 유효성을 검사합니다.

  1. 다음 명령을 사용하여 Azure Application Gateway의 공용 IP 주소를 가져옵니다. 자리 표시자 <resource-group-name>을 JBoss EAP 클러스터가 배포된 리소스 그룹의 이름으로 바꿉니다.

    az network public-ip show \
        --resource-group <resource-group-name> \
        --name gwip \
        --query '[ipAddress]' \
        --output tsv
    
  2. 배포된 Azure Application Gateway의 공용 IP 주소인 출력을 복사합니다.

  3. 인터넷에 연결된 웹 브라우저를 엽니다.

  4. URL이 http://<gateway-public-ip-address>/javaee-cafe인 애플리케이션으로 이동합니다. 자리 표시자 <gateway-public-ip-address>를 이전에 복사한 Azure Application Gateway의 공용 IP 주소로 바꿉니다.

  5. 커피를 추가하고 제거해 보세요.

리소스 정리

Azure 요금을 방지하려면 불필요한 리소스를 정리해야 합니다. Azure VM에 배포된 JBoss EAP 클러스터가 더 이상 필요하지 않으면 JBoss EAP 서버를 등록 취소하고 Azure 리소스를 제거합니다.

다음 명령을 실행하여 Red Hat 구독 관리에서 JBoss EAP 서버 및 VM을 등록 취소합니다. 자리 표시자 <resource-group-name>을 JBoss EAP 클러스터가 배포된 리소스 그룹의 이름으로 바꿉니다.

# Unregister domain controller
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm-adminVM \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

# Unregister host controllers
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"
az vm run-command invoke \
    --resource-group <resource-group-name> \
    --name jbosseapVm1 \
    --command-id RunShellScript \
    --scripts "sudo subscription-manager unregister"

다음 명령을 실행하여 JBoss EAP 클러스터와 Azure Database for PostgreSQL 유연한 서버가 배포된 두 리소스 그룹을 제거합니다. 자리 표시자 <resource-group-name>을 JBoss EAP 클러스터가 배포된 리소스 그룹의 이름으로 바꿉니다. 환경 변수 $RG_NAME이 PostgreSQL 유연한 서버가 배포된 리소스 그룹의 이름으로 설정되어 있는지 확인합니다.

az group delete --name <resource-group-name> --yes --no-wait
az group delete --name $RG_NAME --yes --no-wait

다음 단계

Azure에 JBoss EAP를 배포하기 위한 옵션에 대해 자세히 알아봅니다.