Quick reference for AWS/cloud interview questions organized by company and topic. Click on any question to expand details.
Aurora vs RDS - Database
Problem Statement
What’s the difference between Amazon Aurora and Amazon RDS?
Key Difference
RDS is AWS’s managed relational database service — it runs several engines (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, and Aurora). Aurora is AWS’s own cloud-native database engine (MySQL/PostgreSQL-compatible) that runs inside RDS, built for higher performance and availability.
| RDS (MySQL/Postgres/etc.) | Aurora | |
|---|---|---|
| Performance | Standard engine performance | Up to 5x MySQL, 3x PostgreSQL throughput |
| Storage | Fixed, manually provisioned | Auto-scales in 10GB increments up to 128TB |
| Replication | Async, replica lag can be seconds | 6 copies across 3 AZs, <10ms replica lag |
| Read Replicas | Up to 5 | Up to 15 |
| Failover | ~60-120s | ~30s or less |
| Cost | Cheaper | ~20% more than RDS for same instance class |
When to Use Which
- RDS: need a specific engine (Oracle/SQL Server) or lower cost, standard workloads
- Aurora: need higher throughput, faster failover, or serverless auto-scaling
Companies: Nike
Do You Need RDS to Run MySQL? - Database
Problem Statement
Can you run MySQL without RDS? What’s the trade-off?
Answer
Yes — you can self-host MySQL on a plain EC2 instance. RDS is a convenience layer, not a requirement.
| Self-Managed MySQL (EC2) | RDS/Aurora MySQL | |
|---|---|---|
| Setup | You install/configure everything | Provisioned in minutes |
| Patching | Manual | Automated (managed window) |
| Backups | You script/schedule them | Automated snapshots + point-in-time recovery |
| High Availability | You build Multi-AZ/replication yourself | Built-in Multi-AZ failover |
| Monitoring | You wire up CloudWatch/exporters | Built-in Performance Insights |
| Cost | Cheaper (just EC2 + EBS) | Higher (managed service premium) |
| Control | Full OS/DB-level access | Limited — no OS access, some config restricted |
When Self-Managed Makes Sense
Very tight budget, need OS-level access/custom extensions, or a very specific tuning requirement RDS doesn’t expose. For most production workloads, RDS/Aurora’s operational simplicity outweighs the cost premium.
Companies: Nike
What is Amazon Aurora? - Database
Problem Statement
What is Aurora and what makes it different from a regular managed MySQL/PostgreSQL database?
Answer
Aurora is AWS’s cloud-native relational database engine, wire-compatible with MySQL and PostgreSQL, designed for high performance and availability.
Key Features
- Distributed, self-healing storage: auto-scales up to 128TB in 10GB increments, data replicated 6 ways across 3 Availability Zones
- Fast failover: typically under 30 seconds
- Up to 15 read replicas with single-digit millisecond replica lag
- Aurora Serverless v2: compute auto-scales up/down per-second based on load — good for unpredictable/spiky workloads
- Backtrack: rewind the database to an earlier point in time without restoring from backup
- Global Database: replicate across AWS regions with <1s lag for disaster recovery/low-latency global reads
Companies: Nike
Why EventBridge Over SNS/SQS/Kafka? - Messaging
Problem Statement
Why choose EventBridge for an integration instead of SNS, SQS, or Kafka?
Comparison
| Service | Pattern | Best For |
|---|---|---|
| EventBridge | Event bus with content-based routing | Loosely-coupled event-driven architecture, native integration with 200+ AWS services & SaaS partners, schema registry |
| SNS | Pub/Sub fan-out | Simple broadcast to multiple subscribers, no advanced routing |
| SQS | Point-to-point queue | Reliable decoupling between two services, built-in retry + DLQ |
| Kafka/Kinesis | High-throughput event streaming | Real-time analytics, replayable event log, very high volume |
Why EventBridge Specifically
- Rules engine: route events to different targets based on event content, without writing routing code
- Schema registry: auto-discovers and versions event schemas
- SaaS integrations: native connectors to third-party SaaS (Datadog, Zendesk, etc.) — SNS/SQS don’t have this
- Decoupled by default: producers don’t need to know about consumers at all (unlike SQS’s tighter producer→queue coupling)
Use SQS/Kafka instead when you need guaranteed ordering, replay, or very high throughput — EventBridge is optimized for routing, not raw throughput.
Companies: Nike
Scaling a Database Up and Down - Database
Problem Statement
How do you scale a database up (for more load) and down (to save cost) — and can you actually scale down?
Vertical Scaling (Up/Down) — Instance Class
Change the DB instance type (e.g., db.r5.large → db.r5.xlarge and back). Yes, scaling down is fully supported — same mechanism as scaling up, just picking a smaller class.
- RDS/Aurora Provisioned: instance class change causes a brief interruption (or none, with Multi-AZ — failover to the resized standby)
- Aurora Serverless v2: scales compute up/down automatically, per-second, with no manual step and no downtime — scales close to zero when idle
Horizontal Scaling (Reads) — Read Replicas
Add/remove read replicas to handle read traffic; doesn’t help write throughput since writes still go to a single primary.
Scaling Writes (the hard part)
A single primary is the ceiling for write throughput. Options: sharding, or Aurora Limitless Database (auto-sharded writes).
Monitoring to Decide
Watch CloudWatch metrics — CPU utilization, DB connections, read/write IOPS — to trigger scale up/down decisions (manually or via Aurora Serverless auto-scaling).
Companies: Nike
What is AWS SQS? - Messaging
Problem Statement
What is Amazon SQS, and how have you used it in a project?
Definition
SQS (Simple Queue Service) is a fully managed message queue used to decouple and scale microservices — producers push messages, consumers poll and process them asynchronously.
Queue Types
| Type | Ordering | Delivery | Throughput |
|---|---|---|---|
| Standard | Best-effort (not guaranteed) | At-least-once (possible duplicates) | Nearly unlimited |
| FIFO | Strict order | Exactly-once | Up to 3,000 msg/sec (with batching) |
Example Usage
Order Service publishes an OrderCreated message to an SQS queue → Inventory/Notification services poll the queue and process independently. If processing fails, the message becomes visible again after the visibility timeout; after N failed attempts it’s routed to a Dead Letter Queue (DLQ) for investigation instead of being retried forever.
// Producer
sqsClient.sendMessage(SendMessageRequest.builder()
.queueUrl(queueUrl)
.messageBody(orderJson)
.build());
// Consumer
List<Message> messages = sqsClient.receiveMessage(
ReceiveMessageRequest.builder().queueUrl(queueUrl).maxNumberOfMessages(10).build()
).messages();
Companies: Nike