Migrate to Containers를 사용하여 WebSphere 애플리케이션을 컨테이너로 마이그레이션

Last reviewed 2021-12-22 UTC

이 문서는 IBM WebSphere Application Server(WAS)에서 실행되는 Java 애플리케이션을 Google Kubernetes Engine(GKE) 또는 GKE Enterprise에서 실행되는 컨테이너로 마이그레이션하려는 애플리케이션 소유자와 클라우드 설계자를 대상으로 합니다. 여기서는 WAS 기존 애플리케이션을 온프레미스, 비공개 호스팅 환경 또는 다른 클라우드 제공업체의 원본 환경에서 컨테이너로 마이그레이션하는 과정을 안내합니다. 또한 Migrate to Containers를 사용해서 마이그레이션을 자동화하는 이점도 강조합니다.

Migrate to Containers를 사용하여 WebSphere VM을 컨테이너로 마이그레이션하려면 사전 WebSphere 지식이 있어야 합니다.

이 문서는 컨테이너로 WAS 애플리케이션 마이그레이션을 계획할 때 고려해야 할 다른 항목에 대해서도 설명합니다. 이 문서는 Google Cloud로 마이그레이션하는 방법을 다루는 시리즈의 일부입니다. 시리즈의 개요에 대해 자세히 알아보려면 Google Cloud로 마이그레이션: 마이그레이션 경로 선택을 참조하세요.

Migrate to Containers를 사용하여 Linux와 같이 호환되는 운영체제에서 호환되는 WAS를 실행하는 WAS 기존 애플리케이션을 지원되는 원본 환경에서 GKE 또는 GKE Enterprise 환경으로 마이그레이션하려는 경우에 이 문서를 읽어보세요. 이러한 원본 환경에는 다음이 포함될 수 있습니다.

Migrate to Containers는 IBM Migration Toolkit for Application Binaries 사용을 자동화하여 WAS 기존 가상 머신에서 모든 WAS 기존 애플리케이션을 검색, 검사 및 마이그레이션합니다. 그런 다음 해당 WAS 기존 애플리케이션을 개별 WebSphere 기존 컨테이너로 분할합니다.

Migrate to Containers는 모든 WAS 기존 애플리케이션을 개별 WebSphere 컨테이너로 검색, 검사, 마이그레이션 및 분할합니다.

Migrate to Containers를 사용하여 WAS 기존 애플리케이션을 마이그레이션하려면 최소한의 공간(최소 1GB RAM 및 2GB 이미지 크기)과 라이선스 비용(WAS 네트워크 배포 구독 최대 70% 할인)이 필요합니다.

Migrate to Containers를 사용하여 WAS 기존 애플리케이션을 마이그레이션하면 컨테이너화된 환경의 여러 측면의 이점을 얻을 수 있습니다. 앞서 논의한 라이선스 비용이 감소되었습니다. 애플리케이션을 위한 WAS Liberty 또는 Open Liberty 컨테이너를 만들어 향후 기본 제공되는 클라우드 프레임워크로의 추가 현대화를 통해 미래에 대비할 수 있는 기능도 있습니다.

WAS Liberty는 빠른 웹 및 클라우드 기반 애플리케이션 개발 및 배포를 위한 경량 프로덕션 런타임이며, 오픈소스 Openerty 프로젝트를 기반으로 구축되었습니다. 기업은 WAS Liberty와 Open Liberty를 모두 사용하여 클라우드 기반 자바 마이크로서비스를 빌드합니다.

GKE Enterprise 또는 GKE로 마이그레이션하면 WAS 네트워크 배포 관리자 기능이 다음 제품으로 오프로드됩니다.

다음 다이어그램에서는 GKE 또는 GKE Enterprise가 이전에 WAS 네트워크 배포에서 관리했던 중앙 집중식 기능(예: 고가용성, 워크로드 배치, 중앙 집중식 구성)을 관리하는 방법을 보여줍니다. 애플리케이션별 구성은 Docker 이미지를 빌드할 때 관리합니다. Docker 이미지 기반 구성을 사용하면 CI/CD 프로세스를 통해 반복성과 자동화를 지원할 수 있습니다.

오프로드 WAS 네트워크 배포 관리자 기능을 Kubernetes, Anthos Service Mesh, 구성 동기화 및 Google Cloud 운영으로 마이그레이션 WAS 네트워크 배포 환경과 WAS Base 환경은 WAS Liberty 또는 Open Liberty 컨테이너로 마이그레이션할 수 있습니다.

