ComputeOptimizer / Client / get_rds_database_recommendations

get_rds_database_recommendations#

ComputeOptimizer.Client.get_rds_database_recommendations(**kwargs)#

Returns Amazon RDS recommendations.

Compute Optimizer generates recommendations for Amazon RDS that meet a specific set of requirements. For more information, see the Supported resources and requirements in the Compute Optimizer User Guide.

See also: AWS API Documentation

Request Syntax

response = client.get_rds_database_recommendations(
    resourceArns=[
        'string',
    ],
    nextToken='string',
    maxResults=123,
    filters=[
        {
            'name': 'InstanceFinding'|'InstanceFindingReasonCode'|'StorageFinding'|'StorageFindingReasonCode'|'Idle',
            'values': [
                'string',
            ]
        },
    ],
    accountIds=[
        'string',
    ],
    recommendationPreferences={
        'cpuVendorArchitectures': [
            'AWS_ARM64'|'CURRENT',
        ]
    }
)
Parameters:
  • resourceArns (list) –

    The ARN that identifies the Amazon RDS.

    The following is the format of the ARN:

    arn:aws:rds:{region}:{accountId}:db:{resourceName}

    The following is the format of a DB Cluster ARN:

    arn:aws:rds:{region}:{accountId}:cluster:{resourceName}

    • (string) –

  • nextToken (string) – The token to advance to the next page of Amazon RDS recommendations.

  • maxResults (integer) –

    The maximum number of Amazon RDS recommendations to return with a single request.

    To retrieve the remaining results, make another request with the returned nextToken value.

  • filters (list) –

    An array of objects to specify a filter that returns a more specific list of Amazon RDS recommendations.

    • (dict) –

      Describes a filter that returns a more specific list of Amazon RDS recommendations. Use this filter with the GetECSServiceRecommendations action.

      • name (string) –

        The name of the filter.

        Specify Finding to return recommendations with a specific finding classification.

        You can filter your Amazon RDS recommendations by tag:key and tag-key tags.

        A tag:key is a key and value combination of a tag assigned to your Amazon RDS recommendations. Use the tag key in the filter name and the tag value as the filter value. For example, to find all Amazon RDS service recommendations that have a tag with the key of Owner and the value of TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

        A tag-key is the key of a tag assigned to your Amazon RDS recommendations. Use this filter to find all of your Amazon RDS recommendations that have a tag with a specific key. This doesn’t consider the tag value. For example, you can find your Amazon RDS service recommendations with a tag key value of Owner or without any tag keys assigned.

      • values (list) –

        The value of the filter.

        • (string) –

  • accountIds (list) –

    Return the Amazon RDS recommendations to the specified Amazon Web Services account IDs.

    If your account is the management account or the delegated administrator of an organization, use this parameter to return the Amazon RDS recommendations to specific member accounts.

    You can only specify one account ID per request.

    • (string) –

  • recommendationPreferences (dict) –

    Describes the recommendation preferences to return in the response of a GetAutoScalingGroupRecommendations, GetEC2InstanceRecommendations, GetEC2RecommendationProjectedMetrics, GetRDSDatabaseRecommendations, and GetRDSDatabaseRecommendationProjectedMetrics request.

    • cpuVendorArchitectures (list) –

      Specifies the CPU vendor and architecture for Amazon EC2 instance and Auto Scaling group recommendations.

      For example, when you specify AWS_ARM64 with:

      • A GetEC2InstanceRecommendations or GetAutoScalingGroupRecommendations request, Compute Optimizer returns recommendations that consist of Graviton instance types only.

      • A GetEC2RecommendationProjectedMetrics request, Compute Optimizer returns projected utilization metrics for Graviton instance type recommendations only.

      • A ExportEC2InstanceRecommendations or ExportAutoScalingGroupRecommendations request, Compute Optimizer exports recommendations that consist of Graviton instance types only.

      • (string) –

Return type:

dict

Returns:

Response Syntax

