API 난립을 막는 5가지 방법(그리고 이에 관심을 가져야 하는 이유)

NGINX | 2022년 8월 17일

이 글은 API Connectivity Manager에 관한 2부작 시리즈의 첫 번째 글입니다:

API는 현대 인터넷의 연결 조직으로, 엣지의 데이터를 클라우드 및 온프레미스 데이터 센터와 연결합니다. F5의 2021년 애플리케이션 전략 현황 보고서에 따르면, 조직이 현대화를 위해 사용하는 다양한 방법 중 API 활용이 가장 널리 사용되고 있습니다.

  • 조직의 58%가 최신 사용자 인터페이스를 지원하기 위해 API 계층을 추가하고 있습니다
  • 51%는 최신 애플리케이션 구성 요소(예: Kubernetes)를 추가하고 있습니다.
  • 47%는 리팩터링(애플리케이션 코드 자체 수정)을 진행하고 있습니다.
  • 40%는 현대화 없이 퍼블릭 클라우드로 이전(리프트 앤 시프트)하고 있습니다

API 중심 경제에서 API는 100% 신뢰할 수 있어야 합니다. 하지만 비즈니스와 애플리케이션의 규모가 확장될수록 운영 복잡성도 증가합니다. 클라우드 네이티브 애플리케이션은 설계 단계부터 점점 더 분산화되고 탈중앙화되는 추세이며, 클라우드, 온프레미스 및 엣지 환경 전반에 배포된 수십, 수백, 심지어 수천 개의 API로 구성됩니다.

F5 CTO실의 최근 연구에서는 지속적인 API 확산을 디지털 혁신을 추진하는 기업에 중대한 위협으로 지목했습니다. 그렇다면 이는 무엇을 의미할까요?

API 스프롤이란 무엇인가요?

API 스프롤은 조직이 디지털 혁신을 추진하면서 발생하는 서로 밀접하게 연관된 두 가지 과제를 의미합니다. 하나는 API 수가 기하급수적으로 증가하는 것이고, 다른 하나는 API가 여러 아키텍처와 팀에 물리적으로 분산되는 것입니다.

API 스프롤을 유발하는 네 가지 주요 요인은 다음과 같습니다:

  • 하이브리드 인프라 – 현재 기업의 81%가 세 가지 이상의 아키텍처를 운영하고 있으며 여기에는 퍼블릭 클라우드, 온프레미스 데이터 센터, 엣지 인프라가 포함됩니다.
  • 마이크로서비스 아키텍처 – 마이크로서비스 아키텍처의 도입이 확대되면서 새로운 서비스가 가동될 때마다 API 엔드포인트가 급증합니다.
  • 지속적인 소프트웨어 배포 – 개발자는 짧은 기간에 수십 개의 API 또는 단일 API의 여러 버전을 빠르게 만들어낼 수 있습니다.
  • 방치된 API – 개발자가 다른 프로젝트를 지원하고 작업하게 되면서 자신이 만든 API를 관리하고 유지하는 일을 중단합니다.

API 난립은 심각한 위협입니다

많은 기업이 아직 API 난립을 심각한 문제로 인식하지 못하고 있지만, 실제로는 심각한 문제입니다。 API 난립의 근본 원인을 이해하고 해결하는 조직이 향후 10년간 번영할 것입니다.

API 난립은 기업에 중대한 운영 및 보안 문제를 초래합니다. 여러 팀과 환경에 걸쳐 API 엔드포인트가 급증하면서 API를 보호하고 관리하는 일이 매우 어려워집니다. 기업의 경우 API 난립은 개발자 생산성 저하, 재작업 증가, 검토 지연과 같은 숨은 비용을 초래하는 경우가 많으며, 이러한 비용은 너무 늦기 전까지 쉽게 측정하기 어렵습니다.

