Skip to content

[Week 4] L1-011 답안 제출 #25

@wsxchoi

Description

@wsxchoi

Week

4

Scenario ID

L1-011

Problem Identification

S3 Storage Class Mismatch:

  • 3 S3 buckets (data-lake-raw, data-lake-archive, data-lake-curated) are using standard storage instead of intelligent tiering
  • Lifecycle policy moves data to Glacier after 90 days, but metrics show stable request patterns
  • Monthly S3 spend ($153) slightly exceeds pricing model estimate ($152)

Root Cause

Storage Class Inefficiency:

  • Current configuration uses standard storage for all data (100% of 8 TB)
  • Metrics show:
    • data-lake-paug4y has 100 GET/PUT requests/day with no access pattern changes
    • data-lake-v38s0p shows 49.7 PUT requests/day with sporadic activity
  • Lifecycle policy transitions to Glacier (0.004 $/GB) but data isn't accessed after 90 days

Cost Calculation:

  • 8 TB × $0.023/GB (standard) = $184/month
  • 8 TB × $0.004/GB (Glacier) = $32/month
  • Current spend ($153) is 77% of standard storage cost

Proposed Solution

Optimize Storage Classes:

  1. Convert all buckets to Intelligent Tiering with:
    • 90% IA (Infrequent Access) for archival data
    • 10% standard for active data
  2. Remove redundant buckets:
    • Consolidate data-lake-raw/data-lake-archive into single tiered bucket
    • Retain data-lake-curated for active data

Lifecycle Policy Adjustment:

Lifecycle Policy Adjustment:

Estimated Monthly Savings (USD)

102

Optimized Terraform

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "data_lake" {
  bucket = "data-lake-tiered"
  storage_class = "STANDARD_IA"

  lifecycle {
    rule {
      id    = "transition-rule"
      status = "Enabled"
      transition {
        days = 365
        storage_class = "GLACIER"
      }
    }
  }

  tags = {
    Environment = "production"
    Purpose     = "data-lake"
    Owner       = "data-team"
  }
}

resource "aws_s3_bucket_policy" "data_lake_policy" {
  bucket = aws_s3_bucket.data_lake.bucket
  policy = data "iam_policy_data_lake".policy
}

data "iam_policy" "data_lake" {
  name   = "data-lake-access"
  arn    = "arn:aws:iam::123456789012:policy/data-lake-access"
  region = "us-east-1"
}

Attached Reports

analysis_report.md
(Files committed to submissions/ directory)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions