2024. 1. 12. 13:34ㆍ클라우드/AWS
1월 AWS Design (DevAx) (1/12)
- Serverless on AWS
- Serverless Computing 구축
- API 구성 및 Web Application 배포
- 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
앱 개발
|
스택 관리 |
스택 관리
- validate
- ...
AWS SAM CLI - 개발주기
Create | Local testint | Remote testing | Staging | Production |
AWS Cloud Dev account |
AWS Cloud |
AWS Serverless Pattern
- IaC 유형으로 필터
- 프로그래밍 언어로 필터
- 서비스로 필터
SAM - Deploy backend (ride-controller)
SAM - Deploy backend (sam-app)
AWS Amplify를 이용한 Serverless Web Application Hosting 실습
contents
'클라우드 > AWS' 카테고리의 다른 글
AWS Dev Tools & Container Basic - AWS Dev Tools (0) | 2024.01.19 |
---|---|
Serverless Application - Event-driven Serverless Backend 구축 (0) | 2024.01.12 |
Serverless Application - Serverless Computing 구축 (0) | 2024.01.12 |
Serverless Application - Serverless on AWS (0) | 2024.01.12 |
Web Application - Web Application Architecture (0) | 2023.12.22 |