주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Amazon DynamoDB에서 Oracle NoSQL Database 테이블로 데이터 마이그레이션
소개
Amazon DynamoDB는 빠르고 확장 가능한 키-값 및 문서 데이터 스토리지를 제공하는 Amazon Web Services에서 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다.
Oracle NoSQL Database Cloud Service는 Oracle Cloud Infrastructure상에서 Oracle Corporation이 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다. 대기 시간이 짧은 성능과 클라우드 전용 애플리케이션에 대한 자동 확장을 통해 확장 가능한 키-값 및 JSON 문서 스토리지를 제공합니다.
이 사용지침서에서는 Oracle NoSQL Database Migrator 툴을 사용하여 Amazon DynamoDB에서 Oracle NoSQL Database Cloud Service로 데이터를 마이그레이션하는 방법에 대해 설명합니다.
마이그레이션 워크플로우는 DynamoDB의 네이티브 익스포트-S3 기능을 사용하여 DynamoDB JSON 형식으로 테이블 데이터를 추출합니다. 그런 다음 익스포트된 데이터를 OCI(Oracle Cloud Infrastructure)에서 실행되는 Oracle NoSQL Database Cloud Service로 임포트합니다.
구조
마이그레이션 워크플로우는 다음 구성요소로 구성됩니다.
- Amazon DynamoDB(소스 데이터베이스)
- Amazon S3(내보내기 스토리지)
- OCI 컴퓨트 인스턴스(Oracle NoSQL Database Migrator 실행)
- Oracle NoSQL Database Cloud Service(대상 데이터베이스)

상위 레벨 마이그레이션 프로세스
- DynamoDB 테이블 및 Amazon S3 버킷을 프로비전합니다.
- 테이블에서 PITR을 사용으로 설정하고 DynamoDB 테이블을 Amazon S3 버킷으로 익스포트합니다.
- OCI 컴퓨트 인스턴스를 프로비전합니다.
- 컴퓨트에 Oracle NoSQL Database Migrator 툴을 설치하고 구성합니다.
- OCI 컴퓨트에서 AWS 및 OCI 인증을 구성합니다.
- Amazon S3 버킷에서 OCI로의 마이그레이션 실행 NoSQL
- Oracle NoSQL Database에서 마이그레이션된 데이터를 검증합니다.
필수 조건
시작하기 전에 다음 사항을 확인하십시오.
- DynamoDB 및 S3를 관리할 수 있는 권한이 있는 활성 AWS 계정이 있습니다.
- 사용 권한이 있는 OCI 테넌시가 있습니다.
- 컴파트먼트 생성
- 컴퓨팅 인스턴스 생성
- Oracle NoSQL 테이블 생성
- OCI 컴퓨트 인스턴스에 대한 SSH 액세스 권한이 있습니다.
작업 1: Amazon DynamoDB 리소스 프로비전
이 자습서에서는 이 연습에서 필수인 AWS의 기본 필수 리소스만 프로비저닝합니다.
1. AWS에서 IAM 사용자 생성
DynamoDB 작업을 관리할 전용 IAM 사용자를 생성합니다.
a. AWS 콘솔에 로그인
b. IAM, 사용자로 이동합니다.
c. Create User를 누릅니다.
d. 프로그래밍 방식 액세스 할당
AdministratorAccess정책 첨부(데모용)

e. 검토한 후 Create 유저를 누릅니다
⚠️ 운용 환경에서는 최소 권한의 IAM 정책을 사용합니다.
2. AWS에서 DynamoDB 테이블 생성
a. AWS 콘솔에 사인인합니다.
b. DynamoDB로 이동합니다.

c. 테이블 생성을 누릅니다.

d. 다음을 지정합니다.
- 테이블 이름
- 분할 영역 키
- 선택적 정렬 키

e. 기본 설정을 적용하고 테이블을 생성합니다.
f. 생성된 테이블을 검토합니다.

3. DynamoDB 테이블에 새 열 또는 샘플 레코드 삽입을 추가합니다.
a. AWS 콘솔에 사인인합니다.
b. 테이블을 선택합니다
c. 작업, 항목 생성을 누릅니다.

