Used to failover a shard. This API is designed for testing the behavior of your application in case of MemoryDB failover. It is not designed to be used as a production-level tool for initiating a failover to overcome a problem you may have with the cluster. Moreover, in certain conditions such as large scale operational events, Amazon may block this API.

See also: AWS API Documentation

Request Syntax

response = client.failover_shard(
  • ClusterName (string) --


    The cluster being failed over

  • ShardName (string) --


    The name of the shard

Return type



Response Syntax

    'Cluster': {
        'Name': 'string',
        'Description': 'string',
        'Status': 'string',
        'PendingUpdates': {
            'Resharding': {
                'SlotMigration': {
                    'ProgressPercentage': 123.0
            'ACLs': {
                'ACLToApply': 'string'
            'ServiceUpdates': [
                    'ServiceUpdateName': 'string',
                    'Status': 'available'|'in-progress'|'complete'|'scheduled'
        'NumberOfShards': 123,
        'Shards': [
                'Name': 'string',
                'Status': 'string',
                'Slots': 'string',
                'Nodes': [
                        'Name': 'string',
                        'Status': 'string',
                        'AvailabilityZone': 'string',
                        'CreateTime': datetime(2015, 1, 1),
                        'Endpoint': {
                            'Address': 'string',
                            'Port': 123
                'NumberOfNodes': 123
        'AvailabilityMode': 'singleaz'|'multiaz',
        'ClusterEndpoint': {
            'Address': 'string',
            'Port': 123
        'NodeType': 'string',
        'EngineVersion': 'string',
        'EnginePatchVersion': 'string',
        'ParameterGroupName': 'string',
        'ParameterGroupStatus': 'string',
        'SecurityGroups': [
                'SecurityGroupId': 'string',
                'Status': 'string'
        'SubnetGroupName': 'string',
        'TLSEnabled': True|False,
        'KmsKeyId': 'string',
        'ARN': 'string',
        'SnsTopicArn': 'string',
        'SnsTopicStatus': 'string',
        'SnapshotRetentionLimit': 123,
        'MaintenanceWindow': 'string',
        'SnapshotWindow': 'string',
        'ACLName': 'string',
        'AutoMinorVersionUpgrade': True|False,
        'DataTiering': 'true'|'false'

Response Structure

  • (dict) --

    • Cluster (dict) --

      The cluster being failed over

      • Name (string) --

        The user-supplied name of the cluster. This identifier is a unique key that identifies a cluster.

      • Description (string) --

        A description of the cluster

      • Status (string) --

        The status of the cluster. For example, Available, Updating, Creating.

      • PendingUpdates (dict) --

        A group of settings that are currently being applied.

        • Resharding (dict) --

          The status of an online resharding operation.

          • SlotMigration (dict) --

            The status of the online resharding slot migration

            • ProgressPercentage (float) --

              The percentage of the slot migration that is complete.

        • ACLs (dict) --

          A list of ACLs associated with the cluster that are being updated

          • ACLToApply (string) --

            A list of ACLs pending to be applied.

        • ServiceUpdates (list) --

          A list of service updates being applied to the cluster

          • (dict) --

            Update action that has yet to be processed for the corresponding apply/stop request

            • ServiceUpdateName (string) --

              The unique ID of the service update

            • Status (string) --

              The status of the service update

      • NumberOfShards (integer) --

        The number of shards in the cluster

      • Shards (list) --

        A list of shards that are members of the cluster.

        • (dict) --

          Represents a collection of nodes in a cluster. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.

          • Name (string) --

            The name of the shard

          • Status (string) --

            The current state of this replication group - creating, available, modifying, deleting.

          • Slots (string) --

            The keyspace for this shard.

          • Nodes (list) --

            A list containing information about individual nodes within the shard

            • (dict) --

              Represents an individual node within a cluster. Each node runs its own instance of the cluster's protocol-compliant caching software.

              • Name (string) --

                The node identifier. A node name is a numeric identifier (0001, 0002, etc.). The combination of cluster name, shard name and node name uniquely identifies every node used in a customer's Amazon account.

              • Status (string) --

                The status of the service update on the node

              • AvailabilityZone (string) --

                The Availability Zone in which the node resides

              • CreateTime (datetime) --

                The date and time when the node was created.

              • Endpoint (dict) --

                The hostname for connecting to this node.

                • Address (string) --

                  The DNS hostname of the node.

                • Port (integer) --

                  The port number that the engine is listening on.

          • NumberOfNodes (integer) --

            The number of nodes in the shard

      • AvailabilityMode (string) --

        Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).

      • ClusterEndpoint (dict) --

        The cluster's configuration endpoint

        • Address (string) --

          The DNS hostname of the node.

        • Port (integer) --

          The port number that the engine is listening on.

      • NodeType (string) --

        The cluster's node type

      • EngineVersion (string) --

        The Redis engine version used by the cluster

      • EnginePatchVersion (string) --

        The Redis engine patch version used by the cluster

      • ParameterGroupName (string) --

        The name of the parameter group used by the cluster

      • ParameterGroupStatus (string) --

        The status of the parameter group used by the cluster, for example 'active' or 'applying'.

      • SecurityGroups (list) --

        A list of security groups used by the cluster

        • (dict) --

          Represents a single security group and its status.

          • SecurityGroupId (string) --

            The identifier of the security group.

          • Status (string) --

            The status of the security group membership. The status changes whenever a security group is modified, or when the security groups assigned to a cluster are modified.

      • SubnetGroupName (string) --

        The name of the subnet group used by the cluster

      • TLSEnabled (boolean) --

        A flag to indicate if In-transit encryption is enabled

      • KmsKeyId (string) --

        The ID of the KMS key used to encrypt the cluster

      • ARN (string) --

        The Amazon Resource Name (ARN) of the cluster.

      • SnsTopicArn (string) --

        The Amazon Resource Name (ARN) of the SNS notification topic

      • SnsTopicStatus (string) --

        The SNS topic must be in Active status to receive notifications

      • SnapshotRetentionLimit (integer) --

        The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

      • MaintenanceWindow (string) --

        Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

      • SnapshotWindow (string) --

        The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.

      • ACLName (string) --

        The name of the Access Control List associated with this cluster.

      • AutoMinorVersionUpgrade (boolean) --

        When set to true, the cluster will automatically receive minor engine version upgrades after launch.

      • DataTiering (string) --

        Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering.


  • MemoryDB.Client.exceptions.APICallRateForCustomerExceededFault
  • MemoryDB.Client.exceptions.InvalidClusterStateFault
  • MemoryDB.Client.exceptions.ShardNotFoundFault
  • MemoryDB.Client.exceptions.ClusterNotFoundFault
  • MemoryDB.Client.exceptions.TestFailoverNotAvailableFault
  • MemoryDB.Client.exceptions.InvalidKMSKeyFault
  • MemoryDB.Client.exceptions.InvalidParameterValueException
  • MemoryDB.Client.exceptions.InvalidParameterCombinationException