[KT AIVLE] DX트랙 클라우드 서비스(14주차) 복습(클라우드 서비스: 탄력성/고가용성 아키텍처, 모니터링, 결합해제 아키텍처)

728x90

클라우드 서비스 복습

탄력성 / 고가용성 아키텍처

 

부하분산 및 자동조정

 

탄력성 확보

  • 수요에 따른 요구사항 변화를 즉시 반영하기 위해 자동으로 컴퓨팅 리소스를 확장 및 축소하여 대응
 

 

Amazon EC2 Auto Scaling

    • 변화하는 트래픽 요구를 처리할 수 있는 적정 용량을 갖추도록 지원(가용성 향상)
    • Auto Scaling 구성할 경우 하나의 가용영역이 장애가 발생할 경우 다른 가용영역에서 새 인스턴스 시작하여 대 (내결함성 향상)
    • 수요 변화에 따라 용량을 동적으로 변화시켜 EC2 인스턴스에 대해서만 비용을 지불(비용 최적화)

 

조정정책(Scaling Policy)

 

1) Dynamic Scaling

  • 조건 변화에 따라 동적으로 조정이 필요할 경우에 유용

2) Sheduled Scaling

  • 예측 가능한 워크로드의 경우 일정에 따라 조정하고자 할 경우

 

3) Predictive Scaling

  • AI 기반의 조정 방식으로 규칙을 수동으로 조정할 필요가 없음

 

Elastic Load Balancer

  • Elastic Load Balancer(ELB)는 수신되는 애플리케이션 트래픽을 여러 EC2 인스턴스, 컨테이너 등으로 분산하는 관리형 로드밸런싱 서비스
  • 가용 영역 하나가 사용할 수 없는 상태가 되거나 정상 상태의 인스턴스를 가지고 있지 않은 경우 로드밸런서는 다른 가용 영역에 있는 정상 상태의 인스턴스로 트래픽을 라우팅

 

상태 확인(Health Check)

  • 주기적인 상태확인을 통해 대상이 정상 상태로 판정되어야 요청을 라우팅

 

고정 세션(Stickey Session)

  • 고정 세션은 동일한 클라이언트에서 동일한 대상으로 요청을 라우팅하는 매커니즘으로 쿠키를 활용하여 사용자가 한번 접속한 적이 있는 서버를 기억해서 사용자가 다시 접속하더라도 기존 커넥션이 있었던 서버로 연결해주는 기능

 

등록 취소 지연(Deregistration Delay)

  • 인스턴스가 등록 취소 또는 비정상적인 상태일 때 인스턴스에 어느 정도의 시간을 주어 현재 진행 중인 요청 처리를 완료할 수 있도록 하는 기능

 

Application Load Balancer

  • HTTP, HTTPS 트래픽을 활용하는 애플리케이션을 위한 L7계층 로드밸런서로 컨텐츠 기반, 가중치 기반 로드밸런싱 등 고급 부하분산 기능 지원
  • 클라이언트는 IPv4, IPv6을 통해 ALB에 연결할 수 있지만 고정 IP 설정이 불가하고, 보안 그룹 설정은 지원

 

컨텐츠 기반 라우팅

  • ALB는 컨텐츠 기반 라우팅을 지원
  • 리스너에서 정의한 규칙에 따라 대상으로 요청을 라우팅하는 방법 결정

가중치 기반 라우팅

  • ALB는 가중치 기반 라우팅도 지원
  • 리스너 규칙의 전달 작업에 둘 이상의 대상 그룹을 추가하고 각 그룹에 가중치 지정
  • 새 앱 버전에 대한 블루-그린 배포 시 활용 가능

 

Network Load Balancer

  • L4 즉, TCP와 UDP를 사용하는 요청에 대한 부하분산 목적의 로드밸런서
  • 매우 짧은 대기 시간을 유지하면서 대규모 트래픽 처리에 적합
  • 소스 IP/Port, 대상 IP/Port 정보를활용한 로드 밸런싱
  • IPv4만 지원하고 고정 IP 혹은 탄력적 IP 설정 지원 

 

Gateway Load Balancer

  • 게이트웨이 로드밸런서는 방화벽(트래픽 분석 및 차단), 패킷 검사, 침입 탐지 시스템 등과 같은 가상 보안 어플라이언스에 트래픽을 전달하고 관리하기 위한 서비스
  • 가상 어플라이언스는 게이트웨이 로드밸런스의 대사 그룹으로 등록되며 수요에 따라 가상 어플라이언스를 자동 확장하면서 트래픽을 분산

 

Route53

  • 높은 가용성과 확장성이 뛰어난 클라우드 DNS 서비스
  • 전 세계 DNS 서버의 글로벌 애니캐스트 네트워크를 사용하여 최적의 위치로 사용자 요청을 자동으로 라우팅
  • 전역적으로 유연한 고가용성 아키텍처를 지원하고 다양한 라우팅 유형을 통해 트래픽을 관리할 수 있음
  • 사용자 요청을 여러 리전에 있는 EC2 인스턴스, ELB, S3 버킷 등에 효과적으로 연결

 

라우팅 정책

 

결합 해제 아키텍처(Loosely Coupled Arch)

동기식(Synchronous)처리
요청 - 서버처리 - 응답 - 다음 요청처리
비동기식(Asynchronous)cjfl
요청 - (서버처리 진행 중) 다음 요청 처리
- 클라이언트에서 요청을 보냈을 때 서버가 처리 후 응답이 돌아와야 다음 동작을 수행(그동안 클라이언트는 대기)

- 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 함
- 서버에 요청만 보내 놓고 응답이 오는 것과 상관없이 클라이언트는 대기 없이 다음 동작을 수행

- 처리시간이 걸리더라도 그동안 다른 작업을 할수 있으므로 자원을 효율적으로 사용할 수 있음

 

대기열 유형

 

표준 대기열(Standard Queue)

  • 처리량을 극대화 하도록 설계되었기 때문에 수신된 순서대로 메시지가 전송된다고 보장할 수 없음

FIFO 대기열(First-In-First-Out Quenue)

  • 메시지가 수신되는 순서에 따라 전송(정확한 순서를 보존)

 

가시성 제한 시간(Visibility Timeout)

  • 한 소비자가 특정 메시지를 폴링하여 처리하는 동안 다른 소비자가 해당 메시지를 폴링하여 중복처리 하지 못하게 하기 위한 기간(기본 제한시간 30초, 0초 ~ 최대 12시간 이내)

 

SQS와 SNS

 

AWS 실습 내용

부하 분산 및 자동 조정

  1. Application Load Balancer 생성
  2. 시작템플릿구성
  3. Auto Scaling 그룹생성
  4. 작동 테스트

 

비동기식 병렬처리

  1. SNS 주제 생성
  2. SQS 대기열 생성 및 구독
  3. 구독 확인
  4. S3 이벤트 알림 생성
  5. SNS 주제에 이메일 알림 추가
728x90