Ssh
在 AWS EC2 機器之間複製數據
有時,為了進行一些調試或手動遷移,我需要將大量數據從一個 EC2 實例複製到另一個實例。當數據的大小很小時,只需從實例 A scp 到我的機器,然後 scp 到實例 B,這很簡單,但對於大型有效負載,這是不可持續的。
我目前登錄 AWS 實例的方法是通過 OpenVPN 隧道上的 SSH。我在 EC2 機器上的作業系統使用者實際上沒有從一台機器到另一台機器的 ssh 選項。
我在這裡有幾個選擇。我可以生成一個 SSH 密鑰,僅用於從一台機器 ssh 到另一台機器。或者也許我只能在實例的子網內啟用基於密碼的登錄(不確定這是否可行)。聽起來都不是特別吸引人或安全。
在這種情況下,最佳做法是什麼?我確定我不是第一個需要啟用此類功能的人。
如果 EC2 實例是基於 EBS 的,並且可以接受一些停機時間,您可以製作包含數據的 EBS 卷的快照,基於該快照創建一個新的 EBS 卷,並將其附加到另一個實例。請參閱創建 Amazon EBS 快照和從快照恢復 Amazon EBS 卷。
另一種選擇是通過s3進行複制,使用AWS CLI和命令
aws s3 cp
或s3cmd。另一種選擇是Amazon Elastic File System,它允許您以類似於 NFS 的方式在 EC2 實例和本地伺服器之間共享文件系統。截至 2018 年 9 月 15 日,此服務尚未在所有 AWS 區域提供。您可能需要查閱AWS 區域表以檢查它是否在您的目標區域中可用。
請注意,這些選項都不需要實例能夠相互訪問,也不需要 SSH 密鑰。