AWS

AWS ELB 생성, 대상 그룹 설정, EC2와 연결

똑똑한망치 2024. 7. 12. 17:50
728x90
반응형

ELB란?

두 개 이상의 AZ에 EC2나 컨테이너, IP 주소 등으로 여러 대상에 걸쳐 수신되는 트래픽을 분산하는 서비스

  • 접속 부하에 맞게 자동적으로 리소스의 확장/축소를 수행
  • ALB의 경우, 지속적으로 IP 주소가 바뀌며 IP 고정이 불가능하여 항상 도메인 기반으로 사용
  • LB(Load Balancer)가 등록된 대상의 상태를 모니터링 한다 -> 정상적 상태인 대상으로 트래픽 라우팅

 

ELB 구성 요소

Listener

  • 프로토콜과 포트를 기반으로 요청을 받아 타켓으로 전달

Target Group

  • ELB가 분산을 할 때 어디로 분산할 것이냐를 모은 그룹들

Security Group

  • 방화벽과 같이 특정 프로토콜 / 포트만 허용하도록 하는 기능

Health Check 

  • 직접 트래픽을 발생시켜 인스턴스가 살아있는지 (정상적인지) 체크

Connection Time Out 

  • 일정 시간동안 통신이 없을 때 커넥션을 삭제할 것인지 설정하는 기능 

 

어떻게 적용하는가?

외부로부터 ELB로 들어오는 요청을 EC2로 전달하여 처리

  • Health Check 를 통해 Instance 정상여부 체크
  • 특정 포트로만 들어올 수 있도록 허용

 

⚙️과정⚙️

[로드밸런싱] ➡️ [대상 그룹] ➡️ [대상 그룹 생성]

 

✅ 인스턴스 로 설정

 

대상 그룹 이름은 본인이 원하는 이름으로 설정 (나머지는 기본 설정되어 있는대로 하기)

 

상태 검사

  • 필자는 SpringBoot 프로젝트 기반이기 때문에
  • /actuator/health 로 설정


대상 등록

사용 가능한 인스턴스에서 본인이 사용할 EC2 인스턴스를 체크하면 된다.

 

✅  선택한 인스턴스를 위한 포트 에는 본인의 프로젝트 포트를 사용하면 된다

- 나의 경우에는 테스트 용이기 때문에 80번 포트를 사용했다.

 

[아래에 보류 중인 것으로 포함] 체크하기

 

이후 완료 버튼 클릭 후 대상 그룹 생성 완료!

 

등록된 대상 정보를 확인할 수 있다.

 

 

로드밸런서 생성

[로드밸런싱] ➡️ [로드 밸런서] ➡️ [로드 밸런서 생성]

 

✅ ALB 선택

 

 

✅ 로드 밸런서 이름 설정 (나머지는 기본 설정으로)

 

 

네트워크 매핑

- 만약 EC2 가 없는 AZ만 설정하고 타켓 그룹을 고르면 제대로 트래픽이 이입되지 않음.

- 따라서 EC2가 위치해있는 AZ을 포함해서 2개 이상의 가용 영역을 지정한다.

 

나의 경우에는 4개 모두 체크 했다.

 

✅ 보안 그룹

- default로 설정

- EC2에서 선택된 Security Group을 허용해줘서 트래픽이 LB를 타고 EC2로 들어갈 수 있도록 설정해줘야 한다.

 

리스너 및 라우팅

- LB에서 지정한 Listener를 통해서 어떤 타켓 그룹으로 들어가는지 설정하는 것

- 위에서 설정했던 타켓 그룹을 설정하면 된다.

 

위의 사진을 해석하자면 80번으로 요청을 보내면 LB에서 타켓 그룹으로 요청을 전달한다.

 

로드 밸런서 생성 클릭

 

 

반응형

'AWS' 카테고리의 다른 글

AWS CodeSeries  (1) 2024.07.14
AWS EC2 User Data가 작동하지 않을 때 로그 보는 방법  (0) 2024.07.11