{
    'nextToken': 'string',
    'rdsDBRecommendations': [
        {
            'resourceArn': 'string',
            'accountId': 'string',
            'engine': 'string',
            'engineVersion': 'string',
            'promotionTier': 123,
            'currentDBInstanceClass': 'string',
            'currentStorageConfiguration': {
                'storageType': 'string',
                'allocatedStorage': 123,
                'iops': 123,
                'maxAllocatedStorage': 123,
                'storageThroughput': 123
            },
            'dbClusterIdentifier': 'string',
            'idle': 'True'|'False',
            'instanceFinding': 'Optimized'|'Underprovisioned'|'Overprovisioned',
            'storageFinding': 'Optimized'|'Underprovisioned'|'Overprovisioned',
            'instanceFindingReasonCodes': [
                'CPUOverprovisioned'|'NetworkBandwidthOverprovisioned'|'EBSIOPSOverprovisioned'|'EBSIOPSUnderprovisioned'|'EBSThroughputOverprovisioned'|'CPUUnderprovisioned'|'NetworkBandwidthUnderprovisioned'|'EBSThroughputUnderprovisioned'|'NewGenerationDBInstanceClassAvailable'|'NewEngineVersionAvailable'|'DBClusterWriterUnderprovisioned'|'MemoryUnderprovisioned'|'InstanceStorageReadIOPSUnderprovisioned'|'InstanceStorageWriteIOPSUnderprovisioned',
            ],
            'currentInstancePerformanceRisk': 'VeryLow'|'Low'|'Medium'|'High',
            'storageFindingReasonCodes': [
                'EBSVolumeAllocatedStorageUnderprovisioned'|'EBSVolumeThroughputUnderprovisioned'|'EBSVolumeIOPSOverprovisioned'|'EBSVolumeThroughputOverprovisioned'|'NewGenerationStorageTypeAvailable',
            ],
            'instanceRecommendationOptions': [
                {
                    'dbInstanceClass': 'string',
                    'projectedUtilizationMetrics': [
                        {
                            'name': 'CPU'|'Memory'|'EBSVolumeStorageSpaceUtilization'|'NetworkReceiveThroughput'|'NetworkTransmitThroughput'|'EBSVolumeReadIOPS'|'EBSVolumeWriteIOPS'|'EBSVolumeReadThroughput'|'EBSVolumeWriteThroughput'|'DatabaseConnections'|'StorageNetworkReceiveThroughput'|'StorageNetworkTransmitThroughput'|'AuroraMemoryHealthState'|'AuroraMemoryNumDeclinedSql'|'AuroraMemoryNumKillConnTotal'|'AuroraMemoryNumKillQueryTotal'|'ReadIOPSEphemeralStorage'|'WriteIOPSEphemeralStorage',
                            'statistic': 'Maximum'|'Minimum'|'Average',
                            'value': 123.0
                        },
                    ],
                    'performanceRisk': 123.0,
                    'rank': 123,
                    'savingsOpportunity': {
                        'savingsOpportunityPercentage': 123.0,
                        'estimatedMonthlySavings': {
                            'currency': 'USD'|'CNY',
                            'value': 123.0
                        }
                    },
                    'savingsOpportunityAfterDiscounts': {
                        'savingsOpportunityPercentage': 123.0,
                        'estimatedMonthlySavings': {
                            'currency': 'USD'|'CNY',
                            'value': 123.0
                        }
                    }
                },
            ],
            'storageRecommendationOptions': [
                {
                    'storageConfiguration': {
                        'storageType': 'string',
                        'allocatedStorage': 123,
                        'iops': 123,
                        'maxAllocatedStorage': 123,
                        'storageThroughput': 123
                    },
                    'rank': 123,
                    'savingsOpportunity': {
                        'savingsOpportunityPercentage': 123.0,
                        'estimatedMonthlySavings': {
                            'currency': 'USD'|'CNY',
                            'value': 123.0
                        }
                    },
                    'savingsOpportunityAfterDiscounts': {
                        'savingsOpportunityPercentage': 123.0,
                        'estimatedMonthlySavings': {
                            'currency': 'USD'|'CNY',
                            'value': 123.0
                        }
                    }
                },
            ],
            'utilizationMetrics': [
                {
                    'name': 'CPU'|'Memory'|'EBSVolumeStorageSpaceUtilization'|'NetworkReceiveThroughput'|'NetworkTransmitThroughput'|'EBSVolumeReadIOPS'|'EBSVolumeWriteIOPS'|'EBSVolumeReadThroughput'|'EBSVolumeWriteThroughput'|'DatabaseConnections'|'StorageNetworkReceiveThroughput'|'StorageNetworkTransmitThroughput'|'AuroraMemoryHealthState'|'AuroraMemoryNumDeclinedSql'|'AuroraMemoryNumKillConnTotal'|'AuroraMemoryNumKillQueryTotal'|'ReadIOPSEphemeralStorage'|'WriteIOPSEphemeralStorage',
                    'statistic': 'Maximum'|'Minimum'|'Average',
                    'value': 123.0
                },
            ],
            'effectiveRecommendationPreferences': {
                'cpuVendorArchitectures': [
                    'AWS_ARM64'|'CURRENT',
                ],
                'enhancedInfrastructureMetrics': 'Active'|'Inactive',
                'lookBackPeriod': 'DAYS_14'|'DAYS_32'|'DAYS_93',
                'savingsEstimationMode': {
                    'source': 'PublicPricing'|'CostExplorerRightsizing'|'CostOptimizationHub'
                }
            },
            'lookbackPeriodInDays': 123.0,
            'lastRefreshTimestamp': datetime(2015, 1, 1),
            'tags': [
                {
                    'key': 'string',
                    'value': 'string'
                },
            ]
        },
    ],
    'errors': [
        {
            'identifier': 'string',
            'code': 'string',
            'message': 'string'
        },
    ]
}

