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

Last reviewed 2022-06-17 UTC

이 문서는 애플리케이션 소유자 및 클라우드 설계자를 대상으로 합니다. 이 문서에서는 Tomcat에서 실행되는 Java 애플리케이션을 Google Kubernetes Engine(GKE), GKE Autopilot, Cloud Run 또는 GKE Enterprise에서 실행되는 컨테이너로 마이그레이션하는 방법을 설명합니다. 이 프로세스를 사용하여 온프레미스 환경, 비공개 호스팅 환경 또는 기타 클라우드 제공업체에서 Tomcat 애플리케이션을 마이그레이션할 수 있습니다. 또한 Migrate to Containers를 사용해서 마이그레이션을 자동화하는 이점도 강조합니다.

이 문서에서는 사용자가 다음 제품에 익숙하다고 가정합니다.

  • Tomcat 애플리케이션 서버에 배포되고 Linux 가상 머신(VM)에서 실행되는 자바 애플리케이션
  • Kubernetes 개념 및 Kubernetes 명령줄 도구의 기본 사용

이 문서는 Google Cloud로 마이그레이션하는 방법을 다루는 시리즈의 일부입니다. 시리즈 개요는 Google Cloud로 마이그레이션: 마이그레이션 경로 선택을 참조하세요.

Migrate to Containers를 사용하여 호환되는 Tomcat 애플리케이션을 지원되는 원본 환경에서 GKE, GKE Enterprise 또는 Cloud Run 환경으로 마이그레이션하려면 이 문서를 읽어보세요. 이러한 원본 환경에는 다음이 포함될 수 있습니다.

Migrate to Containers는 적합성 평가 도구를 사용하여 Linux VM에서 모든 Tomcat 애플리케이션의 탐색, 조사, 마이그레이션을 수행합니다. 이 도구는 Tomcat 애플리케이션을 개별 Tomcat 애플리케이션 컨테이너로 분할합니다. 마이그레이션 후 일부 또는 모든 애플리케이션을 공유 컨테이너 이미지로 그룹화할 수 있습니다. 다음 다이어그램은 Migrate to Containers가 애플리케이션을 분할 및 마이그레이션하는 방법을 보여줍니다.

Migrate to Containers는 Tomcat 애플리케이션을 분할하고 마이그레이션합니다.

Migrate to Containers는 다음과 같은 이점을 제공합니다.

  • 워크로드 현대화: 다음 기능을 제공합니다.
  • 컨테이너화된 환경: 기존 VM 기반 애플리케이션을 컨테이너화합니다. 컨테이너로 마이그레이션할 때의 이점을 참조하세요.
  • 공식 Tomcat 이미지: 기본적으로 Tomcat 공식 이미지를 사용하거나 자체 이미지를 사용하여 마이그레이션 또는 Dockerfile을 업데이트할 수 있습니다. Docker 공식 이미지는 기본 이미지에 Docker 권장사항을 제공합니다.
  • 자동 애플리케이션 분할: Tomcat 원본 구성을 유지하면서 검색된 각 애플리케이션을 자동으로 개별 컨테이너로 분할하도록 권장합니다.
  • 보안 비밀 관리: Tomcat 서버에서 사용하는 키 저장소, 트러스트 저장소, 인증서를 탐색하고 Kubernetes 기본 요소를 자동으로 생성하여 외부화하고 Kubernetes 보안 비밀로 마운트합니다.
  • 권장 로깅 변경사항: 일반적인 자바 로깅 프레임워크 구성 파일(예: log4j2, log4j, logback)을 자동으로 발견하고 Kubernetes의 로깅에 맞춰 변경사항을 제안합니다.

Migrate to Containers를 사용하여 Tomcat 애플리케이션을 컨테이너로 마이그레이션하는 작업은 워크로드 현대화 여정에서 수행할 수 있는 한 가지 단계입니다. 마이그레이션은 클라우드 환경에서 실행될 수 있도록 Tomcat 애플리케이션을 변환하는 데 도움이 됩니다. 또한 비용이 많이 드는 재작성을 피하는 데에도 도움이 됩니다.

이상적인 마이그레이션 후보는 완전한 재작성을 통한 현대화가 너무 고가이거나 지나치게 어려운 경우 지원되는 Tomcat 및 자바 버전에서 실행되는 애플리케이션입니다.

Google Cloud로 마이그레이션 설계

