Elastic Beanstalk Tomcat 플랫폼 사용 - AWS Elastic Beanstalk

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Elastic Beanstalk Tomcat 플랫폼 사용

이 항목에서는 Elastic Beanstalk Tomcat 플랫폼에서 실행되는 자바 애플리케이션을 구성, 빌드 및 실행하는 방법을 설명합니다.

AWS Elastic Beanstalk Tomcat 플랫폼은 Tomcat 웹 컨테이너에서 실행할 수 있는 Java 웹 애플리케이션을 위한 플랫폼 버전 세트입니다. Tomcat은 nginx 프록시 서버 뒤에서 실행됩니다. 각 플랫폼 브랜치는 Tomcat의 메이저 버전에 해당합니다.

실행 환경 구성을 수정하기 위해 Elastic Beanstalk 콘솔의 구성 옵션을 사용할 수 있습니다. 저장된 구성을 사용해 설정을 저장하면 환경 종료 시 구성이 훼손되지 않도록 할 수 있으며, 추후 기타 환경에서도 적용할 수 있습니다.

소스 코드에 설정을 저장하려면 구성 파일을 포함시킬 수 있습니다. 구성 파일 설정은 환경을 생성하거나 애플리케이션을 배포할 때마다 적용됩니다. 구성 파일을 사용해 패키지를 설치하고, 스크립트를 실행하고, 배포 중에 다른 인스턴스 사용자 지정 작업을 수행할 수도 있습니다.

Elastic Beanstalk Tomcat 플랫폼에는 요청을 애플리케이션으로 전달하는 역방향 프록시가 포함되어 있습니다. 애플리케이션에 대한 로드를 줄이기 위해 소스 코드의 폴더에서 정적 자산을 제공하도록 프록시 서버를 구성하는 구성 옵션을 사용할 수 있습니다. 고급 시나리오의 경우 소스 번들에 고유한 .conf 파일을 포함시켜 Elastic Beanstalk의 프록시 구성을 확장하거나 완전히 덮어쓸 수 있습니다.

참고

Elastic Beanstalk는 톰캣 플랫폼에서 nginx (기본값HTTP) 와 아파치 서버를 프록시 서버로 지원합니다. Elastic Beanstalk Tomcat 환경에서 아마존 AMI 리눅스 플랫폼 브랜치 (아마존 리눅스 2 이전 버전) 를 사용하는 경우 아파치 서버 버전 2.2를 사용할 수도 있습니다. HTTP Apache(최신 버전)는 이러한 이전 플랫폼 브랜치의 기본값입니다.

2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션을(를) 참조하세요.

Java 애플리케이션을 특정 구조의 웹 애플리케이션 아카이브 (WAR) 파일에 패키징해야 합니다. 필요한 구조 및 이 구조가 프로젝트 디렉터리의 구조와 연결되는 방법에 대한 자세한 내용은 프로젝트 폴더 구성 단원을 참조하십시오.

동일한 웹 서버에서 여러 애플리케이션을 실행하려면 여러 WAR 파일을 단일 소스 번들로 번들링하면 됩니다. 다중 WAR 소스 번들의 각 응용 프로그램은 의 이름에 따라 루트 경로 (ROOT.war에서 실행myapp.elasticbeanstalk.com/) 또는 바로 아래 경로 (app2.war실행 위치myapp.elasticbeanstalk.com/app2/) 에서 실행됩니다. WAR 단일 WAR 소스 번들에서는 애플리케이션이 항상 루트 경로에서 실행됩니다.

Elastic Beanstalk 콘솔에 적용된 설정이 구성 파일에 적용된 동일한 설정(있는 경우)을 덮어씁니다. 이렇게 함으로써 구성 파일은 기본 설정을 갖는 동시에 콘솔에서 환경 특정 설정으로 설정을 덮어 쓸 수 있습니다. 우선 적용 및 설정을 변경하는 다른 방법에 대한 자세한 내용은 구성 옵션 단원을 참조하십시오.

Elastic Beanstalk Linux 기반 플랫폼을 확장할 수 있는 다양한 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 플랫폼 확장 단원을 참조하세요.

Tomcat 환경 구성

Elastic Beanstalk Tomcat 플랫폼은 모든 플랫폼에 있는 표준 옵션 이외에도 플랫폼별 옵션 몇 가지를 제공합니다. 이 옵션을 사용하면 사용자 환경의 웹 서버에서 실행되는 Java 가상 머신 (JVM) 을 구성하고 애플리케이션에 정보 구성 문자열을 제공하는 시스템 속성을 정의할 수 있습니다.

Elastic Beanstalk 콘솔을 사용하여 Amazon S3에 대한 로그 교체를 활성화하고, 애플리케이션이 환경에서 읽을 수 있도록 변수를 구성할 수 있습니다.

