aws lambda와 api gateway를 통한 serverless architecture 특집 (윤석찬)
TRANSCRIPT
Weeks
클라우드 컴퓨팅 기술의 변화
Minutes
Amazon EC2
Seconds
Amazon EC2 Containers Services
Milliseconds
AWS LambdaOn-Premises
10%
15%
7%
12%
20%
9%
콘테이너를 통한 EC2 인스턴스 효율화
App 1 App 2
App 3 App 4
App 5 App 6
6
12 345
Amazon EC2 Container Service
Amazon Simple Storage Service(S3)의 장점
• 2006 AWS 시작시, 가장 범용적인 서비스로 시작• 무제한 용량의 내구성 높은 객체 스토리지로서 다양한 쓰임새• 정적 웹호스팅, 이미지/동영상 저장, 로그 저장, VM 이미지 백업 등
단순함 확장성 낮은 비용 신뢰성 빠른 속도
인터넷 스케일 애플리케이션 개발 빌딩 블록
EMAIL MESSAGING
SEARCHAMAZON S3
STORAGE
AWS LAMBDA
FUNCTIONS
AMAZON DYNAMODB
DATA STORE
ENCODING
AWS Lambda란?
높은 확장성 및빠른 서비스 연동
서버 필요 없이코드만 배포
함수 실행 시100ms 단위 과금
서버 없는, 이벤트 처리 방식의 컴퓨팅 서비스AWS Lambda = 클라우드 함수 기반 마이크로서비스
AWS Lambda : 동작 원리
Bring your own code• Node.js, Java, Python• Java = Scala Clojure 등의
어떠한 JVM기반 언어.• Bring your own libraries
유연한 호출 경로• Event 기반 호출 옵션 (여러
AWS 서비스들과 통합)• REST API 호출 가능 (Amazon
API Gateway와 연동)
단순한 자원 모델• 128MB부터 1.5GB까지 64MB
단위로 메모리 설정• 할당된 메모리에 비례하여
CPU 및 네트웍 자원 할당• 실제 사용량 내역 보고
효과적인 권한 통제• AWS IAM (Identity and
Access Management) Role을사용한 실행 권한 설정
• AWS 이벤트 소스에 대한자원 정책
마이크로서비스(Microservices)로의 진화
• 내부 서비스를 작게 분리하여느슨하게 연결
• 작은 서비스간 인터랙션 결합제거 (decoupling) 후, API로통신
• 빠르고 민첩한 개발 및 클라우드기반 확장 가능
4. API Gateway를 통한 손쉬운 REST 서비스 만들기
Internet
Mobile apps
Websites
Services
API Gateway
AWS Lambda functions
API Gateway cache
Endpoints on Amazon EC2/AWS Elastic Beanstalk
Any other publicly accessible endpoint
Amazon CloudWatchmonitoring
버전 관리 및 출시 단계별 관리 가능
개발자를 위한 API 키 발급 및 관리 용이
API 접근 인증을 위한 Signature Ver.4 지원
백엔드 보호를 위한 요청 모니터링 및 제한
AWS Lambda 활용
Amazon API Gateway 소개
API Gateway 활용 이점
API 응답을 손쉽게 캐싱해서 제공
Amazon CloudFront를 활용하여 지연 속도 감소 및DDoS 방어력 향상
iOS, Android 및 JavaScript SDK 자동 제작
Swagger 표준 형식 지원
요청/응답 데이터 변형 가능
AWS LambdaAmazon API Gateway
AWS 기반 Serverless 빌딩 블럭
서버 없는 확장성높은 컴퓨팅 서비스
마이크로서비스를위한 REST API 처리
+αAWS Services
Serverless Frameworks의 출현
https://github.com/serverless/serverless https://github.com/claudiajs/claudia
결론
AWS Lambda를 통한 서버 관리 없는 클라우드 함수 실행 가능Amazon API Gateway를 통한 손쉬운 API 관리 가능
AWSLambda + API Gateway + 다른 AWS 관리형 서비스= Serverless Architecuture 로 진화 가능!