使用 Redis OSS 作為目標 AWS Database Migration Service - AWS 資料庫遷移服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Redis OSS 作為目標 AWS Database Migration Service

Red OSS is 是用作資料庫、快取和訊息代理程式的開放原始碼記憶體內資料結構存放區。在記憶體內管理資料可讓讀取或寫入操作僅需不到一毫秒的時間,而且每秒能執行數億個操作。Redis 是記憶體內資料存放區,可為需要低於一毫秒回應時間的最嚴苛應用程式提OSS供支援。

您可以使用 AWS DMS,將資料從任何支援的來源資料庫移轉至目標 Redis OSS 資料存放區,而且停機時間最短。如需有關 Redis 的其他資訊,OSS請參閱 Redis 文OSS件集。

除了內部部署 Redis 之外OSS,還 AWS Database Migration Service 支援下列項目:

  • Amazon ElastiCache (RedisOSS)作為一個目標數據存儲區。 ElastiCache (RedisOSS) 可與您的 Redis 用OSS戶端搭配使用,並使用開放的 Redis OSS 資料格式來儲存您的資料。

  • Amazon 記憶數據庫作為一個目標數據存儲。MemoryDB 是與 Redis OSS 的兼容,使您能夠使用所有 Redis 的OSS數據結構,APIs以及當今使用的命令來構建應用程序。

如需有關使用 Redis OSS 做為目標的其他資訊 AWS DMS,請參閱下列各節:

使用 Redis OSS 叢集做為目標的先決條件 AWS DMS

DMS在獨立組態中支援內部部署 Redis OSS 目標,或做為 Redis OSS 叢集,其中資料會自動跨多個節點分割。碎片化是將資料分成較小區塊 (稱為碎片) 的過程,這些區塊會分散在多個服務器或節點上。實際上,碎片是一個資料分割區,其中包含總資料集的子集,並負責整體工作負載的一部分。

由於 Red OSS is 是鍵值無SQL數據存儲,因此當源是關係數據庫時使用的 Redis OSS 密鑰命名約定是模式名稱 .table name. 主鍵。在 Redis 中OSS,鍵和值不得包含特殊字符 %。否則,會DMS略過記錄。

注意

如果您使用 ElastiCache (RedisOSS) 做為目標,則僅DMS支援啟用叢集模式的組態。如需使用 ElastiCache (RedisOSS) 6.x 版或更新版本建立已啟用叢集模式的目標資料存放區的詳細資訊,請參閱 Amazon ElastiCache (RedisOSS) 使用者指南中的入門指南。

在開始資料庫移轉之前,請使用下列準則啟動 Redis OSS 叢集。

  • 您的叢集有一個或多個碎片。

  • 如果您使用的是 ElastiCache (RedisOSS) 目標,請確定叢集不使用以角色為IAM基礎的存取控制。而是使用 Redis 驗證來OSS驗證使用者。

  • 啟用異地同步備份 (可用區域)。

  • 請確定叢集有足夠的記憶體容量,可儲存從資料庫遷移過來的資料。

  • 在開始初始移轉任務之前,請確定目標 Redis OSS 叢集沒有所有資料。

在建立叢集組態之前,您應該先決定資料遷移的安全性需求。DMS支援移轉至目標複寫群組,無論其加密組態為何。但是,您只能在建立叢集組態時啟用或停用加密。

使用 Redis 作為目標時的限制 AWS Database Migration Service

使用 Redis OSS 作為目標時,會套用下列限制:

  • 由於 Red OSS is 是一個鍵值的無 SQL 數據存儲,因此當源是關係數據庫時使用的 Redis OSS 密鑰命名約定是。schema-name.table-name.primary-key

  • 在 Redis 中OSS,鍵值不能包含特殊字符。%否則,會DMS略過記錄。

  • DMS不會遷移包含該%字符的行。

  • DMS不會遷移欄位名稱中包含%字元的欄位。

  • 不支援完整LOB模式。

  • 使用 (Redis) 做為目標時,不支援私有憑證授權單位 ElastiCache (CAOSS)。

將資料從關聯式或非關聯式資料庫遷移至 Redis OSS 目標

