Microsoft AZ-204: Azure API 관리 — 학습 가이드

다음의 일부입니다: Microsoft Azure Developer Associate AZ-204 — 학습 가이드. 검증된 답안으로 연습하기: Microsoft 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

개요

Azure API Management(APIM)는 다양한 백엔드 서비스에 대한 통합된 파사드(façade)를 제공하며, 고성능 게이트웨이와 구성 가능한 정책 엔진, 개발자 온보딩, 완전한 관리 평면을 결합합니다. 이를 통해 REST, SOAP, GraphQL 백엔드 전반에 걸쳐 일관된 보안, 제한(throttling), 변환, 관찰 가능성 및 수명 주기 제어가 가능합니다. APIM은 트래픽을 위한 런타임 게이트웨이인 동시에 Azure portal, ARM/Bicep/CLI 또는 CI/CD를 통해 관리하는 구성 기반 시스템입니다. 요청 파이프라인, 정책 기능, 버전 관리/수정 버전(revisions), 구독 모델, 계층별 특성을 이해하는 것은 강력하고 안전한 API를 대규모로 구축하는 데 필수적입니다.

아키텍처, 계층 및 핵심 구성 요소

게이트웨이는 데이터 평면입니다. 클라이언트 연결을 종료하고, 결정론적 순서로 정책을 적용하며, 백엔드로 라우팅하고, 응답을 반환합니다. 내장 캐싱, JWT 유효성 검사, 상호 TLS(mutual TLS), 콘텐츠 변환을 라인 레이트로 지원합니다. 게이트웨이는 지역별로 Microsoft가 호스팅하거나, 중앙에서 관리하면서 온프레미스 또는 엣지 워크로드에 더 가깝게 실행하기 위해 자체 호스팅(컨테이너화)할 수 있습니다. 게이트웨이는 추적 및 메트릭을 노출하고 분산 원격 측정을 위해 Application Insights와 통합됩니다.

개발자 포털은 검색, 문서화, 구독 관리를 위한 소비자 대면 환경입니다. OpenAPI/GraphQL 문서를 렌더링하고, 대화형 “try it” 콘솔을 제공하며, 브라우저 내에서 OAuth 2.0 흐름을 처리하고, 사용자 지정 브랜딩 및 ID 공급자를 지원합니다. 개발자는 여기에서 제품 구독을 셀프서비스로 관리하고 키를 교체합니다.

관리 평면은 구성 및 거버넌스 영역입니다. API, 작업, 정책, 제품, 사용자/그룹, 백엔드, 인증서, 진단 정보를 저장합니다. Azure portal, ARM/Bicep/CLI/PowerShell, Management REST API, Git 기반 구성 동기화를 통해 액세스할 수 있습니다. 이 평면은 배포, 버전 관리, 수정 버전(revisions), RBAC를 오케스트레이션합니다.

APIM 계층은 규모, 기능, 네트워크 기능을 결정합니다.

정책 및 요청 파이프라인

APIM 정책은 inbound, backend, outbound, on-error의 네 가지 섹션에 걸쳐 엄격한 순서로 실행되는 선언적 구문입니다.

Inbound 정책은 요청이 백엔드로 전달되기 전에 실행됩니다. 일반적인 작업에는 구독 키 요구 또는 유효성 검사, JWT 유효성 검사(발급자, 대상, 서명 강제), 클라이언트 IP 확인, 속도 제한 및 할당량 적용, 헤더 정규화, URI 재작성, 페이로드 변환 등이 포함됩니다. 조건에 따라 다른 백엔드로 라우팅하고 이후 단계를 위해 변수를 설정할 수 있습니다.

Backend 섹션은 업스트림 서비스에 대한 호출을 구성하고 수정합니다. 백엔드 엔터티를 선택하고, 클라이언트 자격 증명(기본 인증, 클라이언트 인증서 또는 Azure AD로 보호되는 백엔드를 위한 관리 ID를 통해 획득한 토큰)을 첨부하고, 시간 초과를 설정하고, 재시도를 활성화하고, 서킷 브레이킹을 적용하는 데 사용합니다. 백엔드에 대한 상호 TLS는 게이트웨이가 제시할 클라이언트 인증서를 연결하여 여기에서 구성합니다.

Outbound 정책은 백엔드 응답을 받은 후 실행됩니다. 일반적으로 응답 변환(예: JSON을 XML로 또는 그 반대로), 헤더 재작성, 데이터 셰이핑, 내부 세부 정보 마스킹, 응답 캐싱을 수행합니다. 또한 콘텐츠 협상 변환을 적용하거나 상태 코드를 정규화하는 곳이기도 합니다.

