Azure AI 검색은 다양한 콘텐츠를 인덱싱하고 API, 애플리케이션 및 AI 에이전트를 통해 검색할 수 있는 확장성 있는 검색 인프라입니다. 채팅 완성 모델을 통해 동적 콘텐츠를 생성해야 하는 엔터프라이즈 검색 시나리오 및 AI 기반 고객 환경에 적합합니다.
이 문서에서는 가용성 영역 및 다중 지역 배포를 통한 지역 내 복원력을 다루는 Azure AI 검색의 안정성 지원에 대해 설명합니다.
안정성은 사용자와 Microsoft 간의 공동 책임입니다. 이 가이드를 사용하여 특정 비즈니스 목표 및 가동 시간 목표를 충족하는 안정성 옵션을 결정할 수 있습니다.
안정성을 위한 프로덕션 배포 권장 사항
프로덕션 워크로드의 경우 복제본이 두 개 이상 있는 청구 가능 계층을 사용하는 것이 좋습니다. 이 구성을 사용하면 임시 오류와 유지 관리 작업에 대한 검색 서비스의 복원력이 향상됩니다. 또한 AI Search에 대한 SLA(서비스 수준 계약) 를 충족합니다. SLA에는 읽기 전용 워크로드에 두 개의 복제본과 읽기-쓰기 워크로드에 대해 3개 이상의 복제본이 필요합니다.
AI Search는 무료 계층에 대한 SLA를 제공하지 않습니다. 이 계층은 하나의 복제본으로 제한되며 프로덕션 용도로는 권장되지 않습니다.
안정성 아키텍처 개요
AI Search를 사용하는 경우 검색 서비스를 만듭니다. 각 검색 서비스는 검색 가능한 콘텐츠를 저장하는 여러 검색 인덱스를 지원합니다.
AI Search는 기본 데이터 저장소로 설계되지 않았습니다. 대신 인덱서를 사용하여 검색 서비스를 외부 데이터 원본에 연결합니다. 인덱서는 원본 데이터를 크롤링하고, 처리 및 보강을 수행하는 기술을 호출하고, 기술 출력으로 인덱스를 채웁니다.
또한 서비스에 대한 복제본의 수도 구성합니다. AI Search에서 복제본은 서비스 검색 엔진의 복사본입니다. 복제본은 단일 VM(가상 머신)을 나타낸다고 생각할 수 있습니다. 각 검색 서비스에는 1~12개의 복제본이 있을 수 있습니다.
여러 복제본을 추가하면 AI 검색에서 다음 작업을 수행할 수 있습니다.
검색 서비스의 가용성을 향상합니다.
쿼리가 다른 복제본에서 계속 실행되는 동안 한 복제본에서 유지 관리를 수행합니다.
더 높은 인덱싱 및 쿼리 워크로드를 처리합니다.
지역에서 지원하는 경우 다른 가용성 영역에서 복제본을 프로비전하여 복원력을 향상시킵니다.
AI Search는 자동으로 하나의 복제본을 주 복제본으로 할당합니다. 모든 쓰기 작업은 해당 복제본에 대해 수행됩니다. 나머지 복제본은 읽기 작업에 사용됩니다.
다음 다이어그램은 세 개의 복제본이 있는 검색 서비스가 세 개의 가용성 영역에 어떻게 분산될 수 있는지 보여 줍니다.
검색 인덱스가 사용하는 스토리지 를 나타내는 파티션 수를 구성할 수도 있습니다.
복제본과 파티션은 각각 다른 방식으로 읽기 및 쓰기 성능에 영향을 주므로 복제본과 파티션을 추가하는 것이 미치는 영향을 이해하는 것이 중요합니다. 복제본 및 파티션에 대한 자세한 내용은 검색 서비스의 용량 예상 및 관리를 참조하세요.
일시적인 오류
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 일반적으로 영향을 받은 요청을 다시 시도하여 애플리케이션이 임시 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 임시 오류 처리를 위한 권장 사항을 참조하세요.
AI Search 인덱서에는 기본 제공 임시 오류 처리가 있습니다. 데이터 원본을 잠시 사용할 수 없는 경우 인덱서는 복구하고 다시 시도하도록 설계되었습니다. 변경 내용 추적을 사용하여 마지막으로 성공적으로 인덱싱된 문서에서 인덱싱을 다시 시작합니다.
검색 서비스는 표준적이고 예정되지 않은 유지 관리 작업 중에 일시적인 오류가 발생할 수 있습니다. Azure AI 검색은 사전 알림을 제공하지 않으며 특정 시간에 유지 관리를 예약할 수 없습니다. 가동 중지 시간을 최소화하기 위해 최선을 다하고 있지만 단일 복제 서비스의 경우에도 여전히 짧은 중단이 발생할 수 있습니다. 이러한 임시 오류에 대한 복원력을 개선하려면 두 개 이상의 복제본을 사용하는 것이 좋습니다.
AI Search와 상호 작용하는 애플리케이션을 빌드하는 경우 일시적인 오류를 처리해야 합니다. 읽기 및 쓰기 작업 모두에 대해 지수 백오프와 함께 재시도 전략을 사용합니다.
가용성 영역 지원
가용성 영역은 각 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
AI Search는 영역별 이중화되어 있어, 복제본이 검색 서비스 지역 내의 여러 가용성 영역에 분산됩니다.
서비스에 복제본을 두 개 이상 추가하면 AI Search에서 각 복제본을 다른 가용성 영역에 배치하려고 시도합니다. 사용 가능한 영역보다 복제본이 많은 서비스의 경우 복제본은 가능한 한 균등하게 영역에 분산됩니다.
다음 다이어그램은 4개의 복제본이 있는 예 검색 서비스를 3개의 가용성 영역에 배포하는 방법을 보여 줍니다.
중요합니다
AI Search는 복제본의 정확한 배치를 보장하지 않습니다. 배치에는 용량 제약 조건, 크기 조정 작업 및 기타 요소가 적용됩니다.
지역 지원
가용성 영역에 대한 지원은 인프라 및 스토리지에 따라 달라집니다. 지원되는 지역 목록은 AI Search에 대한 지역 선택을 참조하세요.
요구 사항
검색 서비스가 다음 기준을 모두 충족하는 경우 영역 중복이 자동으로 사용하도록 설정됩니다.
비고
둘 이상의 복제본이 있는 경우 AI Search는 여러 영역에 복제본을 배포하려고 시도합니다. 그러나 읽기/쓰기 워크로드의 경우 가능한 가장 높은 가용성 SLA를 받을 수 있도록 3개 이상의 복제본을 사용해야 합니다.
영역 간 인스턴스 배포
AI Search는 여러 가용성 영역에 복제본을 배치하려고 시도합니다. 그러나 때로는 검색 서비스의 모든 복제본이 동일한 가용성 영역에 배치되는 상황이 발생할 수 있습니다. 이러한 상황은 복제본이 서비스에서 제거될 때 발생할 수 있습니다. 예를 들어, 서비스를 구성하여 복제본 수를 줄여서 스케일 인하는 경우가 있습니다. 복제본 제거는 나머지 복제본을 트리거하여 가용성 영역 간에 균형을 조정하지 않습니다.
모든 복제본이 단일 가용성 영역에 배치될 가능성을 줄이려면 스케일 인 작업 직후에 스케일 아웃 작업을 수동으로 트리거할 수 있습니다. 예를 들어 검색 서비스에 10개의 복제본이 있고 7개의 복제본으로 확장하려는 경우를 가정해 보겠습니다. 단일 크기 조정 작업을 수행하는 대신 일시적으로 6개의 인스턴스로 확장한 다음 즉시 7개의 인스턴스로 확장하여 영역 재조정을 트리거할 수 있습니다.
비용
각 검색 서비스는 하나의 복제본으로 시작합니다. 영역 중복에는 둘 이상의 복제본이 필요하므로 서비스 실행 비용이 증가합니다. 복제본의 청구 의미를 이해하려면 가격 계산기를 사용합니다.
가용성 영역 지원 구성
검색 서비스가 영역 중복 요구 사항을 충족하는 경우 추가 구성이 필요하지 않습니다. 가능하면 AI Search는 복제본을 다른 가용성 영역에 배치하려고 시도합니다.
용량 계획 및 관리
가용성 영역 오류에 대비하려면 복제본 수를 과도하게 프로비전하는 것이 좋습니다. 과도하게 프로비전하면 검색 서비스가 일부 용량 손실을 허용하고 성능 저하 없이 계속 작동할 수 있습니다. 가동 중단 중에 복제본을 추가하는 것은 어려운 일이므로 과잉 프로비전은 용량이 줄어도 검색 서비스에서 정상적인 요청 볼륨을 처리할 수 있도록 하는 데 도움이 됩니다. 자세한 내용은 오버프로비전하여 용량 관리를 참조하세요.
일반 작업
이 섹션에서는 검색 서비스가 영역 중복을 위해 구성되고 모든 가용성 영역이 작동하는 경우 예상되는 상황을 설명합니다.
영역 간의 트래픽 라우팅: AI Search는 사용 가능한 모든 복제본에서 모든 쿼리 및 쓰기의 자동 부하 분산을 수행합니다. AI Search는 가용성 영역의 모든 복제본에 읽기 작업을 보낼 수 있습니다. AI Search 서비스에서 선택하는 단일 주 복제본에 쓰기 작업을 보냅니다.
영역 간 데이터 복제: 데이터의 변경 내용은 가용성 영역 간에 복제본 간에 자동으로 복제됩니다. 복제는 비동기적으로 발생합니다. 즉, 쓰기가 다른 복제본에 복제되기 전에 하나의 주 복제본에 커밋됩니다.
영역 축소 경험
이 섹션에서는 영역 중복에 대해 검색 서비스를 구성하고 가용성 영역 중단이 발생할 때 예상되는 사항에 대해 설명합니다.
검색 및 응답: AI Search는 가용성 영역에서 오류를 감지하는 역할을 담당합니다. 영역 장애 조치(failover)를 시작하기 위해 어떤 작업도 수행할 필요가 없습니다.
통지: AI Search는 영역이 다운된 경우 사용자에게 알리지 않습니다. 하지만 Azure Resource Health를 사용하면 복제본의 상태를 모니터링할 수 있습니다. 영역이 다운된 경우 해당 영역의 복제본은 사용할 수 없는 것으로 표시됩니다. Azure Service Health를 사용하여 영역 오류를 포함하여 AI Search 서비스의 전반적인 상태를 이해할 수도 있습니다.
이러한 서비스에 대한 경고를 설정하면 영역 수준 문제에 대한 경고를 받을 수 있습니다. 자세한 내용은 Azure Portal에서 Service Health 경고 만들기 및 Resource Health 경고 만들기 및 구성을 참조하세요.
활성 요청: 실패한 영역에서 복제본이 처리하는 요청이 종료됩니다. 클라이언트는 일시적인 오류를 처리하기 위한 지침에 따라 요청을 다시 시도해야 합니다.
예상 데이터 손실: 영향을 받는 가용성 영역에 읽기 복제본만 포함된 경우 데이터 손실이 발생하지 않습니다.
영향을 받은 영역에 있었기 때문에 주 복제본이 손실된 경우 아직 복제되지 않은 모든 쓰기 작업은 손실될 수 있습니다.
예상 가동 중지 시간: 대부분의 경우 다른 가용성 영역의 읽기 복제본이 요청을 계속 제공하므로 영역 오류로 인해 읽기 작업에 대한 검색 서비스에 가동 중지 시간이 발생하지 않을 것으로 예상됩니다.
주 복제본이 영향을 받는 영역에 있었기 때문에 손실된 경우 AI Search는 쓰기 작업을 다시 시작할 수 있도록 다른 복제본을 자동으로 새 주 복제본으로 승격합니다. 일반적으로 복제본 승격이 수행되려면 몇 초 정도 걸립니다. 이 시간 동안 쓰기 작업이 성공하지 못할 수 있습니다. 임시 오류 처리 지침에 따라 애플리케이션을 준비합니다.
그러나 검색 서비스의 모든 복제본이 단일 가용성 영역에 있을 수 있는 가능성은 거의 없습니다. 이 시나리오에서는 영역이 복구될 때까지 가동 중지 시간이 발생할 수 있습니다. 자세한 내용과 해결 방법을 알아보려면 인스턴스 배포를 참조하세요.
트래픽 경로 변경: 영역이 실패하면 AI Search는 실패를 감지하고 생존 영역의 활성 복제본으로 요청을 라우팅합니다. 주 복제본이 손실되면 다른 복제본이 새 주 복제본으로 승격됩니다.
영역 복구
가용성 영역이 복구되면 AI Search는 자동으로 정상 작업을 복원하고 복구된 영역을 포함하여 모든 영역에서 사용 가능한 복제본으로 트래픽 라우팅을 시작합니다.
영역 오류 테스트
AI Search는 영역 중복 서비스에 대한 트래픽 라우팅을 관리합니다. 어떠한 영역 장애 프로세스도 시작하거나 유효성 검사할 필요가 없습니다.
다중 지역 지원
AI Search는 단일 지역 서비스입니다. 해당 지역을 사용할 수 없게 되면 검색 서비스도 사용할 수 없게 됩니다.
대체 다중 지역 접근 방식
필요에 따라 여러 지역에 여러 AI Search 서비스를 배포할 수 있습니다. 각 지역에서 별도의 서비스를 배포하고 구성하는 일은 사용자의 책임입니다. 다중 지역 아키텍처를 사용하는 보조 Azure 지역에서 동일한 배포를 만드는 경우 애플리케이션은 단일 지역 재해에 덜 취약해집니다.
이 방법을 따르면 마지막 애플리케이션 상태를 복구하기 위해 여러 지역 간의 인덱스를 동기화해야 합니다. 또한 부하 분산 및 장애 조치(failover) 정책도 구성해야 합니다.
전반적인 솔루션의 성능을 최적화하려면 데이터 원본의 읽기 전용 복제본에서 인덱싱을 수행할 수 있는 기회를 찾습니다. 예를 들어, 일부 인덱서는 지리적으로 분산된 데이터 원본의 읽기 복제본에서 읽는 기능을 지원합니다.
자세한 내용은 Azure AI 검색의 다중 지역 배포를 참조하세요.
백업
AI Search는 기본 데이터 스토리지 솔루션이 아니므로 셀프 서비스 백업 및 복원 옵션을 제공하지 않습니다. 그러나 index-backup-restore
또는 Python용 샘플을 사용하여 인덱스 정의와 해당 문서를 일련의 JSON 파일로 백업한 다음 이를 사용하여 인덱스를 복원할 수 있습니다.
하지만 실수로 인덱스를 삭제하고 백업이 없는 경우 인덱스를 다시 빌드할 수 있습니다. 다시 빌드는 검색 서비스에서 인덱스를 다시 만든 다음 기본 데이터 저장소에서 데이터를 검색하여 다시 로드하는 것을 의미합니다.
서비스 수준 약정
Azure 서비스의 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 해당 가용성 예상 결과치를 달성하기 위해 솔루션이 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스 SLA를 참조하세요.
AI Search에서 가용성 SLA는 다음과 같은 검색 서비스에 적용됩니다.
- 청구 가능 계층을 사용하도록 구성되어 있습니다.
- 읽기 전용 워크로드(쿼리)에 대해 최소 두 개의 복제본을 갖습니다.
- 읽기-쓰기 워크로드(쿼리 및 인덱싱)을 위해 최소 3개의 복제본을 갖습니다.