O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
AWS 서버리스 서비스를 활용한 웹 애플리케이션
구축 및 배포 방법
정 창호 | Solutions Architect
강연 중 질문하는 방법 AWS Builders
Go to Webinar “Questions” 창에 자신이 질문한
내역이 표시됩니다. 기본적으로 모든 질문은
공개로 답변 됩니다만 본인만 답변을 받고
싶으면 (비공개)라고 ...
서버리스 개요
Servers
서버의 물리적인 장애를
어플리케이션에서 어떻게 처리하지?
내 서버들에 대한 접근을
어떻게 통제할 수 있지?
서버의 수를 언제
늘려야 하지?
내 서버의 용량을
언제 늘려야 하지? 내 예산에 맞는
서버의 크기...
관리의 목표는 관리 대상의 제거
All of this
goes away
Provisioning and utilization
Availability and fault tolerance
Scaling
Operations a...
서버에 대한 고민 없이
애플리케이션을 구축 및 작동
서버리스
서버리스 - 클라우드 컴퓨팅의 진화
가상 서버
Amazon EC2
콘테이너
Amazon ECS
서버리스
AWS Lambda데이터센터
Minutes Seconds MillisecondsWeeks
개발자들이 느끼는 민첩한 ...
서버리스 컴퓨팅 – 주요 이점
서버 준비나
관리 불필요
가용성 및
장애 방지
미 실행시
과금 안함
사용량 기반
자동 확장
서버리스 아키텍처 – 주요 AWS 빌딩 블록
Amazon SNS
Amazon SQS
Amazon S3
Messaging
Monitoring and Debugging
Storage
AWS X-Ray
AWS Lambda
A...
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
GET /
GET /app.js
GET /app.css
Client
서버리스 웹 앱 : 단일 페...
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
Client
app.js
api.example.com
Amazon API Gateway AWS ...
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
Client
app.js
api.example.com
Amazon API Gateway AWS ...
서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
GET /
GET /app.js
GET /app.css
Client
서버리스 웹 앱 : 단일 페...
지속적 배포를 통해 풀 스택 서버리스 웹 앱 호스팅
AWS Amplify Console
Amazon
CloudFront
Amazon Simple
Storage Service
(S3)
AWS Amplify Console
AWS AmplifyAWS
CodeCommit
AWS Amplify Console
AWS...
AWS Amplify Console
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
Client
app.js
api.example.com
Amazon API Gateway AWS ...
Amazon API Gateway
 손쉬운 API 생성 및 배포
 REST API 및 WebSocket API에 대한 지원
 변경 사항을 안전하게 롤아웃하기 위한 Canary 릴리스 배포.
 SDK 생성
 AP...