On-error 정책은 백엔드 호출을 포함하여 이전 섹션에서 예외가 발생할 경우 실행됩니다. 이 섹션을 사용하여 백엔드 오류를 표준화된 API 오류 형태로 매핑하고, 적절한 상태 코드를 설정하고, 민감한 메시지를 삭제하고, 상관 관계 ID를 추가하거나, 대체 응답을 제공할 수 있습니다.

일반적인 정책 패턴:

보안, ID 및 구독

프런트엔드 클라이언트-게이트웨이 보안과 백엔드 게이트웨이-서비스 보안을 모두 해결해야 합니다.

프런트엔드 보안의 경우, Azure AD를 사용한 OAuth 2.0이 지배적인 패턴입니다. 클라이언트는 Azure AD에서 토큰을 획득하여 게이트웨이에 제시합니다. APIM은 Azure AD OpenID Connect 메타데이터(테넌트의 well-known 엔드포인트)를 참조하는 validate-jwt를 사용하여 토큰 요구 사항을 강제합니다. 정책을 통해 토큰이 올바른 API를 대상으로 하는지 확인하는 대상(audience) 확인, 호출자가 적절한 권한을 가졌는지 보장하는 범위(scope) 클레임, 그리고 앱 역할과 같은 선택적 클레임을 강제할 수 있습니다. 익명 호출을 제거하려면 모든 작업에 validate-jwt를 적용해야 합니다. 개발자 포털을 Azure AD로 구성하여 테스트 중 토큰 획득을 간소화할 수 있습니다.

클라이언트 인증서 및 상호 TLS의 경우, APIM은 호출자에게 인바운드 클라이언트 인증서를 요구하고 validate-client-certificate를 사용하여 발급자/주체/만료일을 검증하며, 선택적으로 CRL/OCSP 상태도 검증할 수 있습니다. 이는 B2B 및 높은 보증 수준의 통합에 적합합니다. 게이트웨이-백엔드 mTLS의 경우, 클라이언트 인증서를 APIM에 업로드하고 백엔드 엔터티 또는 set-backend-service와 연결하면, APIM이 TLS 핸드셰이크 중에 이를 제시하여 백엔드에 인증합니다. 이 접근 방식은 보안이 적용된 App Service나 인증서 인증을 강제하는 사용자 지정 서비스에서 자주 요구됩니다.

Azure AD로 보호되는 백엔드의 경우, 백엔드 섹션에서 authentication-managed-identity를 사용하여 APIM의 시스템 할당 또는 사용자 할당 관리 ID로 액세스 토큰을 획득합니다. 이 정책은 백엔드 호출을 위해 Authorization 헤더를 주입합니다. 이를 통해 비밀 정보를 저장하지 않아도 되며 최신 제로 트러스트 요구 사항을 충족합니다.

구독은 세분화되지 않은(coarse-grained) 액세스 및 수익화 모델을 제공합니다. 제품은 약관, 승인, 사용량 제한에 따라 관리되는 API 묶음입니다. 개발자는 제품을 구독하여 Ocp-Apim-Subscription-Key 헤더나 쿼리 파라미터를 통해 사용되는 구독 키(기본 및 보조)를 얻습니다. 이중 키 덕분에 다운타임 없이 키를 교체(순환)할 수 있습니다. 구독 범위는 키가 적용될 위치(모든 API, 단일 API 또는 특정 제품)를 결정합니다. 구독 기반 액세스는 OAuth 2.0을 보완하며, 둘 다 요구될 수 있습니다. 이를 통해 인증은 토큰에 의존하면서도 별도의 제한(throttling)/계정 관리가 가능해집니다. 제품은 작업별 정책과 독립적으로 구독별 할당량 및 속도 제한을 강제하여 계층화된 보호 및 거버넌스를 제공할 수 있습니다.

백엔드, 복원력, 버전 관리 및 리비전

APIM의 백엔드는 대상 서비스의 기본 URL, 프로토콜, 자격 증명, TLS 설정, 헤더 템플릿, 프록시 구성을 캡슐화하는 독립적이고 재사용 가능한 엔터티입니다. API와 작업을 백엔드에 연결하면 라우팅을 정책에서 분리하고 연결 세부 정보를 중앙에서 관리할 수 있습니다. 정책에서 백엔드 ID로 set-backend-service를 사용하면 URL을 하드코딩하지 않고도 요청을 라우팅할 수 있어 개발, 테스트, 프로덕션 환경 전반의 승격(promotion)이 단순화됩니다.