Migrate to Containers를 사용하여 WAS 기존 애플리케이션을 컨테이너로 마이그레이션하는 것은 워크로드 현대화 여정에서 가능한 단계 중 하나입니다. 마이그레이션을 통해 애플리케이션을 클라우드 환경에서 실행할 수 있도록 변환하고 WAS 기존 애플리케이션을 현대화하는 데 필요한 고가의 재작성을 방지할 수 있습니다.

이상적인 마이그레이션 후보는 지원되는 WebSphere 네트워크 배포, WebSphere Base 또는 지원되는 자바 버전에서 실행되는 애플리케이션이며, 완전한 재작성을 통한 현대화는 리소스 측면에서 너무 비싸거나 전혀 불가능합니다. 이상적인 마이그레이션 후보에 대한 자세한 내용은 Migrate to Containers를 사용하여 VM을 컨테이너로 마이그레이션을 참조하세요.

Google Cloud로 마이그레이션 설계

WAS 기존 애플리케이션을 원본 환경에서 Google Cloud에서 실행 중인 컨테이너로 마이그레이션하려면 Google Cloud로의 마이그레이션 시리즈에 설명된 프레임워크를 따르세요.

다음 다이어그램은 마이그레이션 과정을 보여줍니다.

4가지 단계로 구성된 마이그레이션 경로

앞의 다이어그램에 표시된 프레임워크는 다음 4가지 단계로 구성되어 있습니다.

  1. 평가: 이 단계에서는 원본 환경, Google Cloud로 마이그레이션할 애플리케이션, 마이그레이션에 적합한 WAS 기존 애플리케이션을 평가합니다.
  2. 계획: 이 단계에서는 리소스 계층 구조 프로비저닝 및 네트워크 액세스 설정과 같은 Migrate to Containers의 기본 인프라를 만듭니다.
  3. 배포: 이 단계에서는 Migrate to Containers를 사용하여 WAS 기존 애플리케이션을 원본 환경에서 GKE 또는 GKE Enterprise로 마이그레이션합니다.
  4. 최적화: 이 단계부터 클라우드 기술 및 기능을 활용하게 됩니다.

원본 환경 및 애플리케이션 평가

평가 단계에서는 원본 환경 및 마이그레이션할 애플리케이션에 대한 정보를 수집합니다. 이를 통해 마이그레이션과 대상 환경 모두에 필요한 리소스의 크기를 적절하게 조정할 수 있습니다.

평가 단계에서는 다음을 수행합니다.

  1. 애플리케이션의 포괄적인 인벤토리를 빌드합니다.
  2. 워크로드의 속성과 종속 항목에 따라 애플리케이션을 분류합니다.
  3. 팀에 Google Cloud 교육을 실시합니다.
  4. Google Cloud에 대한 실험 및 개념 증명을 빌드합니다.
  5. 대상 환경의 총 소유 비용(TCO)을 계산합니다.
  6. 먼저 마이그레이션할 애플리케이션을 선택합니다.

다음 섹션에서는 Google Cloud로 마이그레이션: 워크로드 평가 및 검색을 따릅니다. 하지만 여기서는 Migrate to Containers를 사용하여 컨테이너로 마이그레이션할 WAS 기존 애플리케이션을 평가하는 것과 관련된 정보를 제공합니다.

인벤토리 빌드

마이그레이션 범위를 지정하려면 WAS 기존 환경을 이해해야 합니다. 환경을 이해하기 위해서는 애플리케이션 및 해당 종속 항목에 대한 정보를 수집합니다.

앱의 인벤토리 빌드에서는 WAS 기존 환경의 워크로드 인벤토리 및 종속 항목을 빌드하는 방법을 설명합니다. 안내에 따라 인벤토리를 빌드합니다. 작업을 마치면 이 문서를 계속 읽습니다.

워크로드와 해당 종속 항목의 인벤토리를 빌드했으므로 이제 인벤토리를 세분화할 수 있습니다. Migrate to Containers를 사용하여 WAS 기존 애플리케이션을 마이그레이션할 때 조직에서 관심 있는 측면과 기능을 평가합니다.

마이그레이션을 위한 WAS 환경을 평가하기 전에 Migrate to Containers를 사용하여 VM을 컨테이너로 마이그레이션Google Cloud로 마이그레이션: 워크로드 평가 및 검색을 완료합니다. 이 작업을 마치면 워크로드의 인벤토리를 완료합니다.

