Relational Database Service (RDS)
Though the use of non relational databases (also known as NoSQL databases,as witnessed by Amazon’s own DynamoDB service) is growing, an enormous percentage of applications throughout the world rely on relational databases.Traditionally, companies employed database administrators to handle the administrative tasks associated with running a relational database: configuring them, backing them up, and monitoring resource consumption and performance, for example. This approach has only two problems: It’s expensive and it’s error-prone. Amazon created RDS to help companies take advantage of a less-expensive way tomanage their database needs.
RDS is breathtaking in its simplicity, as this list of features points out:
✓ It supports MySQL, SQL Server, and Oracle. I’m talking about three popular relational databases here.
✓ Any required patches and updates to the database software are made by RDS.
✓ RDS makes backups of the database according to a schedule you set. All backups are stored in S3, where they can be retrieved at any time. (Amazon also performs EBS snapshots to enable database transference, if you want.)
✓ RDS can be run on different instance types. This flexibility ensures that you have sufficient processing power to support the database performance that your application requires, and that you can scale up or scale down as your needs change.
✓ RDS storage can be standard or Provisioned IOPS. You can choose the latter storage type if low latency is a critical requirement for your application.
✓ In the case of MySQL and Oracle, RDS lets you seamlessly increase the amount of storage associated with your RDS service. Unlike traditional database administration, where deploying additional storage to a databaseis an extended, complex operation fraught with anxiety, RDS makesthe process pain-free.
✓ RDS supports multi-instance deployments with a master/slave arrangement, increasing performance and system resiliency. The master and slave can be placed in separate AZs to further increase resilience. If a database instance crashes, Amazon automatically restarts a new RDS instance and any associated read replicas configured for the RDS instance.
Using RDS
Using RDS is quite straightforward. You can use the AWS Management Console or API to create a database security group, which identifies which IP address (or addresses, which can be defined using a CIDR group) can access the RDS database instance.After configuring the instance by defining which kind of database you want RDS to manage — along with instance size, licensing conditions, and backup frequency, for example — you launch the database instance. Upon successful launch, AWS provides a unique URL for your database instance that’s used to communicate with it. From that point on, you use your RDS database instance as you would a typical database.
RDS scope
Because RDS is a regionally scoped service, RDS databases run inside a given region. Unless the multi-AZ option is selected, the database instance runs inside a single AZ, which you can choose. Use of the database instance URL within the region (from EC2 instances within the region, for example) keeps network traffic within AWS, and you incur no traffic charges. Access from outside the region incurs outbound traffic charges.
RDS cost
RDS imposes a few types of charges:
✓ Instance charges: You pay a charge for every RDS instance, just as you pay for standard EC2 instances. AWS charges more for RDS instances than the comparable EC2 instance; you can think of the differencein cost as a surcharge for the convenience of RDS. A small, standard MySQL instance costs $.09 per hour, whereas the comparable EC2 instance is $.065 per hour, indicating a $.025 “uplift” for the RDS service itself. The uplift is higher for larger instances, as you may expect.
You can reduce the overall cost of your RDS database instances by using reserved database instances, which operate similarly to EC2 reserved instances.Multi-availability zone deployments incur a larger charge, which makes sense, given that you’re running multiple instances. If you use RDS with a commercial database support option, there’s a further additional charge to cover the database’s licensing fees.
✓ Storage: You pay for standard or Provisioned IOPS storage at normal rates; normal storage is $.10 per gigabyte per month, whereas Provisioned IOPS is $.125.
✓ Network traffic: You pay standard network traffic rates for data flowing from the database instance. Inbound traffic incurs no charge, whereas outbound traffic starts at $.12 per Gigabyte and declines with volume.
That’s it. Really, RDS is so simple and imposes so little extra expense that it doesn’t seem worth it to manage your own database setup. RDS adoption is skyrocketing as more and more companies gauge the value that RDS offers versus the minimal incremental cost.