4. ● Serverless? ( 대표 참고자료 : https://blog.aliencube.org/ko/2016/06/23/serverless-architectures/#unpacking-function-as-a-service )
○ 클라우드 서버에 온전히 의존하는 애플리케이션을 설명하기 위해 사용되어 온 용어. 때문에
명확한 정의 가 있는 것은 아님
○ 말그대로 ‘서버가 없는’ 의 의미는 아님
○ 서버 작업은 운영팀(AWS, GCP, Azure, ...)에게 맡기고, 개발자들은 함수만 관리한다
■ 서버가 행여나 뻗지는 않을까에 대한 걱정없이 개발할 수 있다
○ 함수를 구현하기 위한 코드를 개발자가 사용하는 자신의 주 언어로 독립적인 개발이
가능하다
○ 서버관리를 안하니까 항시 돌아가는 서버사용비를 낼 필요가 없고, 함수 호출 사용량 만큼만
요금을 내면 된다
○ FaaS(Function as a Service)는 서버리스 서비스라고 볼 수 있다.
얼떨결에 접한 AWS Lambda & Amazon DynamoDB
5. ● FaaS(Function as a Service) 서비스.
○ 함수(Function)단위의 서비스.
○ 서버 시스템들 없이 또는 서버 애플리케이션 없이 백엔드 코드를 실행시키는 것
○ AWS Lambda가 그 FaaS 서비스
● Amazon DynamoDB
○ 규모와 관계없이 10밀리초 미만의 지연 시간이 일관되게 요구되는 모든 애플리케이션을 위한
빠르고 유연한 NoSQL 데이터베이스 서비스
■ NoSQL
● 확장 가능한 성능 및 스키마 없는 데이터 모델에 최적화된 비관계형 데이터베이스
● https://aws.amazon.com/ko/nosql/ : NoSQL상세설명과 SQL&NoSQL 비교 테이블이 있음
얼떨결에 접한 AWS Lambda & Amazon DynamoDB
● 내가 AWS Lambda & Amazon DynamoDB 를 사용하게 된 이유
○ 프로젝트 리더가 사용하자고 해서...
7. AWS Lambda & Amazon
DynamoDB SDK 초기
구현의 어려움
● Lambda 코딩 시 DynamoDB SDK를 어떻게
사용하는지?
● AWS 공식 Document를 보면서 최대한 따라해
보려 노력했지만 예전 버전의 AWS문서와 현재
버전의 AWS문서가 공존해 있어서 어떤 가이드를
보고 따라가야 할 지 초심자에게는 매우
혼돈스러웠음
○ https://docs.aws.amazon.com/ko_kr/amazondynamo
db/latest/developerguide/SampleData.LoadData.ht
ml
○ https://docs.aws.amazon.com/AWSJavaScriptSDK/l
atest/AWS/DynamoDB.html#query-property
8. AWS Lambda & Amazon
DynamoDB SDK 초기
구현의 어려움
● Console에서 Lambda 함수를 만들고
저장하면 끝? ㄴㄴ
○ Amazon API Gateway 가 필요하다
(https://aws.amazon.com/ko/api-gateway/?nc2=h_m1)
○ API Gateway를 통하여 나의 Lambda함수를
웹 세계에 내놓을 수 있다
○ 처음 API Gateway설정을 직접 조작하는 것은
악몽같았다.. Method Request? Integration
Request..?
10. ● 관리
내 주관적인 관점의 EC2, Lambda 비교
EC2 Lambda
● 인스턴스에 대한 전반적인 세팅과
개발구현까지 모두 해야 함
● 내가 세팅한 여러가지에 대한
장애요인을 예측해야 하는
골칫거리가 존재
● 트래픽 증가 시 Load Balancing,
Auto Scaling 신경 써야 함
● 미리 세팅된 언어, 목적별 Preset을
골라서 사용하면 된다
● Lambda Function 에러 시 대부분은
코드상의 에러이기 때문에 여러가지
장애요인에 대한 신경을 안 써도 됨
● Load Balancing, Auto Scaling 에
대해 신경 쓰지 않아도 된다
11. 내 주관적인 관점의 EC2, Lambda 비교
● 요금
○ 출처 : AWS Summit Day2 Serverless Architecture를 응용한 실시간 DW 플랫폼 구현
(https://www.slideshare.net/awskorea/power-plant-solar-power-analysis-system-using-serverless-architecture-suhjihyeong-94925297)
13. Lambda & DynamoDB 로컬 테스트 프레임웍 발견 : Serverless
Serverless Framework (https://serverless.com/)
● 서버리스 아키텍처를 운영과 배포를 위한 툴킷
● AWS, Azure Functions, OpenWhisk, Google Functions, Kubeless, Spotinst, Webtasks 지원
● AWS SAM 과 비슷하게 yml파일로 배포 환경설정을 함
● 개인적으로 AWS SAM, AWS SAM Local 보다는 Serverless Framework 를 더 선호
○ AWS SAM Local은 Docker 설치 & 실행 상태여야 이용 가능, Docker실행 시 PC 리소스를 꽤
잡아먹음
○ AWS SAM, AWS SAM Local 의 문서가 최신버전과 맞지 않는 내용이 있어서 혼란스러움
○ AWS SAM CLI를 이용하여 배포 단계 시 AWS CloudFormation의 패키지를 암묵적으로
호출하는 단계에서 계속 에러가 나서 결국 포기