AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

Atlas 고가용성을 위한 지침

고가용성은 인프라 장애, 시스템 유지보수 및 기타 중단 시 지속적인 작업을 보장하고 가동 중단 시간을 최소화하는 애플리케이션의 기능입니다. MongoDB의 기본값 배포서버 아키텍처는 고가용성을 위해 설계되었으며, 데이터 중복성과 자동 페일오버를 위한 내장 기능을 갖추고 있습니다.

고가용성은 재해 복구와 다릅니다. 고가용성은 데이터 손실(RPO = 0) 및 몇 초 이내의 RTO 없이 정확한 장애 시점으로 복구하는 자동 페일오버 통해 노드, 구역, 리전 또는 cloud 제공자 중단과 같은 인프라 장애로부터 보호합니다. 재해 복구는 백업에서 복원해야 하는 손상이나 실수로 인한 삭제와 같은 데이터 무결성 문제로부터 보호합니다. 재해 복구에 대해 자세히 학습 Atlas 재해 복구를 위한 지침을 참조하세요.

이 페이지에서는 중단을 방지하고 구역, 리전 및 클라우드 공급자 장애에 대한 강력한 페일오버 메커니즘을 지원하기 위해 선택할 수 있는 추가 구성 옵션 및 배포서버 아키텍처 개선 사항에 대해 설명합니다.

MongoDB의 기본값 배포서버 아키텍처는 중복성을 위해 설계되었습니다. Atlas 각 클러스터 선택한 cloud 제공자 리전 내의 별도 가용영역에 분산된 최소 3개의 데이터베이스 인스턴스(노드 또는 복제본 세트 멤버라고도 함)가 있는 복제본 세트 로 배포합니다. 애플리케이션이 복제본 세트의 프라이머리 노드 에 데이터를 쓰기 (write) 다음, Atlas 클러스터 내의 모든 노드에 해당 데이터를 복제하고 저장합니다. 데이터 저장 의 내구성 을 제어 하려면 특정 수의 보조 노드 가 쓰기 (write) 를 커밋한 후에만 쓰기 (write) 완료 하도록 애플리케이션 코드 의 쓰기 고려 (write concern) 조정할 수 있습니다 . 기본값 동작은 조치 확인하기 전에 데이터가 대다수의 투표 선택 가능 노드에 유지되는 것입니다.

다음 다이어그램에서 기본값 3노드 복제본 세트의 복제 작동 방식을 확인하실 수 있습니다.

3노드 복제본 세트에서 복제 프로세스를 보여주는 이미지.
클릭하여 확대

인프라 중단, 예정된 유지 관리 또는 기타 중단으로 인해 복제본 세트 의 프라이머리 노드 사용할 수 없게 되는 이벤트 , Atlas 클러스터는 복제본 세트 투표 에서 기존 세컨더리 노드 프라이머리 노드 역할 로 승격시켜 자가 복구됩니다. 이 페일오버 프로세스 완전 자동이며 몇 초 만에 데이터 손실(RPO = 0) 없이 정확한 실패 시점으로 복구됩니다.재시도 가능 쓰기가 활성화된 경우 실패 당시에 진행 중이던 작업이 실패 후에 재시도됩니다. 복제본 세트 투표 후, Atlas 실패한 멤버를 복원하거나 교체하여 클러스터 가능한 한 빨리 대상 구성으로 돌아갈 수 있도록 합니다. 또한 MongoDB 클라이언트 운전자 실패 중과 실패 후에 모든 클라이언트 연결을 자동으로 전환합니다.

다음 다이어그램은 복제본 세트 투표 과정을 보여줍니다.

3노드 복제본 세트에서 자가 치유 프라이머리 투표 프로세스를 보여주는 이미지.
클릭하여 확대

가장 중요한 애플리케이션의 가용성을 개선하기 위해 노드, 리전 또는 클라우드 공급자를 추가하여 각각 구역, 리전 또는 제공자 장애를 견딜 수 있도록 배포서버를 확장할 수 있습니다. 자세한 내용은 아래의 내결함성을 위한 배포서버 패러다임 확장 권장사항을 참조하세요.

다음 권장사항은 배포서버의 가용성을 높이기 위해 수행할 수 있는 추가 구성 옵션 및 배포서버 아키텍처 개선 사항을 설명합니다.

