자격증/AWS SAA

[AWS SAA] API Gateway

14ben 2024. 2. 5. 17:55
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에서 카나리 배포 지원

 

 
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