Redis를 대상으로 사용AWS Database Migration Service - AWS Database Migration Service

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

Redis를 대상으로 사용AWS Database Migration Service

Redis 는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 인 메모리 구조 데이터 스토어입니다. 메모리 내 데이터를 관리하면 읽기 또는 쓰기 작업이 밀리초 미만으로 소요될 수 있으며 매초마다 수억 건의 작업이 수행될 수 있습니다. Redis는 인메모리 데이터 저장소로서 밀리초 미만의 응답 시간이 필요한 가장 까다로운 애플리케이션을 지원합니다.

사용AWS DMS에서 다운타임을 최소화하면서 지원되는 원본 데이터베이스에서 대상 Redis 데이터 스토어로 데이터를 마이그레이션할 수 있습니다. Redis 에 대한 추가 정보는 단원을 참조하십시오.Redis 설명서.

온프레미스 Redis뿐만 아니라AWS Database Migration Service는 다음을 지원합니다.

  • Amazon ElastiCache for Redis를 대상 데이터 스토어로 사용합니다. Redis용 ElastiCache는 Redis 클라이언트와 함께 작동하며 개방형 Redis 데이터 형식을 사용하여 데이터를 저장합니다.

  • Amazon MemoryDB for Redis를 대상 데이터 스토어로 사용합니다. MemoryDB는 Redis와 호환되며 현재 사용 중인 모든 Redis 데이터 구조, API 및 명령을 사용하여 애플리케이션을 빌드할 수 있습니다.

Redis 를 대상으로 작업하는 방법에 대한 자세한 내용은AWS DMS다음 단원을 참조하십시오.

Redis 클러스터를 의 대상으로 사용할 때의 사전 조건AWS DMS

DMS는 독립형 구성에서 온프레미스 Redis 대상을 지원하거나 데이터가 자동으로 저장되는 Redis 클러스터로 지원합니다.샤드여러 노드에서 샤딩은 여러 서버 또는 노드에 분산된 샤드라는 작은 청크로 데이터를 분리하는 프로세스입니다. 실제로 샤드는 전체 데이터 집합의 하위 집합을 포함하는 데이터 파티션이며 전체 워크로드의 슬라이스를 제공합니다.

Redis는 키-값 NoSQL 데이터 저장소이므로 소스가 관계형 데이터베이스일 때 사용할 Redis 키 명명 규칙은스키마-이름.테이블 이름.기본 키. Redis에서 키와 값에 특수 문자%가 포함되어서는 안 됩니다. 그렇지 않으면 DMS가 레코드를 건너뜁니다.

참고

Redis용 ElastiCache를 대상으로 사용하는 경우 DMS는 다음을 지원합니다.클러스터 모드가 활성화됨구성에만 해당됩니다. Redis 버전 6.x 이상용 ElastiCache를 사용하여 클러스터 모드 사용 대상 데이터 저장소를 만드는 방법에 대한 자세한 내용은 단원을 참조하십시오.시작하기Amazon ElastiCache for Redis 사용 설명서.

데이터베이스 마이그레이션을 시작하기 전에 다음 기준에 따라 Redis 클러스터를 시작하십시오.

  • 클러스터에는 샤드가 하나 이상 있습니다.

  • Redis용 ElastiCache 타겟을 사용하는 경우 클러스터에서 IAM 역할 기반 액세스 제어를 사용하지 않는지 확인합니다. 대신 Redis Auth를 사용하여 사용자를 인증합니다.

  • 다중 AZ (가용 영역) 를 활성화합니다.

  • 데이터베이스에서 마이그레이션할 데이터에 수용하기에 충분한 메모리가 있어야 합니다.

  • 초기 마이그레이션 작업을 시작하기 전에 대상 Redis 클러스터가 모든 데이터를 지워야 합니다.

클러스터 구성을 생성하기 전에 데이터 마이그레이션에 대한 보안 요구 사항을 결정해야 합니다. DMS는 암호화 구성에 관계없이 대상 복제 그룹으로의 마이그레이션을 지원합니다. 그러나 클러스터 구성을 만들 때만 암호화를 활성화하거나 비활성화할 수 있습니다.

Redis 를 의 대상으로 사용할 때의 제한 사항AWS Database Migration Service

Redis 를 대상으로 사용할 때는 다음 제한 사항이 적용됩니다.

  • Redis는 키-값 no-sql 데이터 저장소이므로 소스가 관계형 데이터베이스 일 때 사용할 Redis 키 명명 규칙은schema-name.table-name.primary-key.

  • Redis에서 키-값에 특수 문자를 포함할 수 없습니다.%. 그렇지 않으면 DMS가 레코드를 건너뜁니다.

  • DMS는 특수 문자가 포함된 행을 마이그레이션하지 않습니다.

  • DMS는 필드 이름에 특수 문자가 포함된 필드를 마이그레이션하지 않습니다.

  • 전체 LOB 모드는 지원되지 않습니다.

  • Redis용 ElastiCache를 대상으로 사용할 때는 사설 CA (인증 기관) 가 지원되지 않습니다.

