Comment puis-je activer un agent DataSync sur plusieurs régions AWS ou sur plusieurs comptes à l'aide d'un point de terminaison d'Amazon VPC ?

Date de la dernière mise à jour : 28/08/2020

Je veux utiliser AWS DataSync pour transférer des données entre les emplacements suivants :

  • Entre l’environnement sur site et AWS
  • Entre les régions AWS
  • Entre des comptes AWS

Comment puis-je configurer mes environnements et mon agent DataSync pour ce scénario dans un réseau privé à l'aide d'un point de terminaison Amazon Virtual Private Cloud (Amazon VPC) ?

Résolution

Important : la configuration suivante suppose que :

  • Les ressources ne se connectent pas à l'Internet public, sauf pour la connexion entre les points de terminaison privés et AWS.
  • La source du transfert de données est un environnement VPC sur site ou distant avec une source de données NFS ou SMB. La destination du transfert de données est un Amazon VPC qui a accès à Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) ou Amazon FSx. Une fois la configuration terminée, vous pouvez inverser la direction de transfert en fonction des combinaisons d'emplacements prises en charge pour DataSync.

Configuration de l'environnement réseau source (source de données NFS ou SMB)

L'agent DataSync s'exécute sur le réseau source proche de la source de données NFS ou SMB. Pour cette configuration, le réseau source peut être sur site ou privé Amazon VPC.

Remarque : si vous souhaitez configurer des transferts entre VPC à l'aide de l'appairage de VPC, vérifiez les limites de l'appairage de VPC pour vous assurer que la fonction prend en charge votre configuration.

Configuration de l'environnement réseau de destination (Amazon S3, Amazon EFS ou Amazon FSx)

Pour cette configuration, le réseau de destination doit être un Amazon VPC privé pouvant accéder à un emplacement de destination tel qu'Amazon S3, Amazon EFS ou Amazon FSx. En outre, vous devez configurer les éléments suivants sur le VPC privé de destination :

1.    Créez un point de terminaison VPC pour DataSync.

2.    Vérifiez que le sous-réseau associé au point de terminaison d'un VPC dispose d'au moins quatre adresses IP disponibles pour les points de terminaison d'exécution de DataSync.

Remarque : chaque tâche DataSync utilise quatre adresses IP pour les points de terminaison d'exécution de la tâche.

3.    Configurez un groupe de sécurité pour les points de terminaison d'un VPC de DataSync. Le groupe de sécurité doit autoriser :

  • Trafic entrant sur le port TCP 443 vers le point de terminaison
  • Trafic éphémère sortant
  • Trafic entrant sur la plage de ports TCP 1024-1062 vers le point de terminaison d'un VPC de destination
  • Pour ouvrir un canal AWS Support, autorisez le trafic entrant sur le port TCP 22

Configuration de la connexion réseau entre les environnements source et destination

Pour cette configuration, le transfert de données peut se faire d'un environnement sur site source vers un VPC privé de destination. Le transfert de données peut aussi se faire entre des VPC privés situés dans différentes régions AWS ou appartenant à différents comptes AWS. Vous devez configurer les conditions de connexion et de réseau suivantes entre les environnements source et destination :

1.    Configurez une connexion réseau active entre l'environnement source et le point de terminaison d'un VPC de destination. Par exemple, vous pouvez configurer cette connexion à l'aide d'AWS Direct Connect, d'unappairage de VPC, ou d'un VPC de transit.

2.    Vérifiez qu'il n'y a pas de chevauchement dans l'espace d'adressage réseau privé entre les environnements source et destination. Vérifiez les blocs CIDR.

3.    Vérifiez que les entrées de la table de routage dans le sous-réseau source et le sous-réseau de destination autorisent le trafic entre les réseaux sans problème. Par exemple, si vous utilisez l'appairage VPC, mettez à jour vos tables de routage pour la connexion d'appairage.

4.    S'il existe un pare-feu entre les réseaux source et destination, vous devez autoriser les éléments suivants :

  • Trafic sur le port TCP 443 vers le point de terminaison d'un VPC de destination
  • Trafic sur la plage de ports TCP 1024-1062 vers le point de terminaison d'un VPC de destination
  • Pour ouvrir un canal AWS Support, autorisez le trafic sur le port TCP 22