복원력은 재시도 및 서킷 브레이커(circuit breaking)를 통해 구현됩니다. 지수 백오프를 사용한 재시도는 일시적인 장애를 완화할 수 있으며, 증폭 현상을 방지하기 위해 멱등성(idempotent) 작업에 한해 범위를 지정하고 합리적인 시간 초과를 설정해야 합니다. 서킷 브레이커 정책은 샘플링 기간 내에 실패율, 연속 실패 횟수 또는 지연 시간이 구성된 임계값을 초과하면 회로를 열어(open) 정의된 중단 시간 동안 요청을 즉시 차단합니다. 회로가 열린 상태에서 정책은 즉시 폴백(fallback) 응답을 반환하거나 대기 중인 백엔드로 라우팅할 수 있습니다. 반쯤 열린(half-open) 상태에서는 제한된 수의 테스트 요청으로 백엔드 상태를 확인한 후 회로를 닫습니다. 이는 백엔드를 보호하고, 클라이언트 경험을 개선하며, 부분적인 장애 상황에서 시스템을 안정화시킵니다.

부하 분산 및 라우팅은 정책 계층에서 구현할 수 있습니다. choose를 사용한 조건부 라우팅은 사용자 세그먼트, 지역, 요청 콘텐츠 또는 상태 신호에 따라 트래픽을 보낼 수 있습니다. 가중치 기반 라우팅은 원하는 가중치에 따라 백엔드를 의사 난수적으로 선택하는 정책 표현식을 통해 구현할 수 있으며, 이를 통해 카나리 릴리스와 점진적 배포가 가능합니다. 여러 지역에 걸친 액티브-액티브 백엔드는 Premium 등급의 다중 지역 APIM 배포와 가장 가까운 정상 지역으로의 조건부 라우팅을 결합하여 처리할 수 있습니다. 또는 APIM이 인증 및 변환을 처리하는 동안 Azure Front Door와 통합하여 글로벌 레이어 7 부하 분산을 수행할 수도 있습니다.

버전 관리와 리비전은 API 수명 주기를 관리합니다. 버전 세트는 경로, 쿼리 문자열 또는 헤더의 버전 관리 스킴을 사용하여 여러 API 버전이 클라이언트에 노출되는 방식을 정의합니다. 호환성이 깨지는 변경(breaking change)에는 버전을 사용하며, 각 버전은 동일한 버전 세트와 연결된 별도의 API 엔터티입니다. 호환성을 유지하는 반복적인 변경은 리비전으로 구현됩니다. 리비전은 API의 변경 가능한 스냅샷으로, 이전 리비전이 현재 프로덕션 리비전으로 유지되는 동안 테스트를 위해 명시적으로 (리비전 접미사를 통해) 호출할 수 있습니다. 유효성 검사 후, 버전 식별자를 변경하지 않고 새 리비전을 현재 리비전으로 승격시킬 수 있습니다. 이러한 분리를 통해 안전하고 점진적인 배포가 가능해집니다. 즉, 호환성을 유지하는 업데이트에는 리비전을, 호환성이 깨지는 변경에는 버전을 사용하며, 이는 개발자 포털에서 명확한 검색과 문서를 통해 제공됩니다.

마지막으로, 관찰 및 거버넌스입니다. 추적을 활성화하고, 상관관계 ID를 설정하며, 진단 정보를 Application Insights로 내보내 엔드투엔드 가시성을 확보하세요. ARM/Bicep 또는 APIM DevOps Resource Kit를 통해 구성을 관리하여 반복 가능한 배포를 달성하고, 관리 평면에 RBAC를 적용하여 API 작성자, 게시자 및 운영자의 직무를 분리하세요.

실제 문제 시나리오

