(8) 리스너밋 라우팅 대상그룹 생성 클릭하고 새창 나오면 거기서 대상 그룹 이름 적기
리스너밋 라우팅이란 ELB로 들어온 요청을 어떤 EC2 인스턴스에 전달할지 설정하는거다
대상그룹은 ELB가 사용자로 부터 트래픽을 받아서 어떠한 곳에 전달한다 했는데 대상그룹이 '어떠한 곳'을 말한다.
대상그룹 생성 누르면 새창이 뜨는데 여기서 우리는 인스턴스를 생성했으니 인스턴스를 선택하고 대상그룹 이름을 적는다
(9) 상태 검사 경로에 아무경로 적고(강의에서는 helth적은거),다음
ELB부가기능인 상태검사(=헬스체크)란?
ELB로 들어온 요청을 대상 그룹에 있는 여러 EC2인스턴스로 전달하는데 만약 인스턴스가 고장났는데 그 인스턴스한테 트래픽 전달하면 비효율적인 행동이다.
그래서 이걸 방지하기 위해 ELB는 주기적으로(기본30초간격,변경가능)대상 그룹에 있는 각각의 EC2 인스턴스한테 확인 요청을 보내고 200번대 응답 날라오면 정상 판단하고, 200번대 응답 안날라오면 서버가 고장났다 판단하고 트래픽 전달하지 않는다.
상태검사 경로에 적은거는 대상그룹의 각각의 인스턴스에 주기적으로 Get요청으로 경로 적은거 요청 보내서 확인하고 인스턴스가 정상 작동하는지 확인하는거다
그러면 ELB한테 응답해주려면 당연 인스턴스 백엔드 서버에 헬스체크용 API를 만들어줘야한다(밑에 스프링용 확인)
(10) 이제 대상등록에 EC2 인스턴스 클릭후 80번 포트 적고 클릭하면 대상그룹에 추가된다
(11) 다시 리스너 및 라우팅 설정 돌아와서 확인해보면 대상그룹에 추가한거를 선택할 수 있다.
이후 이제 다른건 건드릴 필요없고 로드밸런서 생성하기
해석하자면 ELB의 HTTP 프로토콜을 활용해서 80번 포트로 들어온 요청은 전부 다 대상그룹 선택한 인스턴스로 분배해서 트래픽 보내주겠다는거다
1. 헬스체크 API 추가하기(스프링)
인스턴스에 프로젝트 올리기전 안한경우
EC2 인스턴스 연결하고 우분투에서 프로젝트 build.gradle 설정 경로로 간다음
implementation 'org.springframework.boot:spring-boot-starter-actuator'
해당 의존성을 추가한 뒤 어플리케이션을 실행하면 /autuator/health API가 기본으로 제공된다.
만약 API 경로를 /health와 같이 수정하고 싶다면 application의 설정 파일에 이 옵션을 추가하면 된다
management.endpoints.web.base-path=/
base-path의 기본값은 actuator이다. 설정을/ 로 수정하면 기존의 API를 /actuator/health → /health 로 수정할 수 있다.
다른 더 세부적인거 필요할경우 참고
2. ELB 적용 확인해보기
이제 로드 밸런서로 돌아오고 해당 로드밸런서 클릭후 세부정보보면 DNS 이름 나오는데 저 도메인 로드밸런서 주소를 복사후 들어가보면 나온다. 그후 저 도메인에 /health 적고 요청해보면 헬스체크 API 응답을 받는다.
'AWS' 카테고리의 다른 글
9. RDS - (1) (0) | 2024.10.28 |
---|---|
8. HTTPS연결-(3) (0) | 2024.10.26 |
6. HTTPS 연결-(1) (0) | 2024.10.25 |
5. Route53도메인 구매,도메인을 EC2에 연결 (0) | 2024.10.25 |
4. EC2 Spring Boot 서버를 배포, EC2 종료 (0) | 2024.10.24 |