SlideShare a Scribd company logo
AWS Lambda 100% 활용하기
김상필 | 솔루션즈 아키텍트
목차
• 서버리스 아키텍처
• AWS Lambda
• 주요 기능
• 서버리스 아키텍처 설계 패턴
• 모범 사례 및 팁
서버리스 아키텍처
진화하는 아키텍처
모노리틱 아키텍처
(Monolithic)
• 획일적
• 자유가 없는
서비스 중심 아키텍처
(SOA)
• 모듈화
• 기능별 분리
마이크로서비스
(Microservices)
• 최소한의 기능 분리
• 신속한 개발/배포
마이크로서비스 아키텍처를 위한 도구들
웹 서버
코드 라이브러리
웹 서비스/어플리케이션 프레임웍
구성관리 도구
API 관리 플랫폼
배포 패턴
CI/CD 패턴
컨테이너
또 다른 도구, 도구, 도구……
AWS도 함께 합니다
Amazon EC2
오토 스케일링
Elastic Load Balancing
EC2의 자동 복구
AWS Trusted Advisor
AWS Elastic Beanstalk
AWS OpsWorks
Amazon EC2 Container Service
수많은 AWS 서비스들……
…이러한 도구들 및 혁신들의 많은 것들이
여전히 공유되는 의존관계 에 얽혀 있습니다.
하지만…
Servers서버의 물리적인 장애를
어플리케이션에서 어떻게 처리하지?
내 서버들에 대한 접근을
어떻게 통제할 수 있지?
서버의 수를 언제
늘려야 하지?
내 서버의 용량을
언제 늘려야 하지? 내 예산에 맞는
서버의 크기는?
내 서버들의 남아있는 용량은
얼마나 되지?
(AAHHHHHHHHH!!)
서버리스 아키텍처
완전 관리형
• 프로비져닝 없음
• 관리요소 없음
• 높은 가용성
개발자 생산성
• 중요한 코드에 집중
• 빠르게 혁신
• 시장에 빠르게 접근
지속적인 스케일링
• 자동으로
• 스케일 업/다운
… 부하 증감을 예측하기 어려운 게임
서비스에서는 서버없는 마이크로서비스
아키텍처 접근이 더욱 중요 ...
AWS Lambda
AWS Lambda
서버리스, 이벤트 처리 방식의 컴퓨팅 서비스
Lambda = 서버리스 마이크로서비스
AWS Lambda : 서버리스 컴퓨팅
서버 프로비저닝/운영 없이 코드를 실행; 사용한 컴퓨팅 시간 만큼만 지불.
이벤트로 실행:
• 직접 동기/비동기식 호출
• Amazon S3 버킷에 객체 저장
• Amazon API 게이트웨이를 통한 호출
• 그 외 다양한 이벤트…
다음의 작업을 손쉽게 수행:
• 실시간 데이터 처리 수행
• 유연한 백엔드 서비스 구축
Lambda : 동작 원리
1. 업로드 2. 트리거 3. 실행 4. 사용요금
데이터 소스
변경 사항 폴링을 위한
서버 플릿
소스 리스닝 작업 큐 푸시 작업 큐 풀
데이터 처리를 위한
작업자 서버 플릿
부하 대응을
위한
오토스케일
링
S3 객체
Amazon Kinesis 레코드
DynamoDB 테이블
SNS 메시지
IoT 장치
…
고가용성을
위한 다중
가용영역
분산
트래픽
분산을 위한
로드밸런서
서버를 통한 데이터 처리 아키텍처
어플리케이션 코드
데이터 소스
Lambda 함수 연결
이것으로 끝!
Lambda가 수행
리스닝/폴링
작업 큐 관리
오토스케일링
고가용성
로드 밸런싱
서버리스 데이터 처리 아키텍처
어플리케이션 코드
데모
Amazon S3 Bucket Events AWS Lambda
Original image Thumbnailed image
1
2
3
데모: 이미지 리사이징
Tutorial: Using AWS Lambda with Amazon S3 -
http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html
데모: 서버리스 비디오 스트리밍 아키텍처
AWS
Lambda
Amazon S3
비디오 파일 입수
PUT 이벤트
Lambda 트리거
Amazon Elastic
Transcoder
트랜스코딩
Job 시작
Amazon S3
여러 bit-rate
HLS 스트리밍
Amazon
CloudFront
시청자
주요 기능
Lambda : 동작 원리
Bring your own code
• Node.js, Java, Python
• Java = Scala, Clojure 등의
어떠한 JVM기반 언어.
• Bring your own libraries
유연한 호출 경로
• Event 혹은
RequestResponse 호출
옵션
• 여러 AWS 서비스들과
통합
단순한 자원 모델
• 128MB부터 1.5GB까지
64MB 단위로 메모리 설정
• 할당된 메모리에 비례하여
CPU 및 네트웍 자원 할당
• 실제 사용량 내역 보고
효과적인 권한 통제
• AWS IAM (Identity and
Access Management)
Role을 사용한 실행 권한
설정
• AWS 이벤트 소스에 대한
자원 정책
Lambda : 동작 원리
제작 기능
• AWS SDK 포함
• 인바운드 네트웍 처리
• 프로세스, 쓰레드, /tmp,
소켓 …
배포 옵션
• 콘솔의 WYSIWIG
편집기를 사용하여 직접
제작/배포
• 코드를 zip 파일로 묶어
Lambda 서비스 혹은
S3로 전송
Stateless 기능
• S3/Amazon
DynamoDB/Amazon
ElastiCache를 사용한 저장
• 인프라스트럭쳐와의
연관성 없음 (로그인 불가)
모니터링 및 로깅
• Amazon CloudWatch
메트릭 – 요청 수, 에러 수,
처리 시간, 처리량
• Amazon CloudWatch
Log를 사용하여 로깅
리소스 사이징
• 23가지 “power levels” 제공
• 높은 레벨일수록 더 많은 메모리와 CPU 파워 제공
• 128 MB, 가장 낮은 CPU 파워
• 1.5 GB, 가장 높은 CPU 파워
• 더 높은 파워 레벨 = CPU를 많이 쓰거나 갑자기 실행되는 작업에 더
빠른 실행 시간
• 가격은 파워 레벨에 따라 변화
• 100ms부터 5분(300초)까지 코드 실행
• 프리티어 : 백만 건 무료 처리, 400,000GB-s/월 무료 처리
예약 Lambda 함수
• 특정 시간에 수행 혹은 반복되는
주기로 수행
• 실행 주기 단위로 설정
• 또는, 표준 cron syntax 사용
• Amazon SQS 혹은 다른 데이터
소스를 폴링
• CLI와 SDK 지원
VPC 접근
• Lambda 함수를 실행할 VPC 선택
• VPC 접근 시 사용할 서브넷 및 보안 그룹 선택
• 사용자의 Lambda 함수가 프라이빗 자원에 접근 가능
• Amazon Elasticache
• Amazon RDS
• 프라이빗 EC2 엔드포인트
• VPC 내 모든 자원
배포 관리: 버저닝 - 개발
Labmda function에 하나 이상의 버전 퍼블리싱
Lambda 함수 배포는 여전히 손쉬움:
• 변경 시 코드 업로드
• 변경 적용
• 마지막 업데이트가 최신
exports.handler =
function(event,context)
{context.succeed(“bye”);}
exports.handler =
function(event,context)
{context.succeed(“hi”);}
배포 관리: 버저닝 - 배포
효과적인 프로덕션 Lambda 함수 코드 관리
개발 중 필요 시 마다 신규 버전 배포:
• 개발 버전을 번호 버전으로 복제 배포
• 배포된 버전은 읽기 전용 (구성 포함)
• 함수 별 간단한, 정수 버전
exports.handler =
function(event,context)
{context.succeed(“bye”);}
exports.handler =
function(event,context)
{context.succeed(“hi”);}
1
2
Versions
배포 관리: 버저닝 - 별칭
서로 다른 버전에 대한 변경 가능한 별칭 사용
특정 버전에 대하여 이름으로 별칭(alias) 지정
• 함수 소유자가 ARNs를 코드에 매핑
• 클라이언트 변경 없이 업데이트 가능
exports.handler =
function(event,context)
{context.succeed(“bye”);}
exports.handler =
function(event,context)
{context.succeed(“hi”);} prod
dev
Aliases
배포 관리: 버저닝 – Lambda 함수 호출
다양한 버전의 Lambda 함수 사용: 개발, 베타, 프로덕션
개발 버전:
FunctionName (or)
FunctionName:$LATEST
특정 버전:
FunctionName:1
FunctionName:2
명명된 버전:
FunctionName:production
FunctionName:v1_2_3_4
서버리스 아키텍처 설계 패턴
서버리스 웹 앱 : API Gateway + Lambda
정적 컨텐츠 제공 : S3
동적 컨텐츠 제공 : Lambda
HTTPS 억세스 및 인터페이스 : API Gateway
저장소 : DynamoDB
Dynamic Content
in AWS Lambda
Data Stored in
Amazon
DynamoDB
API GatewayStatic content in
Amazon S3
비동기 프로세싱: S3 + Lambda
New data
available
Amazon S3 AWS Lambda Amazon S3
데이터베이스 트리거: DynamoDB + Lambda
New data
available
Amazon DynamoDB AWS Lambda
Amazon
DynamoDB
Amazon
Redshift
실시간 분석 처리: Kinesis + Lambda
고속 대용량 데이터 수집 : Kinesis
Lambda 내 “Kinesis” 블루프린트 활용
수집 및 집계 결과 저장 : Redshift, S3, DynamoDB
Data Ingestion with
Amazon Kinesis
(PUT record)
Records retrieved by
AWS Lambda
Your code runs once
per [batch of] records
Amazon
S3
Amazon
DynamoDB
Smart
Devices
Click
Stream
Log
Data
Amazon
Redshift
서버리스 폴링: SQS + Lambda
AWS Lambda
Scheduled
Job
Amazon SQS
(or rabbitMQ
or webhook)
백엔드 : AWS IoT + AWS Lambda
다양한 Lambda 트리거
AWS
CloudFormation
Custom Resources
Amazon SES
Actions
Amazon Cognito
Sync Triggers
… and the list will
continue to grow!
AWS IoT ActionsAWS Lambda
Scheduled Events
Amazon Echo
Skills
Amazon SWF
Tasks
모범 사례 및 팁
AWS Lambda 모범 사례 및 팁
1. 함수의 크기 제한
• 특히 Java (JVM 시작 시간 소요)
• 함수가 또다른 ‘monolith’가 되지 않도록 주의
• 첫번째 실행은 시간이 걸릴 수 있음 (스케줄 기반 Lambda 활용)
2. Node – 비동기(asynchronous) 실행에 주의
3. 컨테이너 재사용을 가정하지 말 것
• Lambda 컨테이너가 재사용될 수도 있음.
• 그러나 어플리케이션에서 가정하지 말 것 (Stateless 유지)
• 그러나 컨테이너 재사용시에 구성 로딩, 커넥션 유지, 인-메모리 캐시 등 활용
가능
AWS Lambda 모범 사례 및 팁
4. 내장 디스크 (/tmp) 활용 가능
5. 배포를 위하여는 함수에 대하여 명명 규칙/버전/별칭 등 사용
6. 내장된 로깅을 활용
• 서비스 제공 컨텍스트에 대한 디테일 포함
7. 필요 시 커스텀 메트릭 생성
• 운영 또는 비지니스 중심
8. Role 활용하여 권한 관리
9. 구성 정보 등은 외부에 관리 가능
• DynamoDB 활용 가능
지금 바로 해보세요
Go build something!
Amazon API
Gateway
AWS Lambda Amazon
DynamoDB
206년 10월 14일(금) | 강남구 역삼동 GS타워 12층
Zombie Apocalypse Workshop
서버리스 마이크로서비스 구축 워크샵 - 서울(Seoul)
https://aws.amazon.com/ko/events/zombie-reg-seoul-oct-2016/
감사합니다
AWS Lambda 100% 활용하기 :: 김상필 솔루션즈 아키텍트 :: Gaming on AWS 2016

