Introduction
In today’s cloud landscape, managing databases for legacy, custom, and packaged
applications often requires more flexibility than traditional managed database services can
offer. Enter Amazon RDS Custom—a specialised managed database service designed to
bridge this gap for SQL and Oracle databases. Amazon RDS Custom is tailored for
scenarios where access to the underlying operating system and database environment is
crucial. Here’s an in-depth look at what RDS Custom offers, when to use it, and what to
watch out for.
What is Amazon RDS Custom?
Amazon RDS Custom is a managed database service that provides greater control and
flexibility for applications with specific needs. Unlike standard Amazon RDS instances, RDS
Custom is provisioned as EC2 instances, granting users access to the operating system and
database environment. This setup is particularly beneficial for legacy and custom
applications that require non-standard configurations or additional software installations.
Benefits of RDS Custom
Enhanced Control and Flexibility: With RDS Custom, users have the ability to
access and modify the underlying operating system and database environment. This
flexibility allows for custom configurations, installation of additional libraries, and
application of specific patches.
Custom Engine Version: Users can create Custom Engine Versions to preserve
changes made to the database environment. This feature is particularly useful for
ensuring consistency across environments or for maintaining compatibility with
legacy applications.
RDS Advantages: Despite offering more control, RDS Custom still provides the
benefits associated with managed RDS services, such as automated backups,
MultiAZ deployment for high availability, and compatibility with AWS Backup
solutions.
When to Use RDS Custom
RDS Custom is ideal in several scenarios:
Database Requires Additional Libraries: When your application depends on
bespoke or commercial libraries not supported by standard RDS instances.
Debugging Needs: If you need the ability to debug database issues directly on the
host system.
Legacy Applications: For running packaged legacy applications that require specific
configurations or additional software components.
When to Avoid RDS Custom
RDS Custom may not be the best fit if:
Standard Applications: Your databases do not require custom libraries or special
configurations beyond what is offered by standard RDS instances.
Simplicity Preferred: If your database management requirements are
straightforward and do not necessitate deep access to the underlying system.
Considerations and Best Practices
Before diving into RDS Custom, there are key considerations to keep in mind:
IAM Roles and Permissions: Ensure IAM Role and Instance Profile names for RDS
Custom start with the prefix "AWSRDSCustom-". Specific IAM permissions are
required, and AWS provides a CloudFormation template to help set these up.
Network Configuration: RDS Custom uses TCP Port 1120 and AWS SQS for
MultiAZ communication. Proper network configuration is essential for maintaining
high availability.
Secrets Management: Unlike standard RDS instances, RDS Custom does not
integrate with AWS Secrets Manager for password rotation. You’ll need to manage
and store secrets independently.
Custom Engine Versions: When creating a Custom Engine Version, ensure
compatibility with your SQL or Oracle version. For instance, newer SQL Windows
2022 AMIs might not be compatible with certain Custom Engine Versions.
Timezone and System Changes: Avoid changing the timezone or making other
system-level modifications after provisioning. While RDS Custom provides access to
the host, it does not imply freedom to alter RDS-specific configurations.
Final Thoughts
Amazon RDS Custom fills a unique niche in the AWS ecosystem, offering a blend of
managed service benefits and deep system access. It’s particularly useful in environments
where legacy applications or custom configurations are necessary. While the setup process
may seem complex initially, it becomes manageable with experience, especially when
employing Infrastructure as Code practices. Engineers working with RDS Custom need to be
well-informed about its capabilities and limitations to maximise its benefits effectively.
Whether you're managing legacy applications or require specialised configurations, RDS
Custom provides the flexibility and control needed to meet your specific database
management needs.