

# S3 ライフサイクルは他のバケット設定とどのように相互作用するか
<a name="lifecycle-and-other-bucket-config"></a>

S3 ライフサイクル設定に加えて、バケットに他の設定を関連付けることができます。このセクションでは、S3 ライフサイクル設定と他のバケット設定の関連について説明します。

## S3 ライフサイクルと S3 バージョニング
<a name="lifecycle-versioning-support-intro"></a>

S3 ライフサイクル設定は、バージョニング対応および非対応のどちらのバケットにも追加できます。詳細については、[[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)] を参照してください。

バケットのバージョニングが有効になっている場合は、最新のオブジェクトバージョン 1 個と、0 個以上の以前のバージョンが維持されます。現在のオブジェクトバージョンと以前のオブジェクトバージョン用に異なるライフサイクルルールを定義できます。

詳細については、「[ライフサイクル設定の要素](intro-lifecycle-rules.md)」を参照してください。

**重要**  
S3 ライフサイクル設定に複数のルールがある場合、1 つのオブジェクトが同じ日に複数の S3 ライフサイクルアクションの対象になることがあります。このような場合、Amazon S3 は以下の一般的なルールに従います。  
完全な削除は、移行より優先されます。
移行は、[削除マーカー](DeleteMarker.md)の作成より優先されます。
オブジェクトが S3 Glacier Flexible Retrieval 移行と S3 標準 – IA 移行 (または S3 1 ゾーン – IA 移行) の両方の対象になる場合、Amazon S3 は S3 Glacier Flexible Retrieval の移行を選択します。
 例については「[重複するフィルタ、競合するライフサイクルアクションの例](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5)」を参照してください。

## S3 ライフサイクルと
<a name="lifecycle-and-replication"></a>

バケットで S3 ライフサイクルの両方が有効になっている場合、S3 ライフサイクルは、レプリケーションステータスが `PENDING` または `FAILED` のオブジェクトの有効期限切れおよび移行アクションをブロックします。これにより、ライフサイクルはオブジェクトがターゲットバケットに正常にレプリケートされるまで、オブジェクトに対して操作を行わないことが保証されます。

レプリケーションロールの許可、AWS Key Management Service (AWS KMS) 許可、またはバケットの許可がないなどの問題がある場合、オブジェクトは `FAILED` レプリケーションステータスに移行します。詳細については、「[レプリケーションのトラブルシューティング](replication-troubleshoot.md)」を参照してください。

レプリケーションステータスが `FAILED` のオブジェクトは、レプリケーションの問題が解決されるまで、ライフサイクルの有効期限または移行資格日を過ぎてもストレージコストが発生し続けます。基盤となるレプリケーション設定または IAM アクセス許可を修正すると、新しいオブジェクトは自動的にレプリケートされます。ただし、レプリケーションステータスが既に `FAILED` になっているオブジェクトは自動的に再試行されません。S3 バッチレプリケーションを使用してレプリケートするか、不要になった場合は S3 バッチオペレーションで AWS Lambda を使用して削除する必要があります。オブジェクトが正常にレプリケート (または削除) されると、ライフサイクルは設定されたルールに従ってオブジェクトの処理を再開します。レプリケーションステータスが `FAILED` のオブジェクトを識別するには、Amazon CloudWatch メトリクス (`OperationFailedReplication`) を使用してバケットレベルで障害数と傾向をモニタリングするか、Amazon S3 インベントリレポート、Amazon S3 API (`HeadObject` または `GetObject`)、または Amazon S3 イベント通知を使用してオブジェクトレベルの詳細を確認できます。

## MFA が有効なバケットでの S3 ライフサイクル設定
<a name="lifecycle-general-considerations-mfa-enabled-bucket"></a>

多要素認証のバケットで S3 ライフサイクル設定を MFA 削除に設定することはサポートされていません。詳細については、「[MFA 削除の設定](MultiFactorAuthenticationDelete.md)」を参照してください。

## S3 ライフサイクルとログ記録
<a name="lifecycle-general-considerations-logging"></a>

Amazon S3 ライフサイクルアクションは、AWS CloudTrail オブジェクトレベルのログ記録ではキャプチャされません。CloudTrail は外部の Amazon S3 エンドポイントに対して行われた API リクエストをキャプチャしますが、S3 ライフサイクルアクションは内部の Amazon S3 エンドポイントを使用して実行されます。

S3 バケットで Amazon S3 サーバーアクセスログを有効にして、別のストレージクラスへのオブジェクトの移行やオブジェクトの失効など、S3 ライフサイクル関連のアクションをキャプチャして、完全な削除または論理的な削除を行うことができます。詳細については、「[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)」を参照してください。

バケットでログ記録を有効にしている場合、Amazon S3 サーバーアクセスログで以下のオペレーションの結果がレポートされます。


| オペレーションログ | 説明 | 
| --- | --- | 
| `S3.EXPIRE.OBJECT` | Amazon S3 は、ライフサイクルの `Expiration` アクションに沿って、オブジェクトを完全に削除します。 | 
| `S3.CREATE.DELETEMARKER` | Amazon S3 はバージョニングが有効なバケットに削除マーカーを追加することにより、現在のバージョンを論理的に削除します。 | 
| `S3.TRANSITION_SIA.OBJECT` | Amazon S3 はオブジェクトを S3 Standard – IA ストレージクラスに移行しました。 | 
| `S3.TRANSITION_ZIA.OBJECT` | Amazon S3 はオブジェクトを S3 1 ゾーン – IA ストレージクラスに移行しました。 | 
| `S3.TRANSITION_INT.OBJECT` | Amazon S3 はオブジェクトを S3 Intelligent-Tiering ストレージクラスに移行します。 | 
| `S3.TRANSITION_GIR.OBJECT` | Amazon S3 は、オブジェクトの S3 Glacier Instant Retrieval ストレージクラスへの移行を開始します。 | 
| `S3.TRANSITION.OBJECT` | Amazon S3 は、オブジェクトの S3 Glacier Flexible Retrieval ストレージクラスへの移行を開始します。 | 
| `S3.TRANSITION_GDA.OBJECT` | Amazon S3 は、オブジェクトの S3 Glacier Deep Archive ストレージクラスへの移行を開始します。 | 
| `S3.DELETE.UPLOAD` | Amazon S3 は不完全なマルチパートアップロードを中止しす。 | 

**注記**  
Amazon S3 サーバーアクセスログレコードは、ベストエフォートベースで配信され、すべての Amazon S3 リクエストの完全なアカウンティングには使用できません。