SlideShare a Scribd company logo
CloudQuest
www.projectroom.io
클라우드퀘스트 주식회사
이종훈 대표 / alexlee@cloudquest.net
AWS Lambda 를 활용한
웹 기반 Serverless 개발환경 구축 사례
1
1
CloudQuest
www.projectroom.io
2013 설립
2022 법인 전환
클라우드 컨설팅 및 아키텍처 수립
projectoom.io 서비스 개발 운영
클라우드퀘스트 주식회사
회사 소개
2
대표자 소개
이종훈 대표
1999 LG CNS / ERP / 아키텍처 그룹
2008 삼성 SDS / OSP
2011 Amadeus Singapore
2013 클라우드퀘스트 설립
2022 projectroom.io 런칭
LG계열사, 삼성전자, 대한항공, 건강보험공단
의료급여 프로젝트, 삼성 Account, AWS and GCP
2
CloudQuest
www.projectroom.io
다양한 언어를 지원하는 개발 프레임워크
Lambda, S3 기반의 개발 및 테스트 환경
Git / Git Flow 를 통한 협업 지원
개발 지원 및 컨설팅
“쉽고 빠르게 웹 시스템을 구현할 수 있는 Serverless 클라우드 기반의 통합 웹 개발환경”
projectroom.io
3
3
CloudQuest
www.projectroom.io
웹 개발에 필요한 기술 요소를 Serverless Resource 의 대응
Serverless 웹 개발
4
Frontend
( html, js, css, image )
Backend
코드 실행 엔진
데이터 저장소
( DB, Cache, 3rd party Service )
통신 프로토콜
( JSON over http, WebSocket )
기술 요소
S3, EFS
ECS, EKS,
Lambda
RDS, Redis,
DynamoDB
API Gateway
ALB
Serverless
ESB on EC2
S3, EFS
ECS, EKS,
EC2
RDS, Redis,
DynamoDB
ALB
Server 기반
4
CloudQuest
www.projectroom.io
다양한 프로그래밍 언어 런타임
저렴한 운영 유지 비용
쉬운 시작
Lambda 중심의 플랫폼 구성
Lambda
5
Pros. Cons.
단순한 프로그래밍 구조
지속성있는 리소스 관리의 어려움
다양한 Serverless 기술이 필요
5
CloudQuest
www.projectroom.io
API Gateway 를 Frontend 로, Lambda 와 S3 를 Backend로 구성
사용자 지정도메인으로 여러 Backend를 동일 도메인으로 구성해 CORS Rule 충족
플랫폼의 필요와 개발자의 필요에 따라 다양한 솔루션을 조합하여 구성
플랫폼 구성 솔루션 개요
6
사용자 지정도메인
API 호출
Ajax 호출
Static
Resource
플랫폼 운영로그
개발자 테스팅 로그
개발자 소스코드 및
리소스 저장소
개발자 빌드로그
빌드 로그 저장
플랫폼 기본 저장소
플랫폼 사용자
Session 저장소
개발자 빌드서버
개발자 소스코드
버전관리용 저장소
6
CloudQuest
www.projectroom.io
API Gateway : JSON In/Out 의 REST API
7
REST API : Lambda 로 연결된 JSON in/out 의 API 구현
Authorizer : 사용자 접근제어 구현
{
"isBase64Encoded" : "boolean",
"statusCode": "number",
"headers": { ... },
"body": "JSON string"
}
TTL 설정된
Session 정보
Token 검증
사용자 로그인 후
Token 저장
API Gateway 반환용
Response
Token
from
Cookie
200, 404, 500, 301 …
Authorization, cookie, location …
7
CloudQuest
www.projectroom.io
API Gateway : REST API 프록시 리소스 구성
8
URL 이 고정되지 않고 특정 리소스 아래 주소가 계속 변하는 모든 경우를 수용하는 패턴
Static
Resource
S3에 있는 static 파일의 위치 :
[S3버킷이름]/static/main/js/custom.js
[S3버킷이름]/static/global/css/all.css
[S3버킷이름]/static/main/image/logo.png
모든 static 리소스의 최상위 루트 루트 아래에서 파일이 업로드 되는대로 만들어지는 다양한 하위 Path
8
CloudQuest
www.projectroom.io
API Gateway : 사용자 지정 도메인 (1)
배포된 API 를 대상으로 사용자 지정도메인을 지정해 사용
와일드카드 도메인 적용 가능
AWS Certificate Manager 의 SSL 인증서 발급 및 적용 가능 ( 무료 )
사용할 도메인
Route53 등록 도메인 ( 또는 호스팅 영역 등록 도메인 ) + 동일계정의 API : A Record 별칭 또는 CNAME 연결가능
타사 등록 도메인 또는 타계정 API : CNAME 연결가능
API와 연결 도메인 편집
A Record + Alias CNAME
9
9
CloudQuest
www.projectroom.io
API Gateway : 사용자 지정 도메인 (2)
API Gateway 의 사용자 지정 도메인은 여러 API 매핑이 가능
platform.projectroom.io
/
/admin
/static
10
10
CloudQuest
www.projectroom.io
API Gateway : WebSocket
WebSocket API 를 사용하여 Lambda 의 비동기 통신의 결과 회신에 사용
- API Gateway 의 최대 응답 대기 시간 : 30초 ( 연장 불가 )
- 긴 작업시간이 필요한 모든 요청에서, “작업 수행 완료” 를 화면에 리포트 하는 일이 필요
2
연결 with
conectionID + userID
1 연결 사용자 등록
3
Cache DB에 저장
conectionID + userID
4 API 호출
5
요청 수신 후 InvokeLambda 호출
( with 비동기 요청 옵션 )
6 장시간 소요 작업 시작
7
완료 후, 요청자 userID 로
connectionID 조회
7
connectionID 를 대상으로
작업완료 데이터를
@connections 주소로 호출
8
WebSocket 상시 연결을 통한
서버->클라이언트 호출로
작업 완료 데이터 회신
WebSocket 연결을 위해 화면에서 API Gateway 를 호출하는 주소 ( 화면 -> 서버 메시징은 이 연결을 통해 가능 )
WebSocket 응답을 위해 서버측에서 호출하는 주소 ( Signed URL 호출 필요 )
11
11
CloudQuest
www.projectroom.io
pre-signed URL을 사용한 파일 업로드 다운로드
S3 파일 관리
12
- Multipart -> Lambda -> S3 방식은 Serverless 에 적합하지 않음
- 업로드 / 다운로드시 pre-signed URL 을 발급하여 Lambda 를 경유하지 않고 파일을 직접 업로드 다운로드
- S3 업로드시 버킷을 대상으로 이벤트 트리거 발생 => EFS파일 배치 연계 가능
4
pre-signed URL 을 통한
파일 업로드 수행
1
파일 정보등을 포함한
Upload pre-signed URL 요청
2 S3 SDK를 활용해 pre-signedURL 생성
3 Upload pre-signed URL 회신
5 버킷 변동 이벤트 트리거
6
이벤트로부터 대상 파일 정보를 획득,
S3 SDK 를 통한 파일 다운로드 및
EFS Writing
12
CloudQuest
www.projectroom.io
No more “tail -f service.log”
CloudWatch
13
Serverless 들어가서 로그를 확인할 Server 가 없음⋯
Use “aws logs tail /aws/lambda/your-lambda-function --follow --profile user”
- Lambda 실행 런타임이 자동으로 CloudWatch 로그 그룹을 형성
- 서버 콘솔을 대체하는 기능이 가능
- 다중화 서버로부터 로그 취합이 불필요
- AWS API 를 통해 관리 시스템 UI 로 통합 가능
- Lambda 의 과금 정보가 함께 표시되는 장점
- 반응 속도가 느린 것은 단점
CloudWatch 로그 그룹 이름 AWS user pro
fi
le
13
CloudQuest
www.projectroom.io
1. Command line tool ( feat. Git )
- Git (w/ ssh) binaries for AWS Lambda ( https://github.com/lambci/git-lambda-layer )
- Git 커맨드를 Lambda 에서 사용 가능
- Lambda 구현 언어의 외부 Command 프로세스 구동 명령어를 이용
( Node.js executeSync(), Java 의 Process 클래스 등 )
Lambda Layer
14
2. External Libraries
- Lambda 계층 만들기 및 공유( https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-layers.html)
- 배포 시간과 본 함수 패키지 크기(함수, Layer 각각 250M 제한 )를 줄일 수 있음
- 최대 5개 까지 추가 가능
14
CloudQuest
www.projectroom.io
Organization
SSO Service
통합 결제
API Gateway, Lambda 를 비롯한 AWS 서비스 자원의 Quota 가 존재
- “User 별 Region 당 000” 방식으로 카운트
- Quota 를 늘리는 방법 ==> 하나의 Organization 아래 여러 User 를 운용하는 것
Serverless Quota
15
메인 Account
Organization 의 메인 계정
사용자 관리,
결제, 모니터링, 메인 DB,
Route53,
Core 서비스
Main VPC
USER1 Account
Lambda, 서비스 DB,
모니터링
USER2 Account
Lambda, 서비스 DB,
모니터링
USER2 VPC
USER1 VPC
VPC Peering VPC Peering
15
CloudQuest
www.projectroom.io
서비스 요건에 유연하게 대응하는 아키텍처 : 빌드서버 구축의 사례
“Serverless is not always best!”
16
빌드 서버 요건 EC2 + Auto Scaling Group
ECS Fargate
Lambda with Machine Image
Code Build
반응성 : 빠른 시작
GOOD
Spring Boot Servlet
BAD
Provisioning or Cold/Warm Start
BAD
Provisioning
빌드 라이브러리 캐시 저장소 :
반복 수행시 빌드 속도 향상
GOOD
EBS on EC2
BAD
Temp Storage
EFS
BAD
Temp Storage
추가적인 응용구성
DB / Redis / WebSocket /
CloudWatch
GOOD
Based on Application F/W
GOOD
Based on Application F/W
BAD
CLI is not enough
가용성 / 확장성
GOOD
EC2 Auto Scaling Group
GOOD
Auto Scaling
GOOD
Auto provisioning by Request
운영 비용
BAD
상시 유지 필요
GOOD
필요할 때 만들고, 쓴 만큼 과금
GOOD
필요할 때 만들고, 쓴 만큼 과금
16
CloudQuest
www.projectroom.io
QnA
17
QnA
17

More Related Content

PDF
Amazed by aws 2nd session
Amazon Web Services Korea
 
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 
PDF
모바일을 위한 (AWS) 클라우드 기술 동향
AWSKRUG - AWS한국사용자모임
 
PDF
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
Amazon Web Services Korea
 
PDF
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
Amazon Web Services Korea
 
PDF
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
Amazon Web Services Korea
 
PDF
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
Amazon Web Services Korea
 
PDF
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Amazed by aws 2nd session
Amazon Web Services Korea
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 
모바일을 위한 (AWS) 클라우드 기술 동향
AWSKRUG - AWS한국사용자모임
 
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
Amazon Web Services Korea
 
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
Amazon Web Services Korea
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
Amazon Web Services Korea
 
[AWS Dev Day] 앱 현대화 | 코드 기반 인프라(IaC)를 활용한 현대 애플리케이션 개발 가속화, 우리도 할 수 있어요 - 김필중...
Amazon Web Services Korea
 
AWS 엣지 서비스를 통한 글로벌 서비스 관리 전략 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Similar to AWS Meetup 프리젠테이션.pdf (20)

PPTX
리스펙토링 6월 세미나, AWS로 개인서버 구축하기
JungHoon Lee
 
PDF
AWS re:Invent 특집(1) – 파이선(Python) 개발자를 위한 AWS 활용 방법 (윤석찬)
Amazon Web Services Korea
 
PDF
20180124 naver labs aws network and security
Jongwon Han
 
PPTX
2015 oce garuda
uEngine Solutions
 
PPTX
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
WineSOFT
 
PPTX
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PDF
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
Amazon Web Services Korea
 
PDF
AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)
Amazon Web Services Korea
 
