Course Outline
모듈 1: 소개 및 MongoDB 아키텍처 (4h)
내용:
- MongoDB 역사 및 생태계
- 일반적인 사용 사례, 장단점
- 일반적인 아키텍처: 인스턴스, 프로세스 및 설정
실습:
- 대화형 탐색: Mongo Shell/CLI로 연결
- 샘플 데이터베이스 및 컬렉션 생성
모듈 2: 설치 및 초기 설정 (6h)
내용:
- 하드웨어 및 자원 요구 사항
- Linux (deb/rpm), Windows, macOS에 설치
- YAML 설정 파일 (mongod.conf): dataDir, logDir, bindIp, port
- 시작 옵션 및 systemd/서비스 관리
실습:
- 로컬 VM 또는 Docker 컨테이너에 인스턴스 배포
- 개발용 및 생산용 설정에 맞게 구성 조정
- 원격 연결 보안 검증
모듈 3: 데이터 모델링 및 기본 작업 (5h)
내용:
- BSON 문서, 컬렉션, 데이터베이스
- 모델링: 임베딩 vs 참조; 데이터 설계 패턴
- 기본 인덱스 (이전에 소개됨)
- Mongo Shell 및 드라이버를 사용하여 스크립팅 예제 작업
실습:
- 사용 사례 모델링: 재고 또는 청구 시스템
- CRUD 작업 구현
- MongoDB에서 JSON Schema를 사용하여 스키마 검증
모듈 4: 인덱스 및 성능 (4h)
내용:
- 간단한, 복합, 다중 키, 텍스트 및 공간 인덱스
- explain() 사용 및 메트릭 분석
- 작성 성능 및 메모리에 대한 인덱스 영향
실습:
- 테스트 데이터로 컬렉션 생성
- 인덱스 사용 여부에 따른 쿼리 테스트 및 explain() 해석
- 접근 패턴에 따라 인덱스 조정
모듈 5: 보안 (5h)
내용:
- 인증 메커니즘: SCRAM, LDAP/Kerberos (소개)
- 사용자 및 사용자 정의 역할 정의
- 클라이언트 및 서버 간 TLS/SSL
- 키 구성 및 정지 중 암호화
- 기본 감사 로깅
실습:
- 최소 권한으로 사용자 생성
- 로컬 인스턴스에서 TLS 구성
- 권한 없는 접근 확인 및 감사 로그 검토
모듈 6: 복제 및 고가용성 (6h)
내용:
- 복제 개념: 프라이머리, 세컨더리, oplog
- 레플리카 세트 구성: 초기화, 멤버십, 중재
- 상태 및 선거 모니터링
- 유지보수: 멤버 추가/제거, 우선순위 재할당
실습:
- 로컬 또는 VM에 세 노드 레플리카 세트 배포
- 프라이머리 실패 시뮬레이션 및 장애 조치 관찰
- 세컨더리 노드 재구성 및 복제본 복구
모듈 7: 샤딩 및 수평 확장성 (6h)
내용:
- 샤딩 개념: 샤드 키, 설정 서버, mongos 라우터
- 샤드 키 선택 및 관련 위험
- 설정 서버, 샤드 및 mongos 배포
- 재조정 및 청크 마이그레이션
실습:
- 간단한 샤드 클러스터 구성
- 대량 데이터 삽입 및 분포 관찰
- 샤드 키 변경 도입 및 제한 사항 이해
모듈 8: 백업, 복원 및 재해 복구 (4h)
내용:
- 네이티브 도구: mongodump/mongorestore, 파일 시스템 스냅샷
- 레플리카 세트 및 샤드 클러스터에서 백업
- 백업을 위한 Cloud Manager/Ops Manager 기본 사용
- 재해 복구 (DR) 계획: RTO, RPO
실습:
- 테스트 데이터베이스에서 백업 및 복원 수행
- 백업에서 실패 및 복구 시뮬레이션
- 가상의 시나리오를 위한 DR 계획 설계
모듈 9: 모니터링 및 알림 (4h)
내용:
- 도구: mongostat, mongotop, Cloud Manager/Atlas 모니터링
- Prometheus + Grafana (개념 및 예제)와 통합
- 주요 메트릭: CPU, 메모리, I/O, oplog 크기, 지연 시간
- 경고: 임계값 및 알림 정의
실습:
- 로컬 또는 컨테이너 기반 모니터링 에이전트 배포
- 샘플 메트릭으로 기본 대시보드 설정
- 부하 시뮬레이션 및 경고 관찰
모듈 10: 유지보수, 업그레이드 및 모범 사례 (4h)
내용:
- 레플리카 세트 및 샤드 클러스터에 대한 업그레이드 전략
- 데이터 정리, 압축, 무결성 검사
- 로그 검토 및 정기 감사
- 일상 작업 자동화 (스크립트, cronjobs, Ansible, Terraform)
- 데이터 보존 및 아카이빙 정책
실습:
- 제어된 환경에서 소규모 및 대규모 업그레이드 시뮬레이션
- 백업 및 모니터링을 위한 자동화 스크립트 생성
- 주기적 유지보수 체크리스트 개발
요약 및 다음 단계
Requirements
- 일반 데이터베이스 개념과 데이터 구조에 대한 이해
- Linux 명령줄 사용에 대한 familiarity
- 네트워킹 및 시스템 관리 기본 지식
대상
- Database 관리자 및 시스템 엔지니어는 MongoDB을 사용합니다.
- DevOps 및 인프라 팀은 MongoDB 환경 배포 및 유지 관리에 참여합니다.
- MongoDB 내부 구성 및 배포 최적화 방법에 관심이 있는 개발자
회원 평가 (5)
카밀은 훌륭한 일을 했습니다. 그는 우리가 이미 알고 있는 것과 우리가 집중해야 할 것을 알아내기 위해 질문을 했고, 우리의 필요에 맞게 훈련을 쉽게 조정했습니다.
Susanna - USAF
Course - MongoDB Advanced Administrator
기계 번역됨
개발자를 위한 집중 교육은 개발자가 아닌 사람들과 함께 진행되어야 했기 때문에 상황은 이례적이었습니다. Lukasz는 공감과 유머를 바탕으로 이 도전에 응했습니다. 그는 지능적이고 유연한 태도를 통해 모든 사람이 구체적인 학습 성과를 얻을 수 있도록 할 수 있었습니다. 나는 이것을 매우 즐겼으며 Lukasz와 함께 다시 세미나에 기꺼이 참여하고 싶습니다.
Christoph - Honda Bank GmbH
Course - MERN Fullstack Development
기계 번역됨
The lab environment
Samer Roshdi - epic ltd
Course - MongoDB for Analysts
It was very flexible and adapted to our expectations and skill level.
Raul Alberto Canales Requena - Kiloo
Course - MongoDB for Advanced Users
I generally was benefit from the open mind and communication.