워크로드의 인벤토리를 완료하려면 다음을 고려하세요.

  • WAS VM에서 실행되는 운영체제: WAS VM에서 실행되는 운영체제 및 라이선스에 대한 정보를 수집하고 운영체제가 호환되는 운영체제 및 Kubernetes 버전에 나열된 64비트 Linux 운영체제인지 확인합니다.
  • 애플리케이션을 실행하는 WAS 버전: 애플리케이션을 실행하는 WS 버전에 대한 정보를 수집하고 Migrate to Containers와의 호환성을 확인합니다. Migrate to Containers는 WAS 기반WAS 네트워크 배포 환경 모두에 대해 기존 WAS 애플리케이션(WebSphere Application Server 기존 8.5.5.x 및 WebSphere Application Server 기존 9.0.5.x 버전)의 마이그레이션을 지원합니다.

  • WAS에 배포된 애플리케이션: 각 WAS에 배포되는 애플리케이션을 평가합니다. 그런 후 애플리케이션 사이 그리고 애플리케이션과 외부 서비스 사이에 종속 항목을 매핑합니다. 그런 후 애플리케이션의 구성 소스에 대한 정보를 수집합니다. 예를 들어 다음을 사용하는지에 대한 여부가 이러한 정보에 포함됩니다.

    • 환경 변수
    • 비표준 WAS 설치 경로
    • LDAP 사용자 레지스트리
    • 보안 역할 매핑
    • 로더 순서에 클래스를 적용하기 위한 수정사항
  • Migrate to Containers 적합성 점수: Migrate to Containers를 사용하여 마이그레이션을 수행하는 데 WAS 기존 애플리케이션이 적합한지 여부를 평가합니다. Migrate to Containers는 적합성 점수 계산을 위해 WAS 기존 애플리케이션에서 실행할 수 있는 적합성 평가 도구를 제공합니다. Migrate to Containers에는 WAS 기존 애플리케이션을 성공적으로 마이그레이션하는 데 필요한 최소 요구사항이 있습니다. WAS 기존 애플리케이션 마이그레이션을 자동화할 때도 몇 가지 제한사항이 적용됩니다. 마이그레이션할 때 애플리케이션을 수동으로 구성하면 이러한 제한을 해결할 수 있습니다.

  • 인증: WAS는 Simple WebSphere Authentication Mechanism(SWAM), Lightweight Third Party Authentication(LTPA) 및 Kerberos와 같은 여러 인증 메커니즘을 제공합니다. 사용자 레지스트리 구현 하나만 WAS 보안 도메인의 활성 사용자 레지스트리로 구성할 수 있습니다. Migrate to Containers는 인증 세부정보를 자동으로 마이그레이션하지 않습니다. 즉, 일반적으로 인증을 구성하려면 마이그레이션 중에 몇몇 수동 구성이 필요합니다.

  • 데이터 액세스(JDBC): J2EE 커넥터 아키텍처는 WAS를 기업 정보 시스템에 연결하는 표준 리소스 어댑터를 정의합니다. 이 어댑터는 기업 정보 시스템, 애플리케이션 서버, 애플리케이션 간의 연결을 제공합니다. Migrate to Containers가 JDBC 구성을 자동으로 현대화된 WAS 컨테이너로 마이그레이션합니다. 마이그레이션된 애플리케이션과 기존 데이터 저장소 간에 연결을 사용 설정했는지 확인하세요.

  • 메시징(JMS): WAS는 자바 메시징 서비스(JMS) 프로그래밍 인터페이스를 통한 비동기 통신을 지원합니다. Migrate to Containers는 JMS 구성 정보를 자동으로 마이그레이션합니다. 그러나 SSL과 같은 특정 구성에는 일부 수동 마이그레이션 작업이 필요합니다.

  • 메일: WAS는 JavaMail API를 통한 이메일 전송을 지원합니다. Migrate to Containers에서 JavaMail 구성 파일을 자동으로 마이그레이션하지 않습니다. 마이그레이션 단계 중에 이러한 파일을 수동으로 구성하세요.

평가 완료

환경 및 WAS 기존 워크로드와 관련된 인벤토리를 빌드한 후 Google Cloud로 마이그레이션: 워크로드 평가 및 검색에 설명된 나머지 평가 단계 활동을 완료합니다. 작업을 마치면 이 문서를 계속 읽습니다.

기반 계획 및 빌드

