[AWS] Amazon API Gateway

gyeol·2025년 10월 22일

AWS

목록 보기
13/20
post-thumbnail

API Gateway는 개발자가 어떤 규모로든 API 생성, 게시, 관리, 모니터링 등에 도움이 되는 완전 관리형 서비스이다. 즉, API 트래픽을 관리하고 담당하는 완전 관리형 서비스를 말한다.

기능설명
리소스 정책회사 내부 네트워크와 같은 제한된 신뢰할 수 있는 IP 주소 집합에서만 접근을 허용하고 그 외 접근을 거부하는데 사용
사용량 계획 및 API 키- 사용자의 구독 여부에 따라 프리미엄 콘텐츠에 대한 접근
- 제한 가능 = 가장 적은 운영 오버헤드로 요구사항 충족
- Bot의 사기 요청 차단을 위해 IP 차단 및 속도 제한 구현에 사용
사용자 지정 도메인- AWS 기본 도메인 외에도 API URL을 회사 도메인과 연결해 HTTPS를 적용하는데 사용
- 개별적이고 안전한 URL을 운영 효율적 제공위해 Route53 호스팅 존 및 ACM 와일드카드 인증서와 함께 사용
- 특정 TLS 버전 사용 및 특정 서드파티 CA에서 서명한 TLS 인증서도 허용해 로컬에서 생성된 인증서도 ACM에 적용 가능
  • API 유형
    • REST API
      일반적인 웹 서비스 구축
    • Private API Gateway
      동일한 VPC에서 실행되는 서비스 간 내부 통신에 사용
  • 엔드포인트 유형
    • Edge-optimized Endpoint
      Amazon CloudFront를 사용해 전 세계 엣지 로케이션에 배포되어 최종 사용자에게 가장 가까운 시점에서 API 요청을 처리해 지연 시간 최소화
    • Region Endpoint
      특정 AWS 리전에 배포되며 해당 리전 내에서 지연 시간 최소화

API Gateway 아키텍처

API Gateway는 단독으로 사용하지 않기에 다른 서비스와 통합되어 사용된다.

Lambda와의 통합

AWS Lambda는 서버 관리 없이 자동으로 확장되는 서버리스 컴퓨팅 서비스로,
공개 접근이 가능한 웹 애플리케이션부터 비동기 데이터 처리까지 폭넓게 활용할 수 있다.
예를 들어 연휴 시즌처럼 조회량이 급격히 증가하는 시기에도 Lambda는 자동으로 확장되어 확장 가능한·탄력적인애플리케이션 운영을 가능하게 한다.

Lambda는 센서 데이터 수집 및 처리에도 적합하다.
예를 들어 IoT 환경에서 들어오는 센서 메시지를 실시간으로 처리하고
그 결과를 DynamoDB에 저장함으로써 고가용성시스템을 구현할 수 있다.

또한 REST API 설계에서도 Lambda를 활용하면 별도의 서버를 유지관리할 필요 없이 가장 적은 관리 노력으로 관계형 데이터를 처리할 수 있다.
이때 프로비저닝된 동시성 기능을 사용하면
Lambda 함수를 항상 미리 준비된 상태로 유지하여 콜드 스타트 문제 없이 일관된 낮은 지연시간을 제공할 수 있다.

마지막으로, 클라이언트의 액세스 요청이 불규칙하고 장시간 유휴 상태에 놓이는 웹 애플리케이션의 경우, Lambda와 DynamoDB를 함께 사용한 서버리스 구조가 특히 효과적이다.

메시지 큐 및 스트리밍 서비스 통합

Amazon SQS는 사용자의 요청이 한꺼번에 몰리는 상황에서도 요청을 큐에 임시 저장하여 DynamoDB로의 직접 쓰기 요청을 버퍼링한다. 사용자가 API Gateway로 요청을 전송하면 요청 데이터를 큐에 전송하고, Lambda와 같은 다른 서비스가 큐에 쌓인 메시지를 읽어 작업을 수행한다.

또한 Amazon Kinesis Data Firehose를 사용하면 예측하기 어려운 고객의 이벤트 데이터나 로그 스트림을 실시간으로 캡처하여 S3 버킷으로 자동 전송할 수 있다. 클라이언트가 API Gateway로 JSON을 전송하면 API Gateway가 Kinesis Firehose Delivery Stream에 데이터 푸시하고, Firehose가 데이터를 S3와 같은 저장소에 자동으로 저장한다.

이런식으로, 데이터를 직접 전달해 비동기, 실시간 데이터 처리 파이프라인을 구성할 수 있다.

VPC 통합

인터페이스 VPC 엔드포인트를 사용하면 동일한 VPC 내에서 프라이빗 API Gateway를 실행할 때 가장 적은 코드 변경으로 API 간 통신이 인터넷을 경유하지 않고 VPC 내에서 이뤄지도록 할 수 있다.
또한, VPC Link를 사용해 API Gateway가 프라이빗 VPC 서브넷에 호스팅된 컨테이너의 백에드 서비스에 접근할 수 있도록 할 수 있다.

AWS WAF (Web Application Firewall)

SQL 인젝션, XSS 공격으로부터 REST API를 보호해준다.
또한, 중앙 정책 관리가 필요한 경우에는 AWS Firewall Manager를 통해 여러 계쩡 및 리전에 걸친 WAF 정책을 일괄 배포하고 관리할 수 있다.

인증/인가

  • Amazon Congnito User Pool Authorizer
    AWS의 관리형 솔루션으로 사용자 인증 및 권한을 검증해 개발 부담을 줄이고 수백만명 사용자를 대상으로 가장 높은 운영 효율성으로 인증 서비스를 제공한다.

  • Lambda Authorizer
    좀 더 세밀한 인증/인가 로직이 필요한 경우, 사용자가 정의한 Lambda 함수를 Authorizer로 사용하여 요청을 검증할 수 있다.

  • API Keys 및 Usage Plans
    공개 API 또는 제한된 사용자의 접속을 제어해야 할 때, API Gateway에서 발급한 API 키를 통해 접근 제어 및 요청량 제한을 설정할 수 있습니다.

profile
공부 기록 공간 '◡'

0개의 댓글