PDF
Node.js 첫걸음
SeungHyun Lee
 
PDF
20180124 스타트업부터 대기업까지 aws와 함께한 7년
Jongwon Han
 
PDF
Unionweb프로젝트
Dong-Jin Park
 
PDF
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
강 민우
 
PPTX
Serverless Architecture - 김현민
AWSKRUG - AWS한국사용자모임
 
PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon Web Services Korea
 
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Amazon Web Services Korea
 
PDF
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Jeongkyu Shin
 
PDF
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
Tommy Lee
 
PDF
AWS Lambda 100% 활용하기 :: 김상필 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
PPTX
AWS의 하둡 관련 서비스 - EMR/S3
Keeyong Han
 
PPTX
Aws lambda 와 함께 서버리스 서비스 만들기
Junyoung Sung
 
리스펙토링 6월 세미나, AWS로 개인서버 구축하기
JungHoon Lee
 
AWS re:Invent 특집(1) – 파이선(Python) 개발자를 위한 AWS 활용 방법 (윤석찬)
Amazon Web Services Korea
 
20180124 naver labs aws network and security
Jongwon Han
 
2015 oce garuda
uEngine Solutions
 
CloudFront(클라우드 프론트)와 Route53(라우트53) AWS Summit Seoul 2015
WineSOFT
 
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
Amazon Web Services Korea
 
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
Amazon Web Services Korea
 
AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)
Amazon Web Services Korea
 
Node.js 첫걸음
SeungHyun Lee
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
Jongwon Han
 
Unionweb프로젝트
Dong-Jin Park
 
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
강 민우
 
Serverless Architecture - 김현민
AWSKRUG - AWS한국사용자모임
 
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon Web Services Korea
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
Amazon Web Services Korea
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Jeongkyu Shin
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
Tommy Lee
 
AWS Lambda 100% 활용하기 :: 김상필 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
AWS의 하둡 관련 서비스 - EMR/S3
Keeyong Han
 
Aws lambda 와 함께 서버리스 서비스 만들기
Junyoung Sung
 
Ad

AWS Meetup 프리젠테이션.pdf

  • 1. CloudQuest www.projectroom.io 클라우드퀘스트 주식회사 이종훈 대표 / [email protected] AWS Lambda 를 활용한 웹 기반 Serverless 개발환경 구축 사례 1 1
  • 2. CloudQuest www.projectroom.io 2013 설립 2022 법인 전환 클라우드 컨설팅 및 아키텍처 수립 projectoom.io 서비스 개발 운영 클라우드퀘스트 주식회사 회사 소개 2 대표자 소개 이종훈 대표 1999 LG CNS / ERP / 아키텍처 그룹 2008 삼성 SDS / OSP 2011 Amadeus Singapore 2013 클라우드퀘스트 설립 2022 projectroom.io 런칭 LG계열사, 삼성전자, 대한항공, 건강보험공단 의료급여 프로젝트, 삼성 Account, AWS and GCP 2
  • 3. CloudQuest www.projectroom.io 다양한 언어를 지원하는 개발 프레임워크 Lambda, S3 기반의 개발 및 테스트 환경 Git / Git Flow 를 통한 협업 지원 개발 지원 및 컨설팅 “쉽고 빠르게 웹 시스템을 구현할 수 있는 Serverless 클라우드 기반의 통합 웹 개발환경” projectroom.io 3 3
  • 4. CloudQuest www.projectroom.io 웹 개발에 필요한 기술 요소를 Serverless Resource 의 대응 Serverless 웹 개발 4 Frontend ( html, js, css, image ) Backend 코드 실행 엔진 데이터 저장소 ( DB, Cache, 3rd party Service ) 통신 프로토콜 ( JSON over http, WebSocket ) 기술 요소 S3, EFS ECS, EKS, Lambda RDS, Redis, DynamoDB API Gateway ALB Serverless ESB on EC2 S3, EFS ECS, EKS, EC2 RDS, Redis, DynamoDB ALB Server 기반 4
  • 5. CloudQuest www.projectroom.io 다양한 프로그래밍 언어 런타임 저렴한 운영 유지 비용 쉬운 시작 Lambda 중심의 플랫폼 구성 Lambda 5 Pros. Cons. 단순한 프로그래밍 구조 지속성있는 리소스 관리의 어려움 다양한 Serverless 기술이 필요 5
  • 6. CloudQuest www.projectroom.io API Gateway 를 Frontend 로, Lambda 와 S3 를 Backend로 구성 사용자 지정도메인으로 여러 Backend를 동일 도메인으로 구성해 CORS Rule 충족 플랫폼의 필요와 개발자의 필요에 따라 다양한 솔루션을 조합하여 구성 플랫폼 구성 솔루션 개요 6 사용자 지정도메인 API 호출 Ajax 호출 Static Resource 플랫폼 운영로그 개발자 테스팅 로그 개발자 소스코드 및 리소스 저장소 개발자 빌드로그 빌드 로그 저장 플랫폼 기본 저장소 플랫폼 사용자 Session 저장소 개발자 빌드서버 개발자 소스코드 버전관리용 저장소 6
  • 7. CloudQuest www.projectroom.io API Gateway : JSON In/Out 의 REST API 7 REST API : Lambda 로 연결된 JSON in/out 의 API 구현 Authorizer : 사용자 접근제어 구현 { "isBase64Encoded" : "boolean", "statusCode": "number", "headers": { ... }, "body": "JSON string" } TTL 설정된 Session 정보 Token 검증 사용자 로그인 후 Token 저장 API Gateway 반환용 Response Token from Cookie 200, 404, 500, 301 … Authorization, cookie, location … 7
  • 8. CloudQuest www.projectroom.io API Gateway : REST API 프록시 리소스 구성 8 URL 이 고정되지 않고 특정 리소스 아래 주소가 계속 변하는 모든 경우를 수용하는 패턴 Static Resource S3에 있는 static 파일의 위치 : [S3버킷이름]/static/main/js/custom.js [S3버킷이름]/static/global/css/all.css [S3버킷이름]/static/main/image/logo.png 모든 static 리소스의 최상위 루트 루트 아래에서 파일이 업로드 되는대로 만들어지는 다양한 하위 Path 8
  • 9. CloudQuest www.projectroom.io API Gateway : 사용자 지정 도메인 (1) 배포된 API 를 대상으로 사용자 지정도메인을 지정해 사용 와일드카드 도메인 적용 가능 AWS Certificate Manager 의 SSL 인증서 발급 및 적용 가능 ( 무료 ) 사용할 도메인 Route53 등록 도메인 ( 또는 호스팅 영역 등록 도메인 ) + 동일계정의 API : A Record 별칭 또는 CNAME 연결가능 타사 등록 도메인 또는 타계정 API : CNAME 연결가능 API와 연결 도메인 편집 A Record + Alias CNAME 9 9
  • 10. CloudQuest www.projectroom.io API Gateway : 사용자 지정 도메인 (2) API Gateway 의 사용자 지정 도메인은 여러 API 매핑이 가능 platform.projectroom.io / /admin /static 10 10
  • 11. CloudQuest www.projectroom.io API Gateway : WebSocket WebSocket API 를 사용하여 Lambda 의 비동기 통신의 결과 회신에 사용 - API Gateway 의 최대 응답 대기 시간 : 30초 ( 연장 불가 ) - 긴 작업시간이 필요한 모든 요청에서, “작업 수행 완료” 를 화면에 리포트 하는 일이 필요 2 연결 with conectionID + userID 1 연결 사용자 등록 3 Cache DB에 저장 conectionID + userID 4 API 호출 5 요청 수신 후 InvokeLambda 호출 ( with 비동기 요청 옵션 ) 6 장시간 소요 작업 시작 7 완료 후, 요청자 userID 로 connectionID 조회 7 connectionID 를 대상으로 작업완료 데이터를 @connections 주소로 호출 8 WebSocket 상시 연결을 통한 서버->클라이언트 호출로 작업 완료 데이터 회신 WebSocket 연결을 위해 화면에서 API Gateway 를 호출하는 주소 ( 화면 -> 서버 메시징은 이 연결을 통해 가능 ) WebSocket 응답을 위해 서버측에서 호출하는 주소 ( Signed URL 호출 필요 ) 11 11
  • 12. CloudQuest www.projectroom.io pre-signed URL을 사용한 파일 업로드 다운로드 S3 파일 관리 12 - Multipart -> Lambda -> S3 방식은 Serverless 에 적합하지 않음 - 업로드 / 다운로드시 pre-signed URL 을 발급하여 Lambda 를 경유하지 않고 파일을 직접 업로드 다운로드 - S3 업로드시 버킷을 대상으로 이벤트 트리거 발생 => EFS파일 배치 연계 가능 4 pre-signed URL 을 통한 파일 업로드 수행 1 파일 정보등을 포함한 Upload pre-signed URL 요청 2 S3 SDK를 활용해 pre-signedURL 생성 3 Upload pre-signed URL 회신 5 버킷 변동 이벤트 트리거 6 이벤트로부터 대상 파일 정보를 획득, S3 SDK 를 통한 파일 다운로드 및 EFS Writing 12
  • 13. CloudQuest www.projectroom.io No more “tail -f service.log” CloudWatch 13 Serverless 들어가서 로그를 확인할 Server 가 없음⋯ Use “aws logs tail /aws/lambda/your-lambda-function --follow --profile user” - Lambda 실행 런타임이 자동으로 CloudWatch 로그 그룹을 형성 - 서버 콘솔을 대체하는 기능이 가능 - 다중화 서버로부터 로그 취합이 불필요 - AWS API 를 통해 관리 시스템 UI 로 통합 가능 - Lambda 의 과금 정보가 함께 표시되는 장점 - 반응 속도가 느린 것은 단점 CloudWatch 로그 그룹 이름 AWS user pro fi le 13
  • 14. CloudQuest www.projectroom.io 1. Command line tool ( feat. Git ) - Git (w/ ssh) binaries for AWS Lambda ( https://github.com/lambci/git-lambda-layer ) - Git 커맨드를 Lambda 에서 사용 가능 - Lambda 구현 언어의 외부 Command 프로세스 구동 명령어를 이용 ( Node.js executeSync(), Java 의 Process 클래스 등 ) Lambda Layer 14 2. External Libraries - Lambda 계층 만들기 및 공유( https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-layers.html) - 배포 시간과 본 함수 패키지 크기(함수, Layer 각각 250M 제한 )를 줄일 수 있음 - 최대 5개 까지 추가 가능 14
  • 15. CloudQuest www.projectroom.io Organization SSO Service 통합 결제 API Gateway, Lambda 를 비롯한 AWS 서비스 자원의 Quota 가 존재 - “User 별 Region 당 000” 방식으로 카운트 - Quota 를 늘리는 방법 ==> 하나의 Organization 아래 여러 User 를 운용하는 것 Serverless Quota 15 메인 Account Organization 의 메인 계정 사용자 관리, 결제, 모니터링, 메인 DB, Route53, Core 서비스 Main VPC USER1 Account Lambda, 서비스 DB, 모니터링 USER2 Account Lambda, 서비스 DB, 모니터링 USER2 VPC USER1 VPC VPC Peering VPC Peering 15
  • 16. CloudQuest www.projectroom.io 서비스 요건에 유연하게 대응하는 아키텍처 : 빌드서버 구축의 사례 “Serverless is not always best!” 16 빌드 서버 요건 EC2 + Auto Scaling Group ECS Fargate Lambda with Machine Image Code Build 반응성 : 빠른 시작 GOOD Spring Boot Servlet BAD Provisioning or Cold/Warm Start BAD Provisioning 빌드 라이브러리 캐시 저장소 : 반복 수행시 빌드 속도 향상 GOOD EBS on EC2 BAD Temp Storage EFS BAD Temp Storage 추가적인 응용구성 DB / Redis / WebSocket / CloudWatch GOOD Based on Application F/W GOOD Based on Application F/W BAD CLI is not enough 가용성 / 확장성 GOOD EC2 Auto Scaling Group GOOD Auto Scaling GOOD Auto provisioning by Request 운영 비용 BAD 상시 유지 필요 GOOD 필요할 때 만들고, 쓴 만큼 과금 GOOD 필요할 때 만들고, 쓴 만큼 과금 16