를 사용하여 DynamoDB 데이터 내보내기 및 가져오기 AWS Data Pipeline - Amazon DynamoDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 DynamoDB 데이터 내보내기 및 가져오기 AWS Data Pipeline

를 AWS Data Pipeline 사용하여 DynamoDB 테이블의 데이터를 Amazon S3 버킷의 파일로 내보낼 수 있습니다. 그 밖에 동일한 AWS 리전에 속하거나 다른 리전에 속할 때에도 데이터를 Amazon S3에서 DynamoDB 테이블로 가져올 수 있습니다.

참고

이제 DynamoDB 콘솔은 이제 기본적으로 Amazon S3에서 가져오고 Amazon S3로 내보내기를 지원합니다. 이러한 흐름은 AWS Data Pipeline 가져오기 흐름과 호환되지 않습니다. 자세한 내용은 Amazon S3에서 가져오기, Amazon S3에서 내보내기Amazon DynamoDB 테이블 데이터를 Amazon S3의 데이터 레이크로 내보내기 블로그 게시물을 참조하세요.

이러한 콘솔의 데이터 내보내기 및 가져오기 기능은 다양한 시나리오에서 유용합니다. 예를 들어 테스트 목적으로 데이터 기준선 설정을 유지하려고 합니다. 이때는 기준선 데이터를 DynamoDB 테이블에 업로드한 뒤 Amazon S3로 내보냅니다. 그런 다음 애플리케이션을 실행하여 테스트 데이터를 변경한 후 기준선을 Amazon S3에서 DynamoDB 테이블로 다시 가져와서 데이터 설정을 ‘다시 지정’할 수 있습니다. 또 다른 예로 우발적인 데이터 삭제, 즉 DeleteTable 작업도 들 수 있습니다. 이러한 경우에는 Amazon S3의 이전 내보내기 파일에서 데이터를 복구할 수 있습니다. 한 AWS 리전의 DynamoDB 테이블에서 데이터를 복사하여 Amazon S3에 저장한 다음 Amazon S3의 데이터를 두 번째 리전의 동일한 DynamoDB 테이블로 가져올 수도 있습니다. 그러면 두 번째 리전의 애플리케이션이 가장 가까운 DynamoDB 엔드포인트에 액세스하여 자체 데이터 사본을 사용하면서 네트워크 지연 시간까지 줄일 수 있습니다.

중요

DynamoDB 백업 및 복원은 완전 관리형 기능입니다. 프로덕션 애플리케이션의 성능과 가용성에 아무런 영향을 주지 않고도 몇 메가바이트에서 수백 테라바이트에 이르는 데이터 테이블을 백업할 방법이 있습니다. 클릭 한 번으로 AWS Management Console 또는 한 번의 API 호출로 테이블을 복원할 수 있습니다. 를 사용하는 대신 DynamoDB의 기본 백업 및 복원 기능을 사용하는 것이 좋습니다. AWS Data Pipeline 자세한 설명은 DynamoDB에 대한 온디맨드 백업 및 복원 사용 섹션을 참조하세요.

다음 다이어그램에는 AWS Data Pipeline을 사용한 DynamoDB 데이터 내보내기 및 가져오기가 개략적으로 나와 있습니다.

DynamoDB 테이블을 내보내려면 콘솔을 사용하여 새 AWS Data Pipeline 파이프라인을 생성합니다. 파이프라인이 Amazon EMR 클러스터를 시작하여 실제 내보내기가 이루어집니다. Amazon EMR은 DynamoDB에서 데이터를 읽은 다음 Amazon S3 버킷의 내보내기 파일에 데이터를 기록합니다.

프로세스가 가져오기와 비슷하지만 가져오기는 데이터를 Amazon S3 버킷에서 읽은 다음 DynamoDB 테이블에 기록한다는 점이 다릅니다.

중요

DynamoDB 데이터를 내보내거나 가져올 때 사용되는 AWS 기본 서비스에 대해 추가 비용이 발생합니다.

  • AWS Data Pipeline - 사용자의 가져오기/내보내기 워크플로우를 관리합니다.

  • Amazon S3 - DynamoDB에서 내보낸 데이터나 DynamoDB로 가져온 데이터를 포함합니다.

  • Amazon EMR - 관리형 Hadoop 클러스터를 실행하여 DynamoDB와 Amazon S3 간 읽기 및 쓰기 작업을 수행합니다. 클러스터 구성은 m3.xlarge 인스턴스 리더 노드 하나와 m3.xlarge 인스턴스 코어 노드 하나로 구성됩니다.

