ALB(Application Load Balancer)는 고정 IP를 지원하지 않기에 서비스를 하기에 적합하지 않습니다.
그래서 NLB(Network Load Balancer)를 ALB 앞단에 두어 탄력적IP를 할당 후 모든 클라이언트 요청을 NLB로 받겠습니다.
NLB로 들어오는 모든 요청을 ALB로 전송하고 ALB가 https나 패킷 기반 라우팅이 가능하여 "/"로 들어오는 주소는~~EC2
로 가! 라는 설정이 가능합니다!
앞 글에서 예고했듯이 NLB를 설정하겠습니다.
고정 IP 주소가 생겼습니다!
이것을 NLB에 연결하겠습니다!
로드밸런서 생성!
이름
: 프로젝트 이름 - nlb
Mappings
: ap-northeast-2a (아무거나 택)
IPv4 address
: User an Elastic IP address
- 이 옵션으로 탄력적 IP에 연결이 되었습니다.
아래 사진의 IP address
를 보면 아까만들 탄력적 IP
와같은 IP인걸 확인 할 수 있습니다.
Listener
-> create target group
-> Application Load Balancer
-> name : aws-v5-alb -> next
Application Load Balancer -> 보기에서 선택
이제 로드밸런서 대상그룹에 가보면 NLB가 생겼습니다.
그리고 탄력적IP를 NLB에 연결해주면
고정IP로 모든 요청을 받게됩니다!
NLB로 들어오는 모든 요청이 aws-v5-alb로 이동하게 됩니다.
이제 우리는 탄력적 IP의 주소로 접속하면 NLB와 ALB를거쳐 EC2로이동합니다!
(중간에 많은 에러와 시행착오로 인해 탄력IP를 다시 받게 되었습니다...ㅎㅎ)
물론 조회API도 잘 됩니다!
이렇게 CICD 무중단 배포를 해보았습니다.
국비교육을 받으며 팀프로젝트를 하면서 많이 아쉬웠던 무중단 배포
와 동시성
문제중
무중단 배포를 공부해 보았습니다.
배포하는 과정에서 왜 단일 서버만 띄우면 안되는지 깨달았고 어떻게 서비스가 중단이되지 않을까라는 고민부터 시작한 공부는 어느정도 마무리를 지었습니다.
앞으로는 인프라에대한 고민도 하며 개발을할 수 있어 너무 좋습니다!ㅎㅎ