d. 샘플 레코드 삽입

e. 레코드 검증

작업 2: Amazon S3 버킷으로 DynamoDB 테이블 익스포트
DynamoDB의 네이티브 익스포트-S3 기능을 사용하여 DynamoDB JSON 형식의 테이블 데이터를 S3 버킷으로 추출합니다.
1. Amazon S3 버킷 생성
a. AWS 콘솔에 로그인
b. S3로 이동합니다.
c. 새 버킷 생성

d. 기본 설정 유지
e. 버킷 검증

2. PITR(Point-In-Time Recovery) 활성화
DynamoDB 익스포트에는 적시 복구가 필요합니다. PITR을 엑스포트하기 전에 테이블 레벨에서 활성화해야 합니다.
a. 테이블 선택
b. 적시 복구 사용

c. PITR을 활성화한 후

3. 테이블 데이터를 S3 버킷으로 익스포트합니다.
a. AWS 콘솔에 사인인합니다.
b. 테이블 선택
c. S3으로 익스포트를 누릅니다.
d. 다음 중에서 선택합니다.
- 전체 익스포트
- DynamoDB JSON 형식
- 암호화(기본값)
e. 내보내기를 누릅니다


4. 익스포트된 데이터 확인
완료 후:

S3://bucket-name/AWSDynamoDB/ExportID/data/
다음 포함:
- GZIP 압축 JSON 파일
- DynamoDB JSON 형식

작업 3: Oracle Cloud Infrastructure 환경 준비
1. 컴파트먼트 생성
a. OCI 콘솔에 사인인합니다.
b. ID 및 보안, 구획으로 이동합니다.
c. Oracle NoSQL 테이블에 대한 새 컴파트먼트를 생성합니다.
2. 컴퓨팅 인스턴스 생성
a. 컴퓨트, 인스턴스로 이동합니다.
b. 인스턴스 생성를 누릅니다.
c. 다음 중에서 선택합니다.
- 모양:
VM.Standard.E4.Flex(또는 동등물) - 운영 체제: Oracle Linux 9 d. 인스턴스를 생성합니다.
이 컴퓨트 인스턴스는 Oracle NoSQL Database Migrator를 실행합니다.
3. Oracle NoSQL Database Migrator 설치
Oracle NoSQL Migrator는 Amazon S3에서 DynamoDB 익스포트 파일을 읽고 OCI Oracle NoSQL 데이터베이스로 데이터를 임포트합니다. 위에 생성된 OCI 컴퓨트 중 하나에 Oracle NoSQL Migrator 툴을 설치합니다.
a. Java 11 설치
Oracle NoSQL Database Migrator를 사용하려면 컴퓨트에서 Java를 실행해야 합니다.
- 새로 생성된 컴퓨트 인스턴스에 opc 사용자로 로그인하여 다음과 같이 Java 11을 설치합니다.
sudo yum install java-11
b. 마이그레이션기 패키지 추출
- Oracle NoSQL Database Migrator 1.8.0을 다운로드합니다. SCP를 사용하여 Oracle NoSQL Database Migrator ZIP 파일을 새 컴퓨트 인스턴스의 opc 사용자 홈 디렉토리로 업로드합니다.
- 다운로드한 Oracle NoSQL Database Migrator 소프트웨어의 압축을 풉니다. Migrator는 설치가 필요하지 않습니다.
tar -zxvf V1053574-01.tar.gz
cd nosql-migrator-1.8.0/
설치 확인:
[opc@nosql-migrator-1.8.0]\$ ls -ltr
total 332
-rw-r--r--. 1 opc opc 822 Nov 13 07:26 sdk_logging.properties
-rw-r--r--. 1 opc opc 1720 Nov 13 07:26 README.md
-rw-r--r--. 1 opc opc 897 Nov 13 07:26 log4j2.xml
-rw-r--r--. 1 opc opc 1870 Nov 13 07:26 LICENSE.txt
-rw-r--r--. 1 opc opc 488 Dec 2 07:11 Dockerfile
-rw-r--r--. 1 opc opc 234275 Dec 23 08:38 THIRD_PARTY_LICENSES.txt
-rwxr-xr-x. 1 opc opc 73063 Dec 23 08:38 runMigrator
-rw-r--r--. 1 opc opc 4640 Dec 23 08:38 CHANGELOG.md
drwxr-xr-x. 2 opc opc 124 Feb 6 02:50 lib
작업 4: 보안 액세스 구성(OCI 및 AWS)
Oracle NoSQL Migrator를 사용하려면 컴퓨트 인스턴스가 Amazon S3 및 OCI(Oracle Cloud Infrastructure) 리소스에 모두 액세스할 수 있도록 보안 클라우드 간 인증을 구성해야 합니다.
1. OCI API 키 생성
OCI 콘솔에서 대상 Oracle NoSQL Database Cloud Service 테이블을 소유할 OCI 사용자를 위한 API 키를 생성합니다. 이 사용자에게 Oracle NoSQL Database Cloud Service 테이블을 생성하고 관리할 수 있는 권한이 있어야 합니다.
a. OCI 콘솔에서 프로파일, API 키를 엽니다.
b. 새 API 키 추가.