자세한 내용은 AWS Data Pipeline 요금, Amazon EMR 요금Amazon S3 요금을 참조하세요.

데이터 내보내기 및 가져오기 사전 조건

데이터를 내보내고 가져오는 AWS Data Pipeline 데 사용할 때는 파이프라인에서 수행할 수 있는 작업과 파이프라인이 소비할 수 있는 리소스를 지정해야 합니다. 허용된 작업 및 리소스는 AWS Identity and Access Management (IAM) 역할을 사용하여 정의됩니다.

IAM 정책을 만들어 사용자, 역할 또는 그룹에 연결하여 액세스를 제어할 수도 있습니다. 이러한 정책들은 DynamoDB 데이터를 가져오거나 내보낼 수 있는 사용자를 지정하는 데 사용됩니다.

중요

사용자가 AWS 외부 사용자와 상호 작용하려는 경우 프로그래밍 방식의 액세스가 필요합니다. AWS Management Console 프로그래밍 방식의 액세스 권한을 부여하는 방법은 액세스하는 사용자 유형에 따라 다릅니다. AWS

사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.

프로그래밍 방식 액세스가 필요한 사용자는 누구인가요? 액세스 권한을 부여 받을 사용자 액세스 권한을 부여하는 사용자

작업 인력 ID

(IAM 자격 증명 센터에서 관리되는 사용자)

임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 API에 대한 프로그래밍 요청에 서명할 수 있습니다. AWS

사용하고자 하는 인터페이스에 대한 지침을 따릅니다.

IAM 임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 API에 대한 프로그래밍 방식 요청에 서명할 수 있습니다. AWS IAM 사용 설명서의 AWS 리소스와 함께 임시 자격 증명 사용의 지침을 따르십시오.
IAM

(권장되지 않음)

장기 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 API에 대한 프로그래밍 요청에 서명할 수 있습니다. AWS

사용하고자 하는 인터페이스에 대한 지침을 따릅니다.

AWS Data Pipeline에 대한 IAM 역할 생성

사용하려면 AWS Data Pipeline 계정에 다음과 같은 IAM 역할이 있어야 합니다. AWS

  • DataPipelineDefaultRole— 파이프라인이 사용자를 대신하여 수행할 수 있는 조치.

  • DataPipelineDefaultResourceRole— 파이프라인이 사용자를 대신하여 제공할 AWS 리소스. DynamoDB 데이터를 내보내거나 가져올 때는 이 리소스에 Amazon EMR 클러스터, 그리고 클러스터와 연동된 Amazon EC2 인스턴스가 포함됩니다.

한 AWS Data Pipeline 번도 사용해 본 적이 없다면 DataPipelineDefaultResourceRole직접 만들어야 DataPipelineDefaultRole합니다. 이러한 역할을 생성한 후에는 언제든지 해당 역할을 사용하여 DynamoDB 데이터를 내보내거나 가져올 수 있습니다.

참고

이전에 AWS Data Pipeline 콘솔을 사용하여 파이프라인을 생성한 적이 있다면, 그 DataPipelineDefaultRole때 자동으로 DataPipelineDefaultResourceRole생성되었습니다. 이때는 더 이상 작업은 필요 없으며, 이 단원을 생략하고 바로 DynamoDB 콘솔을 사용한 파이프라인 생성을 시작할 수 있습니다. 자세한 내용은 DynamoDB에서 Amazon S3로 데이터 내보내기Amazon S3에서 DynamoDB로 데이터 가져오기 단원을 참조하세요.

  1. 에 AWS Management Console 로그인하고 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. IAM 콘솔 대시보드에서 Roles를 클릭합니다.

  3. [Create Role]을 클릭하고 다음과 같이 실행합니다.

    1. AWS 서비스 신뢰할 수 있는 엔터티에서 데이터 파이프라인(Data Pipeline)을 선택합니다.

    2. [Select your use case] 패널에서 [Data Pipeline]을 선택한 후 [Next: Permissions]을 선택합니다.

    3. AWSDataPipelineRole 정책은 자동으로 연결됩니다. 다음: 검토를 선택합니다.

    4. [Role name] 필드에서 역할 이름으로DataPipelineDefaultRole을 입력하고 [Create role]을 선택하세요.

  4. [Create Role]을 클릭하고 다음과 같이 실행합니다.

    1. AWS 서비스 신뢰할 수 있는 엔터티에서 데이터 파이프라인(Data Pipeline)을 선택합니다.

    2. [Select your use case] 패널에서 [EC2 Role for Data Pipeline]을 선택한 후 [Next:Permissions]을 선택하세요.

    3. AmazonEC2RoleForDataPipelineRole 정책은 자동으로 연결됩니다. 다음: 검토를 선택합니다.

    4. [Role name] 필드에서 역할 이름으로DataPipelineDefaultResourceRole을 입력하고 [Create role]을 선택하세요.

