Amazon S3
Amazon S3とは
Amazon S3(Simple Storage Service)は、[[AWS]]が提供するオブジェクトストレージサービスです。ファイルを「バケット」と呼ばれる入れ物に、事実上無制限に保存できます。ハードディスクのようなブロック単位の管理ではなく、1つのファイルを1つの「オブジェクト」として、キー(パスのような文字列)と紐付けて保存する点が特徴です([[ストレージの種類]]参照)。
s3://バケット名/フォルダのようなキー/ファイル名 という形式でアクセスしますが、実際にはディレクトリ構造を持っているわけではなく、キーの文字列に「/」が含まれているだけです。この「/」で区切られた部分をプレフィックスと呼び、フォルダのように扱われます。
プレフィックスによる整理
大量のファイルを扱うシステムでは、性質の違うファイルをプレフィックスで分離するのが定石です。
s3://procedure-assets/
├── templates/ # テンプレート(変更頻度・低)
├── knowledge/ # 参照資料(承認済み・非推奨などで細分化)
├── generated/
│ ├── draft/ # AIが生成した下書き
│ └── approved/ # 人間が承認した正式版
└── audit/ # 監査ログ
generated/draft/ と generated/approved/ を分けておくと、「まだレビューされていない生成物」と「正式な成果物」を取り違える事故を防げます。プレフィックスごとにアクセス権限([[AWS IAM]])を分けることもでき、たとえば「AIの実行ロールはdraftへの書き込みのみ許可し、approvedへの昇格は人間の操作でしか行えない」といった設計が可能です。
初学者向けポイント
- S3は「ファイルサーバーの代わり」として使われることが多いですが、内部的にはキーと値(ファイルの中身)のペアを保存するだけの、シンプルな仕組みです
- ライフサイクルルールを使うと、一定期間経過したファイルを自動的に安価なストレージクラスへ移動したり削除したりできます。監査ログなど「長期保存はしたいが頻繁にはアクセスしない」データに向いています
- 保存されているだけでは検索対象になりません。文書を検索できるようにするには[[Bedrock Knowledge Bases]]のような仕組みと組み合わせる必要があります
関連技術とのつながり
- [[AWS]] — S3が提供されているクラウド基盤
- [[ストレージの種類]] — S3が属する「オブジェクトストレージ」という分類の位置づけ
- [[AWS IAM]] — バケットやプレフィックス単位でのアクセス権限を制御する仕組み
- [[Bedrock Knowledge Bases]] — S3に置いた文書を検索対象にするサービス
- [[バックアップとリカバリ]] — S3をバックアップ先として使う場合の考え方
Q: Amazon S3における「プレフィックス」の実体として正しいのはどれ?
- [x] オブジェクトのキー文字列に含まれる「/」区切りの部分
- [ ] ディスク上に物理的に存在するフォルダ
- [ ] バケットごとに割り当てられるIPアドレス
解説: S3はフラットな構造で、フォルダのように見える区切りはキー文字列上の慣習にすぎません。
Q: generated/draft/ と generated/approved/ をプレフィックスで分ける目的として本文が挙げているのはどれ?
- [x] 未レビューの生成物と正式な成果物を取り違える事故を防ぐため
- [ ] ファイルの読み込み速度を上げるため
- [ ] S3の料金を無料にするため
解説: 承認状態でプレフィックスを分けると、アクセス権限も分離しやすくなり誤用を防げます。
Q: S3のライフサイクルルールでできることはどれ?
- [x] 一定期間経過したファイルを安価なストレージクラスへ自動移動・削除する
- [ ] ファイルの中身を自動で要約する
- [ ] LLMのファインチューニングを自動実行する
解説: アクセス頻度の低いデータを自動的に整理する仕組みで、長期保存データの運用コストを下げます。