5.    Vérifiez que tous les groupes de sécurité et pare-feu autorisent le trafic sortant éphémère ou l'utilisation d'outils de suivi des connexions.

Configuration de la machine que vous allez utiliser pour activer l'agent DataSync

Vous pouvez utiliser un ordinateur physique, une machine virtuelle ou une instance Amazon Elastic Compute Cloud (Amazon EC2) pour activer l'agent DataSync. Vous devez configurer les éléments suivants sur l'ordinateur :

1.    Configurez une connexion à l'un des réseaux privés de l'environnement source ou de destination. Vous devez configurer des itinéraires réseau valides vers les deux réseaux.

2.    S'il n'y a pas de connexion Internet, vous devez configurer l'accès réseau à l'agent DataSync sur le port TCP 80 (HTTP).

3.    Installez la commande cURL pour obtenir la clé d'activation.

4.    Installez l'interface de ligne de commande AWS (AWS CLI) pour activer l'agent DataSync.

5.    Configurez l'interface de ligne de commande AWS avec les informations d'identification AWS Identity and Access Management (IAM) semblables aux suivantes, qui vous permettent d'activer l'agent DataSync :

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": [
"datasync:*"
],
"Resource": "arn:aws:datasync:<AWS region>:<AWS Account ID>:*"
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": [
"ec2:*VpcEndpoint*",
"ec2:*subnet*",
"ec2:*security-group*"
],
"Resource": "*"
}
]
}

Remarque : si vous utilisez une instance Amazon EC2 pour activer l'agent, vous pouvez attacher le rôle IAM avec les autorisations appropriées au profil d'instance.

Activer l'agent DataSync

1.    Déployez l'agent DataSync sur une machine virtuelle (sur site) ou sur une instance EC2 (VPC privé).

2.    À partir de la machine que vous avez configurée dans les étapes précédentes, obtenez la clé d'activation de l'agent DataSync en exécutant la commande cURL suivante :

curl -vvv -G \
  --data-urlencode "activationRegion=<AWS region>" \
  --data-urlencode "gatewayType=SYNC" \
  --data-urlencode "endpointType=PRIVATE_LINK" \
  --data-urlencode "privateLinkEndpoint=<VPC Endpins IP address>" \
  --data-urlencode "redirect_to=https://<AWS region>.console.aws.amazon.com/datasync/home?region=<AWS region>#/agents/create" \
  "http://<DataSync Agent IP>"

Remarque : vous pouvez éventuellement inclure --data-urlencode "no_redirect" pour simplifier et raccourcir la commande et la sortie.

3.    Tâchez de relever la clé d'activation de la sortie de commande.

4.    À l'aide de l'interface de ligne de commande AWS, exécutez la commande describe-vpc-endpoints pour obtenir l'ID de point de terminaison d'un VPC de destination :

aws ec2 describe-vpc-endpoints --region <AWS region>

5.    Relevez le « VpcEndpointId » de la sortie de commande, qui est similaire à ce qui suit :

"VpcEndpointId": "vpce-0ba3xxxxx3752b63"

6.    À l'aide de l'interface de ligne de commande AWS, exécutez la commande describe-security-groups pour obtenir l'ID du groupe de sécurité du VPC de destination. Il s'agit du groupe de sécurité que les points de terminaison d'exécution de DataSync utiliseront pour se connecter au point de terminaison d'un VPC de DataSync.

Remarque : nous vous recommandons d'utiliser le même groupe de sécurité que le point de terminaison d'un VPC afin de réduire la complexité de la configuration.

aws ec2 describe-security-groups --region <AWS region>

7.    Relevez le « GroupID » de la sortie de commande, qui est similaire à ce qui suit :

"GroupId": "sg-000e8edxxxx4e4701"

8.    À l'aide de l'interface de ligne de commande AWS, exécutez la commande describe-subnets pour obtenir l'ID de sous-réseau associé au point de terminaison d'un VPC :

Remarque : nous recommandons d'utiliser le même sous-réseau que le point de terminaison d'un VPC pour rendre la configuration moins complexe.

aws ec2 describe-subnets --region <AWS region>

9.    Relevez le « SubnetArn » de la sortie de commande, qui est similaire à ce qui suit :