이제 위의 두 가지 역할이 생성되었으므로 DynamoDB 콘솔을 사용하여 파이프라인 생성을 시작할 수 있습니다. 자세한 내용은 DynamoDB에서 Amazon S3로 데이터 내보내기Amazon S3에서 DynamoDB로 데이터 가져오기 단원을 참조하세요.

사용자 및 그룹에 다음을 사용하여 내보내기 및 가져오기 작업을 수행할 수 있는 권한 부여 AWS Identity and Access Management

다른 사용자, 역할 또는 그룹이 DynamoDB 테이블 데이터를 내보내거나 가져올 수 있도록 허용하려면 IAM 정책을 생성하여 지정하려는 사용자 또는 그룹에 연결하면 됩니다. 이 정책에는 필요한 작업 권한만 저장됩니다.

전체 액세스 권한 부여

다음 절차는 AWS 관리형 AWSDataPipeline_FullAccess 정책과 Amazon EMR 인라인 정책을 AmazonDynamoDBFullAccess 사용자에게 연결하는 방법을 설명합니다. 이러한 관리형 정책은 DynamoDB 리소스에 AWS Data Pipeline 대한 전체 액세스를 제공하며, Amazon EMR 인라인 정책과 함께 사용하면 사용자가 이 설명서에 설명된 작업을 수행할 수 있습니다.

참고

제안되는 권한의 범위를 제한하기 위해 위의 인라인 정책에서는 dynamodbdatapipeline 태그를 사용합니다. 이 제한 없이 이 설명서를 사용하려면 제안되는 정책의 Condition 섹션을 제거할 수 있습니다.

  1. https://console.aws.amazon.com/iam/ 에서 IAM 콘솔에 AWS Management Console 로그인하고 엽니다.

  2. IAM 콘솔 대시보드에서 Users(사용자)를 클릭하고 변경하려는 사용자를 선택합니다.

  3. Permissions(권한) 탭에서 Add Policy(정책 추가)를 클릭합니다.

  4. Attach permissions(권한 연결) 영역에서 Attach existing policies directly(기존 정책 직접 연결)를 선택합니다.

  5. AmazonDynamoDBFullAccessAWSDataPipeline_FullAccess를 모두 선택하고 Next:Review(다음:검토)를 클릭합니다.

  6. Add permissions(권한 추가)를 클릭합니다.

  7. 다시 Permissions(권한) 탭에서 Add inline policy(인라인 정책 추가)를 클릭합니다.

  8. Create a policy(정책 생성) 페이지에서 JSON 탭을 클릭합니다.

  9. 아래 내용을 붙여 넣습니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMR", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeStep", "elasticmapreduce:DescribeCluster", "elasticmapreduce:RunJobFlow", "elasticmapreduce:TerminateJobFlows" ], "Resource": "*", "Condition": { "Null": { "elasticmapreduce:RequestTag/dynamodbdatapipeline": "false" } } } ] }
  10. Review policy(정책 검토)를 클릭합니다.

  11. 이름 필드에 EMRforDynamoDBDataPipeline을 입력합니다.

  12. Create policy(정책 생성)를 클릭합니다.

참고

역할 또는 그룹에게 이 관리형 정책을 추가하는 방법도 사용자와 비슷합니다.

특정 DynamoDB 테이블에 대한 액세스 제한