More Related Content

PDF
AWS Lambda 내부 동작 방식 및 활용 방법 자세히 살펴 보기 - 김일호 솔루션즈 아키텍트 매니저, AWS :: AWS Summit ...
PDF
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
PDF
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
PDF
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
PDF
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
PDF
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
PDF
AWS KMS 에서 제공하는 봉투암호화 방식의 암호화 및 사이닝 기능에 대한 소개와 실습 - 신은수, AWS 솔루션즈 아키텍트 :: AWS...
PDF
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
AWS Lambda 내부 동작 방식 및 활용 방법 자세히 살펴 보기 - 김일호 솔루션즈 아키텍트 매니저, AWS :: AWS Summit ...
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
AWS Lake Formation을 통한 손쉬운 데이터 레이크 구성 및 관리 - 윤석찬 :: AWS Unboxing 온라인 세미나
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
AWS KMS 에서 제공하는 봉투암호화 방식의 암호화 및 사이닝 기능에 대한 소개와 실습 - 신은수, AWS 솔루션즈 아키텍트 :: AWS...
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개

What's hot (20)

PDF
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
PDF
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
PDF
AWS Fargate on EKS 실전 사용하기
PDF
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
PDF
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
PDF
API Gateway를 이용한 토큰 기반 인증 아키텍처
PDF
[AWS Builders] AWS상의 보안 위협 탐지 및 대응
PDF
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
PDF
Kurly는 AWS를 어떻게 사용하고 있을까? - 성공적 리테일 디지털 트랜스포메이션 사례 - 박경표 AWS 솔루션즈 아키텍트 / 임상석...
PDF
AWS를 위한 도커, 컨테이너 (이미지) 환경 보안 방안 - 양희선 부장, TrendMicro :: AWS Summit Seoul 2019
PPTX
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
PDF
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
PDF
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
PDF
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
PDF
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
PPT
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
PDF
Amazon Aurora 100% 활용하기
PDF
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
PDF
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
PPTX
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
AWS Backup을 이용한 데이터베이스의 백업 자동화와 편리한 복구방법
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
AWS Fargate on EKS 실전 사용하기
KB국민은행은 시작했다 -  쉽고 빠른 클라우드 거버넌스 적용 전략 - 강병억 AWS 솔루션즈 아키텍트 / 장강홍 클라우드플랫폼단 차장, ...
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
API Gateway를 이용한 토큰 기반 인증 아키텍처
[AWS Builders] AWS상의 보안 위협 탐지 및 대응
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
Kurly는 AWS를 어떻게 사용하고 있을까? - 성공적 리테일 디지털 트랜스포메이션 사례 - 박경표 AWS 솔루션즈 아키텍트 / 임상석...
AWS를 위한 도커, 컨테이너 (이미지) 환경 보안 방안 - 양희선 부장, TrendMicro :: AWS Summit Seoul 2019
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
Amazon Aurora 100% 활용하기
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
Ad