VM을 마이그레이션할 때 기반 계획 및 빌드의 안내를 따른 후 WAS 기반을 완료합니다.

  1. Cloud Storage 버킷 이름 확인
  2. 다음 단계에 따라 IBM WebSphere Application Server Migration Toolkit for Application Binaries의 일부로 사용 가능한 binaryAppScanner.jar 파일을 업로드합니다.

    1. binaryAppScannerInstaller.jar 설치 파일을 다운로드합니다. 다운로드 중에 라이선스 계약에 동의해야 합니다.
    2. 다음 명령어를 실행하여 binaryAppScanner.jar 파일을 추출하고 라이선스 계약에 동의합니다.

      java -jar binaryAppScannerInstaller.jar --acceptLicense --verbose
      
    3. 추출할 대상 디렉터리(예: /tmp)를 지정합니다. 설치 프로그램에서 대상 디렉터리 내에 /wamt라는 디렉터리를 만듭니다.

    4. /wamt 디렉터리로 이동합니다. 예를 들면 다음과 같습니다.

      cd /tmp/wamt
      
    5. Cloud Storage 버킷의 루트에 binaryAppScanner.jar 파일을 업로드합니다.

      gsutil cp binaryAppScanner.jar gs://BUCKET_NAME
      

      여기서 BUCKET_NAME은 Cloud Storage 버킷의 이름입니다.

Migrate to Containers 설정에서는 Migrate to Containers 및 종속 항목을 프로비저닝하고 구성하는 방법을 설명합니다. 이 안내에 따라 Migrate to Containers를 설정하세요.

작업을 마치면 이 문서를 계속 읽습니다.

WAS 기존 애플리케이션을 컨테이너로 마이그레이션

마이그레이션 배포 단계에 대한 자세한 내용은 VM을 컨테이너로 마이그레이션의 안내를 따르세요.

마이그레이션 계획 생성 및 검토

WAS 기존 애플리케이션에 대한 Migrate to Containers 마이그레이션 계획을 만듭니다.

  1. 원본 환경을 Migrate to Containers 마이그레이션 소스로 구성: WAS 기존 애플리케이션을 마이그레이션하려면 Migrate to Containers에 VM이 실행되는 원본 환경에 대한 정보가 필요합니다. 이 정보는 이 문서의 인벤토리 빌드 섹션에 설명된 태스크를 수행하여 수집되었습니다. 원본 환경 구성에 대한 자세한 내용은 마이그레이션 소스 추가를 참조하세요.
  2. 마이그레이션 계획 만들기: 원본 환경에서 지원되는 대상 환경으로 마이그레이션할 WAS 기존 애플리케이션을 지정하려면 마이그레이션 계획을 만듭니다. 예를 들어 영구 데이터를 저장할 위치를 구성할 수 있습니다.

    마이그레이션 계획 만들기 및 모니터링에 대한 자세한 내용은 마이그레이션 만들기를 참조하세요.

    마이그레이션을 만들려면 명령줄을 사용해야 합니다. Google Cloud 콘솔을 사용할 수 없습니다. 전체 명령어는 다음과 같습니다.

    migctl migration create my-migration
      --source my-was-src
      --vm-id PROJECT_ID
      --intent Image
      --os-type Linux
      --app-type websphere-traditional
    

    여기서 PROJECT_ID는 마이그레이션 프로젝트에 할당된 ID이고 Image는 인텐트 플래그의 값입니다. 워크로드의 스테이트리스(Stateless) 특성으로 인해 '이미지'를 사용합니다.

  3. 마이그레이션 계획 검토 및 맞춤설정: 마이그레이션하려는 각 VM에 대해 마이그레이션 계획을 생성한 후에는 요구사항에 적합한지 확인하기 위해 각 마이그레이션 계획을 검토하고 맞춤설정하는 것이 좋습니다. 마이그레이션 계획 맞춤설정에 대한 자세한 내용은 마이그레이션 계획 맞춤설정을 참조하세요.

마이그레이션 아티팩트 및 배포 설명자 생성

Migrate to Containers는 애플리케이션의 대상 WAS 아티팩트를 생성하기 위해 마이그레이션 계획에서 구성한 VM에서 실행 중인 애플리케이션을 추출합니다. 그런 다음 여러 아티팩트를 만들어 Cloud Storage 버킷에 배치합니다. 또한 Migrate to Containers는 대상 환경에서 컨테이너 이미지의 인스턴스를 배포하는 데 사용하고 맞춤설정할 수 있는 배포 설명자를 생성합니다.

