API Gateway를 활용한 클라우드 마이그레이션 전략
January 18, 2023
클라우드 마이그레이션은 데이터, 애플리케이션 또는 기타 비즈니스 요소를 온프레미스 환경에서 부분적으로 또는 완전히 Azure, AWS, 또는 Google Cloud와 같은 인기 있는 클라우드 서비스 제공업체가 제공하는 클라우드 기반 환경으로 이동하는 과정입니다. 이 글은 API Gateway를 사용하여 클라우드 마이그레이션 전략을 구축하는 다양한 접근 방식을 탐구합니다.
클라우드로 이동의 이점
클라우드 마이그레이션 과정을 수행하는 기업들에게 클라우드는 큰 영향을 미칠 수 있습니다. 이는 IT 인프라에 필요한 하드웨어 비용 절감, 더 빠른 제공 시간, 필요에 따른 앱 확장, 비즈니스 핵심 워크로드와 가장 민감한 데이터 보안, 그리고 혁신 기회 증대를 포함합니다.
여기서 우리는 클라우드로의 마이그레이션의 추가 이점을 요약했습니다:
- 증가된 민첩성과 유연성
- 더 빠른 혁신 능력
- 증가하는 리소스 요구의 완화
- 증가한 고객 기대치의 더 나은 관리
- 비용 절감
- 즉각적인 비즈니스 결과 제공
- IT 단순화
- 모든 것을 서비스로 전환
- 더 나은 소비 관리
- 클라우드 확장성
- 향상된 성능
클라우드 마이그레이션의 도전 과제
클라우드 마이그레이션은 상당한 이점을 가져올 수 있지만, 시작 시 클라우드 마이그레이션 전략이 없음, 복잡한 기존 아키텍처, 긴 마이그레이션 과정, 마이그레이션 중 비즈니스 다운타임, 조직적 채택, 보안 및 규정 준수와 같은 도전 과제가 있습니다.
기업들은 서비스 가용성, 확장성 또는 클라우드가 약속하는 기타 이점을 누리기 위해 클라우드로 이동합니다. 그러나 클라우드의 모든 이점을 활용하려면 조직이 사용 사례에 가장 적합한 클라우드를 선택했는지 확인하기 위해 신중한 설계와 계획이 필요합니다.
클라우드 마이그레이션 전략
API 기반 시스템을 클라우드로 발전시키거나 마이그레이션하는 데는 여러 접근 방식이 있으며, 유지("아무것도 하지 않음")부터 재호스팅, 재플랫폼, 재구매, 리팩토링/재설계(클라우드 인프라를 활용하기 위해 재작성), 그리고 폐기까지 다양합니다.
이 글은 6가지 다른 마이그레이션 전략을 설명하며, 기존 아키텍처와 시스템을 클라우드로 마이그레이션하는 평가 또는 주도하는 임무를 맡은 경우 훌륭한 출발점입니다. API는 종종 사용자와 가장 가까운 비즈니스 주도 구성 요소이며 대부분의 요청에 대한 주요 진입점이므로 마이그레이션 접근 방식을 결정할 때 특별히 주의를 기울여야 합니다. 6가지 R은 "아무것도 하지 않음"부터 시스템의 완전한 재구축 또는 폐기까지 다양한 옵션을 제공합니다. 이들은 다음과 같습니다:
- 유지 또는 재검토
- 재호스팅
- 재플랫폼
- 재구매
- 리팩토링/재설계
- 폐기
클라우드 마이그레이션에서 API 관리의 역할
진화적 여정을 위해 선택한 전략에 관계없이, API 관리는 마이그레이션과 조직 내외부에서 API의 가치를 해제하는 데 중요한 역할을 할 수 있습니다. API 관리자는 본질적으로 다양한 추가 기능을 제공하는 강력한 게이트웨이로, OAuth2 도전, 콘텐츠 검증, 속도 제한, 캐싱, 스로틀링 및 게이트웨이에서 일반적인 많은 기능을 제공합니다. 많은 API 관리 도구가 있으며, 올바른 도구를 선택하는 방법을 알아두는 것이 중요합니다.
또한, 개발자 포털을 제공하여 개발자가 제공된 API를 사용하여 시스템을 구축할 때 사용할 수 있는 모든 API의 마켓플레이스를 포함할 수 있습니다. 조직은 또한 API 관리를 사용하여 외부 고객과 내부 "차지백"에 대해 API 접근을 수익화할 수 있으며, 이는 기업 및 교차 부서 배포에서 일반적입니다. 아마도 API 관리의 가장 중요한 부분은 API를 발견할 수 있는 중앙 지점을 제공할 수 있다는 점이며, 이는 배후에서 계속 변경을 가할 수 있게 합니다.
마이그레이션 도구로서의 API Gateway
API Gateway는 API 관리 솔루션의 필수 구성 요소입니다. Apache APISIX 블로그에서 API Gateway의 10가지 가장 일반적인 사용 사례를 읽을 수 있습니다. API 게이트웨이를 사용하면 서비스와 API에 대한 위치 투명성을 제공할 수 있으며, 이는 서비스를 클라우드에 배포하고 기존 서비스에서 새로운 서비스로 트래픽을 점진적으로 전환할 수 있게 하여 소비자에게 제한된(또는 없는) 영향을 미칩니다.
아래 3가지 가능한 전략:
-
클라우드 마이그레이션 전략에서 API Gateway를 사용하는 한 가지 방법은 온프레미스 서비스에 대한 프록시를 만드는 것입니다. 이렇게 하면 기존 애플리케이션을 변경하지 않고도 온프레미스 서비스에서 클라우드의 해당 서비스로 트래픽을 리디렉션할 수 있습니다. 또한 간단한 A/B 테스트를 수행하고 새로운 클라우드 엔드포인트 성능과 사용자 경험에 대한 메트릭을 수집할 수 있으며, 어떤 이유로든 클라우드의 새로운 서비스가 적합하지 않은 경우 온프레미스 서비스로 다시 전환할 수 있습니다.
-
또 다른 전략은 클라우드 서비스에 대한 API Gateway를 파사드로 사용하는 것입니다. 이렇게 하면 외부 소비자에게 마이크로서비스 아키텍처의 복잡성을 숨기면서도 필요한 기능에 접근할 수 있게 합니다.
-
세 번째 전략은 서비스 메시를 구현하여 제로 트러스트 네트워크를 구현하는 데 API Gateway를 사용하는 것입니다. 이렇게 하면 개별 서비스를 변경하지 않고도 마이크로서비스 간의 통신을 관리하고 보안할 수 있습니다.
Apache APISIX의 서비스는 위의 문제를 구현하는 데 효율적인 솔루션으로 나타났으며, 전체 애플리케이션에 대한 프록시로 또는 단일 접근 지점으로 작동할 수 있습니다. 프록시로 작동하는 API Gateway는 요청을 효율적으로 처리하고 리팩토링된 엔드포인트로 레거시 애플리케이션을 라우팅할 수 있습니다.
샘플 애플리케이션을 클라우드로 재플랫폼
컨퍼런스 애플리케이션이 5가지 주요 구성 요소를 가지고 있다고 가정해 봅시다: 웹 앱, API Gateway, 레거시 컨퍼런스 시스템, 그리고 두 개의 마이크로서비스(세션 및 참가자). 아래 아키텍처 다이어그램에서 각 서비스의 책임을 확인할 수 있습니다.
팀은 컨퍼런스 앱 서비스를 클라우드로 점진적으로 마이그레이션하기로 결정했습니다—빅뱅을 감수하기보다는—여러 클라우드 환경과 온프레미스 데이터 센터에서 서비스를 실행하는 것은 추가적인 도전 과제를 제시합니다. 이 작업을 감안하여, 먼저 참가자 서비스를 "재플랫폼"하기로 결정했습니다. 이미 참가자 기능을 독립적인 마이크로서비스로 추출하여 재설계했기 때문에 리팩토링/재설계 전략은 적절하지 않았습니다. 그러나 향후 컨퍼런스 시스템에 새로운 기능을 추가할 때 시스템을 재설계(잠재적으로 서비스를 추출)하고 이를 클라우드로 이동하는 것은 강력히 고려할 만한 옵션이 될 것입니다. 재호스팅은 확실한 전략일 수 있지만, 우리는 "리프트 앤 시프트" 방식으로 우리의 MySQL 데이터베이스 인스턴스를 이동하기보다는 클라우드 기반 데이터베이스-서비스를 활용하고자 합니다.
또한, API 게이트웨이를 클라우드로 마이그레이션해야 합니다(또는 클라우드 공급업체가 제공하는 APIM 솔루션을 사용). 많은 점진적 클라우드 마이그레이션에서 사용자가 만든 API 요청을 충족하기 위해 트래픽이 여러 네트워크를 통과해야 하기 때문입니다. API 게이트웨이를 클라우드로 이동하면 기존 온프레미스 위치에서 클라우드로 점진적으로 라우팅되는 API 트래픽을 지원하는 데도 도움이 됩니다. 아래 다이어그램은 재플랫폼된 아키텍처의 최종 상태를 보여줍니다.
요약
전반적으로, 클라우드 마이그레이션 전략에서 API Gateway를 사용하면 관리의 용이성, 보안, 확장성과 같은 많은 이점을 제공할 수 있습니다. 이를 통해 서비스를 점진적으로 클라우드로 이동할 수 있으며, 마이크로서비스 아키텍처의 복잡성을 외부 소비자로부터 숨기는 데 도움이 됩니다. 예를 들어, Apache APISIX는 완전한 오픈 소스 및 클라우드 네이티브 API 트래픽 관리 솔루션으로, 어떤 클라우드에도 배포할 수 있으며 내장된 플러그인으로 개발자 생산성을 향상시켜 클라우드 마이그레이션 시간을 단축할 수 있습니다.