[アップデート] Amazon DocumentDB が 3.6 / 4.0 から 8.0 への直接メジャーバージョンアップグレードに対応しました

[アップデート] Amazon DocumentDB が 3.6 / 4.0 から 8.0 への直接メジャーバージョンアップグレードに対応しました

Amazon DocumentDB で 3.6 / 4.0 から 8.0 への直接インプレース MVU がサポートされました。これまで必要だった 5.0 経由の 2 段階アップグレードが不要になり、一発で 8.0 まで上げられるようになったので確認してみます。
2026.09.02

いわさです。

Amazon DocumentDB にはインプレースメジャーバージョンアップグレード(MVU)という機能があります。
新しいクラスターを作り直すことなく、既存クラスターのエンドポイントやストレージを維持したままエンジンバージョンを上げられます。

以前、5.0 から 8.0 へのインプレース MVU がサポートされたときに紹介しました。

https://dev.classmethod.jp/articles/amazon-documentdb-mongodb-in-place-version-upgrade-5-0-to-8-0/

このときは 5.0 からの MVU だけが 8.0 に対応していて、3.6 や 4.0 のクラスターを 8.0 に上げたい場合は、いったん 5.0 へ MVU してから 8.0 へ MVU する、という 2 段階のアップグレードが必要でした。

先日のアップデートで、3.6 と 4.0 から 8.0 への直接インプレース MVU がサポートされました。

https://aws.amazon.com/about-aws/whats-new/2026/08/documentdb-major-version-upgrade-8-0/

中間バージョンを経由せず、3.6 / 4.0 のクラスターを一発で 8.0 まで上げられます。
今回こちらを確認してみたので紹介します。

実際に確認してみる

まず、対象バージョンから 8.0 が直接選べるようになっているかを CLI で確認してみます。
describe-db-engine-versions で、3.6.0 と 4.0.0 のアップグレード先(ValidUpgradeTarget)を見てみます。

$ aws docdb describe-db-engine-versions --engine docdb --engine-version 4.0.0 \
  --query 'DBEngineVersions[0].ValidUpgradeTarget[].[EngineVersion,IsMajorVersionUpgrade]' --output text
5.0.0   True
5.0.1   True
8.0.0   True
8.0.1   True

$ aws docdb describe-db-engine-versions --engine docdb --engine-version 3.6.0 \
  --query 'DBEngineVersions[0].ValidUpgradeTarget[].[EngineVersion,IsMajorVersionUpgrade]' --output text
5.0.0   True
5.0.1   True
8.0.0   True
8.0.1   True

3.6.0 と 4.0.0 のどちらからも、8.0.0 と 8.0.1 が IsMajorVersionUpgrade=True のアップグレード先として並んでいますね。
以前は 5.0 系だけが並んでいたんですが、8.0 系もいけるようになっていました。

また、公式ドキュメントのアップグレードパス一覧でも、3.6 / 4.0 から 8.0 への直接パスが明記されていました。

You can upgrade from Amazon DocumentDB 3.6 or 4.0 directly to 8.0 in a single MVU. Upgrading in stages through 5.0 (first to a 5.0 minor version, then to an 8.0 minor version) is also supported.

[1]

コンソールから 3.6 のクラスターを 8.0 に上げてみる

では実際にアップグレードしてみましょう。
検証用に DocumentDB 3.6.0 のインスタンスベースクラスターを用意しました。

クラスターを選択して「アクション」から「変更」を開き、エンジンバージョンのドロップダウンを見てみます。

EE943632-60EB-46DC-A522-26F23C6A865C.png

3.6.0 のクラスターですが、アップグレード先として 8.0.0 と 8.0.1 が選べるようになっていますね。

57F0E573-7D6C-4A1F-BED5-DEF929726919_1_105_c.jpeg

CLI から 4.0 のクラスターも上げてみる

コンソールと並行して、4.0.0 のクラスターを CLI から 8.0.1 に上げてみます。
modify-db-cluster でエンジンバージョンを指定します。

$ aws docdb modify-db-cluster \
  --db-cluster-identifier docdb-mvu-test \
  --engine-version 8.0.1 \
  --apply-immediately

An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: The AllowMajorVersionUpgrade flag must be present when upgrading to a new major version.

メジャーバージョンアップグレードのときは --allow-major-version-upgrade が必要でした。
フラグを付けて再実行します。

