프로젝트/컴파일 설치로 AWS 3-Tier 구축하기(+테라폼)

[AWS 3-Tier 구축하기 6] AWS NLB 구축과 Linux+Apache+Tomcat 연동

su-mmer 2023. 4. 4. 14:34
728x90

 

NLB

WEB01, WEB02에서 WAS01, WAS02로의 흐름이 NLB를 통해 이루어지도록 구성한다.

 

AWS NLB의 동작 방식

 

AWS NLB 생성

타겟 그룹 생성하기

NLB의 트래픽을 넘겨줄 대상 그룹 만들기

 

web의 아웃바운드를 통해 나온 트래픽을 타겟그룹에서 8080으로 받는다.

 

NLB의 트래픽을 보내줄 WAS 인스턴스 2개 선택

 

 

NLB 생성하기

내부에서 사용할거니까 Internal

 

NLB가 위치할 subnet 선택

WEB01, WEB02가 위치한 subnet에 붙여주었다.

 

target group을 붙여준다.

 

 

보안그룹 수정

web-sg 아웃바운드를 설정해서 web에서 8080포트로 WEB01, WEB02가 있는 서브넷으로 트래픽을 보낸다.

 

was-sg의 인바운드에서 WEB01, WEB02가 있는 서브넷으로부터 8080 포트로 트래픽을 받는다.

 

Tomcat 설정

# vi /usr/local/tomcat8/webapps/ROOT/test.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<html>
        <head><title>hello world</title></head>
        <body>
                tomcat test (was1)
        </body>
<html>

톰캣에 테스트할 파일을 하나 만든다.

 

sudo systemctl restart tomcat8.service

톰캣 서비스 재시작

 

Apache 설정

# wget 설치 시 경로
vi /usr/local/apache/conf/httpd.conf

# yum 설치 시 경로
vi /etc/httpd/conf/httpd.conf

/proxy 하면 쉽게 찾음

httpd.conf 파일에서 module 3개 주석 해제 

 

shift+g로 맨 밑으로 이동

맨 아래 부분에 VirtualHost 추가

<VirtualHost *:80>
        ProxyRequests Off
        ProxyPreserveHost On

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPass / http://<nlb 주소>:8080/
        ProxyPassReverse / http://<nlb 주소>:8080/
        Timeout 120

</VirtualHost>

 

# wget 설치 시
systemctl restart apache.service

# yum 설치 시
systemctl restart httpd

apache 서비스 재시작

 

<alb DNS 주소>/test.jsp
<alb DNS 주소>/test.jsp

새로고침했을 때 로드가 분배되어 was1, was2 순서대로 나오는 것 확인

 

 

 

참고

https://velog.io/@bonjaski0989/EC2-TomcatModProxy-%EC%97%B0%EB%8F%99

 

[EC2] Apache↔ Tomcat Mod_Proxy 연동

[EC2] Apache-Tomcat Mod_Proxy 연동법에 대한 기술글입니다.

velog.io

https://potato-yong.tistory.com/78

 

[AWS] AWS로 구축하는 3티어 아키텍처 - (WAS 서버)

11. 웹 애플리케이션 서버 (WAS) 설치 앞서 생성했던 Bastion Host를 통해 Private Subnet에 ssh로 접속해 WAS 를 설치해주도록 하자. WAS를 설치한 뒤에는 IN-ELB를 통해 로드밸런스 테스트까지 해준다. 다음

potato-yong.tistory.com

 

728x90