[AWS] DocumentDB 詳細解説:クラスターの作成と設定項目

こんにちは、菊池です。

先日、AWSの新しいデータベースサービス、Amazon DocumentDBが登場しました。

[速報] MongoDB 互換のマネージドデータベース!Amazon DocumentDB が登場しました

この記事では、クラスターの作成手順と設定項目、また、作成後の管理項目をみていきたいと思います。基本的には、RDSやAuroraと同じ感覚で操作可能なので、RDS/Auroraの構築・運用経験があれば困ることはないでしょう。

DocumentDB クラスターの作成

まずはクラスターの作成です。コンソールから、クラスターの作成に進みます。

設定

まずは、基本となる項目の指定です。

  • クラスター識別子:一意の名前を設定します。
  • インスタンスクラス:インスタンスのスペックです。現時点ではR4世代の6つから選択できます。
  • インスタンス数:リードレプリカを含めたクラスタインスタンスの台数。1〜16の範囲で選択。

ここで指定したインスタンスクラスは、クラスタインスタンス全てに適用されますが、あとでインスタンス単位で変更も可能です。

MongoDBの場合にはレプリカセットの仕様とスプリットブレイン対策のため、インスタンス数は奇数とするのが鉄則でした(つまり、冗長化をする場合には最小3台必要)。しかし、DocumentDBではレプリケーションの仕組みそのものが異なるため、偶数台数でも問題ありません。冗長化ありでは最小2台とし、それ以上はリードレプリカの必要数に合わせて作成するのが良いでしょう。このあたりは別の記事にて詳細を解説したいと思います。

認証

DBに接続するためのマスターユーザー、パスワードの設定です。特に悩むことはないでしょう。

ネットワーク設定

ここからは[詳細設定の表示]を有効にすると出てくる設定項目です。

ネットワーク設定です。

  • VPC:クラスタを配置するVPCを指定します。
  • サブネットグループ:クラスタインスタンスが配置されるサブネット群です。
  • セキュリティグループ:クラスタインスタンスに割り当てるセキュリティグループを指定します。

サブネットグループをデフォルト以外に指定したい場合には、あらかじめ作成しておきましょう。

クラスターオプション

クラスタのオプション。

  • ポート:デフォルトはMongoDBと同様、TCP:27017です
  • パラメータグループ:クラスタに指定するパラメータグループです

パラメータグループも、デフォルト以外を指定したい場合には、あらかじめ作成しておきましょう。パラメータの項目は2つだけです。

  • tls:接続時のTLS暗号化の有無(静的)
  • ttl_monitor:TTLモニタリングの有無(動的)

特に意識ない場合にはデフォルトで問題ないでしょう。TTLモニタリングはMongoDBの機能にあるTTLインデックスを利用する場合に必要です。

保管時の暗号化

保存するデータの暗号化(SSE)の設定です。有効にする場合には、KMSマスターキーも指定します。

バックアップ

バックアップの保存期間とバックアップウィンドウを指定します。バックアップは最大35日間です。それ以上に必要な場合には手動バックアップで取得しましょう。

メンテナンス

クラスタ/インスタンスの変更やパッチを適用するメンテナンスウィンドウの設定です。サービス影響の少ない時間帯を設定しましょう。

以上の設定を指定すれば、クラスタが作成できます。

DocumentDB クラスターの管理

起動したクラスタの管理についてです。

エンドポイント

DocumentDBには、接続先となるエンドポイントが3種類あります。

  • クラスターエンドポイント
  • 読み込みエンドポイント
  • インスタンスエンドポイント

クラスタエンドポイントは、クラスターに存在するインスタンスのうち、プライマリとなっているインスタンスに接続するためのエンドポイントです。書き込みオペレーションはプライマリに対してのみ可能です。

読み込みエンドポイントは、クラスターのプライマリ以外のいずれかのリードレプリカインスタンスに接続するためのエンドポイントです。

この2つのエンドポイントは、クラスタの詳細画面から確認できます。

インスタンスエンドポイントは、特定のインスタンスを明示的に指定して接続するためのエンドポイントです。インスタンス毎の詳細画面で確認できます。

クラスタの操作

クラスタに対して可能な操作です。

  • 変更:クラスタの設定パラメータを変更します
  • インスタンスの追加:クラスタにインスタンスを追加します
  • スナップショットの取得:手動スナップショットの取得
  • 特定時点への復元:バックアップが有効なクラスタの場合、特定時点へのポイントインタイムリカバリが可能です

クラスタの変更

マネジメントコンソールからはクラスターに対し以下の変更が可能です。

  • クラスターの仕様
    • クラスター識別子
    • セキュリティグループ
    • マスターパスワード
  • クラスターオプション
    • ポート
    • パラメータグループ
  • バックアップ
    • バックアップ保存期間
    • バックアップウィンドウ
  • メンテナンス
    • メンテナンスウィンドウ

変更に対し、即時適用か次のメンテナンスウィンドウで適用かが指定できます。

インスタンス単位の変更では、以下の項目が変更可能です。

  • インスタンスの仕様
    • インスタンス識別子
    • インスタンスクラス
  • フェイルオーバー
    • 昇格階層
  • メンテナンス
    • メンテナンスウィンドウ

インスタンスの変更項目については、クラスター内のインスタンス単位で変更が可能です。なので、リードレプリカの用途毎にインスタンスクラスを変えたり、プライマリ昇格の優先度を設定できます。

まとめ

新しいサービス、Amazon DocumentDBの設定について解説しました。MongoDBの構築経験がなくても、RDS/Auroraと同様に簡単に利用開始することができます。