[KT AIVLE SCHOOL]

클라우드 서비스(4)

조진목_스터디 2024. 12. 6. 14:48

Amazon EC2 Auto Scaling

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

- 여러 개의 가용 영역을 사용하도록 오토 스케일링을 구성할 경우 하나의 가용 영역이 사용 불가 상태가 되면 다른 가용 영역에서 새 인스턴스를 시작하여 이에 대처할 수 있음

- 수요 변화에 따라 용량을 동적으로 조정하므로 사용한 EC2 인스턴스에 대해서만 비용을 지불

- 오토 스케일링 그룹은 리전 내 한 개 이상의 가용 영역에 속하는 EC2 인스턴스를 포함할 수 있음

- 오토 스케일링 그룹이 활성화된 가용 영역 간에 인스턴스를 고르게 분산하려고 시도

- 먼저 인스턴스 수가 가장 적은 가용영역에서 새 인스턴스를 시작하려고 시도하고 실패하는 경우 다른 가용 영역에서 인스턴스 시작 시도

 

오토 스케일링 구성 요소

- 시작 템플릿: 그룹에서 생성할 인스턴스 구성 정보를 지정하기 위해 활용, AMI, 인스턴스 유형 등 정보를 지정

- ASG 그룹: 그룹을 생성할 때 EC2 인스턴스의 최소 및 최대 인스턴스 수와 원하는 인스턴스 수 지정

- 조정 정책: 오토 스케일링 그룹을 조정하는 여러 가지 정책 설정 가능 

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

-- Scheduled Scaling: 예측 가능한 워크로드인 경우 일정 시간/날짜에 따라 조정하고자 할 경우 사용

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

 

 

Elastic Load Balancer

- 수신되는 어플리케이션  트래픽을 여러 EC2 인스턴스, 컨테이너 등으로 분산하는 관리형 로드밸런싱 서비스

- 한 리전 내 단일 가용 영역 또는 여러 가용 영역에서 어플리케이션 트래픽에 대한 부하 분산 처리

- 정상 상태의 인스턴스를 가지고 있지 않은 경우 로드밸런서는 다른 가용 영역에 있는 정상 인스턴스로 트래픽 라우팅

 

ELB 아키텍처

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

- 인터넷 경계 로드밸런서는 퍼블릭IP를 갖게 되며 DNS와 연동되어 변환

- VPC 내부 트래픽의 부하부산을 위한 내부 로드밸런서의 노드는 프라이빗 IP 주소만 가지며 내부 DNS와 연동

- 인터넷 경계 및 내부 로드밸런서는 모두 프라이빗 IP 주소를 사용하여 대상으로 요청을 라우팅하므로 대상이 퍼블릭 IP 주소 없이도 로드밸런서에서 요청을 수신할 수 있음

 

ELB 특징

- 초당 수백만 개의 요청을 로드밸런싱할 수 있으며 고가용성 구성, 자동 확장/축소, 강력한 보안성을 갖추고 있음

- HTTP, HTTPS, TCP, UDP 및 SSL 프로토콜 사용

- AWS 외부에서 유입되는 트래픽 혹은 내부 트래픽 부하분산을 위한 다양한 로드밸런서 유형 지원

- 백엔드 인스턴스에 대한 상태 확인을 통해 실시간으로 어플리케이션 상태 및 성능을 모니터링 하고 병목 현상 파악

 

ELB 내부 작동 방식

- 리스너는 로드밸런싱 규칙을 정의하는 구성요소

- 리스너에서 프로토콜과 포트를 기반으로 연결 요청을 확인하고 정의한 규칙에 따라 등록된 대상 그룹으로 요청을 라우팅

- 로드밸런서는 대상 그룹에 등록된 대상에 상태 확인을 수행하여 정상 상태로 판정된 경우에만 트래픽을 라우팅

 

상태 확인 요소

- 프로토콜, 포트

