[祝] Amazon S3 Tablesが東京リージョンで利用可能になりました! #AWSreInvent
クラウド事業本部コンサルティング部の石川です。AWS re:Invent 2024で発表された Amazon S3 Tablesが東京リージョンで利用可能になりました!記念して、現時点でどこまでできるのかを振り返ります。
なお、東京リージョンの他に、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (ストックホルム)も同時に利用可能になりました。
Amazon S3 Tables とは
Amazon S3 Tablesは、Apache Iceberg形式に最適化されたクラウドオブジェクトストアです。大規模な表形式データの保存を簡素化し、分析ワークロードに特化した設計によって、従来のS3と比較して大幅なパフォーマンス向上を実現します。継続的なテーブル最適化により、クエリ速度が最大3倍、トランザクション処理が最大10倍高速化されます。さらに、データ最適化やコンパクションの自動最適化など、データ分析プロセスを効率化する機能も提供しています。
Amazon S3 Tables のサポート状況(2025/1/20時点)
AWS re:Invent 2024で発表された Amazon S3 Tablesは、発表時点で一般提供開始(GA) ですが、AWSのアナリティクスサービスとの統合、つまりAWSのアナリティクスサービスからAmazon S3 Tablesを利用する機能はPublic Previewです。
Amazon S3 Tables を様々なユースケースで検証
特に S3 Tablesについては、いち早く様々なブログを提供しています。現時点でやれることは、全てやりきってるはずですので、すべてご紹介します。
センサーデータを分析するデータ基盤候補として、Data Firehose + S3 Tables + Athenaを試してみた
製造現場では、様々なセンサーから大量のデータが生成されます。S3 Tablesを活用し、大量のセンサーデータを扱うワークロード向けのデータ基盤構成として、Data Firehose + S3 Tables + Athenaを試しています。さすがosawa yutoさんって感じ。
S3 TablesをCDK for Terraformでデプロイしてみた
CDK for Terraformを用いたS3 Tablesのデプロイを紹介しています。
Amazon S3 Tables を AWS Glue 用いてNamespaceとテーブルの作成、データ追加・削除までやってみた
巷の人たちが書いてる検証ブログのように、vanilla sparkでS3 Tablesが使えても実務で使える気がしないので、まずはAWS GlueでNamespaceとテーブルの作成、データ追加・削除ができるまでを試しています。
Amazon S3 Tables の Iceberg テーブルにS3上のデータファイルをロードしてみる
上記のブログに引き続き、S3上のデータファイルをS3 Tables上のIcebergフォーマットのGlueテーブルにロードするまでを試しています。
Amazon S3 Tables の Iceberg テーブルに従来のGlueテーブルでUPSERTしてみる
上記のブログに引き続き、S3 Tables上のIcebergフォーマットのGlueテーブルにロードしたデータを用いて、他のGlueテーブルと結合してデータマートを作成して、最終的にAthenaでアドホッククエリを実行できるまでを試しています。
Amazon S3 Tables と Iceberg Tables on Amazon S3 のパフォーマンス比較
気になるAmazon S3 Tables と Iceberg Tables on Amazon S3 パフォーマンスを検証しました。現時点(2025/1/20)ではAWSのアナリティクスサービスとの統合はPublic Previewなので、将来的にはさらなる改善を期待しています。
Amazon S3 Tables の Table Bucketを削除する方法
現時点(2025/1/20)では、マネジメントコンソールから Table Bucketを作成できますが、削除はできません。そのため、Table Bucketを削除するには、awsコマンド(AWSCLI)を使う必要がありますが、強制削除(--force
)オプションはありません。また、ハマりどころも紹介しています。
Amazon S3 Tables の Iceberg テーブルを Amazon Redshift でクエリ実行する
Amazon Redshift からAmazon S3 Tables の Iceberg テーブルにクエリする方法を紹介しています。
Amazon S3 Tables のTable Bucket、Namespace、Tableの管理コマンドの解説
Amazon S3 Tables のTable Bucket、Namespace、Tableの管理コマンドをすべて試してみました。実際に動いた実績のあるサンプルです。
Amazon S3 Table の「メンテナンス」を設定してみた
Amazon S3 Tables のメンテナンスの管理コマンドの検証です。データ最適化やコンパクションの自動最適化など、データ分析プロセスを効率化する機能はこのメンテナンスの管理コマンドを用います。
Amazon S3 Tables のポリシー管理コマンドの解説
Amazon S3 Tables のポリシー管理コマンドをすべて試してみました。実際に動いた実績のあるサンプルです。Amazon S3 TablesのTable Bucket Policyは、S3 Tablesのリソースに対するアクセス制御を管理するためのポリシーです。このポリシーを使用することで、テーブルバケットやテーブルレベルでAPIアクセス権限を付与できます。
Amazon S3 Tables のプライベートVPCからのアクセスとポリシー管理によるアクセス制御を試してみた
S3 TablesにVPCエンドポイントでプライベートアクセスができるのかを検証しました。また、よくある機密データをVPCの外からアクセスできないようにするためのポリシー管理の具体例も合わせて解説しています。
Amazon S3 Tables の Iceberg テーブルを Amazon QuickSight で可視化する
Amazon S3 Tables の Iceberg テーブルに Amazon QuickSight から可視化してみました。リソースリンクの作成、IAMやSAML認証ユーザーに対するLake Formationの権限付与など、ちょっとややこしいので参考になると思います。
最後に
Amazon S3 Tablesの包括的な検証と実装例は、S3 Tablesの実用性と柔軟性を明確に示しており、多様なユースケースに対応できることが分かります。パフォーマンスの向上、自動最適化機能、そして既存のAWSサービスとの統合性は、データ駆動型の意思決定を行う企業にとって大きな価値となるでしょう。
今後、AWSのアナリティクスサービスとの完全な統合が実現すれば、さらなる可能性が開かれることが期待されます。S3 Tablesは、大規模データ分析の効率化と高速化を求める企業にとって、強力なツールとなる可能性があります。