GlobalTableNotFoundException

TL;DR — DescribeGlobalTable / UpdateGlobalTable は バージョン 2017.11.29(レガシー) のグローバルテーブルしか見えません。バージョン 2019.11.21(現行) で構築されたグローバルテーブル — こちらを使うべきです — は、DescribeTable / UpdateTable を通じて レプリカを持つ通常のテーブル として管理され、レガシー API はそれを存在しないと報告します。テーブルが消えたと仮定する前に、どのバージョンを使っているか確認してください。

意味

GlobalTableNotFoundException: The specified global table does not exist.

# what the engine actually returns, reproduced against the live DynamoDB service:
GlobalTableNotFoundException: Global table not found: Global table with name: 'no-such-global-table' does not exist.

DynamoDB には、2つの互いに素な API サーフェスを持つ2世代のグローバルテーブルがあります。レガシー(2017.11.29)世代は、DescribeGlobalTableUpdateGlobalTableUpdateGlobalTableSettings が操作する、名前付きの「グローバルテーブル」オブジェクトを登録します。現行(2019.11.21)世代にはそのようなオブジェクトがなく — レプリカはテーブル自体に存在します — そのため、テーブルが完璧にレプリケートしていても、それらのレガシー呼び出しはこの例外で応答します。

発生する理由

  • テーブルが現行バージョン(2019.11.21)のグローバルテーブルである — 圧倒的に多い原因: レガシー API は単純にそれをインデックス化しません。
  • その名前でグローバルテーブルが作成されたことがない — テーブルは存在するがレプリカがない、または以前にレプリケーションのセットアップが失敗した。
  • 誤ったリージョンまたは名前のタイプミス — レガシーのグローバルテーブル登録は正確な名前で検索されます。

修正方法

  1. バージョンを判別します:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.GlobalTableVersion'
    # "2019.11.21" → use DescribeTable/UpdateTable, not the legacy APIs
  2. 現行バージョンのレプリカを UpdateTable で管理します:

    aws dynamodb update-table --table-name orders \
      --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'

    そして、describe-global-table の代わりに describe-tableReplicas フィールド)で検査します。

  3. レガシーツールですか? 本当に 2017.11.29 のグローバルテーブルを運用しているなら、登録の名前とリージョンを検証し、柔軟性とレプリケート書き込みコストの低減のため AWS が推奨する 2019.11.21 へのアップグレードを計画します。

  4. ゼロから作成する場合: テーブルを作成し、それから UpdateTable でレプリカを追加します。新しいコードで CreateGlobalTable(レガシー)に手を伸ばさないでください。

リージョン間のレプリカの健全性を確認するのは、テーブルを並べて見られると速くなります。DynoTable デスクトップアプリ は1つのウィンドウからすべてのリージョンに接続し、DynamoDB 料金計算ツール はレプリカを追加する前にレプリケート書き込みコストを見積もります。

DynoTable でサイズを確認する

DynoTable は 1 つのウィンドウからどのリージョンにも接続できます — ⌘P で切り替え、各プロファイルで同じテーブル名を開けば、レプリカが存在してデータを返すかどうかを確認できます。テーブルのサイドバーは、レガシーのグローバルテーブル API を呼ばずにレプリケーションのメタデータを表示します。

レプリカを追加する前に、レプリケーションされる書き込みのコストを料金計算ツールで見積もりましょう。各リージョンを Settings → Profiles で設定し、UpdateTable によるレプリカ更新を実行する前に Test Connection を走らせてください。AWS に接続するインストールを参照してください。レガシーなツールが DescribeGlobalTable を呼んでいるなら、まず DescribeTableGlobalTableVersion を確認します — Current バージョンのテーブルは 2019.11.21 を返し、UpdateTable から管理しなければなりません。レプリケーションが正常でも、レガシー API からは見えません。Current バージョンのテーブルでは、ツール側を CreateGlobalTable ではなく ReplicaUpdates 付きの UpdateTable を呼ぶように更新してください。

出典

関連するエラー

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。