참고
Serverless Archirecture
모바일 애플리케이션 예제
NOTE
시스템 구조도!
•
요구사항
◦
HTTPS로 REST API 노출
▪
API Gateway로 HTTP Endpoint 설정
◦
서버리스 아키텍쳐
▪
DynamoDB사용
◦
사용자는 S3에서 자신의 폴더와 직접 상호 작용할 수 있어야 한다.
◦
사용자는 관리형 서버리스 서비스를 통해 인증해야 한다.
▪
인증을 위한 Amazon Cognito사용
◦
데이터베이스는 확장되어야 하고 읽기 처리량이 높아야 한다.
아키텍쳐 확장!
•
S3 버킷에 사용자 액세스 권한을 주려면 어떻게 해야하는가?
◦
Cognito에 인증을 요청할 때 STS를 이용하면 임시 자격 증명을 제공할 수 있다.
◦
이 자격 증명을 모바일 클라이언트에게 반환하면 S3에 접근이 가능해진다!
서버리스 웹사이트 예제
NOTE
최종 아키텍쳐!
•
요구사항
◦
이 웹사이트는 전 세계적으로 확장되어야 한다.
▪
S3는 특정 리전에 있는데, 이를 글로벌로 노출하기 위해 CDN사용!
◦
블로그는 거의 쓰지 않지만 자주 읽는다.
▪
DAX Caching 구현
◦
일부 웹사이트는 순전히 정적 파일이고 나머지는 동적 REST API이다.
▪
REST API 구현을 위해 Lambda사용
◦
가능한 경우 캐싱을 구현해야 한다.
◦
구독하는 모든 신규 사용자는 환영 이메일을 받아야 한다.
▪
DynamoDB의 변경을 감지해 SES를 사용해 이메일을 보낸다!
◦
블로그에 업로드된 모든 사진에는 미리보기 이미지가 생성되어야 한다.
▪
S3버킷으로 바로 가져오는 방법
▪
람다 함수를 호출해서 섬네일을 생성해 넣음
▪
SQS나 SNS 이용
Micro Services Architecture
NOTE
MSA 구조!
•
동기 패턴
◦
API 게이트웨이
◦
로드 밸런서
•
비동기 패턴
◦
SQS, SNS
◦
Kinesis
◦
Lambda 트리거
•
마이크로 서비스의 과제
◦
각각의 새로운 마이크로서비스 생성에 대한 반복되는 오버헤드
◦
서버 밀도/활용 최적화 문제
◦
여러 마이크로서비스의 여러 버전을 동시에 실행하는 복잡성