다음을 통해 공유


WebSphere Liberty 또는 Open Liberty에 대한 세션 캐시로 Azure Redis 사용

이 문서에서는 WebSphere Liberty 또는 Open Liberty에 대한 HTTP 세션 캐시로 Azure Redis를 사용하는 방법을 설명합니다.

이 가이드에서는 다음을 수행합니다.

  • 세션 캐시로 Azure Managed Redis 인스턴스를 만듭니다.
  • HTTP 세션의 지속성을 가능하게 하는 샘플 애플리케이션을 준비합니다.
  • 샘플 애플리케이션을 로컬로 실행합니다.

이 문서는 빠르게 배포할 수 있도록 지원하기 위한 것입니다. 프로덕션으로 이동하기 전에 리버티 튜닝을 살펴보아야 합니다.

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

필수 구성 요소

  • Azure 구독 Azure 구독이 아직 없는 경우, 시작하기 전에 무료 계정을 만드십시오.
  • Unix와 비슷한 운영 체제가 설치된 로컬 컴퓨터를 준비합니다(예: Ubuntu, macOS 또는 Linux용 Windows 하위 시스템).
  • Java SE(Standard Edition) 구현 버전 17 이상을 설치합니다(예: OpenJDK Microsoft 빌드를.
  • Maven 3.9.8 이상을 설치합니다.
  • Git이 설치되어 있는지 확인합니다.

Azure Managed Redis 인스턴스 만들기

Azure Managed RedisRedis Enterprise 소프트웨어를 기반으로 메모리 내 데이터 저장소를 제공합니다. 다음 단계를 사용하여 Azure Managed Redis 인스턴스를 만든 다음 연결 정보를 적어둡니다. 나중에 이 정보를 사용하여 샘플 애플리케이션을 구성합니다.

  1. 빠른 시작 안내서의 단계를 따라 Azure Managed Redis 인스턴스를 만듭니다.Azure Managed Redis 인스턴스를 만듭니다. 다음 차이점을 주의 깊게 살펴봅니다.

    1. Redis 인스턴스 만들기섹션의 기본 탭에서 3단계로 진행할 때, Azure Managed Redis를 지원하는 Cache SKU를 선택합니다. 이 가이드에서는 Balanced(일반적인 성능 요구 사항이 있는 범용 워크로드의 경우)선택합니다. 자세한 내용은 올바른 계층을 참조하십시오.

    2. 네트워킹 탭에 있는 Redis 인스턴스 만들기섹션의 4단계에서 연결 옵션에 대해 공용 엔드포인트선택합니다. 이 옵션은 이 가이드를 사용하는 경우 단순성을 위해 가장 적합합니다. 프로덕션의 경우 보안을 향상하기 위해 프라이빗 엔드포인트 사용하는 것이 좋습니다.

    3. 고급 탭에 있는 Redis 인스턴스 만들기섹션의 5단계에서 다음 설정을 구성합니다.

      • 인증경우 액세스 키 인증사용하도록 설정합니다. 이 옵션은 이 가이드를 사용하는 경우 단순성을 위해 가장 적합합니다. 최적의 보안을 위해 가능한 경우 관리 ID와 함께 Microsoft Entra ID를 사용하여 캐시에 대한 요청에 권한을 부여하는 것이 좋습니다. Microsoft Entra ID 및 관리 ID를 사용하여 권한 부여는 공유 액세스 키 권한 부여를 통해 뛰어난 보안 및 사용 편의성을 제공합니다. 캐시에서 관리 ID를 사용하는 방법에 대한 자세한 내용은 Microsoft Entra ID를 사용한 캐시 인증에 대해 설명합니다.

      • 단일 노드 구성이 사용되는 이 가이드에서 작동하는 비클러스터형 캐시의 엔터프라이즈 클러스터링 정책 설정합니다. 자세한 내용은 클러스터링(엔터프라이즈)을 참조하세요.

  2. 배포가 완료되면 배포 페이지에 있는 경우 리소스로 이동을 선택합니다. 그렇지 않은 경우 Azure Portal로 이동하여 Azure Managed Redis 인스턴스를 찾아 선택합니다.

  3. 개요 페이지에서 엔드포인트 값을 적어둡니다. 나중에 REDIS_CACHE_ADDRESS 환경 변수에서 이 값을 사용합니다.

  4. 설정>인증 선택합니다. 액세스 키 선택하고 기본 값을 적어둡니다. 이 값은 나중에 REDIS_CACHE_KEY 환경 변수로 사용합니다.

  5. 다음 명령을 사용하여 환경 변수를 REDIS_CACHE_ADDRESS 내보내고 REDIS_CACHE_KEY.

    export REDIS_CACHE_ADDRESS=rediss://<your-redis-cache-endpoint>
    export REDIS_CACHE_KEY=<your-primary-access-key>
    

샘플 애플리케이션 준비

WebSphere Liberty 및 Open Liberty는 외부 캐시에 HTTP 세션 데이터를 저장할 수 있는 세션 캐시 기능을 제공합니다. 이 가이드에서는 JCache 세션 지속성 기능을 사용하여 세션 데이터를 Azure Managed Redis 인스턴스에 저장합니다.

다음 명령을 사용하여 이 가이드의 샘플 코드를 복제합니다. 샘플은 GitHub의 open-liberty-on-aks 리포지토리에 있습니다. 리포지토리에 몇 가지 샘플이 있습니다. 이 문서에서는 java-app-jcache를 사용합니다.

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
git checkout 20250228
cd java-app-jcache

detached HEAD 상태에 있는 것에 대한 메시지가 표시되면 이 메시지는 무시해도 안전합니다. 태그를 확인한 것일 뿐입니다.

애플리케이션의 파일 구조는 다음과 같습니다.

java-app-jcache/
├── pom.xml
├── pom-redisson.xml
└── src
    └── main
        ├── docker
        │   ├── Dockerfile
        │   └── Dockerfile-wlp
        ├── java
        ├── liberty
        │   └── config
        │       └── server.xml
        ├── redisson
        │   └── redisson-config.yaml
        ├── resources
        └── webapp

pom.xml 파일은 샘플 애플리케이션에 대한 종속성 및 플러그 인을 포함하는 Maven 프로젝트 파일입니다.

pom-redisson.xml 파일은 Redisson 클라이언트 라이브러리에 대한 종속성을 나중에 Liberty 서버의 공유 리소스 디렉터리에 복사하는 데 사용됩니다.

Java, 리소스 및 웹앱 디렉터리에는 샘플 애플리케이션의 소스 코드가 포함됩니다.

liberty/config 디렉터리에서 server.xml 파일을 사용하여 Open Liberty 및 WebSphere Liberty에 대한 HTTP 세션 캐시를 구성합니다.

redisson 디렉터리에서 redisson-config.yaml 파일을 사용하여 Azure Managed Redis 인스턴스에 대한 연결을 구성합니다.

docker 디렉터리에는 두 개의 Dockerfile이 포함되어 있습니다. Dockerfile Open Liberty를 사용하여 이미지를 빌드하는 데 사용되며 Dockerfile-wlp WebSphere Liberty를 사용하여 이미지를 빌드하는 데 사용됩니다.

로컬로 샘플 애플리케이션 실행

다음 단계를 사용하여 샘플 애플리케이션을 로컬로 빌드하고 실행합니다. 이 단계에서는 Maven 및 liberty-maven-plugin을 사용합니다. liberty-maven-plugin대한 자세한 내용은 maven 사용하여 웹 애플리케이션 빌드참조하세요.

  1. 현재 작업 디렉터리가 로컬 클론의 java-app-jcache 인지 확인합니다.

  2. Maven 명령 mvn clean package 실행하고 애플리케이션을 패키지합니다.

  3. mvn -Predisson validate 실행하여 Redisson 구성 파일을 올바른 대상 위치에 복사합니다. 또한 이 단계에서는 REDIS_CACHE_ADDRESS 환경 변수 및 REDIS_CACHE_KEY 값을 server.xml 파일에서 참조하는 redisson-config.yaml 파일에 삽입합니다.

  4. mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources 실행하여 Redisson 클라이언트 라이브러리 및 해당 종속성을 Liberty 서버의 공유 리소스 디렉터리에 복사합니다.

  5. Maven 명령 mvn liberty:dev 실행하고 애플리케이션을 시작합니다. 애플리케이션이 성공적으로 시작되면 명령 출력에 The defaultServer server is ready to run a smarter planet. 표시됩니다.

    Redis 연결이 성공하면 다음과 유사한 출력이 표시됩니다.

    [INFO] [err] [Default Executor-thread-3] INFO org.redisson.Version - Redisson 3.23.4
    [INFO] [err] [redisson-netty-2-7] INFO org.redisson.connection.pool.MasterPubSubConnectionPool - 1 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000
    [INFO] [err] [redisson-netty-2-20] INFO org.redisson.connection.pool.MasterConnectionPool - 24 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000
    

애플리케이션 테스트

웹 브라우저를 열어 http://localhost:9080 애플리케이션 홈페이지가 표시됩니다.

성공적으로 실행되는 Java liberty 애플리케이션의 스크린샷

새로운 커피 양식에서 이름가격필드에 대한 값을 설정한 후에, 제출버튼을 선택합니다. 애플리케이션은 새 커피를 만들고, 보관하며, AZURE Managed Redis 인스턴스에 HTTP 세션을 저장합니다.

몇 초 후에 테이블의 "Our coffees"에 새로운 커피가 보입니다.

Screenshot of sample application showing new coffee created and persisted in the session of the application.샘플 애플리케이션의 스크린샷으로, 애플리케이션 세션에서 생성 및 유지되는 새 커피를 보여줍니다.

Redis에서 세션 데이터를 검색할 수 있음을 보여 주려면 Ctrl+C 사용하여 애플리케이션을 중지하고 mvn liberty:dev 명령을 사용하여 다시 시작합니다.

그런 다음 애플리케이션 홈 페이지를 새로 고칩니다. 새로운 커피섹션에서 동일한 세션 데이터를 볼 수 있습니다. 테스트를 완료하면 애플리케이션을 중지합니다.

애플리케이션 컨테이너화

필요에 따라 다음 단계를 사용하여 컨테이너에서 애플리케이션을 패키지하고 실행할 수 있습니다. 샘플 애플리케이션은 Open Liberty 및 WebSphere Liberty용 두 개의 Dockerfile을 제공합니다. 이 가이드에서는 Open Liberty용 Dockerfile을 사용하지만 유사한 단계를 수행하여 WebSphere Liberty용 Dockerfile을 사용할 수 있습니다.

  1. OS용 Docker를 설치합니다. 자세한 내용은 Docker를 가져오기참조하세요.

  2. 다음 명령을 사용하여 Docker 이미지를 빌드합니다.

    docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
    
  3. 다음 명령을 사용하여 Docker 컨테이너를 시작합니다.

    docker run -it --rm \
       -p 9080:9080 \
       -e REDIS_CACHE_ADDRESS=${REDIS_CACHE_ADDRESS} \
       -e REDIS_CACHE_KEY=${REDIS_CACHE_KEY} \
       --mount type=bind,source=$(pwd)/target/liberty/wlp/usr/servers/defaultServer/redisson-config.yaml,target=/config/redisson-config.yaml \
       javaee-cafe-jcache:v1
    

    컨테이너가 시작되면 Docker 없이 애플리케이션을 로컬로 실행하는 데 사용하는 것과 유사한 단계를 사용하여 테스트할 수 있습니다.

리소스 정리

Azure 요금을 방지하려면 불필요한 리소스를 정리해야 합니다. Azure Managed Redis 인스턴스가 더 이상 필요하지 않은 경우 해당 리소스 그룹 이름을 찾아 Azure Portal에서 삭제합니다.

자세한 내용은 리소스 그룹 삭제를 참조하세요.

다음 단계

이 가이드에 사용된 참조에서 자세한 내용을 알아볼 수 있습니다.

  • JCache를 사용하여 Liberty 세션 지속성 구성
  • Redisson의 JCache 지원
  • Open Liberty 서버 구성

샘플 애플리케이션을 Azure에 배포하려면 다음 문서를 참조하세요.

Azure에서 WebSphere 제품을 실행할 수 있는 옵션을 알아보려면 Azure에서 WebSphere 제품군을 실행할 수 있는 솔루션은 무엇인가요?를 참조하십시오.