[MSA] Kong API gateway #2 - 간단한 아키텍쳐와 API 테스트 

 

오픈소스 API 게이트웨이 Kong

#2 아키텍쳐와 간단한 테스트

조대협 (http://bcho.tistory.com)

Kong 아키텍쳐

Kong API 서버의 배포 아키텍쳐는 다음과 같다. 

 

출처 : stackoverflow.com

Kong API 게이트웨이 각각 nginx 로 되어 있고, DB 모드의 경우에는 별도의 데이타 베이스 인스턴스를 사용한다. 지원되는 데이타 베이스로는 카산드라나 postgres를 사용할 수 있다. 

데이타 베이스를 사용하더라도 변경된 설정은 인스턴스에 바로 반영되지 않는다. 각 인스턴스가 설정 내용을 캐슁하기 때문인데, 캐쉬가 리프레쉬되어야 설정 내용이 반영된다. 

클러스터에서 Kong API 게이트웨이 인스턴스간의 로드 밸런싱을 하기 위해서는 각 인스턴스 앞에 로드밸런서를 배치 시킨다. 만약에 Session Affinity가 필요하다면 L4에서 IP나 Session based affinity를 설정해야 한다. 

 

Kong API 게이트웨이에서 각종 기능들은 nginX의 Lua 스크립트 모듈은 OpenResty를 이용한다. 

간단한 API 테스트

개념 이해가 끝났으면 간단한 테스트를 해보자

파이썬으로 간단한 API 서버를 구현하였다. app.py로 simpleapi:9001/api URL로 HTTP GET으로 간단하게 서빙하는 API가 있다고 할때

 

kong.yml을 다음과 같이 구현한다. 

_format_version: "1.1"

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

services:

- name: simpleapi

  url: http://simpleapi:9001

  routes:

  - name: simpleapi-route

    paths:

    - /simpleapiservice


 

simpleapi라는 이름으로 서비스를 등록하고 API 서버의 호스트 경로는 http://simpleapi:9001로 등록한다.

위의 설정은 {Kong IP}/simpleapiservice URL을 —> http://simpleapi:9001로 라우팅하도록 한 설정이다.

%curl localhost:8000/simpleapiservice/api

 

실행하면 http://simpleapi:9001/api 를 호출한 결과가 리턴된다. 



출처: https://bcho.tistory.com/1363 [조대협의 블로그]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
58 [리눅스, Linux] 우분투에서 NTFS 를 Read/Write로 마운트 (듀얼 부팅 화일 공유) file 졸리운_곰 2022.08.13 300
57 [UBUNTU] 우분투 20.04 USB 스틱에 설치 How to Install Ubuntu on a USB Flash Drive file 졸리운_곰 2022.06.02 478
56 [linux mater] Linux passwd : 인증 토큰 수정 오류 졸리운_곰 2022.03.04 348
55 [리눅스 마스터][linux, UNIX] 전설의 라인 에디트 Man page — ED 사용법 졸리운_곰 2021.11.18 356
54 [리눅스 마스터][linux, UNIX] [편집][shell] ed (line editer) 사용예 졸리운_곰 2021.11.17 285
53 [죽기전에 경험해봐야 하는 미니 코어 리눅스 5가지] 5 tiny Linux distros to try before you die file 졸리운_곰 2021.04.25 298
52 [linux] vi 단축키 정리 / vim 학습자료 file 졸리운_곰 2021.04.04 310
51 [linux] VIM Editor 단축키 / 명령어 모음 졸리운_곰 2021.04.04 226
50 [Linux][Crontab] Run Your Flask Regularly Scheduled Jobs with Cron 졸리운_곰 2021.03.20 353
49 [Unix/Linux][유닉스/리눅스] chmod [권한변경] /bin/chmod 졸리운_곰 2021.02.14 247
48 [무료 리눅스 linux 백신, 안티바이러스] 무료 리눅스 백신 ClamAV 이용 및 문제 해결법 졸리운_곰 2021.02.01 342
47 리눅스 tee, 화면과 파일에 동시 출력하기 졸리운_곰 2021.01.21 395
46 [리눅스, Linux] YUM 명령어 정리 file 졸리운_곰 2020.11.07 322
45 [리눅스, linux] 프로세스를 이름으로 단번에 종료하기 졸리운_곰 2020.08.17 497
44 ubuntu 18.04 - Ubuntu 한글 입력기 설치(fcitx) file 졸리운_곰 2020.06.29 334
43 리눅스 파일 찾기 (파일 및 디렉토리 검색) file 졸리운_곰 2020.05.12 277
42 linux desktop 화면 해상도 변경 file 졸리운_곰 2020.04.09 270
41 crontab 저장 파일 위치 졸리운_곰 2020.03.02 321
40 crontab 백업 방법 스크립트 졸리운_곰 2020.03.02 285
39 리눅스 우분투 crontab (크론탭) 설정 졸리운_곰 2020.03.02 281
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED