[클라우드] AWS 고가용성 구현 (Region, AZ, ELB, ASG)
Chaper 3. AWS 고가용성 구현
가용성
• 서비스 가용성이라고도 표현
• 워크로드를 사용할 수 있는 시간의 비율
고가용성
• 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 내 Availability 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 구성 예 - AZ별 Subnet 구성
• VPC 구성 시, Availabiliy Zone 에 따라 Subnet 구성
– 각각의 Subnet 을 AZ 수 만큼 생성
– Total Subnet 수 = AZ Count X 용도별 Subnet
– 인스턴스 생성시 각 사용처에 맞는 Subnet 을 선택 후, AZ 별로 분산 구성
• Availability Zone 장애시, 동일 용도의 인스턴스 및 서비스 Set가 다른 Availbility Zone 에 구성되어 있으므로, 가용성을 높일 수 있음
Load Balancer
• 인입되는 트래픽을 특정 알고리즘 기반으로 다수의 서버로 분산 시켜주는 장비
AWS ELB
• Elastic Load Balancer (ELB)
ELB 특징
• Region 내 인스턴스 및 다양한 서비스로 트래픽 분배 서비스
• 다수의 Availability Zone 으로 트래픽 분배
• HTTP/S 웹 기반 트래픽, TCP/S 프로토콜 기반
• Backend 인스턴스에 대한 Health Check 수행
• 고가용성 기반 L4/L7 서비스
• Availability Zone 분산 및 Traffic 증가 시 자동 Scale-out 기능 지원
ELB 4 Type
Scale-out
• 트래픽 증가시, 서비스에 투입되는 서버를 증설하여 각 서버가 처리하는 부하를 낮추는 방식
• Web based 서비스의 경우 많이 사용하는 구성으로 Session 이나 Data 처리 영역 없이 Stateless 한 서버에서 주로 사용
Scale-in
• 트래픽 감소 시, 배포된 서버를 제거하는 방식
• 낭비되는 리소스를 줄임으로 비용 최적화 목적
ELB 알고리즘
• 어떤 규칙으로 트래픽을 인스턴스로 분배할 것인가
– Round Robin (RR)
– Hashing
– Weighted RR (가중치를 설정하여 RR) (서버의 퍼포먼스에 따라 가중치 달리 설정)
– Least Connection (LC) (최소 연결 방식) (적은 놈부터)
– Weighted LC
AWS NLB, ALB
• NLB(Network Load Balancer)
– L4 Load Balancer, TCP/UDP (포트기반으로 트래픽 분산)
• ALB(Application Load Balancer)
– L7 Load Balancer, HTTP/HTTPS (주소기반)
ELB 헬스체크 기능
• 주기적으로 서버가 정상 상태인지 확인하고 정상상태가 아닌 서버에게는 트래픽을 전달 하지 않게 하는 기능
• NLB
– TCP/UDP Port Alive Check
• ALB
– URL 기반 응답 체크(200)
Auto Scaling Group (ASG)
스케일링을 자동으로