オブジェクト本体とメタデータが別々の場所に散らばる——S3を大規模に使う現場では、この構造が運用コストを押し上げてきました。2026年6月16日、AWSはS3に「S3 Annotations」を追加し、1オブジェクトあたり最大1GBの文脈情報を本体に直接付けられるようにしました。
この記事では、S3 Annotationsの概要と、従来のタグやサイドカーファイルとの違い、Athenaでの横断検索の仕組みまでを整理します。
- S3 Annotationsで何ができるようになったか
- 従来のメタデータ管理の課題と解決の方向性
- オブジェクトタグとの使い分け
- S3 Metadataのannotation tableとAthena連携
- メディア・金融・ライフサイエンスでの活用イメージ
S3 Annotationsとは
S3 Annotationsは、S3オブジェクトに名前付きのメタデータを付与する機能です。オブジェクト本体を再アップロードせず、付いた注釈(annotation)だけを追加・更新・削除できます。
1オブジェクトあたり最大1,000個の注釈を付けられ、各注釈は1バイトから1MiBまで格納可能です。合計で最大1GBのメタデータをオブジェクトに紐づけられます。JSON、XML、YAML、プレーンテキストなどの形式に対応しています(AWS公式ドキュメント)。
なぜ今、大容量メタデータが必要か
S3にはもともと、システム定義メタデータ、ユーザ定義メタデータ(最大2KB)、オブジェクトタグ(最大10個)といった手段があります。ライフサイクル管理やアクセス制御には十分ですが、AIの推論結果、文字起こし、コンプライアンス記録のような大きな文脈情報には向きません。
その結果、多くの現場では外部DBやサイドカーファイル(オブジェクト本体の横に置く補助ファイル)でメタデータを管理してきました。本体とメタデータの同期パイプラインを維持するコストが、データ保存そのものを上回るケースも報告されています(AWS News Blog)。
S3 Annotationsは、この分散管理をS3内に集約するための機能です。
主な変更点と動作
注釈の操作は専用APIで行います。
PutObjectAnnotation:注釈の作成・上書きGetObjectAnnotation:特定注釈の取得ListObjectAnnotations:オブジェクト上の注釈一覧DeleteObjectAnnotation:注釈の削除
オブジェクトのコピー、レプリケーション、リージョン間転送時には、注釈も本体と一緒に移動します。オブジェクトを削除すれば、紐づく注釈も消えます。暗号化は親オブジェクトの設定(SSE-S3、SSE-KMS、DSSE-KMS)を継承します。
料金は、親オブジェクトのストレージクラスに関わらずS3 Standard相当で課金されます(AWS News Blog)。
オブジェクトタグとの使い分け
| 項目 | オブジェクトタグ | S3 Annotations |
|---|---|---|
| 1オブジェクトあたりの上限 | 10個 | 1,000個 |
| サイズ | キー128文字+値256文字 | 名前512バイト+ペイロード1MiB |
| データ形式 | キーと値の文字列 | JSON、XML、YAMLなどのUTF-8テキスト |
| アップロード時の設定 | 可能 | 不可(アップロード後に付与) |
IAMポリシーやライフサイクルルールとの連携が必要ならタグ、構造化データや大きなペイロードが必要ならAnnotationsを選びます(公式ドキュメント)。
Athenaで横断検索する仕組み
個別オブジェクトへの注釈付与に加え、バケット単位でS3 Metadataのannotation tableを有効化できます。有効化すると、注釈はApache Iceberg形式の管理テーブルに自動インデックスされ、Amazon Athenaなどの分析ツールからSQLで検索できます。
スキーマを事前定義しなくても、JSONやXMLの構造に合わせてテーブルが動的に適応します。S3 GlacierやS3 Glacier Deep Archive上のオブジェクトでも、本体をリストアせずに注釈をAPIで参照・検索できます。リストア料金も発生しません(heise online、AWS News Blog)。
annotation tableを有効化したバケットでは、付与した注釈がおおむね1時間以内にテーブルへ反映されます。既存オブジェクトへの注釈はバックフィルされ、件数によっては数日かかる場合があります。
使い方の例
メディア企業が動画ファイルに技術仕様とAI要約を付ける場合、CLIでは次のように2つの注釈を別名で付けられます(AWS News Blog)。
aws s3api put-object-annotation \
--bucket my-media-bucket \
--key videos/documentary-2026.mp4 \
--annotation-name mediainfo \
--annotation-payload ./mediainfo.json
mediainfoにコーデックや解像度、ai_summaryに自然言語の要約を分けて保持できます。チームごとに別ワークフローで注釈を追加しても、名前が重ならなければ干渉しません。
Athenaでは、annotation tableから音声トラック数などの条件でオブジェクトを横断検索できます。
SELECT DISTINCT bucket, object_key
FROM "s3tablescatalog/aws-s3"."b_my_media_bucket"."annotation"
WHERE name = 'mediainfo'
AND CAST(json_extract_scalar(text_value, '$.audio_tracks') AS INTEGER) > 8
業界別の活用イメージ
メディア・エンターテインメントでは、字幕や文字起こし、コンテンツモデレーション結果を動画本体と一緒に管理できます。外部のメディアアセット管理(MAM)システムとの同期を減らせます。
金融では、調査レポートにAIが生成した投資サマリーやセンチメント分析を付与し、専用のメタデータDBを経由せずエージェントがデータを発見できます。
ライフサイエンスでは、臨床試験データに規制ステータスや監査証跡を直接付け、Glacierにアーカイブしたデータでもコンプライアンス確認の文脈を保持できます。
S3 Tables MCP Serverを使えば、自然言語で注釈を横断検索するAIエージェントとも接続できます(AWS What’s New)。
導入時の注意点
注釈はアップロード時(PutObject)には付けられません。オブジェクト作成後にPutObjectAnnotationを呼び出す必要があります。マルチパートアップロードでコピーする場合、注釈はデフォルトではコピーされないため、AWS CLIでは--copy-props allの指定が必要です(公式ドキュメント)。
注釈の削除はバージョニング有効バケットでも復元できません。S3 InventoryやS3 Express One Zone(ディレクトリバケット)には未対応です。提供リージョンは商用リージョンと中国(北京・寧夏)で、中東(UAE・バーレーン)では利用できません。
既存機能との位置づけ
S3 Annotationsは、S3 MetadataやS3 Tablesと組み合わせることで検索・発見のレイヤーが完成します。タグやユーザ定義メタデータを置き換える機能ではなく、大容量のビジネス文脈をオブジェクト横に置くための拡張です。
AIエージェントや自律ワークフローがデータを自分で見つけて使う時代に向け、メタデータをオブジェクトのそばに置き、SQLや自然言語で横断検索できる——その設計思想が、この機能追加の核心です。全リージョンで即日利用可能です。