AWS API 종류와 장단점

Nogglee·2024년 9월 25일

AWS

목록 보기
2/3
post-thumbnail

AWS API Gateway란?

AWS API Gateway는 클라우드 기반에서 API를 구축하고 관리하는데 사용되는 서비스다. 주로 REST API와 HTTP API 두 가지 종류가 많이 사용된다.

종류별 장단점 요약표

API 종류장점단점적합한 경우
REST API- 고급 기능 제공
- 다양한 AWS 서비스 통합 가능
- 비용이 상대적으로 높음
- 설정이 복잡함
- 고급 인증 및 데이터 처리
- 복잡한 비즈니스 로직 처리
- 세밀한 API 관리가 필요 시
HTTP API- 비용 저렴
- 빠른 성능
- 간단한 API 설정
- Lambda 통합 가능
- 고급 기능 제한
- 일부 인증 기능 제한
- 단순한 CRUD 작업
- 비용 절감
- 빠른 API 서비스 구축
WebSocket API- 실시간 양방향 통신 지원
- 연결 유지
- 빠른 데이터 전송
- 관리 복잡할 수 있음
- 실시간 통신의 특성상 비용이 많이 들 수 있음
- 실시간 데이터 전송
- 채팅, 알림 등 실시간 상호작용이 필요한 프로젝트

1️⃣ REST API

  • HTTP 메서드(GET, POST, PUT. DELETE)를 사용하여 클라이언트와 서버 간에 데이터를 주고받는 아키텍처 스타일이다.
  • AWS API Gateway에서 제공하는 고급 API 서비스다.
  • 웹에서 데이터를 주고받을 때 일반적으로 많이 사용되는 표준 방식이다.
  • 리소스(데이터)를 URL로 나타낸다.
  • 서버는 클라이언트의 상태를 저장하지 않으며, 각 요청은 독립적이다.
    때문에 매번 필요한 데이터를 포함하여 요청을 보내야한다.
  • JSON, XML 등 다양한 포맷으로 데이터를 주고받을 수 있다.

장점

  • 다양한 기능
    AWS의 다양한 서비스와 통합되어 강력한 기능을 제공한다.
    ex. 요청/응답 변환, 데이터 유효성 검사, 캐싱, 모니터링, 속도 제한 등
  • 세밀한 제어
    요청/응답의 형식을 제어하거나, API 호출을 세밀하게 관리할 수 있다. 특히 API 요청을 변환하거나, 응답 데이터를 가공하는 등의 작업이 가능하다.
  • AWS 서비스 통합
    Lambda 함수, DynamoDB, S3 등 다양한 AWS 서비스와 통합되어 동작할 수 있다.
  • 사용자 인증
    AWS Cognito, IAM 또는 API 키를 사용한 인증이 가능하며, OAuth도 지원한다.

단점

  • 비용
    HTTP API보다 더 비싼 비용이 발생한다.
    기능이 많아지는 만큼 운영 비용이 증가할 수 있다.
  • 복잡성
    많은 기능을 제공하는 만큼, 설정과 관리가 복잡할 수 있다.
    세부적인 설정을 모두 처리해야 할 경우가 많아 초기 설정이 더 까다롭다.

적합한 경우

  • 복잡한 비즈니스 로직 처리 또는 고급기능(데이터 변환, 모니터링, 캐싱)이 필요한 프로젝트
  • 인증, 권한 관리, 세부적인 API 제어
  • API 요청/응답의 데이터 형식 제어 또는 여러 AWS 서비스 통합 시

2️⃣ HTTP API

  • REST API보다 간단하고 빠르며 비용이 저렴하다.
  • 단순한 CRUD 작업이나 기본적인 API 요청을 처리하는데 적합하다.

장점

  • 비용 효율성
    요청당 비용이 낮고, 서버리스 환경에서 비용 절감을 위해 사용된다.
  • 간단한 설정
    REST API보다 설정이 간단하여 빠르게 API를 구축할 수 있다.
  • 빠른 성능
    경량화된 구조로 불필요한 기능이 제외되어서 빠르다.
  • Lambda 함수와의 통합
    HTTP API도 Lambda 함수와의 통합을 지원하며, 기본적인 API 기능을 충분히 제공한다.

단점

  • 기능 제한
    REST API에서 제공되는 일부 고급기능이 지원되지 않는다.
  • 인증 기능 제한
    복잡한 인증 흐름이 필요한 경우에는 REST API를 사용해야 할 수 있다.

적합한 경우

  • 데이터의 생성, 조회, 수정, 삭제 작업을 처리하는 경우
  • 비즈니스 로직이 간단하고, 비용을 최소화하려는 상황
  • 빠르게 API를 생성하고 배포해야하는 프로젝트

3️⃣ WebSocket API

  • 채팅, 알림, 게임 등의 실시간 데이터 전송이 필요한 프로젝트에 사용합니다.

장점

  • 실시간 통신
    클라이언트와 서버 간 양방향 실시간 통신을 지원한다.
    데이터 전송이 빠르고, 지속적인 연결을 유지한다.
  • 상시 연결 유지
    HTTP 요청-응답 방식이 아니라, 한 번에 연결이 이루어지면 클라이언트와 서버가 연결을 계속 유지하면서 데이터를 주고받을 수 있다.
  • 효율적인 데이터 처리
    REST API로는 처리하기 어려운 실시간 이벤트 기반의 데이터를 처리할 때 적합하다.

단점

  • 복잡한 관리
    지속적인 관리가 필요하며, 다른 방식에 비해 관리방법이 좀 더 복잡할 수 있다.
  • 비용
    연결을 유지하는 시간이 길수록 비용이 증가할 수 있다.
    실시간 서비스에서는 통신이 잦기 때문에 비용이 많이 들 수 있다.

적합한 경우

  • 채팅, 실시간 알림, 실시간 데이터 업데이트가 필요한 애플리케이션
  • 서버와 클라이언트가 지속적으로 데이터를 주고받는 환경
profile
Product-minded Engineer

0개의 댓글