1
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?

S3 の「未完了マルチパートアップロード」で課金が増える?仕組みと対策をまとめてみた

Last updated at Posted at 2025-12-08

S3 の不完全なマルチパートアップロードの中止設定

AWS Trusted Advisor を確認した際に、
「S3 の不完全なマルチパートアップロードの中止設定」 という警告を見たことはないでしょうか?

image.png

私も今回初めて調査したのですが、結論としては「放置すると課金が発生し続ける可能性がある」ため、設定しておくべき項目の一つ でした。

本記事では以下についてわかりやすく解説します。

  • マルチパートアップロードとは?
  • なぜ“未完了”が課金対象になるのか?
  • Trusted Advisor の警告の意味
  • ライフサイクルルールでの解消方法(GUI手順あり)
  • バケットの状況を調べる方法(Storage Lens など)

S3 を利用している環境では、いつの間にか課金が増えているパターンもあるため、早めに対処しておくのがおすすめです。

マルチパートアップロードとは?

S3 に大きなファイル(通常 100MB 以上)をアップロードする際に利用される仕組みで、

  • ファイルを複数パートに分ける
  • パートごとに並列アップロードできる
  • 通信失敗時も再送しやすい

というメリットがあります。

AWS CLI や SDK、バックアップツールなどでは自動的にマルチパートアップロードが利用される場合があります。

未完了のマルチパートアップロードが問題になる理由

マルチパートアップロードは、すべてのパートをアップロードし終わり、アプリケーション側で

CompleteMultipartUpload

を呼ぶことで初めて “1つのオブジェクト” として確定します。

しかし、アップロードが途中で中断された場合、

  • 通信切断
  • 処理キャンセル
  • 完了APIを呼ばずに異常終了
    といった理由で 未完了のパートが残り続けることがあります。

そしてこれが重要となってきます

未完了のパートも通常の S3 標準ストレージとして課金される

AWS は未完了のデータを自動で削除しません。
こちらを放置すると GB 単位で課金され続ける可能性があります。


100GB のアップロードが途中で止まり未完了パートが残った場合:

100GB × 0.0308 USD(東京リージョン) ≒ 3ドル/月

気づかず数ヶ月放置 → 数十ドルの無駄課金になるケースも。

Trusted Advisor の警告内容

Trusted Advisor では以下のような警告が出ます。

S3 バケットに、7 日間が経過しても未完了のマルチパートアップロードがある場合、
ライフサイクルルールで中止設定をすること。

これは、
「不要なストレージ課金を防ぐために中止ルールを入れてください」
という意味になります。

対策:ライフサイクルルールで自動削除する

手動で探して削除するのは現実的ではありません。
AWS が推奨しているのは、

「未完了のマルチパートアップロードを○日後に自動削除」ルールの追加

設定を入れておくと、不要な中断分が自動でクリーンアップされます。

GUI での設定手順

① S3 コンソールで対象バケットを開く
② 上部メニュー「管理(Management)」→「ライフサイクルルール」
image.png

③ 「ライフサイクルルールを作成」をクリック
image.png

④ ルール名を入力

例:

AbortIncompleteMultipartUploads

⑤ 対象スコープ(バケット全体)を設定
⑥ 「アクションを選択」で「未完了のマルチパートアップロードを中止する にチェック」

⑦ 「アップロード開始から 7 日後」など任意の日数を設定(AWS 推奨は 7 日)

最終系のイメージ図
image.png

⑧ 保存して完了

この設定はどのバケットに追加してもデメリットがないため、
全バケットに設定しておく運用がいいと思います。

バケットの状況を調べたい:S3 Storage Lens の利用

S3 Storage Lens を有効化すると、

  • バケットサイズ
  • オブジェクト数
  • ストレージクラスの割合
  • 増減トレンド

などが可視化できます。

無料版

  • 容量・オブジェクト数の可視化が可能
  • 「どのバケットが大きくなっているか」把握したい時に便利

有料版(Advanced)

  • 未完了マルチパートアップロードのメトリクスが可視化可能
  • パート数
  • 失敗したアップロードの容量
  • 発生頻度

より詳細に調べたい場合は Advanced の検討も可能です。

CLI で未完了パートを直接確認する方法

GUI では確認できないため、必要に応じて CLI を使用します。

aws s3api list-multipart-uploads --bucket <バケット名>

大量に残っている場合は手動削除も可能です。

まとめ

  • マルチパートアップロードは大容量ファイルを分割してアップロードする仕組み
  • 中断すると “未完了パート” が残り、課金され続ける
  • Trusted Advisor の警告は「自動削除ルールを入れてください」という意味
  • ライフサイクルで削除設定すれば OK(推奨は7日)
  • Storage Lens を利用すればバケット状況の可視化が可能

S3 のコスト最適化の中でも見落とされがちな項目ですが、環境によっては一定のストレージコスト削減につながるため、まだ設定していない場合は対応することをおすすめします。

1
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
1
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?