[KT] AIVLE SCHOOL 33일차
가용성
- 서비스 가용성이라고도 표현
- 워크로드를 사용할 수 있는 시간의 비율
- Availability = Available for Use Time / Total Time
고가용성
- High Availability
- 높은 가용성
- 지속적으로 구현한 시스템이 정상적으로 운영이 되는 성질
- 장애 또는 고장이 나더라도 복구를 해서 서비스를 지속할 수 있는 능력
Region / Availability Zone
- AWS는 Region과 Availability Zone으로 이루어져 있음
- Region
- 전 세계에서 데이터센터를 클러스터링하는 물리적 위치
- 어떤 지역으로 서비스 하느냐에 따라 지리적으로 가까운 Region 선택
- Region Code
- Region 구분 Code 존재 (ex. us-east-1, ap-northeast-2)
- AWS는 Region 단위로 별도 서비스되는 형태
- Resource는 Region 내 Availbility Zone 단위로 배포
- Availability Zone
- Region 내 물리적으로 분리된 전력 네트워킹 장치가 분리된 영역
- 보통 AZ 별 데이터센터 분리된 구조 (AZ 사이는 물리적으로 100KM 이내 존재)
- AZ 간 구성
- Region은 보통 2~3개 Availability Zone으로 구성
- 동일 Region 내 AZ는 전용 광 네트워크로 구성되어 매우 낮은 지연 속도와 높은 처리량 보장
- AZ간 모든 데이터 트래픽은 기본 암호화
- AZ 분산 배치
- 만약 동일 Availability Zone 내 모든 인스턴스를 배치하는 경우 해당 AZ 장애 발생 시 본인이 구축한 서비스도 장애로 이어질 수 있음
- 동일 역할을 수행하는 인스턴스의 경우 AZ를 분산 배치하여 서비스 가용성을 높이는 것이 좋음
- AZ와 VPC
- Region - VPC와 맵핑
- Availability Zone - Subnet과 맵핑
- Instance 생성시 VPC와 Subnet을 선택하여 배포
- VPC 구성 예
- Public Subnet & Private Subnet
- VPC 구성 시 목적에 따라 Subnet을 구분하여 생성
- Public Subnet : 외부 통신용
- Private Subnet : Public과 Private 간 연동용
- 외부 통신시 NAT Gateway를 통한 단방향 허용
- Private Subnet 2 : 외부 통신 X
- VPC 구성 시 목적에 따라 Subnet을 구분하여 생성
- AZ별 Subnet 구성
- VPC 구성 시 Availability Zone에 따라 Subnet 구성
- 각각의 Subnet을 AZ 수 만큼 생성
- Total Subnet 수 = AZ Count X 용도별 Subnet
- 인스턴스 생성 시 각 사용처에 맞는 Subnet을 선택 후 AZ 별로 분산 구성
- VPC 구성 시 Availability Zone에 따라 Subnet 구성
- AZ 장애 발생 시
- Availability Zone 장애 시 동일 용도의 인스턴스 및 서비스 Set가 다른 Availability Zone에 구성되어 ㅣㅇㅆ으므로 가용성을 높일 수 있음
- Public Subnet & Private Subnet
Load Balancer
- 인입되는 트래픽을 특정 알고리즘 기반으로 다수의 서버로 분산 시켜주는 장비
AWS ELB
- AWS에서 제공하는 트래픽 분산 서비스로, 들어오는 네트워크 트래픽을 여러 대상(e.g. EC2 인스턴스, 컨테이너, IP 등)에 자동으로 분산
- 특징
- Region 내 인스턴스 및 다양한 서비스로 트래픽 분배 서비스
- 다수의 Availbility Zone으로 트래픽 분배
- HTTP/S 웹 기반 트래픽, TCP/S 프로토콜 기반
- Backend 인스턴스에 대한 Health Check 수행
- 고가용성 기반 L4/L7 서비스
- Availability Zone 분산 및 Traffic 증가 시 자동 Scale-out 기능 지원
- ELB 3 Type
- Application Load Balancer(ALB) : HTTP/HTTP(S) 트래픽 처리 특화된 L7 로드 밸런서
- Network Load Balancer(NLB) : TCP/UDP 처리 특화 고정 IP 주소 사용 가능한 로드밸런서, L4
- Gateway Load Balancer(GLB) : Third-party 가상 어플라이언스 관리를 위한 Gateway 용 로드밸런서
Scale-out
- 트래픽 증가 시, 서비스에 투입되는 서버를 증설하여 각 서버가 처리하는 부하를 낮추는 방식
- Web based 서비스의 경우 많이 사용하는 구성으로 Session이나 Data 처리 영역 없이 Stateless 한 서버에서 주로 사용
Scale-in
- 트래픽 감소 시, 배포된 서버를 제거하는 방식
- 낭비되는 리소스를 줄임으로 비용 최적화 목적
ELB 알고리즘
- Round Robin
- Hashing
- Weighted RR
- Least Connection
- Weighted LC
ELB 헬스체크 기능
- 주기적으로 서버가 정상 상태인지 확인하고 정상상태가 아닌 서버에게는 트래픽을 전달하지 않게 하는 기능
- NLB
- TCP/UDP Port Alive Check
- ALB
- URL 기반 응답 체크(200)
ELB AZ 분산배치
- 활성화된 Availability Zone에는 로드 밸런서 노드가 자동으로 생성되어 배치
- 기본적으로 해당 AZ에 배치된 타겟(인스턴스)는 해당 AZ의 로드밸런서 노드가 트래픽을 처리
- ELB 생성 시 Availability Zone 활성화 필요
Cross-Zone Load Balancing
- 교차 영역 로드 밸런싱이 활성화 되면 로드 밸런서가 위치한 Availability Zone과 상관 없이 타겟 Availability Zone에 있는 모든 인스턴스에 트래픽 라우팅 가능
- Application LoadBalancer(ALB)는 Cross-Zone LB 가 기본 활성화
- Network LoadBalancer(NLB)는 기본 비활성화
- 교차 영역 로드 밸런싱이 비활성화 상태이면
- 로드 밸런서 노드가 위치한 Availability Zone에 상주하는 타겟 인스턴스에게만 라우팅 가능
- Availability Zone에 위치한 인스턴스마다 균일한 부하 분산이 어려움
Auto Scaling Group
- Scaling을 자동으로 : Auto Scaling
- Scale out : 서버 확장
- Sclae out : 서버 축소
- Auto Scaling Group 설정
- Auto Scaling은 무엇을 대상으로 할 것인가?
- Launch Template : AMI, Instance Type 등 Instance에 대한 정의
- 자동 설정 정책을 어떻게 설정할 것인가?
- Auto Scaling Group : Desired Capacity, Min/Max Size, Target Group 등 자동 확장에 대한 정의
- Auto Scaling은 무엇을 대상으로 할 것인가?
Launch Template
- 인스턴스를 배포하기 위한 정보들의 묶음
- AMI, Instance Type, Keypair, Security Group, Network와 같은 기본 정보
- IAM Role, Userdata, Tags 등 추가 정보를 미리 Template 으로 정의 가능
- 사용자는 해당 Template을 그대로 인스턴스로 배포하는 데 사용
'Programming > 클라우드' 카테고리의 다른 글
어플리케이션 배포 전략별 비교 (1) | 2025.06.20 |
---|---|
Docker (0) | 2025.06.16 |
CloudWatch (0) | 2025.05.16 |
클라우드 모니터링(리소스, 비용) (0) | 2025.05.16 |
클라우드 기본 서비스(스토리지) (0) | 2025.05.16 |