S3 Tablesを利用するAWSアーキテクチャ構築：概要


# はじめに
先日AWSの投稿で、S3 Tablesが東京リージョンでも利用可能になったアナウンスがありました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/01/amazon-s3-tables-additional-aws-regions/

今後ますます利用が増えると思われるS3 Tablesを使ったアーキテクチャ構成の実装を試してみます。




# 構成図
最終的な構成図は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618752/53218fab-ba74-3616-2cc2-faac8651f563.png)


本記事では **S3 Tables テーブルバケットを作成する** 部分のみ実装します。
[今後の記事](#実装手順)で残りの部分を実装していきます。


# 実装手順
以下ステップで実装していきます。
ステップ3～5では、権限管理Lake Formationも出てきます。
本記事では、**1. S3 Tablesバケットを作成** まで説明します。

1. [S3テーブルバケットを作成](https://qiita.com/tamabe/private/8c459d2434f20191ac3e)
1. [EMRからスキーマ作成](https://qiita.com/tamabe/items/533d1b812de4adf4ec89)
2. [Firehoseからデータ送信](https://qiita.com/tamabe/private/d590444037e6d29f836e)
2. [Athenaからクエリ実行](https://qiita.com/tamabe/private/1c35ced1fee7bad9dc6e)
2. [QuickSightからデータセット接続](https://qiita.com/tamabe/private/1c7e299c13e92a3a61d8)




# S3テーブルバケットを作成
S3テーブルバケットは、コンソールやAWS CLIからも作成可能です。

## コンソールから作成
コンソール操作：
「S3コンソール」 → 「東京リージョン」であることを確認 → 「テーブルバケット」タブ → 「テーブルバケットを作成」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618752/c891e081-0d59-3dd5-fa87-62ccaa4a2e08.png)

 - **命名規則[^1]に気をつけて、「任意のテーブルバケット名」を設定**
他のバケットタイプと違い、アカウント内の各バケット名は現在のリージョン内で一意であればいいようです。
 - **AWSサービスと連携したい[^9]ので、「統合を有効にする」をチェック**
有効化することで、Athena、Redshift、EMR、QuickSight、Data Firehoseと連携可能になります
 - **「テーブルバケットを作成」をクリック**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618752/7d3c6416-910c-a8ee-e284-bf9f42ce90cb.png)


## AWS CLIから作成
AWS CLIから作成する場合は、以下コマンドを実行します。

```cli:S3 Tablesバケット作成
aws s3tables create-table-bucket --name <S3テーブルバケット名> --region ap-northeast-1
```


## S3 Tablesバケット作成結果
S3コンソールから確認すると、
東京リージョンの統合ステータスが有効化された状態で、
S3 テーブルバケットが作成できていることが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618752/e752a26a-3a96-5aad-dbcf-cf454eb6ad8a.png)



# 最後に
まずは、各AWSサービスの統合先となるS3テーブルバケットを作成しました。
次回記事では、Amazon EMRを使って、このS3テーブルバケットに名前空間、テーブル/スキーマを作成します。

https://qiita.com/tamabe/items/533d1b812de4adf4ec89





# 参考URL
この記事で参考にしたURLです。
[^1]:AWS記事：Amazon S3 table bucket, table, and namespace naming rules
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-naming.html#table-buckets-naming-rules

[^2]:AWS CLI Command Reference：s3tables
https://docs.aws.amazon.com/cli/latest/reference/s3tables/

[^3]:AWS記事：Accessing Amazon S3 tables with Amazon EMR
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-emr.html

[^4]:AWS記事：Querying Amazon S3 tables with Apache Spark
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-open-source-spark.html

[^5]:AWS記事：Streaming data to tables with Amazon Data Firehose
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-firehose.html

[^6]:AWS記事：Register S3 table bucket catalogs in Athena
https://docs.aws.amazon.com/athena/latest/ug/gdc-register-s3-table-bucket-cat.html

[^7]:AWS記事：Visualizing table data with Amazon QuickSight
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-quicksight.html

[^8]:AWS記事：Using Amazon S3 Tables with AWS analytics services #Grant Lake Formation permissions on your table resources
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html#grant-permissions-tables

[^9]:AWS記事：Using Amazon S3 Tables with AWS analytics services
https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html