-
[ALB] ALB에 EC2 연결하면서 만난 문제들클라우드/AWS 2024. 10. 20. 15:15
- 인스턴스 한대에 어떤 서비스 포트가 (80, 7443) 두 개 열려져 있는 상황
- 로드밸런서 alb를 연결하면서 생각해봤던 문제들을 다시 떠올려본다...
1) 80 번포트
- alb의 리스너를 http 80으로 열어주고 타겟그룹을 https 443으로 설정했음
- 이유는 curl http://ip:80 했을때 301 에러가 뜸 -> 리디렉션 된것으로 판단 (서버자체에서 리다이렉션 시켜줌)
- curl --insecure https://ip:443 으로 테스트해보면 잘 나옴
- 타겟그룹을 https:443으로 붙여야 트래픽이 잘 전달될 것 ( http로 접속하면 알아서 https로 리디렉션 되도록 설정)
따라서, 리스너를 80으로 열어주면 알아서 443으로 리디렉션 되도록 설정하자
alb dns 주소를 입력하면 알아서 443 으로 열려있는 서비스를 띄워줌!
2) 7443 포트
- alb의 리스너를 http 7443으로 열어주고 타겟그룹을 https / http 7443 으로 열어도 모두 가능함
- curl http://ip:7443 -> 400 에러
- curl https://ip:7443 -> 잘 뜸
-> 400에러를 통해 http 요청이 거부가 됐다고 판단됨
-> 애초에 7443 포트는 Https 용이 맞긴 함
-> 따라서 로드밸런서 설정을 통해 http 요청이 들어오면 https 으로 리디렉션 되도록 설정해주자
-> http://alb dns 주소:7443을 하면 자동으로 https로 리디렉션 시켜줌
dns:80
dns:7443
으로 브라우저에 url을 치면 알아서 https로 리디렉션 시키고, 서비스 웹페이지를 띄워줌!
https://studysteadily.tistory.com/17
이상했던게 뭐냐면
80번 포트의 대상 그룹 프로토콜 : 포트는 https만 되는데
7443번 포트의 대상 그룹 프로코콜: 포트는 http, https 모두 허용이 됐음
이유를 유추해 보자면
1) 80번 포트는 서버 내부에서 Https으로만 응답을 설정했으면 http으로 트래픽이 아예 허용이 안된다고 생각할 수 있다 -> 301 응답이면 해당 이유로 유추가능
2) 7443 번 포트는 커스텀 포트로, 서버가 http와 https의 트래픽을 모두 처리하도록 설정되어 있을 수 있다. 따라서 alb가 둘 다 시도해도 성공할 수 있는것
추가로 대상그룹의 프로토콜과 상태검사의 프로토콜은 독립적으로 설정할 수 있음
대상 그룹의 프로토콜:포트는 ALB가 실제 사용자 트래픽을 전달할 때 사용하는 프로토콜과 포트
상태검사의 프로토콜은 ALB가 서버의 상태를 점검할 때 사용하는 프로토콜로, 트래픽 전달과는 별개의 설정
'클라우드 > AWS' 카테고리의 다른 글
[Terraform] 테라폼 기초 (1) 2024.11.23 [AWS] Route53에 대한 고찰 (0) 2024.11.18 [RDS] MySQL 5.7 to 8.0 업그레이드 기록 (2) 2024.07.27 [AWS] AWS IoT Greengrass V2 Workshop 2 (1) 2023.12.05 [AWS] IoT Greengrass V2 Workshop 1 (2) 2023.12.05