Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

MongoDB를 사용한 대규모 확장 소개

2018년 6월 4일 ObjectRocket.com/blog에서 최초 게시

크기 조정을 정의할 수 있습니다. 물고기의 비늘을 제거하는 것처럼. 그러나 데이터베이스를 사용하면 확장 스토리지, 디스크, RAM, CPU, 컴퓨팅 주기, 네트워킹 또는 기타 리소스에 대한 추가 요구 사항을 충족하기 위해 확장하는 기능을 나타냅니다.

MongoDB를 사용한 대규모 확장 소개

확장해야 할 시기를 어떻게 알 수 있습니까?

오늘날 앱이 확산되기 시작하고 사용량이 급증하는 경우와 같이 데이터의 급속한 성장과 애플리케이션의 빠른 채택률을 보는 것이 일반적입니다. 이런 일이 발생하면 초기 환경보다 빠르게 성장하게 됩니다. 이러한 증가는 물리적 데이터 스토리지 요구 사항, 성능 저하 및 더 많은 리소스가 필요한 성능 저하로 인해 발생할 수 있습니다. CPU, RAM, 네트워킹 또는 이러한 모든 영역의 조합을 생각하십시오. 성장에 대한 사전 계획을 세우거나 약간의 성능 저하가 보이기 시작할 때 확장하도록 선택할 수 있습니다.

사전적 확장

사전에 확장을 계획할 때 적어도 두 가지 일반적인 패턴이 발생할 수 있습니다.

  • 큰 마케팅 추진력이 있고 고객 수 또는 데이터 양이 크게 증가할 것입니다.
  • 귀하의 애플리케이션 또는 비즈니스는 주기적으로 진행되는 경향이 있으며(예:크리스마스 구매, 새해 결심 등) 많은 양의 데이터를 캡처하고 유지하는 활동이 증가합니다.

게시물 읽기:MongoDB 인스턴스를 확장할 적절한 시기를 결정하는 방법

반응형 확장

병목 현상이 발생하고 계속 성장할 것으로 예상되는 경우 확장에 대해 생각해야 합니다.

문제 징후에는 다음과 같은 문제가 포함됩니다.

  • 최종 사용자의 쿼리 시간 증가
  • 로그인 시간 증가
  • 요청 및 서버 정지
  • 개발자의 데이터베이스 불만
  • 느린 서버 응답 시간
  • 호스트의 부하 증가
  • 메모리 부족 오류
  • 의도하지 않은 선거
  • 로그의 오류

이러한 징후가 보이기 시작하면 수요를 따라잡고 고객을 잃지 않도록 확장을 시작할 때입니다.

수직 확장 가능 (위쪽) 또는 가로 (밖으로)

MongoDB를 사용한 대규모 확장 소개

세로 크기 조정

이것은 Big Iron이라는 속담입니다. 방법:많은 리소스(CPU 코어, 높은 CPU 속도, 많은 RAM, 스토리지)가 있는 하나의 큰 시스템. 수직 확장의 주요 이점은 아키텍처 복잡성 감소와 유지 관리할 호스트 수 감소입니다. 유지 관리를 처리할 사람이 없는 경우에 유용합니다.

오늘날 수직으로 확장하는 여러 방법을 사용할 수 있습니다. 이러한 옵션에는 더 나은 상용 하드웨어, 더 저렴한 디스크 및 스토리지, 더 나은 스토리지 옵션, 더 저렴한 메모리, 더 나은 소프트웨어 및 네트워킹이 포함되어 있어 장애 조치 및 중단을 보다 원활하게 처리할 수 있습니다.

확장은 많은 애플리케이션과 요구 사항에 이상적이며 복제본 세트를 권장합니다. 우리는 다음 섹션에서 논의합니다. 더 큰 복제본 세트를 사용할 때 염두에 두어야 할 한 가지는 수직 확장에 숨겨진 비용이 있을 수 있다는 것입니다. 환경이 계속해서 빠르게 성장하는 경우 더 이상 선택 사항이 아닌 지점에 도달할 때까지 계속해서 더 큰 시스템으로 이동하거나 추가 리소스를 확보해야 할 수 있습니다. 또한 업그레이드 주기가 수평으로 확장된 환경에 비해 더 큰 단일 호스트에서 덜 효율적이라는 점도 고려해야 합니다. 지속적인 성장을 위해서는 계속해서 확장해야 하는지 아니면 수평 확장을 통해 이점을 얻을 수 있는지 결정해야 합니다.

가로 크기 조정

샤딩은 수평적 확장입니다. 샤딩은 여러 노드에 데이터를 저장하여 호스트 전체에 로드와 프로세스를 분산합니다. 복제는 필요에 따라 노드를 추가할 수 있는 기본-복제본 모델을 사용하여 처리됩니다.

