0

J'ai créé une pile pour AWS DMS et une autre pour deux tests Postgres dbs AWS::RDS::DBInstance, avec cfn-sphere Les deux piles ont été créées avec succès et j'ai pu créer une table dans la base de données source et charger des données dans celui-ci.AWS DMS ne peut pas démarrer la migration

J'ai essayé de start the replication task with boto3:

client = boto3.client('dms') 
response = client.start_replication_task(
    ReplicationTaskArn=replication_task_arn, 
    StartReplicationTaskType='start-replication' 
) 

Mais cela n'a pas fonctionné et je me suis l'erreur:

botocore.errorfactory.InvalidResourceStateFault: An error occurred (InvalidResourceStateFault) when calling the StartReplicationTask operation: Test connection for replication instance (url) should be successful for starting the replication task

J'ai essayé de le déclencher à partir du site mais je m'y suis une erreur qui dit :

AWSDatabaseMigrationService: Test connection for replication instance and endpoint should be successful for starting the replication task

Malheureusement la connexion entre l'instance de réplication et le point cible n'a pas fonctionné du site Web (mon compte a un accès complet). Mais cela a fonctionné depuis ma ligne de commande avec le client boto3 dms, test_connection.

Ma règle de groupe de sécurité est:

SecurityGroupIngress: 
    Type: 'AWS::EC2::SecurityGroupIngress' 
    Properties: 
     GroupId: !Ref dbSecurityGroup 
     IpProtocol: tcp 
     FromPort: '5432' 
     ToPort: '5432' 
     CidrIp: //my public ip 

Quelqu'un peut-il me guider où chercher et comment y remédier? (c'est ma première tâche AWS)

Répondre

1

1) Assurez-vous que l'instance de réplication et l'extrémité cible sont dans le même vpc. Sinon, vous devez effectuer un peering vpc. Les deux devraient également être dans la même région.

2) Ajouter le groupe de sécurité de l'instance de réplication à la règle entrante du groupe de sécurité de la base de données cible.

Type: AWS::EC2::SecurityGroup 
Properties: 
    GroupName: "target-endpoint-sg" 
    GroupDescription: "security group of target db server" 
    VpcId: <provide your vpc id> 
    SecurityGroupIngress: 
    - IpProtocol: tcp 
     FromPort: '5432' 
     ToPort: '5432' 
     SourceSecurityGroupId: <sec-grp of ReplicationInstance> 

3) Si votre base de données cible est déjà créé, puis indiquez le nom du serveur complet (ex: target-database-name.xxxxxxxxxxx.us-east-1.rds.amazonaws.com), nom d'utilisateur et les valeurs de mot de passe correctement, lorsque vous créez les points finaux cibles . Dans la console aws, passez à DMS -> Endpoints -> Select your endpoint checkbox -> Test connection pour vérifier les connexions.

En cas de succès, utilisez le rôle du même utilisateur dans la configuration du client boto3 et testez la méthode test_connection.