Response Structure

  • (dict) –

    • nextToken (string) –

      The token to advance to the next page of Amazon RDS recommendations.

    • rdsDBRecommendations (list) –

      An array of objects that describe the Amazon RDS recommendations.

      • (dict) –

        Describes an Amazon RDS recommendation.

        • resourceArn (string) –

          The ARN of the current Amazon RDS.

          The following is the format of the ARN:

          arn:aws:rds:{region}:{accountId}:db:{resourceName}

        • accountId (string) –

          The Amazon Web Services account ID of the Amazon RDS.

        • engine (string) –

          The engine of the RDS instance.

        • engineVersion (string) –

          The database engine version.

        • promotionTier (integer) –

          The promotion tier for the Aurora instance.

        • currentDBInstanceClass (string) –

          The DB instance class of the current RDS instance.

        • currentStorageConfiguration (dict) –

          The configuration of the current RDS storage.

          • storageType (string) –

            The type of RDS storage.

          • allocatedStorage (integer) –

            The size of the RDS storage in gigabytes (GB).

          • iops (integer) –

            The provisioned IOPs of the RDS storage.

          • maxAllocatedStorage (integer) –

            The maximum limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the RDS instance.

          • storageThroughput (integer) –

            The storage throughput of the RDS storage.

        • dbClusterIdentifier (string) –

          The identifier for DB cluster.

        • idle (string) –

          This indicates if the RDS instance is idle or not.

        • instanceFinding (string) –

          The finding classification of an Amazon RDS instance.

          Findings for Amazon RDS instance include:

          • Underprovisioned — When Compute Optimizer detects that there’s not enough resource specifications, an Amazon RDS is considered under-provisioned.

          • Overprovisioned — When Compute Optimizer detects that there’s excessive resource specifications, an Amazon RDS is considered over-provisioned.

          • Optimized — When the specifications of your Amazon RDS instance meet the performance requirements of your workload, the service is considered optimized.

        • storageFinding (string) –

          The finding classification of Amazon RDS storage.

          Findings for Amazon RDS instance include:

          • Underprovisioned — When Compute Optimizer detects that there’s not enough storage, an Amazon RDS is considered under-provisioned.

          • Overprovisioned — When Compute Optimizer detects that there’s excessive storage, an Amazon RDS is considered over-provisioned.

          • Optimized — When the storage of your Amazon RDS meet the performance requirements of your workload, the service is considered optimized.

        • instanceFindingReasonCodes (list) –

          The reason for the finding classification of an Amazon RDS instance.

          • (string) –

        • currentInstancePerformanceRisk (string) –

          The performance risk for the current DB instance.

        • storageFindingReasonCodes (list) –

          The reason for the finding classification of Amazon RDS storage.

          • (string) –

        • instanceRecommendationOptions (list) –

          An array of objects that describe the recommendation options for the Amazon RDS instance.

          • (dict) –

            Describes the recommendation options for an Amazon RDS instance.

            • dbInstanceClass (string) –

              Describes the DB instance class recommendation option for your Amazon RDS instance.

            • projectedUtilizationMetrics (list) –

              An array of objects that describe the projected utilization metrics of the RDS instance recommendation option.

              • (dict) –

                Describes the utilization metric of an Amazon RDS.

                To determine the performance difference between your current Amazon RDS and the recommended option, compare the utilization metric data of your service against its projected utilization metric data.

                • name (string) –

                  The name of the utilization metric.

                • statistic (string) –

                  The statistic of the utilization metric.

                  The Compute Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics using only the Maximum statistic, which is the highest value observed during the specified period.

                  The Compute Optimizer console displays graphs for some utilization metrics using the Average statistic, which is the value of Sum / SampleCount during the specified period. For more information, see Viewing resource recommendations in the Compute Optimizer User Guide. You can also get averaged utilization metric data for your resources using Amazon CloudWatch. For more information, see the Amazon CloudWatch User Guide.

                • value (float) –

                  The value of the utilization metric.

            • performanceRisk (float) –

              The performance risk of the RDS instance recommendation option.

            • rank (integer) –

              The rank identifier of the RDS instance recommendation option.

            • savingsOpportunity (dict) –

              Describes the savings opportunity for recommendations of a given resource type or for the recommendation option of an individual resource.

              Savings opportunity represents the estimated monthly savings you can achieve by implementing a given Compute Optimizer recommendation.

              Warning

              Savings opportunity data requires that you opt in to Cost Explorer, as well as activate Receive Amazon EC2 resource recommendations in the Cost Explorer preferences page. That creates a connection between Cost Explorer and Compute Optimizer. With this connection, Cost Explorer generates savings estimates considering the price of existing resources, the price of recommended resources, and historical usage data. Estimated monthly savings reflects the projected dollar savings associated with each of the recommendations generated. For more information, see Enabling Cost Explorer and Optimizing your cost with Rightsizing Recommendations in the Cost Management User Guide.

              • savingsOpportunityPercentage (float) –

                The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer recommendations for a given resource.

              • estimatedMonthlySavings (dict) –

                An object that describes the estimated monthly savings amount possible by adopting Compute Optimizer recommendations for a given resource. This is based on the On-Demand instance pricing..

                • currency (string) –

                  The currency of the estimated monthly savings.

                • value (float) –

                  The value of the estimated monthly savings.

            • savingsOpportunityAfterDiscounts (dict) –

              Describes the savings opportunity for Amazon RDS recommendations or for the recommendation option.

              Savings opportunity represents the estimated monthly savings after applying Savings Plans discounts. You can achieve this by implementing a given Compute Optimizer recommendation.

              • savingsOpportunityPercentage (float) –

                The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer’s Amazon RDS instance recommendations. This includes any applicable Savings Plans discounts.

              • estimatedMonthlySavings (dict) –

                The estimated monthly savings possible by adopting Compute Optimizer’s Amazon RDS instance recommendations. This includes any applicable Savings Plans discounts.

                • currency (string) –

                  The currency of the estimated monthly savings.

                • value (float) –

                  The value of the estimated monthly savings for Amazon RDS instances.

        • storageRecommendationOptions (list) –

          An array of objects that describe the recommendation options for Amazon RDS storage.

          • (dict) –

            Describes the recommendation options for Amazon RDS storage.

            • storageConfiguration (dict) –

              The recommended storage configuration.

              • storageType (string) –

                The type of RDS storage.

              • allocatedStorage (integer) –

                The size of the RDS storage in gigabytes (GB).

              • iops (integer) –

                The provisioned IOPs of the RDS storage.

              • maxAllocatedStorage (integer) –

                The maximum limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the RDS instance.

              • storageThroughput (integer) –

                The storage throughput of the RDS storage.

            • rank (integer) –

              The rank identifier of the RDS storage recommendation option.

            • savingsOpportunity (dict) –

              Describes the savings opportunity for recommendations of a given resource type or for the recommendation option of an individual resource.

              Savings opportunity represents the estimated monthly savings you can achieve by implementing a given Compute Optimizer recommendation.

              Warning

              Savings opportunity data requires that you opt in to Cost Explorer, as well as activate Receive Amazon EC2 resource recommendations in the Cost Explorer preferences page. That creates a connection between Cost Explorer and Compute Optimizer. With this connection, Cost Explorer generates savings estimates considering the price of existing resources, the price of recommended resources, and historical usage data. Estimated monthly savings reflects the projected dollar savings associated with each of the recommendations generated. For more information, see Enabling Cost Explorer and Optimizing your cost with Rightsizing Recommendations in the Cost Management User Guide.

              • savingsOpportunityPercentage (float) –

                The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer recommendations for a given resource.

              • estimatedMonthlySavings (dict) –

                An object that describes the estimated monthly savings amount possible by adopting Compute Optimizer recommendations for a given resource. This is based on the On-Demand instance pricing..

                • currency (string) –

                  The currency of the estimated monthly savings.

                • value (float) –

                  The value of the estimated monthly savings.

            • savingsOpportunityAfterDiscounts (dict) –

              Describes the savings opportunity for Amazon RDS storage recommendations or for the recommendation option.

              Savings opportunity represents the estimated monthly savings after applying Savings Plans discounts. You can achieve this by implementing a given Compute Optimizer recommendation.

              • savingsOpportunityPercentage (float) –

                The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer’s Amazon RDS storage recommendations. This includes any applicable Savings Plans discounts.

              • estimatedMonthlySavings (dict) –

                The estimated monthly savings possible by adopting Compute Optimizer’s Amazon RDS storage recommendations. This includes any applicable Savings Plans discounts.

                • currency (string) –

                  The currency of the estimated monthly savings.

                • value (float) –

                  The value of the estimated monthly savings for Amazon RDS storage.

        • utilizationMetrics (list) –

          An array of objects that describe the utilization metrics of the Amazon RDS.

          • (dict) –

            Describes the utilization metric of an Amazon RDS.

            To determine the performance difference between your current Amazon RDS and the recommended option, compare the utilization metric data of your service against its projected utilization metric data.

            • name (string) –

              The name of the utilization metric.

            • statistic (string) –

              The statistic of the utilization metric.

              The Compute Optimizer API, Command Line Interface (CLI), and SDKs return utilization metrics using only the Maximum statistic, which is the highest value observed during the specified period.

              The Compute Optimizer console displays graphs for some utilization metrics using the Average statistic, which is the value of Sum / SampleCount during the specified period. For more information, see Viewing resource recommendations in the Compute Optimizer User Guide. You can also get averaged utilization metric data for your resources using Amazon CloudWatch. For more information, see the Amazon CloudWatch User Guide.

            • value (float) –

              The value of the utilization metric.

        • effectiveRecommendationPreferences (dict) –

          Describes the effective recommendation preferences for Amazon RDS.

          • cpuVendorArchitectures (list) –

            Describes the CPU vendor and architecture for Amazon RDS recommendations.

            • (string) –

          • enhancedInfrastructureMetrics (string) –

            Describes the activation status of the enhanced infrastructure metrics preference.

            A status of Active confirms that the preference is applied in the latest recommendation refresh, and a status of Inactive confirms that it’s not yet applied to recommendations.

            For more information, see Enhanced infrastructure metrics in the Compute Optimizer User Guide.

          • lookBackPeriod (string) –

            The number of days the utilization metrics of the Amazon RDS are analyzed.

          • savingsEstimationMode (dict) –

            Describes the savings estimation mode preference applied for calculating savings opportunity for Amazon RDS.

            • source (string) –

              Describes the source for calculating the savings opportunity for Amazon RDS.

        • lookbackPeriodInDays (float) –

          The number of days the Amazon RDS utilization metrics were analyzed.

        • lastRefreshTimestamp (datetime) –

          The timestamp of when the Amazon RDS recommendation was last generated.

        • tags (list) –

          A list of tags assigned to your Amazon RDS recommendations.

          • (dict) –

            A list of tag key and value pairs that you define.

            • key (string) –

              One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

            • value (string) –

              One part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key). The value can be empty or null.

    • errors (list) –

      An array of objects that describe errors of the request.

      • (dict) –

        Describes an error experienced when getting recommendations.

        For example, an error is returned if you request recommendations for an unsupported Auto Scaling group, or if you request recommendations for an instance of an unsupported instance family.

        • identifier (string) –

          The ID of the error.

        • code (string) –

          The error code.

        • message (string) –

          The message, or reason, for the error.

Exceptions