Amazon VPC 엔드포인트를 사용하여 AWS 리전 또는 계정 사이에서 DataSync 에이전트를 활성화하려면 어떻게 해야 합니까?

6분 분량
0

AWS DataSync를 사용하여 다음 위치 사이에서 데이터를 전송하고 싶습니다.

온프레미스와 AWS 사이 AWS 리전 사이 AWS 계정 사이

이 경우 Amazon Virtual Private Cloud(VPC) 엔드포인트를 사용하는 프라이빗 네트워크에서 제 환경과 DataSync 에이전트를 설정하려고 합니다.

해결 방법

중요: 다음 구성에서는 아래와 같이 가정합니다.

  • 리소스는 프라이빗 엔드포인트와 AWS 사이의 연결을 제외하고 공개 인터넷에 연결되지 않습니다.
  • 데이터 전송의 원본은 온프레미스나 NFS 또는 SMB 데이터 원본이 있는 원격 VPC 환경입니다. 데이터 전송 대상은 Amazon Simple Storage Service(Amazon S3), Amazon Elastic File System(Amazon EFS) 또는 Amazon FSx에 액세스할 수 있는 Amazon VPC입니다. 설정을 완료한 후 DataSync에 지원되는 위치 조합에 따라 역방향으로 전송할 수 있습니다.

원본 네트워크 환경(NFS 또는 SMB 데이터 원본) 설정

DataSync 에이전트는 NFS 또는 SMB 데이터 원본과 가까운 원본 네트워크에서 실행됩니다. 이 구성의 경우 원본 네트워크가 온프레미스 또는 프라이빗 Amazon VPC일 수 있습니다.

참고: VPC 피어링을 사용하는 VPC 사이의 전송을 설정하려면 VPC 피어링 제한을 참조하여 이 기능이 구성을 지원하는지 확인하세요.

대상 네트워크 환경(Amazon S3, Amazon EFS 또는 Amazon FSx) 설정

이 구성의 경우, 대상 네트워크가 Amazon S3, Amazon EFS, Amazon FSx 등의 대상 위치에 액세스할 수 있는 프라이빗 Amazon VPC여야 합니다.

또한, 대상 프라이빗 VPC를 다음과 같이 설정해야 합니다.

1.    DataSync의 VPC 엔드포인트를 생성합니다.

2.    VPC 엔드포인트와 연결된 서브넷에 DataSync 실행 엔드포인트에서 사용할 수 있는 IP 주소가 4개 이상인지 확인합니다.

참고: 각 DataSync 태스크는 태스크 실행 엔드포인트에 4개의 IP 주소를 사용합니다.

3.    DataSync VPC 엔드포인트에 보안 그룹을 구성합니다. 보안 그룹은 다음을 허용해야 합니다.

  • TCP 포트 443에서 엔드포인트로의 인바운드 트래픽
  • 아웃바운드 휘발성 트래픽
  • TCP 포트 1024~1062에서 대상 VPC 엔드포인트로의 인바운드 트래픽
  • AWS Support 채널을 열기 위해 TCP 포트 22에서 인바운드 트래픽 허용

원본 및 대상 환경 사이에 네트워크 연결 설정

이 구성의 경우 원본 온프레미스 환경에서 대상 프라이빗 VPC로 데이터를 전송할 수 있습니다. 또는 다른 AWS 리전에 있거나 다른 AWS 계정에 속한 프라이빗 VPC 사이에 데이터를 전송할 수 있습니다. 원본과 대상 환경에 다음과 같이 연결 및 네트워크 요구 사항을 설정해야 합니다.

1.    원본 환경과 대상 VPC 엔드포인트 사이에 활성 네트워크 연결을 설정합니다. 예를 들어 AWS Direct Connect, VPC 피어링 또는 전송 VPC를 사용하여 이 연결을 설정할 수 있습니다.

2.    원본 및 대상 환경 사이에서 프라이빗 네트워크 주소 공간이 중첩되지 않는지 확인합니다. 그런 다음 CIDR 블록을 확인합니다.

3.    원본 서브넷과 대상 서브넷에서 라우팅 테이블 항목이 네트워크 간 전송을 문제없이 허용하는지 확인합니다. 예를 들어 VPC 피어링을 사용할 경우 피어링 연결에 대한 라우팅 테이블을 업데이트합니다.

4.    원본 및 대상 네트워크 사이에 방화벽이 있을 경우, 다음을 허용해야 합니다.

  • TCP 포트 443에서 대상 VPC 엔드포인트 서브넷으로의 트래픽
  • TCP 포트 1024~1062에서 대상 VPC 엔드포인트로의 트래픽
  • AWS Support 채널을 열기 위해 TCP 포트 22에서 트래픽 허용