Similar to AWS Lambda 100% 활용하기 :: 김상필 솔루션즈 아키텍트 :: Gaming on AWS 2016 (20)

PDF
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
PDF
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
PDF
Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016
PPTX
Serverless Architecture - 김현민
PDF
AWS re:Invent 특집(1) – 파이선(Python) 개발자를 위한 AWS 활용 방법 (윤석찬)
PDF
AWS CLOUD 2017 - AWS 신규 서비스를 통해 본 클라우드의 미래 (김봉환 솔루션즈 아키텍트)
PDF
찾아가는 AWS 세미나(구로,가산,판교) - AWS에서 작은 서비스 구현하기 (김필중 솔루션즈 아키텍트)
PDF
AWS 서버리스 컴퓨팅-김필중 :: 2015 리인벤트 리캡 게이밍
PDF
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
PDF
AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트)
PDF
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
PDF
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
PPTX
AWS lambda, step function, cloud watch
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
PDF
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
PDF
서버리스 아키텍처 패턴 및 모범 사례- 강승욱, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
PPTX
Aws lambda 와 함께 서버리스 서비스 만들기
PDF
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
PDF
Minsu.kang aws amazon-webservice-220120-0935-204
PDF
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016
Serverless Architecture - 김현민
AWS re:Invent 특집(1) – 파이선(Python) 개발자를 위한 AWS 활용 방법 (윤석찬)
AWS CLOUD 2017 - AWS 신규 서비스를 통해 본 클라우드의 미래 (김봉환 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS에서 작은 서비스 구현하기 (김필중 솔루션즈 아키텍트)
AWS 서버리스 컴퓨팅-김필중 :: 2015 리인벤트 리캡 게이밍
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트)
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
AWS 신규 데이터 분석 서비스 - QuickSight, Kinesis Firehose 등 (양승도) :: re:Invent re:Cap ...
AWS lambda, step function, cloud watch
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
서버리스 아키텍처 패턴 및 모범 사례- 강승욱, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
Aws lambda 와 함께 서버리스 서비스 만들기
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
Minsu.kang aws amazon-webservice-220120-0935-204
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
Ad

