Architecture Decision Record - API Gateway

API Gateway 를 선택할 때 가장 보편적으로 논의하는 주제는 '구현할 것인가', '구입할 것인가' 이다. 보통 직접 구현하는 것보다 오픈 소스 구현체 또는 상용 솔루션을 구매하는 것이 더 낫다.

직접 구현하는 경우에 보통 아래 문제를 간과하는 경우가 많다.

총 소유의 비용(total cost of ownership, TCO)을 과소 평가 함:

  • 대부분의 엔지니어는 솔루션을 구현할 때 드는 비용과 지속적인 유지보수 비용, 그리고 운영 비용을 낮게 책정한다.

기회 비용을 고려하지 않음:

  • 보통 클라우드나 플랫폼 벤더가 아니라면 API Gateway 를 직접 구현해서 얻는 이점은 적다.

제품의 현재 기술 솔루션에 대한 인지 부족:

  • 오픈소스 버전과 상용 플랫폼은 모두 빠르게 변화하고 있어서 최신 변경사항을 계속 추적하기 어려울 수 있다. 하지만 기술 리더 역할을 위한 핵심적인 부분이기도 하다.

ADR

  • 결정사항: 조직에 적합한 API Gateway 를 어떻게 선택할 것인가?
  • 논의사항
    • API Gateway 의 선택과 관련된 모든 요구사항을 분석하고 우선순위를 파악했는가?
    • 현재 조직이 배포해 사용하고 있는 기술 솔루션은 파악했는가?
    • 모든 팀과 조직적 제약을 파악했는가?
    • 이 결정과 관련된 로드맵은 모두 확인했는가?
    • '구현' vs '구매' 비용을 정확하게 계산해 봤는가?
    • 현재의 기술 동향을 살펴보고 가용한 솔루션을 모두 이해하고 있는가?
    • 분석 및 의사결정과 관련된 모든 이해당사자와 상의하고 정보를 전달했는가?
  • 권장사항
    • AP/시스템 간의 낮은 결합도 유지, 사용법의 간소화, API 를 남용 및 오용으로부터 보호, API 의 활용도에 대한 이해, API 를 제품으로서 관리 및 수익화 등의 목적을 이루려면 요구사항에 특히 더 집중해야 한다.
    • 여기서 중요한 고려사항은 다음과 같다. 이미 사용 중인 API Gateway 가 있는가? 여러 기술을 조합(e.g 하드웨어 로드밸런서를 인증 및 애플리케이션 수준 라우팅을 수행하는 모놀리식 앱과 조합)해 유사한 기능을 제공할 수 있는가? 현재 에지 스택은 얼마나 많은 컴포넌트(WAF, FB, 에지 캐시 등)으로 이루어져 있는가?
    • 팀내의 기술 숙련도, API Gateway 프로젝트에 투입할 수 있는 인력과 가용 리소스, 예산 등에 집중하자.
    • 계쇡 중인 변경사항, 새 기능, 트래픽 관리 및 API Gateway 가 제공하는 다른 기능에 영향을 줄 수 있는 현재의 목표 등을 모두 파악하는 것이 중요하다.
    • 현재의 API Gateway 와 유사한 모든 구현체 및 잠재적으로 미래에 등장할 수 있는 솔루션의 총 소유 비용(TCO) 를 계산하자.
    • 잘 알려진 분석가, 트렌드 보고서, 제품 리뷰 등을 통해 현재 가용한 모든 솔루션을 이해하자.
    • API Gateway 를 선택하고 배포하는 것은 여러 팀과 개인에게 영향을 미친다. 개발자, QA, 아키텍처 리뷰 보드, 플랫폼 팀, 정보 보안 팀 등 모두와 상의하자.

References

  • 모던 API 아키텍처 설계 / James Gough, Daniel Bryant, Matthew Auburn 저