S3 の不完全なマルチパートアップロードの中止設定
AWS Trusted Advisor を確認した際に、
「S3 の不完全なマルチパートアップロードの中止設定」 という警告を見たことはないでしょうか?
私も今回初めて調査したのですが、結論としては「放置すると課金が発生し続ける可能性がある」ため、設定しておくべき項目の一つ でした。
本記事では以下についてわかりやすく解説します。
- マルチパートアップロードとは?
- なぜ“未完了”が課金対象になるのか?
- 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)」→「ライフサイクルルール」

④ ルール名を入力
例:
AbortIncompleteMultipartUploads
⑤ 対象スコープ(バケット全体)を設定
⑥ 「アクションを選択」で「未完了のマルチパートアップロードを中止する にチェック」
⑦ 「アップロード開始から 7 日後」など任意の日数を設定(AWS 推奨は 7 日)
⑧ 保存して完了
この設定はどのバケットに追加してもデメリットがないため、
全バケットに設定しておく運用がいいと思います。
バケットの状況を調べたい:S3 Storage Lens の利用
S3 Storage Lens を有効化すると、
- バケットサイズ
- オブジェクト数
- ストレージクラスの割合
- 増減トレンド
などが可視化できます。
無料版
- 容量・オブジェクト数の可視化が可能
- 「どのバケットが大きくなっているか」把握したい時に便利
有料版(Advanced)
- 未完了マルチパートアップロードのメトリクスが可視化可能
- パート数
- 失敗したアップロードの容量
- 発生頻度
より詳細に調べたい場合は Advanced の検討も可能です。
CLI で未完了パートを直接確認する方法
GUI では確認できないため、必要に応じて CLI を使用します。
aws s3api list-multipart-uploads --bucket <バケット名>
大量に残っている場合は手動削除も可能です。
まとめ
- マルチパートアップロードは大容量ファイルを分割してアップロードする仕組み
- 中断すると “未完了パート” が残り、課金され続ける
- Trusted Advisor の警告は「自動削除ルールを入れてください」という意味
- ライフサイクルで削除設定すれば OK(推奨は7日)
- Storage Lens を利用すればバケット状況の可視化が可能
S3 のコスト最適化の中でも見落とされがちな項目ですが、環境によっては一定のストレージコスト削減につながるため、まだ設定していない場合は対応することをおすすめします。


