
Show Notes
In this episode, we provide an overview of Amazon Aurora, a relational database solution on AWS. We discuss its unique capabilities like distinct storage architecture for better performance and faster recovery. We cover concepts like Aurora clusters, reader and writer instances, endpoints, and global databases. We also compare the serverless versions V1 and V2, noting that V2 is more enterprise-ready while V1 scales to zero. We touch on billing and additional features like the data API, RDS query editor, and RDS proxy. Overall, Aurora is powerful and scalable but not trivial to use at global scale. It's best for serious enterprise use cases or variable traffic workloads.
💰 SPONSORS 💰
AWS Bites is brought to you by fourTheorem. If you need someone to work with you to build the best-designed, highly available database on AWS, give us a shout. Check us out on fourtheorem.com!
In this episode, we mentioned the following resources:
Amazon Relational Database Service (RDS): https://aws.amazon.com/rds/
Amazon RDS Aurora: https://aws.amazon.com/rds/aurora/
RDS Aurora Serverless: https://aws.amazon.com/rds/aurora/serverless/
Cost calculator for cost comparison: https://calculator.aws/#/estimate?id=4f950b71be8b31438dd12c7aebc9beae3f88179e
Cloudonaut podcast and blog post about Aurora Serverless V2: https://cloudonaut.io/review-aurora-serverless-v2/
Do you have any AWS questions you would like us to address? Leave a comment here or connect with us on X, formerly Twitter: - https://twitter.com/eoins - https://twitter.com/loige
More from AWS Bites
What if you could make your AWS containers start up to 10× faster, without changing your application code? In this episode of AWS Bites, we explore practical ways to speed up container startup on AWS, from smaller Docker images and multi-stage builds to smarter compression with gzip and zstd. We discuss the trade-offs between download size and decompression speed, and why optimizing container images is still the best place to start. Then we dive into SOCI (Seekable OCI), an AWS-developed open-source technology that enables lazy loading of container images. Instead of waiting for every image layer to download and unpack, SOCI lets containers start sooner and fetch the files they need on demand. We explain how this works under the hood, including containerd snapshotters, FUSE, zTOCs, compressed spans, and HTTP Range requests. We also explore SOCI support across ECS Fargate, SageMaker, EKS, and ECS on EC2. We share the results of our own open-source benchmark covering 44 configurations and 1,320 ECS task executions. We compare small and large container images, gzip versus zstd, SOCI versus traditional image pulling, ARM64 versus x86-64, and Fargate versus EC2 running Amazon Linux 2023 or Bottlerocket. In some cases, SOCI delivered up to 10× faster container startup for large images on Fargate! Finally, we explain how to create and publish SOCI indexes, explore the tools involved, and discuss when these optimizations are worth adopting. Most importantly, we explain why time to useful work matters more than container startup time alone. Resources mentioned Container startup benchmark: source code and interactive results The hidden design compromises of Docker layers Building x86 Rust containers from Apple Silicon AWS deep dive: Lazy loading container images with SOCI SOCI Snapshotter on GitHub AWS SageMaker SOCI documentation ECS roadmap: SOCI snapshotter support ECS roadmap: containerd support
We take a deep dive into Amazon S3 Files, AWS's exciting new managed file system backed by S3! We kick things off by exploring why S3 isn't a traditional file system, covering everything from the lack of true directories and atomic renames to immutable objects and POSIX access control differences. We then walk through the existing solutions people have used to bridge that gap, like S3FS FUSE, MountPoint for S3, FSx for Lustre, and Storage Gateway. From there, we get into the heart of the episode: how S3 Files works, how to set it up, and how it uses EFS under the hood as a caching layer. We share our own real-world benchmarking results comparing S3 Files against various EFS configurations across Lambda and Fargate, and we discuss a real customer project where we put S3 Files to the test. We also cover the important caveats like eventual consistency, the 60-second write-back delay, the lack of cross-account bucket support, and the cost model so you can make an informed decision. Resources mentioned Episode 124: S3 Performance Episode 95: Mounting S3 as a Filesystem Amazon S3 FAQs: S3 Files fourTheorem S3 Files demo code on GitHub Amazon documentation: Understanding how synchronization works Sponsor Thanks to fourTheorem for powering AWS Bites. We help teams build cloud systems that are simple, scalable, and cost effective. Visit fourtheorem.com. Chapters 00:00 Introduction: Why S3 is amazing but not a file system, and what S3 Files promises to solve 01:47 Why S3 is not a file system: no true directories, immutable objects, no atomic renames, expensive listings, and POSIX differences 05:23 Existing solutions for mounting S3 as a file system: S3FS FUSE, Python fsspec, Hadoop S3A, MountPoint, FSx for Lustre, File Cache, and Storage Gateway 07:16 How S3 Files works: NFS-based access, EFS caching layer, streaming from S3, and supported compute services like EC2, ECS, EKS, and Lambda 09:49 Setting up S3 Files: buckets, file system resources, import and expiration rules, mount targets, access points, VPC requirements, and NFS port configuration 13:42 S3 Files performance numbers from AWS documentation: throughput, IOPS, latency figures, and why real-world benchmarking is recommended 15:39 Benchmarking S3 Files vs EFS configurations on Lambda and Fargate: small and large file reads and writes, memory/CPU impact, and key findings 19:48 Downsides and limitations: NFS only, no hard links, no atomic renames, eventual consistency, the 60-second write-back delay, and large-scale rename performance warnings 23:05 Real-world project experience: a SaaS multi-tenant architecture, cross-account bucket limitation discovered, and how the team worked around it 27:52 Cost breakdown: EFS-equivalent cache pricing, S3 storage costs, reads from cache vs. S3 directly, and how S3 access tiers still apply 29:50 Final recap and take: when S3 Files shines, when to be cautious, mixed access pattern warnings, and an invitation to share your own experiences 33:42 Closing Send us your AWS questions Do you have any AWS questions you would like us to address? Leave a comment here or connect with us on X/Twitter, Bluesky, or LinkedIn: Eóin: Bluesky | LinkedIn Luciano: X/Twitter | Bluesky | LinkedIn
If you’re curious about building with LLMs, but you want to skip the hype and learn what it takes to ship something reliable in production, this episode is for you.We share our real-world experience building AI-powered apps and the gotchas you hit after the demo: tokens and cost, quotas and throttling, IAM and access friction, marketplace subscriptions, and structured outputs that do not break your JSON parser.We focus on Amazon Bedrock as AWS’s managed inference layer: how to get started with the current access model, how to choose models, how pricing works, and what to watch for in production.We also go deep on structured outputs: constrained decoding, schema design that improves output quality, and how to avoid “grammar compilation timed out”.
AWS Lambda is fantastic for small, stateless code on demand. But when your “function” starts looking like a workflow (retries, backoff, long waits, human approvals, callbacks), classic Lambda patterns can feel like a fight: 15-minute max runtime, no built-in state, and orchestration glue everywhere (Step Functions, queues, schedules, and state you did not want to own). In this episode of AWS Bites, Eoin and Luciano explore AWS Lambda Durable Functions, announced at re:Invent 2025. It’s still Lambda (same runtimes and scaling), but with durable execution superpowers: named steps, automatic checkpointing, and the ability to suspend and resume from a safe point without redoing completed work. We unpack the replay/resume model under the hood, when this approach shines, and the gotchas (determinism, idempotency, replay-aware logging, debugging resumed runs). To make it real, we share how we rebuilt PodWhisperer v2 using Durable Functions to orchestrate a GPU-powered WhisperX pipeline, LLM refinement, speaker naming, and caption generation.
AWS just made Lambda… less serverless. Lambda Managed Instances (Lambda MI) brings managed EC2 capacity into Lambda, and it changes the rules: environments stay warm, a single environment can handle multiple concurrent invocations, and scaling becomes proactive and asynchronous instead of “spin up on demand when traffic hits.”In this episode of AWS Bites, Eoin and Luciano break down what Lambda MI unlocks (and what it costs): fewer traditional cold starts, but a new world of capacity planning, headroom, and potential throttling during fast spikes. We compare it to Default Lambda, explain how the new scaling signals work, and what “ACTIVE” really means when publishing can take minutes on a new capacity provider.To make it real, we built a video-processing playground: an API, a CPU-heavy processor, and a Step Functions workflow that scales up before work and back down after. We share the practical lessons, the rough edges (regions, runtimes, mandatory VPC, minimum 2 GB + 1 vCPU, concurrency pitfalls), and the pricing reality: requests + EC2 cost + a 15% management fee.