Skip to content

Latest commit

 

History

History
executable file
·
447 lines (325 loc) · 17.8 KB

File metadata and controls

executable file
·
447 lines (325 loc) · 17.8 KB

Amazon S3 Tables - 主要機能

目次


概要

Amazon S3 Tablesは、分析ワークロードに最適化された5つの主要機能を提供します。これらの機能により、クエリパフォーマンスの継続的な向上とストレージコストの削減を実現します。


主要機能

テーブル専用ストレージ

S3 Table Bucketsはテーブル専用に設計されたストレージです。

特徴

高パフォーマンス

  • 高TPS: S3汎用バケットのセルフマネージドテーブルと比較して、より高いTransactions Per Second (TPS)を提供
  • 高スループット: より優れたクエリスループットを実現
  • 最適化されたアーキテクチャ: テーブルワークロードに特化した内部アーキテクチャ

同等の信頼性

  • 耐久性: 他のAmazon S3バケットタイプと同じ耐久性(99.999999999% = 11 9's)
  • 可用性: 他のAmazon S3バケットタイプと同じ可用性
  • スケーラビリティ: 他のAmazon S3バケットタイプと同じスケーラビリティ

ユースケース

  • 日次購入トランザクション
  • ストリーミングセンサーデータ
  • 広告インプレッション
  • ログデータ
  • IoTデータ
  • その他の表形式データ(列と行で表現されるデータ)

Apache Icebergサポート

Table Bucket内のテーブルはApache Icebergフォーマットで保存されます。

Icebergの主要機能

スキーマ進化(Schema Evolution)

  • データの編成方法を変更可能
  • クエリの書き直しが不要
  • データ構造の再構築が不要
  • 時間の経過とともにデータを進化させることが可能

パーティション進化(Partition Evolution)

  • パーティション戦略を動的に変更可能
  • 既存データへの影響を最小限に抑える
  • クエリパフォーマンスの最適化

トランザクションサポート

  • データの一貫性を確保
  • 信頼性の高いデータ操作
  • ACID保証

タイムトラベルクエリ

  • データの変更を時系列で追跡
  • 履歴バージョンへのロールバック
  • 問題の修正
  • 時点クエリの実行

クエリエンジンのサポート

Apache Icebergをサポートするクエリエンジンで標準SQLを使用してテーブルをクエリ可能:

クエリエンジン サポート内容
Amazon Athena 標準SQL、Apache Spark
Amazon Redshift 標準SQL、Redshift Spectrum
Apache Spark Spark SQL、DataFrame API
AWS Glue ETLジョブ、Spark
Amazon EMR Spark、Presto、Trino
その他 PyIceberg、Iceberg REST API対応エンジン

自動テーブル最適化

S3は、クエリ用にテーブルを最適化するために、継続的に自動メンテナンス操作を実行します。

メンテナンス操作

コンパクション(Compaction)

  • 目的: 小さなオブジェクトを少数の大きなファイルにコンパクト化
  • 効果: テーブルパフォーマンスの向上
  • 戦略: Auto、Binpack、Sort、Z-order
  • 設定: テーブルごとにカスタマイズ可能

スナップショット管理(Snapshot Management)

  • 目的: 古いスナップショットの削除
  • 効果: ストレージコストの削減
  • 設定: 保持ポリシーをカスタマイズ可能
  • 機能: タイムトラベルクエリのサポート

未参照ファイル削除(Unreferenced File Removal)

  • 目的: 使用されていないオブジェクトのクリーンアップ
  • 効果: ストレージコストの削減
  • 設定: 削除タイミングをカスタマイズ可能

メリット

  • 運用の簡素化: 大規模データレイクの運用を効率化
  • 手動メンテナンス不要: 手動テーブルメンテナンスの必要性を削減
  • カスタマイズ可能: テーブルごと、Table Bucketごとにメンテナンス設定をカスタマイズ可能
  • コスト削減: 自動的にストレージコストを削減

アクセス管理とセキュリティ

Table BucketとTableの両方に対して包括的なアクセス管理とセキュリティ機能を提供します。

アクセス制御

IAMポリシー

  • Identity-Based Policies: ユーザーとロールに対するポリシー
  • Resource-Based Policies: Table BucketとTableに対するポリシー
  • きめ細かいアクセス制御: 個別のテーブル、Namespace内のすべてのテーブル、Table Bucket全体へのアクセスを制御

Service Control Policies (SCPs)

  • AWS Organizationsでの組織レベルのポリシー管理
  • 複数アカウントにわたるガバナンス

専用サービスネームスペース

  • s3tablesネームスペース: Amazon S3とは異なる専用のサービスネームスペース
  • 専用ポリシー設計: S3 Tablesサービスとそのリソース専用のポリシーを設計可能
  • 分離されたアクセス制御: S3汎用バケットとは独立したアクセス制御

セキュリティ機能

Block Public Access

  • 常時有効: すべてのTable Bucketに対してAmazon S3 Block Public Access設定が常に有効
  • 無効化不可: Block Public Access設定を無効にすることはできない
  • プライベート専用: Table BucketとTableは常にプライベート

暗号化

  • 保存時の暗号化: SSE-S3(デフォルト)、SSE-KMS
  • 転送時の暗号化: HTTPS必須(HTTP非サポート)
  • KMS統合: Customer Managed Keysのサポート

監査とロギング

  • AWS CloudTrail: すべてのAPI呼び出しをログ記録
  • 管理イベント: デフォルトで有効
  • データイベント: オプションで有効化可能
  • メンテナンスイベント: 自動メンテナンス操作のログ記録

ネットワークセキュリティ

  • VPCエンドポイント: Gateway EndpointとInterface Endpointのサポート
  • プライベートアクセス: VPC内からのプライベートアクセス
  • ネットワーク分離: インターネットを経由しないアクセス

AWS分析サービスとの統合

Amazon S3 Table BucketsをAmazon SageMaker Lakehouseと自動的に統合できます。

統合の仕組み

自動統合

  • S3コンソール: S3コンソールからAmazon SageMaker Lakehouseとの統合を自動化
  • 自動検出: AWS分析サービスがテーブルデータを自動的に検出
  • 自動アクセス: AWS Glue Data Catalogを通じてテーブルデータに自動的にアクセス

統合後の利用可能サービス

サービス 用途
Amazon Athena インタラクティブSQLクエリ、Apache Spark分析
Amazon Redshift データウェアハウス、BI分析
Amazon QuickSight ビジュアライゼーション、ダッシュボード
AWS Glue ETL、データ統合
Amazon EMR ビッグデータ処理、Spark/Hadoop
AWS Lake Formation データレイク管理、アクセス制御

統合のメリット

  • シームレスな統合: 複雑な設定なしでAWS分析サービスと統合
  • 自動カタログ登録: AWS Glue Data Catalogへの自動登録
  • 統一されたアクセス: 複数のサービスから同じテーブルにアクセス
  • きめ細かいアクセス制御: Lake Formationによる細かいアクセス制御

Amazon Data Firehoseとの統合

Amazon Data Firehoseを使用して、ストリーミングデータをS3 Tablesに直接配信できます。

主要機能

Exactly-once配信保証

  • 保証: 各レコードが正確に1回だけ配信されることを保証
  • 重複排除: ネットワーク障害やリトライ時の重複を自動的に排除
  • データ品質: 高いデータ品質を維持

マルチテーブルルーティング

  • 動的ルーティング: 単一のDelivery Streamから複数のテーブルにデータをルーティング
  • 柔軟性: データ内容に基づいてルーティング先を動的に決定
  • 効率化: 複数のStreamを管理する必要がない

Insert/Update/Delete操作サポート

  • Insert: 新規レコードの挿入
  • Update: 既存レコードの更新(Upsert)
  • Delete: レコードの論理削除
  • CDCサポート: Change Data Captureパターンの実装が容易

Lambda関数によるデータ変換

  • リアルタイム変換: 配信前にデータを変換
  • スキーママッピング: ソーススキーマをターゲットスキーマに変換
  • データエンリッチメント: 追加情報を付与
  • フィルタリング: 不要なデータを除外

ユースケース

  • リアルタイム分析: ストリーミングデータを即座に分析
  • IoTデータ収集: センサーデータの連続収集
  • ログ集約: アプリケーションログの一元管理
  • クリックストリーム分析: Webアクセスログの分析
  • CDCパイプライン: データベース変更のリアルタイム反映

設定の柔軟性

バッファ設定

  • サイズ: 1-128 MiB
  • インターバル: 0-900秒
  • 最適化: レイテンシとスループットのバランス調整

リトライ設定

  • 期間: 0-7200秒
  • 自動リトライ: 一時的な障害からの自動復旧
  • エラーハンドリング: 失敗したレコードの別バケットへの送信

スループット最適化

  • AppendOnlyフラグ: Insert専用の場合に設定で自動スケール
  • リージョン別制限: 主要リージョンでは5 MiB/秒、その他で1 MiB/秒

詳細: Firehose統合を参照してください。


既存データレイクからの移行機能

既存のデータレイクからS3 Tablesへの移行をサポートします。

移行方法

CTAS(CREATE TABLE AS SELECT)

  • ツール: Amazon Athena、Apache Spark
  • 特徴: シンプルなSQLベースの移行
  • 適用ケース: 中規模データセット、スキーマ変換あり

CREATE TABLE + INSERT

  • ツール: Amazon Athena、Apache Spark
  • 特徴: スキーマ定義とデータ挿入を分離
  • 適用ケース: 複雑なスキーマ定義、段階的移行

Sparkプログラマティック

  • ツール: Apache Spark DataFrame API
  • 特徴: 高度なカスタマイズ、複雑な変換
  • 適用ケース: 大規模データセット、複雑なデータ変換

AWS Glue ETLジョブ

  • ツール: AWS GlueマネージドETL
  • 特徴: サーバーレス、自動スケーリング
  • 適用ケース: 定期的な移行、運用負荷の削減

移行戦略

フルデータ移行

  • 方法: 全データを一括で移行
  • メリット: シンプル、一貫性が高い
  • デメリット: ダウンタイムが必要

段階的移行

  • 方法: パーティション単位で段階的に移行
  • メリット: ダウンタイムなし、リスク分散
  • デメリット: 複雑、管理コストが高い

ゼロダウンタイム移行

  • 方法: 読み取り/書き込み分離 + CDC + 段階的カットオーバー
  • メリット: サービス停止なし
  • デメリット: 最も複雑、高度な設計が必要

移行時の最適化

データレイアウト最適化

  • パーティション戦略の見直し
  • ソート順の最適化
  • 小ファイル問題の解決

スキーマ最適化

  • データ型の最適化
  • カラム名の標準化(小文字化)
  • 不要なカラムの削除

データ品質向上

  • 重複データの削除
  • NULL値の正規化
  • データ検証の実施

詳細: データレイク移行を参照してください。


パフォーマンス特性

TPS(Transactions Per Second)

  • 高TPS: S3汎用バケットのセルフマネージドテーブルと比較して高いTPS
  • 専用最適化: テーブルワークロード専用の最適化
  • スケーラビリティ: 需要に応じた自動スケーリング

クエリスループット

  • 高スループット: S3汎用バケットのセルフマネージドテーブルと比較して優れたクエリスループット
  • 最適化されたデータレイアウト: 自動コンパクションによる最適化
  • メタデータ管理: 効率的なメタデータ管理

レイテンシ

  • 低レイテンシ: テーブル専用アーキテクチャによる低レイテンシ
  • 最適化されたアクセスパターン: 分析ワークロードに最適化されたアクセスパターン

耐久性と可用性

耐久性

  • 11 9's耐久性: 99.999999999%(11 9's)の耐久性
  • 他のS3バケットタイプと同等: S3汎用バケットと同じ耐久性
  • 自動レプリケーション: 複数のアベイラビリティゾーンにわたる自動レプリケーション