사용자가 테이블의 하위 집합만 내보내거나 가져올 수 있도록 액세스를 제한하려면 사용자 지정된 IAM 정책 문서를 생성해야 합니다. 사용자 지정 정책을 생성할 때는 먼저 전체 액세스 권한 부여에 설명된 프로세스를 사용하여 관리자가 지정하는 테이블 작업만 사용자에게 허용되도록 변경할 수 있습니다.

예를 들어 사용자에게 Forum, ThreadReply 테이블만 내보내거나 가져올 수 있도록 허용한다고 가정하겠습니다. 이 절차는 사용자 지정 정책의 생성 방법에 관한 것이므로 사용자만 해당 작업이 가능합니다.

  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. IAM 콘솔 대시보드에서 Policies(정책)Create Policy(정책 생성)를 차례대로 클릭합니다.

  3. 정책 생성 패널에서 AWS 관리형 정책 복사로 이동한 다음 선택을 클릭합니다.

  4. AWS 관리형 정책 복사 패널에서 선택으로 AmazonDynamoDBFullAccess 이동해 선택을 클릭합니다.

  5. [Review Policy] 창에서 다음과 같이 실행합니다.

    1. 자동 생성된 [Policy Name]과 [Description]을 확인합니다. 원한다면 값을 변경할 수 있습니다.

    2. [Policy Document] 텍스트 상자에서 특정 테이블에 대한 액세스를 제한하도록 정책을 편집합니다. 기본적으로 정책은 다음과 같이 모든 테이블에 대한 DynamoDB 작업을 모두 허용합니다.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "dynamodb:*", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Subscribe", "sns:Unsubscribe" ], "Effect": "Allow", "Resource": "*", "Sid": "DDBConsole" }, ...remainder of document omitted...

      정책을 제한하려면 먼저 다음 라인을 삭제합니다.

      "dynamodb:*",

      다음으로 Forum, ThreadReply 테이블에 대한 액세스만 허용하는 Action을 새로 생성합니다.

      { "Action": [ "dynamodb:*" ], "Effect": "Allow", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/Forum", "arn:aws:dynamodb:us-west-2:123456789012:table/Thread", "arn:aws:dynamodb:us-west-2:123456789012:table/Reply" ] },
      참고

      us-west-2를 DynamoDB 테이블이 속하는 리전으로 변경합니다. AWS 계정 123456789012 번호로 바꾸십시오.

      마지막으로, 새로운 Action을 정책 문서에 추가합니다.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "dynamodb:*" ], "Effect": "Allow", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/Forum", "arn:aws:dynamodb:us-west-2:123456789012:table/Thread", "arn:aws:dynamodb:us-west-2:123456789012:table/Reply" ] }, { "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListSubscriptions", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "sns:Subscribe", "sns:Unsubscribe" ], "Effect": "Allow", "Resource": "*", "Sid": "DDBConsole" }, ...remainder of document omitted...
  6. 원하는 대로 정책이 설정되었으면 [Create Policy]를 클릭합니다.

정책을 생성했으면 사용자에게 추가할 수 있습니다.

  1. IAM 콘솔 대시보드에서 Users(사용자)를 클릭하고 변경하려는 사용자를 선택합니다.

  2. [Permissions] 탭에서 [Attach Policy]를 클릭합니다.

  3. [Attach Policy] 창에서 정책 이름을 선택한 다음 [Attach Policy]를 클릭합니다.

참고

역할 또는 그룹에게 관리자 정책을 추가하는 방법도 사용자와 비슷합니다.

DynamoDB에서 Amazon S3로 데이터 내보내기

이번 단원에서는 데이터를 하나 이상의 DynamoDB 테이블에서 Amazon S3 버킷으로 내보내는 방법에 대해 살펴봅니다. 데이터를 내보내기 위해서는 먼저 Amazon S3 버킷을 생성해야 합니다.

중요