More from Amazon Web Services Korea (20)

PDF
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
PDF
[D3T1S06] Neptune Analytics with Vector Similarity Search
PDF
[D3T1S03] Amazon DynamoDB design puzzlers
PDF
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
PDF
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
PDF
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
PDF
[D3T1S02] Aurora Limitless Database Introduction
PDF
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
PDF
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 2
PDF
AWS Modern Infra with Storage Roadshow 2023 - Day 1
PDF
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
PDF
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
PDF
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
PDF
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
PDF
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
PDF
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
PDF
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
[D3T1S01] Gen AI를 위한 Amazon Aurora 활용 사례 방법
[D3T1S06] Neptune Analytics with Vector Similarity Search
[D3T1S03] Amazon DynamoDB design puzzlers
[D3T1S04] Aurora PostgreSQL performance monitoring and troubleshooting by use...
[D3T1S07] AWS S3 - 클라우드 환경에서 데이터베이스 보호하기
[D3T1S05] Aurora 혼합 구성 아키텍처를 사용하여 예상치 못한 트래픽 급증 대응하기
[D3T1S02] Aurora Limitless Database Introduction
[D3T2S01] Amazon Aurora MySQL 메이저 버전 업그레이드 및 Amazon B/G Deployments 실습
[D3T2S03] Data&AI Roadshow 2024 - Amazon DocumentDB 실습
AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 1
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...

