Intelligent-Tiering を使用したテーブルのコスト最適化 - Amazon Simple Storage Service

Intelligent-Tiering を使用したテーブルのコスト最適化

S3 Intelligent-Tiering を使用して、テーブルのストレージコストを自動的に最適化できます。S3 Tables Intelligent-Tiering ストレージクラスは、アクセスパターンが変更されると、データを最もコスト効率の高いアクセス階層に自動的に移動します。S3 Intelligent-Tiering を使用すると、アクセス頻度の低いデータは自動的に低コスト階層に移動され、再度アクセスすると高頻度アクセス階層に戻されます。

すべてのデータは階層間で移動され、取得料金、パフォーマンスへの影響、可用性の変更はありません。さらに、圧縮などのテーブルメンテナンスオペレーションはアクセスパターンに基づいて最適化され、頻繁にアクセスされるデータのみが高頻度アクセス階層内で処理され、低コスト階層内のアクセス頻度の低いデータのメンテナンスコストが削減されます。

S3 Tables Intelligent-Tiering アクセス階層

テーブルが S3 Intelligent-Tiering ストレージクラスに保存されると、Amazon S3 はアクセスパターンを継続的にモニタリングし、アクセス階層間でテーブルデータを自動的に移動します。

階層化は個々のファイルレベルで行われるため、単一のテーブルに、アクセスパターンに基づいて異なる階層のファイルを含めることができます。テーブルデータは、アクセスパターンに基づいて、次のいずれかのアクセス階層に自動的に移動されます。

  • 高頻度アクセス: すべてのファイルのデフォルト階層。他の階層のファイルは、アクセス時に自動的に高頻度アクセス階層に戻ります。

  • 低頻度アクセス: 連続 30 日間ファイルにアクセスしない場合、低頻度アクセス階層に移動します。

  • アーカイブインスタントアクセス: 90 日間連続してファイルにアクセスしない場合、アーカイブインスタントアクセス階層に移動します。

すべての階層はミリ秒のレイテンシー、高スループットのパフォーマンスを提供し、99.9% の可用性と 99.999999999% の耐久性を実現するように設計されています。

S3 Intelligent-Tiering を使用した自動階層化の動作

以下のアクションは、ファイルを低頻度アクセス階層やアーカイブインスタントアクセス階層から高頻度アクセス階層に自動的に戻すアクセスを構成します。

  • GetObjectPutObject、または CompleteMultipartUpload アクションを使用したテーブルデータまたはメタデータファイルに対する読み取りまたは書き込みオペレーション

  • Iceberg REST API オペレーションを使用した LoadTable または UpdateTable アクション

  • S3 Tables レプリケーションオペレーション

他のアクションは、ファイルを低頻度アクセス階層やアーカイブインスタントアクセス階層から高頻度アクセス階層に自動的に戻すアクセスを構成しません。

注記

128 KB 未満のファイルは自動階層化の対象ではなく、高頻度アクセス階層に残ります。圧縮により、これらのファイルがより少数の大きなオブジェクトに結合され、新しいスナップショットとしてテーブルにコミットし直される場合があります。新しく圧縮されたファイルは、新しいファイルが 128 KB 以上の場合、自動階層化の対象になります。

テーブルのメンテナンス動作

スナップショット管理、参照されていないファイルの削除、レコードの有効期限切れなど、Amazon S3 によって実行されるテーブルの自動メンテナンスオペレーションは、階層に関係なくテーブルで引き続き実行されます。圧縮は高頻度アクセス階層のファイルに対してのみ実行されるため、アクセス頻度の高いデータのパフォーマンスが最適化され、低コスト階層のデータに対するメンテナンスコストが削減されます。

メンテナンスオペレーションは、テーブル内のファイルのアクセス階層には影響しません。メンテナンスオペレーションによって実行される読み取りでは、ファイルは階層を変更しません。ただし、圧縮やレコードの有効期限などのメンテナンスオペレーションで新しいファイルが書き込まれる場合、そのファイルは高頻度アクセス階層に作成されます。