5.    모든 보안 그룹과 방화벽에서 휘발성 아웃바운드 트래픽을 허용하는지 또는 연결 추적 도구 사용을 허용하는지 확인합니다.

DataSync 에이전트 활성화에 사용할 머신 설정

물리적 컴퓨터, 가상 머신 또는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용하여 DataSync 에이전트를 활성화할 수 있습니다. 머신을 다음과 같이 설정해야 합니다.

1.    원본 또는 대상 환경에서 프라이빗 네트워크 중 하나에 연결을 설정합니다. 두 네트워크에 모두 유효한 네트워크 경로를 구성해야 합니다.

2.    인터넷에 연결되어 있지 않으면 TCP 포트 80(HTTP)에서 DataSync 에이전트에 대한 네트워크 액세스를 설정해야 합니다.

3.    cURL 명령을 설치하여 활성화 키를 가져옵니다.

4.    AWS 명령줄 인터페이스(AWS CLI)를 설치하고 DataSync 에이전트를 활성화합니다.

5.    AWS Identity and Access Management(IAM) 자격 증명으로 DataSync 에이전트를 활성화하도록 AWS CLI를 다음과 같이 구성합니다.

{
  "Version": "2012-10-17",
  "Statement": [{
      "Sid": "VisualEditor2",
      "Effect": "Allow",
      "Action": [
        "datasync:*"
      ],
      "Resource": "arn:aws:datasync:us-east-1:123456789012:*"
    },
    {
      "Sid": "VisualEditor3",
      "Effect": "Allow",
      "Action": [
        "ec2:*VpcEndpoint*",
        "ec2:*subnet*",
        "ec2:*security-group*"
      ],
      "Resource": "*"
    }
  ]
}

참고: Amazon EC2 인스턴스를 사용하여 에이전트를 활성화할 경우, IAM 역할을 인스턴스 프로필에 대한 올바른 권한과 연결할 수 있습니다.

DataSync 에이전트 활성화

참고: us-east-1을 선택한 AWS 리전으로 바꿔야 합니다.

1.    DataSync 에이전트를 가상 머신(온프레미스) 또는 EC2 인스턴스(프라이빗 VPC)에 배포합니다.

2.    이전 단계에서 설정한 머신에서 다음 cURL 명령을 실행하여 DataSync 에이전트의 활성화 키를 가져옵니다.

curl -vvv -G \
  --data-urlencode "activationRegion=us-east-1" \
  --data-urlencode "gatewayType=SYNC" \
  --data-urlencode "endpointType=PRIVATE_LINK" \
  --data-urlencode "privateLinkEndpoint=vpc_endpoint_ip_address" \
  --data-urlencode "redirect_to=https://us-east-1.console.aws.amazon.com/datasync/home?region=us-east-1#/agents/create" \
  "http://datasync_agent_ip"

참고: 또는 **--data-urlencode "no_redirect"**를 포함하여 명령과 출력을 단순화 및 단축할 수 있습니다.

-또는-

로컬 콘솔을 사용하여 활성화 키를 얻을 수 있습니다.

3.    명령 출력에서 활성화 키를 메모합니다.

4.    AWS CLI를 사용하여 describe-vpc-endpoints명령을 실행하고 대상 VPC 엔드포인트 ID를 가져옵니다.

aws ec2 describe-vpc-endpoints --region us-east-1

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

5.    다음과 같이 명령 출력에서 **"VpcEndpointId"**를 메모합니다.

"VpcEndpointId": "vpce-0ba3xxxxx3752b63"

6.    AWS CLI를 사용하여 describe-security-groups 명령을 실행하고 대상 VPC의 보안 그룹 ID를 가져옵니다. DataSync 실행 엔드포인트가 이 보안 그룹을 사용하여 DataSync VPC 엔드포인트에 연결할 것입니다.

참고: VPC 엔드포인트와 동일한 보안 그룹을 사용하여 구성의 복잡성을 낮추는 것이 좋습니다.

aws ec2 describe-security-groups --region us-east-1

7.    다음과 같이 명령 출력에서 **"GroupID"**를 메모합니다.

"GroupId": "sg-000e8edxxxx4e4701"

8.    AWS CLI를 사용하여 describe-subnets 명령을 실행하고 VPC 엔드포인트와 연결된 서브넷 ID를 가져옵니다.

참고: VPC 엔드포인트와 동일한 서브넷을 사용하여 구성의 복잡성을 낮추는 것이 좋습니다.

aws ec2 describe-subnets --region us-east-1