- 정상 임계값: 정상 간주를 위한 연속적인 상태 확인 성공 횟수

- 비정상 임계값: 비정상으로 간주하기 위해 필요한 연속적인 상태 확인 실패 횟수

- 제한시간: 대상으로부터 응답 대기 기간

- 간격: 상태 확인 간의 간격

- 성공코드: 대상으로부터 성공응답을 체크하는 HTTP 코드

 

 

TLS 오프로딩

- HTTPS를 통한 사용자 요청이 EC2 인스턴스로 직접 전달되게 되면 개별 EC2 인스턴스에서 TLS 암호화를 복호화하는데 많은 컴퓨팅 리소스가 필요

- 이를 해결하기 위해 어플리케이션 로드 밸런서에서 HTTPS 연결을 종료할 수 있는데 이를 위해 SSL 인증서를 로드밸런서에 설치

- 로드밸런서는 이 인증서를 사용하여 SSL 연결을 종료한 후, 클라이언트의 요청을 복호화하여 HTTP 연결로 요청을 대상으로 전송

 

 

고정 세션

- 동일한 클라이언트에서 들어오는 요청을 동일한 대상으로 라우팅하는 매커니즘

- 쿠키를 활용하여 사용자가 한 번 접속한 적이 있는 서버를 기억하고 사용자가 다시 접속하면 기존 커넥션 서버로 연결

- 사용자 요청에 EC2가 응답을 보낼 때 ALB가 응답 헤더에 쿠키를 포함시켜 전달

- 이후 사용자가 재요청 시 해당 쿠키를 동봉하여 전달하면 ALS는 커네션이 생성되었던 EC2에 연결

 

 

등록취소 지연

- Connection Draining

- 인스턴스 등록 취소 시 인스턴스에 어느 정도의 시간을 주어 현재 진행중인 요청 처리를 완료할 수 있도록 하는 기능

- 인스턴스가 draining되면 ELB는 등록 취소중인 인스턴스로는 새로운 요청을 보내지 않음

- 등록 취소 프로세스를 완료하기 전에 300초 동안 대기

 

ELB 유형

- 어플리케이션 로드밸런서

HTTP, HTTPS 트래픽을 활용하는 어플리케이션을 위한 L7 계층 로드밸런서

컨텐츠 기반, 가중치 기반 로드밸런싱 등 고급 부하분산 기능 지원

클라이언트가 IPv4 또는 IPv6를 통해 ALB에 연결할 수 있음

고정 IP 설정 불가, 보안 그룹 설정 지원

 

컨텐츠 기반 라우팅: ALB에서 지원, 리스너에서 정의된 규칙에 따라 대상으로 요청

가중치 기반 라우팅: ALB에서 지원, 리스너 규칙의 전달 작업에 둘 이상의 대상 그룹을 추가하고 각 그룹에 가중치를 지정

 

- 네트워크 로드밸런서

L4 즉, TCP와 UDP를 사용하는 요청에 대한 부하분산 목적의 로드밸런서

매우 짧은 대기 시간을 유지하면서 대규모 트래픽 처리에 적합

소스 IP/Port, 대상IP/Port 정보를 활용한 로드밸런싱

IPv4만 지원, 고정 IP 혹은 탄력적 IP 설정 지

 

- 게이트웨이 로드밸런서

방화벽, 패킷 검사, 침입 탐지 시스템 등과 같은 가상 보안 어플라이언스에 트래픽을 전달하고 관리하기 위한 서비스

- 가상 어플라이언스는 게이트웨이 로드밸런서의 대상 그룹으로 등록되며 수요에 따라 가상 어플라이언스를 자동 확장하면서 트랙픽을 분산

 

 

Route 53

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

- 전 세계 DNS 서버의 글로벌 애니캐스트 네트워크를 사용하여 최적의 위치로 사용자 요청을 자동으로 라우팅

