kakakakakku blog

Weekly Tech Blog: Keep on Learning!

AWS CDK でプレフィックス集計のために Amazon S3 Storage Lens を設定する

Amazon S3 でオブジェクトの使用状況(合計サイズ・平均サイズなど)を「プレフィックス別(フォルダ別)」で可視化する場合,Amazon S3 Storage Lens の「高度なメトリクスとレコメンデーション機能」「プレフィックス集計」を設定する❗️

docs.aws.amazon.com

今回は AWS CDK で aws_s3.CfnStorageLens を使って「プレフィックス集計」を設定してみた.設定の詳細な仕様は AWS CloudFormation ドキュメント参照📝

そして,Amazon S3 Storage Lens の設定をシンプルにするため

  • 集計するプレフィックスの階層は 1
  • 集計対象にするプレフィックスの最小サイズ閾値は 1%(設定できる最低値)
  • 集計対象は新しく作った Amazon S3 バケットに限定

とした👌

docs.aws.amazon.com

docs.aws.amazon.com

サンプルコードを載せておく.ちなみに検証で使った kakakakakku-sandbox-storage-lens バケットは既に削除してある🗑

import {
  Stack,
  StackProps,
  aws_s3,
} from 'aws-cdk-lib'
import { Construct } from 'constructs'

export class SandboxCdkS3Stack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props)

    const bucket = new aws_s3.Bucket(this, 'Bucket', {
      bucketName: 'kakakakakku-sandbox-storage-lens',
    })

    new aws_s3.CfnStorageLens(this, 'StorageLens', {
      storageLensConfiguration: {
        id: 'storage-lens',
        isEnabled: true,
        accountLevel: {
          bucketLevel: {
            prefixLevel: {
              storageMetrics: {
                selectionCriteria: {
                  delimiter: '/',
                  maxDepth: 1,
                  minStorageBytesPercentage: 1,
                }
              }
            }
          }
        },
        include: {
          buckets: [
            bucket.bucketArn
          ]
        }
      }
    })
  }
}

そして prefix-1 から prefix-5 までのフォルダにサンプルファイルをアップロードして,数日待ったらプレフィックス別の使用状況を確認できるようになっていた👏

prefix-1/
prefix-2/
prefix-3/
prefix-4/
prefix-5/

以下にプレフィックス集計結果の一部を載せておく👀

Amazon S3 Storage Lens プレフィックス集計結果 1

Amazon S3 Storage Lens プレフィックス集計結果 2