In today’s world, data is the most valuable asset. We can generate predictive analytics, we can create granular reports that target advertising to consumers, the possibilities are endless. Data should be stored in some kind of a database, such as MySQL, Oracle, SQL Server, MariaDB, PostgreSQL…etc.
With the massive amount of data being generated every minute, it gets tough to maintain the databases and costs associated with it. Costs can include licensing, hardware, storage, and personnel headcount (DBAs)—these costs are necessary to ensure databases are running optimally for higher productivity.
About a decade ago, capacity planning used to work for hardware or infrastructure planning. In today’s world, the prediction for the number of servers, SAN bricks, license cost when adding humongous data that isn’t accurate.
So, why maintain your own data center and risk of setting up infrastructure with time-consuming mundane tasks on on-prem and then maintain it with additional costs for cooling and what not? In order to avoid costs, improve scalability, performance, elasticity and reduce headcount DBAs, we should be utilizing readily available databases on cloud such as Database as a Service (DBaaS), which comes under PaaS (Platform as a Service).
Let’s talk about Amazon RDS, a PaaS service for databases.
AWS RDS Integration & Migration
RDS integrates with MySQL, PostgreSQL, Oracle, Microsoft SQL Server, MariaDB database platforms. Amazon has its own database platforms that are fully managed such as Aurora MySQL and Aurora Postgres. Plus, Amazon includes database services like DynamoDB (Nosql) and Redshift Clusters (data warehouse).
The migration of heterogenic database platforms is not straight forward but can be done with good planning and testing. Homogeneous database platforms are relatively straight forward for migration.
Aurora for RDS out-of-the-box provides continuous backups, automatic self-healing and built-in redundancy with a minimum of three availability zones, supporting up to 15 low latency read replicas. We can just get a full indestructible and scalable and high available database with few clicks and less than a dollar a day to start with. Aurora supports up to 64TB of auto-scaling storage capacity. These things just are impressive just to spell it through… imagine having applications humming with high productivity when utilizing these auto managed databases.
Database Backups, Maintenance and Updates
Backups are the most important things for any organization since an outage can be very expensive, could be related to data loss, corruption, an “oops” factor by someone. When using managed services for database, you can rest easy since it offers multiple copies of database snapshots timely taken within the maintenance window defined and it offers point in time recovery.
To ensure a very highly scalable and available database service, The AWS team has taken care of all the possibilities of what is required to run RDS service with minimal efforts from DBAs. AWS RDS service provides the functionality to back up your database timely on a schedule for every 24 hours by default when enabled. Since there is no access to the OS, all OS patching is performed by Amazon and includes minor and major upgrades of the database as well as with rollback settings just in case if anything goes wrong.
When resizing the Instance type for RDS database, it can automate and schedule within a preferred maintenance window. When it comes to high availability, a click of a checkbox can enable a multi -availability deployment for databases. When used correctly, this functionality helps with performing periodic upgrades since AWS will automatically patch the secondary database first and then fail over the primary to secondary without manual intervention. This is obviously done at a customer’s preferred maintenance window. The beauty of having this multi AZ deployment is when the primary fails to secondary there’s no need to change the DNS entries since it’s automated and will have an elastic IP pointed to RDS endpoint URL.
RDS Read Replicas
Read replicas are such a blessing for offloading select-only queries and especially when used for reporting environments. There’s the choice of choosing read replicas closer to the users that offer the best performance for reading heavy join queries from a read-only database, as latency would be low. A read replica can also be converted into a read/write database with a few clicks, just in case of any corruption on primary or something unexpected takes place. More details about upcoming changes to Amazon Aurora are published.
RDS Parameter and Option Groups
Depending on the type of the database, we might choose different parameters for databases. To segregate your databases and apply different parameters and options, RDS makes it possible with an option to maintain these parameter and option groups. These groups help segregate the values set for prod and non-prod environments by not repeating and doesn’t need to remember each unique parameter value for every database instance. They help us simplify the environments and help us maintain consistent values across the different environments. Option groups, on the other hand has a similar concept but the usage differs for each database. Not all databases offered by RDS have option groups available. For example: SQL Server has many options to create using option groups while PostgreSQL doesn’t have any option groups available.
AWS RDS Console Access
One of the best things about AWS is the power and flexibility that it offers. You can accomplish all the features and usage from a single pane of glass (AWS console), whether it could be enabling backups, manual snapshots, spinning up new instances, or change the type of instance. For testing out for POC and for standing up the RDS environments, all it takes is a few clicks. Even without knowledge of infrastructure you can validate the database power. Some of the AWS services offer the turnkey for stopping and starting on a scheduled basis, saving money on resources not in use or manually with a couple of clicks. A caveat being when database instances are down, you will still be charged for the storage allocated.
All RDS instances come with default monitoring for every five-minute interval and can be changed to one-minute intervals with a slightly additional fee. It can also monitor your CPU utilization, database connections, free storage space, free able memory, read IOPS and write IOP. Custom metrics can be added using shell scripts running from EC2 server against RDS DB, since there is no OS access to RDS.
AWS RDS Has Self-Healing Capabilities
AWS RDS service is monitored by Amazon Infra/DB engineering team and embeds advanced self-healing capabilities. When something goes wrong it alerts the corresponding teams without giving the burden to the client to attend to those failures/issues. This could potentially reduce areas of system admin activities and the need for DBAs to work round the clock. In turn, this would free up existing staff to focus on more strategic business initiatives.
AWS RDS is a powerful tool that can handle all the data. If you’re looking to explore an AWS RDS migration you’ve come to the right place. We can provide a demo and assist your organization in a proof of concept. Contact us to learn more.
For further reading, please see our AWS resources.
The “ORA-12154: TNS Oracle error message is very common for database administrators. Learn how to diagnose & resolve this common issue here today.
Most DBAs have struggled with the pros and cons of choosing one data type over another. This blog post discusses different situations.
Our database experts explain how to recover and restore a table from an Oracle 12c RMAN Backup with this step-by-step blog. Read more.