서버리스 서비스를 사용하는 개발자는 서버를 관리할 필요가 없다는 뜻으로 단지 코드(함수)를 배치하면 됨 즉, 서버리스란 서버가 없는 것이 아니라 서버가 보이지 않거나 서버를 프로비저닝하지 않는 것
원래의 서버리스는 FaaS(Function as a Service)를 뜻했지만, 지금의 서버리스는 더 많은 것을 의미
서버리스가 처음 개발된 건 AWS Lambda이며 현재는 원격 관리되는 것(데이터베이스, 메시징, 스토리지 등)을 모두 포함하며 서버를 프로비저닝하지 않는 모든 것을 포함함
Serverless in AWS
예) 사용자가 S3 버킷에서 정적 콘텐츠를 얻을 때 웹 사이트 혹은 CloudFront와 S3로 전달 그리고 사용자 신원 정보를 보관하는 Cognito에 로그인한 후, API Gateway를 통해 사용자는 REST API를 호출하고 API Gateway는 람다 함수를 호출한 후, 람다 함수는 DynamoDB에서 데이터를 저장하고 회수
AWS에서의 서버리스로는 AWS Lambda DynamoDB AWS Cognito AWS API Gateway Amazon S3 AWS SNS & SQS (서버를 관리하지 않고 자동으로 스케일링) AWS Kinesis Data Firehose (처리량에 맞춰 스케일링) Aurora Serverless (관리 서버 없이도 데이터베이스가 온디맨드로 스케일링) Step Functions (ECS의 서버리스 기능) Fargate(ECS의 서버리스 기능으로 도커 컨테이너를 실행할 인프라를 프로비저닝하지 않음)이 존재