Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 웹 개발
- hacking
- 클라우드
- 인터랙티브 자바스크립트
- owasp
- cloud
- EC2
- web
- VUL
- JavaScript
- Vulnerability
- S3
- API Gateway
- aws
- VPC
- Lambda
Archives
- Today
- Total
yubyeong
클라우드(AWS) API Gateway 개념 본문
AWS API Gateway
- Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안할 수 있게 해주는 완전 관리형 서비스. API는 애플리케이션이 백엔드 서비스의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 "정문" 역할을 한다.
- Client에서 서버로 통신할 때 사용하는 많은 API의 정문(게이트웨이)같은 역할을 한다고 생각하면 되며, API가 지나가는 통로인 것이다.
✏️Amazon API Gateway는 규모에 상관없이 REST 및 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스 → API가 지나가는 통로!
API Gateway 특징
→ API Gateway를 이용하면 통합적으로 엔드포인트와 REST API를 관리가 가능하다.
- API Gateway는 트래픽 관리, 권한 부여 및 액세스 제어, 모니터링, API 버전 관리를 비롯해 최대 수십만 건의 동시 API 호출을 수락 및 처리하는 데 관련된 모든 작업을 처리.
- 프런트 엔드 HTTP 및 WebSocket 엔드포인트를 통해 노출된 API 메서드 호출.
- 백엔드 HTTP 엔드포인트, AWS Lambda 함수 또는 기타 AWS 서비스를 노출하기 위한 RESTful API, WebSocket API의 생성, 배포 및 관리.
- HTTP, REST, WEBSOCKET API 유형 제공.
- API Gateway를 통과하는 메시지에 대해 암호화하며 API Gatway 수준에서 캐싱 설정 가능하다.
- IP 주소 범위를 제한하여 액세스 설정 가능(화이트리스트).
- 요금 정책
- API를 Call 할 때와 전송하는 데이터 크기에 따라 비용 청구.
- 최소 요금이나 시작비용은 없다.
- 다만 HTTP API / REST API / WEBSOCKET API 각각 모두 요금대가 다르다.
API Gateway에서 제공하는 3가지 API 유형
🔵 1. HTTP API
"가볍고 빠른 RESTful API 서비스에 적합"
- 용도: RESTful API를 저비용, 저지연으로 빠르게 구축할 때 사용
- 특징:
- REST API보다 성능이 더 우수하고 요금도 저렴
- JWT 인증 및 CORS 설정 지원
- Lambda, HTTP 백엔드, AWS 서비스와 쉽게 연동
- 추천 사용처:
- 단순한 API 게이트웨이
- 마이크로서비스 아키텍처
- 프론트엔드 앱(API 호출이 많은 SPA 등)
🟢 2. REST API
"고급 기능이 필요한 경우에 적합한 전통적 RESTful API 지원"
- 용도: 완전한 REST API 기능 제공 (API 키, usage plans, stage 등 포함)
- 특징:
- 다양한 인증 방식 지원 (IAM, Cognito, Lambda Authorizer 등)
- 사용량 제한(Quota), 캐싱, 요청/응답 매핑 등 고급 기능 제공
- Swagger/OpenAPI 기반 설계 가능
- 추천 사용처:
- 엔터프라이즈급 API 서비스
- 정교한 접근 제어/사용량 제어가 필요한 환경
- 버전 관리가 필요한 복잡한 API 구조
🔄 3. WebSocket API
"실시간 양방향 통신(WebSocket 통신)을 제공"
- 용도: 클라이언트와 서버 간 지속적이고 양방향 통신이 필요한 경우
- 특징:
- HTTP와 달리 연결을 유지한 채로 양방향 통신 가능
- 게임, 채팅, 실시간 알림 등에 활용
- 클라이언트 이벤트(연결/해제/메시지)를 트리거로 Lambda 실행 가능
- 추천 사용처:
- 실시간 채팅 앱
- 주식 시세 스트리밍
- IoT 기기 상태 모니터링
한 줄 정리
- HTTP API : 단순한 API 프록시 기능정도로 사용. 단순한만큼 저렴하고 빠르다.
- REST API : API 관리 기능을 제공하며, 요청/응답에 대한 제어가 필요할 경우 적합, 복잡하며 비싸고 느리다.
- WebSocket API : 웹소켓 용도. 실시간 애플리케이션에서 주로 사용한다.API 종류 핵심 특징 대표 사용처
API 종류 핵심 특징 대표 사용처 HTTP API 빠르고 저렴한 REST API 프론트엔드 연동, 마이크로서비스 REST API 고급 기능이 필요한 REST API 엔터프라이즈 API WebSocket API 실시간 양방향 통신 지원 채팅, 실시간 앱
API Gateway 세부 기능
API Cache
- API Gateway에는 클라이언트에게 전송한 데이터를 저장하는 API 캐시 기능이 있다.
- REST API에서는 클라이언트가 보낸 동일한 요청에 대해 항상 동일한 응답을 보낸다.
- REST API의 경우 API Gateway 캐싱을 사용하여 엔드포인트에 대한 호출 수를 줄이고 API 요청의 지연 시간을 개선할 수 있다.
- 스테이지 또는 메서드에 대해 캐싱을 활성화하면 API Gateway는 지정된 TTL(Time-to-Live) 기간 동안 응답을 캐싱. 그런 다음 API Gateway는 엔드포인트에 요청을 보내는 대신 캐시에서 엔드포인트 응답을 조회하여 요청에 응답.
- API 캐시는 클라이언트에 보낸 응답을 API Gateway에서 캐시하고, 동일한 요청을 다시 받으면 캐시에 저장된 데이터를 보낸다. 이로써 Lambda 함수의 실행을 생략할 수 있어 응답 속도가 향상된다.
API Gateway의 VPC Link (프라이빗 연결)
- API Gateway로 생성한 API는 사용자가 관리하는 VPC 외부에 배치된다. 따라서 생성한 API는 인터넷을 통해 Public Subnet 내의 AWS 리소스에는 접근할 수 있지만, Private Subnet 내의 AWS 리소스에는 직접 접근할 수 없다.
- API Gateway가 Private Subnet 내의 AWS 리소스에 접근할 수 있도록 하려면 "VPC Link"를 생성해야 한다. 이를 통해 API와 Private Subnet 내의 리소스 간에 인터넷을 경유하지 않는 보안 통신이 가능해진다.
- VPC 링크를 생성할 때는 접근하고자 하는 AWS 리소스(예: EC2 인스턴스)를 직접 지정할 수 없다. NLB(Network Load Balancer) 또는 ALB(Application Load Balancer), Cloud Map(애플리케이션이 의존하는 백엔드 서비스 및 리소스에 논리적 이름을 매핑하는 데 사용할 수 있는 완전 관리형 솔루션)을 대상으로 지정해야 한다. (API의 종류에 따라 지정할 수 있는 리소스가 다르다)
API 종류 지원하는 AWS 리소스 REST API - NLB HTTP API - NLB
- ALB
- Cloud Map
Authorizer
- API Gateway의 Authorizer를 사용하면 API에 대한 접근/인증 제어를 구현할 수 있다. Authorizer는 API 호출이 들어올 때마다 요청을 검사하고, 인증이 성공적으로 완료된 경우에만 API에 접근을 허용한다.
- API Gateway에 연결한 엔드포인트에 권한 부여자로 연결→ Authroizer의 Allow/Deny 응답에 따라 엔드포인트 접근 허가/거부
- → 해당 엔드포인트 호출 시에 Authorizer 실행
- Authorizer에는 [1]Cognito의 사용자 풀 (JWT Authorizer)과 [2]Lambda Authorizer를 사용하는 방법이 있다.
- Cognito의 사용자 풀 (JWT Authorizer): 넘겨받은 JWT를 그대로 활용해서 리소스 접근 권한을 확인.
- Lambda Authorizer: 개발자가 인증 프로세스를 Lambda 함수로 직접 작성해야 한다. 커스텀한 로직으로 API에 대한 접근 제어를 구현할 수 있어 유연성이 높지만, 보안 대책 등 직접 관리 하기에 복잡성이 증가한다.
참고자료
https://aws.amazon.com/ko/api-gateway/
https://inpa.tistory.com/entry/AWS-📚-API-Gateway-개념-기본-사용법-정리#api_gateway_실전_사용_http_api
https://jibinary.tistory.com/151
'클라우드(Cloud)' 카테고리의 다른 글
클라우드(AWS) S3 개념 및 버킷 생성 (0) | 2025.05.10 |
---|---|
클라우드(AWS) Lambda 개념 (1) | 2025.05.10 |
클라우드(AWS) VPC, EC2 개념 (0) | 2025.05.08 |
클라우드(AWS) 개념 (0) | 2025.05.08 |