EC2
EC2는 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스 (컴퓨터 빌리기)
기능
- 오토 스케일링 (Auto Scaling): 대상 추적 정책에 따라 자동으로 서버를 확장 또는 축소 시켜줌
* 대상 추적 정책: 원하는 임계치를 벗어나지 않도록 설정하는 것 (예를들면 평균 CPU 사용량이 70% 가 넘으면 EC2 인스턴스 한개 확장)
요금별 유형
- EC2 온디멘드 인스턴스
- 사용한 시간만큼 결제하는 후불 결제 방식
- 항상 실행되는 인스턴스이고, 범용적으로 많이 사용하는 유형
- EC2 스팟 인스턴스
- AWS의 남는 EC2를 싸게 빌려 쓰는 방식이고, 서비스가 중단 될수 있음 (AWS에서 회수 해가면)
- EC2 예약 인스턴스
- 1년 또는 3년으로 장기 약정으로 예약해서 비용을 할인받는 방식
ELB
ELB는 트래픽을 여러 서버로 적절하게 분배해주는 자동 분산 서비스
유형
- 애플리케이션 로드 밸런서 (ALB)
- 웹 애플리케이션(HTTP, HTTPS)에서 주로 사용
- Sticky Session 기능: 요청자의 세션을 동일한 서버에 계속 요청하게 해주는 기능
- WAF(웹 애플리케이션 방화벽)에 연결 가능
- HTTP, HTTPS 프로토콜을 지원한다. (TCP, UDP 프로토콜은 지원하지 않음)
- 네트워크 로드 밸런서 (NLB)
- TCP와 UDP 트래픽을 처리
- 아주 빠른 응답 속도
- 게이트웨이 로드 밸런서 (GLB)
- 보안 전용(예를들면 네트워크 방화벽) 로드 밸런서. 네트워크 보안 장비의 부하분산을 위한 서비스
CloudFront
CloudFront는 컨텐츠(이미지, 파일 등)를 캐싱해서 전세계 사용자에게 빠른 속도로 컨텐츠를 제공해주는 서비스
Global Accelerator
Global Accelerator는 전세계 사용자에게 빠른 네트워크 통신을 제공하는 서비스
ECS
ECS는 Docker 컨테이너를 쉽게 운영하게 해주는 서비스
유형
-
EC2 기반의 ECS
- EC2를 직접 관리하는 방식이라서 세부적인 설정은 할 수 있으니 관리 부담이 큼
-
Fargate 기반의 ECS
- 완전 관리형 서비스라서 관리 부담이 적음
- 서버의 축소/확장도 AWS가 알아서 관리해주기 때문에 예측 불가능한 트래픽을 유연하게 대응할 수 있음
Lambda
Lambda는 AWS가 서버를 관리하고 개발자는 코드만 올리면 실행되는 서비스
특징
-
서버는 AWS가 관리하고 개발자는 코드만 올리면 되기 때문에 서버리스 라고 부른다.
-
요청이 올 때만 서버가 실행되고 요청이 없을 때는 서버가 중단한 채 기다리기 때문에 비용 절감이 가능
-
요청이 없다가 갑자기 들어오면 실행 환경을 구성하느라 지연 시간이 발생한다. 이런 현상을 보고 콜드 스타트 라고 함
-
콜드 스타트를 해결하기 위해서는 프로비저닝된 동시성을 설정하면 됨. 프로비저닝된 동시성이란 실행 환경을 미리 띄워두는 방식
-
최대 15분 까지 실행 시간을 보장함. 그 이상은 실행 못함
Step Functions
Step Functions는 여러 작업을 순서대로 실행시킬 수 있게 연결해주는 서비스
특징
-
실행 상태, 재시도, 오류 처리, 실패를 자동으로 관리
-
Lambda와 달리 15분 이상의 장기 작업이 가능
-
여러 단계의 작업을 처리해야 하는 경우 자주 사용
API Gateway
API Gateway는 외부로부터 받는 요청을 백엔드(ALB, Lambda, ECS, EC2)로 안전하게 전달하는 서비스
유형
- API Gateway REST API
- 비용이 비쌈 / 지연 시간 보통 / 기능 다양함
- JWT 인증 기능 없음
- API Gateway HTTP API
- 비용이 저렴 / 지연 시간 낮음 / 기능 제한
- JWT 인증 기능을 기본적으로 제공
기능
- 엣지 최적화 (Edge-optimized): 전세계 사용자의 API 응답 속도를 줄여준다.
SQS
SQS는 메시지(요청)를 큐에 쌓아 순서대로 처리하는 서비스
특징
-
일련의 작업을 순서대로 처리할 수 있음
-
결합을 느슨하게 할 수 있음 (= 결합도 낮춤 = 의존성 최소화 = 독립적으로 분리)
-
메시지를 큐에 쌓아둘 수 있어서 갑자기 몰리는 트래픽에도 대응 가능
-
데이터가 절대 손실되지 않고 정확하게 처리해야 할 때 자주 활용
유형
-
표준 대기열
- 높은 처리량이 필요하고, 순서가 크게 중요하지 않을 때
-
선입선출 대기열
- 메시지를 보낸 순서대로 정확히 딱 한 번 처리해야 할 때
SNS
SNS는 같은 메시지를 여러 대상에게 전달하고 싶을 때 사용하는 서비스 (인스타그램이나 페이스북이랑 다른 단어)
사용 예시
- 주문이 완료되면 이메일 발송, 로그 저장, 주문 처리를 하고 싶을 때 AWS SNS를 사용한다.
EventBridge
EventBridge는 AWS 서비스끼리 기능을 연결해주는 서비스
사용 예시
- S3에 이미지 파일 업로드 완료 후 Lambda로 이미지 리사이징을 처리하고 싶을 때, S3 -> EventBridge -> Lambda 로 연결
Backup
AWS Backup은 다양한 AWS 서비스의 백업을 자동화/관리할 수 있게 해주는 서비스