관계형 또는 비관계형 데이터베이스에서 Redis 대상으로 데이터 마이그레이션

소스 SQL 또는 NoSQL 데이터 저장소에서 Redis 대상으로 직접 데이터를 마이그레이션할 수 있습니다. Redis 대상으로의 마이그레이션을 설정하고 시작하는 방법은 DMS 콘솔 또는 API를 사용하는 전체 로드 및 변경 데이터 캡처 마이그레이션과 유사합니다. Redis 대상으로 데이터베이스 마이그레이션을 수행하려면 다음을 수행합니다.

  • 마이그레이션을 위한 모든 프로세스를 수행할 복제 인스턴스를 생성합니다. 자세한 정보는 복제 인스턴스 생성을 참조하십시오.

  • 원본 엔드포인트를 지정합니다. 자세한 정보는 소스 및 대상 엔드포인트 생성을 참조하십시오.

  • 클러스터의 DNS 이름과 포트 번호를 찾습니다.

  • 에서 SSL 연결을 확인하는 데 사용할 수 있는 인증서 번들을 다운로드합니다.

  • 아래에 설명된 대로 대상 엔드포인트를 지정합니다.

  • 작업 또는 작업 집합을 생성하여 사용할 테이블과 복제 프로세스를 정의합니다. 자세한 정보는 작업 생성을 참조하십시오.

  • 원본 데이터베이스에서 대상 클러스터로 데이터를 마이그레이션합니다.

다음 두 가지 방법 중 하나로 데이터베이스 마이그레이션을 시작합니다.

  1. 선택을 선택할 수 있습니다.AWS DMS콘솔에서 각 단계를 수행하십시오.

  2. 이AWS Command Line Interface(AWS CLI). CLI를 사용하는 방법에 대한 자세한 내용은AWS DMS단원을 참조하십시오AWS CLI...에 대한AWS DMS.

클러스터의 DNS 이름과 포트 번호를 찾으려면

  • 다음을 사용합니다.AWS CLI를 제공하는 명령replication-group-id복제 그룹 이름을 사용합니다.

    aws elasticache describe-replication-groups --replication-group-id myreplgroup

    여기서 출력에 DNS 이름이 표시됩니다.Address속성 및 포트 번호Port클러스터의 기본 노드의 속성입니다.

    ... "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup- 111.1abc1d.1111.uuu1.cache.example.com" } ...

    Redis용 MemoryDB를 대상으로 사용하는 경우 다음을 사용하십시오.AWS CLI명령을 사용하여 Redis 클러스터에 엔드포인트 주소를 제공합니다.

    aws memorydb describe-clusters --clusterid clusterid

에서 SSL 연결을 확인하는 데 사용할 인증서 번들을 다운로드합니다.

  • 다음을 입력합니다.wget명령줄에서 명령을 실행합니다. Wget은 인터넷에서 파일을 다운로드하는 데 사용되는 무료 GNU 명령줄 유틸리티 도구입니다.

    wget https://s3.aws-api-domain/rds-downloads/rds-combined-ca-bundle.pem

    여기에서aws-api-domain에서 Amazon S3 도메인을 완료합니다.AWS특정 S3 버킷과 해당 버킷이 제공하는 rds-combined-ca-bundle.pem File에 액세스하는 데 필요한 리전입니다.

를 사용하여 대상 엔드포인트를 생성하려면AWS DMS콘솔

이 엔드포인트는 이미 실행 중인 Redis 대상을 위한 것입니다.

  • 콘솔에서 를 선택합니다.엔드포인트탐색 창에서 다음을 선택합니다.엔드포인트 생성. 다음 표는 설정에 대한 설명입니다.

    옵션 조치

    [Endpoint type]

    선택대상엔드포인트 유형입니다.

    [Endpoint identifier]

    엔드포인트 이름을 입력합니다. 예를 들어 다음과 같이 이름에 엔드포인트 유형을 포함시킵니다.my-redis-target.

    대상 엔진

    선택Redis이 엔드포인트가 연결하려는 데이터베이스 엔진의 유형입니다.

    클러스터 이름

    Redis 클러스터의 DNS 이름을 입력합니다.

    포트

    Redis 클러스터의 포트 번호를 입력합니다.

    SSL 보안 프로토콜

    선택일반 텍스트또는SSL 암호화.

    일반 텍스트이 옵션은 엔드포인트와 데이터베이스 간 트래픽에 대한 TLS (전송 계층 보안) 암호화를 제공하지 않습니다.

    SSL 암호화—이 옵션을 선택한 경우 SSL CA (인증 기관) 인증서 ARN을 입력하여 서버의 인증서를 확인하고 암호화된 연결을 만듭니다.

    온-프레미스 Redis의 경우 DMS는 공용 및 사설 CA (인증 기관) 를 모두 지원합니다. 레디 스용 ElastiCache의 경우 DMS는 퍼블릭 CA만 지원합니다.

    인증 유형

    Redis에 연결하는 동안 수행할 인증 유형을 선택합니다. 옵션에는 다음이 포함됩니다.없음,인증 역할, 및인증 토큰.

    인증 역할을 선택한 경우인증 사용자 이름그리고인증 암호.

    인증 토큰을 선택하는 경우인증 암호만 해당.

    복제 인스턴스

    [선택 사항]연결을 테스트하려는 경우에만 이전에 에 입력한 복제 인스턴스의 이름을 선택합니다.복제 인스턴스 생성페이지

