View a markdown version of this page

GAMESUS01-BP02 ライフサイクルポリシーまたは TTL の有効期限を使用して、不要なゲームユーザーデータ、ログファイル、または廃止されたアセットを削除する - ゲーム業界レンズ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GAMESUS01-BP02 ライフサイクルポリシーまたは TTL の有効期限を使用して、不要なゲームユーザーデータ、ログファイル、または廃止されたアセットを削除する

タグとデータ型を使用してライフサイクルポリシーまたは TTL を作成し、データをアーカイブストレージに移動したり、サービスから完全に削除したりできます。これには、一時的な設定、期限切れのアーカイブ済みコンテンツ、不要になった履歴ログが含まれる場合があります。ほとんどの サービスはタグ付けをサポートしています。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

S3 に保存されているデータの場合、ライフサイクルポリシーを使用して、データを低頻度のアクセス階層とアーカイブ階層のストレージに移動できます。S3 ライフサイクル設定では、1 つのストレージクラスから別のストレージクラスにオブジェクトを移行し、ストレージのコストを節約できるルールを定義できます。オブジェクトのアクセスパターンが不明、またはアクセスパターンが時間の経過とともに変化している場合、コストを自動的に削減するためにオブジェクトを S3 Intelligent-Tiering ストレージクラスに移行できます。

Amazon S3 は、以下の図のようにストレージクラス間の移行のためのウォーターフォールモデルをサポートします。

移行アクションを S3 ライフサイクル設定に追加して、有効期間終了時にオブジェクトを削除するように Amazon S3 に指示できます。オブジェクトがライフサイクル設定に基づいて有効期間が終了すると、Amazon S3 はバケットの S3 バージョニング状態に基づいて有効期限アクションを実行します。

  • バージョニングされていないバケット: Amazon S3 はオブジェクトを削除のためにキューに入れ、非同期的に削除して、オブジェクトを完全に削除します。

  • バージョニングが有効なバケット: 現在のオブジェクトバージョンが削除マーカーでない場合、Amazon S3 は一意のバージョン ID を持つ削除マーカーを追加します。これにより、最新のバージョンが最新以外のバージョンとなり、削除マーカーが最新バージョンになります。

  • バージョニングが停止されたバケット: Amazon S3 は、バージョン ID として null を持つ削除マーカーを作成します。この削除マーカーは、オブジェクトのバージョンをバージョン階層の null バージョン ID に置き換え、オブジェクトを効果的に削除します。

  • ライフサイクル設定をバケットに追加すると、設定ルールは既存のオブジェクトとそれ以降に追加されるオブジェクトの両方に適用されます。例えば、有効期限アクションを使用してライフサイクル設定ルールを今日追加すると、特定のプレフィックスを持つオブジェクトが作成から 30 日後に期限切れになります。Amazon S3 は、30 日以上経過し、指定されたプレフィックスを持つ既存のオブジェクトの削除をキューに入れます。

DynamoDB の Time to Live (TTL) は、不要になった項目を削除するためのコスト効率に優れた方法です。TTL では、項目がいつ不要になるかを示す有効期限タイムスタンプを項目ごとに定義できます。DynamoDB は、書き込みスループットを消費することなく、有効期限が切れてから数日以内に期限切れの項目を自動的に削除します。

  • TTL を使用するには、まずテーブルで TTL を有効にし、次に TTL の有効期限タイムスタンプを格納する特定の属性を定義します。タイムスタンプは UNIX エポック時間形式で秒単位で保存する必要があります。項目が作成または更新されるたびに、有効期限を計算して TTL 属性に保存できます。

  • 有効期限切れの TTL 属性を持つ項目は、通常は有効期限が切れてから数日以内にシステムによって削除される場合があります。削除待ちの期限切れ項目は、TTL 属性の変更や削除を含め、引き続き更新できます。期限切れの項目を更新する際には、その項目がその後削除されないように条件式を使用することをおすすめします。フィルター式を使用して、期限切れの項目を Scan 結果と Query 結果から削除します。

  • 削除済みの項目は、通常の削除操作で削除された項目と同様に機能します。削除されると、項目はユーザー削除ではなくサービス削除として DynamoDB Streams に入り、他の削除オペレーションと同様にローカルセカンダリインデックスとグローバルセカンダリインデックスから削除されます。 

ElastiCache for Redis では、TTLs またはキャッシュされたキーの有効期限を使用して、キャッシュされたデータの鮮度を制御できます。設定時間が経過すると、キーはキャッシュから削除され、更新されたデータに到達しながらオリジンデータストアにアクセスする必要があります。 

  • 2 つの原則によって、適用する適切な TTLs と実装するキャッシュパターンのタイプが決まります。まず、基盤となるデータの変化率を理解することが重要です。次に、更新されたデータではなく、古いデータがアプリケーションに返されるリスクを評価することが重要です。

  • 頻繁に変化する動的データでは、プライマリデータベースの変更率でデータの有効期限が切れる低い TTLs を適用できます。これにより、データベースリクエストをオフロードするためのバッファを提供しながら、古いデータを返すリスクが軽減されます。

  •  また、長時間ではなく数分または数秒間のみデータをキャッシュしている場合でも、キャッシュされたキーに TTLs を適切に適用すると、パフォーマンスが向上し、ゲームの全体的なプレイヤーエクスペリエンスが向上します。 

実装手順

  • Amazon S3 ライフサイクルポリシーを使用して、オブジェクトを低頻度のアクセス階層またはアーカイブ階層に移行し、ライフサイクルルールに基づいて不要なオブジェクトを削除する有効期限アクションを設定します。

  • DynamoDB テーブルで有効期限 (TTL) を有効にして、書き込みスループットを消費せずに期限切れの項目を自動的に削除し、Unix エポック時間で期限切れタイムスタンプを定義します。

  • 古いデータのデータ変更率とリスク許容度に基づいて ElastiCache キーに適切な TTLs を設定し、キャッシュされたデータの鮮度を促進し、プレイヤーエクスペリエンスを向上させます。