API 스프롤의 주요 과제는 다음과 같습니다:

  • 가시성 부족 – 하이브리드 아키텍처에서는 API 트래픽과 구성을 통합적으로 파악하기가 매우 어렵습니다
  • 명확한 단일 정보 출처의 부재 – 개발자는 API와 최신 문서를 찾는 데 어려움을 겪습니다
  • 신뢰성 저하 – 잘못된 구성이 더 빈번하게 발생하여 서비스 중단으로 이어집니다
  • 증가하는 보안 위협 – 보안이 취약한 API 엔드포인트는 공격의 표적이 되기 쉽습니다

API 난립에 어떻게 대응할 수 있을까요?

복원력 있는 API 인프라를 구축하기 위한 첫 단계는 지속적인 API 소유권과 중앙 집중식 API 또는 서비스 카탈로그에 관한 모범 사례를 포괄적인 API 전략에 반영하여 API 난립을 통제하는 것입니다. 그런 다음 API 거버넌스를 적용해 실용적이고 확장 가능한 방식으로 API 수명 주기 관리를 간소화해야 합니다.

NGINX는 API 관리의 복잡성을 줄이기 위해 관리 플레인 솔루션을 구축했습니다. API Connectivity Manager는 F5 NGINX Management Suite의 일부로, API가 어디에 있든 누가 구축하든 관계없이 API를 연결하고, 거버넌스를 적용하고, 보호할 수 있는 단일 인터페이스를 제공합니다.

API Connectivity Manager는 API의 무분별한 확산을 방지하고 대규모로 API를 관리하는 데 필수적인 다음 5가지 전략을 실행할 수 있도록 지원합니다:

전술 #1: API 거버넌스 전략 구현

중앙 집중식 관리 및 제어를 통해 단일 아키텍처 또는 클러스터 내에서 API를 더 쉽게 검색하고 연결하며 보호할 수 있습니다. API가 무분별하게 확산되면 사고방식을 순수한 계층형 모델에서 분산형이면서 자율적으로 확장되는 모델로 전환해야 합니다.

NGINX의 지원 방식 – API Connectivity Manager를 사용하면 글로벌 정책과 세분화된 제어 간의 균형을 유지하는 유연한 거버넌스 모델을 구현하여 API 소유자가 로컬 정책을 관리하도록 할 수 있습니다. 이를 통해 보안 및 규정 준수에 대한 일관된 감독을 유지하면서 출시 기간을 단축할 수 있습니다.

플랫폼 및 인프라 팀은 로깅, 오류 응답 코드, TLS 구성 등에 대한 전역 정책을 통해 기업 전체에서 API의 일관성을 보장할 수 있습니다. API를 구축하고 관리하는 개발자는 속도 제한, 인증, 권한 부여와 같은 서비스 수준 정책을 계속 직접 제어할 수 있습니다.

전략 #2: API 검색을 위한 단일 정보 소스 구축

API 수가 늘어나고 앱이 복잡해질수록 어떤 API를 사용할 수 있고 어디에 있는지 파악하고 추적하기가 매우 어려워집니다. API가 특정 마이크로서비스의 인프라 내부에 숨겨져 있고 등록되어 있지 않으면, 다른 마이크로서비스를 담당하는 팀은 해당 API를 찾아 프로젝트에 통합할 수 없습니다.

NGINX의 지원 방식 – API Connectivity Manager를 사용하면 개발자가 API를 검색하고 사용할 수 있는 서비스 카탈로그와 API 포털을 만들 수 있습니다. 우수한 개발자 포털 환경은 사용 가능한 API와 그 사용 방법에 대한 정보를 한곳에서 제공하고 자격 증명 생성 도구도 지원함으로써 API 활용을 촉진합니다.

전략 #3: 적절한 버전 관리 및 문서화 보장

API 포털은 좋은 첫걸음입니다. 하지만 개발 주기 중에 API 사양이 변경되면 문제가 발생합니다. 이는 API를 호출하는 원격 서비스도 변경해야 한다는 뜻입니다. 모든 마이크로서비스를 동일한 팀이 동일한 애플리케이션용으로 설계하는 경우에는 이 접근 방식이 효과적일 수 있지만, 제3자가 사용할 수 있도록 API를 공개하는 경우에는 적합하지 않습니다.