Dedicated, Flex 또는 무료 배포서버 유형에서 사용할 수 있는 범위 클러스터 계층 중에서 선택할 수 있습니다. MongoDB Atlas 의 클러스터 계층 클러스터 의 각 노드 에 사용할 수 있는 리소스(메모리, 저장 , vCPU, IOPS)를 지정합니다. 상위 계층 으로 확장하면 클러스터가 트래픽 급증을 처리하다 기능 향상되고 높은 워크로드에 더 빠르게 응답하여 시스템 안정성이 향상됩니다. 애플리케이션 크기에 권장되는 클러스터 계층 결정하려면 Atlas 클러스터 크기 가이드를 참조하세요.

또한 Atlas 자동 확장 지원하여 클러스터 수요 급증에 자동으로 조정할 수 있도록 합니다. Atlas 현재 리소스 사용량을 기반으로 트리거하는 반응형 자동 확장 과 예측된 주기적인 수요 급증이 발생하기 전에 적격 클러스터를 사전에 확장하는 예측 자동 확장 모두 사용합니다. 확장 작업을 자동화하면 리소스 제약으로 인한 중단 위험이 줄어듭니다. 자세한 학습 은 Atlas 자동 인프라 프로비저닝 지침을 참조하세요.

Atlas 배포의 내결함성은 배포서버 계속 작동하는 동안 사용할 수 없게 될 수 있는 복제본 세트 멤버의 수입니다. 가용영역, 리전 또는 cloud 제공자 중단되는 이벤트 , Atlas 클러스터는 복제본 세트 투표 에서 기존 세컨더리 노드 프라이머리 노드 역할 로 승격하여 자가 복구됩니다. 프라이머리 노드 중단될 때 복제본 세트 투표 실행 하려면 복제본 세트 에 있는 투표 노드의 과반수가 작동 가능해야 합니다.

부분적인 지역 장애가 발생할 경우 복제본 세트가 프라이머리를 선택할 수 있게 하려면 가용영역이 최소 3개인 리전에 클러스터를 배포해야 합니다. 가용영역은 단일 클라우드 공급자 리전 내에 있는 분리된 데이터 센터 그룹으로, 각 그룹은 자체 전력, 냉각 및 네트워킹 인프라를 갖추고 있습니다. 선택한 클라우드 공급자 리전에서 가용영역을 지원하는 경우, Atlas는 클러스터를 가용영역에 자동으로 분산하여 어느 가용영역에 장애가 발생하더라도 클러스터의 나머지 노드가 여전히 리전 서비스를 지원할 수 있도록 합니다. 대부분의 Atlas가 지원하는 클라우드 공급자 리전에는 최소 3개의 가용영역이 있습니다. 이러한 리전은 Atlas UI에 별 아이콘으로 표시됩니다.

각 클라우드 공급자 가용영역 내에서 기본값 데이터 중복성을 제공합니다.

  • AWS는 AWS 리전 내 최소 3개의 가용영역에 걸쳐 있는 여러 디바이스에 데이터를 저장합니다.

  • Microsoft Azure 선택한 리전 의 단일 데이터 센터 내에서 데이터를 세 번 복제하는 로컬 중복 저장 (LRS)를 사용합니다.

  • Google Cloud는 리전 의 여러 영역에 데이터를 분산합니다.

권장 리전에 대한 자세한 내용은 클라우드 제공자 및 리전을 참조하세요.

가장 중요한 애플리케이션의 내결함성을 더욱 개선하려면 가용영역, 리전 또는 공급자의 장애를 견딜 수 있도록 노드, 리전 또는 클라우드 공급자를 추가하여 배포서버를 확장할 수 있습니다. 투표 선택 가능 노드 최대 7개 및 총 노드 50개까지 홀수로 노드 수를 늘릴 수 있습니다. 또한 클러스터를 여러 리전에 배포하면 더 넓은 지역에 걸쳐 가용성을 향상하고, 전체 리전 장애가 발생하여 프라이머리 리전 내의 모든 가용영역이 비활성화되는 경우 자동 페일오버를 사용할 수 있습니다. 클라우드 공급자의 전체 장애를 견디기 위해 클러스터를 여러 클라우드 공급자에 배포하는 경우에도 동일한 패턴이 적용됩니다.

