[AWS] API Gateway란?

2025. 7. 4. 19:55·AWS

📌 API Gateway

 

 

규모와 관계없이 REST 및 WebSocket API를 생성, 관리, 모니터링 및 보호하기 위한 AWS 서비스

공식문서에서는 위와 같이 설명한다.

쉽게 말하면, API Gateway는 클라이언트(웹, 앱)가 서버의 다양한 API와 직접 통신하지 않고, 하나의 입구를 통해 통신하게 해주는 역할을 한다. 

 

예를 들어, 앱이 아래처럼 여러 API를 갖고 있다고 가정하자.

  • https://auth.myapp.com/login
  • https://contract.myapp.com/upload
  • https://user.myapp.com/profile

클라이언트에서는 여러 도메인 또는 포트로 각각 호출해야 한다. 이는 번거롭고 나중에 백엔드 구조가 바뀌면(ex. API 앞 주소가 바뀜) 클라이언트도 다 바꿔야 한다. 

그런데 API Gateway를 사용하면 아래와 같이 바꿔준다. 

  • https://api.myapp.com/login → 실제로는 auth.myapp.com으로 라우팅
  • https://api.myapp.com/upload → contract.myapp.com으로 전달
  • https://api.myapp.com/profile → user.myapp.com으로 연결
즉, 클라이언트는 모든 요청을 https://api.myapp.com 하나만 쓰면 되고, 
Gateway는 요청을 어디로 보낼지 알아서 라우팅해준다. 

 

API Gateway의 장점

1. 주소 통일: 클라이언트에서는 하나의 도메인(api.myapp.com)만 쓰면 된다.

2. 보안, 인증 처리: Gateway에서 공통 인증(JWT 검증 등)을 처리해주면, 개별 서비스는 단순화된다.

3. 속도 제어: 특정 사용자나 IP의 과도한 요청 제한 가능

4. 로깅, 모니터링, 트래픽 분석: 요청 흐름을 한 곳에서 추적 가능

5. 버전 관리가 쉬움: /v1/user, /v2/user 처럼 API 버전을 관리할 수 있음

 

AWS에서 API Gateway의 조합

Spring Boot 서버가 EC2에 있다면, 

  • 클라이언트가 api.myapp.com/upload로 요청
  • API Gateway가 이 요청을 받아서
  • EC2의 서버 /upload로 전달

 


📌 API Gateway의 아키텍처

 

API Gateway는 클라이언트가 EC2에서 실행 중인 워크로드, Lambda에서 실행 중인 코드와 같은 백엔드 서비스에서

데이터, 비즈니스 로직 또는 기능에 액세스할 수 있게 해주는 “정문” 역할을 한다. 

 

 


📌 API Gateway의 기능

  1. 상태저장(WebSocket) 및 상태비저장(HTTP 및 REST) API에 대한 지원
  2. 인증 (IAM, Lambda 권한 부여자 함수)
  3. 변경 사항을 안전하게 롤아웃하기 위한 Canary 릴리즈 배포
  4. API 사용 및 변경에 대한 CloudTrail 로깅 및 모니터링
  5. CloudWatch 액세스 로깅 및 실행 로깅.
  6. 사용자 지정 도메인 이름 지원.

 

 


참고자료

https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/welcome.html

 

Amazon API Gateway란 무엇입니까? - Amazon API Gateway

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

'AWS' 카테고리의 다른 글

[AWS] Amazon OpenSearch  (0) 2025.06.10
[AWS] 서버리스와 AWS Lambda  (3) 2025.06.10
[AWS] Bedrock과 Knowledge Base  (3) 2025.06.06
'AWS' 카테고리의 다른 글
  • [AWS] Amazon OpenSearch
  • [AWS] 서버리스와 AWS Lambda
  • [AWS] Bedrock과 Knowledge Base
myeunee
myeunee
누룽지
  • myeunee
    누룽지 블로그
    myeunee
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • AWS (4)
      • ArgoCD (2)
      • Kubernetes (2)
      • GCP (4)
      • Spring Boot (3)
      • Golang (5)
      • Data Engineering (4)
      • Docker (6)
      • Linux System (3)
      • 기타 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
myeunee
[AWS] API Gateway란?
상단으로

티스토리툴바