c. 개인 키를 다운로드합니다.
d. 레코드:
- 사용자 OCID
- 테넌시 OCID
- 지문
- 영역 식별자

2. OCI 구성 파일 생성
a. SSH를 사용하여 이전에 생성된 컴퓨트 인스턴스에 opc 사용자로 로그인합니다.
b. /home/opc/.oci directory 아래에 모든 OCI ID 파일을 생성합니다.
전용 키:
c. 컴퓨트의 개인 키를 /home/opc/.oci/ociuser.pem로 복사합니다.
/home/opc/.oci/ociuser.pem
구성 파일:
\$vi /home/opc/.oci/config
예:
[DEFAULT]
user=ocid1.user.oc1...
fingerprint=xx:xx:xx
tenancy=ocid1.tenancy.oc1...
region=ap-hyderabad-1
key_file=/home/opc/.oci/ociuser.pem
3. AWS 액세스 키 생성
AWS 콘솔에서 Amazon DynamoDB 데이터를 내보내는 Amazon S3 Object Storage에 액세스할 사용자에 대한 액세스 키(존재하지 않은 경우)를 생성합니다.
a. AWS 콘솔에 사인인합니다.
b. IAM, User, Security Credentials로 이동합니다.
c. 액세스 키 생성
사용 사례: AWS 외부에서 실행되는 애플리케이션.

