안티패턴: 소스 제어 관리를 사용하지 않고 Edge 리소스 관리

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

Apigee Edge는 다양한 유형의 리소스를 제공하며, 각각 다른 용도로 사용됩니다. Edge UI, 관리 API 또는 관리 API를 사용하는 도구를 통해서 선행 조건 역할과 권한을 가진 사용자만 구성할 수 있는 (생성, 업데이트, 삭제 등) 특정한 리소스가 있습니다. 예를 들어 특정 조직에 속한 조직 관리자만 이러한 리소스를 구성할 수 있습니다. 즉, 이러한 리소스는 개발자 포털을 통해 최종 사용자가 구성할 수 없으며 그 외에 다른 어떤 방법으로도 구성할 수 없습니다. 이러한 리소스는 다음과 같습니다.

  • API 프록시
  • 공유 흐름
  • API 제품
  • 캐시
  • KVMs
  • 키 저장소 및 트러스트 저장소
  • 가상 호스트
  • 대상 서버
  • 리소스 파일

이러한 리소스에는 액세스 권한이 제한되어 있지만, 권한이 있는 사용자가 리소스를 수정하면 수정이 수행된 경우 새로운 데이터가 간단히 이전 데이터를 덮어씁니다. 그 이유는 이러한 리소스가 현재 상태로만 Apigee Edge에 저장되기 때문입니다. 이 규칙의 주된 예외는 API 프록시와 공유 흐름입니다.

버전 제어 환경에서 API 프록시 및 공유 흐름

API 프록시와 공유 흐름은 버전을 통해 관리, 즉 생성, 업데이트, 배포됩니다. 버전 번호는 순차적으로 지정되므로 새 변경사항을 추가하고 새 버전으로 저장하거나 이전 버전의 API 프록시/공유 흐름을 배포하여 변경사항을 되돌릴 수 있습니다. 어떤 버전에 다른 기본 경로가 없는 한, 환경에 배포된 API 프록시/공유 흐름은 어떤 시점에서나 한 가지 버전만 존재할 수 있습니다.

API 프록시와 공유 흐름은 버전을 통해 관리되지만 기존 버전을 수정하면 이전 변경사항을 간단히 덮어쓰므로 롤백할 수 있는 방법이 없습니다.

감사 및 기록

Apigee Edge는 문제 해결 시나리오에 도움이 될 수 있는 감사API, 제품, 조직 기록 기능을 제공합니다. 이러한 기능을 사용하면 특정 작업 (만들기, 읽기, 업데이트, 삭제, 배포, 배포 취소)을 수행한 사용자와 Edge 리소스에서 작업이 실행된 시점 등의 정보를 볼 수 있습니다. 하지만 Edge 리소스에 업데이트 또는 삭제 작업이 수행되면 감사는 이전 데이터를 제공할 수 없습니다.

안티패턴

소스 제어 시스템을 사용하지 않고 Edge UI 또는 관리 API를 통해 직접 위에 나열된 Edge 리소스 관리

Apigee Edge는 수정 또는 삭제 후에 이전 상태로 리소스를 복원할 수 있으리라는 오해가 있습니다. 그러나 Edge Cloud는 이전 상태로 리소스를 복원할 수 없습니다. 따라서 Edge 리소스와 관련된 모든 데이터를 소스 제어 시스템을 통해 관리하는 것은 사용자의 책임입니다. 그래야 실수로 삭제하거나 변경 사항을 롤백해야 하는 경우 이전 데이터를 신속하게 복원할 수 있습니다. 이 데이터가 런타임 트래픽에 필요한 프로덕션 환경에서 이는 특히 중요합니다.

소스 제어 시스템을 통해 데이터를 관리하지 않을 때 의도적으로 또는 의도치 않게 데이터가 수정 또는 삭제되는 경우 발생할 수 있는 상황과 그로 인한 영향을 몇 가지 예시를 들어 설명해 보겠습니다.

예시 1: API 프록시 삭제 또는 수정

API 프록시가 삭제되거나 기존 버전에 변경사항이 배포되면 이전 코드를 복구할 수 없습니다. API 프록시에 Apigee 외부의 소스 제어 관리 (SCM) 시스템에서 관리되지 않는 Java, JavaScript, Node.js 또는 Python 코드가 포함된 경우 많은 개발 작업 및 작업이 수포로 돌아갈 수 있습니다.

예시 2: 특정 가상 호스트를 사용한 API 프록시 결정

가상 호스트의 인증서가 만료되어 가상 호스트에 업데이트가 필요합니다. API 프록시가 많으면 테스트 목적으로 해당 가상 호스트를 사용하는 API 프록시를 식별하기 어려울 수 있습니다. Apigee 외부의 SCM 시스템에서 API 프록시를 관리하면 저장소를 쉽게 검색할 수 있습니다.

예시 3: 키 저장소/트러스트 저장소 삭제

가상 호스트 또는 대상 서버 구성에서 사용하는 키 저장소/트러스트 저장소가 삭제되면 인증서나 비공개 키를 포함한 키 저장소/트러스트 저장소의 구성 세부 정보가 소스 제어 시스템에 저장되어 있지 않은 한 복원 할 수 없습니다.

영향

  • Edge 리소스가 삭제되면 Apigee Edge에서 리소스와 콘텐츠를 복구할 수 없습니다.
  • API 요청이 예상치 못한 오류로 인해 실패하여 리소스가 이전 상태로 복원될 때까지 서비스가 중단될 수 있습니다.
  • Apigee Edge의 API 프록시와 다른 리소스 간의 상호 의존성을 검색하기가 어렵습니다.

권장사항

  • 모든 표준 SCM과 지속적 통합 및 지속적 배포(CICD) 파이프라인을 함께 사용하여 API 프록시와 공유 흐름을 관리하세요.
  • API 제품, 캐시, KVM, 대상 서버, 가상 호스트, 키 저장소 등 다른 Edge 리소스를 관리하는 데 표준 SCM을 사용하세요.
    • 기존 Edge 리소스가 있는 경우 관리 API를 사용하여 해당 구성의 세부정보를 JSON/XML 페이로드로 가져와 소스 제어 관리에 저장합니다.
    • 소스 제어 관리에서 이러한 리소스의 모든 새 업데이트를 관리합니다.
    • 새 Edge 리소스를 만들거나 기존 Edge 리소스를 업데이트해야 하는 경우 소스 제어 관리에 저장된 적절한 JSON/XML 페이로드를 사용하고 관리 API를 사용하여 Edge의 구성을 업데이트하세요.

* 암호화된 KVM은 API에서 일반 텍스트로 내보낼 수 없습니다. 암호화된 KVM에 저장되는 값에 대한 기록을 유지하는 것은 사용자의 책임입니다.

추가 자료