안녕하세요.
이번 시간에는 Ncloud의 API Gateway에 대해서 알아보고 실습을 진행하겠습니다.
Ncloud에서 API Gateway 관련된 포스팅이 거의 전무하기 때문에 간단한 사용 방법을 알아보고자 합니다.
1. API Gateway 란?
API(Application Programming Interface) 호출과 관련된 모든 작업을 편리하게 실행할 수 있게 하는 서비스입니다. API를 안정적으로 실행하기 위한 다양한 관리 기능들과 API 사용 현황을 실시간으로 확인할 수 있는 대시보드를 이용할 수 있습니다.
다음은 API Gateway에서 제공하는 다양한 상세 기능입니다.
Menu | Description |
My Products | 여러 개의 API를 Product로 그룹화하여 관리하며 REST API 및 이와 관련된 리소스와 메서드를 정의하고 인증 방식을 설정 |
Pulished APIs | Product의 API 문서를 공유하거나 다른 사용자가 공유한 API 문서를 구독 |
Usage Plans | 요청 처리량(Rate) 및 요청 처리 한도(Quota)를 설정하여 API 사용자의 사용량 제한 가능 |
API Keys | 다른 사용자 또는 네이버 클라우드 플랫폼에서 제공하는 API를 사용하기 위한 API Key 발급 API Key별로 서비스를 구독하고 스테이지별 사용량 확인 가능 |
Authorizers | API 사용 시 인증 방법으로 Authorizer를 생성하여 이용 |
Client Certificates | 공개 키를 이용하여 백엔드 시스템에서 요청 HTTP의 출처가 API Gateway인지 확인하고, API Gateway에서의 요청만 응답하도록 설정 |
Dashboard | API Key 또는 Product(Stage)별로 최근 6개월의 API 호출 수, 성공률, 평균 응답 시간 등을 조회 |
2. API Gateway 장점
1. 유연한 API 관리
REST API를 비롯해 관련된 리소스, 메서드를 정의하고 인증 방식을 설정할 수 있고 API 사용자가 참조할 수 있는 정의된 API 명세와 Overview를 관리합니다. 같은 API를 여러 버전으로 운영할 수 있도록 스테이지나 버전을 관리할 수 있는 기능을 제공하여 최신 버전이 게시된 이후에도 이전 버전의 API를 계속 호출할 수 있습니다. 또한 백엔드 서비스 안정화를 위해 스테이지별로 캐시 사용, 스로틀링(Throttling) 정책, IP ACL 등을 설정할 수 있습니다.
유연한 API 관리를 통해 비용 효율적으로 마이크로 서비스를 구현하기 좋은 서비스라고 볼 수 있습니다.
2. 백엔드 서비스 트래픽 제어
API Gateway는 호출량을 제한하여 과도한 트래픽이 인입되는 것을 제한하거나 캐시를 설정하여 백엔드 서비스로 인입되는 트래픽을 제어할 수 있습니다.
3. 안전한 API 사용자 인증
API Gateway에서 발급한 API Key와 IP ACL을 이용하여 사용자의 액세스를 제어할 수 있습니다. 또한 네이버 클라우드 플랫폼에서 제공하는 자체 API와 동일한 사용자 인증을 사용하여 API를 보호할 수 있습니다. API Gateway에서 제공하는 다양한 인증 관리를 통해 보다 강력한 보안 환경을 구성할 수 있습니다.
3. API Gateway 구성하기
1. API 생성하기
My Products - [API 생성]을 통해 API를 생성합니다.
기존 API를 복사할 수도 있고 새로운 API를 구성할 수도 있습니다. 이번 실습에서는 새로운 API를 생성하겠습니다.
2. 리소스 생성하기
기본 경로인 /에 메서드를 바로 생성해도 되나 리소스를 생성하여 사용하고자 하는 기능들을 분리하겠습니다. 저는 [test]라는 이름의 리소스를 생성하겠습니다.
3. 메소드 생성하기
해당 리소스에 메서드를 생성하셔도 되고 생성하지 않으셔도 됩니다. 저는 {type+}을 만들면서 json으로 응답을 정상적으로 받아보겠습니다.
리소스를 생성한 후 메서드를 생성합니다. ANY, GET, POST, PUT, DELETE 등 다양한 메서드를 생성할 수 있습니다. 저는 테스트로 간단한 POST 메서드를 생성하여 실습을 진행하겠습니다. 처음 생성할 때는 약간 어색한 느낌이었는 데 사용하다 보니 Ncloud가 가장 UI가 사용자 친화적으로 되어 있어서 사용하기 편한 것 같습니다. 주의하실 점은 Cloud Functions을 통해 json 형태로 응답을 받기 위해서는 리소스에 {type+}을 생성해주어야 합니다. 이 부분은 API Gateway 공식 가이드에 나와있습니다.
4. Cloud Functions 연결하기
다음과 같이 메서드를 생성합니다. 응답을 처리할 메서드 타입에 맞춰서 생성해주시면 됩니다.
테스트를 위해 다음과 같이 type+ 리소스 하위로 GET/POST 메서드로 생성하겠습니다.
5. 응답 테스트
{type+}를 json으로 지정한 후 [Test] 버튼을 눌러주시면 정상적으로 json 응답을 받으실 수 있습니다.
6. Stage 생성하기
다음으로는 API를 배포해서 외부에서 사용할 수 있게 하기 위해 Stage를 생성하겠습니다. [dev]라는 이름의 Stage를 생성합니다.
7. API 배포하기
우측 상단에 API 배포 버튼을 눌러 배포할 Stage를 선택한 후 추가합니다. 이렇게 쉽게 API Gateway를 배포할 수 있습니다. 그러면 Invoke URL과 API를 통해 Postman에서 해당하는 API에 대한 응답을 받아올 수 있나 확인해 보겠습니다.
8. 외부(Postman) 응답 확인하기
다음과 같이 Postman에 호출 URL을 입력한 후에 메서드를 선택한 후 Send를 누르면 해당하는 응답을 받을 수 있는 것을 확인해 볼 수 있습니다.
추가적으로 API Gateway에 추가적인 기능과 보안 장치들이 많아서 다양하게 활용할 수 있으며 간단하게 서버리스 환경을 구성할 수 있습니다.
이번 시간에는 Ncloud API Gateway를 다루는 포스팅이 없어서 직접 사용해 보고 응답을 받을 수 있도록 서버리스 환경을 간단하게 구성해 봤습니다.
감사합니다.
'Cloud > Naver Cloud' 카테고리의 다른 글
[Ncloud] Source Commit에 대해 알아보고 연동하기 (0) | 2024.03.28 |
---|---|
[Ncloud] Global Traffic Manager를 이용해 일괄적으로 서버 점검 페이지 전환하기 (0) | 2024.03.19 |
[Ncloud] Cloud Functions에 의존성 모듈과 함께 사용하는 가이드 (0) | 2024.03.13 |
[Ncloud] Classic 서버 이미지 VPC 복제하는 방법과 팁 알아보기 (0) | 2024.02.29 |
[Ncloud] Rocky Linux 8.8에서 최신 버전의 Nginx 설치하기 (0) | 2024.02.19 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!