lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: aws summit seoul 2016

33
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 김기완 | 솔루션즈 아키텍트 2016.5.17 Lambda를 활용한 서버없는 아키텍쳐 구현하기

Upload: amazon-web-services-korea

Post on 12-Apr-2017

3.076 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

김기완 | 솔루션즈 아키텍트

2016.5.17

Lambda를 활용한서버없는 아키텍쳐 구현하기

Page 2: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

획일적이고 자유가 없는 어플리케이션

Technical Debts

차세대???

Page 3: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

획일적이고 자유가 없는 어플리케이션

• 파급되는 수많은 피해• 모든 것을 한 곳에, 그리고 그 한 곳의 실패• 늘어나는 작업시간• 운영의 어려움

• 길어지는 변경 주기• 파격적인 사업진행 불가능• 준비에 들어가는 수많은 시간, 시간, 시간.

Reduce risk

Page 4: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

획일적이고 자유가 없는 조직

• 요구사항• 우선순위• 작업일정• 배포• 하드웨어• …...

“…시스템을 설계하는 조직은 ... 조직의 정보를 교환하는 구조를닮은 설계 를 만들어 낸다.”

- Conway’s Law

만일 시스템 설계의 방식이 바뀐다면?

Page 5: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

쪼개 봅시다!

Page 6: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

획일적이고 자유가 없는 아키텍쳐

Page 7: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

서비스 지향 아키텍쳐 (SOA)

Page 8: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

N-계층 웹 어플리케이션

표현 계층로직 계층

데이터 계층

Page 9: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

마이크로서비스 아키텍쳐

Page 10: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

마이크로서비스 아키텍쳐를 돕는 수많은 도구들

웹 서버코드 라이브러리

웹 서비스/어플리케이션 프레임웍

구성관리 도구API 관리 플랫폼

배포 패턴CI/CD 패턴

컨테이너또 다른 도구, 도구, 도구……

Page 11: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

AWS도 함께 합니다

Amazon EC2오토 스케일링

Elastic Load BalancingEC2의 자동 복구AWS Trusted AdvisorAWS Elastic BeanstalkAWS OpsWorksAmazon EC2 Container Service수많은 AWS 서비스들……

Page 12: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

…이러한 도구들 및 혁신들의 많은 것들이여전히 공유되는 의존관계 에 얽혀 있습니다.

하지만…

Page 13: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

Servers서버의 물리적인 장애를

어플리케이션에서 어떻게 처리하지?

내 서버들에 대한 접근을어떻게 통제할 수 있지?

서버의 수를 언제늘려야 하지?

내 서버의 용량을언제 늘려야 하지? 내 예산에 맞는

서버의 크기는?

내 서버들의 남아있는 용량은얼마나 되지?

(AAHHHHHHHHH!!)

Page 14: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

서버 없는 아키텍쳐

완전 관리형• 프로비져닝 없음• 관리요소 없음• 높은 가용성

개발자 생산성• 중요한 코드에 집중• 빠르게 혁신• 시장에 빠르게 접근

지속적인 스케일링• 자동으로• 스케일 업/다운

Page 15: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

AWS Lambda

서버 없는, 이벤트 처리 방식의 컴퓨팅 서비스

Lambda = 서버 없는 마이크로서비스

Page 16: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

AWS Lambda : 서버 없는 컴퓨팅

서버 프로비저닝/운영 없이 코드를 실행; 사용한 컴퓨팅 시간 만큼만 지불.

이벤트로 실행:• 직접 동기/비동기식 호출• Amazon S3 버킷에 객체 저장• Amazon API 게이트웨이를 통한 호출• 그 외 다양한 이벤트…

다음의 작업을 손쉽게 수행:• 실시간 데이터 처리 수행• 유연한 백엔드 서비스 구축

Page 17: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

Lambda : 동작 원리

1. 업로드 2. 트리거 3. 실행 4. 사용요금

Page 18: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

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 이벤트 소스에 대한 자원정책

Page 19: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

Lambda : 동작 원리

제작 기능• AWS SDK 포함• 인바운드 네트웍 처리• 프로세스, 쓰레드, /tmp, 소켓

배포 옵션• 콘솔의 WYSIWIG 편집기를

사용하여 직접 제작/배포• 코드를 zip 파일로 묶어

Lambda 서비스 혹은 S3로전송

Stateless 기능• S3/Amazon

DynamoDB/Amazon ElastiCache를 사용한 저장

• 인프라스트럭쳐와의 연관성없음 (로그인 불가)

모니터링 및 로깅• Amazon CloudWatch

메트릭 – 요청 수, 에러 수,처리 시간, 처리량

• Amazon CloudWatch Log를사용하여 로깅

Page 20: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

데모

Page 21: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

데모 : 서버 없는 비디오 스트리밍 아키텍쳐

AWS Lambda

Amazon S3

비디오 파일 입수

PUT 이벤트Lambda 트리거

Amazon Elastic Transcoder

트랜스코딩Job 시작

Amazon S3

여러 bit-rateHLS 스트리밍

Amazon CloudFront

시청자

Page 22: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

사용 예제

Page 23: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

Lambda : 사용 예제

데이터 처리데이터의 변화, 시스템 상태

변화 혹은 사용자의작업내용에 반응하여 코드

수행

시스템 제어AWS 자원들의 상태 및

데이터 변화에 따른 응답 및대응 작업 수행

백 엔드웹, 모바일, IoT 그리고 3rd

party API로부터의 요청을처리하는 백 엔드 로직 수행

Page 24: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

사용 예제 : 데이터 처리

Page 25: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

사용 예제 : 백엔드

Page 26: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

사용 예제 : 시스템 제어

AWS Lambda

Amazon SNS

Amazon CloudWatch Alarm

ec2runInstance

ecsstartTask

beanstalkupdateApp

kinesissplitShard

Any API call

https://aws.amazon.com/blogs/compute/scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/

Page 27: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

기능

Page 28: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

리소스 사이징

• 23가지 “power levels” 제공• 높은 레벨일수록 더 많은 메모리와 CPU 파워 제공

• 128 MB, 가장 낮은 CPU 파워• 1.5 GB, 가장 높은 CPU 파워

• 더 높은 파워 레벨 = CPU를 많이 쓰거나 갑자기 실행되는 작업에 더 빠른실행 시간

• 가격은 파워 레벨에 따라 변화• 100ms부터 5분까지 코드 실행

• 프리티어 : 백만 건 무료 처리, 400,000GB-s/월 무료 처리

Page 29: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

예약 Lambda function

• 특정 시간에 수행 혹은 반복되는주기로 수행

• 표준 cron syntax 사용

• 5분 단위로 설정• Lambda function을 사용하여

1초미만으로 실행 가능

• Amazon SQS 혹은 다른 데이터소스를 폴링

• CLI와 SDK 지원

Page 30: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

버저닝

• Labmda function에 하나 이상의버전 퍼블리싱

• 효과적인 프로덕션 Lambda function 코드 관리

• 다양한 버전의 Lambda function사용: 개발, 베타, 프로덕션

• 서로 다른 버전에 대한 변경가능한 별칭 사용

Page 31: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

지속적인 스케일링운영할 서버 없음 100ms 단위 과금

Lambda의 장점

Page 32: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

여러분의 피드백을 기다립니다!

https://www.awssummit.co.kr

모바일 페이지에 접속하셔서, 지금 세션 평가에참여하시면, 행사 후 기념품을 드립니다.

#AWSSummit 해시태그로 소셜 미디어에 여러분의행사 소감을 올려주세요.

발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜채널로 곧 공유될 예정입니다.

Page 33: Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

감사합니다