Programming/클라우드

클라우드 고가용성(로드 밸런서, 오토스케일링)

Boxya 2025. 5. 16. 00:05

[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
      • AZ별 Subnet 구성
        • VPC 구성 시 Availability Zone에 따라 Subnet 구성
          • 각각의 Subnet을 AZ 수 만큼 생성
          • Total Subnet 수  = AZ Count X 용도별 Subnet
          • 인스턴스 생성 시 각 사용처에 맞는 Subnet을 선택 후 AZ 별로 분산 구성
      • AZ 장애 발생 시
        • Availability Zone 장애 시 동일 용도의 인스턴스 및 서비스 Set가 다른 Availability Zone에 구성되어 ㅣㅇㅆ으므로 가용성을 높일 수 있음

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 등 자동 확장에 대한 정의

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