日本語:開発者向けのmongo dbオペレーションガイド

35
開発者向けのMongoDB 運用手順紹介 鈴木いっぺい

Upload: ippeisuzuki

Post on 12-Jul-2015

507 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 日本語:開発者向けのMongo dbオペレーションガイド

開発者向けのMongoDB運用手順紹介

鈴木いっぺい

Page 2: 日本語:開発者向けのMongo dbオペレーションガイド

• MongoDBのコンセプト

• データモデル

• レプリケーションを通した可用性確保

• シャーディングを通した拡張性

• MongoDBの実装の際のアーキテクチャとオペレーション

アジェンダ

Page 3: 日本語:開発者向けのMongo dbオペレーションガイド

MongoDBのコンセプト

Page 4: 日本語:開発者向けのMongo dbオペレーションガイド

MongoDBとエンタプライズITスタックでの位置づけ

EDWHadoop管理と監視

セキュリティと監査

RDBMS

CRM, ERP, コラボレーション, モバイル, BI

OS & 仮想化, CPU,ストレージ, ネットワーク

RDBMS

アプリケーション

インフラ

データ管理

オンラインデータ オフラインデータ

Page 5: 日本語:開発者向けのMongo dbオペレーションガイド

オペレーショナルDBMSランドスケープ

Page 6: 日本語:開発者向けのMongo dbオペレーションガイド

データモデル

Page 7: 日本語:開発者向けのMongo dbオペレーションガイド

ドキュメントデータモデル

RDB MongoDB

{ first_name: ‘Paul’, surname: ‘Miller’, city: ‘London’, location: [45.123,47.232], cars: [ { model: ‘Bentley’, year: 1973, value: 100000, … }, { model: ‘Rolls Royce’, year: 1965, value: 330000, … } }}

Page 8: 日本語:開発者向けのMongo dbオペレーションガイド

フィールドの値

ドキュメントのもつ深いデータ構造

{ first_name: ‘Paul’, surname: ‘Miller’, cell: ‘+447557505611’ city: ‘London’, location: [45.123,47.232], Profession: [banking, finance, trader], cars: [ { model: ‘Bentley’, year: 1973, value: 100000, … }, { model: ‘Rolls Royce’, year: 1965, value: 330000, … } }}

フィールドはサブドキュメントに配列を持つ事も可能

フィールド名

フィールドはアレイ(配列)も持つ事が可能

文字列

実数

位置情報

Page 9: 日本語:開発者向けのMongo dbオペレーションガイド

• アジリティとフレキシビリティ

– データモデルがビジネスの変化に対応できる

– 新しい要求に対して迅速に対応可能

• データ表記法法がわかりやすく自然である

– ORMレイヤーを必要としない

– 開発者はよりアプリ開発に専念できる

• テーブルジョイン、ディスク検索が不要

– プログラミングが容易になる

– 大規模でも性能を出せるデータベースシステム

ドキュメントモデルの特長

Page 10: 日本語:開発者向けのMongo dbオペレーションガイド

レプリケーションを通した高い可用性

Page 11: 日本語:開発者向けのMongo dbオペレーションガイド

• ノードの障害の発生は起きる

• フェールオーバー対応(それも夜間の)の回数もシステム成長とともに増加

• ネットワークレイテンシーによるシステムの問題も多い

• データの運用方法の多様化

– 通常のデータ処理

– 高度なデータ分析

何故レプリケーションが必要か?

Page 12: 日本語:開発者向けのMongo dbオペレーションガイド

• レプリカセット:2つ以上のコピー

• 自動修復できるシャード

• 可用性の要求への対応策:– 高いavailability

– 障害対策

– 無停止システムメンテナンス

• 実装モデルの柔軟性

– ユーザに対してローカルアクセスデータを提供

– ワークロードの分離:運用と分析

レプリカセット

ドライバ

プライマリ

セカンダリ

セカンダリ

アプリ

Page 13: 日本語:開発者向けのMongo dbオペレーションガイド

レプリカセットの生成

ノード1 ノード2

ノード3

Page 14: 日本語:開発者向けのMongo dbオペレーションガイド

レプリカセットの初期化

ノード1セカンダリ

ノード3プライマリ

ノード2セカンダリ

ハートビート

レプリケーション

レプリケーション

Page 15: 日本語:開発者向けのMongo dbオペレーションガイド

レプリカセットの障害

ノード1セカンダリ

ノード2セカンダリ

ハートビート

プライマリのエレクション

Page 16: 日本語:開発者向けのMongo dbオペレーションガイド

レプリカセットのフェールオーバー

ノード1セカンダリ

ノード2プライマリ

ハートビート

レプリケーション

Page 17: 日本語:開発者向けのMongo dbオペレーションガイド

Replica Set – Recovery

ノード1セカンダリ

ハートビート

レプリケーション

ノード2プライマリ

ノード3リカバリ

レプリケーション

