本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 目標,請執行以下操作。
開始資料庫遷移的方法有兩種:
-
您可以選擇 AWS DMS 控制台並在那裡執行每個步驟。
-
您可以使用 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 作為目標的端點設定
若要建立或修改目標端點,您可以使用主控台CreateEndpoint
或ModifyEndpoint
API作業。
對於 AWS DMS 主控台中的 Redis OSS 目標,請在 [建立端點] 或 [修改端點主控台] 頁面上指定端點特定設定。
使用CreateEndpoint
和ModifyEndpoint
API作業時,請指定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
–(選用) 有效值包括plaintext
和ssl-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 時要執行的驗證類型。有效值包括none
、auth-token
與auth-role
。該
auth-token
選項需要」AuthPassword
「提供,而選auth-role
項需要」AuthUserName
「和」AuthPassword
「被提供。