Gone are the days when software upgrade of a database alone was executed as three month project. This is just an example comparison between how databases are managed during last decade and current situation. Still I can recollect whatever we did and time we spent together twelve years back to resolve issues related to storage, backups, replication, monitoring, security..etc for hosting and dealing with relational databases without any issues.
Like this, we might get into lot of issues when we are owning everything like replication, backup, software upgrade, failure/disaster recovery, horizontal/vertical scaling, security, monitoring for a relational database. Nowadays, most of us know cloud databases can be a proper replacement for aforementioned issues. But, let us see how AWS RDS plays a major role when compared to other cloud databases by providing multiple options to choose from for each of the features of database.
With all the building blocks of database are already discussed, let us skip further discussions and jump directly to understand how RDS has implemented it.
Supports Multiple Databases : Provides flexibility to choose from different relational databases like PostgreSQL, MYSQL, MariaDB, Oracle, Microsoft SQL Server, Aurora.
Security : RDS is always launched within VPC and also has options to launch within private subnet. AWS is well known for it’s Shared Responsibility model, whereas AWS is responsible for protecting the infrastructure that runs all of the services offered in the AWS Cloud and customers are responsible for remaining aspects of security.
Storage : By choosing EBS, RDS provides the flexibility to attach/detach instances whenever required. In addition to that, EBS supports solid state drives in two modes : GP2 (General purpose) and IO1.
Backups : Supports automatic backups. By default, automatic backup has retention period of 7 days and it can be configured up to maximum of 35 days.
Snapshots : If required, manual snapshots can be created in addition to backups. It suits for activities like DB upgrade, Disaster Recovery.
Replication : Data can be replicated using Read-Replica feature provided by RDS.
Monitoring : Though there are lot of different functionalities that requires continuous monitoring, it can be easily achieved using different visualization graphs provided under Cloudwatch monitoring and metrics.
Now, we have seen how AWS RDS has built the required building blocks of a database. On top of all these, RDS is a fully managed service where there is no need to manage hardware and software application. This makes less admin overhead, perform scaling and easier to set-up whenever required. Also, having multiple options to choose instance types(on-demand/reserved), storage/backups helps everyone to select right instance types and hardwares based on their requirements.
Since everything is managed by AWS, it helps us to focus on your applications with high availability, fast performance, security..etc