AWS Database Migration Service

2023/03/07 - AWS Database Migration Service - 4 new 1 updated api methods

Changes  This release adds DMS Fleet Advisor Target Recommendation APIs and exposes functionality for DMS Fleet Advisor. It adds functionality to start Target Recommendation calculation.

StartRecommendations (new) Link ¶

Starts the analysis of your source database to provide recommendations of target engines.

You can create recommendations for multiple source databases using BatchStartRecommendations.

See also: AWS API Documentation

Request Syntax

client.start_recommendations(
    DatabaseId='string',
    Settings={
        'InstanceSizingType': 'string',
        'WorkloadType': 'string'
    }
)
type DatabaseId

string

param DatabaseId

[REQUIRED]

The identifier of the source database to analyze and provide recommendations for.

type Settings

dict

param Settings

[REQUIRED]

The settings in JSON format that Fleet Advisor uses to determine target engine recommendations. These parameters include target instance sizing and availability and durability settings. For target instance sizing, Fleet Advisor supports the following two options: total capacity and resource utilization. For availability and durability, Fleet Advisor supports the following two options: production (Multi-AZ deployments) and Dev/Test (Single-AZ deployments).

  • InstanceSizingType (string) -- [REQUIRED]

    The size of your target instance. Fleet Advisor calculates this value based on your data collection type, such as total capacity and resource utilization. Valid values include "total-capacity" and "utilization" .

  • WorkloadType (string) -- [REQUIRED]

    The deployment option for your target engine. For production databases, Fleet Advisor chooses Multi-AZ deployment. For development or test databases, Fleet Advisor chooses Single-AZ deployment. Valid values include "development" and "production" .

returns

None

DescribeRecommendations (new) Link ¶

Returns a paginated list of target engine recommendations for your source databases.

See also: AWS API Documentation

Request Syntax

client.describe_recommendations(
    Filters=[
        {
            'Name': 'string',
            'Values': [
                'string',
            ]
        },
    ],
    MaxRecords=123,
    NextToken='string'
)
type Filters

list

param Filters

Filters applied to the target engine recommendations described in the form of key-value pairs.

  • (dict) --

    Identifies the name and value of a filter object. This filter is used to limit the number and type of DMS objects that are returned for a particular Describe* call or similar operation. Filters are used as an optional parameter for certain API operations.

    • Name (string) -- [REQUIRED]

      The name of the filter as specified for a Describe* or similar operation.

    • Values (list) -- [REQUIRED]

      The filter value, which can specify one or more values used to narrow the returned results.

      • (string) --

type MaxRecords

integer

param MaxRecords

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, Fleet Advisor includes a pagination token in the response so that you can retrieve the remaining results.

type NextToken

string

param NextToken

Specifies the unique pagination token that makes it possible to display the next page of results. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

rtype

dict

returns

Response Syntax

{
    'NextToken': 'string',
    'Recommendations': [
        {
            'DatabaseId': 'string',
            'EngineName': 'string',
            'CreatedDate': 'string',
            'Status': 'string',
            'Preferred': True|False,
            'Settings': {
                'InstanceSizingType': 'string',
                'WorkloadType': 'string'
            },
            'Data': {
                'RdsEngine': {
                    'RequirementsToTarget': {
                        'EngineEdition': 'string',
                        'InstanceVcpu': 123.0,
                        'InstanceMemory': 123.0,
                        'StorageSize': 123,
                        'StorageIops': 123,
                        'DeploymentOption': 'string'
                    },
                    'TargetConfiguration': {
                        'EngineEdition': 'string',
                        'InstanceType': 'string',
                        'InstanceVcpu': 123.0,
                        'InstanceMemory': 123.0,
                        'StorageType': 'string',
                        'StorageSize': 123,
                        'StorageIops': 123,
                        'DeploymentOption': 'string'
                    }
                }
            }
        },
    ]
}