Elastic Beanstalk 콘솔에서 Tomcat 환경을 구성하려면
  1. Elastic Beanstalk 콘솔을 열고 지역 목록에서 원하는 지역을 선택합니다. AWS 리전

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경의 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 업데이트, 모니터링 및 로깅 구성 범주에서 편집을 선택합니다.

컨테이너 옵션

다음과 같은 플랫폼별 옵션을 지정할 수 있습니다.

  • 프록시 서버 – 환경 인스턴스에서 사용할 프록시 서버입니다. 기본적으로 nginx를 사용합니다.

JVM컨테이너 옵션

Java 가상 머신 (JVM) 의 힙 크기에 따라 가비지 컬렉션이 발생하기 전에 애플리케이션이 메모리에 생성할 수 있는 객체 수가 결정됩니다. 초기 JVM 힙 크기 (-Xms option) 및 최대 JVM 힙 크기 (-Xmx옵션) 를 수정할 수 있습니다. 초기 힙 크기가 클수록 가비지 수집이 수행되기 전에 생성되는 객체 수가 늘어나지만 가비지 수집기가 힙을 압축하는 데 더 오랜 시간이 걸립니다. 최대 힙 크기는 작업량이 많은 동안 힙을 확장할 때 JVM 할당할 수 있는 최대 메모리 양을 지정합니다.

참고

사용 가능한 메모리는 Amazon EC2 인스턴스 유형에 따라 다릅니다. Elastic Beanstalk 환경에서 사용할 수 있는 EC2 인스턴스 유형에 대한 자세한 내용은 Linux 인스턴스용 Amazon Elastic Compute 클라우드 사용 설명서의 인스턴스 유형을 참조하십시오.

영구 생성은 클래스 정의 및 관련 메타데이터를 저장하는 JVM 힙의 한 부분입니다. 영구 생성의 크기를 수정하려면 최대 크기 (-XX:MaxPermSize) 옵션에 새 JVM PermGen 크기를 입력합니다. 이 설정은 Java 7 및 그 이전 버전에만 적용됩니다. 이 옵션은 JDK 8에서 더 이상 사용되지 않으며 MaxMetaspace크기 () 옵션으로 대체되었습니다. -XX:MaxMetaspaceSize

중요

JDK17에서는 Java 옵션에 대한 지원을 제거했습니다. -XX:MaxPermSize Corretto 17이 설치된 Elastic Beanstalk 플랫폼 브랜치 기반 환경에서 이 옵션을 사용하면 오류가 발생합니다. Elastic Beanstalk는 2023년 7월 13일에 Corretto 17과 함께 Tomcat을 실행하는 첫 번째 플랫폼 브랜치를 공개했습니다.

자세한 정보는 다음 리소스를 참조하세요.

Elastic Beanstalk 플랫폼 및 그 구성 요소에 대한 자세한 내용은 AWS Elastic Beanstalk  플랫폼 가이드의 지원되는 플랫폼을 참조하십시오.

로그 옵션

로그 옵션 섹션에는 다음 두 가지 설정이 있습니다.

  • 인스턴스 프로파일 – 애플리케이션과 연결된 Amazon S3 버킷에 액세스할 권한이 있는 인스턴스 프로파일을 지정합니다.

  • Amazon S3로 로그 파일 순환 활성화 - 애플리케이션의 Amazon EC2 인스턴스에 대한 로그 파일을 애플리케이션과 연결된 Amazon S3 버킷에 복사할지 여부를 지정합니다.

정적 파일

성능을 향상시키려면 Static files 섹션을 사용하여 웹 애플리케이션 내의 디렉터리 집합에서 정적 파일 (예: 이미지) 을 제공하도록 프록시 서버를 구성할 수 있습니다. HTML 각 디렉터리의 디렉터리 매핑 가상 경로를 설정합니다. 지정된 경로에서 프록시 서버가 파일 요청을 수신받으면 요청을 애플리케이션으로 라우팅하지 않고 파일을 직접 제공합니다.

구성 파일 또는 Elastic Beanstalk 콘솔을 사용하여 정적 파일을 구성하는 방법에 대한 자세한 내용은 정적 파일 제공 단원을 참조하세요.

환경 속성

환경 속성 섹션에서 애플리케이션을 실행하는 Amazon EC2 인스턴스의 환경 구성 설정을 지정할 수 있습니다. 환경 속성은 카-값 페어로 애플리케이션에 전달됩니다.

Tomcat 플랫폼은 연결 문자열을 외부 데이터베이스에 전달하기 위한 Tomcat 환경의 자리 표시자 속성인 JDBC_CONNECTION_STRING을 정의합니다.

참고