AWS Data Pipeline 이전에 사용한 적이 없다면 이 절차를 따르기 전에 두 개의 IAM 역할을 설정해야 합니다. 자세한 설명은 AWS Data Pipeline에 대한 IAM 역할 생성 섹션을 참조하세요.

  1. 에 AWS Management Console 로그인하고 https://console.aws.amazon.com/datapipeline/ 에서 AWS Data Pipeline 콘솔을 엽니다.

  2. 현재 AWS 지역에 아직 파이프라인이 없는 경우 지금 시작하기를 선택하세요.

    이미 하나 이상의 파이프라인이 있는 경우에는 [Create new pipeline]을 선택합니다.

  3. [Create Pipeline(s)] 창에서 다음과 같이 실행합니다.

    1. [ name] 필드에 파이프라인 이름을 입력합니다. 예를 들면 MyDynamoDBExportPipeline입니다.

    2. [Source] 파라미터로 [Build using a template]을 선택합니다. 드롭다운 템플릿 목록에서 [Export DynamoDB table to S3]를 선택합니다.

    3. Source DynamoDB table name(소스 DynamoDB 테이블 이름) 필드에 내보낼 DynamoDB 테이블의 이름을 입력합니다.

    4. Output S3 Folder 텍스트 상자에 내보내기 파일이 작성될 Amazon S3 URI를 입력합니다. 예: s3://mybucket/exports

      이 URI 형식은 s3://bucketname/folder를 따릅니다. 여기에서,

      • bucketname은 Amazon S3 버킷 이름입니다.

      • folder는 버킷에 포함된 폴더 이름입니다. 폴더가 존재하지 않으면 자동 생성됩니다. 폴더 이름을 지정하지 않으면 s3://bucketname/region/tablename과 같은 형식으로 폴더 이름이 할당됩니다.

    5. S3 location for logs(로그의 S3 위치) 텍스트 상자에 내보내기 로그 파일이 작성될 Amazon S3 URI를 입력합니다. 예: s3://mybucket/logs/

      [ S3 Log Folder]의 URI 형식은 [Output S3 Folder] 형식과 동일합니다. URI는 폴더가 최종 대상이 되어야 합니다. S3 버킷의 최상위 레벨에는 로그 파일을 작성할 수 없기 때문입니다.

  4. dynamodbdatapipeline 키와 true 값을 사용하여 태그를 추가합니다.

  5. 원하는 대로 설정되었으면 [Activate]를 클릭합니다.

이제 파이프라인이 생성됩니다. 생성 프로세스가 끝나려면 몇 분 걸릴 수 있습니다. AWS Data Pipeline 콘솔에서 진행 상황을 모니터링할 수 있습니다.

내보내기 작업을 마치면 Amazon S3 콘솔에서 내보내기 파일을 확인할 수 있습니다. 출력 파일 이름은 확장자가 없는 식별자 값입니다(이 예에서는 ae10f955-fb2f-4790-9b11-fbfea01a871e_000000). 이 파일의 내부 형식은 AWS Data Pipeline 개발자 안내서의 파일 구조에 설명되어 있습니다.

Amazon S3에서 DynamoDB로 데이터 가져오기

이번 단원에서는 이미 데이터를 DynamoDB 테이블에서 내보냈고 내보내기 파일이 Amazon S3 버킷에 기록되었다고 가정합니다. 이 파일의 내부 형식은 AWS Data Pipeline 개발자 안내서의 파일 구조에 설명되어 있습니다. 참고로 DynamoDB에서 가져올 수 있는 유일한 파일 형식입니다. AWS Data Pipeline

여기서는 데이터를 내보낸 최초 테이블을 의미하는 용어로 원본 테이블을 사용하고, 가져온 데이터를 수신하는 테이블을 의미하는 용어로 대상 테이블을 사용합니다. Amazon S3의 내보내기 파일에서 데이터를 가져오려면 다음 조건을 모두 만족해야 합니다.

  • 대상 테이블이 이미 존재합니다. (가져오기 프로세스에서 대상 테이블이 생성되지 않습니다)

  • 대상 테이블과 원본 테이블의 키 스키마가 동일합니다.

대상 테이블을 반드시 비워둘 필요는 없습니다. 하지만 가져오기 프로세스에서 내보내기 파일의 항목과 키가 동일한 테이블의 데이터 항목은 모두 변경됩니다. 예를 들어 키가 인 고객 테이블이 있고 테이블에 항목이 세 개 (CustomerId1 CustomerId, 2, 3) 뿐이라고 가정해 보겠습니다. 이때 내보내기 파일에도 CustomerID 1, 2 및 3으로 사용할 데이터 항목이 저장되어 있다면 대상 테이블의 항목이 내보내기 파일의 항목으로 변경됩니다. 내보내기 파일에 CustomerId4에 대한 데이터 항목도 포함되어 있는 경우 해당 항목이 테이블에 추가됩니다.

