AWS 인프라 정리II
프리온보딩에서 진행한 AWS 인프라 설계 강의 내용을 정리 한 것 입니다.
AWS ECR
Amazon Elastic Container Registry
- Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰 할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스
- RDS(DB) = 데이터를 저장하는 장소
S3 = 사진, 이미지 등 파일을 저장하는 장소
ECR = 도커 이미지를 저장하는 장소
AWS ECS
Amazon Elastic Container Service
- ECS(Elastic Container Service)는 AWS에서 제공하는 컨테이너
오케스트레이션 서비스로 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확정&축소 할 수 있도록 도와주는 서비스
- AWS EC2 와 AWS Fargate 중 원하는 환경에서 실행가능
용어 정리
- Task Definition : 컨테이너의 이미지, CPU/메모리 리소스 할당 설정, port 매핑, volume 설정
- Task : Task 안에는 한 개 이상의 컨테이너들이 포함되어 있으며 ECS에서 컨테이너를 실행하는 최소 단위는 Task이다. (인스턴스화)
- Service : Task들의 Life cycle을 관리하며, 오토스케일링과 로드밸런싱을 관리
- Cluster : Task가 배포되는 Container Instance들은 논리적인 그룹
AWS Lambda
Amazon Lambda
- 서버 없이도 코드를 실행시킬 수 있는 서버리스 컴퓨팅 서비스
- 코드를 돌리기 위한 리소스를 임의로 지정할 수 있으며, 사용 리소스 x 사용 시간에 따라 과금이 된다. ex) 메모리 용량/ 코어 갯수
- 최대 15분 / 최대 10GB / 최대 6개의 Core
- 사용 예시
- 비동기 처리 (이미지 썸네일 생성)
- 예측이 불가능 한 리소스 사용 (대용량 처리 / 머신러닝)
Cold Start / Warm Start
- 기본적으로 EC2와 같은 인스턴스보다는 Latency가 높다.
- 콜드 스타트 : 배포 패키지의 크기와 코드 실행 시간의 코드의 초기화 시간에 따라 새 실행 환경으로 호출을 라우팅 할 때 지연 시간이 발생하는 람도 호출 시작 tmi) 겨울에 자동차 시동 걸때에서 유래 됨
- 5분 정도 warm하게 유지
- 계속 warm하게 유지하기 위해선 지속적으로 사용해야 하는 방법밖에 없음
상황
1. 만약에 하루에 request가 10000개 밖에 안온다 (많이 사용하지 않는 서비스 / API / 기능이다)
2. 병렬처리 (유튜브에 영상을 올리면 1080p, 720p로 인코딩 되는 상황)
AWS Lambda - Serverless
- AWS, Azure, GCP 등의 서버리스 서비스를 쉽게 사용할 수 있도록 도와주는 오픈소스 프레임 워크
- 사용 가능 서버 :
- Node 계열 - ExpressJS, NestJS 등
- Java 계열 - Spring(Spring Cloud Function)
- Python 계열 - FastAPI, Flask 등
- 소규모 / 이용자가 많지 않은 서비스에서 가격 효율적으로 이용 가능