728x90
REST
(Representational State Transfer)
추상적 정의
- 소프트웨어 아키텍쳐 스타일, 서버에서 제공하는 자원을 정의하고 주소 지정하는 방식
구체적 정의
- 모든 자원(Resource)을 HTTP URI(Uniform Resource Identifier)로 표현.
- HTTP Method(GET, PUT, POST, DELETE)를 이용해 자원에 대한
CRUD(Create, Read, Update, Delete) 작업 지시
예시
- 웹사이트 내 각각의 이미지와 텍스트 파일은 고유의 URI를 가짐.
- 클라이언트는 이 URI를 통해 자원에 접근(조회, 수정 등)
REST의 핵심 요소
- 자원(Resource): 서버에서 제공하는 모든 자원
- 행위(Verb): HTTP Method를 사용해 자원에 접근하는 행위
- 표현(Representations): HTTP Method에 응답하여 서버가 전달하는 자원을 표현하는 방법
REST API
- REST 원칙을 따르는 API
- HTTP 기반의 통신에서 리소스 및 자원의 상태 전달
API Gateway
정의
- REST API 및 WebSocket API를 생성, 유지, 관리하는 서비스
- 다양한 백엔드 서비스(Lambda, AWS 서비스, VPC, HTTP 웹 페이지)와 연동
- User > API Gateway > Lambda
핵심 구성 요소
Resource
- 서비스 대상 자원, 고유의 URI 부여
- API Gateway 의 핵심 구성요소 중 하나
- 서비스의 대상이 되는 자원을 의미
- 모든 자원을 HTTP URI 로 표현하는 REST 의 특성상, 각 리소스는 고유의 URI 를 부여받음
- Resource 는 HTTP Method 를 생성할 수 있다.
- Method 에 대해 연결 포인트를 만들어 행동 대상을 지정할 수 있음
Method
- API Gateway 의 핵심 구성요소 중 하나
- 서비스의 대상으로 지정된 자원에 대해 취할 행동을 정의함
- HTTP Method 가 사용되며 GET, PUT, POST, HEAD, OPTION 등이 있음
- 각 Method 마다 연결 포인트를 지정할 수 있음
- Lambda 를 연결 포인트로 지정시 Lambda Function 을 호출하여 수행함
Stage
- 리소스의 배포판, 실제 사용을 위해 배포 필요
- API Gateway 의 핵심 구성요소 중 하나
- 위에서 언급한 두 개의 요소를 하나로 합쳐 Console 에서는 'Resource'라 표현하며,
'Resource'를 배포한 것이 Stage - Client 가 실제로 사용하기 위해 생성해야하는 배포판
- Stage 생성시 각 리소스에 대해 URI 가 생성된 것을 확인할 수 있음
특징 및 활용
- API Gateway와 Lambda의 연동으로 서버리스 아키텍쳐 구현 용이
- 정적 페이지(S3)와 동적 페이지(Lambda) 관리를 위한 CloudFront 연동
- HTTPS endpoint를 통해 URI 게시
- 프로비저닝, 관리, 개발 집중화 지원
Canary Release
- 신규 버전을 일부 사용자에게 먼저 적용하여 점진적으로 확장하는 배포 전략
- API Gateway에서 카나리 배포 지원
출처 : Udemy_AWS Solutions Architect C03 강의
hwanyoung12
728x90
'자격증 > AWS SAA' 카테고리의 다른 글
[AWS SAA] Cognito (0) | 2024.02.05 |
---|---|
[AWS SAA] Redshift & Athena (0) | 2024.02.05 |
[AWS SAA] Snow Family (0) | 2024.02.05 |
[AWS SAA] Lambda (1) | 2024.02.05 |
[AWS SAA] EKS & ECS (0) | 2024.02.05 |