4. AWS 인증서 구성
컴퓨팅 인스턴스에 다음 파일을 생성합니다.
/home/opc/.aws/config
/home/opc/.aws/credentials
예제 구성:
[default]
region=<aws_region>
예제 인증서:
[default]
aws_access_key_id=<access_key>
aws_secret_access_key=<secret_key>
작업 5: Oracle NoSQL Migrator 구성 및 실행
마이그레이션기에는 다음을 설명하는 JSON 구성 파일이 필요합니다.
- 소스(S3)
- 싱크 (OCI NoSQL)
- 테이블 스키마
- 인증서
1. 이전 구성 파일 생성
소스 및 대상(싱크)에 대한 정보가 포함된 마이그레이션 구성 JSON 파일을 만듭니다. DynamoDB 테이블에서 싱크 노트 DDBPartitionKey 및 DDBSortKey 아래.
생성:
/home/opc/.oci/migrator-config-dynamodb-bucket_to_OCI.json
구성 예제:
{
"source": {
"type": "aws_s3",
"format": "dynamodb_json",
"s3URL": "https://bucket-name.s3.region.amazonaws.com/AWSDynamoDB/ExportID/data",
"credentials": "/home/opc/.aws/credentials",
"credentialsProfile": "default"
},
"sink": {
"type": "nosqldb_cloud",
"endpoint": "<oci_region>",
"table": "Emp_records",
"schemaInfo": {
"defaultSchema": true,
"DDBPartitionKey": "PartitionKey:string",
"DDBSortKey": "SortKey:Number",
"readUnits": 10,
"writeUnits": 10,
"storageSize": 1
},
"compartment": "<compartment_ocid>",
"credentials": "/home/opc/.oci/config",
"credentialsProfile": "DEFAULT",
"overwrite": true
},
"abortOnError": false,
"migratorVersion": "1.8.0"
}
기본 스키마 모드 이해
defaultSchema: true인 경우:
Oracle NoSQL는 다음을 사용하여 테이블을 생성합니다.
- 분할 영역 키
- 선택적 정렬 키
documentJSON 열
키가 아닌 모든 DynamoDB 속성은 document 내에 저장됩니다.
2. 이전 실행
컴퓨트 인스턴스에서 디렉토리를 nosql-migrator-1.8.0 하위 디렉토리로 변경합니다.
\$cd /home/opc/nosql-migrator-1.8.0
\$./runMigrator --config /home/opc/.oci/migrator-config-dynamodb-bucket_to_OCI.json
실행이 성공하면 출력에 처리된 레코드 수가 표시됩니다.
성공한 이전 로그:
[opc@.nosql-migrator-1.8.0]\$ ./runMigrator --config /home/opc/.oci/migrator-config-dynamodb-bucket_custom-schema.json
2026-02-11 13:32:35.279 [INFO] Configuration for migration:
{
"source" : {
"type" : "aws_s3",
"format" : "dynamodb_json",
"s3URL" : "https://dbmigbucket2oci.s3.ap-southeast-2.amazonaws.com/AWSDynamoDB/01770816089608-60282a9b/data",
"credentials" : "/home/opc/.aws/credentials",
"credentialsProfile" : "default"
},
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "ap-hyderabad-1",
"table" : "Emp_records",
"schemaInfo" : {
"defaultSchema" : true,
"DDBPartitionKey" : "On_roll:string",
"DDBSortKey" : "EmpID:Number",
"readUnits" : 5,
"writeUnits" : 50,
"storageSize" : 5
},
"compartment" : "ocid1.compartment.oc1..aaaaaaaazliaxu2oqqcp3x6574nxkegv6lxbvh5lildyztb4fizbk2tqv2ia",
"includeTTL" : false,
"credentials" : "/home/opc/.oci/hyd_config",
"credentialsProfile" : "DEFAULT",
"writeUnitsPercent" : 90,
"overwrite" : true,
"requestTimeoutMs" : 5000
},
"abortOnError" : false,
"migratorVersion" : "1.8.0"
}
2026-02-11 13:32:35.283 [INFO] creating source from given configuration:
2026-02-11 13:32:37.061 [INFO] source creation completed
2026-02-11 13:32:37.061 [INFO] creating sink from given configuration:
2026-02-11 13:32:38.253 [INFO] sink creation completed
2026-02-11 13:32:38.255 [INFO] creating migrator pipeline
2026-02-11 13:32:38.255 [INFO] [cloud sink] : start loading DDLs
2026-02-11 13:32:38.256 [INFO] [cloud sink] : executing DDL: CREATE TABLE IF NOT EXISTS Emp_records (On_roll string,EmpID Number,document JSON, PRIMARY KEY(SHARD(On_roll),EmpID)),limits: [5, 50, 5]
2026-02-11 13:32:38.763 [INFO] [cloud sink] : completed loading DDLs
2026-02-11 13:32:39.426 [INFO] migration started
2026-02-11 13:32:39.635 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/kaqjylfjsm4dzaf52u2e6qstia.json.gz
2026-02-11 13:32:40.373 [INFO] Migration success for source kaqjylfjsm4dzaf52u2e6qstia. read=2,written=2,failed=0
2026-02-11 13:32:40.373 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/phz6b5k7mmytpcrqe72pfnj3zu.json.gz
2026-02-11 13:32:40.606 [INFO] Migration success for source phz6b5k7mmytpcrqe72pfnj3zu. read=0,written=0,failed=0
2026-02-11 13:32:40.606 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/rtm6rzjciq6jhds3dcp4pcro5u.json.gz
2026-02-11 13:32:40.839 [INFO] Migration success for source rtm6rzjciq6jhds3dcp4pcro5u. read=0,written=0,failed=0
2026-02-11 13:32:40.839 [INFO] [DDB S3 source] : start parsing JSON records from object: AWSDynamoDB/01770816089608-60282a9b/data/vrukpcnd6e3kddjg4qite4upzi.json.gz
2026-02-11 13:32:41.304 [INFO] Migration success for source vrukpcnd6e3kddjg4qite4upzi. read=1,written=1,failed=0
2026-02-11 13:32:41.304 [INFO] Migration is successful for all the sources.
2026-02-11 13:32:41.306 [INFO] migration completed.
Records provided by source=3, Records written to sink=3, Records failed=0,Records skipped=0.
Elapsed time: 0min 1sec 878ms
Migration completed.
작업 6: 이전 검증
Data Migrator를 성공적으로 실행한 후 DynamoDB에 삽입된 모든 테이블 레코드가 Oracle NoSQL에 표시되어야 합니다.
a. OCI 콘솔을 엽니다.
b. 데이터베이스, Oracle NoSQL Database, 테이블로 이동합니다.

