Add Amazon RDS SQL Server

Amazon RDS provides cloud-managed SQL Server instances. Each instance will run on its own isolated database environment operating within Amazon Web Services (AWS). When dealing with a cloud server, it's not possible to retrieve metrics in the same way as on-premise servers, meaning that SQL Monitor relies on the AWS API to retrieve some metrics. Further metrics are only available when the Enhanced Monitoring feature is enabled for the Amazon RDS instance. This page explains how to add an Amazon RDS SQL Server to SQL Monitor, including details of how to set up an AWS API user, and supply its credentials to SQL Monitor.

For details of the metrics and alerts available for Amazon RDS SQL Servers, which of these are available only through the AWS API, and which also require the enhanced monitoring feature to be enabled for the RDS instance, please see: Amazon RDS metrics and alerts.

Ensure that the Amazon RDS SQL Server is reachable by the machine running the Base Monitor. You can make a connectivity test by trying to access the Amazon RDS SQL Server from the Base Monitor machine through SSMS (AWS documentation). Check the different ways you can modify Amazon RDS' security group in this AWS guide.
  1. Go to the Configuration tab and under Monitoring, select Monitored servers.
  2. Click the Add Amazon RDS SQL Server button. You will be redirected to the Add Amazon RDS SQL Server page:
  3. In the Amazon RDS SQL Server endpoint field, enter the endpoint for the RDS instance provided by AWS, this will end with ".rds.amazonaws.com".
  4. In the username and password fields, enter the credentials for accessing the Amazon RDS SQL Server instance.
  5. You can select a group where the instance will be added, select "Uncategorized" if you don't want to put it in any particular group.
  6. For capturing machine metrics for your Amazon RDS SQL Server instance, you must mark the Use Amazon RDS API credentials checkbox and provide API Credentials information.

AWS API credentials

Most of the machine metrics can only be obtained through Amazon AWS API.

AWS API usage might incur charges, check AWS API charges for more information.

Some machine metrics are only available through the Enhanced monitoring feature of Amazon RDS, such as disk capacity and memory performance. If you want the full monitoring experience for machine metrics you should enable the enhanced monitoring in your Amazon RDS SQL Server instances. Be aware that enhanced monitoring might incur extra charges, check the RDS Enhanced Monitoring documentation for more information.

Creating an AWS API user

Here is some information about how to create the AWS API user. For full guidance, please consult the Amazon AWS IAM documentation.

  1. When creating your IAM, make sure you mark the Programmatic access option. This will generate the credentials used by SQL Monitor.
  2. When setting the permissions, select Attach existing policies directly and select the policies AmazonRDSReadOnlyAccess and CloudWatchReadOnlyAccess.


  3. At the end of the process, you'll get access to the Access key ID and Secret access key. Make sure you save them to enter them later in SQL Monitor.

Using AWS API credentials in SQL Monitor

At the moment you cannot change the API credentials for an Amazon RDS SQL Server. If you want to enable it for an existing instance you'll have to remove it and add it again.
  1. Mark the option Use Amazon RDS API.
  2. Enter the access and secret key for the AWS user with programmatic access.

AWS API usage and charges

Here's the list of AWS API endpoints used by SQL Monitor:

AWS ProductAPI ActionUsage (per RDS instance monitored)Requires enhanced monitoring?
CloudWatchGetMetricData5 metrics retrieved in a single request per minuteNo
CloudWatch LogsGetLogEvents1 request per minuteYes

You can check the Amazon CloudWatch pricing page to see how much the requests would cost for the region where your RDS instances are located.

Amazon AWS might charge for storing CloudWatch logs and for data transfer, these charges are not covered here as it might change depending on your CloudWatch configuration for keeping historic data and the data transfer charges will depend on whether your Base Monitor or SQL Monitor installation will be hosted in AWS EC2 and if it will be within the same region of the monitored RDS instances.

Example scenario

Consider 5 Amazon RDS SQL Server instances being monitored 24x7 for a period of 30 days.

This is just an example to demonstrate how you can get an estimation of your requests charges, refer to the AWS documentation to get real up-to-date values.

GetMetricData

Calculating the total amount of GetMetricData requests for the given estate size for 30 days:

5 RDS instances * 1,440 minutes per day * 30 days = 216,000 GetMetricData requests


In this example, we'll consider that the GetMetricData is billed $0.00001 per metric requested, i.e. $0.01 per 1,000 metrics requested (price for US East region at the time of this writing).

5 metrics requested * $0.00001 per metric = $0.00005 per GetMetricData request


We then have the price for GetMetricData requests:

216,000 GetMetricData requests * $0.00005 per GetMetricData request =  $10.8

GetLogEvents

As part of this example, requests to GetLogEvents API endpoint are not charged by AWS, so:

5 RDS instances * 0 billable request per minute * 1,440 minutes per day * 30 days = 0 billable requests


The total estimate price of AWS API requests would be $10.8




Do you have any feedback on this documentation?

Let us know at sqlmonitorfeedback@red-gate.com


Didn't find what you were looking for?