1. ELB ( Elastic Load Balancer )
- 트래픽을 여러 인스턴스로 배분해주는 역할
- 헬스체크를 통해 인스턴스 상태를 확인해 트래픽을 분산
- ELB 는 로드밸런서를 관리하는 역할을 한다.
- 직접 로드밸런서를 관리하는 것은 비효율적
2. Health Check
- 로드밸런서를 위해 인스턴스 상태를 체크
- 200 OK 응답이 아니면 트래픽을 보내지 않는다.
3. AWS 의 로드밸런서 종류
- CLB : HTTP, HTTPS, TCP, SSL ( 안씀 )
- ALB : HTTP, HTTPS , WebSocket
- NLB : TCP , TSL , UDP
- GLB : Operates at layer 3 ( Network Layer )
4. 로드밸런서 보안 그룹
- 로드밸랜서에 속해 있는 인스턴스는 해당 로드밸런서의 보안 그룹으로 연결.
- 직접 인스턴스에 접근하는 것은 지양. -> 보안 강화
- ALB 의 리스너 -> 규칙 추가 -> 조건 설정 가능
5. ALB ( Application Load Balancer )
- 레이어 7
- 타겟그룹
- EC2 인스턴스의 그룹
- private IP 를 사용
- 서버가 클라이언트의 IP 를 직접 확인하지 못한다.
- 헤더에 있는 X-Forwarded-For 을 확인.
6. NLB ( Network Load Balancer )
- 레이어 4 -> TCP / UDP 트래픽
- ALB 에 비해 성능이 매우 높다.
- AZ 마다 1개의 고정 IP 를 갖는다.
- 타겟그룹 : 인스턴스, IP 주소 (private IP)
- 헬스체크 : TCP, HTTP, HTTPS
7. GLB ( Gateway Load Balancer ) - 6081 port
- 방화벽, 보안, 침입 탐지 등에 특화 ( 레이어 3 - IP 패킷)
- 네트워크 트래픽 분석
- 모든 트래픽은 GLB 의 하나의 입구와 출구를 통한다.
- 들어온 트래픽을 분산해 로드밸런서 역할을 한다.
- 타겟그룹 : EC2 , IP (private IP)
8. Sticky Sessions
- 분산없이 동일한 인스턴스에 요청
- 쿠키 이용 ( 애플리케이션, 기간 기반 )
- 타겟그룹 -> 속성 -> stickiness 설정
- 교차 영역 밸런싱 ( Cross Zone Load Balancing )
-> ALB 는 기본적으로 교차 영역 로드 밸런싱이 활성화 되어있다. ( NLB , GLB 는 직접 설정해주어야 한다. )
- SSL / TLS
- SSL 인증서는 클라이언트와 로드 밸런서 사이에서 트래픽이 이동하는 동안 암호화 작업을 한다. -> 전송 중 암호화 ( 보안 소켓 계층, 암호화하는데 사용 ) -> Secure Socket Layer
- 데이터는 네트워크를 이동하는 중에는 암호화되고 송신자와 수신자 측에서만 복호화 가능
- TLS 는 새로운 버전의 SSL ( 같은 의미로 사용 ) -> Transfer Layer Security
- 인증서에는 만료 날짜가 있어서 주기적으로 갱신해야 한다.
- HTTPS 를 통해 접속 -> S 는 SSL 인증서를 써서 암호화해 안전하다는 뜻
1. 로드 밸런서는 자체적으로 SSL 를 종료
2. 백엔드에서는 HTTP로 EC2 인스턴스와 통신 ( private IP 이용하니까 안전 )
- ACM : AWS 인증서 관리
- SNI ( 서버 이름 지정 ) : 접속할 호스트의 이름을 알린다.
- 여러 개의 SSL 인증서를 하나의 웹 서버에 로드해 하나의 웹 서버가 여러 개의 웹 사이트를 지원할 수 있게 한다.
- 클라이언트가 접속할 웹사이트를 말했을 때, 서버는 어떤 인증서를 로드 해야하는지 알 수 있다. ( ALB , NLB , Cloud Front 에서 작동 )
- 여러 개의 SSL 인증서를 두고 리스너를 여러 개 지원할 수 있다. ( SNI 사용 ) -> ALB , NLB
- ALB 에서 리스너 추가 -> 443 포트
- 연결 드레이닝 ( Connection Draining = 소비, 유출, 배수 ) : 해당 상태가 되면 ELB 는 등록 취소 중인 인스턴스로 요청을 보내지 않는다.
- 삭제될 예정인 EC2 를 사용중인 커넥션(세션)이 작업을 마칠 때 까지 기다리는 기능
- 연결되어있는 인스턴스가 드레이닝 상태면, 요청을 소비한 후 더이상 요청을 받지 않는다.
- 1~3600 초 까지 설정 가능 / 기본적으로 300 초
- ASG ( Auto Scaling Group )
- 목표는 스케일 아웃, 증가한 로드에 맞춰 인스턴스를 추가하거나 스케일 인(감소) 시키는 것
- 로드 밸런서와 페어링하는 경우 ASG 에 속한 ec2 인스턴스가 로드 밸런서에 연결
- 비정상이면 종료하고 새로 인스턴스를 생성
- 무료, 인스턴스 비용만 내면 된다.
- CloudWatch 기반으로 ASG 를 스케일 인 , 아웃을 할 수 있다.
- 경보가 울리게 되면 스케일 아웃 진행 (지표)
- Target Tracking Scaling : 대상 추적 스케일링 : 기준선을 세우고 사용 CPU 가 40% 로 기준 (예)
- Simple / Step Scaling : 70% 초과한 경우에는 늘리고 30% 아래면 줄인다 (예)
- Scheduled Actions : 금요일 오후 5시에 큰 이벤트 -> 5시에 10개로 늘린다 ( 예 )
- Predictive Scaling : 로드를 보고 예측해 사용
- Scaling Cooldowns : 스케일링 활동이 일어난 이후에 일정시간을 휴식 ( 300초 디폴트 )
-> 해당 시간동안은 오토 스케일링 작동안함.
'AWS > AWS-SAA' 카테고리의 다른 글
세션 12~14 S3기본 , S3고급 , S3섹션 (1) | 2024.01.14 |
---|---|
세션10: Route53 (1) | 2024.01.07 |
세션 9: AWS 기초: RDS + Aurora + ElasticCache (0) | 2024.01.06 |
섹션7: EC2 인스턴스 스토리지 (0) | 2023.12.16 |
세션6: EC2 - 솔루션스 아키텍트 어소시에이트 레벨 (1) | 2023.12.15 |
댓글