$ aws docdb modify-db-cluster \
  --db-cluster-identifier docdb-mvu-test \
  --engine-version 8.0.1 \
  --allow-major-version-upgrade \
  --apply-immediately \
  --query 'DBCluster.[DBClusterIdentifier,EngineVersion,Status]' --output text
docdb-mvu-test  4.0.0   available

こちらもアップグレードが始まりました。

今回の検証環境(db.t3.medium、データ少量)では、3.6 からも 4.0 からも 10 分強でアップグレードが完了しました。
5.0 経由の 2 段階ではなく一発で 8.0 まで上がるので、以前のように 5.0 への MVU が終わるのを待ってから 8.0 への MVU をかける、という待ち時間はなくなりますね。

アップグレードが完了すると、両方のクラスターともエンジンバージョンが 8.0.1、パラメータグループが default.docdb8.0 になっていました。

$ aws docdb describe-db-clusters \
  --query 'DBClusters[].[DBClusterIdentifier,EngineVersion,Status,DBClusterParameterGroup]' --output text
docdb-mvu-test  8.0.1   available   default.docdb8.0
hoge0902docdb   8.0.1   available   default.docdb8.0

3.6 / 4.0 からアップグレードするときに気をつけること

5.0 から 8.0 に上げるときと違って、3.6 / 4.0 から上げる場合は追加で意識しておきたい点があります。
ここは私が検証で確認したわけではなく、公式ドキュメントに記載されている考慮点です。

いちばん押さえておきたいのがインデックスの再構築です。
MVU では元のインデックスがそのまま引き継がれますが、5.0 以降はインデックスのメンテナンスやガベージコレクションが改善されています。
公式ドキュメントでは、3.6 / 4.0 からアップグレードした場合は、最適なクエリ性能を得るためにアップグレード後に reIndex でインデックスを再構築することが推奨されています(任意、追加の I/O が発生します)。

After upgrading from 3.6 or 4.0 (to either 5.0 or 8.0), rebuild your indexes to ensure optimal query performance (optional, involves additional I/O).

[2]

5.0 から 8.0 へのアップグレードではインデックスの再構築は不要だったので、ここは 3.6 / 4.0 からのアップグレード特有の考慮点ですね。

もうひとつ、3.6 から上げた場合はサブドキュメント内の数値比較の挙動が 3.6 のまま引き継がれるとのことです。
たとえば {a: {b: NumberLong(1)}}{a: {b: 1}} は、4.0 以降では等しいと判定されますが、3.6 では型をまたいで比較されず等しくならない、という挙動です。
3.6 から上げたクラスターはこの 3.6 の挙動を継承するようです。

このほか、8.0 は TLS 1.2 以上が必須で、TLS 1.0 / 1.1 は使えなくなっています。

また、T系のバースト可能インスタンス(db.t3 / db.t4g)を使っている場合は、アップグレード前にプライマリを db.r5.large / db.r6g.large 以上にスケールアップしておくことが推奨されています。
バーストインスタンスだと CPU やメモリが足りずアップグレードに失敗することがあるためで、アップグレード完了後は元のインスタンスクラスに戻せます。
今回はデータもインデックスもごく少量だったので db.t3.medium のままいけましたが、実データを持つクラスターで試すときはこのあたりを事前に確認しておくとよさそうです。

さいごに

本日は Amazon DocumentDB で 3.6 / 4.0 から 8.0 への直接インプレース MVU がサポートされたので確認してみました。

これまで 3.6 / 4.0 のクラスターを 8.0 に上げるには 5.0 を経由する 2 段階のアップグレードが必要でしたが、今回のアップデートで一発で 8.0 まで上げられるようになりました。
アップグレードの操作自体は 5.0 からの MVU と変わらず、コンソールでエンジンバージョンを選ぶだけ、CLI なら --allow-major-version-upgrade を付けて modify-db-cluster するだけです。

古いバージョンを使い続けているクラスターほど、経由するアップグレードのステップが減ることになります。
一方で 3.6 / 4.0 からの場合はインデックス再構築や 3.6 の数値比較の挙動継承など、5.0 からのときにはなかった考慮点もあります。
このあたりはドキュメントにも目を通したうえで、アップグレード後の動作確認をしっかりやっておきましょう。

脚注
  1. Amazon DocumentDB in-place major version upgrade ↩︎

  2. Post-upgrade considerations for clusters upgraded from 3.6 or 4.0 ↩︎

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事