Skip to main content

Amazon Aurora — Overview

Amazon Aurora is part of the RDS family but uses a cloud-native architecture that separates compute from a distributed, shared storage layer. Aurora is available in two compatibility lines — Aurora MySQL and Aurora PostgreSQL — and each line offers both provisioned and serverless variants. While compute and scaling behavior differ between provisioned and serverless Aurora, the core security concepts remain the same: VPC, KMS, IAM, Secrets Manager, security groups, and monitoring. At a high level, traditional RDS uses instance-level or database-level replication (primary + replicas or Multi‑AZ primary/standby), whereas Aurora implements replication in the storage layer. The diagram below contrasts a typical RDS PostgreSQL deployment (left) with Aurora PostgreSQL (right), where the storage subsystem handles replication.
A side-by-side architecture diagram comparing RDS PostgreSQL and Amazon Aurora PostgreSQL. The left shows a primary/secondary EBS setup with synchronous replication, and the right shows Aurora’s distributed storage cluster with multiple storage nodes and separate writer/reader instances across availability zones.
Key architecture points
  • Compute (instances) is separated from a distributed, shared storage layer.
  • Replication is performed at the storage-segment level rather than at the database instance level.
  • Aurora divides data into 10 GB segments and replicates each segment six ways across three Availability Zones (AZs) for high durability.
  • Aurora supports many read replicas (commonly up to 15 readers for read scaling, depending on engine and version).
Aurora divides the volume into 10 GB segments and stores each segment six ways across three AZs. This distributed, storage-level replication is a core Aurora design difference versus classic RDS.

Authentication and credential management

Aurora supports multiple authentication/credential models:
  • Native database credentials (username/password).
  • IAM database authentication (where supported by the engine and client).
  • Integration with AWS Secrets Manager for secure storage, retrieval, and rotation of credentials.
Using Secrets Manager with built-in RDS rotation is the recommended pattern for production systems because it enables automated credential rotation without application code changes. Authentication options at a glance Operational console screenshot: the cluster shows Secrets Manager integration and cluster/instance placement across AZs.
An AWS RDS Aurora architecture diagram showing a VPC across two Availability Zones with public and private subnets containing NAT gateways, bastion hosts, and an auto-scaling group. The private subnets show Aurora DB writer and reader nodes behind a security group, with integrations like Amazon SNS, CloudWatch, and AWS KMS.
Best practices
  • Prefer Secrets Manager with RDS rotation for applications.
  • Use IAM authentication where supported to avoid long-lived DB credentials.
  • Ensure applications retrieve secrets securely (via SDKs/roles) and that secrets are never embedded in source code or environment variables without protection.
Example: create an Aurora cluster with KMS encryption (CLI)

Networking and connectivity

Aurora instances run in your VPC and follow standard VPC constructs:
  • Launch instances into specific subnets (private subnets are recommended for databases).
  • Use security groups to permit traffic only from required application servers or services.
  • Network ACLs apply at the subnet level and should be considered for defense in depth.
  • Public accessibility can be enabled or disabled per cluster/instance; production databases should default to not publicly accessible.
Console example highlighting the public accessibility setting:
A slide showing an AWS RDS Aurora console screenshot with a database cluster and a selected reader instance, and the Connectivity & Security panel where "Public accessibility: Yes" is circled. The left side of the slide has the "RDS Aurora" title and a note about networking, security groups, and public accessibility.
Do NOT expose production databases to the public internet. If public access is required for a limited use case, strongly restrict source IP ranges and use additional controls (VPN, bastion hosts, or proxy) and strict security group rules.
Recommended network isolation
  • Place Aurora clusters in private subnets.
  • Co-locate application tiers in the same VPC and use security groups to allow only necessary ports/protocols.
  • Use NAT gateways or NAT instances for outbound access from private subnets when required.
Aurora supports interface VPC endpoints (AWS PrivateLink) for private connectivity to control-plane or data-plane APIs. Gateway endpoints are only available for S3 and DynamoDB. Common uses for interface endpoints:
  • Private connectivity to the Aurora control plane and related AWS services without traversing the public internet.
  • Apply endpoint policies and security-group rules to limit what resources can access the endpoint.
A slide diagram of AWS RDS Aurora showing a VPC architecture with availability zones, subnets and EC2 instances, plus gateway and interface VPC endpoints connecting to services like Amazon S3 and DynamoDB. The caption notes Aurora supports VPC (interface) endpoints.

Monitoring, auditing, and detection

Aurora provides multiple options to monitor, audit, and detect suspicious activity:
  • Amazon CloudWatch metrics and alarms for health and performance.
  • AWS CloudTrail for control-plane auditing (create/delete/modify).
  • Enhanced Monitoring for OS-level metrics (RDS process, CPU, memory).
  • Performance Insights for query-level performance analysis and bottlenecks.
  • Aurora Database Activity Streams for near-real-time activity streaming to SIEMs or analytics.
