네이버 클라우드 플랫폼 API Gateway 활용하기

NAVER Cloud
NAVER Cloud
Published in
7 min readMay 13, 2019

​안녕하세요, 네이버 클라우드 플랫폼입니다.​

오늘은 API를 이용한 서비스 개발 및 운영 시 꼭 필요한 API Gateway 상품을 소개합니다.

API 생성, 배포, 인증, 모니터링 등의 기능을 통해 쉽고 안정적으로 개발하고 운영할 수 있도록 도와주는 API Gateway의 주요 기능을 화면과 함께 살펴보도록 하겠습니다.

Application Programing Interface + Gateway = API Gateway

API는 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스를 말합니다. 인터넷 세상에서 살면서 수많은 HTTP 요청이 사용자 또는 시스템 간 발생하게 되고, 그 요청을 처리할 수 있도록 API를 이용해서 상호 정해진 규격에 따라 요청을 처리하고 있습니다.

과거에는 API 요청을 처리하기 위해서 API Server를 만들고 이중화 처리하는 작업등을 했으며, 수많은 트래픽이 몰리는 경우 긴급 서버 증설 등을 통해서 트래픽 처리를 안정적으로 하기 위한 리소스가 많이 투입되는 경우가 빈번히 발생했습니다.

네이버 클라우드 플랫폼에서는 과도한 트래픽 요청에 대한 관리와 운영에 대한 리소스를 최소화하기 위한 여러 방안을 제공하고 있습니다. 그중에 API를 운영과 관리 이슈 없이 안정적으로 API 요청을 처리할 수 있도록 하는 완전 관리형 API Gateway 상품도 제공하고 있습니다.

IT 담당자들은 API 요청을 안정적으로 처리하기 위해 아래와 같은 고민을 합니다.

수많은 API 요청을 처리할 인프라 구축을 하려면?
요청에 대한 트래픽이 유동적이고, 급증하는 트래픽에 대한 확장성 고려는?
트래픽에 대한 throttling 제어를 하려면?
모니터링 시스템도 구축이 필요한데?
사용자에 대한 ACL 제어를 하려면?

위의 고민들을 해결해줄 상품이 네이버 클라우드 플랫폼의 API Gateway 상품입니다.

RESTful 요청을 받아들이고 연결해주는 Gateway

네이버 클라우드 플랫폼 API Gateway는 RESTful 한 요청을 안정적으로 받아주고, 다른 서비스와 유연하게 연결해주는 상품입니다.

API Gateway의 대표적인 기능은 다음과 같습니다.

1. API 관리

1) 리소스 및 메서드 정의
- HTTP Method인 GET, POST, DELETE, PUT 등의 메소드를 정의하고, 해당 요청을 받아들일 수 있습니다.

2) 스테이지 및 버전 관리
- API를 여러 버전으로 실행할 수 있으므로 최신 버전이 게시된 후에도 여러 버전의 API를 사용할 수 있습니다.

3) Swagger 연동
- API를 문서화하고, 쉽게 Export/Import 할 수 있도록 Swagger와 연동 기능을 제공합니다.

2. 백엔드 서비스의 트래픽 제어

1) 과도한 트래픽 인입 제한
- API Gateway 호출 양을 제한해서 임계치를 넘는 트래픽을 제한할 수 있습니다.

2) 백엔드 서비스 인입 제한
- 캐시 설정을 통해 백엔드 서비스로 인입되는 트래픽을 제어할 수 있습니다.

3. 안전한 사용자 인증
-
API Gateway에서 발급한 API KEY와 IP ACL을 이용해서 사용자의 접근을 제어할 수 있습니다.

4. 모니터링
- API 호출 모니터링, 사용 현황, 응답시간, 오류 발생 등의 다양한 정보 확인이 가능합니다.

다음은 API Gateway의 주요 기능을 화면을 통해 살펴보도록 하겠습니다.

1. Resource

Resource는 화면에 보이는 것처럼 기능에 따라 GET, POST 등의 메소드 지정이 가능하고, 각 메서드 별로 호출할 호출 방식과 URL 경로를 지정할 수 있습니다. 또한, 각 Resource에 따라 안전한 보안을 위한 인증 방식을 설정할 수 있습니다.

2. Stage
Resource를 생성 후 Stage를 이용해 연동할 Endpoint 도메인 설정과 API 캐시, Throttling, IP ACL 설정을 할 수 있습니다.

3. 배포
Stage까지 생성되었으면 마지막 단계로 배포 단계를 거치게 되면 Invoke URL을 통해 API를 호출할 수 있습니다.

HTTP 요청을 API Gateway를 이용해서 정상적으로 호출되는 것을 테스트하려면, Postman, curl 등을 이용해서 API Gateway의 Invoke URL로 정해진 메소드로 요청을 하면 정상적으로 호출됨을 확인할 수 있습니다.

4. API Gateway와 다른 서비스 간의 연결
API Gateway는 Client의 요청에 따라 특정 웹서버에 요청을 할 수도 있고, 네이버 클라우드 플랫폼에서 제공하는 서버리스 컴퓨팅을 사용할 수 있는 Cloud Functions와 같은 상품과도 유연하게 연결이 됩니다.

Client에서 요청할 API를 API Gateway의 Resource에서 각 메소드(GET, POST, PUT..)를 설정하고, 호출할 Endpoint를 지정하게 됩니다. 웹 서버와 연동이 가능할 뿐 아니라, 네이버 클라우드 플랫폼의 Cloud Functions의 Action과 연동이 가능합니다. 특히, Cloud Functions 와 같은 서비스와 사용하게 되면, 서버 없이 외부 요청에 따라 비즈니스로직을 실행할 수 있는 아키텍처를 구축할 수 있습니다.

글을 마무리하며…

네이버 클라우드 플랫폼 API Gateway 상품에 대한 소개와 이용하는 방법을 간략히 알아봤습니다. 마지막으로 API Gateway는 Web Server 및 Cloud Functions로 HTTP 요청을 전달한 후, 네이버 클라우드 플랫폼의 다양한 상품과 연동을 해서 사용할 수도 있습니다.

API Gateway를 이용해서 사용자의 요청을 안정적으로 받아들인 후, 다른 서비스와 연동을 통해 안정적이고 운영 효율적인 서비스 구축을 해보시기 바랍니다.

서비스 사용 및 구축 중에 이슈가 발생하신 경우, 네이버 클라우드 플랫폼 고객지원으로 문의하시면 빠른 지원 받으실 수 있습니다. 앞으로도 네이버 클라우드 플랫폼에 많은 관심 부탁드립니다!

참고 자료

[NAVER CLOUD PLATFORM 온라인 교육 수강] “네이버 클라우드 플랫폼 API Gateway를 이용한 비즈니스로직 실행” >> 바로 가기

[NAVER CLOUD PLATFORM 설명서(구 사용자 가이드)] “API Gateway 사용자 설명서” >> 바로 가기

* 온라인 무료 교육 영상 시청을 위해서는 ncloud.com 회원 가입 및 로그인이 필요합니다.

[신규 상품] MSA? 이제 네이버 클라우드 플랫폼의 API Gateway를 통해서 손쉽게 개발하세요.

--

--

NAVER Cloud
NAVER Cloud

We provide cloud-based information technology services for industry leaders from startups to enterprises.