可用性

  • 高可用性: 他のS3バケットタイプと同じ可用性
  • マルチAZ: 複数のアベイラビリティゾーンにわたる配置
  • 自動フェイルオーバー: 障害時の自動フェイルオーバー

スケーラビリティ

  • 無制限のスケーラビリティ: 他のS3バケットタイプと同じスケーラビリティ
  • 自動スケーリング: 需要に応じた自動スケーリング
  • パフォーマンスの一貫性: スケール時のパフォーマンスの一貫性

機能比較

S3 Tables vs S3汎用バケット(セルフマネージドIceberg)

機能 S3 Tables S3汎用バケット(セルフマネージドIceberg)
TPS 高 標準
クエリスループット 高 標準
自動メンテナンス ✅ あり(コンパクション、スナップショット管理、未参照ファイル削除) ❌ なし(手動実装が必要)
メンテナンス設定 カスタマイズ可能 完全に手動
運用負荷 低(自動化) 高(手動管理)
Apache Icebergサポート ✅ ビルトイン ✅ ライブラリ使用
AWS分析サービス統合 ✅ 自動統合 手動設定が必要
専用サービスネームスペース ✅ s3tables ❌ s3
Block Public Access ✅ 常時有効(無効化不可) 設定可能
耐久性 11 9's 11 9's
可用性 高 高
スケーラビリティ 無制限 無制限

主要な違い

S3 Tablesが優れている点:

  • 自動メンテナンス(運用負荷の削減)
  • 高TPS・高スループット
  • AWS分析サービスとの自動統合
  • 専用サービスネームスペース(きめ細かいアクセス制御)
  • 常時プライベート(セキュリティ強化)

S3汎用バケットが優れている点:

  • 完全なカスタマイズ性
  • 既存システムとの統合の柔軟性
  • Block Public Accessの設定可能性
  • より広範なS3機能へのアクセス

出典

本ドキュメントは、以下のAWS公式ドキュメントに基づいて作成されました。

主要ドキュメント

  1. Working with Amazon S3 Tables and table buckets

  2. Table buckets

  3. S3 Tables maintenance

  4. Security for S3 Tables

  5. Integrating Amazon S3 Tables with AWS analytics services

情報の信頼性

  • 情報源: AWS公式ドキュメント(一次情報)
  • 確実性: 高
  • 最終確認日: 2025-11-15

注意事項:

  • 本ドキュメントはAWS公式ドキュメントに基づいて作成されていますが、最新情報はAWS公式ドキュメントを参照してください
  • サービスの仕様や制限は予告なく変更される場合があります
  • 実装前には必ず最新のAWS公式ドキュメントを確認してください