簡體   English   中英

RDS快照可以跨AWS賬戶傳輸嗎?

[英]Can RDS snapshots be transferred across AWS accounts?

自回答此問題以來,AWS Tools for Powershell已經發布,我基本上遇到了同樣的問題:我在一個AWS賬戶上有一個RDS快照,我希望將其轉移到另一個賬戶。

到目前為止,我已經能夠使用Get-RDSDBSnapshot cmdlet選擇我想要的快照,並且我想獲取該Amazon.RDS.Model.DBSnapshot對象並在其他帳戶中使用它。

我一直在環顧四周,我認為Restore-RDSDBInstanceFromDBSnapshot cmdlet(映射到rds-restore-db-instance-from-db-snapshot )可能正是我正在尋找的,但我不相信我理解它行為 - 是否可以使用此cmdlet從我的第一個帳戶獲取快照,並將其還原到第二個帳戶中的實例?

我特別關注Snapshot對象中是否存在任何特定於帳戶的詳細信息,或者是否會阻止該數據跨帳戶移動的cmdlet的處理。 如果存在一個問題,我會使用比PowerShell更通用的解決方案。

2015/10/29更新:

自我的原始發布( 鏈接到公告 )以來,AWS已為此功能添加了原生支持。 未加密的MySQL,Oracle,SQL Server和PostgreSQL支持此功能。

您可以選擇公開或私下共享RDS快照(通過管理具有查看快照權限的特定AWS賬戶ID)。 默認情況下,快照最多可與最多20個帳戶共享。

這可以通過單擊“快照(左側導航欄)>共享快照(頂部工具欄)”從RDS控制台進行管理,從而引導您進入以下UI:

在此輸入圖像描述

這也可以在RDS API和CLI中使用。


原答案:

我還將此發布到AWS開發者論壇,並得到了PhilP @ AWS的回復 似乎我們根本無法通過powershell或任何其他手段來做到這一點。 不過,他確實提出了一些備選建議:

無法直接將RDS快照從一個帳戶共享到另一個帳戶。 但是我可以在這里提出一些建議(取決於您當前的配置):

如果您的RDS實例可公開訪問:

  • 在您的第二個帳戶上啟動新的RDS DB
  • 將適當的數據庫管理工具安裝到PC上,並為該PC網絡提供對兩個RDS實例的訪問(安全組和數據庫用戶訪問以進行讀寫)
  • 使用數據庫管理工具將數據從一個DB復制到另一個DB

通過EC2實例作為中介復制數據:

  • 啟動使用適當的DB服務器軟件配置的EC2實例
  • 將RDS數據庫數據從RDS實例復制到EC2實例
  • 然后將新的RDS實例啟動到第二個帳戶
  • 配置適當的訪問權限(安全組和數據庫用戶訪問權限以進行讀寫)
  • 將數據庫數據從EC2實例復制到新創建的RDS實例

我的RDS實例無法公開訪問,而且他的建議是EC2解決方案更可取。 根據服務器故障解決方案,我們可以交替使用mysqldump。

編輯:我想更新我已成功實施EC2中介建議。 這可以通過多種方式實現自動化,但我選擇的解決方案包括將bash腳本作為用戶數據傳遞給(linux AMI)EC2實例,並在腳本中處理數據傳輸的詳細信息。

此解決方案最終具有相當的成本效益,但需要注意的是您希望RDS實例和EC2實例位於同一可用區中。 這在很大程度上是因為在同一可用區域中RDS-EC2之間的數據傳輸是免費的 ,具有私有IP地址。

亞馬遜終於有可能實現這一目標。 您可以使用Edit-RDSDBSnapshotAttribute cmdlet( 此處為示例 )與其他帳戶共享快照,然后可以使用Restore-RDSDBInstanceFromDBSnapshot cmdlet將其還原到共享快照的帳戶。

您甚至可以立即共享加密的快照。 這是關於如何做到這一點的一個很好的演練

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM