배포 옵션 검토
이 페이지의 내용
사전 프로덕션 또는 프로덕션 환경의 요구 사항을 충족하도록 다양한 배포 유형, 클라우드 제공자, 클러스터 계층으로 Atlas 클러스터를 구성할 수 있습니다. 이러한 권장 사항을 사용하여 벡터 Atlas Search를 수행하기 위한 배포 유형, 클라우드 제공자 및 리전, 클러스터 및 Atlas Search 계층을 선택합니다.
환경 | 배포 유형 | 클러스터 계층 | 클라우드 제공자 리전 | 노드 아키텍처 |
---|---|---|---|---|
쿼리 테스트 | Shared or dedicated cluster Local deployment | M0 , M2 , M5 , or higher tierN/A | All N/A | MongoDB 및 Atlas Search 프로세스는 동일한 노드에서 실행됩니다. |
프로토타입 애플리케이션 | 전용 클러스터 | M10 , M20 이상 계층 | 모두 | MongoDB 및 Atlas Search 프로세스는 동일한 노드에서 실행됩니다. |
프로덕션 | 별도의 검색 노드가 있는 전용 클러스터 | M10 이상 클러스터 계층 및 S30 이상 검색 계층 | 일부 리전 및 Google Cloud에서 AWS, 모든 리전에서 Azure | MongoDB 와 Atlas Search 프로세스는 서로 다른 노드에서 실행됩니다. |
이러한 배포 모델에 대해 자세히 알아보려면 다음 섹션을 검토하세요.
테스트 및 프로토타입 제작 환경
벡터 검색 쿼리를 테스트하고 애플리케이션의 프로토타입을 만들려면 다음 구성을 권장합니다.
배포 유형
Atlas Vector Search 쿼리를 테스트하기 위해 공유 또는 전용 클러스터 또는 로컬 Atlas 배포를 배포할 수 있습니다.
Cluster Tiers
공유 클러스터에는 M0
, M2
및 M5
계층이 포함됩니다. 이러한 저비용 클러스터 유형은 Atlas Vector Search 쿼리를 테스트하는 데 사용할 수 있습니다. 그러나 공유 클러스터에서 리소스 경합과 쿼리 지연 시간이 발생할 수 있습니다. 공유 클러스터로 프로젝트를 시작하는 경우, 애플리케이션을 프로덕션할 준비가 되면 상위 계층으로 업그레이드하는 것이 좋습니다.
전용 클러스터에는 M10
이상의 계층이 포함됩니다. M10
및 M20
계층은 애플리케이션 프로토타입을 제작하는 데 적합합니다. 애플리케이션을 프로덕션할 준비가 되면 상위 계층으로 업그레이드하여 대규모 데이터 세트를 처리하거나, 워크로드 격리를 위한 전용 검색 노드를 배포할 수 있습니다.
클라우드 제공자 및 리전
선택한 클라우드 공급자와 리전은 클러스터 계층에 사용할 수 있는 구성 옵션과 클러스터 실행 비용에 영향을 미칩니다.
모든 클러스터 계층은 지원되는 모든 클라우드 제공자 리전에서 사용할 수 있습니다.
Atlas Vector Search 쿼리를 로컬에서 테스트하려는 경우 Atlas CLI를 사용하여 로컬 컴퓨터에 호스팅된 단일 노드 복제본 세트를 배포할 수 있습니다. 시작하려면 Atlas Vector Search 빠른 시작을 완료하고 로컬 배포를 위한 탭을 선택하세요.
애플리케이션을 프로덕션할 준비가 되면 실시간 마이그레이션을 사용하여 로컬 Atlas 배포를 프로덕션 환경으로 마이그레이션하세요. 로컬 배포는 로컬 컴퓨터의 CPU, 메모리 및 스토리지 리소스에 의해 제한됩니다.
노드 아키텍처
이 배포 모델에서는 Atlas 클러스터의 각 노드에서 검색 mongot
프로세스가 mongod
프로세스와 함께 실행됩니다. mongod
프로세스는 쿼리를 동일한 노드의 mongot
로 라우팅하고 동일한 리소스를 공유합니다.
기본적으로 Atlas는 첫 번째 Atlas Vector Search 인덱스를 생성할 때 mongod
프로세스를 실행하는 동일한 노드에서 검색 mongot
프로세스를 활성화합니다. mongot
프로세스는 mongot
프로세스 소개에 설명된 작업을 수행합니다.
제한 사항
데이터베이스 mongod
와 검색 mongot
프로세스 간에 리소스 경합이 발생할 수 있습니다. 이는 인덱스 성능과 쿼리의 지연 시간에 부정적인 영향을 미칠 수 있습니다. 이 배포 모델은 테스트 및 프로토타이핑 환경에만 사용하는 것을 권장합니다. 프로덕션에 즉시 사용할 수 있는 애플리케이션과 관련 검색 워크로드의 경우 전용 검색 노드로 마이그레이션하는 것이 좋습니다.
프로덕션 환경
프로덕션용 애플리케이션의 경우 다음과 같은 클러스터 구성을 권장합니다.
배포 유형
프로덕션용 애플리케이션의 경우 전용 클러스터가 필요합니다.
Cluster Tiers
전용 클러스터에는 M10
및 그 이상의 계층이 포함됩니다. M10
및 M20
계층은 개발 및 프로덕션 환경에 적합합니다. 그러나 더 높은 계층은 대용량 데이터 세트와 프로덕션 작업을 처리할 수 있습니다. 검색 워크로드를 위해 전용 검색 노드를 배포하는 것도 좋습니다. 이를 통해 검색 배포를 독립적이고 적절하게 확장할 수 있습니다.
클라우드 제공자 및 리전
선택한 클라우드 공급자와 지역은 클러스터에 사용할 수 있는 구성 옵션과 검색 계층, 그리고 클러스터 실행 비용에 영향을 미칩니다.
모든 클러스터 계층은 특정 AWS 지역을 제외하고 지원되는 모든 클라우드 공급자 지역에서 사용할 수 있습니다. AWS에서 호스팅되는 클러스터의 경우 배포에 사용할 수 있는 클라우드 공급자를 선택해야 합니다.
노드 아키텍처
이 배포 모델에서 mongot
프로세스는 mongod
프로세스가 실행되는 클러스터 노드와 분리된 검색 노드에서 실행됩니다. Atlas는 각 클러스터 또는 클러스터의 각 샤드와 함께 검색 노드를 배포합니다.
예를 들어 샤드가 3개인 클러스터에 검색 노드 2개를 배포하면 Atlas는 검색 노드를 샤드당 2개씩, 총 6개를 배포합니다. 또한 검색 노드 수와 각 검색 노드에 프로비저닝된 리소스의 양을 구성할 수도 있습니다.
별도의 검색 노드를 배포하는 경우 Atlas는 인덱싱을 위해 각 mongot
에 대한 mongod
를 자동으로 할당합니다. mongot
는 저장하는 인덱스에 대한 변경 사항을 수신하고 동기화하기 위해 mongod
와 통신합니다. Atlas Vector Search는 mongod
프로세스와 mongot
프로세스가 모두 동일한 노드에서 실행될 때와 유사하게 쿼리를 인덱싱하고 처리합니다. 자세한 내용은 벡터 검색을 위한 필드 인덱싱 방법 및 벡터 검색 쿼리 실행을 참조하세요. 검색 노드를 별도로 배포하는 방법에 대해 자세히 알아보려면 워크로드 격리를 위한 검색 노드를 참조하세요.
검색 노드로 마이그레이션할 때, Atlas는 검색 노드를 배포하지만 검색 노드에서 클러스터의 모든 인덱스를 성공적으로 구축할 때까지 해당 노드에서 쿼리를 제공하지 않습니다. Atlas가 새로운 노드에서 인덱스를 구축하는 동안 클러스터 노드에 있는 인덱스를 사용하여 계속해서 쿼리를 제공합니다. Atlas는 검색 노드에서 인덱스를 성공적으로 구축하고 클러스터 노드에서 인덱스를 제거한 후에만 검색 노드에서 쿼리를 제공하기 시작합니다.
클러스터의 모든 검색 노드를 삭제하면 검색 쿼리 결과 처리가 중단될 수 있습니다. 자세한 내용은 클러스터 수정을 참조하세요. Atlas 클러스터를 삭제하면 Atlas가 일시 중지된 후 관련된 모든 Atlas Vector Search 배포(mongot
프로세스)를 삭제합니다.
혜택
이 배포 모델은 다음과 같은 이점을 제공합니다.
Atlas Search 워크로드에 대한 리소스의 고가용성을 보장하면서 리소스를 효율적으로 활용하세요.
데이터베이스 배포와 독립적으로 Atlas Search 배포의 크기를 조정하고 확장할 수 있습니다.
Atlas Vector Search 쿼리를 동시에 자동으로 처리하여 특히 대규모 데이터 세트의 응답 시간을 개선합니다. 자세한 내용은 세그먼트 간 쿼리 실행 병렬 처리를 참조하세요.
클러스터 크기 조정 및 확장
Atlas Vector Search는 전체 인덱스를 메모리에 저장하므로 Atlas Vector Search 인덱스와 JVM 에 충분한 메모리가 있는지 확인해야 합니다. 각 인덱스는 인덱싱되는 벡터와 추가 메타데이터의 조합입니다. 인덱스 크기는 주로 인덱싱하는 벡터의 크기에 따라 결정되며, 메타데이터 공간은 일반적으로 비교적 명목상 크기입니다.
단일 벡터 에 대해 다음 요구 사항을 고려하세요.
임베딩 모델 | 벡터 차원 | 공간 요구 사항 |
---|---|---|
OpenAI text-embedding-ada-002 | 1536 | 6kb |
Google text-embedding-gecko | 768 | 3kb |
Cohere embed-english-v3.0 | 1024 | 1.07kb |
BinData
vector
서브타입 int8
양자화된 벡터. 자세한 내용은 양자화된 벡터 수집을 참조하세요.
필요한 공간은 인덱싱하는 벡터의 수와 벡터 차원에 따라 선형적으로 확장됩니다. Search Index Size 지표를 사용하여 검색 노드에 필요한 공간과 메모리 양을 확인할 수도 있습니다.
전용 검색 노드를 배포하면 다양한 검색 계층을 선택할 수 있습니다. 각 검색 계층에는 기본 RAM 용량, 저장 용량 및 CPU가 있습니다. 이를 통해 데이터베이스 배포와 독립적으로 클러스터 크기를 지정하고 확장할 수 있습니다. 검색 배포를 개별적으로 확장하기 위해 클러스터 구성을 언제든지 다음과 같이 변경할 수 있습니다.
클러스터의 검색 노드 수를 조정합니다.
Atlas Search 계층을 변경하여 노드의 CPU, RAM 및 스토리지를 조정합니다.
참고
검색 노드와 검색 계층 비용에 대해 자세히 알아보려면 MongoDB 가격 페이지에서 View all plan features를 확장하고 Atlas Vector Search를 클릭하세요.
노드의 RAM이 Atlas Vector Search 인덱스의 총 크기보다 최소 10% 더 크도록 하는 것이 좋습니다. 또한 사용 가능한 CPU가 충분한지 확인하는 것이 좋습니다. 쿼리 지연 시간은 사용 가능한 CPU 수에 따라 달라지며, 이는 쿼리 성능을 가속화하는 내부 동시성 수준에 상당한 영향을 미칠 수 있습니다.
예시
크기가 약 3GB인 1M 768 차원 벡터가 있다고 가정해 보겠습니다. S30 (낮은 CPU) 및 S20 (고성능 CPU) 검색 계층 모두 인덱스를 지원하는 데 충분한 RAM이 있습니다. S30 (낮은 CPU) 검색 계층에 배포하는 대신 S20 (고성능 CPU) 검색 계층에 배포하는 것이 좋습니다. S20 (고성능 CPU) 검색 계층에는 쿼리를 동시에 실행하는 데 사용할 수 있는 CPU가 더 많기 때문입니다.
전용 Atlas Search 노드로 마이그레이션
전용 검색 노드를 사용하면 클러스터와 별도로 검색 배포의 크기를 조정하고 확장할 수 있습니다. 또한 동일한 노드에서 데이터베이스와 검색 프로세스를 모두 실행하는 클러스터에서 발생할 수 있는 리소스 경합을 제거합니다.
전용 검색 노드로 마이그레이션하려면 배포를 다음과 같이 변경합니다.
현재 배포에서 공유 계층을 사용하는 경우 클러스터를 더 높은 계층으로 업그레이드하세요. 전용 검색 노드는
M10
이상 클러스터 계층에서만 지원됩니다. 다른 클러스터 계층으로 마이그레이션하는 방법에 대해 자세히 알아보려면 Cluster Tier 수정을 참조하세요.전용 검색 노드는 AWS 리전의 하위 집합과 지원되는 모든 Google Cloud 및 Azure 리전에서 사용할 수 있습니다. 검색 노드를 사용할 수 있는 리전에 클러스터를 배포하세요. 기존 클러스터가 검색 노드를 사용할 수 없는 리전에 있는 경우 클러스터를 검색 노드를 사용할 수 있는 리전으로 마이그레이션하세요. 자세한 내용은 클라우드 공급자 리전을 참조하세요.
Search Nodes for workload isolation을 활성화하고 검색 노드를 구성합니다. 자세한 내용은 검색 노드 추가를 참조하세요.