您可以將資料從任何來源SQL或無SQL資料存放區直接移轉至 Redis OSS 目標。設定並開始遷移至 Redis OSS 目標,類似於使用DMS主控台或API進行任何完整負載和變更資料擷取移轉。要執行數據庫遷移到 Redis OSS 目標,請執行以下操作。

  • 建立複寫執行個體,以執行遷移的所有程序。如需詳細資訊,請參閱建立複寫執行個體

  • 指定來源端點。如需詳細資訊,請參閱來源與目標端點

  • 找出叢集的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

    在此,輸出會顯示Address屬性中的DNS名稱,以及叢集中主節點Port屬性中的連接埠號碼。

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

    如果您使用 MemoryDB 作為目標,請使用以下 AWS CLI 命令為 Redis OSS 叢集提供端點位址。

    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完成您 AWS 區域中存取特定 S3 儲存貯體及其提供的 rds-combined-ca-bundle .pem 儲存貯體所需的 Amazon S3 網域。

使用 AWS DMS 主控台建立目標端點

此端點適用於已在執行的 Redis OSS 目標。

  • 在主控台中,在導覽窗格中選擇端點,然後選擇建立端點。下表說明相關設定。

    若為此選項 執行此作業

    端點類型

    選擇目標端點類型。

    Endpoint identifier (端點識別碼)

    輸入您的端點名稱。舉例來說,在名稱中包含端點類型,例如 my-redis-target

    目標引擎

    選擇 Redis OSS 做為您希望此端點連線的資料庫引擎類型。

    叢集名稱

    輸入您的 Redis OSS 叢集的DNS名稱。

    連接埠

    輸入 Redis OSS 叢集的連接埠號碼。

    SSL安全協議

    選擇純文字SSL加密

    純文字 — 此選項不會為端點和資料庫之間的流量提供傳輸層安全性 (TLS) 加密。

    SSL加密 — 如果您選擇此選項,請輸入SSL憑證授權單位 (CA) 憑證ARN以驗證伺服器的憑證並建立加密連線。

    對於內部部署 RedisOSS,DMS支援公用和私有憑證授權單位 (CA)。對於 ElastiCache (RedisOSS),僅DMS支援公用 CA。

    身分驗證類型

    選擇連線至 Redis OSS 時要執行的驗證類型。選項包括驗證角色驗證令牌

    如果您選擇 [驗證角色],請提供驗證使用者名稱驗證密碼

    如果您選擇 [驗證令牌],則只需提供驗證密碼

    Replication instance (複寫執行個體)

    [選用] 僅當您想要測試連線時,請選擇您先前在建立複製執行個體頁面上輸入的複製執行個體名稱。

完成提供端點的所有資訊後, AWS DMS 會建立 Redis OSS 目標端點以供資料庫移轉期間使用。

如需建立遷移任務和開始資料庫遷移的相關資訊,請參閱 建立任務

指定 Redis OSS 作為目標的端點設定

若要建立或修改目標端點,您可以使用主控台CreateEndpointModifyEndpointAPI作業。

對於 AWS DMS 主控台中的 Redis OSS 目標,請在 [建立端點] 或 [修改端點主控台] 頁面上指定端點特定設定。

使用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,指定資料將移轉至的 Redis OSS 叢集,且位於相同VPC的叢集中。

  • Port–(必要) 類型為 number,用於存取端點的連接埠值。

  • SslSecurityProtocol–(選用) 有效值包括 plaintextssl-encryption。預設值為 ssl-encryption

    plaintext此選項不會為端點和資料庫之間的流量提供傳輸層安全性 (TLS) 加密。

    ssl-encryption於建立加密連線。 ssl-encryption不需要SSL憑證授權單位 (CA) ARN 來驗證伺服器的憑證,但可以選擇性地使用此SslCaCertificateArn設定來識別一個憑證。如果ARN未提供憑證授權單位,請DMS使用 Amazon 根 CA。

    使用內部部署 Redis OSS 目標時,您可以使用SslCaCertificateArn將公用或私有憑證授權單位 (CA) 匯入DMS,並提ARN供伺服器驗證。使用 ElastiCache (RedisOSS) 做為目標時,不支援私有 CA。

  • AuthType— (必要) 指出連線至 Redis OSS 時要執行的驗證類型。有效值包括 noneauth-tokenauth-role

    auth-token選項需要」AuthPassword「提供,而選auth-role項需要」AuthUserName「和」AuthPassword「被提供。