Tomcat 애플리케이션을 원본 환경에서 Google Cloud에서 실행되는 컨테이너로 마이그레이션하려면 Google Cloud 시리즈로 마이그레이션에 설명된 프레임워크를 따릅니다.

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

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

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

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

원본 환경 및 애플리케이션 액세스

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

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

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

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

인벤토리 빌드

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

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

워크로드 및 해당 종속 항목의 인벤토리를 빌드한 후 인벤토리를 세분화합니다. Migrate to Containers를 사용하여 Tomcat 애플리케이션을 마이그레이션할 때 해당 조직과 관련된 측면과 기능을 평가합니다.

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

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

  • Tomcat 인스턴스에서 실행되는 운영체제: Tomcat 인스턴스에서 실행 중인 운영체제 및 라이선스에 대한 정보를 수집하고 해당 운영체제가 호환되는 운영체제 및 Kubernetes 버전 목록에 있는지 확인합니다.
  • 애플리케이션을 실행 중인 Tomcat 버전: 애플리케이션을 실행 중인 Tomcat 버전에 대한 정보를 수집하고 Migrate to Containers와 호환되는지 확인합니다.
  • Tomcat 인스턴스에 배포된 애플리케이션: 각 Tomcat 인스턴스에 배포된 애플리케이션에 액세스합니다. 그런 후 애플리케이션 사이 그리고 애플리케이션과 외부 서비스 사이에 종속 항목을 매핑합니다. 그런 후 다음 구성을 포함할 수 있는 애플리케이션의 구성 소스에 대한 정보를 수집합니다.
    • 환경 변수
    • 비표준 Tomcat 설치 경로
    • LDAP 사용자 레지스트리
    • Java Database Connectivity(JDBC) 연결
    • Tomcat 프록시
    • 자바 프록시
  • 컨테이너로 마이그레이션 적합성 점수: Migrate to Containers를 사용하여 마이그레이션을 수행하는 데 Tomcat 애플리케이션이 적합한지 여부를 평가합니다. Migrate to Containers는 적합성 점수 계산을 위해 Tomcat 애플리케이션에서 실행해야하는 적합 평가 도구를 제공하고 마이그레이션 여정을 제안합니다. Migrate to Containers는 평가 규칙 집합을 사용하여 Tomcat 애플리케이션을 성공적으로 마이그레이션합니다.
  • Tomcat 클러스터링: Tomcat 클러스터링은 클러스터에 있는 모든 Tomcat 노드 간의 세션 복제를 사용 설정합니다. 기본 제공되는 McastService 멤버십 제공업체를 포함하여 일부 클러스터링 구현은 네트워크 수준의 멀티캐스트 지원 부족으로 인해 Kubernetes에서 제대로 작동하지 않습니다. 즉, Tomcat 클러스터를 구성하려면 마이그레이션 중 일부 수동 구성이 필요합니다. 자세한 내용은 Apache Tomcat 위키에서 ClusteringCloud를 참조하세요.
  • Tomcat 프록시: 많은 실제 시나리오에서 Tomcat은 역방향 프록시 뒤에서 실행되도록 구성해야 합니다. 역방향 프록시의 기본 사용에는 다음이 포함됩니다.
  • 자바 프록시: 프록시 서버를 사용하여 Tomcat 및 자바 애플리케이션의 이그레스를 제어하는 경우 자바 프록시 설정을 사용 중지할 수 있습니다. 자바 가상 머신(JVM) 명령줄 옵션에서 프록시 설정을 삭제합니다. 그런 다음 Tomcat 컨테이너에서 이그레스 네트워킹을 제어하도록 Anthos Service Mesh(ASM) 이그레스 게이트웨이를 구성합니다.

평가 완료

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

기반 계획 및 빌드

기반 계획 및 구축의 안내를 따른 후 Tomcat 기반을 완료합니다.

  1. Tomcat 워크로드 및 원본 환경이 Tomcat 워크로드 마이그레이션을 위한 기본 요건을 충족하는지 확인합니다.
  2. 데이터 수집 단계를 완료하려면 Tomcat 인스턴스를 실행하는 VM에서 mfit을 실행합니다. 자세한 내용은 적합성 평가 도구 사용을 참조하세요.

Migrate to Containers 및 종속 항목을 프로비저닝하고 구성하려면 Migrate to Containers 설정을 참조하세요.

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

Tomcat 애플리케이션을 컨테이너로 마이그레이션

