サイトアイコン 協栄情報ブログ

S3 Storage Lensを使って不完全のアップロードを検出し、S3のコストを削減


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

AWS S3へ巨大なファイルをアップロードする際、より高速に転送するには「Multipart Uploads 」を利用することが推奨されています。

Multipart Uploadsは下記のように流れます。

  1. アップロードが開始
  2. オブジェクトパーツがアップロードされ
  3. すべてのオブジェクトパーツがアップロードされると、マルチパートのアップロードが完了

途中で、完了していないMultipart Uploadsはどうなりますか?

Multipart Uploads の完了リクエストが正常に送信されなかった場合、 S3 はパーツを組み立てず、オブジェクトを作成しません。したがって、パーツは Amazon S3 に残るため、Amazon S3 に保存されたパーツに対して料金が発生します。

これらのパーツは、パーツのアップロード時に指定されたストレージクラスに従って課金されます。

つまり、何らかの事情で、ファイルアップロードが中途半端な状態で終了してしまった場合、中途半端なデータが裏側で残り課金され続けるということのようです。

S3バケット内の不完全なマルチパートアップロードを手動で一覧表示できますか?

CLIで不完全なデータを確認

aws s3api list-multipart-uploads --bucket (バケット名)

確認結果

見づらいですね、複数のファイルのことを分かりましたが、トータルサイズなど直ぐわかりません。

「S3 Storage Lens」という機能はできます!!

Amazon S3 Storage Lensとは?

Amazon S3 Storage Lens は、使用状況とアクティビティのメトリクスを集約して、Amazon S3 コンソールページにあるアカウントスナップショットにこの情報を表示します。
S3 Storage Lens のダッシュボードを使用して、インサイトと傾向を可視化し、外れ値にフラグを付け、推奨事項を受け取って、ストレージコストの最適化とデータ保護のベストプラクティスの適用を行うことができます。

S3 Storage Lensを使用して、Multipart Uploadsを含むAWSアカウントとS3バケットを検出します。また、これらの不完全なMultipart Uploadsの結果として存在するデータの量を確認することもできます。

S3 Storage Lens のダッシュボード

AWSが既にデフォルトのダッシュボード「default-account-dashboard」を作成されています。
これを利用すれば、十分です。

やってみる

Amazon S3コンソールから「Storage Lens」の「ダッシュボード」をクリック

「default-account-dashboard」のダッシュボードを選択します。
デフォルトはログインしているAWSアカウント内全てS3の状況を表示されます。

一番下の[上位 N の概要]セクションまでスクロールして、
メトリックには、「未完了のMPUバイト数」を選択します。これは、マルチパートアップロードが不完全なスコープ内の合計バイト数を示しています。

③不完全なマルチパートアップロードバイトを含む上位バケットを表示されてます。

S3ライフサイクルを使って自動的削除されるよう

S3コンソールでバケットを選択した後、[管理]タブを選択します。ここでは、[ライフサイクルルールの作成]を選択します。

「delete-incomplete-mpu-7day」のライフサイクルルールに名前を付け

「期限切れの削除マーカーまたは不完全なマルチパートアップロードを削除する」にチェックすると
「不完全なマルチパートアップロードを削除」にチェックし、日数に「7」を入力すれば完了です。

ライフサイクルルールの作成とステータスの確認

最後に

この記事は、S3 Storage Lensを使用して不完全なMultipart Uploadsを含むS3バケットを検出し、S3ライフサイクルを使用してS3バケットの1つで不完全なMultipart Uploadsを自動的に中止しました。
どなたかの参考になれば幸いです〜。

参照

https://aws.amazon.com/jp/blogs/aws-cloud-financial-management/discovering-and-deleting-incomplete-multipart-uploads-to-lower-amazon-s3-costs/
https://aws.amazon.com/jp/blogs/aws/s3-storage-lens/
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/storage_lens.html

モバイルバージョンを終了