"SubnetArn": "arn:aws:ec2:<AWS region>:<AWS Account ID>:subnet/subnet-03dc4xxxx6905bb76"

10.    À l'aide de l'interface de ligne de commande AWS, exécutez la commande create-agent pour activer l'agent DataSync :

  • Pour --activation-key, saisissez la clé d'activation que vous avez obtenue à l'étape 3.
  • Pour --vpc-endpoint-id, saisissez le « VpcEndpointId » que vous avez obtenu à l'étape 5.
  • Pour --security-group-arns, saisissez le GroupID que vous avez obtenu à l'étape 7.
  • Pour —subnet-arns, entrez le subnetArn que vous avez obtenu à l'étape 9.
aws datasync create-agent --agent-name <Agent Name> --vpc-endpoint-id vpce-0cxxxxxxxxxxxxf57 --activation-key UxxxQ-0xxxB-LxxxL-AUxxV-JxxxN --subnet-arns arn:aws:ec2:<AWS region>:<AWS Account ID>:subnet/subnet-0cxxxxxxxxxxxx3 --security-group-arns arn:aws:ec2:<AWS region>:<AWS Account ID>:security-group/sg-xxxxxxxxxxxxxx --region <AWS region>

11.    La commande renvoie l'Amazon Resource Name (ARN) de l'agent DataSync :

{
    "AgentArn": "arn:aws:datasync:<AWS region>:<AWS Account ID>:agent/agent-0bxxxxxxxxxxxxxx57c"
}

12.    Exécutez la commande list-agents pour confirmer que vous avez bien créé l'agent :

aws datasync list-agents --region <AWS region>

13.    Vérifiez que l'ARN de votre agent DataSync est renvoyé dans la sortie :

{
    "Agents": [
        {
            "AgentArn": "arn:aws:datasync:<AWS region>:<AWS Account ID>:agent/agent-0bxxxxxxxxxxxxxx57c",
            "Status": "ONLINE",
            "Name": "<Agent Name>"
        }
    ]
}

Une fois votre agent DataSync activé, vous pouvez utiliser la console DataSync pour créer des emplacements et des tâches pour vos transferts.

Résolution des erreurs lors de l'activation de l'agent DataSync

1.    La commande cURL renvoie « errorType=PRIVATE_LINK_ENDPOINT_UNREACHABLE » et ne renvoie pas la clé d'activation.

Cette erreur se produit généralement lorsque le trafic sur le port TCP 443 n'est pas autorisé vers le point de terminaison d'un VPC.

2.    « Une erreur s'est produite (InvalidRequestException) lors de l'appel de l'opération CreateAgent : la configuration du lien privé n'est pas valide : l'ID du point de terminaison d'un VPC ne doit pas être spécifié pour les clés d'activation du point de terminaison public »

Cette erreur se produit généralement lorsque vous entrez la clé d'activation publique pour le paramètre --activation-key dans la commande create-agent . Vous devez entrer la clé d'activation privée pour le type de point de terminaison privé dans cette configuration.

3.    « Une erreur s'est produite (InvalidRequestException) lors de l'appel de l'opération CreateAgent : sous-réseau EC2 non valide, ARN :arn:aws:ec2:<AWS region>:<AWS Account ID>:subnet/subnet-41xxxx08, raison : sous-réseau non valide, StatusCode : 403 »

-ou-

« Une erreur s'est produite (InvalidRequestException) lors de l'appel de l'opération CreateAgent : groupe de sécurité EC2 non valide, ARN : arn:aws:ec2:<AWS region>:<AWS Account ID>:security-group/sg-000e8xxxx9d4e4701, raison : groupe de sécurité non valide, StatusCode : 403 »

-ou-

« Une erreur s'est produite (InvalidRequestException) lors de l'appel de l'opération CreateAgent : la configuration du lien privé n'est pas valide : le point de terminaison d'un VPC vpce-0ba34edxxxx752b63 n'est pas valide »

Ces erreurs se produisent généralement lorsque l'identité IAM configurée sur votre interface de ligne de commande AWS ne dispose pas d'autorisations suffisantes. Vous devez confirmer que la stratégie de votre identité IAM accorde des autorisations pour ec2:*VpcEndpoint*, ec2:*subnet*, et ec2:*security-group*.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?