7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Terraform 管理している S3 に突如現れた UUID ファイル名オブジェクトの正体

Last updated at Posted at 2025-11-05

こんにちは、インフラエンジニアの小野島です!

AWS S3 Bucket は単なるオリジンとしてだけでなく、ELB ログ出力先、Athena 結果出力先など用途は多岐に渡りますよね。

Athena の出力先として使っているバケットで、突然 prefix の root に下記ファイル名のオブジェクトが配置されていました。

f570f820-f4ea-4860-b865-8fd6fc4b161d.txt

▼再現イメージ

image.png

Athena の結果ファイルのような予感はしますが、そもそも Athena をクエリした記憶はありません。

またコンソールで特に意図的な設定をせず Athena クエリを実行した時に、結果ファイルは root prefix に生成されません。

まあ消して大丈夫そうですが、もし本番稼働しているバケットでの話であれば正体が気になるところです。

結論

Terraform で Workgroup 指定ではなくバケット指定をした athena_database リソースを作成/削除した際の DDL 結果ファイルでした。

タイトルだけでピンと来たあなたは、凄腕インフラエンジニアです!

事象

コンソールからやった場合

S3 バケットを出力先とした primary Workgroup を用意したとします。

スクリーンショット 2025-11-04 23.47.56.png

この Workgroup を使って実行した CREATE DATABASE クエリの結果は Unsaved/{YYYY}/{MM}/{DD}/{UUID}.txt に出力されます。

スクリーンショット 2025-11-04 23.48.34.png

Terraform でやった場合

Terraform では CLI を使用して Database 作成クエリを実行します。

その際にデフォルトでバケットの root prefix を指定します。

Workgroup を指定した場合は prefix が上書きされますが、そうでなければこの記事の冒頭のような結果になります。

Athena 保存 prefix の仕様整理

コンソールで実施したデフォルトと Terraform のデフォルトが違っているのは違和感が残るので、整理してしまいます。

DDL 実行時に txt ファイルが生成される S3 Prefix の種類として以下の4通りを確認することができました。

Prefix 実行手段 出力先指定
Unsaved/{YYYY}/{MM}/{DD}/{UUID}.txt Console WorkGroup 指定で未保存クエリを実行
{SavedQueryName}/{YYYY}/{MM}/{DD}/{UUID}.txt Console WorkGroup 指定で保存済みクエリを実行
{OutputLocation}/{UUID}.txt CLI / Terraform WorkGroup または OutputLocation 指定
{UUID}.txt Terraform バケット指定

記事作成の過程で気づいたこと

Terraform の athena_database リソースの bucket (Required) は誤り

workgroup を指定すれば apply できました

ChatGPT は上と同じ情報の表を作成できなかった

プロンプトにもよるかもしれませんが、適切に情報を仕分けできていませんでした

免責事項

  • この記事の内容は個人の見解であり、所属する組織の意見を代表するものではありません。
7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?