bestone888 2024. 12. 5. 23:39

1. Elasticity & HA

Amazon EC2 Auto scaling

    - 애플리케이션이 변화하는 트래픽 요구를 처리할 수 있는 적정 용량을 갖추도록

    - 여러 개의 가용 영역 사용하도록 auto scaling 구성,

       하나의 가용 영역 사용 불가시 다른 가용 영역에서 새 인스턴스 시작

 

Auto Scaling 구성 요소

1. 시작 템플릿

    - 그룹에서 생성할 인ㅅ턴스 구성 정보 지정

2. ASG 그룹

    - 그룹 생성 시 EC2 인스터스의 최소 및 최대 인스턴수 수와 원하는 인스턴스 수 지정

3. 조정 정책

    - auto scaling 그룹 조정하는 여러 정책 설정 가능

 

Auto Scaling 그룹

    - auto scaling 그룹 크기는 사용자가 설정

    - 원하는 용량에 맞게 인스턴스 수 유지

    - 인스턴스에 대한 주기적인 상태 확인

    - 비정상 상태가 되면 비정상 인스턴스 종료 후 다른 인스턴스 자동 시작

 

조정 정책

1. dynamic scaling: 조건 변화에 따라 동적으로 조정 필요한 경우

2. scheduled scaling: 예측 가능한 워크로드에 따라 조정

3. predictive scaling: Ai 기반 조정으로 규칙 수동 조절할 필요 없음

 

Elastic Load Balancer

    - 수신되는 애플리케이션 트래픽을 분산

 

ELB 아키텍처

    - 용도에 따라 외부 또는 내부 로드밸런서 활용

    - 인터넷 경계 로드밸런서는 public ip를 갖고 DNS와 연동

    - 내부 로드밸런서의 노드는 private ip만 갖고 내부 DNS와 연동

    - 인터넷 경계 로드밸런서, 내부 로드밸런서는 모두 private ip 주소 사용

    -> 대상이 퍼블릭 ip 주소 없이도 로드밸런서에서 요청 수신 가능

 

ELB 내부 작동 방식

1. 리스너: 로드밸런싱 규청 정의하는 구성요소

2. 리스터에서 프로토콜과 포트를 기반으로 연결 요청 확인 후 정의한 규칙에 따라 등록된 대상 그릅으로 요청 라우팅

3. 대상 그룹에 등록된 대상에 상태 확인(health check)을 수행, 정상판정 경우만 트래픽 라우팅

 

ELB 유형

1. Application Load Balancer

    - L7 게층 로드밸런서

    - 컨텐츠 기반, 가중치 기반 로드밸런싱

2. Network Load Balancer

    - 매우 짧은 대기 시간, 대규모 트래픽 처리

3. Gateway Load Balancer

 

컨텐츠 기반 라우팅

    - 리스너에서 정의한 규칙에 따라 대상으로 요청을 라우팅하는 방법 결정

 

가중치 기반 라우팅

    - 리스너 규칙의 전달 작업에 둘 이상의 대상 그룹 추가, 각 그룹에 가중치를 지정

 

Route53

    - 높은 가용성과 확장성이 뛰어난 클라우드 DNS

    - 최적의 위치로 사용자 요청 자동 라우팅

    - 사용자 요청을 여러 리전에 있는 EC2 인스턴스, ELB, S3 버킷에 효과적으로 연결

 

라우팅 정책

1. 단순 라우팅

2. 가중치 기반 라우팅

3. 지리 위치 라우팅

4. 지연 시간 기반 라우팅

5. 장애 조치 라우팅

6. 지리 급접 라우팅

 

DR 체계 구현

1. Pilot Light

2. Warm standby

3. Multi-stie active/active

 

2. Loosely Coupled Arch

1. 동기식 처리

    - 클라이언트에서 요청 보냈을 때 서버가 처리 후 응답이 돌아와야 다음 동작 수행

    - 설계 간단, 직관적

 

2. 비동기식 처리

    - 서버에 요청보내고 대기 없이 다음 동작 수행

    - 자원 효율적 사용

 

 

Amazon SQS

애플리케이션 간 또는 애플리케이션 구성 요소 간의 메시지 전달을 위한 대기열 제공

 

대기열 유형

1. Standard Queue

    - 처리량 극대화, 수신된 순서대로 메시지 전송 보장 불가

    - 대규모 메시지 전송, 빠른 처리

 

2. FIFO Queue

    - 메시지 수신 순서에 따라 전송

    - 처리속도 느림, 가격 높음

 

 

Amazon SNS

    - Publisher에서 subscriber로 메시지 전송하는 완전 관리형 메세징 서비스

    - 대규모로 사용자에게 메시지 전송 가능

 

 

Serverless

특징

1. fully abstracted

2. not resource-driven

3. pay only for what you use

 

장점

1. 리소스 요청이 있을 때만 리소스를 할당하여 코드를 빠르게 실행, 요청 종료되면 중단

    -> 비용 절감

2. 자동 확장/축소 -> 급격한 트래픽 변화에 유연한 대응 가능

 

AWS Lambda

    - 서버 프로비저닝하거나 관리하지 않고도 코드 실행할 수 있게 해주는 서버리스 컴퓨팅 서비스

    - 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정

    - 코드 및 보안 패치 배포, 로깅 등 리소스 관리

 

AWS Step Functions

    - 일련의 단계로 구성된 워크플로우 설계 & 실행

    - 상호 종속성이 있는 작업 관리하기 위한 워크플로우 생성에 유용

 

AWS API Gateway

API Gateway 개념 및 필요성

    - 마이크로 서비스는 세분화된 많은 API 생성 관리 필요

    - API Gateway 활용해 API 생성

 

CORS 설정

    - Cross Origin Resource Sharing

    - 보안상의 이유로 교차출처 HTTP 요청 제한됨 -> 교차 출처 리소스 공유 매커니즘 필요

    - 기본적으로 다른 도메인의 API 호출 불가

    - OPTIONS 메서드를 통해 다른 도메인 리소스에 요청 가능한지 확인