KT-Aivle School (AI)/클라우드

[클라우드] AWS 고가용성 구현 (Region, AZ, ELB, ASG)

똔똔똔 2022. 11. 4. 23:15

 

Chaper 3. AWS 고가용성 구현

 

가용성
• 서비스 가용성이라고도 표현
• 워크로드를 사용할 수 있는 시간의 비율

 

가용성이 99%라면 굉장히 안정적인 것처럼 보이지만 실제론 연간 약 4일 정도 시스템이 다운된다.

 

 

고가용성
• High Availability
• 높은 가용성
• 지속적으로 구현한 시스템이 정상적으로 운영이 되는 성질
• 장애 또는 고장이 나더라도 복구를 해서 서비스를 지속할 수 있는 능력

 

AWS가 고가용성을 유지하기 위한 3가지 기능

 

 

 

 

Region / Availability Zone

• AWS 는 Region 과 Availability Zone 으로 이루어져 있음

 

멀티 확장 중인 AWS

 

 

 

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간 모든 데이터 트래픽은 기본 암호화

 

서울의 경우 4개

 

 

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

 

NAT: 공인,사설 IP개념

 

 

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)

AWS의 로드밸런서, 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)

스케일링을 자동으로