Response Structure

  • (dict) --

    • NextToken (string) --

      The unique pagination token returned for you to pass to a subsequent request. Fleet Advisor returns this token when the number of records in the response is greater than the MaxRecords value. To retrieve the next page, make the call again using the returned token and keeping all other arguments unchanged.

    • Recommendations (list) --

      The list of recommendations of target engines that Fleet Advisor created for the source database.

      • (dict) --

        Provides information that describes a recommendation of a target engine.

        A recommendation is a set of possible Amazon Web Services target engines that you can choose to migrate your source on-premises database. In this set, Fleet Advisor suggests a single target engine as the right sized migration destination. To determine this rightsized migration destination, Fleet Advisor uses the inventory metadata and metrics from data collector. You can use recommendations before the start of migration to save costs and reduce risks.

        With recommendations, you can explore different target options and compare metrics, so you can make an informed decision when you choose the migration target.

        • DatabaseId (string) --

          The identifier of the source database for which Fleet Advisor provided this recommendation.

        • EngineName (string) --

          The name of the target engine. Valid values include "rds-aurora-mysql" , "rds-aurora-postgresql" , "rds-mysql" , "rds-oracle" , "rds-sql-server" , and "rds-postgresql" .

        • CreatedDate (string) --

          The date when Fleet Advisor created the target engine recommendation.

        • Status (string) --

          The status of the target engine recommendation. Valid values include "alternate" , "in-progress" , "not-viable" , and "recommended" .

        • Preferred (boolean) --

          Indicates that this target is the rightsized migration destination.

        • Settings (dict) --

          The settings in JSON format for the preferred target engine parameters. These parameters include capacity, resource utilization, and the usage type (production, development, or testing).

          • InstanceSizingType (string) --

            The size of your target instance. Fleet Advisor calculates this value based on your data collection type, such as total capacity and resource utilization. Valid values include "total-capacity" and "utilization" .

          • WorkloadType (string) --

            The deployment option for your target engine. For production databases, Fleet Advisor chooses Multi-AZ deployment. For development or test databases, Fleet Advisor chooses Single-AZ deployment. Valid values include "development" and "production" .

        • Data (dict) --

          The recommendation of a target engine for the specified source database.

          • RdsEngine (dict) --

            The recommendation of a target Amazon RDS database engine.

            • RequirementsToTarget (dict) --

              Supplemental information about the requirements to the recommended target database on Amazon RDS.

              • EngineEdition (string) --

                The required target Amazon RDS engine edition.

              • InstanceVcpu (float) --

                The required number of virtual CPUs (vCPU) on the Amazon RDS DB instance.

              • InstanceMemory (float) --

                The required memory on the Amazon RDS DB instance.

              • StorageSize (integer) --

                The required Amazon RDS DB instance storage size.

              • StorageIops (integer) --

                The required number of I/O operations completed each second (IOPS) on your Amazon RDS DB instance.

              • DeploymentOption (string) --

                The required deployment option for the Amazon RDS DB instance. Valid values include "MULTI_AZ" for Multi-AZ deployments and "SINGLE_AZ" for Single-AZ deployments.

            • TargetConfiguration (dict) --

              Supplemental information about the configuration of the recommended target database on Amazon RDS.

              • EngineEdition (string) --

                Describes the recommended target Amazon RDS engine edition.

              • InstanceType (string) --

                Describes the recommended target Amazon RDS instance type.

              • InstanceVcpu (float) --

                Describes the number of virtual CPUs (vCPU) on the recommended Amazon RDS DB instance that meets your requirements.

              • InstanceMemory (float) --

                Describes the memory on the recommended Amazon RDS DB instance that meets your requirements.

              • StorageType (string) --

                Describes the storage type of the recommended Amazon RDS DB instance that meets your requirements.

                Amazon RDS provides three storage types: General Purpose SSD (also known as gp2 and gp3), Provisioned IOPS SSD (also known as io1), and magnetic (also known as standard).

              • StorageSize (integer) --

                Describes the storage size of the recommended Amazon RDS DB instance that meets your requirements.

              • StorageIops (integer) --

                Describes the number of I/O operations completed each second (IOPS) on the recommended Amazon RDS DB instance that meets your requirements.

              • DeploymentOption (string) --

                Describes the deployment option for the recommended Amazon RDS DB instance. The deployment options include Multi-AZ and Single-AZ deployments. Valid values include "MULTI_AZ" and "SINGLE_AZ" .

