본문 바로가기
Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심

SAA-C03 핵심 #30, API Gateway

by 네트워크 엔지니어 환영 2024. 1. 19.
반응형

필수개념

  • REST(Representational State Transfer)의 추상적 정의 :
    소프트웨어의 구성요소들 사이의 관계를 표현한 '소프트웨어 아키텍쳐'의 한 형식, Server에서 제공하는 자원을 정의하고 자원에 대한 주소를 지정하는 방식을 뜻함.
  • REST(Representational State Transfer)의 구체적 정의 :
    모든 자원(Resource)을 HTTP URI(Uniform Resource Identifier)로 표현하고, '행위'에 해당하는 HTTP Method(GET, PUT, POST, DELETE)를 통해 해당 자원에 대해 CRUD를 지시하는 것을 뜻함.
    • CRUD : Create(생성), Read(조회), Update(수정), Delete(삭제)
  • 하나의 웹사이트가 존재하고 각종 이미지와 텍스트 파일 등을 제공할 경우, 이미지 하나하나와 텍스트 파일 하나하나는 고유의 URI를 갖게 됨.
  • Client는 그 URI를 GET(조회), PUT(수정)하는 등의 행동을 통해 통신할 수 있음.
  • http://www.abc.com/user/hyoh/name -- > 'name'으로 저장된 resource의 URI
  • HTTP GET /user/hyoh/name -- > 해당 resource 호출, 'name'의 값을 가져옴

 

REST의 필수 3요소

  • 자원(Resource) : Server에서 제공하는 모든 Resource
  • 행위(Verb) : HTTP Method를 사용하여 Server에서 제공하는 Resource를 취득하는 행위
  • 표현(Representations) : HTTP Method에 응답하여 Server가 전달하는 Resource를 표현하는 방법
    HTTP GET /user/hyoh/name
    {
       "name" : "hyoh"('name'의 값)
    }

 

REST API

  • 위에서 설명한 REST의 특성에 맞게 설계한 API를 REST API라 칭함

 

API Gateway란?

  • REST API 및 Websocket API를 생성, 유지, 관리하는 AWS 서비스
  • Lambda, AWS Service, VPC, HTTP webpage 등과 연동하여 resource에 대한 HTTP Method 정의 가능
  • API Gateway와 Lambda를 연동하여 사용하기 용이함
    : User - > API Gateway -> Lambda 
  • 핵심 구성요소로 Resource와 Method, Stage가 있음
  • API Gateway 생성시, 최상위에 '/ Method(Root Method)'가 하나만 존재하는 상태로 시작함
  • Cloudfront를 통해 정적 페이지는 S3에서 제공하고, 동적 페이지 혹은 데이터는 Cloudfront - API Gateway - Lambda를 통해 처리하는 방식 사용 가능
  • API Gateway는 HTTPS endpoints 통해 URI를 게시함
  • AWS가 프로비저닝과 관리를 분담하고 고객이 개발만을 집중하고자 할 경우 API Gateway와 Lambda가 유용하게 사용될 수 있음

 

Resource

  • API Gateway의 핵심 구성요소 중 하나
  • 서비스의 대상이 되는 자원을 의미
  • 모든 자원(Resource)를 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가 생성된 것을 확인할 수 있음

 

Canary Relase(카나리 배포)

  • 신규 버전을 완전히 배포하기 전에 일부 트래픽에 한해 기존 버전이 아닌 신규 버전으로 배포하여 점진적으로 확장하는 전략
  • API Gateway 또한 카나리 배포를 활용할 수 있음

 

** 참고 서적 및 링크

댓글