AWS Day 31: Configuring a Private RDS Instance for Application Development

"I'm a 3rd-year Computer Engineering student at Marwadi University with skills in C++, web development (MERN stack), and DevOps tools like Kubernetes. I contribute to open-source projects and share tech knowledge on GitHub and LinkedIn. I'm learning cloud technologies and app deployment. As an Internshala Student Partner, I help others find jobs and courses." now currently focusing on #90DaysOfDevops
Introduction
During Day 31 of the KodeKloud 100 Days of Cloud Challenge, I worked with Amazon RDS (Relational Database Service) by provisioning a private MySQL database instance.
In many production environments, databases should never be directly exposed to the internet. Instead, they are deployed inside private subnets where only trusted applications can access them. This approach improves security while allowing applications to communicate with the database within the VPC.
In this lab, the objective was to create a private MySQL RDS instance using the AWS Free Tier, enable storage autoscaling, and ensure the database reached the Available state before completing the task.
Why Use Amazon RDS?
Managing databases manually can quickly become time-consuming. Tasks such as backups, software updates, monitoring, and scaling require continuous effort.
Amazon RDS simplifies database management by handling these operational tasks while allowing developers to focus on building applications.
Some key benefits of Amazon RDS include:
Automated backups
High availability options
Storage autoscaling
Easy monitoring with CloudWatch
Managed patching and maintenance
Improved security through private deployments
For this lab, MySQL 8.4.x was selected because it is one of the most widely used relational database engines.
Step 1: Start Creating the RDS Database
I opened the Amazon RDS Console and clicked Create Database.
Instead of choosing the Easy Create option, I selected Standard Create, which provides full control over all database settings.
For the template, I selected Free Tier to keep the deployment within AWS free-tier eligible resources.
Step 2: Configure the Database Engine
Next, I configured the database engine.
I selected:
| Setting | Value |
|---|---|
| Engine | MySQL |
| Version | 8.4.x |
Step 3: Configure the DB Instance
In the database settings, I entered the required instance details.
| Setting | Value |
|---|---|
| DB Instance Identifier | datacenter-rds |
| Instance Class | db.t3.micro |
Since this was a development environment, the db.t3.micro instance type was sufficient and eligible for the AWS Free Tier.
Step 4: Enable Storage Autoscaling
To make the database storage more flexible, I enabled Storage Autoscaling.
I configured the maximum storage threshold to:
50 GB
This allows Amazon RDS to automatically increase storage if the allocated capacity becomes full, helping prevent storage-related issues without requiring manual intervention.
Step 5: Review and Launch the Database
After verifying all the configuration settings, I reviewed the database configuration and clicked Create Database.
Provisioning an RDS instance usually takes several minutes because AWS needs to allocate compute resources, storage, networking, and configure the database engine.
Step 6: Verify the Database Status
Once the deployment completed, I returned to the RDS Dashboard and confirmed that the instance status had changed to:
Available
This confirmed that the database was successfully provisioned and ready for application use.
What I Learned
This lab gave me practical experience with provisioning a managed relational database using Amazon RDS.
A few important takeaways from this exercise:
RDS removes the operational burden of managing database servers.
Deploying databases privately is a security best practice.
Storage Autoscaling helps prevent storage exhaustion without manual intervention.
Choosing the Free Tier template is useful for development and learning environments.
Although the setup was straightforward, it demonstrated how AWS simplifies database management while still allowing flexibility through advanced configuration options.
Conclusion
Day 31 introduced another important AWS service by provisioning a private Amazon RDS MySQL instance.
Through this lab, I learned how to deploy a managed database using the Free Tier, configure MySQL 8.4.x, enable Storage Autoscaling, and verify that the instance was successfully created.
As I continue the KodeKloud 100 Days of Cloud Challenge, each lab is helping me build practical experience with core AWS services that are commonly used in real-world cloud environments.




