DynamoDB 테이블을 Amazon S3에 백업하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Simple Storage Service(S3)를 사용하여 아마존 DynamoDB 테이블을 백업하려고 합니다.

간략한 설명

DynamoDB는 다음의 두 가지 기본 백업 방법을 제공합니다.

이 두 가지는 모두 재해 복구용으로 테이블을 백업하는 데 적합한 방법입니다. 하지만 이 방법을 사용할 경우 데이터 분석 또는 추출, 전환, 적재(ETL) 작업과 관련된 사용 사례에 데이터를 사용할 수 없습니다. DynamoDB를 S3으로 내보내기 기능은 로컬에서 다운로드하거나 다른 AWS 서비스에서 사용 가능한 백업을 생성하는 가장 간편한 방법입니다. Amazon EMR 또는 AWS Glue를 사용하여 백업 생성 프로세스를 사용자 지정할 수 있습니다.

해결 방법

DynamoDB를 S3으로 내보내기 기능

이 기능을 사용하면 Amazon DynamoDB 테이블의 데이터를 지정 복구 기간 내에 언제든지 Amazon S3 버킷으로 내보낼 수 있습니다. 자세한 내용을 보려면 Amazon S3로 DynamoDB 데이터 내보내기를 참조하세요.

이 기능을 사용하는 방법에 대한 예제는 코드 작성 없이 Amazon DynamoDB 테이블 데이터를 Amazon S3의 데이터 레이크로 내보내기를 참조하세요.

S3로 내보내기 기능을 사용하면 데이터를 다음과 같은 다른 방법으로 사용할 수 있습니다.

  • S3에서 내보낸 데이터 ETL을 수행한 후 데이터를 다시 DynamoDB로 가져옵니다.
  • 감사를 위한 과거 스냅샷 유지
  • 데이터를 다른 서비스 또는 애플리케이션과 통합
  • DynamoDB 데이터로 S3 데이터 레이크를 구축한 후 Amazon Athena, Amazon Redshift, Amazon SageMaker와 같은 다양한 서비스의 데이터를 분석합니다.
  • DynamoDB 용량에 영향을 미치지 않으면서 Athena 또는 Amazon EMR 데이터의 필요에 따라 쿼리를 실행할 수 있습니다.

이 기능을 사용할 때는 다음과 같은 장단점이 있음을 참고하세요.

  • **장점:**이 기능을 사용하면 사용자 지정 애플리케이션을 구축하거나 코드를 작성하지 않고도 AWS 리전과 계정 간 데이터를 내보낼 수 있습니다. 내보내기는 프로덕션 테이블의 읽기 용량이나 가용성에 영향을 미치지 않습니다.
  • **단점:**이 기능은 테이블 DynamoDB JSON 또는 Amazon Ion 형식으로만 데이터를 내보낼 수 있습니다. S3 버킷을 사용하여 기본적으로 기존 데이터를 다시 가져오려면 Amazon S3에서 DynamoDB 데이터 가져오기를 참조하세요. 새 템플릿을 생성하거나 AWS Glue, Amazon EMR, AWS SDK를 사용하여 데이터를 다시 가져올 수도 있습니다.

Amazon EMR

Amazon EMR을 통해 데이터를 S3 버킷으로 내보냅니다. 다음 중 한 방법을 통해 이 작업을 수행할 수 있습니다.

  • DynamoDBStorageHandler를 사용하여 DynamoDB 테이블에 Hive/Spark 쿼리를 실행합니다. 자세한 내용을 보려면 ](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/EMR_Hive_Commands.html#EMR_Hive_Commands_exporting)DynamoDB에서 데이터 내보내기[를 참조하세요.
  • GitHub의 emr-dynamodb-tool 오픈 소스를 사용하여 DynamoDB 테이블을 내보내거나 가져올 수 있습니다.

이 방법을 사용할 때는 다음과 같은 장단점이 있음을 참고하세요.

  • **장점:**활성 Amazon EMR 사용자이며 Hive 또는 Spark에 익숙한 경우 네이티브 S3로 내보내기 기능을 사용하는 것보다 이 방법을 사용하는 것이 구성 관리에 더 유용할 수 있습니다. 이 목적을 위해 기존 클러스터를 사용할 수도 있습니다.
  • **단점:**이 방법을 사용하려면 EMR 클러스터를 생성하고 유지 관리해야 합니다. DynamoDBStorageHandler를 사용하는 경우 Hive 또는 Spark 사용에 익숙해야 합니다.

AWS Glue

AWS Glue를 사용하여 테이블을 Amazon S3로 복제할 수 있습니다. 자세한 내용을 보려면 AWS Glue 및 Amazon DynamoDB 내보내기 사용을 참조하세요.

  • **장점:**AWS Glue는 서버리스 서비스이므로 리소스를 생성하고 유지할 필요가 없습니다. DynamoDB에 직접 다시 쓸 수 있습니다. 데이터를 내보낼 때 사용 사례에 따라 사용자 지정 ETL 로직을 추가하여 필터링 및 변환과 같은 작업을 할 수 있습니다. 또한 CSV, JSON, Parquet, ORC 중 원하는 형식을 선택할 수도 있습니다. 자세한 내용을 보려면 AWS Glue의 입력 및 출력에 대한 데이터 형식 옵션을 참조하세요.
  • **단점:**이 옵션을 선택하는 경우 Spark 사용 방법을 숙지해야 합니다. 또한 AWS Glue ETL 작업의 소스 코드를 유지 관리해야 합니다. 자세한 내용을 보려면 "connectionType": "dynamodb"를 참조하세요.

이러한 옵션 중 필요한 유연성을 제공할 수 없는 경우 DynamoDB API를 사용하여 자체 솔루션을 생성할 수 있습니다.

관련 정보

DynamoDB에서 테이블 내보내기 요청

AWS Step Functions와 AWS Glue를 사용하여 Amazon DynamoDB 테이블을 Amazon S3로 내보내는 방법

AWS 공식
AWS 공식업데이트됨 9달 전