DVA-C02 자격증 공부하며 정리한 지식을 공유합니다.
글 마지막에 시험 대비용 요약을 정리해두었습니다.
1. ELB 개요
ELB는 AWS에서 제공하는 로드 밸런서 서비스이다.
→ 여러 가용영역에 걸친 대상에 트래픽을 분산시켜준다. 대상 그룹(=타겟 그룹)으로 지정한다.
동작 계층에 따라 ALB(L7), NLB(L4), GWLB(L3)로 분류된다.
+ 이전 세대의 Deprecated 된 Classic LB도 있다.
1-1. 고정형 세션(Sticky Session)
라운드로빈 방식으로 동작하는 LB의 경우를 가정한다. 같은 클라에서 2번 요청시 대상 그룹 내 다른 백엔드로 요청할 수 있다.
기본적으로 대상그룹에 속한 인스턴스간에는 동일한 기능을 보장해야 하지만, 상황에 따라 같은 세션 내에 동일한 백엔드로만 요청하는 것에 이점이 있을 수 있다. 이럴 때 사용하는 것이 고정형 세션으로 같은 클라는 쿠키 통해 같은 백엔드에 요청하게 한다. 이 쿠키는 LB에서 만들어준다. (AWSALB, AWSALBCORS 등)
1-2. 대상 그룹에 균등하게 라우팅 하도록 구성했는데도 한 쪽에만 더 많은 트래픽이 갈 때
- 고정 세션(sticky session) 활성화를 의심해볼만 하다.
- 더 좋은 스펙에 더 많은 요청 보낼 수 있다.
- 가용영역이나 AMI에 따라도 좀 다르다.
- 수명이 긴 TCP 연결
(참고) 연결된 대상 그룹이 없으면 503 Service Unavailable
1-3. 크로스존 로드밸런싱
가용영역 2개에 각각 대상그룹을 만들고 3개, 7개의 EC2를 구성했다고 하자. 가용영역에 따라 트래픽을 50: 50으로 나누면 3개가 50개 받고 7개가 50개 받을 것 같지만, 크로스존 로드밸런싱을 하면 전체 10개가 골고루 10개씩 받는다. 필수 기능이 아닐수 있고 그냥 이렇게 할 수도 있다 정도.. 만약 크로스존 로드밸런싱 없이 구성하면 AZ마다 있는 ALB가 균등하게 분배받으므로 3개가 50개 7개가 50개 처리한다.
→ AWS는 보통 여러 가용영역에 걸친 작업에 추가 비용이 붙는데, ALB 기준으로는 기본 활성화가 되어있어서 설정 무료로 가능하다. NLB랑 GWLB는안된다.
1-4. SSL/TLS 관련
LB에 기본 SSL/TLS 인증서(X.509 인증서, 보통 ACM)을 적용하고, 이후 통신은 http를 사용한다.
1-4-1. SNI(Server Name Indication)
TLS(SSL)의 확장 기능 중 하나로, 하나의 IP 주소에서 여러 도메인(웹사이트)을 HTTPS로 서비스할 수 있도록 만든 기술.
LB가 여러 대상그룹을 가지고 있는데 각 대상그룹 도메인 주소가 다른 경우 사용. 클라이언트는 초기 SSL 핸드셰이크에서 대상 서버의 호스트 이름을 표기해야한다. ALB, NLB, CloudFront 등 AWS 서비스에서도 이를 활용하여 도메인별 인증서를 설정할 수 있다.
1-5. Connection Draning(또는 Deregistration Delay)
오토 스케일링 설정을 해둔 그룹이 정책에 맞춰 EC2 개수를 줄이려고한다. EC2 내에 배포된 서비스는 한 번 요청에 10초 이상의 대용량 파일을 내려받는 서비스라고 가정했을 때 바로 종료하게되면, 현재 내려받는 클라이언트의 요청은 중도 실패할 것이다. 이를 방지하기 위해 일정 시간(디폴트 5분)동안 새 요청만 받지 않고 현재 요청이 끝날 때까지 커넥션을 유지해주는 기능이다. 롤링 배포, 클라이언트 요청 실패에서 유용하다.
2. ASG(오토 스케일링 그룹)
현재 트래픽에 따라 인스턴스 개수를 유연하게 조정해준다. 설정 자체는 무료이다.
- 원하는 스케일 인/아웃에 따라 EC2 개수를 자동 조절한다.
- healthCheck 통해 언헬시 인스턴스 내리고 새로운 인스턴스 실행하여 개수 유지 가능
- 무슨 이미지 쓸 건지, EBS, 키페어 등등 사전에 EC2 스펙을 정해주어야 한다.
- Cloud Watch의 메트릭을 기준으로 하여 알람을 트리거로 늘리거나 줄이기 가능
2-1. 오토 스케일링 정책
타겟 트래킹 스케일
- 구성 쉬움. 모든 CPU를 40% 정도로 유지할 수 있게 하여 알아서 늘어나는 형태
심플 스텝 스케일링
- 구성 어려움. Cloud Watch 트리거 명령형으로 추가하거나 삭제
스케줄 액션
- ex) 월요일 9시에 이벤트가 있으니 이 때는 늘린다.
예측 스케일링
- 이전 데이터를 보고 예측해서 늘려준다.
2-2. 정책에 도움되는 메트릭
- CPU 사용량
- 타겟별 요청카운트
- 평균 네트워크 IO (사진 큰거 받고 등등)
- 클라우드와치에서 커스텀 메트릭 설정
2-3. 클라우드 쿨다운
잦은 메트릭 변화에 따른 너무 빠르게 개수가 조절되는 것 방지 하는 스케일링 쿨타임
한 번 스케일 업/다운이 되고 이 시간동안은 어떤 변화에도 스케일 업/다운되지 않는다.
3. ALB
http / https / ws 처리용 로드밸런서이다.
- 대상 그룹에 주로 EC2, ECS, Lambda 맵핑되어 있다.
- 여러 가용영역에 걸쳐 고가용성으로 생성 되지만 단일 도메인 진입점을 제공한다.
3-1. ALB vs Classic Load Balancer 이해
모놀리식 아키텍처로 운영하는 서비스에서 로드밸런서는 단일 대상그룹에 부하 분산만 하면 됐다. 서비스 규모가 작아지며 쿼리스트링, 헤더, 패스베리어블, 엔드포인트, 도메인 주소와 같은 조건에 기반하여 라우팅 대상을 분기할 필요가 생겼다. 이러한 이해를 바탕으로 실무에서 단순 서비스의 부하분산의 경우 가장 저렴한 클래식 로드밸런서 도입을 고려할 수 있다.
반면 ALB의 경우 부하분산 뿐만 아니라 라우팅 경로 제공도 가능하다.(리스너의 rule을 통해 제어)
- 앞의 쿼리스트링, 헤더, 패스베리어블, 엔드포인트, 도메인 주소 모두 가능하다.
- 여러개 대상그룹으로 포워딩
- 다른 URL로 리다이렉트
- 고정된 응답 - 개발단계 테스트용 등에서 활용
- rule 을 정하여 우선순위 설정 가능
4. NLB
TCP, TLS(secure TCP), UDP 처리용 로드밸런서
- 굉장히 높은 사양이 필요할 때 사용. 초당 수백만 처리가능
- 4계층에서 동작하기 때문에 프로토콜 및 포트로만 라우팅을 분기할 수 있다.
- 가용영역마다 하나의 고정 IP를 제공(EIP(Elastic IP) 또는 AWS에서 생성)
- 초 저지연 및 가용성을 위한 NLB의 특징으로 클라이언트는 NLB로 부터 가장 적절한 IP를 부여받아 연결한다.
- 이를 통해 특정한 ip로만 접근가능한 화이트리스트 구성 가능
5. GWLB
대상 그룹이 AWS 서비스 뿐만 아닌 서드파티 정책 또는 프라이빗 온프레미스 장비가 될 수 있다.
6081 포트 GENEBE 프로토콜을 사용하여 연결한다.
6. DVA-C02 시험 관련
1. 고정 ip or 화이트리스트 ip 구성 → NLB
2. 네트워크 레벨의 고성능 → NLB
3. 6081 포트 GENEBE 프로토콜 → GWLB
4. 일반적인 웹 기반 서비스 → ALB
'자격증' 카테고리의 다른 글
| AWS IAM 개요 (0) | 2025.05.23 |
|---|---|
| [DVA-C02] EC2 (+ EBS, EFS, SG) (1) | 2025.05.21 |
| AWS Certified Developer - Associate (DVA-C02) 자격증 취득 (2) | 2024.05.26 |
| 시간복잡도 - 실생활 예시로 개념잡기 (1) | 2023.12.21 |
| #C4 2021 3회차 정보처리기사 필기 시험 후기(+책 관련 정보) (0) | 2021.08.17 |