BatchStartRecommendations (new) Link ¶

Starts the analysis of up to 20 source databases to recommend target engines for each source database. This is a batch version of StartRecommendations.

The result of analysis of each source database is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200 .

See also: AWS API Documentation

Request Syntax

client.batch_start_recommendations(
    Data=[
        {
            'DatabaseId': 'string',
            'Settings': {
                'InstanceSizingType': 'string',
                'WorkloadType': 'string'
            }
        },
    ]
)
type Data

list

param Data

Provides information about source databases to analyze. After this analysis, Fleet Advisor recommends target engines for each source database.

  • (dict) --

    Provides information about the source database to analyze and provide target recommendations according to the specified requirements.

    • DatabaseId (string) -- [REQUIRED]

      The identifier of the source database.

    • Settings (dict) -- [REQUIRED]

      The required target engine settings.

      • InstanceSizingType (string) -- [REQUIRED]

        The size of your target instance. Fleet Advisor calculates this value based on your data collection type, such as total capacity and resource utilization. Valid values include "total-capacity" and "utilization" .

      • WorkloadType (string) -- [REQUIRED]

        The deployment option for your target engine. For production databases, Fleet Advisor chooses Multi-AZ deployment. For development or test databases, Fleet Advisor chooses Single-AZ deployment. Valid values include "development" and "production" .

rtype

dict

returns

Response Syntax