- 전역적으로 유연한 고가용성 아키텍처를 지원하고 다양한 라우팅 유형을 통해 트래픽을 관리

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

- 전역적 부하분산 및 상태 확인을 통해 필요 시 장애 조치 수행

 

 

라우팅 정책

- 단순 라우팅: 하나의 리소스로 트래픽을 라우팅하고자 할 경우 활용

- 가중치 기반 라우팅: 할당된 다른 가중치를 기반으로 트래픽을 분할

- 지리 위치 라우팅: DNS 쿼리가 발생한 지리적 위치 기반으로 지원할 리소스 선택

- 지연 시간 기반 라우팅: 물리적 거리가 아닌 지연시간 기반으로 라우팅

- 장애 조치 라우팅: 주로 재해 복구에 사용되는 Active-Standby 장애 조치 개념

- 지리 근접 라우팅: 리소스 기준으로 트래픽을 처리할 지리적 크기를 지정

 

 

DR 체계 구현

출처: https://jibinary.tistory.com/332

 

 

Pilot Light

- 클라우드에 온프레미스와 동일한 환경을 구성해놓지만 평상 시 중지 상태로 유지

- 데이터베이스의 데이터는 자동 복제가 되도록 ㅜㄱ성

- 장애 발생 시 리소르르 실행시키고 요청 트래픽을 클라우드로 전환하여 서비스

- 상대적으로 저렴한 DR 체계이나 대응하는데 시간은 오래 걸림

 

Warm Standby

- 온프레미스의 리소스보다 작은 최소 용량의 리소스만 클라우드상에서 실행되도록 구성

- 장애 발생 시 오토 스케일링 그룹을 통해 온프레미스 리소스 개수 만큼 클라우드 리소스를 즉시 자동 확장하고 요청 트래픽을 클라우드로 전환하여 서비스

- Pilot Light보다 더 빠른 대응이 가능하나 비용은 더 발생

 

Multi-site active

- 온프레미스 시스템과 동일한  수준의 서버스 체계를 클라우드상에 구축하고 평상 시 요청 트래픽을 50%, 50%으로 서비스

- 장애 발생 시 가중치 기반 라우팅을 통해 클라우드로 요청 트래픽이 100% 전달되도록 구성

- 즉각적이고 안정적인 장애 조치가 가능하지만 비용이 가장 많이 발생

 

 


 

 

Loosely Coupled 아키텍처

- 동기식 처리

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

설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 함

 

- 비동기식 처리

서버에 요청만 보내놓고 응답이 오는 것과 상관없이 클라이언트는 대기 없이 다음 동작을 수행

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

 

 

아마존 SQS

- 어플리케이션 간 또는 어플리케이션 구성 요소 간의 메세지 전달을 위한 대기열을 제공하는 완전 관리형 메시지 대기열 서비스

- 메세지 손실 위험 없이 소프트웨어 구성 요소 간에 모든 볼륨의 메세지를 전송, 수신 및 저장

- 서비스가 비동기식으로 작동하는 기능을 제공하고 급격한 트래픽 발생 시 버퍼의 역할을 수행하며, 느슨하게 결합된 아키텍처를 구현

- 가시성 제한: 한 소비자가 특정 메세지를 폴링하여 처리하는 동안 다른 소비자가 해당 메세지를 폴링하여 중복 처리하지 못하게 하기 위한 기간을 의미

- 긴 폴링: 응답을 전송하기 전에 SQS가 대기열에서 메세지를 사용할 수 있을 때까지 대기시켜 빈 응답을 줄이므로 비용을 절감할 수 있음

 

대기열 유형

- Standard Queue: 표준 대기열, 처리량을 극대화하도록 설계되었기 때문에 수신된 순서대로 메세지가 전송된다고 보장할 수 없음, 대규모의 메세지 전송과 빠른 트랜잭션 처리가 필요한 상황에 적합

 

