Graduate Program KB

Section 8 - S3

Same content! Refer to Section 06 - S3

S3 Advanced

Moving Storage Between Classes

  • Infrequently accessed objects should be moved to Standard IA and archive objects to Glacier or Glacier Deep Archive
  • Moving objects can be automated using Lifecycle Rules

Lifecycle Rules

  • Transition actions: Configure objects to transition to another storage class
  • Expiration actions: Configure objects to expire (delete) after some time
  • Rules can be created for a certain prefix or for certain object tags

Storage Class Analysis

  • Decide when to transition objects to the right storage class
  • Recommendations for Standard and Standard IA
  • Report is updated daily, it takes 24 to 48 hours to start seeing data analysis

Requester Pays

  • Bucket owners typically pay for all S3 storage and data transfer costs associated with their bucket
  • With Request Pays buckets, the requester instead of bucket owner pays the cost of the request and the data download from the bucket
  • Useful for sharing large datasets with other accounts
  • Requester must be authenticated in AWS

Event Notifications

  • Receive notifications when certain events occur in an S3 bucket
  • Ex. of events: S3:ObjectCreated, S3:ObjectRemoved, S3:ObjectRestore, S3:Replication
  • Can create as many S3 events as necessary
  • Usually takes seconds but can take a minute or longer in some cases
  • WIth Amazon EventBridge:
    • Advanced filtering options with JSON rules
    • Multiple destinations
    • EventBridge capabilities

Baseline Performance

  • S3 automatically scales to high request rates with about 100-200 ms latency
  • Apps can achieve at least 3500 PUT/COPY/POST/DELETE or 5500 GET/HEAD requests per second per prefix in a bucket
  • No limit to number of prefixes in a bucket

S3 Performance

  • Multi-Part upload
    • Recommended for files > 100 MB, must use for files > 5 GB
    • Help parallelize uploads for speed up transfers
  • S3 Transfer Acceleration
    • Increase transfer speed by transferring a file to an edge location which forwards the data to the S3 bucket in the target region
    • Compatible with multi-part upload
  • S3 Byte-Range Fetches
    • Parallelize GETs by requesting specific byte ranges
    • Better resilience in case of failures

Batch Operations

  • Perform bulk operations on existing objects with a single request
  • Jobs consist of a list of objects, the action to perform and optional parameters
  • Manages retries, tracks progress, sends completion notifications and generates reports
  • Can use S3 Inventory to get object list and use S3 Select to filter your objects

Storage Lens

  • Analyze and optimize storage across an AWS Organization
    • Discover anomalies, cost efficiencies and apply data protection best practices across an entire Organization
  • Can aggregate data for an Organization, specific accounts, regions, buckets or prefixes
  • Create dashboards or use the default
    • Default shows multi-region and multi-account data, it can be disabled but not deleted
  • Configurable to export metrics daily to an S3 bucket
  • Metrics:
    • Summary
      • General insights about your S3 storage (StorageBytes, ObjectCount, etc.)
      • Useful for identifying fastest-growing buckets and prefixes
    • Cost-Optimization
      • Insights to manage and optimize storage costs (NonCurrentVersionStorageBytes, IncompleteMultipartUploadStorageBytes, etc.)
      • Useful for identifying buckets with incomplete multi-part uploaded older than 7 days, identify which objects could be transitioned to a lower-cost storage class
    • Data-Protection
      • Insights for data protection features (VersioningEnabledBucketCount, MFADeleteEnabledBucketCount, SSEKMSEnabledBucketCount, CrossRegionReplicationRuleCount, etc.)
      • Useful for identifying buckets that aren't following data-protection best practices
    • Access-management
      • Insights for S3 Object Ownership (ObjectOwnershipBucketOwnerEnforcedBucketCount, etc.)
      • Useful for identifying which Object Ownership settings your buckets use
    • Event
      • Insights for S3 Event Notifications (EventNotificationEnabledBucketCount)
      • Identify which buckets have S3 Event Notifications configured
    • Performance
      • Insights for S3 Transfer Acceleration (TransferAccelerationEnabledBucketCount)
      • Identify which buckets have S3 Transfer Acceleration enabled
    • Activity
      • Insights about how storage is requested (AllRequests, GetRequests, PutRequests, ListRequests, BytesDownloaded, etc.)
    • Detailed Status Code
      • Insights for HTTP status codes (200OKStatusCount, 403ForbiddenErrorCount, 404NotFoundErrorCount, etc.)
  • Free metrics are automatically available for all customers, containing around 28 usage metrics and data is available for queries for 14 days
  • Advanced metrics and recommendations:
    • Advanced metrics: Activity, Advanced Cost Optimization, Advanced Data Protection, Status Code
    • CloudWatch publishing: Access metrics in CloudWatch with no additional charges
    • Prefix aggregation: Collection metrics at prefix level
    • Data is available for queries for 15 months