RSSAmplifier

DanLevy.net · Dec 28, 2024

Quiz: AWS Storage: 20+ Questions!

0
Sign in to vote or save

Dan Levy · danlevy.net

Can you navigate the cloud labyrinth?

Are you down to cloud?! 🤡

Dive deep into AWS Storage Services! This quiz will test your knowledge of S3, DynamoDB, Aurora, RDS, ElastiCache, and more. From best practices to tricky gotchas, we’ll explore the cloud storage landscape.

Get ready to prove your cloud expertise! 🚀

Last verified: May 8, 2026. AWS limits and pricing change quickly.

What does the name S3 mean?

S3 stands for Simple Storage Service. It’s a scalable object storage service designed for large-scale data storage.

AWS S3 offers multiple storage classes:

  • Standard: For frequently accessed data
  • Infrequent Access (IA): Lower cost for less frequent access
  • Glacier: Long-term, low-cost archival storage

Each class offers different pricing and access characteristics, allowing cost optimization based on data usage patterns.

Learn more about S3 Storage Classes

Server Storage v3

Storage as a Service

Simple Storage Service

Sassy Storage Service

Simple Synchronized Store

What does it mean when DynamoDB is described as “schema-less”?

DynamoDB is considered “schema-less” because it allows you to store arbitrary properties in items without a predefined schema.

DynamoDB Best Practices

Store arbitrary properties

Dynamic partition keys

Columns are untyped

Automatically managed JSON schema

Relies on RDS for schema support

Which DynamoDB API updates attributes on one existing item?

The key here is updates, not inserts or PUTs. If you’re doing inserts, you can use BatchWriteItem or TransactWriteItems.

While BatchWriteItem can handle multiple operations, it’s limited to PUTs and DELETES. TransactWriteItems is more powerful, but it’s a bit of a sledgehammer for simple updates. For simple updates, UpdateItem is the best choice. It allows you to UPDATE, or modify one or more attributes in an existing item.

The UpdateItem operation modifies one item per request. For large backfills or bulk updates, you typically orchestrate many UpdateItem calls or use a larger workflow such as PartiQL batch execution, Step Functions, Glue, EMR, or a custom worker process.

The UpdateItem operation:

  • Updates an existing item’s attributes.
  • Adds new attributes to an existing item.
  • Removes attributes from an existing item.
  • Conditionally performs the update if the item exists or meets certain conditions.

DynamoDB UpdateItem

PutItem

BatchUpdateItem

BatchWriteItem

UpdateItem

BatchUpsertItem

TransactWriteItems

Which AWS service here is purpose-built for full-text search and search analytics?

OpenSearch is AWS’s managed service for search, log analytics, and full-text search workloads.

The distractors are useful services, but they are not the purpose-built search engine in this list:

  • ElastiCache: Primarily an in-memory cache. Current ElastiCache for Valkey includes search commands for indexed in-memory data, so it is no longer accurate to describe the whole service as having no built-in search.
  • Neptune: Graph database; it can integrate with OpenSearch for full-text search.
  • Redshift: Data warehouse for SQL analytics.
  • DocumentDB: Document database with MongoDB-compatible text search in supported versions.

ElastiCache

OpenSearch

Neptune

Redshift

DocumentDB

What is the primary benefit of RDS Multi-AZ deployment?

Availability Zones (AZs) are distinct data centers within a region. RDS Multi-AZ deployment provides automatic failover to a standby replica in a nearby AZ.

Multi-AZ deployment:

  • Provides automatic failover
  • Increases database availability
  • Creates a synchronous standby replica
  • Minimizes downtime during infrastructure failures

Don’t confuse Multi-AZ deployment with Read Replicas, which are used for scaling read operations.

Reduces storage costs

Solves the Egress Problem

Provides automatic failover

Increases read performance

Improves geo-distributed traffic

👋 I hope you’re having fun so far!

Time for a tricky one…

Which AWS service provides managed WebSocket APIs where AWS owns the client connection and routes messages to integrations?

API Gateway supports bidirectional WebSocket APIs, but the implementation is managed by API Gateway rather than being a direct socket into your own server process. API Gateway maintains the client connection and routes messages to Lambda, HTTP endpoints, or other integrations. Messages can be sent back to connected clients through the API Gateway Management API.

The others are much more WebSocket-friendly:

  • Lightsail: Perfect for simple WebSocket setups 👌
  • AppSync: Uses WebSockets for managed GraphQL subscriptions
  • EC2: Your classic “do whatever you want” option for WebSockets
  • EKS: Great for running scalable WebSocket clusters

Pro tip: If you need raw WebSocket power, stick with the compute services!

API Gateway

EKS

Lightsail

AppSync

EC2

What’s the recommended approach to S3 bucket permissions?

In virtually ALL systems, embracing a “least privilege” design is a key way to harden & future proof. Trying to lock down an existing system is about as difficult as moving an entire office building to a new foundation.