API Gateway 모식도
모바일 앱
웹사이트
서비스
Amazon API Gateway
API Gateway
Cache
Amazon EC2
퍼블릭
엔드포인트
Amazon
CloudWatch
모니터링
퍼블릭으로 접근
가...
API 엔트포인트 타입 – Edge optimized
• Edge optimized: 글로벌 인터넷 상의 모든 위치에 존재하는
클라이언트에게 최소 지연시간으로 응답을 제공하도록 설계
AWS Region
API Gatew...
API 엔드포인트 타입 - Regional
• Regional: 같은 리전내의 클라이언트로 부터 API를 호출시 최소
지연시간으로 응답을 제공하도록 설계
AWS Region
API Gateway
Internet
Amaz...
API 엔드포인트 타입 - Private
• Private: 보안에 민감한 API 업무를 위하여 VPC내 어플리케이션이
안전하게 API를 호출할 수 있도록 지원
AWS Region
API Gateway
YOUR VPC
...
요청 처리 워크플로우
요청 입력 수신
•전용 캐시 내 아이템
체크
•캐시 히트 시, 캐시된
아이템 리턴
제한 조건 체크
•현재 초당 요청 수
체크
•최대 횟수 초과 시,
429 응답 리턴
백엔드 호출 실행
Amazon ...
AWS Lambda
서버 프로비저닝/관리
없이 코드 실행
사용량에 따른
지속적 규모 조정
밀리초 단위로 사용한
만큼만 요금 부과
높은 가용성
및 자동 복구
사실상 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를...
AWS Lambda
데이터 변화
직접 또는
Endpoint로 호출
리소스 상태
변화
CloudWatch
알람/이벤트
Cron 주기별로
실행
이벤트 소스 람다 함수
언어
Node.js, Python, Java 8
C# (...
AWS Lambda 실행 모델
Synchronous Asynchronous Stream-based
myapi.com/call
AWS Lambda
Function
AWS Lambda
Function
AWS Lambda
F...
Lambda 함수 구조
Handler() 함수
호출(invocation)시
실행될 함수
이벤트 오브젝트
Lambda 함수 호출시
전달되는 데이타
(1st 전달 인자)
컨텍스트 오브젝트
Lambda 함수 호출시 전달되는
...
Best Practices
• 코드 패키지 사이즈를 최소화
• Lambda Handler와 Core Logic을 분리
• Execution Context 재사용을 활용
• Environment Variable을 적극 활...
www.example.com
Amazon CloudFront Amazon Simple
Storage Service
(S3)
Client
app.js
api.example.com
Amazon API Gateway AWS ...
35
Amazon Cognito
36
자격 증명 풀사용자 풀
가입 및 로그인 서비스
소셜 로그인 및 SAML 자격 증명
공급자를 통한 로그인
이메일 혹은 전화번호 확인
패스워드 분실 / 리셋
사용자 디렉터리 관리 및 사용자 프로파일
멀티 팩터 인증 (...
 앱 사용자는 사용자 풀을 통해 직접 로그인하거나
타사 자격 증명 공급자(IdP)를 통해 연동 로그인할 수 있음
 API Gateway는 성공적인 사용자 풀 인증 이후 토큰을 확인
 이를 사용하여 Lambda 함수...
 성공적인 인증 이후에 웹 또는 모바일 앱은
Cognito로부터 사용자 풀 토큰을 받음
 사용자는 자격 증명 풀을 사용하여
사용자 풀 토큰을 임시 AWS 자격 증명으로 교환
 AWS 자격 증명으로
다른 AWS 서비...
DEMO
Wild Rydes
실습자료 : https://github.com/aws-samples/aws-serverless-workshops/
더 나은 세미나를 위해
여러분의 의견을 남겨주세요!
▶ 질문에 대한 답변 드립니다.
▶ 발표자료/녹화영상을 제공합니다.
http://bit.ly/awskr-webinar
감사합니다.
[AWS Builders] AWS 서버리스 서비스를 활용한 웹 애플리케이션 구축 및 배포 방법 - 정창호, AWS 솔루션즈 아키텍트
Próximos SlideShares
Carregando em…5
×

[AWS Builders] AWS 서버리스 서비스를 활용한 웹 애플리케이션 구축 및 배포 방법 - 정창호, AWS 솔루션즈 아키텍트

1.119 visualizações

Publicada em

발표자료 다시보기: https://youtu.be/wt4Ue-1eYW8

서버리스는 운영상의 책임을 AWS로 전환하여 민첩성과 혁신을 높일 수 있도록 하는 클라우드의 네이티브 아키텍처입니다. 서버리스를 사용하면 서버를 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있습니다 AWS의 Lambda, API Gateway 및 다양한 관리형 서비스를 활용한Serverless 컴퓨팅 아키텍처의 모범 사례를 배웁니다.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

[AWS Builders] AWS 서버리스 서비스를 활용한 웹 애플리케이션 구축 및 배포 방법 - 정창호, AWS 솔루션즈 아키텍트

  1. 1. AWS 서버리스 서비스를 활용한 웹 애플리케이션 구축 및 배포 방법 정 창호 | Solutions Architect
  2. 2. 강연 중 질문하는 방법 AWS Builders Go to Webinar “Questions” 창에 자신이 질문한 내역이 표시됩니다. 기본적으로 모든 질문은 공개로 답변 됩니다만 본인만 답변을 받고 싶으면 (비공개)라고 하고 질문해 주시면 됩니다. 본 컨텐츠는 고객의 편의를 위해 AWS 서비스 설명을 위해 온라인 세미나용으로 별도로 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우, AWS 사이트(aws.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다. AWS는 본 컨텐츠에 포함되거나 컨텐츠를 통하여 고객에게 제공된 일체의 정보, 콘텐츠, 자료, 제품(소프트웨어 포함) 또는 서비스를 이용함으로 인하여 발생하는 여하한 종류의 손해에 대하여 어떠한 책임도 지지 아니하며, 이는 직접 손해, 간접 손해, 부수적 손해, 징벌적 손해 및 결과적 손해를 포함하되 이에 한정되지 아니합니다. 고지 사항(Disclaimer)
  3. 3. 서버리스 개요
  4. 4. Servers 서버의 물리적인 장애를 어플리케이션에서 어떻게 처리하지? 내 서버들에 대한 접근을 어떻게 통제할 수 있지? 서버의 수를 언제 늘려야 하지? 내 서버의 용량을 언제 늘려야 하지? 내 예산에 맞는 서버의 크기는? 내 서버들의 남아있는 용량은 얼마나 되지? (AAHHHHHHHHH!!)
  5. 5. 관리의 목표는 관리 대상의 제거 All of this goes away Provisioning and utilization Availability and fault tolerance Scaling Operations and management “서버 관리가 내재되어 있는 환경” “No Server is Easier To Manage Than no Server”
  6. 6. 서버에 대한 고민 없이 애플리케이션을 구축 및 작동 서버리스
  7. 7. 서버리스 - 클라우드 컴퓨팅의 진화 가상 서버 Amazon EC2 콘테이너 Amazon ECS 서버리스 AWS Lambda데이터센터 Minutes Seconds MillisecondsWeeks 개발자들이 느끼는 민첩한 애플리케이션 배포 시간의 변화
  8. 8. 서버리스 컴퓨팅 – 주요 이점 서버 준비나 관리 불필요 가용성 및 장애 방지 미 실행시 과금 안함 사용량 기반 자동 확장
  9. 9. 서버리스 아키텍처 – 주요 AWS 빌딩 블록 Amazon SNS Amazon SQS Amazon S3 Messaging Monitoring and Debugging Storage AWS X-Ray AWS Lambda Amazon API Gateway Orchestration API Proxy Compute AWS Step Functions Amazon DynamoDB Amazon Kinesis Analytics Database Edge Compute AWS Greengrass Lambda@Edge Amazon Athena Amazon Aurora Serverless
  10. 10. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) GET / GET /app.js GET /app.css Client 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  11. 11. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) Client app.js api.example.com Amazon API Gateway AWS Lambda 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  12. 12. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) Client app.js api.example.com Amazon API Gateway AWS Lambda Amazon Cognito Amazon Pinpoint Amazon Simple Storage Service (S3) Other AWS APIs 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  13. 13. 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  14. 14. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) GET / GET /app.js GET /app.css Client 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  15. 15. 지속적 배포를 통해 풀 스택 서버리스 웹 앱 호스팅 AWS Amplify Console
  16. 16. Amazon CloudFront Amazon Simple Storage Service (S3) AWS Amplify Console AWS AmplifyAWS CodeCommit AWS Amplify Console AWS Cloud9 source Build Deploy Developer
  17. 17. AWS Amplify Console
  18. 18. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) Client app.js api.example.com Amazon API Gateway AWS Lambda 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  19. 19. Amazon API Gateway  손쉬운 API 생성 및 배포  REST API 및 WebSocket API에 대한 지원  변경 사항을 안전하게 롤아웃하기 위한 Canary 릴리스 배포.  SDK 생성  API 사용 및 API 변경에 대한 CloudTrail 로깅 및 모니터링  강력하고 유연한 인증 메커니즘  타사 개발자를 위한 API 키 모든 규모의 API를 생성, 유지 관리 및 보호 AWS Lambda Amazon API Gateway Amazon EC2 AWS API On-prem server
  20. 20. API Gateway 모식도 모바일 앱 웹사이트 서비스 Amazon API Gateway API Gateway Cache Amazon EC2 퍼블릭 엔드포인트 Amazon CloudWatch 모니터링 퍼블릭으로 접근 가능한 모든 엔드포인트 Lambda Functions VPC내 엔드포인트 VPC내 어플리케이션 & 서비스 다른 AWS 서비스 완전 관리형 CloudFront Distribution Edge-OptimizedRegionalPrivate 고객 관리형 CloudFront Distribution 같은 AWS 리전내 어플리케이션 및 서비스 AWS Direct Connect 온프레미스 HTTPS Amazon API Gateway
  21. 21. API 엔트포인트 타입 – Edge optimized • Edge optimized: 글로벌 인터넷 상의 모든 위치에 존재하는 클라이언트에게 최소 지연시간으로 응답을 제공하도록 설계 AWS Region API Gateway Internet edge location edge location edge location Amazon CloudFront Distribution API Gateway 관리형 Amazon API Gateway
  22. 22. API 엔드포인트 타입 - Regional • Regional: 같은 리전내의 클라이언트로 부터 API를 호출시 최소 지연시간으로 응답을 제공하도록 설계 AWS Region API Gateway Internet Amazon API Gateway
  23. 23. API 엔드포인트 타입 - Private • Private: 보안에 민감한 API 업무를 위하여 VPC내 어플리케이션이 안전하게 API를 호출할 수 있도록 지원 AWS Region API Gateway YOUR VPC Amazon API Gateway
  24. 24. 요청 처리 워크플로우 요청 입력 수신 •전용 캐시 내 아이템 체크 •캐시 히트 시, 캐시된 아이템 리턴 제한 조건 체크 •현재 초당 요청 수 체크 •최대 횟수 초과 시, 429 응답 리턴 백엔드 호출 실행 Amazon API Gateway
  25. 25. AWS Lambda 서버 프로비저닝/관리 없이 코드 실행 사용량에 따른 지속적 규모 조정 밀리초 단위로 사용한 만큼만 요금 부과 높은 가용성 및 자동 복구 사실상 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행
  26. 26. AWS Lambda 데이터 변화 직접 또는 Endpoint로 호출 리소스 상태 변화 CloudWatch 알람/이벤트 Cron 주기별로 실행 이벤트 소스 람다 함수 언어 Node.js, Python, Java 8 C# (.NET Core), Go, Ruby 메모리 128MB to 3008MB 임시 디스크 사이즈 512MB 최대 실행 시간 900초 외부 서비스 호출 API로 접근 가능한 모든 서비스 호출 가능
  27. 27. AWS Lambda 실행 모델 Synchronous Asynchronous Stream-based myapi.com/call AWS Lambda Function AWS Lambda Function AWS Lambda Function
  28. 28. Lambda 함수 구조 Handler() 함수 호출(invocation)시 실행될 함수 이벤트 오브젝트 Lambda 함수 호출시 전달되는 데이타 (1st 전달 인자) 컨텍스트 오브젝트 Lambda 함수 호출시 전달되는 데이타(2nd 전달 인자)로 AWS Lambda 런타임과 상호작용하는 Method 제공 (request ID, log group 등.) import json def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello World!') }
  29. 29. Best Practices • 코드 패키지 사이즈를 최소화 • Lambda Handler와 Core Logic을 분리 • Execution Context 재사용을 활용 • Environment Variable을 적극 활용 • AWS Systems Manager의 Parameter Store 활용 Lambda 함수 코드의 모범사례
  30. 30. www.example.com Amazon CloudFront Amazon Simple Storage Service (S3) Client app.js api.example.com Amazon API Gateway AWS Lambda Amazon Cognito Amazon Pinpoint Amazon Simple Storage Service (S3) Other AWS APIs 서버리스 웹 앱 : 단일 페이지 앱(Single Page App)
  31. 31. 35 Amazon Cognito
  32. 32. 36 자격 증명 풀사용자 풀 가입 및 로그인 서비스 소셜 로그인 및 SAML 자격 증명 공급자를 통한 로그인 이메일 혹은 전화번호 확인 패스워드 분실 / 리셋 사용자 디렉터리 관리 및 사용자 프로파일 멀티 팩터 인증 (MFA), 기타 보안 기능 Lambda 트리거를 통한 사용자 지정 워크플로우 및 마이그레이션 권한이 제한된 임시 AWS 자격 증명을 얻어 다른 AWS 서비스에 액세스 사용자 풀과 자격 증명 풀
  33. 33.  앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 자격 증명 공급자(IdP)를 통해 연동 로그인할 수 있음  API Gateway는 성공적인 사용자 풀 인증 이후 토큰을 확인  이를 사용하여 Lambda 함수를 포함한 리소스 또는 고유 API에 대한 사용자 액세스 권한을 부여 37 1. 인증 및 토큰 취득 2. API 접근 사용자 풀 사용자 풀을 통해 API Gateway 및 Lambda에서 리소스 액세스
  34. 34.  성공적인 인증 이후에 웹 또는 모바일 앱은 Cognito로부터 사용자 풀 토큰을 받음  사용자는 자격 증명 풀을 사용하여 사용자 풀 토큰을 임시 AWS 자격 증명으로 교환  AWS 자격 증명으로 다른 AWS 서비스에 임시 액세스 38 사용자 풀 자격 증명 풀 1. 인증 및 토큰 취득 2. 토큰을 AWS 자격 증명 으로 교환 3. 자격증명으로 AWS 서비스 접근 소셜 로그인 기타 AWS 서비스 사용자 풀 및 자격 증명 풀을 사용하여 AWS 서비스에 액세스
  35. 35. DEMO
  36. 36. Wild Rydes 실습자료 : https://github.com/aws-samples/aws-serverless-workshops/
  37. 37. 더 나은 세미나를 위해 여러분의 의견을 남겨주세요! ▶ 질문에 대한 답변 드립니다. ▶ 발표자료/녹화영상을 제공합니다. http://bit.ly/awskr-webinar
  38. 38. 감사합니다.

×