엔드포인트에 대한 모든 정보 제공을 마쳤으면AWS DMS데이터베이스 마이그레이션 중에 사용할 Redis 대상 엔드포인트를 생성합니다.

마이그레이션 작업 생성 및 데이터베이스 마이그레이션 시작에 대한 자세한 내용은 단원을 참조하십시오.작업 생성.

Redis 에 대한 엔드포인트 설정을 대상으로 지정

대상 엔드포인트를 만들거나 수정하려면 콘솔 또는 CreateEndpoint 또는 ModifyEndpoint API 작업을 사용할 수 있습니다.

Redis 타겟의 경우AWS DMS콘솔, 지정엔드포인트별 설정엔드포인트 생성또는엔드포인트 수정콘솔 페이지

사용 시CreateEndpointModifyEndpointAPI 작업, 에 대한 요청 파라미터 지정RedisSettings옵션. 다음 예에서는 를 사용하여 이 작업을 수행하는 방법을 보여 줍니다.AWS CLI.

aws dms create-endpoint --endpoint-identifier my-redis-target --endpoint-type target --engine-name redis --redis-settings '{"ServerName":"sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com","Port":6379,"AuthType":"auth-token", "SslSecurityProtocol":"ssl-encryption", "AuthPassword":"notanactualpassword"}' { "Endpoint": { "EndpointIdentifier": "my-redis-target", "EndpointType": "TARGET", "EngineName": "redis", "EngineDisplayName": "Redis", "TransferFiles": false, "ReceiveTransferredFiles": false, "Status": "active", "KmsKeyId": "arn:aws:kms:us-east-1:999999999999:key/x-b188188x", "EndpointArn": "arn:aws:dms:us-east-1:555555555555:endpoint:ABCDEFGHIJKLMONOPQRSTUVWXYZ", "SslMode": "none", "RedisSettings": { "ServerName": "sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com", "Port": 6379, "SslSecurityProtocol": "ssl-encryption", "AuthType": "auth-token" } } }

--redis-settings매개 변수는 다음과 같습니다.

  • ServerName— (필수) 유형string에서 데이터를 마이그레이션하고 동일한 VPC 있는 Redis 클러스터를 지정합니다.

  • Port— (필수) 유형number엔드포인트에 액세스하는 데 사용되는 포트 값입니다.

  • SslSecurityProtocol— (선택 사항) 유효한 값은 다음과 같습니다.plaintextssl-encryption. 기본값은 ssl-encryption입니다.

    plaintext이 옵션은 엔드포인트와 데이터베이스 간의 트래픽에 대한 TLS (전송 계층 보안) 암호화를 제공하지 않습니다.

    사용ssl-encryption암호화된 연결을 만들 수 있습니다.ssl-encryption서버의 인증서를 확인하기 위해 SSL CA (인증 기관) ARN이 필요하지 않지만, 이를 사용하여 선택적으로 식별할 수 있습니다.SslCaCertificateArn설정 인증 기관 ARN이 지정되지 않은 경우 DMS는 아마존 루트 CA를 사용합니다.

    온-프레미스 Redis 대상을 사용하는 경우SslCaCertificateArn공개 또는 사설 CA (인증 기관) 를 DMS로 가져오고 서버 인증을 위해 해당 ARN을 제공합니다. Redis용 ElastiCache를 대상으로 사용할 때는 프라이빗 CA가 지원되지 않습니다.

  • AuthType— (필수) Redis에 연결할 때 수행할 인증 유형을 나타냅니다. 유효한 값에는 none, auth-tokenauth-role이 있습니다.

    auth-token옵션에는 “Auth암호“제공되는 동안auth-role옵션 필요”제작 사용자 이름“및”Auth암호“제공될 예정입니다.