{
    'ErrorEntries': [
        {
            'DatabaseId': 'string',
            'Message': 'string',
            'Code': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • ErrorEntries (list) --

      A list with error details about the analysis of each source database.

      • (dict) --

        Provides information about the errors that occurred during the analysis of the source database.

        • DatabaseId (string) --

          The identifier of the source database.

        • Message (string) --

          The information about the error.

        • Code (string) --

          The code of an error that occurred during the analysis of the source database.

DescribeRecommendationLimitations (new) Link ¶

Returns a paginated list of limitations for recommendations of target Amazon Web Services engines.

See also: AWS API Documentation

Request Syntax

client.describe_recommendation_limitations(
    Filters=[
        {
            'Name': 'string',
            'Values': [
                'string',
            ]
        },
    ],
    MaxRecords=123,
    NextToken='string'
)
type Filters

list

param Filters

Filters applied to the limitations described in the form of key-value pairs.

  • (dict) --

    Identifies the name and value of a filter object. This filter is used to limit the number and type of DMS objects that are returned for a particular Describe* call or similar operation. Filters are used as an optional parameter for certain API operations.

    • Name (string) -- [REQUIRED]

      The name of the filter as specified for a Describe* or similar operation.

    • Values (list) -- [REQUIRED]

      The filter value, which can specify one or more values used to narrow the returned results.

      • (string) --

type MaxRecords

integer

param MaxRecords

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, Fleet Advisor includes a pagination token in the response so that you can retrieve the remaining results.

type NextToken

string

param NextToken

Specifies the unique pagination token that makes it possible to display the next page of results. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

rtype

dict

returns

Response Syntax

{
    'NextToken': 'string',
    'Limitations': [
        {
            'DatabaseId': 'string',
            'EngineName': 'string',
            'Name': 'string',
            'Description': 'string',
            'Impact': 'string',
            'Type': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • NextToken (string) --

      The unique pagination token returned for you to pass to a subsequent request. Fleet Advisor returns this token when the number of records in the response is greater than the MaxRecords value. To retrieve the next page, make the call again using the returned token and keeping all other arguments unchanged.

    • Limitations (list) --

      The list of limitations for recommendations of target Amazon Web Services engines.

      • (dict) --

        Provides information about the limitations of target Amazon Web Services engines.

        Your source database might include features that the target Amazon Web Services engine doesn't support. Fleet Advisor lists these features as limitations. You should consider these limitations during database migration. For each limitation, Fleet Advisor recommends an action that you can take to address or avoid this limitation.

        • DatabaseId (string) --

          The identifier of the source database.

        • EngineName (string) --

          The name of the target engine that Fleet Advisor should use in the target engine recommendation. Valid values include "rds-aurora-mysql" , "rds-aurora-postgresql" , "rds-mysql" , "rds-oracle" , "rds-sql-server" , and "rds-postgresql" .

        • Name (string) --

          The name of the limitation. Describes unsupported database features, migration action items, and other limitations.

        • Description (string) --

          A description of the limitation. Provides additional information about the limitation, and includes recommended actions that you can take to address or avoid this limitation.

        • Impact (string) --

          The impact of the limitation. You can use this parameter to prioritize limitations that you want to address. Valid values include "Blocker" , "High" , "Medium" , and "Low" .

        • Type (string) --

          The type of the limitation, such as action required, upgrade required, and limited feature.

DescribeOrderableReplicationInstances (updated) Link ¶
Changes (response)
{'OrderableReplicationInstances': {'ReleaseStatus': {'prod'}}}

Returns information about the replication instance types that can be created in the specified region.

See also: AWS API Documentation

Request Syntax

client.describe_orderable_replication_instances(
    MaxRecords=123,
    Marker='string'
)
type MaxRecords

integer

param MaxRecords

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100.

type Marker

string

param Marker

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

rtype

dict

returns

Response Syntax

{
    'OrderableReplicationInstances': [
        {
            'EngineVersion': 'string',
            'ReplicationInstanceClass': 'string',
            'StorageType': 'string',
            'MinAllocatedStorage': 123,
            'MaxAllocatedStorage': 123,
            'DefaultAllocatedStorage': 123,
            'IncludedAllocatedStorage': 123,
            'AvailabilityZones': [
                'string',
            ],
            'ReleaseStatus': 'beta'|'prod'
        },
    ],
    'Marker': 'string'
}

Response Structure

  • (dict) --

    • OrderableReplicationInstances (list) --

      The order-able replication instances available.

      • (dict) --

        In response to the DescribeOrderableReplicationInstances operation, this object describes an available replication instance. This description includes the replication instance's type, engine version, and allocated storage.

        • EngineVersion (string) --

          The version of the replication engine.

        • ReplicationInstanceClass (string) --

          The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to "dms.c4.large" .

          For more information on the settings and capacities for the available replication instance classes, see Selecting the right DMS replication instance for your migration.

        • StorageType (string) --

          The type of storage used by the replication instance.

        • MinAllocatedStorage (integer) --

          The minimum amount of storage (in gigabytes) that can be allocated for the replication instance.

        • MaxAllocatedStorage (integer) --

          The minimum amount of storage (in gigabytes) that can be allocated for the replication instance.

        • DefaultAllocatedStorage (integer) --

          The default amount of storage (in gigabytes) that is allocated for the replication instance.

        • IncludedAllocatedStorage (integer) --

          The amount of storage (in gigabytes) that is allocated for the replication instance.

        • AvailabilityZones (list) --

          List of Availability Zones for this replication instance.

          • (string) --

        • ReleaseStatus (string) --

          The value returned when the specified EngineVersion of the replication instance is in Beta or test mode. This indicates some features might not work as expected.

          Note

          DMS supports the ReleaseStatus parameter in versions 3.1.4 and later.

    • Marker (string) --

      An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .