Elastic Beanstalk
에이전트 적용하기
Elastic Beanstalk를 이용해 배포할 경우 와탭 에이전트를 적용하는 방법입니다.
Platform as a Service(PaaS) 환경에서는 배포 대상 애플리케이션에 와탭 에이전트의 설정을 포함해 배포합니다.
-
Spring Boot 결과물을 jar로 배포할 경우 .ebextensions의 내용을 적용할 수 없습니다. 다음 파일들을 압축해 zip 형태로 배포하세요.
- .elasticbeanstalk/config.yml: eb 명령을 실행하는 디렉터리 하위에 자동 생성
- .ebextensions/
{config_name}
.config: eb 설정 파일 - Procfile: JVM command line 옵션을 설정하기 위한 파일
{application}
.jar: 실행할 applicaion.jar 파일
-
Service에 적용할 와탭 에이전트의 파일을 압축해 S3(혹은 다운로드할 수 있는 public 경로)에 업로드하세요.
- paramkey.txt
- whatap.agent-2.0_25.jar
- whatap.conf
# 디렉터리 압축하기
zip -r whatap-agent.zip agent -
.ebextension/
{config_name}
.config 파일에 다운로드할 와탭 에이전트 경로를 입력하세요.다운로드할 수 있도록 압축 파일 형태로 만들어 둔 경우 eb를 실행해 자동으로 다운로드한 다음 압축을 풉니다.
sources:
target directory:
S3경로Examplesources:
/home/webapp:
http://s3.ap-northeast-2.amazonaws.com/{bucket-name}/whatap-agent.zip -
와탭 에이전트 옵션을 추가한 JVM command를 입력해 Procfile을 작성하세요.
Procfileweb: java -javaagent:${WHATAP_JAR_FILE_PATH} -Dwhatap.name=${WHATAP_NAME} -Dwhatap.okind=${WHATAP_OKIND_NAME} -Dwhatap.server.home=${APPLICAION_PATH} -Dwhatap.conf.path=${WHATAP_HOME} -jar ${APPLICAIONT}.jar
Exampleweb: java -javaagent:/home/webapp/agent/whatap.agent-X.Y.Z.jar -Dwhatap.name=bootTest -Dwhatap.okind=test -Dwhatap.server.home=/var/app/current -Dwhatap.conf.path=/home/webapp/agent -jar whatap-boot-test.jar
-
Procfile 파일과 .ebextensions 파일,
{application}
.jar 파일을 압축하세요.zip -r {application}.zip Procfile .ebextensions/{application}.jar
-
.elasticbeanstalk/config.yml 파일에 배포할 zip파일 경로를 추가하세요.
deploy:
artifact: /path/to/{application}.zip -
eb 배포 명령어를 실행하세요.
eb deploy
Java 17 버전 이상의 경우 reflection 관련한 다음 옵션을 추가하세요.
--add-opens=java.base/java.lang=ALL-UNNAMED
자세한 내용은 AWS 가이드 문서를 참조하세요.
힙 히스토그램 조회
와탭의 Java 모니터링에서는 JVM 메모리에 올라가 있는 Heap 점유 객체 현황(힙 메모리상의 객체별 사이즈)을 조회할 수 있는 기능을 기본으로 제공합니다. 애플리케이션 > 인스턴스 성능 분석 메뉴에서 힙 히스토그램 탭을 선택하세요.
Java 6 ~ 8 버전에서는 JVM 옵션 없이 기본 지원하지만, 일부 Java 버전에 따라 다음과 같이 JVM 옵션을 적용해야 합니다.
-
Java 9 ~ Java 15 버전
-Djdk.attach.allowAttachSelf=true
examplejava -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true -jar {application.jar}
-
Java 16 버전 이상
-Djdk.attach.allowAttachSelf=true
--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMEDexamplejava -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED -jar {application.jar}
Java 5 버전 이하, IBM Java는 지원하지 않습니다.
다음 단계
-
오픈 소스 추적
애플리케이션에서 사용하는 프레임워크나 오픈소스 라이브러리에 따라 에이전트 옵션을 추가해야 할 수 있습니다. 예를 들어, 프레임워크나 오픈소스로 spring-boot-3.x, feign-client-11, okhttp3-4.4 사용 시 다음과 같이 옵션을 설정하세요.
whatap.confweaving=spring-boot-3.0,feign-11,okhttp3-4.4
사용자의 애플리케이션 환경에 맞는 프레임워크나 오픈소스 라이브러리를 설정하는 방법은 다음 문서를 참조하세요.
-
설치 점검하기
프로젝트 생성 및 에이전트 설치, JVM 옵션까지 모두 적용했다면 다음 문서에서 점검 사항을 확인하세요.
-
설치 문제 해결
에이전트 설치 시 발생할 수 있는 다양한 문제들과 이를 해결하기 위한 구체적인 지침을 제공합니다. 방화벽 설정, SpringBoot 및 Tomcat JMX 설정, OSGI 프레임워크 사용 서버 설정 등 다양한 상황에 대한 해결책을 안내합니다. 자세한 내용은 다음 문서를 참조하세요.
-
에이전트 설정
에이전트 설정(whatap.conf) 파일에 옵션을 적용해 모니터링을 위한 다양한 기능을 제공합니다. 기본 설정부터 서버 연결 및 데이터 전송 설정, 여러 애플리케이션 서버의 설정 파일 관리 방법, 트랜잭션 추적 등을 포함합니다. 자세한 내용은 다음 문서를 참조하세요.
-
모니터링 시작하기
모든 설정을 완료한 다음 애플리케이션 서버를 다시 시작하세요. 에이전트가 정보를 수집하기 시작합니다. 먼저 애플리케이션 대시보드 메뉴에서 모니터링 데이터가 수집되는지 확인하세요. 애플리케이션 대시보드에 대한 자세한 내용은 다음 문서를 참조하세요.