RDS in AWS

Introduction to RDS

RDS stands for Relational Database Service.

RDS is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. 

RDS is a distributed relational database service and gives you high availability with multiple availability zone deployments. 

The basic building block of Amazon RDS is the DB instance. A DB instance is an isolated database environment in the cloud. A DB instance can contain multiple user-created databases, and you can access it by using the same tools and applications that you use with a stand-alone database instance. 

We can create and modify a DB instance by using the AWS Command Line Interface, the Amazon RDS API, or the AWS Management Console. Amazon RDS currently supports the MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server DB engines.

Most of the times we use RDS with EC2 instance in the same network.

Creating Database Using RDS

Go to the RDS Dashboard and click Create Database.

Now once you click on create database, you will need to choose the database type.

I am going with MySQL and there are a lot of other options that you can choose to set up your DB. We are going with the Free-Tier and General-Purpose Storage type without enabling auto scaling.


Note: 
In a real environment we really need logs to detect if something goes wrong. So, while setting up we can select the different types of logs which can be published to CloudWatch.

There are lots of options to configure database maintenance, auto scaling, multi-AZ deployments etc. which we can choose as per the requirements. 

Finally click on Create Database. We can see that our database has been created successfully.

And if I click on the Db Identifier i.e. db-rds, then we can see lot of details like: We can see CloudWatch metrics for RDS service in the monitoring tab.

We can also see CloudWatch alarms here if we set up an alarm on metrics for RDS using CloudWatch and can also see the recent events.

In the CloudWatch Dashboard also we can see the logs.

And if I click this and select the Db then we can see the logs as below:

We can also see the connectivity details like endpoint etc.

Accessing RDS DB With The EC2 Instance

As we have selected the database in RDS to be available in the private network only, it cannot be accessed publicly for security reasons. So now we are going to connect to one the EC2 instance named card-web01 as created in one of the previous article of cloudwatch.

So, after connecting to card-web01 instance, we have run the below command to install the mysql client in order to connect to our database from the internal network as our EC2 instance and RDS database both in North California region.

apt install mysql-client -y 

As we have seen above in the screenshots, we got an endpoint for the database.

And it connects at port 3306. So, to be able to connect it from our EC2 instance card-web01 we will have to change the inbound rule in the security group of our RDS database.

Let’s now connect to it with the below command as we have already set up the inbound rule.

mysql -h db-rds.ciojus5w3gwa.us-west-1.rds.amazonaws.com -u admin -p  

We can see here that we have successfully connected to our MySQL database and with the show databases command we can see all the existing databases.

So, from here we can do any SQL operation either create new database or tables inside the existing database etc.

About the author

Deepak Sood

Deepak Sood is Lead Consultant in an IT firm holding expertise in Devops and QA Architecture with 8 years of experience.

His expertise is in building highly scalable frameworks. His skills include Java, Configuration Management, Containers, and Kubernetes.

Reach out to him using contact form.

View all posts

2 Comments

  • What a post! This is so chock full of useful information I
    can not wait to dig deep and start using the resources you have given me.

    King regards,
    Mead Zacho