-
[AWS] ELB (정의와 종류 + "X - Forwarded - For")AWS 2024. 2. 10. 20:13
ELB (Elastic Load Balancers)
- 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할을 함
- 하나의 서버로 traffic이 몰리는 병목현상(bottleneck) 방지 → 서버의 원활한 흐림 및 방지에 도움
- Traffic의 흐름을 Unhealthy instance → healthy instance로 보내주는 것
EC2 인스턴스는 예상치 못한 이유로 건강치 않게 된다.
원인 중 하나는 인스턴스가 갑자기 셧다운이 생기거나 시간 초과같은 이유
ELB의 종류
1. Application Load Balancer : OSI Layer 7(응용계층)에서 작동됨
- HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함
- 고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있다
즉, 루트를 변경시켜주는 것. ELB가 임의로 하지 않고 커스터마이즈인 라우팅이 가능하다는 뜻
2. Network Load Balancer : OSI Layer 4(전송계층)에서 작동됨
매우 빠른 속도를 자랑하며 Production 환경에서 종종 쓰임
- 극도의 Perfomance가 요구되는 TCP traffic에서 적합함
Transport Layer에서 작동되는 이 로드 밸런서는 TCP 트래픽을 정리하는데 적합 - 매우 강력하기 때문에 초당 수백만개의 request를 아주 미세한 delay로 처리 가능 (한번에 해결)
✪ 구글이나 네이버와 같이 큰 서버에 적합
3. Classic Load Balancer (Legacy ELB)
현재 Legacy로 간주됨. 따라서 거의 쓰이지 않음
위 ELB들 보다는 성능이 조금 뒤처지나,
Layer 7의 HTTP/HTTPS 라우팅 기능 지원과
Layer 4의 TCP traffic 라우팅 기능을 한꺼번에 지원
EC2 인스턴스를 사용할 때 언제나 정상적으로 작동된다는 보장이 없다
특히 ELB는 에러를 발견하여 사용자에게 에러메세지를 제공한다
Load Balancer Error : 504 ERROR
⮕ 어플리케이션이나 서버가 응답을 받지 못하는 경우 나타나는 현상
⮕ 주로 웹 서버 레이어 혹은 데이터베이스 레이어에서 문제해결가능
X - Forwarded - For 헤더
public IP address(왼쪽)를 ⮕ DNS request를 통하여 ⮕ ELB(가운데)에 도달한다.
ELB는 request를 받고 Private IP address로 인식을 한다.
그리고 EC2 인스턴스로 이 request를 전송하여 ⮕ EC2는 이 request에 대한 정보를 살피게 된다.
✪ EC2는 Private IP address 밖에 볼 수가 없다.
따라서 출처가 어디인지 전혀 알 수가 없다
이럴때 x - Forwarded - For 헤드로 통해 원래 Public IP address를 찾아볼 수 있다.
'AWS' 카테고리의 다른 글
[AWS] EC2 실습 (인스턴스 생성/Apache/간단한페이지생성) (0) 2024.02.10 [AWS] EC2 - Route53 (+실습) (0) 2024.02.10 [AWS] EC2 - EBS (0) 2024.02.10 [AWS] EC2란 (1) 2024.02.10 [AWS] IAM 실습 (사용자/역할/정책+정책시뮬레이터) (1) 2024.02.09