Oracle RDS Custom – Read Replica

Oracle RDS Read Replicas on AWS provide enhanced scalability and performance by allowing you to create up to five read-only copies of your primary Oracle DB instance. These replicas asynchronously replicate data from the source DB, making them ideal for read-heavy workloads, analytics, and disaster recovery scenarios. They help offload read traffic and can be promoted to standalone databases if needed.

Lets create Oracle RDS read replica and see what is behind the curtain. I will use Oracle RDS Custom – to be able to login to the underlying machine. Creating Oracle RDS custom is easy – first you must create (Custom Engine Version) – check here for details, then using this CEV, Oracle RDS Custom database can be created. You can find more information here.

 

Oracle RDS Multi-AZ Failover: High Availability in AWS

Amazon RDS Multi-AZ deployments enhance high availability and reliability for database instances by automatically replicating data to a standby instance in a different Availability Zone (AZ). In the event of a failure, AWS performs an automatic failover to the standby, minimizing downtime and ensuring business continuity. This setup is essential for mission-critical applications that require seamless database availability and disaster recovery.

Lets see how much does it take to perform Oracle RDS database failover? To find out, I created a small Oracle RDS database and tested failover with AWS CLI.

Deploy Oracle on ECS Fargate

If you want auto-scaling and managed containers, AWS ECS has to be used. It has many advantages and some of the main ones are
– Easier Oracle deployment without full VM installations
– More flexibility compared to RDS (can run XE, SE2, or Enterprise)
– Good for cost savings (shutdown when not in use)
– Enables containerized workflows on AWS
– Works well with ECS, Fargate, or Kubernetes for scalability

Lets go through the steps and see how it works.

Add Oracle XE Docker Image to ECR Repository

Here’s a short description how to get an Oracle XE Docker image from the Oracle Container Registry (https://container-registry.oracle.com) and add it to ECR Repository.

1. Prerequisites
Docker must be installed and running on your local machine.
AWS CLI must be configured with the necessary permissions to access ECR
Oracle account is needed to access the Oracle Container Registry.

Docker and AWS CLI can be installed on your local machine or if you prefer on small EC2 instance with free tier eligible. Here EC2 instance will be used.
How to install docker on EC2 – check here.

Deploy Oracle on Docker in EC2

Deploying Oracle Database inside a Docker container on AWS has the following advantages –

– Easier Oracle deployment without full VM installations.
– More flexibility compared to RDS (can run XE, SE2, or Enterprise).
– Good for cost savings (shutdown when not in use).
– Enables containerized workflows on AWS.
– Works well with ECS, Fargate, or Kubernetes for scalability.

And of course it is good possibility to play a bit with Oracle on AWS and to refresh your skills with one simple hands-on exercise.

Running Oracle on Docker is simple and gives you full control over your container.

Oracle RDSCustom – Performance Analysis of AWS db.m5 Instances: Sequential & Random Read/Write Benchmarks

This post presents the results of IOPS performance testing for Oracle running on Custom RDS in AWS. The tests were conducted using the fio benchmarking tool across three instance types: db.m5.large, db.m5.xlarge, and db.m5.4xlarge. The storage used was General Purpose SSD (gp2) volumes. The database remained active but was not under any load during the tests.
Here are Step-by-Step guide to creating a CEV and deploying an Oracle Database on RDS Custom.

Oracle Linux on EC2

AWS offers different preconfigured OS images (Amazon Machine Images or AMI) to be used by launching EC2 instance – Amazon Linux, Ubuntu, RedHat, SUSE, but still not Oracle Linux(OL).
This doesn’t mean that it is not possible to have own EC2 instance running OL – here’s how this can be done.

Amazon RDS Custom for Oracle – create database

After creating CEV (Custom Engine Version) here, we can create our RDS Custom Oracle database.
Before creating the database, the environment for RDS Custom database must be set.

Detailed description here

Amazon RDS Custom for Oracle – create CEV

AWS Custom RDS is a feature of AWS RDS designed to provide more flexibility for running database workloads that require specific configurations not supported by the standard managed RDS offerings. It is especially useful for applications that need custom database software, extensions, or configurations that go beyond the capabilities of the default RDS configurations. One of the main advantages is that it is giving you administrative access to both the database and the underlying operating system.

In order to use RDS Custom and to create a database, CEV(Custom Engine Version) is required. CEV is a feature of RDS Custom, designed to allow customers to create and manage custom database engine versions.

I will create now a CEV for RDS Custom for Oracle. Here is what has to be done.