AWS 시작하기 (3) :: 컴퓨팅 파와 관련

ggyu_55·2023년 5월 11일
0

AWS 종류

목록 보기
3/4

AWS 인프라의 전체적인 모습

1. 인프라 관련 요소

AWS API Gateway, AWS S3, AWS ELB, AWS CloudFront, AWS Secret Manager, 스냅샷

2. 컴퓨팅 파워 (서버)

AWS EC2, AWS Elastic Beanstalk, AWS ECS, AWS Fargate, AWS Lambda (Serverless)

3. Message Queue

AWS SQS, AWS MSK, AWS Kinesis

4. Database

AWS RDS, AWS DynamoDB, AWS ElastiCache


2-1. AWS EC2

Amazon Elastic Cloud Compute

  • 가장 기본적인 형태의 클라우드 컴퓨팅 (= 클라우드 컴퓨터 한 대)

  • 온디맨드: 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 Amazon EC2를 사용하기 원하는 사용자

  • 스팟 인스턴스: 시작 및 종료 시간이 자유로운 애플리케이션

  • Saving Plans: 1년 또는 3년 기간의 일정 사용량 약정을 조건으로 EC2 및 Fargate 사용량에 대해 저렴한 요금을 제공하는 유연한 요금

2-2. AWS Elastic Beanstalk

Amazon Elastic Beanstalk

  • AWS 클라우드에서애플리케이션을신속하게 배포하고 관리할 수 있는 서비스(애플리케이션코드를 업로드하기만하면 작동)

  • Elastic Beanstalk = EC2 + 배포 버전 관리 (롤백) + Elastic Load Balancer + 모니터링 + 로그 트래킹 + 오토 스케일링

  • 다양한 언어 지원: .NET / PHP / Java / Ruby / Node.js / Python / Docker / Go

2-3. AWS Fargate

Amazon Fargate

  • Fargate를 사용하면 더 이상 컨테이너를 실행하기 위해 가상 머신의 클러스터를 프로비저닝, 구성 또는 조정할 필요가 없습니다. 따라서 서버 유형을 선택하거나, 클러스터를 조정할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다.

  • 이전에는 컨테이너를 실행하기 위해서는 컨테이너를 실행할 Instance(EC2)를 실행시켜야하였지만, AWS Fargate는 이러한 수고를 덜어 줌

왜 Fargate 대신에 EC2를 쓸까? 왜 Fargate 대신에 Elastic Beanstalk을 쓸까?

  • 비용과 성능을 절충해가며 최적의 서비스를 선택하는 것!!

2-4. AWS ECR

Amazon Elastic Container Registry

  • Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스

  • RDS (DB) = 데이터를 저장하는 장소, S3 = 사진, 이미지 등 파일을 저장하는 장소, ECR = 도커 이미지를 저장하는 장소

2-5. 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
  • 사용 예시
  • 비동기 처리 (이미지 썸네일 생성)
  • 예측이 불가능 한 리소스 사용 (대용량 처리 / 머신러닝)

왜 항상 켜져있어야 하는 EC2 / Elastic Beanstalk 대신에 가성비 있는 Lambda를 선택하지 않을까?
1. 하루에 request가 10000개 밖에 안 오니까 (많이 사용하지 않는 서비스 / API / 기능이다)
2. 병렬처리를 하려고 하니까 (youtube에 영상을 올리면 1080p, 720p로 인코딩 되는상황)

Cold Start / Warm Start

  • 기본적으로 EC2와 같은 인스턴스보다는 Latency가 높다.

  • 콜드 스타트: 배포 패키지의 크기와 코드 실행 시간 및 코드의 초기화 시간에 따라 새 실행 환경으로 호출을 라우팅할 때 지연 시간이 발생하는 람다 호출 시작 (겨울에 자동차 시동 걸때에서 유래 됨)

  • 5분정도 warm하게 유지

  • 계속 warm하게 유지하기 위해선 지속적으로 사용해야 하는 방법밖엔 없음

0개의 댓글