S3 buckets are no exception. To apply the principle of least privilege, start with no permissions and grant only the necessary access. Use IAM roles and policies to control access and regularly audit bucket permissions.

Security best practices:

  • Apply least privilege principle
  • Start with no permissions
  • Grant only necessary access
  • Use IAM roles and policies
  • Regularly audit bucket permissions

Avoid overly permissive settings that could expose sensitive data.

S3 Security Best Practices

Make new buckets public

Move S3 on-premises to fully control ACLs

Move data to private blockchain

Use least privilege principle

Use policy wildcards to ensure necessary access

What is the key feature of Aurora Serverless?

Aurora Serverless:

  • Automatically scales compute capacity
  • Adjusts resources based on workload
  • Ideal for unpredictable workloads
  • Pay only for used resources

Great for applications with variable traffic patterns.

Aurora Serverless Overview

Always cheaper than provisioned

Automatically scales compute capacity

Provides unlimited storage

Eliminates database management

One more DynamoDB batch question!
What’s the maximum number of items you can retrieve using a single DynamoDB BatchGetItem request?

The DynamoDB SDK allows you to retrieve up to 100 items in a single BatchGetItem request. This is higher than the limit for BatchWriteItem, which is 25 items. Additionally, there are limits on the total payload size, document size, and request rate.

Understanding these limits is crucial for optimizing your application’s performance and ensuring efficient data operations.

Note: It is possible to exceed some of these limits - if you can sweet-talk your AWS account manager. 😎

1

25

100

75

50

200

Unlimited

What’s the maximum number of documents DynamoDB can UPDATE per batch?

The DynamoDB Clients are essentially all wrappers for its HTTP API. The BatchWriteItem operation can PUT or DELETE up to 25 documents per HTTP request, but it cannot UPDATE multiple documents.

While DynamoDB can INSERT up to 25 documents per HTTP request, it can UPDATE only 1 document per request using the UpdateItem operation.

1

10

25

50

100

100 when streaming

None of the above

When should you use DynamoDB On-Demand capacity?

On-Demand Capacity is best for:

  • Unpredictable workloads
  • Sporadic traffic
  • Applications with unknown access patterns
  • Avoiding over-provisioning

Provisioned capacity is better for:

  • Predictable, consistent workloads
  • More control over performance
  • Potential cost savings

DynamoDB Capacity Modes

Provisioned is always better

On-demand has unlimited capacity

They perform identically

On-demand is cheaper for unpredictable workloads

How to optimize S3 performance for high request rates?

S3 Performance Tips:

  • Modern S3 automatically scales request rates per prefix
  • You don’t need random/hash prefixes for performance
  • Use logical key names that fit your access patterns
  • Monitor 503 Slow Down responses if you push very high request rates

Old guidance recommended randomizing prefixes to avoid hot partitions, but AWS no longer recommends that as a default performance requirement.

S3 Performance Guidelines

Use random/hash prefixes

Use logical prefixes; randomization is not required

Always use largest objects

Minimize number of objects

What’s the recommended RDS backup approach?

Best Backup Practices:

  • Enable automated backups
  • Use point-in-time recovery
  • Retain backups based on compliance needs
  • Test restoration process regularly
  • Consider cross-region backup

Automated backups provide:

  • Continuous data protection
  • Flexible recovery options

RDS Backup Best Practices

Manual snapshots only

No backups needed

Automated backups with point-in-time recovery

Weekly full backups

Key difference between Redis and Memcached in ElastiCache?

Redis Advantages:

  • Supports complex data structures
  • Persistence options
  • Advanced operations
  • Pub/Sub messaging

Memcached:

  • Simple key-value store
  • Pure caching
  • High performance for simple use cases

Redis vs Memcached

Redis supports more data structures & operations

Identical in all aspects

API-level compatibility

Memcached is always faster

Purpose of Global Secondary Index in DynamoDB?

Global Secondary Index (GSI):

  • Allows querying on non-primary key attributes
  • Creates alternative access patterns
  • Increases query flexibility
  • Comes with additional write capacity cost

Useful for complex query requirements beyond primary key.

DynamoDB Indexes

Identical to primary key

Free of additional cost

Reduces write performance

Allows querying on non-primary attributes

What does S3 Lifecycle Management enable?

Lifecycle Management:

  • Automatically transition objects between storage classes
  • Move infrequent data to cheaper storage
  • Set rules for object expiration
  • Optimize storage costs
  • Reduce manual management overhead

S3 Lifecycle Rules

Manually move objects

Automatically transition objects between storage classes

Never delete old objects

Store everything in Standard class

What’s the maximum number of read replicas Amazon Aurora supports?

Amazon Aurora supports up to 15 read replicas, allowing you to significantly scale your read operations. These replicas benefit from:

  • Near-instantaneous replication across replicas
  • Minimal performance impact on the primary instance
  • Efficient distribution of read workloads

This setup enables horizontal scaling for applications with heavy read demands.

Learn more about Aurora Read Replicas

Limited to a single read replica

No read scaling possible

