sungwony

[AWS] 고가용성 아키텍처(High Availability Architect) 본문

cloud & devops/amazon web service

[AWS] 고가용성 아키텍처(High Availability Architect)

일상이상삼상 2020. 1. 26. 21:41

이 글은 Udemy의 AWS Certified Solutions Architect - Associate 2019 강의를 개인 학습용도로 정리한 글입니다


Elastic Load Balancer

 

로드 밸런서는 물리적 또는 가상의 장치로 네트워크상의 부하를 균등하게 분배하는 것을 돕기 위해 고안되었다. 로드 밸런서의 종류는 다음과 같다.

- Application Load Balancer

: HTTP와 HTTPS 트래픽 로드 밸런싱에 최적화 되어있다. 응용계층(Application Layer, Layer 7)에서 동작하고 어플리케이션을 인식한다. 어플리케이션 로드밸런서는 지능적이고 더 진보된 요청 라우팅을 생성하여 명시된 요청을 특정 웹 서버로 전송할 수 있다.

- Network Load Balancer

: 네트워크 로드 밸런서는 높은 성능이 필요한 TCP 트래픽을 로드 밸런싱 하는데 가장 적합하다. 전송계층(Transport Layer, Layer 4)에서 동작하고 초당 수백만의 요청을 처리할 수 있으며 극도로 낮은 지연시간을 유지한다.

- Classic Load Balancer

: 클래식 로드 밸런서는 레거시 엘라스틱 로드 밸런서이다. HTTP/HTTPS 어플리케이션의 로드 밸런싱을 수행하고 X-Forwarded, Sticky Sessions와 같은 Layer 7의 관련 기능들을 사용할 수 있다. 또한 순수한 TCP 프로토콜에 의존하는 어플리케이션을 위해 엄격한 Layer 4 로드 밸런싱을 사용할 수 있다. 만약 어플리케이션이 응답을 멈추면 ELB(Classic Load Balancer)는 504 에러를 반환한다. 이것은 어플리케이션에 문제가 있다는 의미이다. 이것은 웹서버 계층이나 데이터베이스 계층의 문제일 수 있다. 어플리케이션이 어디서 실패했는지 확인하고 가능한 경우 스케일-업 또는 스케일-아웃한다.

: 만약 엔드유저의 IPv4 주소가 필요하면 X-Forwarded-For 헤더에서 확인할 수 있다

 

Load Balancer & Health Check

 

- ELB에 의한 인스턴스 모니터링은 InService, OutofService로 보고된다

- 헬스 체크는 인스턴스의 상태를 토킹하여 체크한다

- 로드 밸런서는 DNS Name을 소유하며 IP 주소를 할당하지 않는다

 

Load Balancer 고급 이론

 

- Sticky Session 이란?

: Classic Load Balancer는 각 요청을 독림적으로 등록된 EC2 인스턴스에 최소한의 부하로 라우팅한다. Sticky session은 유저의 세션을 특정 EC2 인스턴스에 바인드 할 수 있도록 해준다. 이것은 유저로 부터의 모든 요청이 세션 동안 같은 인스턴스로 전송되는 것을 보장한다. Sticky Session은 Application Load Balancer에도 사용할 수 있지만 트래픽은 Target Group Level로 보내진다.

- Path Patterns 이란?

: 사용자는 요청을 URL 패스에 기반하여 포워딩 하는 규칙을 갖는 리스너를 생성할 수 있다. 이것은 path 기반 라우팅으로 알려져있다. 만약 마이크로 서비스를 실행한다면 path 기반 라우팅을 사용하여 트래픽을 여러 백앤드 서비스로 라우팅할 수 있다. 예를들어 일반 요청을 하나의 타겟 그룹으로, 이미지 랜더 요청을 다른 타겟 그룹으로 라우팅 할 수 있다.

- Sticky Session은 유저가 같은 EC2 인스턴스로 고정하도록 한다

- Cross Zone 로드 밸런싱은 여러 AZ로 로드 밸런스 할 수 있게 한다

- Path pattern은 요청 URL에 기반하여 다른 EC2 인스턴스로 라우팅할 수 있게 한다

 

HA(High Available) Architecture

 

- 항상 실패를 위한 디자인을 고려

- Multiple AZ 와 Multiple Region을 사용

- RDS의 Multi-AZ 와 Read Replica의 차이를 이해하기

- Scale-out 과 Scale-up의 차이를 이해하기

- 문제를 주의깊게 읽고 비용 요소를 항상 고려

- S3 Storage class의 차이를 이해하기

 

Cloud Formation

 

- 클라우드 환경을 매우 빠르게 완벽히 스크립팅하는 방법

- Quick Start는 AWS 솔루션 아키텍트가 이미 구축한 Cloud Formation 템플릿을 활용해 복잡한 환경을 매우 빠르게 생성한다

 

Elastic Beanstalk

 

Elastic Beanstalk을 통해 AWS 클라우드에서 어플리케이션이 실행되는 인프라를 걱정하지 않고 어플리케이션을 빠르게 배포하고 관리할 수 있다. 단순히 어플리케이션을 업로드 하면 Elastic Beanstalk는 프로비저닝 용량과 로드 밸런싱, 스케일링, 어플리케이션 상태 모니터링까지 자동으로 처리한다.

'cloud & devops > amazon web service' 카테고리의 다른 글

[AWS] Serverless  (0) 2020.03.05
[AWS] Application  (0) 2020.02.09
[AWS] VPC 2/2  (0) 2020.01.24
[AWS] VPC 1/2  (0) 2020.01.15
[AWS] Route53  (0) 2019.12.30