동시에 문서를 유지 관리하는 일은 개발자들에게 골칫거리입니다. 처음에는 활발하게 운영되더라도 API 포털은 시간이 지나면서 방치되는 경우가 많으며, 지원되지 않는 API와 오래된 문서만 남은 유령 도시로 전락해 이해관계자와 API 사용자에게 혼란과 좌절감을 안겨 줍니다.

NGINX의 지원 방식 – API Connectivity Manager를 사용하면 API 게시와 문서화를 API 개발자를 위한 원활한 워크플로에 통합할 수 있습니다. API 소유자는 OpenAPI 사양을 사용하여 API를 게시하는 동시에 문서를 생성할 수 있으므로 시간을 절약하고 모든 사용자가 항상 최신 문서를 이용할 수 있습니다.

전략 #4: API 트래픽에 대한 메트릭과 가시성 제공

API가 어디에 위치하고 어떻게 구성되어 있는지 파악하는 것은 기업이 직면한 가장 중대한 과제 중 하나입니다. 여러 환경의 API 트래픽을 일관되게 파악할 수 없다면 성능 문제와 보안 위협을 식별하기가 매우 어렵거나 사실상 불가능합니다.

NGINX의 지원 방식 – API Connectivity Manager를 사용하면 모범 사례를 적용하고 성능과 안정성을 보장하는 데 도움이 되는 주요 메트릭에 액세스할 수 있는 단일 플랫폼을 구축할 수 있습니다. 인프라 소유자는 API 트래픽과 구성을 모니터링하고, 표준화된 로그 형식을 적용하며, 원하는 모니터링 솔루션으로 데이터를 내보낼 수 있습니다.

전략 #5: 대규모로 API 보안 적용

2020년에 기업의 90% 이상이 API 보안 사고를 경험했습니다. 새로운 API 엔드포인트가 온라인에 추가될 때마다 조직의 공격 표면은 확대됩니다. 대규모 환경에서 보안은 부가 기능으로 취급할 수 없으며, 사양 정의부터 코드 작성과 배포에 이르는 전체 수명 주기에 내재화되어야 합니다.

NGINX의 지원 방식 – API Connectivity Manager를 사용하면 API 보안의 두 가지 핵심 구성 요소인 API 액세스 제어와 API 보호를 통해 API를 보호할 수 있습니다. JSON Web Token(JWT), API 키 또는 OAuth2/OpenID Connect로 인증 및 권한 부여를 관리하여 API 액세스 제어를 적용할 수 있습니다. 향후 몇 달 내에 API Connectivity Manager는 NGINX App Protect WAF에 대한 지원을 추가할 예정입니다. 이를 통해 API 게이트웨이를 보호하고, OWASP API Security Top 10에 대한 기본 지원, 스키마 검증 등을 활용하여 일반적인 위협과 지능형 위협을 방어할 수 있습니다.

API Connectivity Manager로 출시 기간 단축

API 확산으로 인한 문제를 해결하면 다중 아키텍처의 복잡성을 경쟁 우위로 전환할 수 있습니다. API Connectivity Manager는 개발자에게 필요한 속도와 유연성을 제공하면서 대규모 거버넌스를 지원하는 복원력 높은 API 에코시스템을 구축할 수 있도록 도와줍니다.

다음 게시물에서는 API 개발자 경험을 자세히 살펴보고 CI/CD 통합, 셀프서비스 워크플로, API 수명 주기 관리 등의 주제를 다루겠습니다.

시작하기

Start a NGINX Management Suite 30일 무료 평가판을 시작해 보세요. 여기에는 API Connectivity Manager와 Instance Manager가 포함됩니다.

관련 자료


공유
태그: F5 NGINX, Opinion

작성자 소개

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.