RDSDB 인스턴스를 환경에 연결하는 경우 Elastic Beanstalk에서 제공하는 Amazon 관계형 데이터베이스 서비스 (RDSAmazon) 환경 속성에서 동적으로 JDBC 연결 문자열을 구성합니다. Elastic STRING Beanstalk를 사용하여 프로비저닝되지 않은 데이터베이스 인스턴스에만 JDBC CONNECTION _ _를 사용하십시오.

Java RDS 애플리케이션과 함께 Amazon을 사용하는 방법에 대한 자세한 내용은 을 참조하십시오자바 Elastic Beanstalk 환경에 아마존 RDS DB 인스턴스 추가.

Elastic Beanstalk에서 실행하는 Tomcat 환경에서 System.getProperty()를 사용하여 환경 변수에 액세스할 수 있습니다. 예를 들어 다음 코드로 변수에 대한 API_ENDPOINT이라는 속성을 읽을 수 있습니다.

String endpoint = System.getProperty("API_ENDPOINT");

자세한 내용은 환경 속성 및 기타 소프트웨어 설정를 참조하십시오.

Tomcat 구성 네임스페이스

구성 파일을 사용하여 구성 옵션을 설정하고 배포 중 다른 인스턴스 구성 작업을 수행할 수 있습니다. 구성 옵션은 Elastic Beanstalk 서비스 또는 사용 중인 플랫폼에서 정의할 수 있으며 네임스페이스로 구성됩니다.

Tomcat 플랫폼에서는 모든 Elastic Beanstalk 환경에 대해 지원되는 옵션 이외에도 다음 네임스페이스의 옵션을 지원합니다.

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— JVM 설정을 수정합니다. 이 네임스페이스의 옵션은 다음과 같이 관리 콘솔의 옵션에 해당합니다.

    • XmsJVM커맨드 라인 옵션

    • JVM OptionsJVM명령줄 옵션

  • aws:elasticbeanstalk:environment:proxy – 환경의 프록시 서버를 선택합니다.

다음 예제 구성 파일에서는 Tomcat 관련 구성 옵션의 사용을 보여 줍니다.

예 .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:container:tomcat:jvmoptions: Xms: 512m JVM Options: '-Xmn128m' aws:elasticbeanstalk:application:environment: API_ENDPOINT: mywebapi.zkpexsjtmd.us-west-2.elasticbeanstalk.com aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Elastic Beanstalk는 환경을 사용자 지정할 수 있는 다양한 구성 옵션을 제공합니다. 구성 파일 외에도 콘솔, 저장된 구성CLI, EB 또는 를 사용하여 구성 옵션을 설정할 수 AWS CLI있습니다. 자세한 내용은 구성 옵션 섹션을 참조하세요.

Elastic Beanstalk Tomcat 환경에서 아마존 AMI 리눅스 플랫폼 버전 (아마존 리눅스 2 이전 버전) 을 사용하는 경우, 이 섹션의 추가 정보를 읽어보세요.

참고
  • 이 항목의 정보는 Amazon Linux AMI (AL1) 기반 플랫폼 브랜치에만 적용됩니다. AL2023/ AL2 플랫폼 브랜치는 이전 Amazon Linux AMI (AL1) 플랫폼 버전과 호환되지 않으며 다른 구성 설정이 필요합니다.

  • 2022년 7월 18일, Elastic Beanstalk는 아마존 리눅스 () 를 기반으로 하는 모든 플랫폼 브랜치의 상태를 은퇴로 설정했습니다. AMI AL1 완전 지원이 가능한 현재 Amazon Linux 2023 플랫폼 브랜치로 마이그레이션하는 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 애플리케이션을 Amazon Linux 2023 또는 Amazon Linux 2로 마이그레이션을(를) 참조하세요.

Tomcat Amazon Linux AMI 플랫폼은 다음 네임스페이스에서 추가 옵션을 지원합니다.

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— 이 페이지 앞부분에서 언급한 이 네임스페이스 옵션 외에도 이전 Amazon Linux AMI 플랫폼 버전은 다음을 지원합니다.

    • XX:MaxPermSize최대 JVM 영구 생성 크기

  • aws:elasticbeanstalk:environment:proxy – 프록시 서버를 선택하는 것 외에도 응답 압축을 구성합니다.

다음 예제 구성 파일에서는 프록시 네임스페이스 구성 옵션의 사용을 보여줍니다.

예 .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: GzipCompression: 'true' ProxyServer: nginx

.ebextensions 구성 파일을 배포하려면 배포하려는 파일을 애플리케이션 소스에 포함시킵니다. 단일 애플리케이션의 경우 다음 명령을 실행하여 압축 WAR 파일에 파일을 추가하십시오.ebextensions.

zip -ur your_application.war .ebextensions

여러 WAR 파일이 필요한 응용 프로그램의 Tomcat 환경에 대한 여러 WAR 파일 번들링 경우 자세한 지침은 을 참조하십시오.