Serverless Application - API 구성 및 Web Application 배포

2024. 1. 12. 13:34클라우드/AWS

1월 AWS Design (DevAx) (1/12)

  1. Serverless on AWS
  2. Serverless Computing 구축
  3. API 구성 및 Web Application 배포
  4. Event-driven Serverless Backend 구축

 


 

 

API 구성 및 Web Application 배포

API Gateway 기능 소개 및 backend 연결 실습

Application

...

 

Amazon API Gateway

어떤 규모에서도 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지 할수 있도록 하는 

 

 

API Gateway - API 기반 아키텍처의 관문 (Front door)

  • 백엔드에 통합된 API (Composition of API) 구성
  • 요청 조절 (Throttling) / 캐싱
  • 요청 / 응답 매핑 (Mapping)
  • 권한 부여 (Authorizion)
  • ...

 

 

API Gateway - Endpoint 유헝

Edge-Optimized [REST]

  • 지리적으로 분산된 클라이언트에게 API 서비스를 제고알 때
  • CloudFront 이용하여 API요청을 가장 가까운 cache 서버로 보냄
  • CloudFront 이용하여 Tls 연결 오버헤드를 줄임
  • HTTP header의 이름을 대문자로 처리 (예: Cookie)

 

Regional [REST & HTTP]

  • 동일 region의 클라이언트에게만 API 서비스를 제공할 때
  • 일반적인 use case에 적합
  • HTTP header의 이름을 그대로 전달

 

Private [REST]

  • VPC에서만 액세스할 수 있음
  • 외부로 노출이 필요 없는 내부 사용을 목적으로 하는 API서비스에 적합
  • HTTP header의 이름을 그대로 전달

 

 

API Architecture

 

 

API Gateway - 지원 Protocol

   

 

HTTP APIs & REST APIs

  • 동기식 Request/Resonse 모델

 

WebSocket APIs

  • ...

 

 

API Gateway - RESTful APIs

Feature REST API HTTP API
주요 피처    
Endpoint 유형    
Security    
Authorization    
API관리    
Caching    
CORS    
     
     

 

 

API Gateway - 인증

IAM Authorizer

  • 액세스 제어에 IAM과 AWS credential 사용
  • 클라이언트는 SigV4를 사용
  • API 생성/관리 사용자와 API 호출 권한 사용자를 구분하여 관리

 

Amazon Cognito Authorizer / JWT

  • 완전 관리형 자격 증명 및 액세스 관리 서비스 - OAuth2 호환

 

Lambda Authorizers

  • ...

 

Mutual TLS

  • ...

 

 

API Gateway - Stage

동일한 API가 다른 백엔드를 지정하도록 설정

 

API Gateway  
  API endpoints
  /prod
  /beta
  /dev

 

 

API Gateway - Canary 배포 (REST API)

 

 

API Gateway - Caching (REST API에서 사용 가능)

  • 엔드포인트 호출 감소 및 API에 대한 Request Latency 개선
  • 전체 Stage 캐싱 (only GET) 및 개별 method 캐싱 (GET, POST, etc..)

 

 

API Gateway - Custom Domain

 

더 간단하고 직관적인 URL을 원한다면

...

 

 

API Gateway - Throttling

 

* Requires Rest & API Keys and Usage Plans

 

 

API Gateway - 검증 및 변환

Validation

  • 들어오는 요청의 

 

Transformation

  • ...

 

 

API Gateway - Tracing with X-Ray

 

 

 

 

 

 

Serverless Application Model (SAM)

AWS SAM 구성

템플릿 변환

  • Shorthand syntax로 리소스 및 이벤트 소스 매핑을 표현
  • 서버리스 앵플리케이션을 위한 코드형 인프라(IaC)를 제공

 

AWS CLI (Command Line Interface)

  • 로컬 환경에서의 개발을 위한 도구 제공
  • 서버리스 애플리케이션의 빠른 반복, 디버깅, 빌드, 패키징 및 배포

 

 

AWS SAM 템플릿 변환

 

 

AWS SAM CLI

앱 개발
  • init
  • build
  • local
  • logs
  • traces
  • sync
스택 관리

 

스택 관리

  • validate
  • ...

 

 

AWS SAM CLI - 개발주기

Create Local testint Remote testing Staging Production
         
    AWS Cloud
Dev account
AWS Cloud

 

 

 

AWS Serverless Pattern

https://serverlessland.com 

  • IaC 유형으로 필터
  • 프로그래밍 언어로 필터
  • 서비스로 필터

 

 

SAM - Deploy backend (ride-controller)

 

 

SAM - Deploy backend (sam-app)

 

 

 

 

 

AWS Amplify를 이용한 Serverless Web Application Hosting 실습

contents