아주 심플한 자바 웹 애플리케이션
이중화 시스템을 구축하면 WAS 서버의 헬스 체킹을 하기 위한 웹애플리케이션 페이지가 필요할 때가 있다. AWS ELB 가 대표적으로 ELB 뒤에 WAS 서버가 있을 경우에 HTTP를 이용한 헬스 체킹을 위해 웹애플리케이션의 페이지가 필요하게 된다.
보통은 Product 웹프로그램에 AWS ELB 헬스체킹을 위한 페이지를 넣을 수도 있지만 별도의 웹애플리케이션을 작성하는게 더 좋다.
이 문서는 이러한 환경에서 헬스체킹을 위한 아주 심플한 자바 웹 애플리케이션을 작성하는 법에 대해서 기술 한다.
디렉토리 구조
기본적으로 웹 애플리케이션의 기본 디렉토리는 다음과 같다.
- META-INF/MANIFEST.MF
- index.jsp
- WEB-INF/web.xml
위 디렉토리와 파일을 jar 를 이용해서 war 파일로 압축해 배포하면 된다. 이때 Context Root 는 war 파일 이름이 된다.
META-INF/MANIFEST.MF
위 파일은 war 파일의 정보를 기재하는 것으로 다음과 같다.
1 2 |
Manifest-Version: 1.0 Created-By: 1.5.0_02 (Sun Microsystems Inc.) |
index.jsp
위 파일은 다들 알다 시피 html, jsp 문법을 쓸수 있는 파일이다. 그냥 OK 글자 하나만으로도 된다.
web.xml
이 파일은 웹애플리케이션 동작에 대해 설정하는 파일이다. 다음과 같다.
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'> <web-app> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> |
그냥 index.jsp 파일에 대해서만 설정 하면 된다.
healthcheck.war 만들기
위에서 기술한 디렉토리에서 다음과 같이 입력해 war 파일을 만든다.
1 2 3 4 5 6 7 8 |
]$ jar cvf healthcheck.war . Manifest를 추가함 META-INF/ 항목을 무시하는 중 META-INF/MANIFEST.MF 항목을 무시하는 중 추가하는 중: META-INF/war-tracker(입력 = 0) (출력 = 0)(0%를 저장함) 추가하는 중: WEB-INF/(입력 = 0) (출력 = 0)(0%를 저장함) 추가하는 중: WEB-INF/web.xml(입력 = 299) (출력 = 198)(33%를 감소함) 추가하는 중: index.jsp(입력 = 3) (출력 = 5)(-66%를 감소함) |
이렇게 하면 war 파일이 나온다.
그리고 이것을 WAS 서버에 배포하고 브라우저에서 ‘http://server:8080/healthcheck/index.jsp’ 를 호출하면 OK 가 나온다.
AWS ELB 에서 HealthCheck 설정에서 port 는 8080, URL 은 /healthcheck/index.jsp 를 기재하면 WAS 에 대한 헬스체크를 HTTP를 통해서 할 수 있게 된다.