Providing High Availability
High Availability (고가용성)은 장애 또는 다운타임이 발생한 경우에도 작업을 서비스할 수 있는 수용력을 의미한다.
단일 실패 지점을 제거하기 위해 복제 셋의 멀티 데이터 베이스들과 자동 선거를 통해 고 가용성을 구현한다.
서버의 다운 타임을 수용할 수 있도록 한다.
즉, 복제 셋을 통해 다운된 서버외에 다른 서버들이 서비스의 가용성을 유지한다.
유연한 문서 모델을 사용한다.
즉, 다른 버전의 데이터 스키마들도 허용하면서 공존할 수 있다.
MongoDB 도 RDBMS 과 비교하여 거의 모든 장애 시나리오에서 다운타임 없이 애플리케이션을 발전시키고 기본 리소스를 수정할 수 있다.
= 애플리케이션에 대한 고가용성 서비스를 제공할 수 있다.
Server Maintenance (서버 유지보수)
MongoDB 버전 업그레이드, 운영체제 또는 보안 패치 설치, 하드웨어 결함 수정과 같은 작업을 수행하기 위해 서버 유지 관리를 수행해야 한다.
중요한 점은 서버를 중단하지 않고 계속 서비스를 제공하면서 위와 같은 작업을 수행해야 한다.
기존 관계형 데이터 베이스 같은 경우, 서비스 중단을 제한하기 위해 데이터를 복제한 서버를 추가한다.
-> 배포는 번거로우며, 재해 발생 시 고가용성을 유지하지 않는 단점이 있다.
mongoDB 복제는 따로 제품을 구입하거나 설치할 필요 없이, 데이터 베이스에 대한 모든 쓰기 작업은 논리적 작업으로 기록되고 보조 노드에 적용된다.
mongoDB의 또 다른 기능은 자동 투표이다. Primary 서버가 다운되면 Secondary 서버 중 하나가 자동으로 Primary 서버가 된다.
각 서버에서 유지 관리 작업을 수행해야 하는 경우, 서버에서 한 번에 하나씩 유지 관리를 수행하는 형식을 '롤링 업그레이드' 라고 한다.
Atlas 를 통해 서버 유지 관리 및 자동 확장을 편리하게 할 수 있다.
Schema Migration
MongoDB as a Data Platform
위와 같이 데이터 저장에 대한 유연성을 가지고 있기 때문에, 데이터를 호스팅할 위치와 클라우드 제공업체를 선택할 수 있다.
또한, 마이그레이션을 다른 위치나 클라우드 제공업체로 손쉽게 진행할 수 있다.
참고 : https://learn.mongodb.com/courses/m100-mongodb-for-sql-pros