본문 바로가기
Public Cloud/AWS

[Serverless] AWS API Gateway 개념과 lambda와 사용 예시

by SE_123 2023. 6. 6.

AWS API Gateway

AWS API Gateway는 RESTful 및 WebSocket API를 손쉽게 생성 및 운영할 수 있게 해주는 서버리스 아키텍처 애플리케이션 개발에 필수적입니다. 간단한 인터페이스를 통해 API를 쉽게 생성하고 관리할 수 있으며,  마이크로서비스 아키텍처(MSA)를 구축하고 서버리스 클라우드 기반 애플리케이션을 개발하는 데 좋습니다.

  • 주로 Rest API( 서버-클라이언트 아키텍처, Stateless) 기반 서비스에 사용됩니다. 
  • 단일 EndPoint ,라우팅 기능, 사용자 인증 기능 그리고 캐싱과 로깅 기능을 제공합니다. 
  • 완전 관리형 서비스로, 개발에 시간과 비용을 줄일 수 있습니다. 

01. Endpoint

AWS API Gateway에는 세 가지 유형의 엔드포인트가 있습니다.일반적으로는 Edge-Optimized Endpoint를 사용하고, 특정 리전에서 액세스가 필요한 경우 Regional Endpoint를 사용합니다. Private Endpoint는 보안 요구 사항이 큰 VPC에서 애플리케이션을 실행하는 경우 사용합니다. 

  • Edge-Optimized EndPoint: AWS의 글로벌 CDN인 Amazon CloudFront를 사용하는 엔드포인트입니다. 
  • Regional EndPoint: 특정 AWS 리전 내에서 API Gateway를 사용하는 엔드포인트입니다. 
  • Private EndPoint: Private Endpoint는 VPC 내에서만 액세스 가능한 엔드포인트입니다. 

02. Protocol

AWS API Gateway는 RESTful APIs와 WebSocket APIs를 모두 지원합니다. 개발자는 API Gateway를 통해 다양한 기능을 설정하고 필요에 따라 인증, 권한 부여, 스로틀링 등을 구성하게 됩니다. 

  • RESTful APIs : RESTful APIs는 HTTP 프로토콜을 기반으로 하며, 클라이언트가 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다. 
  • WebSocket APIs : WebSocket을 사용하여 클라이언트와 서버 간에 지속적인 연결을 및 양방향 통신이 가능합니다. 실시간 채팅, 실시간 데이터 스트리밍, 게임 서버 등 다양한 실시간 애플리케이션을 구축에 용이합니다. 

03. 사용 예시

  • 액세스 로그 활성화 
  • RPS에 따른 lambda 프로비전 구성
  • RDS proxy로 DB 커넥션 관리
  • 람다 Insights 사용 가능

 

일반적 아키텍처

'

참고 이미지: https://www.megazone.com/techblog-20210112-creating-a-rest-api-for-amazon-documentdb-with-mongodb-compatibility-with-amazon-api-gateway-and-aws-lambda/

(Amazon API Gateway와 AWS Lambda를 사용해 Amazon DocumentDB 용 REST API 생성하기)

  • 동기식API사용을 위해 AWS API Gateway를 이용합니다. 
  • 관계형 데이터베이스(RDS)를 연결합니다. 
  • Lambda에서 다양한 로직을 사용합니다.

문제점

Serverless 방식으로, Amazon API Gateway와 AWS Lambda를 사용해 DB API 구성시, 다음과 같은 문제점이 발생할 수 있습니다.

  • 지속적인 요청으로 DB부하가 일어날 수 있습니다. 
  • 실행시간에 따라 높은 클라우드 비용 발생이 가능합니다. 
  • 타임아웃(API Gateway:29초, 람다 : 15분)에 제한이 생길 수 있습니다. 
  • 동시성에 의해, 스로틀링 오류 발생이 가능합니다. 

 

 


 

⭐️Serverless 시리즈⭐️

[Serverless] AWS Lambda 개념과 Workshop

[Serverless] AWS Lambda 내부 동작방식과 스로틀링

[Serverless] AWS API Gateway 개념과 lambda와 사용 예시

 

반응형