비전공·주니어를 위한 IT 커리어 전략 커뮤니티

AWS에서 WEB-WAS 연동하기

목차

WEB : NginX 1.25

WAS : Tomcat 10.1.17

사용한 AWS 리소스

  • VM 인스턴스
  • ALB
  • NLB
  • VPC

구현 하려는 아키텍쳐

image 36 AWS에서 WEB-WAS 연동하기

네트워크 설정 개요

기존 디폴트 VPC를 그대로 사용하고 서브넷의 범위를 나누어 주었다.

VPC : 기존 디폴트 VPC 사용

리전 : ap-northeast-2 (서울)

서브넷IPv4 CIDR공인IP
my-web-sub-01172.31.0.16/28X
my-web-sub-02172.31.0.32/28X
my-was-sub-01172.31.0.48/28X
my-was-sub-02172.31.0.64/28X
my-bastion172.31.0.0/28탄력적 IP
image 22 AWS에서 WEB-WAS 연동하기

생성된 서브넷(my-web-sub-01)

AWS 보안 그룹 설정

보안그룹 이름인바운드 규칙 허용설명
my-alb-sg-0180 from anywhereALB의 보안그룹
my-nlb-sg-018080 from web-sg-01NLB의 보안그룹
web-sg-0180 from my-alb-sg-01WEB이 되는 인스턴스의 보안 그룹
was-sg-018080 from my-nlb-sg-01WAS가 되는 인스턴스의 보안 그룹
Bastion-sgssh from anywhere배스천(점프 서버)의 보안 그룹

VM 생성 목록

image 23 AWS에서 WEB-WAS 연동하기

WEB, WAS, 배스천 서버를 각각 생성했다. OS와 머신유형은 모두 동일하다.

OS : RHEL8

머신 유형 : t2.micro

my-web-01에 NginX 1.25를, my-was-01에 Tomcat10.1.17을 설치하였다.

미들웨어 설치에 대한 내용은

https://jparkk.tistory.com/m/40

https://jparkk.tistory.com/m/41

위의 두 링크를 참고하여 실시하였다.

로드밸런서 생성 내용

로드 밸런서 이름보안그룹 규칙대상 그룹
my-alb-01HTTP 허용 from anywheremy-web-group-01
my-nlb-018080 허용 from web-sg-01(WEB 인스턴스의 보안 그룹)my-was-tg-01
image 24 AWS에서 WEB-WAS 연동하기

생성된 ALB 콘솔 화면

image 25 AWS에서 WEB-WAS 연동하기

ALB의 대상그룹 콘솔 화면. 80포트로 상태 검사가 정상인 모습(NginX 실행 시)

image 26 AWS에서 WEB-WAS 연동하기

생성된NLB 콘솔 화면

image 27 AWS에서 WEB-WAS 연동하기

마찬가지로 대상그룹 안에있는 VM에 설치된 Tomcat을 실행하면 헬스체크가 정상으로 뜬다.

WEB과 WAS 대상그룹이 다 헬스체크가 떳다면 내부에서 연동은 제대로 되었다는 뜻이다.

배스천으로 WEB, WAS 접속

그럼 어떻게 배스천 호스트로 WEB, WAS 인스턴스에 접속을 해 어떻게 저렇게 연동을 시켰는지 보여주겠다.

연동 과정

배스천 호스트에는 일단 키페어가 할당되어있다. 이 키페어를 할당을 해주면, 본인의 로컬 컴퓨터에 이 키페어의 개인키인 .pem 파일이 다운로드 된다. 본인은 이 .pem 파일을 적당한 디렉토리에 옮겨놨다.

필자가 만든 키 페어 이름은 forPJ이다.

본인 컴퓨터는 Window 11이므로 윈도우 기준으로 설명한다.

명령 터미널 창이나 윈도우 Powershell을 띄워서 ssh -i .pem파일 위치 ec2-user@<점프 서버 ip 주소>를 입력하고 엔터를 누른다.

ssh -i C:/path/to/forPJ.pem file ec2-user@<점프 서버 ip 주소>
image 29 AWS에서 WEB-WAS 연동하기

점프 서버에 .pem 키를 옮기고, 권한을 설정해준 뒤, WEB, WAS가 되는 ssh 접속을 해준다.

vi forPJ.pem

chmod 400 forPJ.pem

ssh -i forPJ.pem ec2-user@<프라이빗 EC2 인스턴스 주소>
image 30 AWS에서 WEB-WAS 연동하기

WEB 인스턴스에 접속한 CLI 화면 모습이다. WAS인스턴스에 접속하고 싶으면 IP 주소만 바꿔주면 끝

WEB 인스턴스에서 nginx.conf 파일 수정

vi /usr/local/nginx/conf/nginx.conf

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass http://<NLB의 DNS 주소>:8080;
    }
image 35 AWS에서 WEB-WAS 연동하기

그리고 각각의 인스턴스에서 Tomcat과 NginX를 실행해주면 된다.

image 31 AWS에서 WEB-WAS 연동하기

WAS EC2 인스턴스에서 Tomcat 실행

image 32 AWS에서 WEB-WAS 연동하기

WEB EC2 인스턴스에서 NginX 실행

웹 브라우저에 ALB의 DNS 주소를 입력한다.

최종 연동 결과

AWS 에서 WEB과 WAS를 연동시켰다.

이 콘텐츠가 도움이 됐나요?

누스쿨 커뮤니티에서 더 많은 커리어 전략을 나눠요