티스토리 뷰
안녕하세요. 지마켓에서 개발자분 업무의 편의를 도모하기 위한 클라우드 플랫폼 업무를 담당하고 있는 김지형입니다.
저희 지마켓 개발 플랫폼으로서 몇 가지가 존재하는데 Fusion이라는 Openshift, Kubernetes 기반의 컨테이너 플랫폼을 개발자 분들께서 주로 이용하시지만, API 통합 관리 도구로서 API Gateway 플랫폼도 존재합니다. Nginx 프로그램을 붙여서 로드밸런싱이나 페이지 요청을 처리하는 팀이 많겠지만, Nginx Controller까지 붙여서 API 관리까지 하기에는 다소 벅찰 수 있다고 생각합니다. 본 API Gateway 이용도 API 관리의 한 가지 선택지로서 이용해볼 수 있다는 것을 알리기 위해, 또한 타사에서도 API Gateway를 적용하고자 하는 팀을 대상으로 글을 작성했습니다.
API Gateway를 이용하는 방법 등에 대한 내용보다는, 대안으로써 사용할 수 있는 방법들과 API Gateway를 비교하면서, 가장 쉽고 빠른 방법으로 지마켓 API Gateway로 마이그레이션 하는 방법에 대해 설명합니다.
API 관리란?
마이크로서비스 아키텍처가 널리 적용되면서 API 관리(API Management) 시장도 급격히 성장하고 있습니다. "API 관리"란 안전한 환경에서 API 디자인, 퍼블리싱, 문서화 등의 프로세스를 의미하며 이를 통계적으로 분석해 더 나은 사용자 경험 추구까지 그 영역을 확장해나가고 있습니다. 퍼블릭 클라우드 대부분에서 본 API 관리 서비스를 제공하고 있으며 간편한 설정과 저렴한 요금을 앞세워 보다 더 많은 퍼블릭 클라우드 서비스 이용을 유도하고 있습니다.
API Gateway 소개
지마켓 클라우드 플랫폼 팀에서 제공하는 API Gateway는 Redhat 3 Scale 기반의 API 관리 플랫폼입니다. 그리고 아래와 같은 기능을 제공합니다.
API 트래픽 제어
트래픽 제어, 보안 및 액세스 정책 실행을 제공합니다. 지마켓 서버에서 외부에 노출되는 API 서버 구성 시 항상 포함되어야 하는 인증 과정을 옵션 선택 한 번으로 간편하게 설정할 수 있습니다.
모든 구성 요소에서 하이브리드 클라우드 지원
On Premise 기반의 지마켓 클라우드 플랫폼을 하이브리드 클라우드로 전환 중에 있는데, 개발자분들의 입장에서는 최초 한번의 설정으로 변함없는 서비스 이용을 지원합니다.
지마켓 통합 인증체계 및 관리, 개발 포털
관리 권한을 가지고 있는 팀 계정에서만 접근 가능한 API 관리 및 개발 포털을 제공합니다.
API Gateway 이용을 위한 첫번째 단계
API Gateway 구조
3Scale 기반의 본 플랫폼은 다음 구조로 구성되어 있습니다.
다소 특수해 보일 수 있는 부분은, API Manager와 API Gateway 두 요소가 나뉘어 있다는 것입니다. API 관리 정책을 설정하는 부분은 API Manager라는 요소이며, 이 정책을 실제 실행하는 부분은 트래픽 매니저로서 작동하는 API Gateway라는 요소입니다. 두 요소는 API Gateway 내 캐시 되어 있는 비동기 형태로 소통을 하며 작업을 수행합니다.
Product와 Backend
API Manager 내에서 크게 두 가지를 설정해야 합니다.
Backend
라고 불리는 API는 프로덕트 내부에서 사용되는 내부 API 번들이고, API Gateway에서 자유롭게 내부 API를 이용할 수 있게 설정되어야하는 그룹입니다. API의 URL을 반드시 포함해서 기술되어야 하며, 선택사항으로서 매핑 규칙이나 메서드, 메트릭 등을 같이 적어준다면 재사용성을 높일 수 있습니다.Product
라고 불리는 API는 고객과 맞닿아 있는 API이자, 외부로 연결된 어플리케이션과 소통을 해야 하는 그룹입니다. APIcast를 설정해주는 그룹이자 애플리케이션 플랜을 정의해주어야 하는 그룹입니다.
APIcast
APIcast에 대한 이해도 필요로 합니다. APIcast는 NGINX 기반의 API 게이트웨이로서 내부와 외부 API 서비스를 통합해주는 용도로 쓰이며, 라운드로빈 방식으로 로드밸런싱을 해줍니다. APIcast 또한 아래 두 가지로 나뉩니다:
Hosted APIcast
간편하게 설정할 수 있는 APIcast입니다. 사전에 설정되어있는 설정만으로 APIcast를 구성할 수 있지만 볼륨 제한과 부수적인 레이턴시 증가가 있을 수 있습니다.
Self-managed APIcast
가장 최적의 성능과 무제한 트래픽 볼륨을 제공하는 방법의 APIcast입니다. Openshift 기반의 지마켓 Fusion 플랫폼과 연동되어 최적의 API 관리를 제공합니다.
APIcast 환경
Staging 및 Production 환경을 각각 별도로 제공합니다. Staging 환경에서 API 통합 테스트를 지원하여 빠른 설정 변경을 진행할 수 있습니다.
APIcast 보안정책 적용
지마켓 API Gateway에서는 기본적인 CORS 인증, Access Policy 설정 뿐만 아니라 지마켓 통신보안 정책을 선택할 수 있는 옵션을 제공합니다.
API Management 제품군 비교 및 검토
제품군 비교
2021년 Q3 Gatner Leaders에서 한국 지원이 가능한 곳으로, On-promise 형태로 지원도 가능한 API 관리 도구 순위를 리스트업 한 결과, Axway Amplify, Apigee(Google), IBM, Kong, Microsoft Azure API Management 등의 순서로 리딩하고 있는 것을 확인할 수 있었습니다. 개발팀마다 최적이라고 생각하는 관리 도구는 다를 것이며, 3 Scale 기반의 저희 지마켓 API 관리 플랫폼이 모든 개발팀을 만족 키지는 못할 것입니다. 그러나 아직까지는 대부분의 API Gateway가 기능상 큰 차이를 보이고 있지 못하다는 점, 통합된 정책을 가지고 지마켓 Fusion과 유기적으로 연동되어 관리될 수 있다는 점에서 지마켓 API Gateway 플랫폼이 3 Scale 기반으로 구성하게 되었습니다.
검토 사항
지마켓 API Gateway를 이용하기에 앞서 다음 사항들을 검토해보아야 합니다.
- Routing: API 호출을 수락하고, Backend로 라우팅
- Authentication: API 키, JWT 토큰 및 인증서, 기타 자격 증명에 대한 관리 및 확인
- Traffic Control: 사용 할당량 및 속도 제한 적용 여부
- Transformation: 필요에 따라 정책에 지정된 대로 요청 및 응답 변환
- Cache: 응답을 캐시하여 응답 대기 시간을 개선하고 Backend 서비스 부하를 최소화
- Monitoring and Logging: 모니터링, 보고 및 문제 해결을 위한 로그, 메트릭 및 추적 내보내기
마이그레이션
기존 사용해오던 API 관리 도구, 혹은 이제 적용을 시도해보고자 하는 환경 등이 모두 다르기에 클라우드 플랫폼 팀과 상의 후 마이그레이션 방안에 대한 플랜을 수립해주세요.
정리
API 관리 플랫폼에 대한 개괄적인 내용과 개념만으로 글이 이루어져 있어 구체적으로 어떻게 설치를 해나가고 구성해야 할지 막막하게 느껴질 수도 있겠습니다. 이 글의 목적은 API 관리 도구를 적용할지에 대한 검토에 도움을 드리는 글로서 도움이 되기를 바라며, 구현 방안은 위키 내에 자세히 설명되어 있으니 한번 구경해보시기를 청하겠습니다.
'Infra' 카테고리의 다른 글
레거시 시스템의 성능과 정합성 두 마리 토끼 잡기 (0) | 2022.09.21 |
---|---|
프로젝트 관리를 위한 JIRA 활용기 (0) | 2022.09.16 |
가볍게 시작하는 Databricks Community Edition 환경설정 for Spark (1) | 2022.09.07 |
MySQL만 써봤는데... MongoDB 프로젝트에 투입됐다🤯 (3) | 2022.08.05 |
확장성 높은 카프카 구성을 위한 서비스 설계 (0) | 2022.07.29 |