DevOps/🐝 AWS

[AWS ANS-C01 #2] ALB, NLB / X-Forwarded-For / IP 보존

키깡 2024. 3. 19.
728x90

한 회사가 AWS 클라우드에 새로운 애플리케이션을 배포하고 있습니다. 회사는 Elastic Load Balancer 뒤에 위치할 고가용성 웹 서버를 원합니다. 로드 밸런서는 요청의 URL을 기반으로 여러 대상 그룹으로 요청을 라우팅합니다. 모든 트래픽은 HTTPS를 사용해야 합니다. TLS 처리는 로드 밸런서로 오프로드되어야 합니다. 회사가 보안을 위해 정확한 로그를 유지할 수 있도록 웹 서버는 사용자의 IP 주소를 알아야 합니다. 어떤 솔루션이 이러한 요구 사항을 충족합니까?

A. HTTPS 리스너를 사용하여 Application Load Balancer를 배포합니다. 경로 기반 라우팅 규칙을 사용하여 트래픽을 올바른 대상 그룹으로 전달합니다. 대상에 대한 트래픽과 함께 X-Forwarded-For 요청 헤더를 포함합니다.

B. 각 도메인에 대해 HTTPS 리스너가 포함된 Application Load Balancer를 배포합니다. 호스트 기반 라우팅 규칙을 사용하여 각 도메인의 올바른 대상 그룹으로 트래픽을 전달합니다. 대상에 대한 트래픽과 함께 X-Forwarded-For 요청 헤더를 포함합니다.

C. TLS 리스너를 사용하여 Network Load Balancer를 배포합니다. 경로 기반 라우팅 규칙을 사용하여 트래픽을 올바른 대상 그룹으로 전달합니다. 대상에 대한 트래픽에 대한 클라이언트 IP 주소 보존을 구성합니다.

D. 각 도메인에 대해 TLS 리스너가 포함된 Network Load Balancer를 배포합니다. 호스트 기반 라우팅 규칙을 사용하여 각 도메인의 올바른 대상 그룹으로 트래픽을 전달합니다. 대상에 대한 트래픽에 대한 클라이언트 IP 주소 보존을 구성합니다.


답변: B (그런데 A도 되는듯)


A. HTTPS 리스너를 사용하여 Application Load Balancer (ALB) 배포: ALB는 7계층(Layer 7)의 로드 밸런서로, HTTP/HTTPS 트래픽을 처리하고 요청의 내용(예: URL, 헤더)에 기반하여 트래픽을 라우팅할 수 있습니다. 이 옵션은 경로 기반 라우팅을 사용하여 트래픽을 대상 그룹으로 전달하며, X-Forwarded-For 헤더를 통해 원본 클라이언트의 IP 주소를 백엔드에 전달합니다. 이는 기본 요구 사항을 충족시킵니다.

B. 각 도메인에 대한 HTTPS 리스너가 포함된 ALB 배포: 이 옵션도 ALB를 사용하지만, 호스트 기반 라우팅에 초점을 맞춥니다. 이는 다양한 도메인 또는 서브도메인이 있고 각각 다른 대상 그룹으로 트래픽을 라우팅해야 하는 경우 유용합니다. X-Forwarded-For 헤더를 사용하여 클라이언트 IP 주소를 보존합니다.

C. TLS 리스너를 사용하여 Network Load Balancer (NLB) 배포: NLB는 4계층(Layer 4)의 로드 밸런서로, TCP/UDP 트래픽을 처리하며, 특히 고성능 및 낮은 지연 시간이 필요한 경우에 적합합니다. NLB는 클라이언트 IP 주소를 기본적으로 보존하지만, 경로 기반 라우팅은 직접 지원하지 않습니다. 클라이언트 IP 주소 보존 설정이 가능하지만, URL을 기반으로 한 라우팅은 ALB를 통해서만 가능합니다.

D. 각 도메인에 대해 TLS 리스너가 포함된 NLB 배포: 이 옵션은 NLB를 사용하며, 호스트 기반 라우팅에 초점을 맞춥니다. 하지만 NLB는 Layer 4에서 작동하므로 호스트 기반 라우팅은 지원하지 않습니다. 클라이언트 IP 주소 보존은 가능합니다.

 

ALB, NLB 차이

  • ALB (Application Load Balancer):
    • 7계층(Layer 7)의 로드 밸런서로, HTTP 및 HTTPS 트래픽에 최적화되어 있습니다.
    • 경로, 호스트, 헤더, HTTP 메서드 등에 기반한 세부적인 요청 라우팅 규칙을 제공합니다.
    • TLS 종료(오프로드)를 지원하여, 암호화 처리 부담을 웹 서버에서 로드 밸런서로 이동시킬 수 있습니다.
    • X-Forwarded-For 헤더를 통해 원본 클라이언트의 IP 주소를 백엔드 서버에 전달할 수 있습니다.
  • NLB (Network Load Balancer):
    • 4계층(Layer 4)의 로드 밸런서로, TCP, UDP, TLS 트래픽에 최적화되어 있습니다.
    • 초당 수백만 건의 요청을 밀리초 단위의 지연 시간으로 처리할 수 있으며, 극도로 높은 성능과 낮은 지연 시간을 요구하는 애플리케이션에 적합합니다.
    • 클라이언트 IP 주소 보존 기능을 제공하지만, 경로 또는 호스트 기반 라우팅은 지원하지 않습니다.
    • TLS 리스너를 사용할 경우, NLB는 TLS 연결을 종료하지 않고, 암호화된 페이로드를 백엔드로 직접 전달합니다. 이는 TLS 종료(오프로드)를 지원하지 않음을 의미합니다.

댓글