まさかの Amazon SimpleDB アップデート!ドメインデータを Amazon S3 にエクスポートできるようになりました

まさかの Amazon SimpleDB アップデート!ドメインデータを Amazon S3 にエクスポートできるようになりました

なんと Amazon SimpleDB に 14 年ぶりのアップデートがありました!!!!!!!
2026.03.17

ウィスキー、シガー、パイプをこよなく愛する大栗です。

2026年3月16日、長らく大きなアップデートのなかった Amazon SimpleDB に、ドメインデータを Amazon S3 へエクスポートできる新機能が追加されました! SimpleDB をまだお使いの方には嬉しいニュースです。

Amazon SimpleDB とは

Amazon SimpleDB は、スキーマレスで利用できる NoSQL データストアです。インフラのプロビジョニングやソフトウェアのメンテナンスが不要で、シンプルな API 呼び出しによってデータの保存・取得・編集ができます。

データはドメイン(domain)という単位で管理します。ドメインはリレーショナルデータベースのテーブルに相当し、その中にアイテム(item)と呼ばれるレコードを格納します。各アイテムは複数の属性(attribute)を持ちます。

SimpleDB は AWS が初期に提供した NoSQL サービスとして、DynamoDB が登場する以前から AWS の NoSQL 需要を担っていた存在です。ただし、DynamoDB や RDS のように AWS マネジメントコンソールに専用の管理 UI が提供されることはなく、操作はすべて API や CLI 経由となっています。コンソール上でサービスを検索しても見当たらないため、最近 AWS を使い始めた方にはそんなサービスが存在するのか?と思われるほど、影に隠れた存在となっています。

SimpleDB 自体のアップデートとして記憶に新しいものといえば、2011年12月のサンパウロリージョン(南米)開設時に SimpleDB が利用可能なサービスとして名を連ねたことくらいです。その後 2019年10月には AWS Managed Services(AMS)が29サービスのサポートを追加した際に SimpleDB が含まれてはいましたが、サービス自体の機能追加ではありませんでした。

さらに 2024年7月には、AWS のチーフエバンジェリストである Jeff Barr 氏が X(旧 Twitter)への投稿で SimpleDB が新規アクセスを停止したことに言及しました。

https://x.com/jeffbarr/status/1818488419347317217

「事実上のサービス終了では」という雰囲気が漂う中でのアップデートだけに、今回の発表は驚きをもって受け止められています。SimpleDB 本体の機能追加は実に約14年ぶりということになります。

ドメインを Amazon S3 にエクスポートする機能

今回追加されたエクスポート機能では、SimpleDB のドメインデータをバックグラウンドで非同期に Amazon S3 へ書き出すことができます。エクスポートデータは標準的な JSON 形式で出力されます。

主な特徴

特徴 内容
出力形式 標準 JSON
実行方式 非同期バックグラウンド処理
データベースへの影響 なし(パフォーマンスに影響しない)
クロスリージョン 対応(別リージョンの S3 バケットへの書き出し可)
クロスアカウント 対応(別 AWS アカウントの S3 バケットへの書き出し可)
暗号化 SSE-S3(AES256)または SSE-KMS を選択可能
利用可能リージョン Amazon SimpleDB が稼働しているすべてのリージョン

新しく追加された API

今回のリリースにより、新しいサービス namespace simpledbv2 に以下の 3 つのコマンドが追加されました。

API 名 AWS CLI コマンド 説明
GetExport aws simpledbv2 get-export 指定したエクスポートジョブの状態と詳細を取得する
ListExports aws simpledbv2 list-exports エクスポートの一覧を取得する
StartDomainExport aws simpledbv2 start-domain-export エクスポートジョブを開始する

既存の CRUD 操作(create-domainput-attributesselect 等)は引き続き aws sdb コマンドを使用します。

AWS CLI は、v1.44.56 以降、若しくは v2.34.7 以降のバージョンで利用できます。

制限事項

エクスポート機能を利用する際は、以下のレート制限にご注意ください。

制限
1ドメインあたりのエクスポート上限 24時間以内に 5 回
1アカウントあたりのエクスポート上限 24時間以内に 25 回
エクスポートの実行方式 非同期(完了確認は get-export または wait で行う)

大量ドメインを一括でエクスポートする場合は、アカウントあたりの上限(25回/24時間)を超えないようにご注意ください。

料金

エクスポート機能自体に追加料金はかかりません。ただし、S3 へのデータ転送や S3 のストレージ利用については、通常の AWS 料金が適用されます。

やってみる

実際に SimpleDB のドメインを作成してサンプルデータを投入し、S3 へエクスポートするまでの一連の手順を試してみます。

前提条件

  • AWS CLI がインストール済みであること
  • エクスポート先の S3 バケットが作成済みであること
  • SimpleDB が稼働しているリージョン(今回は東京リージョン)を使用すること
$ aws --version
aws-cli/2.34.10 Python/3.13.11 Linux/6.1.161-183.298.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023

