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