기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
컨테이너 기반 애플리케이션 설계
Java EE 리플랫포밍 문제
Java EE 애플리케이션을 AWS 클라우드의 컨테이너화된 플랫폼으로 마이그레이션할 때 다음과 같은 문제에 직면할 수 있습니다.
일회성 – 컨테이너를 '상태 비저장'으로 유지하려면 세션 상태를 외부 데이터베이스에 저장해야 할 수도 있습니다. 컨테이너 기반 애플리케이션은 더 빠르고 더 작은 애플리케이션 런타임을 필요로 하며, Java EE 애플리케이션 서버는 컨테이너 환경에서 실행되지 않을 수 있습니다.
컨테이너 플랫폼 호환성 - 클러스터링, 애플리케이션 배포, 메모리 복제와 같은 애플리케이션 런타임별 기능을 줄여야 할 수도 있습니다.
이식성 - 컨테이너 기반 애플리케이션은 애플리케이션 런타임을 사용하여 배포되는 반면, 기존 Java EE 애플리케이션은 애플리케이션 패키지(.jar 또는 .war 파일)를 사용하여 배포됩니다.
컨테이너 기반 애플리케이션 설계 모범 사례
AWS 클라우드용 컨테이너 기반 Java EE 애플리케이션을 설계할 때는 다음 모범 사례를 따르는 것이 좋습니다.
-
컨테이너 인스턴스를 생성한 후에는 변경하지 않습니다. 변경해야 하는 경우 새 컨테이너 이미지를 빌드하고 모든 환경에서 새 이미지를 재사용합니다.
-
컨테이너 내부에 영구 데이터를 저장하지 않습니다.
-
단일 목적을 충족하도록 컨테이너를 설계합니다. 다양한 용도로 사용되는 컨테이너 설계에 대한 자세한 내용은 Using sidecar injection on Amazon EKS with AWS App Mesh
블로그 게시물을 참조하세요. -
컨테이너가 필요한 모든 API를 구현하는지 확인합니다.
-
시스템 요구 사항이 CPU 사용량, 시스템 메모리, 영구 스토리지를 중심으로 구축되도록 컨테이너를 설계합니다.
모범 사례에 대한 자세한 내용은 Kubernetes 설명서의 Principles of Container-based Application Design