고가용성, 낮은 지연 시간, 컴플라이언스 및 비용 요구 사항을 균형 있게 충족하는 배포서버를 선택하는 방법은 Atlas 배포서버 패러다임 문서를 참조하세요.

다음 표에서는 다양한 배포서버 패러다임의 RTO 및 RPO 특성을 비교합니다. majority 쓰기 고려 (write concern) 사용하면 이러한 모든 접근 방식을 통해 RPO = 0 (데이터 손실 없음) 및 RTO를 몇 초 만에 달성할 수 있습니다. 단점은 배포서버 복잡성과 클러스터 비용 에 있습니다.

배포 패러다임
실패 시나리오 포함
일반 RTO
RPO(과반수 쓰기 고려 (write concern) 포함)
상대적 복잡성
상대적 클러스터 비용

단일 리전 배포서버 (1 리전 의 3 노드)

단일 리전 내의 노드 또는 AZ 장애

초(자동 페일오버)

0 (데이터 손실 없음)

낮은

$

멀티 리전, 단일 클라우드

한 지역의 AZ 또는 리전 장애

초(자동 페일오버)

0 (데이터 손실 없음)

중간

$$

멀티 리전, 다중 지역

여러 지역에 걸친 리전 또는 지리적 장애

초(자동 페일오버)

0 (데이터 손실 없음)

중간-높음

$$–$$$

멀티 클라우드(2-3 제공자)

한 제공자 에게 영향을 미치는 클라우드 공급자 또는 멀티 리전 장애

초(자동 페일오버)

0 (데이터 손실 없음)

높음

$$$

종료 방지 기능을 활성화 클러스터 실수로 종료되거나 백업 에서 복원 데 다운타임이 발생하지 않도록 할 수 있습니다. 종료 방지 기능이 활성화된 클러스터 삭제 하려면 먼저 종료 방지 기능을 비활성화해야 합니다. 기본값 으로 Atlas 모든 클러스터에 대해 종료 방지 기능을 비활성화합니다.

종료 방지는 Terraform과 같은 IaC 도구를 사용하여 재배포로 인해 새 인프라가 프로비저닝되지 않도록 할 때 특히 중요합니다.

애플리케이션 프로덕션에 배포 전에 자동 노드 페일오버가 필요한 다양한 시나리오를 시뮬레이션하여 이러한 이벤트에 대한 대비를 측정하는 것이 좋습니다. Atlas 사용하면 복제본 세트 에 대한 프라이머리 노드 페일오버 테스트하고 멀티 리전 배포서버 위한 리전 중단을 시뮬레이션할 수 있습니다.

MongoDB 쓰기 고려 (write concern) 사용하여 쓰기 (write) 작업에 요청된 승인 수준을 지정할 수 있습니다. Atlas 의 기본값 쓰기 고려 (write concern) majority이며, 이는 Atlas 성공 보고하기 전에 클러스터 내 절반 이상의 노드에 데이터가 복제되어야 함을 의미합니다. 2과 같이 명확한 숫자 값 대신 majority를 사용하면 일시적인 노드 중단이 발생할 경우 Atlas 더 적은 수의 노드에 걸쳐 복제 요구하도록 자동으로 조정하여 자동 페일오버 후에도 쓰기를 계속할 수 있습니다. 또한 모든 환경에서 일관적인 설정을 제공하므로 테스트 환경에 3개의 노드가 있든 프로덕션 환경에 더 많은 수의 노드가 있든 연결 문자열 동일하게 유지됩니다.

Atlas 재시도 가능 읽기 및 재시도 가능 쓰기 (write) 작업을 지원합니다. 활성화되면 Atlas 애플리케이션 일시적으로 정상 프라이머리 노드 찾을 수 없는 간헐적인 네트워크 중단 및 복제본 세트 투표를 방지하기 위해 읽기 및 쓰기 (write) 작업을 한 번 재시도합니다. 재시도 가능 쓰기에는 승인된 쓰기 고려 (write concern) 필요하며, 이는 쓰기 고려 (write concern) {w: 0}일 수 없음을 의미합니다.