대상 테이블은 다른 AWS 지역에 있을 수 있습니다. 예를 들어 미국 서부(오레곤) 리전에 Customer 테이블이 있고 해당 데이터를 Amazon S3로 내보낸다고 가정합니다. 그런 다음 해당 데이터를 유럽(아일랜드) 리전의 동일한 Customer 테이블로 가져올 수 있습니다. 이를 두고 교차 리전 내보내기 및 가져오기라고 합니다. AWS 리전 목록은 AWS 일반 참조의 리전 및 엔드포인트를 참조하세요.

참고로 를 AWS Management Console 사용하면 여러 소스 테이블을 한 번에 내보낼 수 있습니다. 하지만 가져오기는 한 번에 테이블 하나로 제한됩니다.

  1. https://console.aws.amazon.com/datapipeline/ 에서 AWS Management Console 로그인하고 AWS Data Pipeline 콘솔을 엽니다.

  2. (옵션) 교차 리전 가져오기를 원할 경우에는 윈도우 상단 우측 모서리로 이동하여 대상 리전을 선택합니다.

  3. 새 파이프라인 생성을 선택합니다.

  4. [Create Pipeline(s)] 창에서 다음과 같이 실행합니다.

    1. [ name] 필드에 파이프라인 이름을 입력합니다. 예를 들면 MyDynamoDBImportPipeline입니다.

    2. [Source] 파라미터로 [Build using a template]을 선택합니다. 드롭다운 템플릿 목록에서 [Import DynamoDB backup data from S3]를 선택합니다.

    3. Input S3 Folder(입력 S3 폴더) 텍스트 상자에 내보내기 파일을 찾을 수 있는 Amazon S3 URI를 입력합니다. 예: s3://mybucket/exports

      이 URI 형식은 s3://bucketname/folder를 따릅니다. 여기에서,

      • bucketname은 Amazon S3 버킷 이름입니다.

      • folder는 내보내기 파일을 저장할 폴더 이름입니다.

      가져오기 작업은 지정한 Amazon S3 위치에서 파일을 찾을 수 있습니다. 파일의 내부 형식은 AWS Data Pipeline 개발자 안내서데이터 내보내기 파일 확인에 설명되어 있습니다.

    4. Target DynamoDB table name(대상 DynamoDB 이름) 필드에 데이터를 가져올 DynamoDB 테이블의 이름을 입력합니다.

    5. S3 location for logs(로그의 S3 위치) 텍스트 상자에 가져오기 로그 파일이 기록될 Amazon S3 URI를 입력합니다. 예: s3://mybucket/logs/

      [ S3 Log Folder]의 URI 형식은 [Output S3 Folder] 형식과 동일합니다. URI는 폴더가 최종 대상이 되어야 합니다. S3 버킷의 최상위 레벨에는 로그 파일을 작성할 수 없기 때문입니다.

    6. dynamodbdatapipeline 키와 true 값을 사용하여 태그를 추가합니다.

  5. 원하는 대로 설정되었으면 [Activate]를 클릭합니다.

이제 파이프라인이 생성됩니다. 생성 프로세스가 끝나려면 몇 분 걸릴 수 있습니다. 가져오기 작업은 파이프라인 생성 직후 시작됩니다.

문제 해결

이번 단원에서는 기본적인 오류 모드 몇 가지와 DynamoDB 내보내기 문제 해결에 대해 살펴봅니다.

내보내기나 가져오기 도중 오류가 발생하면 AWS Data Pipeline 콘솔의 파이프라인 상태가 ERROR로 표시됩니다. 이 경우에는 중단된 파이프라인의 이름을 클릭하여 해당 세부 정보 페이지로 이동합니다. 여기에는 파이프라인의 모든 단계를 비롯해 각 단계의 상태까지 세부 정보가 자세히 표시됩니다. 특히, 보이는 실행 스택 트레이스를 모두 검사합니다.

마지막으로 Amazon S3 버킷으로 이동하여 기록된 내보내기 또는 가져오기 로그 파일이 있는지 확인합니다.

