

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

# 하이브리드 마이그레이션 솔루션 사용: Apache Cassandra에서 Amazon Keyspaces로
<a name="migrating-hybrid"></a>

다음 마이그레이션 솔루션은 온라인 및 오프라인 마이그레이션 간의 하이브리드로 간주될 수 있습니다. 이 하이브리드 접근 방식을 사용하면 쓰기 후 읽기 일관성을 제공하지 않고 거의 실시간으로 대상 데이터베이스에 데이터가 기록됩니다. 즉, 새로 작성된 데이터를 즉시 사용할 수 없으며 지연이 예상됩니다. 쓰기 후 읽기 일관성이 필요한 경우 [Amazon Keyspaces로 온라인 마이그레이션: 전략 및 모범 사례](migrating-online.md) 섹션을 참조하세요.

Apache Cassandra에서 Amazon Keyspaces로 거의 실시간으로 마이그레이션하려면 두 가지 방법 중에서 선택할 수 있습니다.
+ **CQLReplicator** – (권장) CQLReplicator는 [Github](https://github.com/aws-samples/cql-replicator)에서 사용할 수 있는 오픈 소스 유틸리티로, Apache Cassandra에서 Amazon Keyspaces로 데이터를 거의 실시간으로 마이그레이션하는 데 도움이 됩니다.

  대상 데이터베이스에 전파할 쓰기 및 업데이트를 결정하기 위해 CQLReplicator는 Apache Cassandra 토큰 범위를 스캔하고 AWS Glue작업을 사용하여 중복 이벤트를 제거하고 Amazon Keyspaces에 직접 쓰기 및 업데이트를 적용합니다.
+ **변경 데이터 캡처(CDC)** - Cassandra CDC에 익숙하다면, 이 하이브리드 마이그레이션을 구현하는 또 다른 옵션은 Apache Cassandra 내장 CDC 기능으로 별도의 CDC 디렉터리에 커밋 로그를 복사하여 변경 사항을 캡처하는 것입니다.

  Amazon Keyspaces에 데이터 변경 사항을 복제하여 CDC를 데이터 마이그레이션 시나리오의 대체 옵션으로 만들 수 있습니다.

쓰기 후 읽기 일관성이 필요하지 않은 경우 CQLReplicator 또는 CDC 파이프라인을 사용하여 각 솔루션에 AWS 서비스사용되는 도구에 대한 기본 설정 및 친숙도를 기반으로 Apache Cassandra에서 Amazon Keyspaces로 데이터를 마이그레이션할 수 있습니다. 이러한 방법을 사용하여 거의 실시간으로 데이터를 마이그레이션하는 것은 온라인 마이그레이션의 대안을 제공하는 하이브리드 마이그레이션 접근 방식으로 간주할 수 있습니다.

이 전략은 이 주제에서 설명한 옵션 외에도 온라인 마이그레이션 진행의 일부 단계(예: [온라인 마이그레이션](migrating-online.md) 주제에서 설명한 기록 데이터 복사 및 애플리케이션 마이그레이션 전략)를 구현해야 하므로 하이브리드 접근 방식으로 간주됩니다.

다음 섹션에서는 하이브리드 마이그레이션 옵션에 대해 자세히 설명합니다.

**Topics**
+ [CQLReplicator를 사용하여 데이터 마이그레이션](migration-hybrid-cql-rep.md)
+ [변경 데이터 캡처(CDC)를 사용하여 데이터 마이그레이션](migration-hybrid-cdc.md)

# CQLReplicator를 사용하여 데이터 마이그레이션
<a name="migration-hybrid-cql-rep"></a>

[CQLReplicator](https://github.com/aws-samples/cql-replicator)를 사용하면 CQL 쿼리를 사용하여 Cassandra 토큰 링을 지능적으로 스캔하여 Apache Cassandra에서 거의 실시간으로 데이터를 읽을 수 있습니다. CQLReplicator는 Cassandra CDC를 사용하지 않고 대신 캐싱 전략을 구현하여 전체 스캔의 성능 페널티를 줄입니다.

대상에 대한 쓰기 수를 줄이기 위해 CQLReplicator는 복제 이벤트를 자동으로 제거합니다. CQLReplicator를 사용하면 소스 데이터베이스에서 대상 데이터베이스로의 변경 사항 복제를 조정할 수 있으므로 Apache Cassandra에서 Amazon Keyspaces로 데이터를 거의 실시간으로 마이그레이션할 수 있습니다.

다음 다이어그램은 AWS Glue를 사용하는 CQLReplicator 작업의 일반적인 아키텍처를 보여줍니다.

1. 프라이빗 VPC에서 실행되는 Apache Cassandra에 대한 액세스를 허용하려면 AWS Glue연결 유형 **네트워크**로 연결을 구성합니다.

1. 복제본을 제거하고 CQLReplicator 작업으로 키 캐싱을 활성화하려면 Amazon Simple Storage Service(Amazon S3)를 구성합니다.

1. CQLReplicator 작업은 확인된 소스 데이터베이스 변경 사항을 Amazon Keyspaces로 직접 스트리밍합니다.

![\[CQLReplicator를 사용하여 Apache Cassandra에서 Amazon Keyspaces로 데이터를 마이그레이션합니다.\]](http://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/images/migration/hybrid-migration-CQLRep.png)


CQLReplicator를 사용한 마이그레이션 프로세스에 대한 자세한 내용은 AWS데이터베이스 블로그 [ CQLReplicator를 사용하여 Cassandra 워크로드를 Amazon Keyspaces로 마이그레이션](https://aws.amazon.com/blogs/database/migrate-cassandra-workloads-to-amazon-keyspaces-using-cqlreplicator/) 및AWS 권장 지침 [를 사용하여 Apache Cassandra 워크로드를 Amazon Keyspaces로 마이그레이션의AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-using-aws-glue.html) 다음 게시물을 참조하세요.

# 변경 데이터 캡처(CDC)를 사용하여 데이터 마이그레이션
<a name="migration-hybrid-cdc"></a>

[Debezium](https://debezium.io/)을 사용하여 변경 데이터 캡처(CDC) 파이프라인을 구성하는 데 이미 익숙한 경우 이 옵션을 사용하여 CQLReplicator를 사용하는 대신 Amazon Keyspaces로 데이터를 마이그레이션할 수 있습니다. Debezium은 데이터베이스를 모니터링하고 행 수준 변경 사항을 안정적으로 캡처하도록 설계된 CDC용 오픈 소스 분산 플랫폼입니다.

[Apache Cassandra용 Debezium 커넥터](https://debezium.io/documentation/reference/stable/connectors/cassandra.html)는 Amazon Managed Streaming for Apache Kafka(Amazon MSK)에 변경 사항을 업로드하여 다운스트림 소비자가 사용하고 처리할 수 있도록 하고, 이를 통해 Amazon Keyspaces에 데이터를 씁니다. 자세한 내용은 [Guidance for continuous data migration from Apache Cassandra to Amazon Keyspaces](https://aws.amazon.com/solutions/guidance/continuous-data-migration-from-apache-cassandra-to-amazon-keyspaces/)를 참조하세요.

잠재적인 데이터 일관성 문제를 해결하기 위해 소비자가 Cassandra의 키 또는 파티션을 Amazon Keyspaces의 키 또는 파티션과 비교하는 Amazon MSK 프로세스를 구현할 수 있습니다.

이 솔루션을 성공적으로 구현하려면 다음을 고려하는 것이 좋습니다.
+ 중복 이벤트를 제거하는 방법 등 CDC 커밋 로그를 구문 분석하는 방법.
+ CDC 디렉터리를 유지하는 방법(예: 이전 로그를 삭제하는 방법).
+ 예를 들어 쓰기가 복제본 3개 중 1개에서만 성공하는 경우 Apache Cassandra에서 부분 장애를 처리하는 방법.
+ 노드에서 발생하는 CDC 프로세스에 대한 추가 CPU, 메모리, DISK 및 IO 요구 사항을 고려하기 위해 인스턴스 크기를 늘리는 등 리소스 할당을 처리하는 방법.

이 패턴은 Cassandra의 변경 사항을 키가 이전 상태에서 변경되었을 수 있는 '힌트'로 취급합니다. 대상 데이터베이스에 전파할 변경 사항이 있는지 확인하려면 먼저 `LOCAL_QUORUM` 작업을 사용하여 원본 Cassandra 클러스터에서 최신 레코드를 받은 다음 Amazon Keyspaces에 기록해야 합니다.

범위 삭제 또는 범위 업데이트의 경우 전체 파티션과 비교하여 대상 데이터베이스에 작성할 쓰기 또는 업데이트 이벤트를 결정해야 할 수 있습니다.

쓰기가 멱등성이 아닌 경우 Amazon Keyspaces에 쓰기 전에 이미 대상 데이터베이스에 있는 것과 쓰기를 비교해야 합니다.

다음 다이어그램은 Debezium 및 Amazon MSK를 사용하는 CDC 파이프라인의 일반적인 아키텍처를 보여줍니다.

![\[변경 데이터 캡처 파이프라인을 사용하여 Apache Cassandra에서 Amazon Keyspaces로 데이터를 마이그레이션합니다.\]](http://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/images/migration/hybrid-migration-CDC.png)