리소스 용량 문제를 방지하려면 리소스 사용률을 모니터 하고 정기적으로 용량 계획 세션을 진행하는 것이 좋습니다. MongoDB의 전문 서비스에서 이러한 세션을 제공합니다. 리소스 용량 문제를 복구하는 방법에 대한 권장 사항은 리소스 용량 재해 복구 계획을 참조하세요.

리소스 사용률에 대한 경고 및 모니터링 모범 사례는 Atlas 모니터링 및 경고 지침을 참조하세요.

새로운 기능과 향상된 보안 보장 활용하려면 최신 MongoDB 버전을 실행 것이 좋습니다. 현재 버전의 수명이 다하기 전에 항상 최신 MongoDB 메이저 버전으로 업그레이드 해야 합니다.

MongoDB Atlas UI를 사용하는 MongoDB 버전은 다운그레이드할 수 없습니다. 따라서 주요 버전 업그레이드를 계획하고 실행할 때, 업그레이드 과정에서 발생할 수 있는 문제를 방지하기 위해 MongoDB의 Professional Services 또는 기술 서비스에 문의하는 것이 좋습니다.

Atlas는 예정된 유지 관리 동안 한 번에 하나의 노드에 롤링 방식으로 업데이트를 적용하여 가동 시간을 유지합니다. 이 프로세스가 진행되는 동안 유지 관리를 위해 현재 프라이머리가 오프라인으로 전환될 때마다 Atlas는 자동 복제본 세트 투표를 통해 새로운 프라이머리를 선택합니다. 이는 계획되지 않은 프라이머리 노드 장애에 대한 응답으로 자동 페일오버 중에 진행되는 것과 동일한 프로세스입니다.

비즈니스에 중요한 시간 동안 유지 관리 관련 복제본 세트 투표를 방지하려면 프로젝트 에 대한 사용자 지정 유지 관리 기간 구성하는 것이 좋습니다. 유지 관리 기간 설정에서 보호된 시간을 설정하다 표준 업데이트를 시작할 수 없는 일일 창 을 정의할 수도 있습니다. 표준 업데이트에는 클러스터 다시 시작 또는 재동기화가 포함되지 않습니다.

다음 예제에서는 자동화3 위한 Atlas 도구를 사용하여 단일 리전, 노드 복제본 세트/샤드 배포서버 토폴로지 구성합니다.

이러한 예시는 다음을 포함한 다른 권장 구성에도 적용됩니다.

  • 개발/테스트 환경을 위해 클러스터 계층을 M10으로 설정합니다. 애플리케이션 크기에 맞는 권장 클러스터 계층을 알아보려면 클러스터 크기 가이드를 참조하세요.

  • 단일 리전, 3-노드 복제본 세트/샤드 배포 토폴로지

이 예제에서는 AWS, Azure 및 Google Cloud를 서로 바꿔서 사용합니다. 이 세 가지 cloud 제공자 중 하나를 사용할 수 있지만 cloud 제공자 와 일치하도록 리전 이름을 변경해야 합니다. cloud 제공자 및 해당 리전에 대해 자세히 학습 클라우드 제공자를 참조하세요.

참고

Atlas CLI로 리소스를 생성하기 전에 다음을 수행해야 합니다.

개발 및 테스트 환경에서 각 프로젝트에 대해 다음 명령을 실행합니다. 다음 예시에서는 ID와 이름을 사용자의 값으로 변경합니다.

참고

다음 예시에서는 개발 및 테스트 환경에서 비용을 관리하는 데 도움이 되는 자동 확장을 사용하지 않습니다. 스테이징 및 프로덕션 환경에서는 자동 확장을 활성화해야 합니다. 자동 확장을 활성화하는 예시는 '스테이징 및 프로덕션 환경' 탭을 참조하세요.

atlas clusters create CustomerPortalDev \
--projectId 56fd11f25f23b33ef4c2a331 \
--region EASTERN_US \
--members 3 \
--tier M10 \
--provider GCP \
--mdbVersion 8.0 \
--diskSizeGB 30 \
--tag bu=ConsumerProducts \
--tag teamName=TeamA \
--tag appName=ProductManagementApp \
--tag env=dev \
--tag version=8.0 \
--tag email=marissa@example.com \
--watch

이 예시 에 대한 자세한 구성 옵션 및 정보는 Atlas clusters create 명령을 참조하세요.