Azure AI Search는 단일 지역 서비스이지만 여러 지역에 동일한 구성 및 콘텐츠를 사용하여 여러 검색 서비스를 배포하여 더 높은 가용성과 복원력을 달성할 수 있습니다.
이 문서에서는 서비스를 사용할 수 없게 될 경우 장애 조치(failover)를 처리하기 위해 사용자 지정 스크립트 또는 코드를 사용하는 다중 지역 솔루션의 구성 요소를 설명합니다.
가용성 영역을 통한 지역 내 복원력을 포함하여 Azure AI Search의 안정성 기능에 대한 자세한 내용은 Azure AI Search의 안정성을 참조하세요.
여러 지역을 사용하는 이유는 무엇인가요?
두 개 이상의 검색 서비스가 필요한 경우 다른 지역에서 검색 서비스를 만들면 다음 운영 요구 사항을 충족할 수 있습니다.
지역 중단에 대한 복원력. 중단이 있는 경우 Azure AI Search는 다른 지역에 대한 즉각적인 장애 조치(failover)를 제공하지 않습니다.
전역적으로 분산된 애플리케이션에 대한 빠른 성능 인덱싱 및 쿼리 요청이 전 세계에서 오는 경우 호스트 데이터 센터에 가장 가까운 사용자는 더 빠른 성능을 경험합니다. 이러한 사용자와 근접한 지역에서 더 많은 서비스를 만들면 모든 사용자의 성능을 균등화할 수 있습니다.
다중 지역 아키텍처
다중 지역 설정에서 두 개 이상의 검색 서비스가 서로 다른 지역에 있으며 인덱스를 동기화했습니다. 사용자는 대기 시간이 가장 짧은 서비스로 자동으로 라우팅됩니다.
Azure AI Search는 지역 간 인덱스 복제의 자동화된 방법을 제공하지 않습니다. 그러나 푸시 또는 끌어오기 모델 인덱싱을 사용하여 데이터를 동기화할 수 있습니다. 둘 다 다음 섹션에 설명되어 있습니다. 요청 리디렉션을 위해 Azure Traffic Manager 또는 다른 부하 분산 장치를 추가할 수도 있습니다.
다음 다이어그램에서는 지리적으로 분산된 검색 서비스 집합을 보여 줍니다.
팁 (조언)
전체 구현은 GitHub의 Bicep 샘플을 참조하세요. 이 샘플은 지역 및 인덱싱 전략으로 수정할 수 있는 완전히 구성된 다중 지역 검색 솔루션을 배포합니다.
데이터 동기화
두 개 이상의 고유한 검색 서비스를 동기화하려면 다음 중 하나를 수행할 수 있습니다.
- Azure SDK에서 문서 - 인덱스(REST API) 또는 해당하는 API를 사용하여 인덱스에 콘텐츠를 푸시합니다.
- 인덱서로 콘텐츠를 인덱스로 끌어오기.
REST API를 사용하여 콘텐츠를 인덱스로 푸시하는 경우 변경이 발생할 때마다 각 서비스에 업데이트를 전송하여 여러 검색 서비스를 동기화할 수 있습니다. 코드가 한 서비스에 대해 업데이트가 실패하지만 다른 서비스에 성공하는 경우를 처리해야 합니다.
데이터 저장 위치
다른 지역에 여러 검색 서비스를 만들면 콘텐츠가 각 서비스에 대해 선택한 지역에 저장됩니다.
Azure AI Search는 권한 부여 없이 지정된 지역 외부에 데이터를 저장하지 않습니다. 권한 부여는 기본 지역에 스토리지 계정을 제공하는 Azure Storage에 쓰는 기능을 사용할 때 암시적입니다. 이러한 기능은 다음과 같습니다.
검색 서비스 및 스토리지 계정이 동일한 지역에 있는 경우 네트워크 트래픽은 Microsoft 백본 네트워크를 통해 개인 IP 주소를 사용하므로 네트워크 보안을 위해 IP 방화벽 또는 프라이빗 엔드포인트를 구성할 수 없습니다. 또는 신뢰할 수 있는 서비스 예외를 사용합니다.
장애 조치(failover) 및 리디렉션 요청
요청 수준에서 중복성을 위해 Azure는 다음과 같은 몇 가지 부하 분산 옵션을 제공합니다.
Azure Application Gateway를 사용하여 애플리케이션 계층의 지역에 있는 서버 간에 부하를 분산합니다.
기본적으로 서비스 엔드포인트는 공용 인터넷 연결을 통해 액세스됩니다. 가상 네트워크 내에서 시작된 클라이언트 연결에 대한 프라이빗 엔드포인트를 설정하는 경우 Application Gateway를 사용합니다.
이러한 부하 분산 옵션을 평가할 때 다음 사항을 고려합니다.
Azure AI Search는 클라이언트의 인덱싱 및 쿼리 요청을 수락하는 백 엔드 서비스입니다.
기본적으로 서비스 엔드포인트는 공용 인터넷 연결을 통해 액세스됩니다. 가상 네트워크 내에서 시작되는 프라이빗 엔드포인트에 Azure Application Gateway 를 사용하는 것이 좋습니다.
Azure AI 검색은
<your-search-service-name>.search.windows.net엔드포인트로 전달된 요청을 수락합니다. 호스트 헤더에 다른 DNS 이름(예: CNAME)을 사용하여 동일한 엔드포인트에 도달하면 요청이 거부됩니다.클라이언트에서 검색 서비스로의 요청은 인증되어야 합니다. 검색 작업에 액세스하려면 호출자에게 역할 기반 권한이 있거나 요청에 API 키를 제공해야 합니다.