c. 적절한 컴파트먼트를 선택합니다.
d. 이전된 테이블을 엽니다.

e. 레코드를 확인합니다.
- Table을 선택하고 Explore data를 누릅니다.
- Execute를 누릅니다.

마이그레이션 고려 사항 및 모범 사례
용량 계획
- 적절한 읽기/쓰기 단위 구성
writeUnitsPercent를 신중하게 조정합니다.
보안
- 최소 권한 IAM 사용
- API 키 순환
- 일반 텍스트로 인증서를 저장하지 않음
대형 테이블
멀티테라바이트 엑스포트의 경우:
- S3 익스포트 크기 모니터
- OCI에서 쓰기 단위 증가
- 일괄 처리 익스포트 고려
TTL 처리
DynamoDB TTL이 필요한 경우 다음을 사용으로 설정합니다.
"includeTTL": true
다중 테이블 이전
여러 테이블을 마이그레이션하는 경우 AWS CLI 스크립팅을 사용하여 내보내기를 자동화합니다.
결론
이 사용지침서에서는 기본 익스포트 기능과 Oracle NoSQL Database Migrator를 사용하여 Amazon DynamoDB에서 Oracle NoSQL Database Cloud Service로 엔드투엔드 마이그레이션 워크플로우를 시연했습니다.
이 접근 방식은 다음을 가능하게 합니다.
- 클라우드 이식성
- 현대화 이니셔티브
- 멀티 클라우드 아키텍처
- 비용 최적화
- OCI 에코시스템과의 통합
적절한 계획, 보안 구성 및 용량 튜닝을 통해 조직은 클라우드 플랫폼 전반에서 원활한 NoSQL 데이터 마이그레이션을 달성할 수 있습니다.
문제 해결
- 익스포트하기 전에 PITR이 사용으로 설정되었는지 확인하십시오.
- S3 액세스가 실패할 경우 AWS 인증서를 확인합니다.
- 올바른 OCI 영역 및 컴파트먼트 OCID를 확인합니다.
- 마이그레이션 처리량이 느린 경우 쓰기 단위를 늘립니다.
- 자세한 오류 메시지는 마이그레이션기 로그를 검토하십시오.
리소스 정리
이 자습서를 완료한 후 불필요한 비용을 피하려면 다음 리소스를 제거하십시오.
- DynamoDB 테이블을 삭제합니다.
- Amazon S3 버킷 및 내보낸 파일을 삭제합니다.
- OCI 컴퓨팅 인스턴스를 종료합니다.
- 더 이상 필요하지 않은 경우 Oracle NoSQL 테이블을 삭제합니다.
- 사용되지 않은 IAM 사용자 및 API 키를 제거합니다.
관련 링크
승인
작성자 - Dharmesh Patel(고객 성공 서비스 부문 수석 클라우드 설계자)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Migrate Data from Amazon DynamoDB to Oracle NoSQL Database Cloud Service
G53046-01