Supports up to 15 read replicas

Unlimited read replicas

What encryption capabilities does RDS provide?

RDS Encryption Features:

  • Encrypt data at rest using KMS
  • Encrypt data in transit using SSL/TLS
  • Enable encryption during database creation
  • Protect sensitive information
  • Compliance with security standards

RDS Encryption Options

Encrypt data at rest and in transit

Encryption is optional

No encryption available

Only encrypt specific columns

What is the primary use of DynamoDB Streams?

DynamoDB Streams:

  • Capture item-level changes
  • Enable event-driven architectures
  • Trigger Lambda functions
  • Support cross-region replication
  • Provide near real-time data movement

DynamoDB Streams Overview

Store additional data copies

DynamoDB credits for Green Vendors

Increase write performance

Capture item-level changes for event-driven architectures

Alternative to Global Secondary Indexes

Best method for uploading large files to S3?

Multipart Upload Benefits:

  • Handle large files efficiently
  • Resume interrupted uploads
  • Parallel upload of file parts
  • Recommended for files > 100MB
  • Improved network reliability

S3 Multipart Upload

Always use single PUT request

Use Multipart Upload for large files

Compress before uploading

Split manually before upload

What’s the most cost-effective approach for storing 1PB of data with 20% accessed daily, 30% monthly, and 50% yearly?

Optimal Storage Strategy:

  • 20% in S3 Standard for daily access
  • 30% in S3 Standard-IA for monthly access
  • 50% in Glacier for yearly access

This approach optimizes costs while maintaining appropriate access patterns.

Cost Considerations:

  • Storage pricing per GB
  • Retrieval costs
  • Access patterns
  • Transition costs

S3 Standard for all data

Always use the cheapest storage

Mix storage classes based on access patterns

Store everything in Glacier

A DynamoDB table has a provisioned read capacity of 100 RCUs. How many strongly consistent reads of 4KB items can be performed per second?

Understanding DynamoDB consistency models is crucial:

  • 1 RCU = 1 strongly consistent read/second for items up to 4KB
  • 1 RCU = 2 eventually consistent reads/second for items up to 4KB

Therefore:

  • 100 RCUs = 100 strongly consistent 4KB reads/second
  • 100 RCUs = 200 eventually consistent 4KB reads/second

Choose consistency models based on:

  • Application requirements
  • Cost considerations
  • Performance needs
  • Data freshness requirements

100 reads per second

50 reads per second

200 reads per second

Unlimited reads per second

In an Aurora cluster with multiple read replicas, what happens during an automatic failover when the primary instance fails?

Aurora Failover Process:

  1. Detects primary instance failure
  2. Chooses an Aurora Replica based primarily on failover priority tier
  3. Uses instance characteristics as tie-breakers when priorities match
  4. Updates cluster endpoint automatically

Best Practices:

  • Maintain multiple replicas across AZs
  • Configure promotion tiers intentionally
  • Use cluster endpoint in applications
  • Test failover scenarios regularly

Manual intervention required

Requires application reconfiguration

Always fails over to oldest replica

Automatic promotion based on failover priority tier

As of late 2020, what consistency model does S3 provide for all operations?

S3 Consistency Model:

  • Strong read-after-write consistency for all operations
  • Applies to PUTs and DELETEs
  • No need for workarounds previously used
  • No additional cost

Impact:

  • Simplified application logic
  • No need for consistency checks
  • Reliable immediate reads after writes
  • Improved application reliability

Only for new objects

Strong consistency for all operations

Eventually consistent for updates

Depends on region

How does DynamoDB’s TTL feature handle item deletion?

DynamoDB TTL Characteristics:

  • Background process monitors TTL attribute
  • Expired items are deleted on a best-effort schedule, typically within a few days
  • No additional cost for TTL
  • Deleted items appear in streams

Use Cases:

  • Session management
  • Log expiration
  • Temporary data cleanup
  • Regulatory compliance

Deletes items immediately at expiration

Requires manual deletion trigger

Background deletion with best-effort timing

Expires items but keeps them stored

What’s the key consideration when relying on Aurora Serverless for handling sudden traffic spikes?

Aurora Serverless Scaling:

  • Aurora Serverless v2 scales capacity in fine-grained ACU increments
  • Scaling speed depends on current capacity and min/max ACU settings
  • Supported versions can auto-pause at 0 ACUs when configured
  • Billing per-second based on ACUs

Best Practices:

  • Set minimum capacity high enough for sudden spikes on critical workloads
  • Monitor scaling events
  • Keep connection management in mind

Scaling speed depends on current and configured capacity

Scales instantly on demand

Only scales at preset intervals

Manual scaling only

Wow, that adventure got deep in the weeds! 🚀☁️ I hope you enjoyed the journey, and maybe even learned a thing or two about AWS Storage Services.

Check out more of Dan’s challenges! 🧠

Legal: This quiz is for educational purposes only. All trademarks & copyrights are property of their respective owners, especially the big guys.

Read the original on danlevy.net

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.