로드 밸런서는 노드의 디스크에 데이터 청크를 분산합니다.

이렇게 하면 하나의 시스템에 쓰기 또는 읽기를 수행하는 대신 읽기 및 쓰기 작업을 시스템 그룹에 분산하여 읽기 및 쓰기 용량이 증가합니다. 운 좋게도 지난 몇 가지 릴리스에서 밸런서 기능이 크게 개선되었습니다. 수평 확장은 MongoDB® 내장 샤딩 기능을 활용하고 저렴한 상용 하드웨어를 사용함으로써 이점을 얻습니다.

수평으로 확장하면 물리적 또는 가상 호스트가 있는 리소스를 추가합니다.

  • 물리적 – 저렴한 범용 하드웨어
  • 가상 – VM 또는 클라우드를 사용하여 CPU 코어 또는 노드 추가
  • 네트워킹 – 로드 밸런서, 추가 mongoS® 프로세스 등 추가

향상된 로드 밸런싱 기술(하드웨어 및 소프트웨어)을 사용하여 로드 밸런서를 사용하여 트래픽이 필요한 곳으로 이동합니다.

MongoDB에서 복제본 세트로 확장을 어떻게 구현합니까?

MongoDB는 하나의 기본이 있는 단일 대형 복제본 세트를 사용하여 수평으로 확장할 수 있습니다. 및 2개의 보조 up 또는 down 상태에 대한 하트비트 통신이 있습니다. 복제는 운영 물류를 통해 보조 서버에서 발생합니다.

수평 크기 조정:복제본 집합 또는 분할?

샤딩과의 절충은 전반적인 복잡성을 증가시킵니다. 그러나 샤딩은 유지 관리를 단순화함으로써 이점도 제공합니다. 이를 통해 롤링 업그레이드가 가능하고 인덱스 빌드와 같은 특정 작업을 샤드와 노드에서 동시에 병렬로 수행할 수 있습니다. 다음은 더 큰 복제본 세트와 샤딩된 클러스터를 비교한 것입니다.

복제본 세트 샤딩
단순 전문 지식 필요
광범위한 데이터 세트에서 많은 읽기(수집을 분산시키고 싶지 않음) 많은 쓰기 및 업데이트(결과를 위해 정확한 조각으로 직접 이동하려는 경우)
많은 데이터, 낮은 활동률 많은 데이터, 많은 활동
보통 필요 디스크와 같은 리소스 디스크, RAM, CPU, 쓰기 범위를 포함한 모든 리소스가 더 필요합니다.

ObjectRocket에서 관리형 MongoDB를 선택하는 이유

Rackspace ObjectRocket은 전문성을 의미합니다. . 우리는 처음부터 MongoDB를 대규모로 관리했습니다. 우리는 더 큰 복제본 세트에 대한 지원을 제공하며 더 큰 샤딩된 MongoDB클러스터에 대한 지원을 제공한 최초의 공급자 중 하나였습니다. 당사의 엔지니어와 DBA는 경험이 있으며 매우 복잡한 장애물, 즉 다른 제공업체에서는 일반적으로 들어보지 못한 장애물을 극복했습니다.

마케팅 기술 분야(모바일 분석, 미디어, 이메일 캠페인, 모바일 광고 사기 탐지 및 디지털 미디어) 분야에서 가장 큰 고객 중 일부는 종종 다른 사람이 보거나 수정하는 방법을 모르는 버그에 부딪힙니다. 다양한 고객이 보낸 수십억 개의 메시지와 문서, 수천 개의 크고 작은 캠페인이 모두 당사 플랫폼에서 호스팅됩니다.

우리가 제공하는 서비스는 다음과 같습니다:

  • 인프라
  • 저장소
  • IOPS
  • 네트워크
  • 최고의 직접 지원, 직접 지원 연중무휴 올바른 응답

요금제 및 가격을 확인하세요.

보조를 프로비저닝하지 않고 완전히 강력한 설정을 제공하는 클라우드 솔루션을 제공하는 것을 목표로 합니다. 가상 볼륨에서. 따라서 선거가 발생하고 귀하의 기본 보조에 대해서만 프로비저닝된 덜 강력한 호스트에서 끝납니다. 스케일링을 위한 것입니다. MongoDB 인스턴스 확장 시기, 샤딩 팁, 최고의 샤드 키 선택 등에 대해 자세히 알아보세요.

Rackspace DBA 서비스에 대해 자세히 알아보십시오.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 영업 채팅을 클릭할 수도 있습니다. 지금 채팅하고 대화를 시작하세요.