Migrate to Containers는 마이그레이션된 각 애플리케이션에 대해 Docker 컨텍스트, 애플리케이션 바이너리, 빌드 스크립트, WAS 구성 스크립트가 포함된 폴더를 만듭니다.

만들고 마이그레이션하는 컨테이너 아티팩트의 진행 상태를 모니터링할 수 있습니다. 마이그레이션 모니터링에 대한 자세한 내용은 마이그레이션된 워크로드 모니터링을 참조하세요.

생성된 리소스 및 설명자 확인 및 검증

Migrate to Containers를 사용하여 컨테이너 아티팩트와 배포 설명자를 생성한 후 해당 아티팩트와 설명자를 검토하고 업데이트하여 요구사항을 충족하는지 확인합니다. 예를 들어 다음 측면을 고려합니다.

  • 컨테이너 이미지 설명자: Migrate to Containers로 생성한 컨테이너 이미지 설명자를 검토하고 컨테이너 워크로드에 적합한지 확인합니다. 컨테이너 이미지 설명자를 업데이트해야 하는 경우 애플리케이션 이미지 빌드를 참조하세요. 속성을 추가하고 iFixes를 설치할 수 있습니다.
  • 애플리케이션 수준 로깅: Migrate to Containers는 JSON 형식으로 WAS 로그를 자동으로 작성합니다. 기본 로깅으로의 변경은 로깅 구성을 참조하세요.

컨테이너 아티팩트 및 배포 설명자 검토에 대한 자세한 내용은 생성된 배포 파일 검토를 참조하세요.

GKE 또는 GKE Enterprise에 컨테이너화된 워크로드 배포 및 검증

워크로드의 배포 설명자가 준비되면 다음을 수행합니다.

  1. 애플리케이션 컨테이너 이미지 빌드: 빌드하려는 애플리케이션 아티팩트 폴더에서 마이그레이션된 워크로드의 애플리케이션 컨테이너 이미지를 빌드합니다.

    bash ./build.sh
    
  2. 대상 환경에 마이그레이션된 애플리케이션 배포: 다음과 같이 마이그레이션된 애플리케이션을 배포합니다.

    kubectl apply -f deployment_spec.yaml
    
  3. 마이그레이션된 워크로드 모니터링: WAS 기존 애플리케이션 컨테이너를 배포한 후 대상 환경에서 수행되는 방식에 대한 정보를 수집할 수 있습니다. 자세한 내용은 마이그레이션된 워크로드 모니터링을 참조하세요.

  4. 마이그레이션된 워크로드 통합: 대상 환경에 배포한 워크로드가 작동하면 워크로드의 컨테이너 아티팩트 생성 및 배포 프로세스를 배포 프로세스 및 파이프라인과 통합합니다. 현재 자동 배포 프로세스가 마련되어 있지 않고 워크로드를 수동으로 배포하는 경우, 수동 배포에서 자동 배포로 마이그레이션하는 것이 좋습니다.

Migrate to Containers 제거

Migrate to Containers를 사용하여 워크로드 마이그레이션을 완료한 후에는 다음을 수행하는 것이 좋습니다.

  1. Migrate to Containers가 마이그레이션 중에 생성한 아티팩트에 대한 모든 참조가 있는지 확인합니다.
  2. Migrate to Containers를 제거합니다.

이 섹션에 설명된 작업을 마치면 이 문서로 돌아갑니다.

마이그레이션 후 환경 최적화

마이그레이션을 완료하려면 마이그레이션 후 환경 최적화의 가이드라인을 참조하세요.

마이그레이션된 WAS 기존 애플리케이션에 대해 다음과 같이 WAS별 최적화를 수행할 수 있습니다.

  • 구성 외부화: 기존 WAS 컨테이너를 빌드할 때 환경 간에 구성이 변경될 수 있습니다. 각 환경의 컨테이너를 다시 빌드하지 않으려면 WAS 구성을 속성으로 외부화하고 ConfigMap을 사용하여 컨테이너 시작 시 속성을 설정하도록 하는 것이 좋습니다.
  • 민감한 정보 보호: 비밀번호와 기타 민감한 정보는 Kubernetes 보안 비밀에 저장되어야 합니다. Kubernetes 보안 비밀을 사용하여 컨테이너를 시작할 때 구성 자리표시자를 바꿉니다.

다음 단계