DEA / ドメイン2 データストア管理
重要な内容
S3 のライフサイクル・バージョニング・レプリケーション
のデータは、時間がたつほど読まれなくなり、やがて保管期限を迎えます。 のライフサイクルルールを使うと、古いデータを安いへ移し、期限が来たら削除する作業を自動化できます。DEA-C01 では、ライフサイクルルールによる階層の移行と有効期限、と非現行バージョンの管理、Object Lock による保持、による複製が問われます。
Point
- Lifecycle (ライフサイクル): データが作られてから削除されるまでの一生のことです。
- Expiration (有効期限): ライフサイクルルールの「削除する」アクションの名前です。
- Noncurrent version (非現行バージョン): バージョニングを有効にしたバケットで、上書きや削除によって最新ではなくなった古い版です。
- 和訳
- Expiration: 満了、期限切れ
- Weblio英和辞書「expiration」
概要
ライフサイクルルールは、全体、またはプレフィックス・タグ・オブジェクトサイズで絞り込んだオブジェクトに対して、2種類のアクションを設定します。
| アクション | 内容 | 例 |
|---|---|---|
| 移行 (Transition) | 指定した日数後に別のへ移す | 30日後に Standard-、180日後に Glacier Deep Archive |
| 有効期限 (Expiration) | 指定した日数後に削除する (失効させる) | 7年後に削除 |
試験では、「何日後にどのクラスへ移すか」「いつ消すか」「古いバージョンがたまってコストが増えたときどうするか」「消してはいけないデータをどう守るか」を判断します。
主要技術
①ライフサイクルルールによる階層の移行 ⚠️ 頻出
移行は、上位のクラスから下位のクラスへ一方向に進みます (ウォーターフォール)。Glacier Deep Archive から上位のクラスへはライフサイクルで戻せず、復元してからコピーし直す必要があります。
| 制約 | 内容 |
|---|---|
| 小さいオブジェクト | 128 KB 未満のオブジェクトは、既定ではどのクラスへも移行しない。移行は1件ごとにリクエスト料金がかかり、節約額を上回るため |
| 最小保存期間 | Standard- と One Zone-IA は30日、Glacier Instant Retrieval と Flexible Retrieval は90日、Deep Archive は180日。期間前に移行・削除すると残りの日数分が課金される |
| 1つのルール内の順序 | 最小保存期間を満たさない間隔で次のクラスへ移すルールは作れない |
| 復元が必要なクラス | Glacier Flexible Retrieval と Deep Archive は、読む前に一時コピーの復元が必要 |
読まれ方が読めないデータは、日数を決めて移すより Intelligent-Tiering に入れて、アクセス頻度に応じて自動で階層を移す方が安全です。
が大量にあるでは、移行のリクエスト料金と、Glacier 系で1オブジェクトごとに追加される管理用の容量が効いてきます。先にファイルをまとめて ()、大きなファイルにしてから移行します。
②有効期限によるデータの失効 ⚠️ 頻出
期限に達したデータは、有効期限 (Expiration) アクションで自動削除します。Scan して1件ずつ消すジョブを作るより、安く確実です。
| 目的 | 設定 |
|---|---|
| raw ゾーンのログを90日で消す | プレフィックス raw/logs/ に Expiration 90日 |
| 一時ファイルを7日で消す | タグ temp=true に Expiration 7日 |
| 失敗したマルチパートアップロードの断片を消す | AbortIncompleteMultipartUpload (開始から N 日) |
| 古いバージョンを消す | NoncurrentVersionExpiration (非現行になってから N 日、保持する版数も指定可) |
| 残った削除マーカーを消す | ExpiredObjectDeleteMarker |
削除は非同期に行われ、期限日ちょうどではなく少し遅れることがあります。ただし、期限を過ぎたオブジェクトの保管料金はかかりません。
Point
- 削除マーカー (delete marker): バージョニングが有効なバケットでオブジェクトを削除すると、実体は消えずに「削除された」という目印が最新版として置かれます。これが削除マーカーです。
- 古い版が残り続けるため、バージョニングを有効にしたら非現行バージョンの有効期限も一緒に設定するのが定石です。
③バージョニング ⚠️ 頻出
を有効にすると、上書きや削除をしても以前の版が残り、誤操作から戻せます。
| 状態 | 上書き・削除したとき |
|---|---|
| 無効 (既定) | 以前のデータは失われる |
| 有効 | 以前の版が非現行バージョンとして残る。削除は削除マーカーになる |
| 停止 | 新しい版は作られないが、既存の版は残る (一度有効にすると無効には戻せない) |
では、 ジョブが誤って curated のデータを上書きしたときに、前の版へ戻せることが利点です。一方で、毎日上書きするデータは版がたまり続け、保管料金が膨らみます。ライフサイクルルールの NoncurrentVersionExpiration と、非現行バージョンの移行 (NoncurrentVersionTransition) を組み合わせて、古い版を安いクラスへ移してから消します。
Delete を有効にすると、版の完全削除とバージョニング状態の変更に多要素認証を求められます。
④Object Lock によるデータの保持
Object Lock は、指定した期間、オブジェクトの版を上書き・削除できなくする (書き込みは1回、読み取りは何度でも) の仕組みです。が前提です。
| 方式 | 内容 | 向くケース |
|---|---|---|
| モード | 特別な権限 (s3:BypassGovernanceRetention) を持つ利用者は解除・削除できる | 誤削除の防止、社内ルールでの保持 |
| モード | 保持期間中は root ユーザーを含め誰も削除・短縮できない | 規制による保存義務 (金融記録、監査ログ) |
| リーガルホールド | 期限なしで削除を止める。外すまで有効 | 訴訟や調査のために期間を決めず保全する |
保持期間中の版はライフサイクルルールでも削除できません。法的な保持義務と削除要求の両立は「データの削除と保持 (法的要件)」の章で扱います。
⑤レプリケーション
は、オブジェクトを別のへ非同期に自動で複製します。送信元と送信先の両方でが必要です。
| 方式 | 用途 |
|---|---|
| クロスレプリケーション (CRR) | 別リージョンにコピーを置く (災害対策、遠隔地の利用者の読み取り、規制) |
| 同一リージョンレプリケーション (SRR) | 同じリージョンの別バケット・別アカウントへ集約する (ログの集約、本番と分析用の分離) |
| Batch Replication | ルール設定前からある既存のオブジェクトや、失敗したオブジェクトを複製する |
| S3 Replication Time Control (RTC) | 大半のオブジェクトを数秒で、99.99% を15分以内に複製する SLA 付きの複製 |
| 複製されるもの・されないもの | 内容 |
|---|---|
| 新しく書かれたオブジェクト | 複製される (ルール作成後) |
| ルール作成前のオブジェクト | 複製されない (Batch Replication を使う) |
| 削除マーカー | 設定すれば複製できる |
| 特定の版の削除 | 複製されない (誤削除や悪意の削除が広がらない) |
レプリケーションは「同じデータを2か所に持つ」仕組みで、誤った上書きもそのまま複製されます。誤操作からの復旧にはバージョニングや を組み合わせます (「データの保護とレジリエンス」の章)。許可されていないリージョンへの複製を組織として防ぐ方法は「データ主権とリージョンの制御」の章で扱います。
試験対策
①判断マトリクス
| 問題文のキーワード | 選ぶもの |
|---|---|
| 30日後は読まれない、90日後はほぼ読まない | ライフサイクルルールの移行 (Standard- → Glacier) |
| アクセス頻度が読めない、変わる | Intelligent-Tiering |
| 一定期間後にデータを自動で削除 | ライフサイクルルールの Expiration |
| 後に保管料金が増えた | NoncurrentVersionExpiration / NoncurrentVersionTransition |
| 未完了のマルチパートアップロードがたまる | AbortIncompleteMultipartUpload |
| 誤った上書き・削除から戻したい | バージョニング |
| 規制で一定期間、誰にも削除させない | Object Lock のモード |
| 管理者だけは解除できる保持 | Object Lock のモード |
| 期間を決めずに訴訟対応で保全 | リーガルホールド |
| 別に自動でコピー | クロスリージョン (CRR) |
| 既存のオブジェクトも複製したい | S3 Batch Replication |
| 15分以内の複製を保証したい | S3 Replication Time Control |
②よくある誤答
- 数 KB のオブジェクトを大量に Glacier へ移して節約しようとすること。既定では移行されず、移行しても料金が節約額を上回りがちです。
- を有効にしたまま非現行バージョンの有効期限を設定しないこと。古い版がたまり続けます。
- バージョニングを有効にしたで Expiration を設定すれば実体が消えると考えること。現行版は削除マーカーになり、非現行バージョンとして残ります。
- をバックアップの代わりと考えること。誤った変更も複製されます。
- Object Lock のモードで規制要件を満たそうとすること。権限のある利用者が解除できるため、規制にはモードを選びます。