API 게이트웨이는 클라이언트와 백엔드 서비스 사이에서 API 호출을 관리하고 보안을 강화하며 로드 밸런싱 등의 기능을 수행하는 중요한 구성 요소이다. 이를 통해 API를 만들고, 공유하고, 유지보수하고, 보안을 강화하기 위해 호스팅, 로깅, 모니터링 및 기타 기능을 제공한다.
<간단하게 주요 기능>
요청 라우팅 및 로드 밸런싱: 클라이언트 요청을 적절한 백엔드 서비스로 라우팅하고, 트래픽이 특정 서버에 집중되지 않도록 로드 밸런싱을 수행합니다.
인증 및 권한 부여: OAuth, JWT, API 키 등의 인증 방식을 지원하여 보안을 강화하고, 특정 API에 대한 접근 권한을 제어할 수 있습니다.
요청 변환 및 데이터 처리: 클라이언트 요청을 백엔드 서비스에 맞게 변환하고, 응답 데이터를 조작하거나 포맷을 변환하는 기능을 제공합니다.
로깅 및 모니터링: API 호출 로그를 수집하고, 요청 및 응답 시간을 모니터링하며, 트래픽 분석을 통해 성능 병목을 파악하고 최적화할 수 있습니다.
게이트웨이에 대하여 구글링해보면 AWS 에 대한 API Gateway는 많이 나오지만 Google cloud에 대한 내용은 많이 부족하다. 내가 Google Cloud 서비스를 선택한 이유는 현재 쓰고 있는 서버가 Google Cloud VM인 이유가 가장 컸다.
API Gateway에 대한 주요 구성요소를 보여주는 다이어그램이다.
AWS 처럼 HTTP API/ REST API/ WEBSOCKET API 이렇게 나눠져 있는것이 아닌 API 구성만 선택하고 OpenAPI 사양으로 작성하면 된다.
Swagger를 작성해봤으면 크게 어렵지는 않지만, Google에서 사용하는 매개변수가 있다.
path_translation 옵션
API Gateway의 x-google-backend 확장 프로그램은 두 가지 경로 변환 전략을 지원합니다.
1. APPEND_PATH_TO_ADDRESS (기본값)
클라이언트 요청의 리소스 경로를 백엔드 주소 뒤에 추가하는 방식
대부분의 백엔드 서비스에서 사용됨
x-google-backend:
address: https://PROJECT_ID.appspot.com
path_translation: APPEND_PATH_TO_ADDRESS
- 클라이언트 요청: /hello/Dave
- 백엔드 요청: https://PROJECT_ID.appspot.com/hello/Dave
2. CONSTANT_ADDRESS
백엔드 주소를 고정하고, 리소스 경로를 쿼리 매개변수로 전달하는 방식
주로 Cloud Run, Cloud Functions에서 사용됨
x-google-backend:
address: https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello
path_translation: CONSTANT_ADDRESS
- 클라이언트 요청: /hello/Dave
- 백엔드 요청: https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello?name=Dave
이처럼 path_translation 옵션을 적절히 설정하면 API Gateway에서 백엔드 서비스와의 원활한 URL 매핑이 가능하다.
설정완료!
이제 내가 매핑한 API의 Request count, Response status code, 요청 속도 등의 대시보드를 한눈에 볼수있다.
'Google Cloud' 카테고리의 다른 글
[Cloud Storage] 버킷에 CORS를 적용할 수 있다고? (0) | 2025.02.20 |
---|---|
[Cloud Storage] 이미지 업로드 성능 개선기 (0) | 2025.02.10 |
Cloud Storage에 JSON파일이 Upload 될 때, Bigquery Loads 파이프 라인 구성 (0) | 2024.08.13 |
[Secret Manager] API 를 통하여 SSH 비밀 키 추출 및 SFTP 전송 (0) | 2024.04.09 |
[Cloud Storage] MD5 hash 값을 활용하여 파일 무결성 체크 (0) | 2024.03.25 |