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)에서 실행 됨