참고
AWS Serverless
NOTE
Serverless는 서버가 없는 것이 아니라 서버가 보이지 않게 하거나 서버를 프로비저닝 하지 않는 것을 의미한다!
•
서버리스 서비스를 사용하는 개발자는 서버 관리할 필요가 없음
•
서버리스는 유휴 상태일 떄 컴퓨터 비용을 발생시키지 않는다!
•
서버리스 서비스 종류
◦
Lambda
◦
DynamoDB
◦
Cognito
◦
API Gateway
◦
S3
◦
SNS, SQS, KDF
◦
Aurora
◦
Fargate
AWS Lambda
NOTE
서버를 구축 및 프로비저닝 하는 과정을 거치지 않고 코드를 실행하는 서비스!
많은 Labmda를 실행시켜도 AWS가 자동으로 스케일링 해줌!
•
최대 15분의 실행 제한 시간이 존재한다.
•
메모리 할당량은 128MB ~ 10GB, 메모리는 1MB씩 증가
•
최대 1000건까지 람다 함수의 동시 실행이 가능하고 요청에 따라 늘어날 수 있다.
•
메모리가 증가되면 CPU와 네트워크 품질 등 성능이 향상
•
Lambda 컨테이너 이미지는 컨테이너 이미지 자체에 Lambda Runtime API를 구현해야 실행 가능
Lambda와 연계해서 사용할 수 있는 AWS 서비스
Lambda@Edge란?
NOTE
함수를 실행하여 CloudFront가 제공하는 콘텐츠를 사용자가 지정하여 AWS위치의 함수를 최종 사용자와 더 가깝게 실행한다!
•
Lambda@Edge는 CloudFront CDN을 통해서 특정 리전이 아닌 전 세계의 모든 리전에 람다함수를 배치한다!
◦
응답성이 뛰어난 애플리케이션을 구축하기 위함
◦
CDN을 통해 전송되는 콘텐츠를 사용자 지정할 수 있다.
CloudFront
•
빠른 콘텐츠 전달
•
캐시 키 정규화
•
헤더 조작
•
URL 재작성 또는 리다이렉션
Lambda@Edge
•
콘텐츠 전달 과정 사용라 로직 추가
•
조정 가능한 CPU, 메모리
•
파일 시스템 엑세스 또는 HTTP 요청 본문에 대한 엑세스
AWS Lambda 네트워킹
NOTE
•
기본적으로 Lambda 함수를 시작하면 VPC외부에서 시작되기 떄문에 VPC내로 접근하지 못함
접근 안된다..
public ip나 DynamoDB는 됨
•
VPC내로 접근하기 위해선 VPC ID, 서브넷 및 보안 그룹을 정의해야 한다.
•
Lambda는 서브넷에 ENI를 생성해 VPC내 항목에 접근이 가능하다!
ENI를 공유해서 접근!
•
Lambda함수가 RDS에 직접 접근하게 되면 함수가 너무 많이 생성되었다 사라져 부하상승
RDS 프록시 이용!
◦
RDS 프록시를 이용해 연결을 한 곳으로 모으고 RDS와 연결해 연결 수를 줄인다.