다음은 교정 작업과 함께 파이프라인의 중단 원인이 될 수 있는 일반적인 문제 몇 가지입니다. 파이프라인을 진단하려면 표시되는 오류와 아래에 기록된 문제를 비교하세요.

  • 가져오기의 경우 대상 테이블이 이미 존재하는지, 그리고 대상 테이블에 원본 테이블과 동일한 키 스키마가 있는지 확인합니다. 이 조건이 충족되어야 하며, 그렇지 않으면 가져오기에 실패합니다.

  • 파이프라인에 dynamodbdatapipeline 태그가 있는지 확인합니다. 없으면 Amazon EMR API 호출이 성공하지 못합니다.

  • 지정한 Amazon S3 버킷이 생성되었는지, 그리고 읽기 및 쓰기 권한이 있는지 확인합니다.

  • 파이프라인이 실행 제한 시간을 초과했을 수 있습니다. (이 파라미터는 파이프라인 생성 시 설정합니다) 예를 들어 실행 제한 시간을 1시간으로 설정했는데 내보내기 작업에는 이보다 더 많은 시간이 필요했을 수 있습니다. 이때는 파이프라인을 삭제한 후 실행 제한 시간 간격을 더욱 길게 설정하여 파이프라인을 다시 생성하세요.

  • 내보내기가 수행된 원래 버킷(내보내기 사본 포함)이 아닌 Amazon S3 버킷에서 복원한 경우, 매니페스트 파일을 업데이트하세요.

  • 내보내기 또는 가져오기를 실행할 수 있는 권한이 없습니다. 자세한 설명은 데이터 내보내기 및 가져오기 사전 조건 섹션을 참조하세요.

  • AWS 계정의 리소스 할당량 (예: Amazon EC2 인스턴스의 최대 수 또는 최대 파이프라인 수) 에 도달했을 수 있습니다. AWS Data Pipeline 이 할당량의 증가를 요청하는 방법을 비롯한 자세한 내용은 AWS 일반 참조조의 AWS 서비스 할당량을 참조하세요.

참고

파이프라인 문제 해결에 대한 자세한 내용은 AWS Data Pipeline 개발자 안내서문제 해결 단원을 참조하세요.

AWS Data Pipeline 및 DynamoDB에 대한 사전 정의된 템플릿

AWS Data Pipeline 작동 방식에 대해 더 깊이 이해하려면 AWS Data Pipeline 개발자 안내서를 참조하는 것이 좋습니다. 이 안내서에는 파이프라인을 생성하고 사용하는 방법에 대한 step-by-step 자습서가 포함되어 있습니다. 이 자습서를 출발점으로 삼아 자체 파이프라인을 만들 수 있습니다. AWS Data Pipeline 자습서를 읽어 보시기 바랍니다. 요구 사항에 맞게 사용자 지정할 수 있는 가져오기 및 내보내기 파이프라인을 생성하는 데 필요한 단계가 안내되어 있습니다. AWS Data Pipeline 개발자 안내서 자습서: AWS Data Pipeline을 사용하는 Amazon DynamoDB 가져오기 및 내보내기를 참조하세요.

AWS Data Pipeline 는 파이프라인 생성을 위한 여러 템플릿을 제공합니다. 다음 템플릿은 DynamoDB와 관련이 있습니다.

DynamoDB와 Amazon S3 간 데이터 내보내기

참고

DynamoDB 콘솔은 이제 Amazon S3로 내보내기 흐름을 자체적으로 지원하지만 가져오기 흐름과는 AWS Data Pipeline 호환되지 않습니다. 자세한 내용은 Amazon S3로 DynamoDB 데이터 내보내기: 작동 방식 단원과 블로그 게시물 Amazon DynamoDB 테이블 데이터를 Amazon S3의 데이터 레이크로 내보내기(코드 작성 필요 없음)를 참조하세요.

AWS Data Pipeline 콘솔은 DynamoDB와 Amazon S3 간에 데이터를 내보내는 데 사용할 수 있는 사전 정의된 두 개의 템플릿을 제공합니다. 이 템플릿에 대한 자세한 내용은 AWS Data Pipeline 개발자 안내서의 다음 단원을 참조하세요.