A presentation slide titled "RDS Aurora" showing an AWS RDS console screenshot and an architecture diagram illustrating Aurora integrations (Kinesis, S3, KMS) with text saying it supports CloudWatch, CloudTrail, Enhanced Monitoring, and Performance Insights.
Aurora Database Activity Streams
  • Streams database activity in near–real-time for ingestion into downstream monitoring, SIEM, or analytics platforms.
  • Useful for compliance or detecting anomalous SQL activity.
Monitoring checklist

Encryption — at rest and in transit

Aurora supports encryption at rest using AWS KMS (Customer Master Keys). The storage layer uses data keys derived from KMS CMKs to encrypt the underlying segments. For encryption in transit, enable TLS/SSL for client connections and enforce verification of server certificates in client applications. Recommended encryption steps
  • Enable encryption-at-rest by selecting a KMS CMK when creating the cluster.
  • Require TLS/SSL for client connections; configure libraries to validate server certificates.
  • Use Secrets Manager to store credentials and ensure applications retrieve secrets securely and over TLS.
KMS + Aurora example: create a DB cluster with KMS key (see CLI example earlier).
A diagram for RDS Aurora showing customer master keys that generate data keys, which are used to encrypt customer data on multiple Amazon RDS instances. The caption states "Aurora supports encryption both in transit and at rest."

Aurora Serverless

Aurora Serverless decouples compute from storage and provides on-demand scaling of compute capacity. There are two generations:
  • Serverless v1 — can pause during inactivity and scales in Aurora Capacity Units (ACUs).
  • Serverless v2 — provides more granular, near-instant scaling without pausing.
Security model: serverless Aurora uses the same VPC, KMS, IAM, and Secrets Manager integration as provisioned Aurora, but be aware of differences in scaling behavior and connection handling for serverless workloads.
A presentation slide for RDS Aurora showing an architecture diagram of Aurora Serverless with separate compute and storage fleets that automatically scale. The slide notes Aurora Serverless behaves like servered Aurora in terms of security.

RDS Proxy — connection pooling and resiliency

RDS Proxy is a managed proxy service that sits between application clients and your database. It pools and reuses database connections to improve application scalability and resiliency, especially for workloads with many short-lived connections (serverless functions, microservices). How RDS Proxy helps
  • Reduces the total number of direct connections to the database by pooling.
  • Improves failover behavior by holding pooled connections and retrying clients.
  • Integrates with AWS Secrets Manager to retrieve and rotate credentials.
  • Supports IAM authentication and exposes CloudWatch metrics and logs for observability.
Typical proxy architecture (diagram):
A labeled AWS architecture diagram titled "RDS Proxy." It illustrates a Load Test VPC with EC2 workers and an API Gateway connecting to Proxy and No‑Proxy VPCs containing AWS Lambda, Amazon RDS Proxy and Aurora reader endpoints, plus integrations with Secrets Manager, CloudWatch, X‑Ray, STS and IAM.
Integration patterns and security groups
  • Configure RDS Proxy to use Secrets Manager; grant the proxy an IAM role or policy that allows secret retrieval.
  • Use security groups to allow only application subnets or security groups to connect to the proxy endpoint.
  • Ensure the proxy can reach the DB by allowing outbound from the proxy security group to the DB security group.
Security group model (diagram):
A cloud architecture diagram showing an AWS VPC with private and public subnets connecting an Amazon RDS database instance and an EC2 web application via security groups and an RDS Proxy. The slide also includes the caption: "RDS Proxy works off of Security Groups like RDS does."
Example IAM policy snippet for RDS Proxy to access a Secrets Manager secret
Logging and monitoring
  • Enable enhanced logging selectively — it can be helpful for debugging but may impact performance.
  • Monitor CloudWatch metrics exposed by RDS Proxy for connection counts, failovers, and latency.
Typical use cases for RDS Proxy
  • Serverless functions or microservices with spiky connection patterns.
  • Applications that need better failover handling without significant application changes.
  • Centralized credential management using Secrets Manager.
A presentation slide about AWS RDS Proxy showing a checklist of security/monitoring questions (Detection, IAM, Infrastructure, Data, Application, Incident Response). The right side shows an AWS console screenshot of the RDS Proxy "Advanced configuration" with an option to activate enhanced logging and a "Create proxy" button.

Final summary — security checklist for Aurora & RDS Proxy

  • Architecture: Aurora uses storage-layer replication (10 GB segments, 6-way replication across 3 AZs) for durability and read scaling.
  • Authentication: Use IAM and Secrets Manager for short-lived credentials and automated rotation; fall back to native DB users where appropriate.
  • Network: Place databases in private subnets, strictly limit access via security groups, and leverage interface VPC endpoints for private service connectivity.
  • Monitoring & audit: Enable CloudWatch, CloudTrail, Enhanced Monitoring, Performance Insights, and Activity Streams as appropriate for detection and compliance.
  • Encryption: Use KMS CMKs for encryption-at-rest and require TLS for in-transit encryption.
  • RDS Proxy: Use for connection pooling, improved failover behavior, and centralized Secrets Manager integration when application patterns stress direct DB connections.

Watch Video