| 퀴즈 오답 정리
-
ALB는 URL 경로, 호스트 이름, HTTP 헤더 및 쿼리 문자열을 기반으로 트래픽을 다른 대상 그룹으로 라우팅할 수 있다.
-
NLB - ALB 이렇게 둘 수 있다.(NLB가 ALB 앞에 있다) 왜 이런 구조를 쓸까? NLB덕분에 고정 IP를, ALB 덕분에 HTTP 유형의 트래픽을 처리하는 규칙을 얻을 수 있다.
-
NLB는 AZ 당 하나의 정적 IP주소를 가지며, 여기에 탄력적 IP주소를 연결할 수 있다. ALB, CLB는 정적 DNS 이름을 사용할 수 있다.
-
ELB가 선점하고 있는 이름 : AWSALB, AWSALBAPP, AWSALBTG
-
하나의 리스너로 다수의 SSL 인증서를 가져올 수 있도록 해주는 ALB, NLB 의 기능 ?
-
SNI(서버 이름 표식)을 사용하면 동일한 리스너 상에 있는 자체 SSL 인증서를 가진 다수의 HTTPS 애플리케이션을 노출시킬 수 있다.
-
ALB만이 EC2 인스턴스로 액세스할 수 있게 할 수 있는 가장 안전한 방법. 규칙에서 보안 그룹을 참조하는 것은 매우 강력한 규칙이다.
-
NLB는 TCP, HTTPS 및 HTTP 상태 확인을 지원한다.
Elastic Load Balancing (ELB) 개요
로드밸런싱?
로드밸런서
로드밸런서가 필요한 이유
- 부하를 분산시키기 위해서
- 단일 액세스 지점(DNS)을 노출시킨다.
- 헬스 체크가 가능하다
- 웹 사이트에 암호화된 HTTPS 트래픽을 가질 수 있다.
- 쿠키로 고정도를 강화할 수 있고, 고가용성을 가질 수 있다.
- 개인트래픽과 공공 트래픽을 분리할 수 있다.
ELB는 무조건 쓰는 것이 좋다.
헬스 체크 : 로드밸런서가 EC2가 제대로 작동되고 있는지 확인 하는 것
로드밸런서 종류
CLB
- V1이라고도 하고
- AWS가 더이상 권장하지 않음(그래서 공부 안하겠습니다)
ALB
- v2
- 2016년 출시
- layer 7의, 즉 HTTP 전용 로드 밸런서.
- HTTP, HTTPS, WebSocket 프로토콜 지원
- 포트 매핑 기능 덕분에 MS(micro services) & container 에 가장 좋은 로드밸런서 (예. docker, amazon ECS)이다.
- 포트 기능 매핑 : ECS 인스턴스의 동적 포트로의 리다이렉션을 가능하게 해준다.
- 사설 IP 주소 앞에 위치할 수 있다.
- 여러개의 target group 에 라우팅할 수 있으며, 상태확인은 target group 레벨에서 이뤄진다.
- 여러개의 target group에 라우팅할 때, 클라이언트의 URL을 확인하고 그에 맞는 대상 그룹에 갈 수 있또록 리다이렉션 규칙을 만들 수 있다.
- 고정 호스트 이름이 부여된다. (Fixed hostname)
- 애플리케이션 서버는 클라이언트 IP를 직접 보지 못한다. (forward proxy?인건가? )
NLB
- v2
- 2017년 출시
- layer 4 로드밸런서(TCP, UDP 가 나오면 NLB를 떠올리세요 ! )
- TCP, TLS(secure TCP), UDP
- ALB에 비해 지연 시간이 짧다. (NLB: 100ms, ABL 400ms)
- 가용 영역별로(AZ) 하나의 고정 IP를 갖는다!
- 그래서 여러개의 고정 IP를 가진 애플리케이션을 노출할 때 유용하다.
- 그래서 1~3개의 IP로만 액세스 할 수 있는 애플리케이션을 만들라는 문제가 나오면? NLB를 고려해라
- 고성능, TCP, UDP, 정적 IP가 나오면 NLB를 고려해라(layer4라서 고성능인가? 패킷을 덜 까도되니깐???)
- NLB 사용은 aws 프리티어에 포함되지 않느다(공짜라는 말이야.. 프리티어도 돈을 내고 사용하라는 말인가? 싶어서 찾아보니, 실행된 시간 시간당 사용된 용량 단위에 따라 요금이 부과된다고 한다. ) https://aws.amazon.com/ko/elasticloadbalancing/pricing/
- ALB와 자동 방식이 유사하다.
- target gruop에는 EC2, private IP 가 하드코딩, ALB 3개가 올 수 있다. 데이터 센터 서버의 private를 사용할 수 도 있음. 그래서 클라우드 & 온프레미스 둘다 로드밸런싱 가능함.. 오
- 상태확인 : TCP, HTTP, HTTPS 프로토콜 지원.
GWLB
- 2020년 출시
- 네트워크 층에서 작동, layer3와 IP프로토콜에서 작동(모든 로드 밸런서 중에 가장 낮은 수준에서 실행된다.)
- 배포 및 확장과 aws의 타사 네트워크 가상 어플라이언스의 플릿 관리에 사용된다. (아직 무슨 의미 인지 모르겠다)
- 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용한다.
GWLB 프로세스
- GWLB를 생성하면 VPC에서 라우팅 테이블이 업데이트 된다.
- 라우팅 테이블이 수정되면, 모든 사용자 트래픽이 GWLB를 통과, GWLB는 대상그룹(target group)으로 트래픽을 분산한다.그래서 트래픽이 어플라이언스에 도달한다. 어플라이언스는 트래픽을 분석하고 처리한다.(방화벽이나 침입 탐지 등) 이상이 없없으면 다시 GWLB로 보내고 이상이 있으면 트래픽을 드롭한다. 허용된 트래픽에 대해서 GWLB는 트래픽을 애플리케이션으로 보낸다. 애플리케이션에서는 명료하게 모든 트래픽이 GWLB와 타사 가상 어플라이언스를 통과해 모든네트워크 트래픽을 분석하고 드롭시킬 수 있다.
GWLB 2가지 기능
1. 투명 네트워크 게이트웨이(Transparent Network Gateway)
- VPC의 모든 트래픽이 GWLB가 되는 단일 엔트리와 출구를 통과하기 때문
2. 로드밸런서 - target group의 가상 어플라이언스 집합에 전반적으로 트래픽을 분산해 로드 밸런서가 된다.
<중요>
- GWLB를 사용할 때 6081 포트의 GENEVE 프로토콜을 사용하세요 ! (GENEVE !! 네트워크 시간에 배웠는데)
GENEVE 프로토콜이란?
참조 : https://www.stevenjlee.net/2021/03/25/%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0-aws-gwlb-gateway-load-balancer/
- 네트워크 가상화를 가능하도록 지원하는 네트워크 프로토콜
- UDP 포트번호 6081번 사용
- 논리 스위치 기술세미나 발표하면서 자료를 사용했는데,
보안그룹 설정(EC2와 LB의)
- EC2 보안그룹에 로드밸런서를 추가하게 되면(ip범위가 아니라) 로드밸런서에서 온 트래픽만을 허용하게 되어 강력한 보안 메커니즘이 된다.