9.    다음과 같이 명령 출력에서 **"SubnetArn"**을 적어둡니다.

"SubnetArn": "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-03dc4xxxx6905bb76"

10.    AWS CLI를 사용하여 create-agent 명령을 실행하고 DataSync 에이전트를 활성화합니다.

  • --activation-key에 3단계에서 받은 활성화 키를 입력합니다.
  • --vpc-endpoint-id에 5단계에서 받은 **"VpcEndpointId"**를 입력합니다.
  • --security-group-arns에 7단계에서 받은 GroupID를 입력합니다.
  • --subnet-arns에 9단계에서 받은 SubnetArn을 입력합니다.
aws datasync create-agent --agent-name your_agent_name --vpc-endpoint-id vpce-0cxxxxxxxxxxxxf57 --activation-key UxxxQ-0xxxB-LxxxL-AUxxV-JxxxN --subnet-arns arn:aws:ec2:us-east-1:123456789012:subnet/subnet-0cxxxxxxxxxxxx3 --security-group-arns arn:aws:ec2:us-east-1:123456789012:security-group/sg-xxxxxxxxxxxxxx --region us-east-1

11.    이 명령은 DataSync 에이전트의 Amazon 리소스 이름(ARN)을 반환합니다.

{
    "AgentArn": "arn:aws:datasync:us-east-1:123456789012:agent/agent-0bxxxxxxxxxxxxxx57c"
}

12.    list-agents 명령을 실행하여 에이저트가 생성되었는지 확인합니다.

aws datasync list-agents --region us-east-1

13.    DataSync 에이전트의 ARN이 출력에 반환되었는지 확인합니다.

{
    "Agents": [
        {
            "AgentArn": "arn:aws:datasync:us-east-1:123456789012:agent/agent-0bxxxxxxxxxxxxxx57c",
            "Status": "ONLINE",
            "Name": "your_agent_name"
        }
    ]
}

DataSync 에이전트가 활성화되고 나면 DataSync 콘솔을 사용하여 전송을 위한 위치태스크를 생성할 수 있습니다.

DataSync 에이전트 활성화 중 발생한 오류 해결

'The cURL command returns "errorType=PRIVATE_LINK_ENDPOINT_UNREACHABLE' and doesn't return the activation key'

이 오류는 대개 TCP 포트 443의 트래픽이 VPC 엔드포인트로 전송되도록 허용되지 않은 경우에 발생합니다.

"An error occurred (InvalidRequestException) when calling the CreateAgent operation(CreateAgent 작업 호출 시 오류가 발생했습니다(InvalidRequestException)). Private link configuration is invalid(개인 링크 구성이 잘못되었습니다): VPC Endpoint Id should remain unspecified for public-endpoint activation keys(퍼블릭 엔드포인트 활성화 키에 대해 VPC 엔드포인트 ID를 지정하지 않은 상태로 유지해야 합니다.)"

이 오류는 대개 create-agent 명령에서 --activation-key 파라미터에 퍼블릭 활성화 키를 입력했을 때 발생합니다. 이 구성에서는 프라이빗 엔드포인트 유형에 프라이빗 활성화 키를 입력해야 합니다.

"An error occurred (InvalidRequestException) when calling the CreateAgent operation(CreateAgent 작업 호출 시 오류가 발생했습니다(InvalidRequestException)). Invalid EC2 subnet(잘못된 EC2 서브넷), ARN: arn:aws:ec2:us-east-1:123456789012:subnet/subnet-41xxxx08, reason(이유): invalid subnet(잘못된 서브넷), StatusCode(상태 코드): 403"

-또는-

"An error occurred (InvalidRequestException) when calling the CreateAgent operation(CreateAgent 작업 호출 시 오류가 발생했습니다(InvalidRequestException)): Invalid EC2 security group(잘못된 EC2 보안 그룹), ARN: arn:aws:ec2:us-east-1:123456789012:security-group/sg-000e8xxxx9d4e4701, reason(이유): invalid security group(잘못된 보안 그룹), StatusCode(상태 코드): 403"

-또는-

"An error occurred (InvalidRequestException) when calling the CreateAgent operation: Private link configuration is invalid: VPC endpoint vpce-0ba34edxxxx752b63 is not valid"

이 오류는 대개 AWS CLI에 구성된 자격 증명에 권한이 부족할 때 발생합니다. IAM 자격 증명의 정책에서 ec2:*VpcEndpoint*, ec2:*subnet*, ec2:*security-group* 권한을 부여하는지 확인해야 합니다.


관련 정보

AWS DataSync 작동 방식

가상 사설 클라우드에서 AWS DataSync 사용

AWS DataSync 요구 사항

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