ドメインの作成

まず aws sdb コマンドで SimpleDB のドメインを作成します。

$ aws sdb create-domain \
    --domain-name my-export-demo \
    --region ap-northeast-1

ドメインが作成されたことを確認します。

$ aws sdb list-domains --region ap-northeast-1
{
    "DomainNames": [
        "my-export-demo"
    ]
}

サンプルデータの投入

ドメインにサンプルデータを投入します。ここでは商品データを模した数件のアイテムを登録します。

$ aws sdb put-attributes \
    --domain-name my-export-demo \
    --item-name item-001 \
    --attributes \
        Name=product_name,Value="Widget A" \
        Name=price,Value="1500" \
        Name=category,Value="Electronics" \
        Name=stock,Value="100" \
    --region ap-northeast-1
$ aws sdb put-attributes \
    --domain-name my-export-demo \
    --item-name item-002 \
    --attributes \
        Name=product_name,Value="Gadget B" \
        Name=price,Value="3200" \
        Name=category,Value="Electronics" \
        Name=stock,Value="50" \
    --region ap-northeast-1
$ aws sdb put-attributes \
    --domain-name my-export-demo \
    --item-name item-003 \
    --attributes \
        Name=product_name,Value="Tool C" \
        Name=price,Value="800" \
        Name=category,Value="Hardware" \
        Name=stock,Value="200" \
    --region ap-northeast-1

select コマンドでデータが登録されていることを確認します。

$ aws sdb select \
    --select-expression "select * from \`my-export-demo\`" \
    --region ap-northeast-1
{
    "Items": [
        {
            "Name": "item-001",
            "Attributes": [
                {
                    "Name": "category",
                    "Value": "Electronics"
                },
                {
                    "Name": "price",
                    "Value": "1500"
                },
                {
                    "Name": "product_name",
                    "Value": "Widget A"
                },
                {
                    "Name": "stock",
                    "Value": "100"
                }
            ]
        },
        {
            "Name": "item-002",
            "Attributes": [
                {
                    "Name": "category",
                    "Value": "Electronics"
                },
                {
                    "Name": "price",
                    "Value": "3200"
                },
                {
                    "Name": "product_name",
                    "Value": "Gadget B"
                },
                {
                    "Name": "stock",
                    "Value": "50"
                }
            ]
        },
        {
            "Name": "item-003",
            "Attributes": [
                {
                    "Name": "category",
                    "Value": "Hardware"
                },
                {
                    "Name": "price",
                    "Value": "800"
                },
                {
                    "Name": "product_name",
                    "Value": "Tool C"
                },
                {
                    "Name": "stock",
                    "Value": "200"
                }
            ]
        }
    ]
}

3件のアイテムが登録されていることを確認できました。

エクスポートの開始(StartDomainExport)

ここからは新しい aws simpledbv2 コマンドを使います。start-domain-export でエクスポートジョブを開始します。エクスポート先の S3 バケット名を --s3-bucket で指定します。

$ aws simpledbv2 start-domain-export \
    --domain-name my-export-demo \
    --s3-bucket my-simpledb-export-bucket \
    --s3-key-prefix exports/my-export-demo \
    --region ap-northeast-1
{
    "clientToken": "a1b2c3d4-5e6f-7g8h-i9j0-1a2b3c4d5e6f",
    "exportArn": "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f",
    "requestedAt": "2026-03-17T10:44:36.634000+00:00"
}

エクスポートジョブが開始され、exportArn が返ってきます。この ARN を使って後続の状態確認を行います。

エクスポート状態の確認(GetExport)

get-export でエクスポートジョブの状態を確認します。先ほど取得した exportArn--export-arn に指定します。

$ aws simpledbv2 get-export \
    --export-arn "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f" \
    --region ap-northeast-1

要求を受信(PENDING)の場合は以下のように返ってきます。なお、3件のデータしか無くても数分間 IN_PROGRESS

{
    "exportArn": "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f",
    "clientToken": "a1b2c3d4-5e6f-7g8h-i9j0-1a2b3c4d5e6f",
    "exportStatus": "PENDING",
    "domainName": "my-export-demo",
    "requestedAt": "2026-03-17T10:44:36.634000+00:00",
    "s3Bucket": "my-simpledb-export-bucket",
    "s3KeyPrefix": "exports/my-export-demo/",
    "exportDataCutoffTime": "2026-03-17T10:44:36.634000+00:00"
}

処理中(IN_PROGRESS)の場合は以下のように返ってきます。なお、3件のデータしか無くても数分間 IN_PROGRESS の状態でした。

{
    "exportArn": "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f",
    "clientToken": "a1b2c3d4-5e6f-7g8h-i9j0-1a2b3c4d5e6f",
    "exportStatus": "IN_PROGRESS",
    "domainName": "my-export-demo",
    "requestedAt": "2026-03-17T10:44:36.634000+00:00",
    "s3Bucket": "my-simpledb-export-bucket",
    "s3KeyPrefix": "exports/my-export-demo/",
    "exportDataCutoffTime": "2026-03-17T10:44:36.634000+00:00"
}

