본 포스트는 AWS Certified Solutions Architect Associate 시험합격! 를 참고하여 작성되었습니다.
ALB
7계층인 HTTP 전용 로드밸런서
- 머신 간의 여러 HTTP 애플리케이션의 부하를 분산한다.
- 동일 EC2 인스턴스 상의 여러 애플리케이션 간의 부하를 분산한다.
- 경로 라우팅을 지원한다.
- URL 경로에 기반한 라우팅
/A와 /B를 다른 대상그룹에 라우팅 할 수 있다.
- URL 호스트 이름에 기반한 라우팅
one.example.com과 two.example.com을 다른 대상그룹에 라우팅할 수 있다.
- 쿼리 문자열과 헤더에 기반한 라우팅
example.com?id=123과 example.com?order=345를 다른 대상그룹에 라우팅 할 수 있다.
마이크로서비스 아키텍처나 컨테이너 기반 아키텍처에 적합한 로드 밸런서이다.
Target Groups (대상그룹)
- EC2 인스턴스들 (오토 스케일링 그룹에 의해서 관리될 수도 있는)
- ECS 작업들
- 람다 함수들
- IP 주소들 (반드시 사설 주소여야 한다)
ALB는 여러 대상그룹으로 라우팅할 수 있고 헬스 체크는 각 대상그룹 레벨에서 이루어진다.
실제 클라이언트는?
대상그룹의 어플리케이션 서버들은 외부 클라이언트가 아닌 로드 밸런서를 통해 네트워킹하므로 실제 클라이언트의 IP를 참조하지 않는다.
실제 클라이언트의 IP는 X-Forwarded-For, 포트 번호는 X-Forwarded-Port, 프로토콜은 X-Forwared-Proto이라는 헤더에 삽입된다.