Starbucks는 두 Azure 지역에 걸쳐 있는 마이크로서비스를 통합하는 모바일 주문용 통합 공개 API를 노출해야 합니다. 이 API는 익명 액세스를 차단하고, 악의적인 클라이언트를 스로틀링하며, 연쇄적인 장애로부터 지역 백엔드를 보호하고, v1 클라이언트에 영향을 주지 않으면서 v2 주문 스키마의 점진적 배포를 허용해야 합니다.

  1. 두 지역에 APIM Premium 인스턴스를 구축하고 다중 지역 배포를 활성화합니다. Premium은 다중 지역 게이트웨이 존재, 고급 네트워킹 및 엔터프라이즈 규모를 위해 선택되었습니다. 지역별 게이트웨이는 모바일 클라이언트의 지연 시간을 줄이고 액티브-액티브 복원력을 제공합니다.

  2. 두 지역의 App Service 인스턴스를 포함한 백엔드 서비스를 APIM 백엔드 엔터티로 가져옵니다. 백엔드 엔터티는 기본 URL, TLS 및 자격 증명 설정을 중앙에서 관리하여 깔끔한 라우팅 정책과 환경 이식성을 가능하게 합니다.

  3. Azure AD OAuth 2.0으로 클라이언트-게이트웨이 간 통신을 보호하고 인바운드 섹션에서 validate-jwt를 사용하여 토큰을 강제합니다. Azure AD는 중앙 집중식 ID, 조건부 액세스 및 강력한 토큰 유효성 검사를 제공합니다. validate-jwt는 올바른 대상(audience)/범위(scope)를 가진 인증된 호출자만 API를 호출할 수 있도록 보장합니다.

  4. 제품 구독을 요구하고 파트너 앱별로 구독 키를 발급합니다. 이는 OAuth와 독립적인 거버넌스 및 사용량 측정 계층을 추가하며, 파트너별 할당량, 쉬운 키 순환, 포털 기반 셀프서비스 온보딩을 가능하게 합니다.

  5. 인바운드에서 구독 키를 기준으로 rate-limit-by-keyquota-by-key를 구성합니다. 스로틀링은 백엔드를 급증하는 트래픽으로부터 보호하고 파트너를 위한 차별화된 SLA를 가능하게 합니다. 구독 키를 판별자로 사용하면 비즈니스 계약에 따라 정책을 적용할 수 있습니다.

  6. IP 필터링을 구현하여 알려진 악성 IP 범위를 차단하고, 관리 목적으로 Starbucks 소유의 회사 IP 범위를 허용합니다. ip-filter는 파이프라인 초기에 공격 표면을 줄여 다운스트림 리소스를 절약합니다.

  7. 클라이언트 인증서를 APIM에 업로드하고 관련 백엔드 엔터티에 바인딩하여 민감한 서비스를 위한 백엔드 상호 TLS(mTLS)를 구성합니다. mTLS는 백엔드가 인증서를 요구하는 경우 강력한 서비스 간 인증을 제공하여 내부 보안 정책을 충족시킵니다.

  8. Azure AD로 보호되는 서비스를 위해 백엔드 섹션에 authentication-managed-identity를 추가합니다. APIM의 관리 ID는 백엔드용 액세스 토큰을 획득하여 시크릿을 제거하고 Azure RBAC 및 조건부 액세스와 통합됩니다.

  9. 백엔드 섹션에 재시도 및 폴백 기능이 있는 서킷 브레이커를 구현합니다. 특정 시간 창 내에 반복적인 실패가 발생하면 회로를 열고 요청을 정상적인 지역 백엔드로 라우팅합니다. 만약 두 지역 모두 다운되면 표준화된 캐시된 폴백 응답을 반환합니다. 이는 성능이 저하된 서비스를 보호하고 장애 상황에서 예측 가능한 동작을 제공합니다.

  10. 조건부 라우팅을 사용하여 읽기 요청을 가장 가까운 지역으로 부하 분산하고 상태 신호에 따라 장애 조치(failover)합니다. 정책 표현식은 사용자 지정 헤더나 IP 지리적 위치를 검사하여 로컬 지역을 선택하며, 상태 프로브는 라우팅 결정을 위한 변수를 채웁니다. 이는 지역적 사고 발생 시 낮은 지연 시간과 연속성을 제공합니다.

  11. Orders API에 대해 경로 기반 버전 관리(/v1, /v2)를 사용하는 버전 세트를 도입합니다. 테스트를 위해 v2의 새 리비전을 만들고, 리비전별 URL을 호출하여 선택된 클라이언트와 유효성을 검사한 다음, 이를 현재 리비전으로 승격시킵니다. 버전 세트는 호환성이 깨지는 변경을 명확하게 전달하는 반면, 리비전은 안전하고 호환성을 유지하는 반복 작업을 가능하게 합니다.

  12. 아웃바운드 섹션에서 읽기 집약적인 엔드포인트(메뉴/카탈로그)에 대해 응답 캐싱을 활성화하고, 로케일 및 장치 유형에 따라 cache-lookupcache-store를 사용합니다. 캐싱은 백엔드에서 반복적인 가져오기 부하를 줄이고 모바일 성능을 향상시킵니다. Premium은 이러한 기능을 대규모로 지원합니다.

이 설계는 인증되고, 스로틀링되며, 복원력 있고, 진화 가능한 API를 제공합니다. APIM Premium은 글로벌 보안 게이트웨이를 제공하고, 정책은 ID, 스로틀링, 변환 및 복원력을 강제하며, 백엔드 엔터티와 관리 ID는 연결을 보호하고 분리하며, 버전 세트와 리비전은 클라이언트 중단 없이 지속적인 배포를 위한 체계적인 수명 주기를 제공합니다.


Azure 인증 · 모든 도메인 · Azure 이벤트 기반 및 메시지 솔루션

이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

시험 합격하기 →

Microsoft 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다