完了(SUCCEEDED)すると、エクスポートされたアイテム数やマニフェストファイル名などの情報も含まれるようになります。

{
    "exportArn": "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f",
    "clientToken": "a1b2c3d4-5e6f-7g8h-i9j0-1a2b3c4d5e6f",
    "exportStatus": "SUCCEEDED",
    "domainName": "my-export-demo",
    "requestedAt": "2026-03-17T10:44:36.634000+00:00",
    "s3Bucket": "my-simpledb-export-bucket",
    "s3KeyPrefix": "exports/my-export-demo",
    "exportManifest": "exports/my-export-demo/AmazonSimpleDB/my-export-demo/arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f/manifest-summary.json",
    "itemsCount": 100,
    "exportDataCutoffTime": "2026-03-17T10:44:36.634000+00:00"
}

エクスポートのステータス値は以下の 4 種類です。

ステータス 意味
PENDING リクエストを受け付けた(処理待ち)
IN_PROGRESS エクスポート処理中
SUCCEEDED エクスポート完了
FAILED エクスポート失敗

エクスポートの一覧確認(ListExports)

list-exports でエクスポートの一覧を確認できます。--domain-name でフィルタリングも可能です。

$ aws simpledbv2 list-exports \
    --domain-name my-export-demo \
    --region ap-northeast-1
{
    "exportSummaries": [
        {
            "exportArn": "arn:aws:sdb:ap-northeast-1:123456789012:domain/my-export-demo/export/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f",
            "exportStatus": "SUCCEEDED",
            "requestedAt": "2026-03-17T10:44:36.634000+00:00",
            "domainName": "my-export-demo"
        }
    ]
}

エクスポートされたデータの確認

マニフェストファイルが以下のように出力されます。

$ aws s3 ls s3://my-simpledb-export-bucket/exports/my-export-demo/AWSSimpleDB/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f/my-export-demo/
                           PRE data/
2026-03-17 10:49:25          0 _started
2026-03-17 10:53:36        173 manifest-file.json
2026-03-17 10:53:36         24 manifest-file.md5
2026-03-17 10:53:36        494 manifest-summary.json
2026-03-17 10:53:36         24 manifest-summary.md5

S3 にエクスポートされた JSON ファイルを確認してみます。

$ aws s3 cp s3://my-simpledb-export-bucket/exports/my-export-demo/AWSSimpleDB/1a2b3c4d-7g8h-5e6f-i9j0-1a2b3c4d5e6f/my-export-demo/data/dataFile_1_3.json - | jq .
[
  {
    "itemName": "item-002",
    "attributes": [
      {
        "name": "price",
        "values": [
          "3200"
        ]
      },
      {
        "name": "stock",
        "values": [
          "50"
        ]
      },
      {
        "name": "category",
        "values": [
          "Electronics"
        ]
      },
      {
        "name": "product_name",
        "values": [
          "Gadget B"
        ]
      }
    ]
  },
  {
    "itemName": "item-003",
    "attributes": [
      {
        "name": "price",
        "values": [
          "800"
        ]
      },
      {
        "name": "stock",
        "values": [
          "200"
        ]
      },
      {
        "name": "category",
        "values": [
          "Hardware"
        ]
      },
      {
        "name": "product_name",
        "values": [
          "Tool C"
        ]
      }
    ]
  },
  {
    "itemName": "item-001",
    "attributes": [
      {
        "name": "price",
        "values": [
          "1500"
        ]
      },
      {
        "name": "stock",
        "values": [
          "100"
        ]
      },
      {
        "name": "category",
        "values": [
          "Electronics"
        ]
      },
      {
        "name": "product_name",
        "values": [
          "Widget A"
        ]
      }
    ]
  }
]

この様にエクスポートできました。

さいごに

Amazon SimpleDB は 2007 年に登場した老舗の NoSQL サービスです。近年は DynamoDB や Aurora といった後発サービスに注目が集まりがちで、SimpleDB の新しいアップデートはなかなか見かけませんでした。

今回のエクスポート機能の追加は、一見ありがたいアップデートに見えますが、見方を変えると DynamoDB への移行を促進し、SimpleDB を停止するための準備と捉えたほうが自然かもしれません。新規アクセスの停止、長年にわたる機能追加の凍結、そして今回のデータ書き出し機能の提供という流れは、AWS が SimpleDB のユーザーに対して「データを持ち出してサービスを終了する準備を整えてください」というメッセージを送っているようにも読み取れます。

もし現在も SimpleDB を本番環境で利用されているのであれば、今回のエクスポート機能を活用して早めにデータを S3 に書き出し、DynamoDB をはじめとする後継サービスへの移行計画を立てることをお勧めします。

この記事をシェアする

FacebookHatena blogX

関連記事