본문 바로가기
Project/3-Tier Architecture

[3-Tier] Internal ALB 내부 로드밸런서 생성 (WAS ALB)

by ganyga 2024. 3. 1.

구현 아키텍처


Internal ALB (내부 로드 밸런서 생성)

EC2 > 로드 밸런서 > 로드 밸런서 생성

  • WAS(Web Application Server)에 LoadBalancer 생성
  • Tomcat(WAS)은 요청 URL을 서블릿 코드로 매핑하여 HTTP 요청 수신 및 응답

Application Load

  • 이름 : Ga-In-WAS-ALB
  • 내부

네트워크 매핑

  • VPC : Ga-VPC
  • Subnet : WAS Private Subnet 선택(Ga-WAS-Pri-A, Ga-WAS-Pri-C)

 

보안 그룹

  • default 제거

새 보안 그룹을 생성

  • 이름, 설명 : Ga-In-ALB-SG
  • VPC : Ga-VPC
  • 인바운드 TCP(8080) 0.0.0.0/0 허용 
  • Name 태그 지정

다시 로드밸런서 생성 탭으로 돌아와서, 보안 그룹 새로고침 후 지정해 주기

리스너 및 라우팅

  • 리스너는 HTTP:8080 으로 들어오는 것을 대상 그룹으로 보냄 (로드 밸런서 리스너 → 대상 그룹)
  • 프로토콜 : HTTP
  • 포트 : 8080 

 

대상 그룹 생성

  • 대상 유형 선택 : 인스턴스
  • 대상 그룹 이름 : Ga-WAS-TG
  • 프로토콜 : HTTP
  • 포트 : 8080
  • VPC : Ga-VPC

상태 검사 경로 지정

/dbtest.jsp , /test.jsp 둘 중 아무거나 하면 됨

대상 등록에 WAS 인스턴스 추가 > 대상그룹 생성

  • WAS 인스턴스 선택 후 아래에 보류 중인 것으로 포함 선택

다시 로드 밸런서 탭으로 돌아와서 새로 고침 후 대상 그룹 지정

로드 밸런서 생성 확인


WEB에 httpd.conf에  WAS-ALB DNS로  수정

[root@web-a ~]# vi /etc/httpd/conf/httpd.conf
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


<VirtualHost *:80>
        ProxyRequests On
        ProxyPreserveHost On

        <Proxy *>
                Order Deny,allow
                Allow from all
                SetEnv force-proxy-request-1.0.1
                SetEnv proxy-nokeepalive 1
                SetEnv proxy-initial-not-pooled 1
        </Proxy>

        ProxyPassMatch "^/.*\.(jsp|do)$" "http://internal-Ga-In-WAS-ALB-128566977.ap-northeast-2.elb.amazonaws.com:8080"

        Timeout 120
</VirtualHost>
[root@web-a ~]# systemctl restart httpd

 

WAS 보안 그룹 수정

Internal ALB에서 생성한 보안 그룹을 인바운드 규칙 8080포트 허용해 주기

WAS-TG에 상태검사 Healthy 확인

 

연결확인 curl 테스트

[root@web-a ~]# curl localhost/test.jsp

<html>
    	<head><title>hello world</title></head>
    	<body>
            	tomcat test
            	now_time : Mon Jan 22 06:52:44 UTC 2024
    	</body>
</html>

[root@web-a ~]# curl localhost/dbtest.jsp


<h1>DB</h1>
was-db Connection Success!