Programming

[AWS, Certified Developer Associate] API Gateway - 개요, 엔드포인트 유형, 통합 방식

빠쿤 2024. 6. 10. 21:22

AWS API Gateway

  • 클라이언트가 액세스 가능하도록 공개적인 REST API를 만들 수 있는 서버리스 서비스
  • 람다 + 게이트웨이 = 완전관리형 서버리스
  • 실시간 스트리밍 - 웹소켓 프로토콜 지원으로 실시간 스트리밍 가능
  • 버저닝 - API 버저닝 가능 (v1, v2.. )
  • 다양한 환경 지원 (dev, test, prod..)
  • 인증, 권한 부여 목적으로 보안 처리 가능
  • API 키를 통해 게이트웨이의 요청 수에 따라 쓰로틀링 가능
  • Swagger, Open API 3.0등 표준을 통해 API 정의 가능
  • API 게이트웨이 수준에서 요청/응답을 변환 및 무효화 통한 유효성 검사 가능
  • SDK, API 규격 생성 가능
  • API 응답 캐싱 가능
  • 람다와 통합
    • 람다 함수 실행
    • 람다를 REST API로 쉽게 내보낼 수 있음
  • HTTP와 통합
    • HTTP 엔드포인트를 내보낼 수 있음
    • 온프레미스 HTTP API, ALB를 API로 내보낼 수 있음
    • 용도 : API 게이트웨이를 사용한 속도제한, 캐싱, 사용자인증, API 키를 활용한 쓰로틀링 등
  • AWS 서비스와 통합
    • ex 1) API 게이트웨이에서 바로 SQS에 메시지 전송
    • ex 2) API 게이트웨이에서 바로 Kinesis Data Streams로 요청 전송 -> Kinesis Data Firehose -> S3 버킷

 

 

AWS API Gateway - 배포방식 (엔드포인트 유형)

  • Edge-Optimized (default)
    • 글로벌 클라이언트에 이용
    • 모든 CloudFront Edge Location을 통해 요청을 라우팅하므로 지연시간 짧음
    • API 게이트웨이는 생성한 한 리전에만 남으나 모든 CloudFront Edge Location에서 액세스 가능
  • Regional
    • CloudFront Edge Location 사용 X
    • 모든 사용자가 API 게이트웨이를 만든 리전 내에 위치할 것으로 예상할 때 사용
    • CloudFront 배포를 자체적으로 만들 수 있음 (Edge-Optimized와 동일한 방식 / 캐싱 전략, 분산 전략 등 더 많은 제어 가능)
  • Private
    • VPC 내에서만 액세스 가능 (interface VPC endpoint (ENI) 사용)
    • 액세스 정의에 리소스 정책 사용 가능

 

 

AWS API Gateway - 통합 방식

  • MOCK
    • 백엔드로 요청을 전송하지 않고 응답이 반환 (mock 데이터)
    • 개발 및 테스트 용도
  • HTTP / AWS (Lambda & AWS Services)
    • 통합 요청 / 응답을 모두 구성하는 방식
    • 요청 / 응답 매핑 템플릿을 사용해 데이터 매핑 구성 가능 (쿼리 문자열 매개변수 이름 변경, 본문 콘텐츠 수정, 헤더 추가/수정)
      • Velocity Template Language (VTL)을 통해 for 루프, if문 등 처리
    • Content-Type은 application/json 또는 application/xml 설정
    • Client -> API Gateway -> SQS Queue 처리 시 요청 구성 / SQS 큐가 이해할 수 있도록 API 호출에 대해 변경, 이름변경, 재정렬 수행
  • AWS_PROXY (Lambda Proxy)
    • 클라이언트의 요청이 람다의 입력이 됨 (람다로 프록싱)
    • 요청 / 응답 수정 불가
    • 요청 / 응답 로직에 대해 함수만 동작
  • HTTP_PROXY
    • 요청이 직접 전달 (HTTP 백엔드로 프록싱)
    • 백엔드 응답 시 응답을 클라이언트에게 전달
    • HTTP 헤더 추가 가능 (ex, API 키 추가)
    • ex) Client -> API Gateway -- API Key 추가 --> ALB

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!