注記

圧縮では高頻度アクセス階層のファイルのみが処理されるため、低コスト階層のデータに対する削除オペレーションは、自動的に圧縮されない削除ファイルが作成されます。これらの削除ファイルは、関連するデータファイルにアクセスして高頻度アクセス階層に戻ると、圧縮の対象となります。頻繁にアクセスされないテーブルの場合、Amazon EMR を使用して圧縮を手動で実行し、これらの削除ファイルを関連するデータファイルで圧縮できます。詳細については、「圧縮を使用したテーブルの維持」を参照してください。Amazon CloudWatch メトリクスを使用してテーブル内のファイルの増加をモニタリングし、手動圧縮が効果的なタイミングを判断できます。

ストレージクラスとしての S3 Intelligent-Tiering の指定

デフォルトでは、すべてのテーブルは S3 Standard ストレージクラスで作成され、S3 Intelligent-Tiering に移動できません。S3 Intelligent-Tiering を使用するには、テーブルの作成時に指定する必要があります。S3 Intelligent-Tiering をテーブルバケットのデフォルトのストレージクラスとして設定して、そこで作成された新しいテーブルを S3 Intelligent-Tiering ストレージクラスに自動的に保存することもできます。

テーブルバケットの S3 Intelligent-Tiering の指定

CreateTableBucket オペレーションで storage-class-configuration ヘッダーを使用して、新しいテーブルバケットを作成するときに、デフォルトのストレージクラスとして S3 Intelligent-Tiering を指定できます。

既存のテーブルバケットのデフォルトのストレージクラスを確認するには、GetTableBucketStorageClass オペレーションを使用します。既存のテーブルバケットのデフォルトのストレージクラスを変更するには、PutTableBucketStorageClass オペレーションを使用します。

注記

テーブルバケットのデフォルトのストレージクラスを変更すると、その設定はそのバケットで作成された新しいテーブルにのみ適用されます。既存のテーブルのストレージクラスは変更されません。

テーブルの S3 Intelligent-Tiering の指定

CreateTable オペレーションで storage-class-configuration ヘッダーを使用して新しいテーブルを作成するときに、ストレージクラスとして S3 Intelligent-Tiering を指定できます。

テーブルの作成時にストレージクラスを指定しない場合、テーブルは、その時点でテーブルバケットに設定されているデフォルトのストレージクラスに作成されます。テーブルが作成されると、そのストレージクラスを変更することはできません。

既存のテーブルバケットのデフォルトのストレージクラスを確認するには、GetTableBucketStorageClass オペレーションを使用します。

ストレージ使用状況のモニタリング

ストレージ使用状況の内訳は、アカウントの AWS コストと使用状況レポートでアクセス階層別に表示できます。詳細については、「AWS Data Exports ユーザーガイド」の「コストと使用状況レポートを作成する」を参照してください。

請求レポートでは、次の使用タイプを使用できます。

使用タイプ Unit 詳細度 説明
region-Tables-TimedStorage-INT-FA-ByteHrs GB-月 1 日 1 回 S3 Intelligent-Tiering ストレージの S3 Intelligent-Tiering 高頻度アクセスに保存されたデータの GB-月の数
region-Tables-TimedStorage-INT-IA-ByteHrs GB-月 1 日 1 回 S3 Intelligent-Tiering ストレージの S3 Intelligent-Tiering 低頻度アクセスに保存されたデータの GB-月の数
region-Tables-TimedStorage-INT-AIA-ByteHrs GB-月 1 日 1 回 S3 Intelligent-Tiering ストレージの S3 Intelligent-Tiering アーカイブインスタントアクセスに保存されたデータの GB-月の数
region-Tables-Requests-INT-Tier1 カウント 毎時 S3 Tables Intelligent-Tiering オブジェクトに対する PUTCOPY、または POST リクエストの数
region-Tables-Requests-INT-Tier2 カウント 毎時 S3 Tables Intelligent-Tiering オブジェクトに対する GET および他のすべての Tier1 以外のリクエストの数