Search

#Serverless

 Serverless

서버를 사용자가 관리할 필요가 없다는 의미
실제로 서버는 존재하며 서버 인프라 운영은 AWS등의 클라우드 회사에서 담당
AWS에서 용량조정, 프로비저닝, 패치 등의 인프라를 관리
사용자는 필요한 애플리케이션을 구축해서 사용하기만 하면 됨
대표적인 서비스
AWS Lambda, AWS Fargate
Amazon S3, DynamoDB, Amazon Aurora Serverless
Amazon SNS, Amazon SQS, API Gateway

 Lambda

코드를 실행하여 동작하는 서버리스 컴퓨팅
EC2는 서버를 시작하고, 애플리케이션을 설치하고 서버가 계속 실행되며 사용자가 직접운영 해야함
Lambda는 AWS에서 서버 운영에 필요한 모든 인프라를 관리
Lambda 사용자는 코드를 입력하여 실행만 하면 된다.
Lambda 요청할 때만 시스템을 사용하는 온디맨드 방식의 이벤트 중심의 실행
Lambda는 사용한 만큼만 비용을 지불 (코드를 실행한 횟수와 실행한 시간으로 과금)
EC2는 Auto Scaling기능을 사용해 서버를 확장하지만 Lambda는 사용량이 늘어나면 자동으로 용량이 확장되므로 용량 계획이 필요 없고 확장성이 뛰어남
다양한 프로그래밍 언어를 지원 (Node.js, Python, Java, C#, Ruby 등)
lambda는 독립적으로 사용하지 않고 다른 서비스와 결합하여 사용됨
결합 서비스 : API Gateway, Kinesis, DynamoDB, SNS, SQS, S3, CloudFront 등

 Batch

AWS에서 배치 컴퓨팅 작업을 효율적으로 손쉽게 실행할 수 있게 해주는 서비스
배치 컴퓨팅은 수동 개입 없이 하나 이상의 컴퓨터에서 일련의 프로그램(”작업”)을 실행하는 것
제출된 작업에 따라 리소스를 효율적으로 프로비저닝함으로써 용량 제한을 해소하고, 컴퓨팅 비용을 줄이며, 결과를 신속하게 제공
자동으로 컴퓨팅 리소스를 프로비저닝하고 워크로드의 양 및 규모에 따라 워크로드 분배를 최적화
작업 실행을 위한 배치 컴퓨팅 소프트웨어나 서버 클러스터를 설치하여 관리할 필요가 없음
배치 작업은 Docker 컨테이너 이미지로 정의 되어 Elastic Container Services(ECS)에서 실행 됨