배포 단계에서는 다음 주요 단계를 사용하여 안내합니다.

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

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

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

    마이그레이션 계획 만들기 및 모니터링에 대한 자세한 내용은 마이그레이션 만들기를 참조하세요. Tomcat 애플리케이션에 대해 마이그레이션 계획을 만들려면 마이그레이션 실행에 설명된 대로 migctl 명령줄 도구를 사용합니다.

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

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

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

Migrate to Containers는 마이그레이션된 각 애플리케이션에 대해 다음을 포함하는 폴더를 만듭니다.

  • Dockerfile
  • 애플리케이션 바이너리
  • Tomcat 구성 파일
  • 빌드 스크립트
  • Skaffold YAML: 빌드 및 배포용
  • (선택사항) secrets.sh 스크립트
  • (선택사항) 로깅 보관처리

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

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

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

  • 컨테이너 이미지 설명자: Migrate to Containers로 생성한 컨테이너 이미지 설명자를 검토하고 컨테이너 워크로드에 충분한지 확인합니다. 기본 컨테이너 이미지를 업데이트해야 하는 경우 생성된 Dockerfile에서 FROM 값을 업데이트합니다. 또한 Dockerfile에서 CATALINA_OPTS 환경 변수를 변경하여 JVM 환경 변수를 설정하거나 변경할 수도 있습니다.
  • 애플리케이션 수준 로깅: Migrate to Containers는 수정된 로깅 보관 파일을 자동으로 생성하여, 이를 통해 로컬 파일 대신 해당 콘솔에 로그를 기록하도록 로깅 설정을 수정할 수 있습니다.

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

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

워크로드의 배포 설명자가 준비되면 다음 태스크를 수행할 수 있습니다.

  1. 애플리케이션 컨테이너 이미지 빌드: 마이그레이션된 워크로드의 애플리케이션 컨테이너 이미지를 빌드합니다. 자세한 내용은 컨테이너 이미지 빌드를 참조하세요.
  2. 대상 환경에 마이그레이션된 애플리케이션 배포:
  3. 마이그레이션된 워크로드 모니터링: Tomcat 애플리케이션 컨테이너를 배포한 후 대상 환경에서 수행되는 방식에 대한 데이터를 수집할 수 있습니다. 자세한 내용은 마이그레이션된 워크로드 모니터링을 참조하세요.
  4. 마이그레이션된 워크로드 통합: 워크로드를 대상 환경에 배포한 후 워크로드의 컨테이너 아티팩트 생성 및 배포 프로세스를 배포 프로세스 및 파이프라인에 통합합니다. 자동 배포 프로세스가 없고 워크로드를 수동으로 배포하는 경우 수동 배포에서 자동 배포로 마이그레이션하는 것이 좋습니다.

Migrate to Containers 제거

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

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

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

마이그레이션을 완료하려면 환경 최적화를 참조하세요.

마이그레이션된 Tomcat 애플리케이션에 대해 Tomcat 관련 최적화를 수행할 수 있습니다.

  • 로깅 조정: 로그 파일이 로컬 파일 시스템에 일반적으로 기록되는 VM과 달리 Kubernetes 로그는 일반적으로 stdout 또는 stderr로 스트리밍됩니다. 그런 후 로그가 Cloud Logging과 같은 전용 백엔드를 통해 저장, 분석, 쿼리됩니다. logConfigs 아카이브 아티팩트에서 Migrate to Containers 권장 변경사항을 사용하거나 stdout 또는 stderr에 로그를 기록하도록 로깅 구성을 수동으로 변경할 수 있습니다.
  • 민감한 정보 보호: 비밀번호와 기타 민감한 정보를 Kubernetes 보안 비밀에 저장합니다. Kubernetes 보안 비밀을 사용하여 컨테이너를 시작할 때 구성 자리표시자를 바꿉니다.
  • 리소스 프로필 미세 조정: Kubernetes가 포드를 효율적으로 예약할 수 있도록 요청과 한도에 맞게 리소스 제약조건을 미세 조정합니다. JVM 힙 크기에 맞게 리소스를 세부 조정하는 것도 메모리 부족(OOM) 예외를 방지하는 데 중요합니다.
  • 포드 배치 제어: 마이그레이션된 Tomcat 애플리케이션이 서로 자주 통신하는 경우 동일한 노드에서 실행되도록 예약할 수도 있습니다. 마이그레이션된 애플리케이션에 포드 배치 제어가 유용한 경우 노드에 포드 할당을 참조하세요.

다음 단계