In today’s digital era, organizations increasingly seek cloud-based solutions to streamline operations and improve efficiency.AWS migration has emerged as a popular choice, allowing businesses to leverage the power of Amazon Web Services (AWS) for their various needs. One critical aspect of AWS migration is the seamless transition of Oracle databases to the cloud. Oracle databases have been the foundation of classic 3-tier architecture for server-side applications that was dominant in the last decade. This is where custom RDS for Oracle comes into play.
What is Custom RDS for Oracle
Amazon RDS is a popular, managed database service, available in multiple engines (including Oracle, SQL Server, MySQL, and PostgreSQL). It is a secure, fault-tolerant, and highly scalable solution.RDS is a fully managed service, and AWS has automated it so that it is self-healing, and auto-scaling does not need any kind of console access or access to underlying OD.
However, a DB environment and console access are needed for several packaged legacy applications to run successfully on the cloud. AWS has provided Amazon RDS Custom for Oracle for such applications and situations. It is a managed database service for legacy, custom, and packaged applications that require access to the underlying OS and DB environment. You still manage it from the RDS console and AWS CLI like regular RDS, but it solves the challenge of Database customizations.
Why is it needed?
The common need for access to underlying OS or database customization arises when a package application needs a database to run using a privileged user account. Other situations include
- Install custom database and OS patches and packages.
- Configure specific database settings.
- Configure file systems to share files directly with their applications.
Traditionally, to overcome access to underlying OS or tackle a need for DB customizations, Architects and DBAs are generally created. Non-standards EC2-based solutions and many ignored the need for fault tolerance and scalability. AWS Custom RDS for Oracle addresses these design flaws and provides a fully managed, secure m, scalable, and fault-tolerant Oracle database
How does it work
The following figure provides a high-level overview of the Custom RDS for Oracle.
The custom RDS setup process creates and Launches an EC2 machine within customer VPC as well as creates a bucket named do-not-delete-rds-custom-xxx where you provide installation files for Oracle software, and AWS creates a custom engine version (CEV) to install all the required software.
The setup process creates a DB endpoint URL that does not change even if AWS RDS automation changes the host in case of failure or scaling up. The setup process also creates the required size EBS volume and attaches a private, public, and elastic IP with EC2 underlying RDS. Cloud watch-based monitoring and alert system is set up along with scheduled snapshot-based backup. The SSH key to underlying OS access is stored in the Secrets manager, where Admins can retrieve the key, access the OS Console, and customize it. As long as this customization script is part of the custom engine version (CEV) install process, they get reapplied where AWS needs to host replacement in case of failure.
What are any significant Limitations?
To ensure Quality of service, AWS has created support parameters limitation, and it is generally the customer’s responsibility that custom RDS operate within these boundaries. Please review https://rb.gy/w855h6
Does it cost more than regular RDS?
Custom RDS prices are comparable to or slightly above regular RDS when comparing Bring-You-License models.
Here is a sample pricing for a small custom RDS for Oracle deployed in a single availability zone that is generally good for testing and development purposes
Instance db.m5.x large Single-AZ instance in the US East (N. Virginia) Region using the On-Demand purchase model.
1 db.m5.xlarge Single-AZ instance x $0.410/hour = $0.410
Hours in month: 730
Total: $0.410 * 730 = $299.30
Regular RDS with the same instance type as BYOL, on-demand cost for a month, would be
1 db.m5.xlarge Single-AZ instance x $0.342/hour =$.342
Hours in month: 730
Total: $0.342 * 730 = $249.66