Page 18: 日本語:開発者向けのMongo dbオペレーションガイド

レプリカセットの回復

ノード1セカンダリ

ハートビート

レプリケーション

ノード2プライマリ

レプリケーション

ノード3セカンダリ

Page 19: 日本語:開発者向けのMongo dbオペレーションガイド

サーディングを通したスケーラビリティ

Page 20: 日本語:開発者向けのMongo dbオペレーションガイド

Working Set Exceeds Physical Memory

Page 21: 日本語:開発者向けのMongo dbオペレーションガイド

MongoDB Architecture

Page 22: 日本語:開発者向けのMongo dbオペレーションガイド

Deployment Architectures & Operations

Page 23: 日本語:開発者向けのMongo dbオペレーションガイド

単一のデータセンタでの実装

• 自動フェールオーバー

• サーバ障害に対応可能

• ラック障害にも対応可能

• レプリカの数がシステムの

耐久性のレベルを上げる

プライマリ – A プライマリ – B プライマリ – C

セカンダリ – A セカンダリ – Aセカンダリ – B

セカンダリ – Bセカンダリ – Cセカンダリ – C

Page 24: 日本語:開発者向けのMongo dbオペレーションガイド

アクティブ/スタンドバイデータセンタ

• サーバ障害、ラック障害への耐久性

• 予備(スタンドバイ)データセンタ

データセンター西海岸

プライマリ – A プライマリ – B プライマリ – C

セカンダリ – Aセカンダリ – B セカンダリ – C

セカンダリ – A セカンダリ – B セカンダリ – C

データセンター東海岸

セカンダリ – B セカンダリ – C セカンダリ – A

Page 25: 日本語:開発者向けのMongo dbオペレーションガイド

アクティブ/スタンドバイデータセンタ

• Tolerates server, rack, data center failures, network partitions

Data Center - West

Primary – A Primary – B Primary – C

Secondary – A Secondary – BSecondary – C

Data Center - East

Secondary – A Secondary – B Secondary – C

Secondary – B Secondary – C Secondary – A

Data Center - Central

Arbiter – A Arbiter – B Arbiter – C

Page 26: 日本語:開発者向けのMongo dbオペレーションガイド

グローバルリード/ローカルライト

プライマリ:NYC

セカンダリ:NYC

プライマリ:LON

プライマリ:SYD

セカンダリ:LON

セカンダリ:NYC

セカンダリ:SYD

セカンダリ:LON

セカンダリ:SYD

Page 27: 日本語:開発者向けのMongo dbオペレーションガイド

グローバルデータ配信

リアルタイム

リアルタイム リアルタイム

リアルタイム

リアルタイム

リアルタイム

リアルタイム

プライマリ

セカンダリ

セカンダリ

セカンダリ

セカンダリ

セカンダリ

セカンダリ

セカンダリ

Page 28: 日本語:開発者向けのMongo dbオペレーションガイド

MongoDB マネジメントサービス(MMS)

Page 29: 日本語:開発者向けのMongo dbオペレーションガイド

• プロビジョン、スケーリング、アッ

プグレード等の操作を自動化

• 表、ダッシュボード、アラートによ

る監視機能の提供。100以上の

データを収集

• バックアップとリストア、さらに特

定日時の指定も可能。シャード環

境もサポート

MongoDB Management Service

MongoDB開発者が提供するMongoDB管理ツール

Page 30: 日本語:開発者向けのMongo dbオペレーションガイド

セキュリティ

Page 31: 日本語:開発者向けのMongo dbオペレーションガイド

階層型のセキュリティアーキテクチャ

Page 32: 日本語:開発者向けのMongo dbオペレーションガイド

ビジネス要件 提供されるセキュリティ機能

認証

データベースとして認証機能を持つ

LDAP*Kerberos*x.509 証明書*

認可(オーソリゼーション)

データベースとしてRBAC機能を持つ

ユーザ設定のロールベースアクセス

フィールド単位のアクセス管理設定

監査

管理者機能*業界別監査要求サポート(HIPAA,等) (パートナー

ベンダーが提供)

暗号化ネットワーク: SSL (FIPS 140-2)*ディスク上: パートナーベンダーが提供

エンタプライズクラスセキュリティ

*MongoDB Enterpriseの機能

Page 33: 日本語:開発者向けのMongo dbオペレーションガイド

管理者向けのリソース

Page 34: 日本語:開発者向けのMongo dbオペレーションガイド

さらに詳細の情報はここから(英語)

Resource Location

MongoDB ダウンロード mongodb.com/download

無償のオンライントレーニング education.mongodb.com

ウェビナーやイベント情報 mongodb.com/events

ホワイトペーパー mongodb.com/white-papers

顧客事例、ケーススタディ mongodb.com/customers

プレゼンテーション類 mongodb.com/presentations

ドキュメント類 docs.mongodb.org

リソース 場所

Page 35: 日本語:開発者向けのMongo dbオペレーションガイド