원티드 프리온보딩 챌린지 BE 5월 - AWS 2강

Woojin·2023년 5월 12일
0

🤔컴퓨팅 파워(서버) : AWS EC2, Elastic Beanstalk, ECS, Fargate, Lambda(Serverless)의 개요


AWS EC2란?

Amazon Elastic Cloud Compute) : 가장 기본적인 형태의 클라우드 컴퓨팅(=클라우드 컴퓨터 한 대)

  • 온디맨드 : 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 EC2를 사용하기 원하는 사용자
    vs 스팟 인스턴스 : 시작 및 종료 시간이 자유로운 애플리케이션(배치나 머신러닝)
  • Saving plans : 1년 또는 3년 동안의 일정 사용량 약정을 조건으로 함(EC2나 Fargate 사용량에 대해서 저렴한 요금을 제공하는 유연한 요금제)

AWS Elastic Beanstalk

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

  • Elastic Beanstalk = EC2 + 배포 버전 관리(롤백) + Elastic Load Balancer + 모니터링 + 로그 트래킹 + 오토 스케일링
  • 다양한 언어 지원(.NET/PHP/Java/Ruby/Node.js/Python/Docker/Go)

Amazon Fargate

  • 컨테이너를 실행하기 위해 가상 머신의 클러스터를 프로비저닝, 구성 또는 조정할 필요가 없다.
    서버 유형을 선택하거나 클러스터를 조정할 시점을 결정하거나 클러스터 패킹을 최적화할 필요가 없다.
  • 이전에는 컨테이너를 실행하기 위해서 컨테이너를 실행할 인스턴스(EC2)를 실행시켜야만 했지만 Fargate는 이런 수고를 덜어준다.

AWS ECR(Elastic Container Registry)

안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스

  • ECR(도커 이미지 저장 장소) vs RDS;DB(데이터 저장 장소) vs S3(사진, 이미지 등 파일 저장 장소)

  • 하지만 왜 Fargate 대신에 EC2나 Elastic Beanstalk를 쓸까?
    --> 가격과 성능때문, 만약 2 CPU/8gb 일 때 EC2는 0.104USD라면 Fargate는 0.226USD~ 따라서 가격과 성능을 따져봤을 때 EC2나 Elastic Beanstalk가 적당하다고 판단할 수 있다.


AWS ECS(Elastic Container Service)

컨테이너 오케스트레이션 서비스

  • 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확장 & 축소할 수 있도록 도와주는 서비스
  • AWS EC2와 Fargate 중 원하는 환경에서 실행 가능

Lambda

서버 없이도 컴퓨팅을 실행시킬 수 있는 서버리스 컴퓨팅 서비스

  • 람다는 함수를 실행시키기 위한 기술이다. 코드 뭉치 실행기

  • 최대 15분/최대 10GB/최대 6개의 core
    예) 비동기 처리(이미지 썸네일 생성), 예측이 불가능한 리소스 사용(대용량 처리/머신러닝 등)

  • 그런데 왜 항상 켜져있어야 하는 EC2나 Elastic Beanstalk 대신에 가성비 있는 Lambda를 선택하지 않을까?

-> 기본적으로 EC2와 같은 인스턴스 보다는 latency가 높다.
-> 갑자기 많은 호출을 처리해야 하거나 유휴시간을 보낸 후에는 Cold Start(실행에 시간이 걸림)를 하기 때문이다.

profile
개발 공부하는 일상

0개의 댓글