コース概要

モジュール1: 導入とMongoDBアーキテクチャ (4時間)

内容:

  • MongoDBの歴史とエコシステム。
  • 一般的なユースケース、長所と短所。
  • 全体的なアーキテクチャ:インスタンス、プロセス、構成。

実践:

  • 対話型探求: Mongo Shell/CLIを使用して接続。
  • サンプルデータベースとコレクションの作成。

モジュール2: インストールと初期構成 (6時間)

内容:

  • ハードウェアとリソース要件。
  • Linux(deb/rpm)、Windows、macOSでのインストール。
  • YAML構成ファイル(mongod.conf): dataDir, logDir, bindIp, port。
  • 起動オプションとsystemd/サービス管理。

実践:

  • ローカルVMやDockerコンテナでのインスタンスの展開。
  • 開発環境と本番環境向けの構成調整。
  • 安全なリモート接続の確認。

モジュール3: データモデリングと基本操作 (5時間)

内容:

  • BSONドキュメント、コレクション、データベース。
  • モデル化:埋め込み対参照;データ設計パターン。
  • 基本的なインデックス(前回で紹介)。
  • Mongo Shellとドライバを使用したスクリプティングの例。

実践:

  • ユースケースのモデル化: 在庫または請求システム。
  • CRUD操作の実装。
  • MongoDBでのJSONスキーマを使用したスキーマ検証。

モジュール4: インデックスとパフォーマンス (4時間)

内容:

  • 単純、複合、マルチキー、テキスト、地理空間インデックス。
  • explain()を使用してメトリクスを分析。
  • 書き込みパフォーマンスとメモリへのインデックシングの影響。

実践:

  • テストデータでコレクションを作成。
  • インデックスありなしでのクエリテスト;explain()の解釈。
  • アクセスパターンに基づいてインデックスを調整。

モジュール5: セキュリティ (5時間)

内容:

  • 認証メカニズム: SCRAM, LDAP/Kerberos(概要)。
  • ユーザーとカスタムロールの定義。
  • クライアントとサーバ間のTLS/SSL。
  • 静止時暗号化: キー設定。
  • 基本的な監査ログ。

実践:

  • 最小限の権限を持つユーザーの作成。
  • ローカルインスタンスでのTLS設定。
  • 不正アクセスの確認と監査ログのレビュー。

モジュール6: レプリケーションと高可用性 (6時間)

内容:

  • レプリケーション概念: プライマリ、セカンダリ、oplog。
  • レプリカセットの構成: 初期化、メンバーシップ、仲裁。
  • ステータスと選挙の監視。
  • メンテナンス: メンバーの追加/削除、優先度の再割り当て。

実践:

  • 3ノードレプリカセット(ローカルまたはVM)の展開。
  • プライマリ障害をシミュレーションし、フェイルオーバーを観察。
  • セカンダリノードの再構築とレプリカの復旧。

モジュール7: シャーディングと水平スケーラビリティ (6時間)

内容:

  • シャーディング概念: シャードキー、設定サーバ、mongosルーター。
  • シャードキー選択と関連リスク。
  • 設定サーバ、シャード、mongosの展開。
  • 再バランスとチャンク移動。

実践:

  • 単純なシャーディングクラスタの構成。
  • 大規模データの挿入と分布の観察。
  • シャードキー変更の導入と制限の理解。

モジュール8: バックアップ、リストア、災害復旧 (4時間)

内容:

  • ネイティブツール: mongodump/mongorestore, ファイルシステムスナップショット。
  • レプリカセットとシャーディングクラスタでのバックアップ。
  • Cloud Manager/Ops Managerの基本的なバックアップ使用法。
  • 災害復旧(DR)計画: RTO, RPO。

実践:

  • テストデータベースでのバックアップとリストアの実行。
  • 障害をシミュレーションし、バックアップから復旧。
  • 仮想的なケースに対するDR計画の設計。

モジュール9: 監視とアラート (4時間)

内容:

  • ツール: mongostat, mongotop, Cloud Manager/Atlas Monitoring。
  • Prometheus + Grafanaとの統合(概念と例)。
  • 主要なメトリクス: CPU、メモリ、I/O、oplogサイズ、遅延。
  • アラート: 閾値と通知の定義。

実践:

  • ローカルまたはコンテナベースの監視エージェントの展開。
  • サンプルメトリクスを使用した基本的なダッシュボードの設定。
  • 負荷をシミュレーションし、アラートを観察。

モジュール10: メンテナンス、アップグレード、ベストプラクティス (4時間)

内容:

  • レプリカセットとシャーディングクラスタのアップグレード戦略。
  • データクリーンアップ、コンパクション、整合性チェック。
  • ログの確認と定期的な監査。
  • ルーチンタスクの自動化(スクリプト、cronjob、Ansible、Terraform)。
  • データ保持とアーカイブポリシー。

実践:

  • 制御された環境でのマイナーアップグレードとメジャーアップグレードのシミュレーション。
  • バックアップと監視用の自動化スクリプトの作成。
  • 定期的なメンテナンスチェックリストの開発。

まとめと次へのステップ

要求

  • 一般的なデータベース概念とデータ構造の理解。
  • Linuxコマンドライン使用の経験。
  • ネットワークとシステム管理の基本的な知識。

対象者

  • MongoDBを使用するデータベース管理者やシステムエンジニア。
  • MongoDB環境を展開および維持するDevOpsチームとインフラストラクチャチーム。
  • MongoDBの内部とデプロイメントのベストプラクティスに興味のある開発者。
 48 時間

参加者の人数


参加者1人あたりの価格

お客様の声 (5)

今後のコース

関連カテゴリー