서버 구성을 파악 하던중 이해가 안가는 부분이 있었다.
그래도 서비스가 잘 돌아가니까 나중에 찾아봐야지 ..미루다가 결국 서버에 작업할 게 있어 찾아보게 되었다.
( 보통 우리가 도메인을 검색창에 입력하면 80포트로 요청을 하는데 , 실제 서비스를 하는 톰캣의 default 포트는 8080이다. 그렇기 때문에 웹서버에서 80을 8080으로 변환하던가 , 방화벽에서 변환하던가, 아니면 톰캣을 80으로 쓸수가있다.)
찾아보니 AWS의 로드밸런스 기능을 사용하여 80으로 요청한 서비스를 톰캣 서비스포트로 변환 시켜주었다.
로드밸런스는 보통 이런기능보다는 물리적으로 두대 이상의 서버를 두고 부하분산을 시켜주는 용도로 사용하는데.. 맘에 들지 않지만 지금 작동중인 서비스에 피해가 가지않도록 하기위해 같은 방식으로 진행하였다.
진행한 작업은 하나의 서버에 톰캣 2개와 도메인 두개를 각각 연결하는것이다.
(하나의 서버에 톰캣을 2대 올리고 톰캣A는 2020 포트를 톰캣 B는 3030포트로 서비스를 올려C도메인 접근시 톰캣A서로 연결하고 , D도메인으로 접근시 톰캣B 서버로 연결 하였다.)
이미 C도메인으로 접근시 톰캣 A와 연결은 구성되어있었기에 , 내가 진행할 작업은 미리 B톰캣는 올려놓았고 D도메인를 B톰캣과 연결하고 , https 인증서 걸어주고 , 로드밸런스로 포트워딩 부분이다.그래서 AWS route53 과 , aws loadbalance , aws acm 를 사용하였다.
작업순서
1. AWS route53 호스트영역 생성
2. AWS Acm 인증서 생성
3. AWS route53 생성한 호스트에 레코드 추가 및 AMC 인증
4. AWS 로드밸런서 설정
5. AWS route53 레코드와 로드밸런스 연결
1. 호스트 영역 생성 - 도메인과 IP를 매칭해주는 역활을 한다 .
2. Acm 인증서생성 - https 인증서를 발급받기위해서 위에서 생성한 DNS가 필요하다.
생성한 DNS 입력하는 부분
파일을 다운받고 생성한 호스트에 레코드 타입을 CNAME으로 한후 넣어줄 예정이다.
아직 레코드를 추가안해서 검증 보류상태
3. AWS route53 생성한 호스트에 레코드 추가 및 ACM 인증
입력을 완료하고 시간이 좀 지나면 검증완료로 변하게됨
4. AWS 로드밸런서 설정 - 80이나 443 으로 요청하는 서비스를 톰캣 서비스포트로 포워딩해주는역활을 할것이다.
인스턴스 포트에 톰캣서비스 포트를 넣어주면됨
로드밸러스용 방화벽정책을 추가해준다.
디폴트로 선택되어있는것들로 진행하면됨
로드밸런서가 특정포트를 통해 health check를 진행한다.
5. AWS route53 레코드와 로드밸런스 연결
레코드 A를 선택하고 트래픽 라우팅 대상으로 별칭으로 선택해야한다. ( 로드밸런싱용 IP는 변경될수있다고 해서 별칭으로 자신이 생성한 로드밸런스 이름과 매칭해주면됨 )
======================================================================
2022년 8월 15일 이후 4번 과정의 classsic load balance 가 없어진다고 하니 아래 방법으로 진행하면됨.
https://kingofbackend.tistory.com/197