AWS Lambda 100% 활용하기 :: 김상필 솔루션즈 아키텍트 :: Gaming on AWS 2016

  • 1. AWS Lambda 100% 활용하기 김상필 | 솔루션즈 아키텍트
  • 2. 목차 • 서버리스 아키텍처 • AWS Lambda • 주요 기능 • 서버리스 아키텍처 설계 패턴 • 모범 사례 및 팁
  • 4. 진화하는 아키텍처 모노리틱 아키텍처 (Monolithic) • 획일적 • 자유가 없는 서비스 중심 아키텍처 (SOA) • 모듈화 • 기능별 분리 마이크로서비스 (Microservices) • 최소한의 기능 분리 • 신속한 개발/배포
  • 5. 마이크로서비스 아키텍처를 위한 도구들 웹 서버 코드 라이브러리 웹 서비스/어플리케이션 프레임웍 구성관리 도구 API 관리 플랫폼 배포 패턴 CI/CD 패턴 컨테이너 또 다른 도구, 도구, 도구……
  • 6. AWS도 함께 합니다 Amazon EC2 오토 스케일링 Elastic Load Balancing EC2의 자동 복구 AWS Trusted Advisor AWS Elastic Beanstalk AWS OpsWorks Amazon EC2 Container Service 수많은 AWS 서비스들……
  • 7. …이러한 도구들 및 혁신들의 많은 것들이 여전히 공유되는 의존관계 에 얽혀 있습니다. 하지만…
  • 8. Servers서버의 물리적인 장애를 어플리케이션에서 어떻게 처리하지? 내 서버들에 대한 접근을 어떻게 통제할 수 있지? 서버의 수를 언제 늘려야 하지? 내 서버의 용량을 언제 늘려야 하지? 내 예산에 맞는 서버의 크기는? 내 서버들의 남아있는 용량은 얼마나 되지? (AAHHHHHHHHH!!)
  • 9. 서버리스 아키텍처 완전 관리형 • 프로비져닝 없음 • 관리요소 없음 • 높은 가용성 개발자 생산성 • 중요한 코드에 집중 • 빠르게 혁신 • 시장에 빠르게 접근 지속적인 스케일링 • 자동으로 • 스케일 업/다운
  • 10. … 부하 증감을 예측하기 어려운 게임 서비스에서는 서버없는 마이크로서비스 아키텍처 접근이 더욱 중요 ...
  • 12. AWS Lambda 서버리스, 이벤트 처리 방식의 컴퓨팅 서비스 Lambda = 서버리스 마이크로서비스
  • 13. AWS Lambda : 서버리스 컴퓨팅 서버 프로비저닝/운영 없이 코드를 실행; 사용한 컴퓨팅 시간 만큼만 지불. 이벤트로 실행: • 직접 동기/비동기식 호출 • Amazon S3 버킷에 객체 저장 • Amazon API 게이트웨이를 통한 호출 • 그 외 다양한 이벤트… 다음의 작업을 손쉽게 수행: • 실시간 데이터 처리 수행 • 유연한 백엔드 서비스 구축
  • 14. Lambda : 동작 원리 1. 업로드 2. 트리거 3. 실행 4. 사용요금
  • 15. 데이터 소스 변경 사항 폴링을 위한 서버 플릿 소스 리스닝 작업 큐 푸시 작업 큐 풀 데이터 처리를 위한 작업자 서버 플릿 부하 대응을 위한 오토스케일 링 S3 객체 Amazon Kinesis 레코드 DynamoDB 테이블 SNS 메시지 IoT 장치 … 고가용성을 위한 다중 가용영역 분산 트래픽 분산을 위한 로드밸런서 서버를 통한 데이터 처리 아키텍처 어플리케이션 코드
  • 16. 데이터 소스 Lambda 함수 연결 이것으로 끝! Lambda가 수행 리스닝/폴링 작업 큐 관리 오토스케일링 고가용성 로드 밸런싱 서버리스 데이터 처리 아키텍처 어플리케이션 코드
  • 18. Amazon S3 Bucket Events AWS Lambda Original image Thumbnailed image 1 2 3 데모: 이미지 리사이징 Tutorial: Using AWS Lambda with Amazon S3 - http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html
  • 19. 데모: 서버리스 비디오 스트리밍 아키텍처 AWS Lambda Amazon S3 비디오 파일 입수 PUT 이벤트 Lambda 트리거 Amazon Elastic Transcoder 트랜스코딩 Job 시작 Amazon S3 여러 bit-rate HLS 스트리밍 Amazon CloudFront 시청자
  • 21. Lambda : 동작 원리 Bring your own code • Node.js, Java, Python • Java = Scala, Clojure 등의 어떠한 JVM기반 언어. • Bring your own libraries 유연한 호출 경로 • Event 혹은 RequestResponse 호출 옵션 • 여러 AWS 서비스들과 통합 단순한 자원 모델 • 128MB부터 1.5GB까지 64MB 단위로 메모리 설정 • 할당된 메모리에 비례하여 CPU 및 네트웍 자원 할당 • 실제 사용량 내역 보고 효과적인 권한 통제 • AWS IAM (Identity and Access Management) Role을 사용한 실행 권한 설정 • AWS 이벤트 소스에 대한 자원 정책
  • 22. Lambda : 동작 원리 제작 기능 • AWS SDK 포함 • 인바운드 네트웍 처리 • 프로세스, 쓰레드, /tmp, 소켓 … 배포 옵션 • 콘솔의 WYSIWIG 편집기를 사용하여 직접 제작/배포 • 코드를 zip 파일로 묶어 Lambda 서비스 혹은 S3로 전송 Stateless 기능 • S3/Amazon DynamoDB/Amazon ElastiCache를 사용한 저장 • 인프라스트럭쳐와의 연관성 없음 (로그인 불가) 모니터링 및 로깅 • Amazon CloudWatch 메트릭 – 요청 수, 에러 수, 처리 시간, 처리량 • Amazon CloudWatch Log를 사용하여 로깅
  • 23. 리소스 사이징 • 23가지 “power levels” 제공 • 높은 레벨일수록 더 많은 메모리와 CPU 파워 제공 • 128 MB, 가장 낮은 CPU 파워 • 1.5 GB, 가장 높은 CPU 파워 • 더 높은 파워 레벨 = CPU를 많이 쓰거나 갑자기 실행되는 작업에 더 빠른 실행 시간 • 가격은 파워 레벨에 따라 변화 • 100ms부터 5분(300초)까지 코드 실행 • 프리티어 : 백만 건 무료 처리, 400,000GB-s/월 무료 처리
  • 24. 예약 Lambda 함수 • 특정 시간에 수행 혹은 반복되는 주기로 수행 • 실행 주기 단위로 설정 • 또는, 표준 cron syntax 사용 • Amazon SQS 혹은 다른 데이터 소스를 폴링 • CLI와 SDK 지원
  • 25. VPC 접근 • Lambda 함수를 실행할 VPC 선택 • VPC 접근 시 사용할 서브넷 및 보안 그룹 선택 • 사용자의 Lambda 함수가 프라이빗 자원에 접근 가능 • Amazon Elasticache • Amazon RDS • 프라이빗 EC2 엔드포인트 • VPC 내 모든 자원
  • 26. 배포 관리: 버저닝 - 개발 Labmda function에 하나 이상의 버전 퍼블리싱 Lambda 함수 배포는 여전히 손쉬움: • 변경 시 코드 업로드 • 변경 적용 • 마지막 업데이트가 최신 exports.handler = function(event,context) {context.succeed(“bye”);} exports.handler = function(event,context) {context.succeed(“hi”);}
  • 27. 배포 관리: 버저닝 - 배포 효과적인 프로덕션 Lambda 함수 코드 관리 개발 중 필요 시 마다 신규 버전 배포: • 개발 버전을 번호 버전으로 복제 배포 • 배포된 버전은 읽기 전용 (구성 포함) • 함수 별 간단한, 정수 버전 exports.handler = function(event,context) {context.succeed(“bye”);} exports.handler = function(event,context) {context.succeed(“hi”);} 1 2 Versions
  • 28. 배포 관리: 버저닝 - 별칭 서로 다른 버전에 대한 변경 가능한 별칭 사용 특정 버전에 대하여 이름으로 별칭(alias) 지정 • 함수 소유자가 ARNs를 코드에 매핑 • 클라이언트 변경 없이 업데이트 가능 exports.handler = function(event,context) {context.succeed(“bye”);} exports.handler = function(event,context) {context.succeed(“hi”);} prod dev Aliases
  • 29. 배포 관리: 버저닝 – Lambda 함수 호출 다양한 버전의 Lambda 함수 사용: 개발, 베타, 프로덕션 개발 버전: FunctionName (or) FunctionName:$LATEST 특정 버전: FunctionName:1 FunctionName:2 명명된 버전: FunctionName:production FunctionName:v1_2_3_4
  • 31. 서버리스 웹 앱 : API Gateway + Lambda 정적 컨텐츠 제공 : S3 동적 컨텐츠 제공 : Lambda HTTPS 억세스 및 인터페이스 : API Gateway 저장소 : DynamoDB Dynamic Content in AWS Lambda Data Stored in Amazon DynamoDB API GatewayStatic content in Amazon S3
  • 32. 비동기 프로세싱: S3 + Lambda New data available Amazon S3 AWS Lambda Amazon S3
  • 33. 데이터베이스 트리거: DynamoDB + Lambda New data available Amazon DynamoDB AWS Lambda Amazon DynamoDB Amazon Redshift
  • 34. 실시간 분석 처리: Kinesis + Lambda 고속 대용량 데이터 수집 : Kinesis Lambda 내 “Kinesis” 블루프린트 활용 수집 및 집계 결과 저장 : Redshift, S3, DynamoDB Data Ingestion with Amazon Kinesis (PUT record) Records retrieved by AWS Lambda Your code runs once per [batch of] records Amazon S3 Amazon DynamoDB Smart Devices Click Stream Log Data Amazon Redshift
  • 35. 서버리스 폴링: SQS + Lambda AWS Lambda Scheduled Job Amazon SQS (or rabbitMQ or webhook)
  • 36. 백엔드 : AWS IoT + AWS Lambda
  • 37. 다양한 Lambda 트리거 AWS CloudFormation Custom Resources Amazon SES Actions Amazon Cognito Sync Triggers … and the list will continue to grow! AWS IoT ActionsAWS Lambda Scheduled Events Amazon Echo Skills Amazon SWF Tasks
  • 39. AWS Lambda 모범 사례 및 팁 1. 함수의 크기 제한 • 특히 Java (JVM 시작 시간 소요) • 함수가 또다른 ‘monolith’가 되지 않도록 주의 • 첫번째 실행은 시간이 걸릴 수 있음 (스케줄 기반 Lambda 활용) 2. Node – 비동기(asynchronous) 실행에 주의 3. 컨테이너 재사용을 가정하지 말 것 • Lambda 컨테이너가 재사용될 수도 있음. • 그러나 어플리케이션에서 가정하지 말 것 (Stateless 유지) • 그러나 컨테이너 재사용시에 구성 로딩, 커넥션 유지, 인-메모리 캐시 등 활용 가능
  • 40. AWS Lambda 모범 사례 및 팁 4. 내장 디스크 (/tmp) 활용 가능 5. 배포를 위하여는 함수에 대하여 명명 규칙/버전/별칭 등 사용 6. 내장된 로깅을 활용 • 서비스 제공 컨텍스트에 대한 디테일 포함 7. 필요 시 커스텀 메트릭 생성 • 운영 또는 비지니스 중심 8. Role 활용하여 권한 관리 9. 구성 정보 등은 외부에 관리 가능 • DynamoDB 활용 가능
  • 42. Go build something! Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 43. 206년 10월 14일(금) | 강남구 역삼동 GS타워 12층 Zombie Apocalypse Workshop 서버리스 마이크로서비스 구축 워크샵 - 서울(Seoul) https://aws.amazon.com/ko/events/zombie-reg-seoul-oct-2016/