- FIFO Queue: 메세지가 수신되는 순서에 따라 전송, 정확히 1회처리, 표준 대기열에 비해 느리고 가격 높음

 

 

아마존 SNS

- 게시자에서 구독자로 메세지를 전송하는 완전 관리형 메세징 서비스

- 푸시 기반의 일대다 메시징을 위한 주제를 제공하여 게시자 시스템은 병렬 처리를 위해 다양한 구독자 시스템으로 메시지를 팬아웃 하는 방식

- SNS 모바일 푸시 및 이메일을 통해 대규모로 사용자에게 메세지를 전송할 수 있음

 

  AWS SQS AWS SNS
생산자와 소비자 송신과 수신 게시와 구독
배포 1 : 1 1 : N
전송 방식 Pull Push
메세지 지속성 유지 실패 시 재시도 후 삭제

 

 


 

 

 

서버리스 특징: 민첩성과 유연성을 고려하여 서버리스 기반 서비스 구축 사례가 늘어나고 있음

 

서버리스 장점

- 리소스를 상시 구동하는 방식이 아닌 요청이 있을 때만 리소스를 할당하여 코드를 빠르게 실행하고 요청이 종료되면 중단하는 방식이므로 비용 절감 효과 상승

- 자동 확장 축소가 가능하도록 설계되어 급격한 트래픽 변화에 유연한 대응이 가능

 

 

AWS Lambda

- 서버를 프리버저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 이벤트 중심의 서버리스 컴퓨팅 서비스

- 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 리소스 관리 수행

- 하루 수십 개의 이벤트에서 초당 수십만 개에 이르기까지 어떤 규모에서든 코드 실행 요청 자동으로 응답

- 사용한 만큼만 비용을 지불

 

Lambda의 특징

- Node.js, Java, Python, C#, Go, Ruby 등을 지원

- Lambda API 호출 또는 이벤트에 대한 응답으로 코드 실행

- 상태 비저장 코드 실행

- 최대 명령 실행시간: 15분, 실행 시 메모리: 최대 10GB

 

 

AWS Step Functions

- 이련의 단계로 구성된 워크플로우를 설계하고 실행할 수 있도록 함으로써, 작업을 보다 쉽게 조정할 수 있게 하는 완전 관리형 서비스

- 상호 종속성이 있는 작업을 관리하기 위한 포괄적인 워크플로우를 생성하는 데에도 유용

- 시각적 워크플로우를 사용하여 분산 어플리케이션과 마이크로 서비스의 구성 요소와 단계를 손쉽게 조정

 

상태 시스템

- 이전 단계의 상태 정보를 보유하고 있는 객체

- 상태 시스템을 활용하여 워크플로우를 구성

 


 

AWS API 게이트웨이

- 클라이언트가 백엔드 서비스에 엑세스할 수 있게 해주는 관문 역할 수행

- 개발자가 API를 손쉽게 생성, 유지 관리하기 위한 다양한 기능을 제공

- API 버전 관리, 인증 및 권한 부여 등의 엑세스 제어, 캐싱, 트래픽 관리를 비롯해 최대 수십만 건의 동시 API 호출을 수락 및 처리하는 데 관련된 작업을 지원

 

 

CORS (Cross-Origin Resource Sharing)

-  웹 브라우저에서 보안상의 이유로 다른 출처의 리소스에 접근하는 것을 제어하는 메커니즘

- 기본적으로 웹 애플리케이션은 동일 출처 정책이라는 보안 정책을 따름

- 이 정책은 스크립트가 로드된 출처와 다른 출처의 리소스에 접근하는 것을 제한

 

 

 

 

'[KT AIVLE SCHOOL]' 카테고리의 다른 글

제안 전략 수립(1)  (0) 2024.12.09
클라우드 서비스(5)  (0) 2024.12.08
클라우드 서비스(3)  (2) 2024.12.04
클라우드 서비스(2)  (2) 2024.12.03
클라우드 서비스(1)  (1) 2024.12.02