Azure API Management에서 캐싱을 추가하여 성능 향상
적용 대상: 개발자 | 기본 | 기본 v2 | 표준 | 표준 v2 | 프리미엄
API Management의 API 및 작업은 응답 캐싱을 사용하여 구성할 수 있습니다. 응답 캐싱은 API 호출자의 대기 시간과 API 공급자의 백 엔드 부하를 크게 줄일 수 있습니다.
Important
기본 제공 캐시는 휘발성이며 동일한 API Management 서비스의 동일한 지역에 있는 모든 유닛에서 공유됩니다. 사용 중인 캐시 유형(내부 또는 외부)에 관계없이 캐시 관련 작업이 캐시의 변동성 또는 기타 이유로 인해 캐시에 연결되지 않는 경우 캐시 관련 작업을 사용하는 API 호출은 오류를 발생하지 않으며 캐시 작업이 성공적으로 완료됩니다. 읽기 작업의 경우 호출 정책 식에 null 값이 반환됩니다. 정책 코드는 캐시에서 찾을 수 없는 데이터를 검색하는 "대체" 메커니즘이 있는지 확인하도록 설계되어야 합니다. 캐싱에 대한 자세한 내용은 API Management 캐싱 정책과 Azure API Management의 사용자 지정 캐싱을 참조하세요.
학습할 내용:
- API에 대한 응답 캐싱 추가
- 실행 중인 캐싱 확인
참고 항목
내부 캐시는 Azure API Management의 소비 계층에서 사용할 수 없습니다. 그 대신 외부 Azure Cache for Redis를 사용할 수 있습니다. 다른 API Management 서비스 계층에서 외부 캐시를 구성할 수도 있습니다.
필수 조건
이 자습서를 완료하려면 다음이 필요합니다.
캐싱 정책 추가
이 예제에 나와 있는 캐싱 정책을 사용하면 GetSpeakers 작업에 대한 첫 번째 요청이 백 엔드 서비스의 응답을 반환합니다. 이 응답은 지정된 헤더 및 쿼리 문자열 매개 변수를 통해 캐시 및 입력됩니다. 일치하는 매개 변수를 사용하는, 작업에 대한 후속 호출은 캐시 기간 간격이 만료될 때까지 캐시된 응답을 반환합니다.
Azure Portal에 로그인합니다.
APIM 인스턴스로 이동합니다.
API 탭을 선택합니다.
API 목록에서 Demo Conference API를 선택합니다.
GetSpeakers를 선택합니다.
화면 맨 위에서 디자인 탭을 선택합니다.
인바운드 처리 섹션에서 </> 아이콘을 클릭합니다.
inbound 요소에 다음 정책을 추가합니다.
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false"> <vary-by-header>Accept</vary-by-header> <vary-by-header>Accept-Charset</vary-by-header> <vary-by-header>Authorization</vary-by-header> </cache-lookup>
outbound 요소에 다음 정책을 추가합니다.
<cache-store duration="20" />
기간 은 캐싱된 응답의 만료 간격을 지정합니다. 이 예제에서는 간격이 20초입니다.
팁
Azure API Management에서 Azure Cache for Redis 사용에서 설명한 대로 외부 캐시를 사용하는 경우 캐싱 정책의 caching-type
특성을 지정할 수 있습니다. 자세한 내용은 API Management 캐싱 정책을 참조하세요.
작업 호출 및 캐싱 테스트
실행 중인 캐싱을 확인하려면 개발자 포털에서 작업을 호출합니다.
- Azure Portal에서 APIM 인스턴스로 이동합니다.
- API 탭을 선택합니다.
- 캐싱 정책을 추가할 API를 선택합니다.
- GetSpeakers 작업을 선택합니다.
- 맨 위 오른쪽 메뉴에 테스트 탭을 클릭합니다.
- 보내기를 누릅니다.
다음 단계
- 캐싱 정책에 대한 자세한 내용은 API Management 정책 참조의 캐싱 정책을 참조하세요.
- 정책 식을 사용하여 키별 캐싱 항목에 대한 자세한 내용은 Azure API Management에서 사용자 지정 캐싱을 참조하세요.
- 외부 Azure Cache for Redis를 사용하는 방법에 대한 자세한 내용은 Azure API Management에서 외부 Azure Cache for Redis 사용을 참조하세요.