AWS 中使用 Packer 的部分不可變基礎設施?
我是一個非常年輕的系統工程師/承包商系統管理員,工作量很大,剛搬到一個我可以通過網際網路連接下載 2mbps 和上傳 20 mbps 的區域。因此,我將我的 Debian 10 工作站遷移到 AWS,我需要一些建議。
我想用 terraform(完成 99%)、packer 和 ansible 來管理我的工作站設置。我想創建一個腳本以在每次更改我的 ansible 設置時執行,該腳本將使用 packer+ansible 創建一個新的 AMI 並使用 Terraform 部署它。
我想在我的基礎設施的所有版本中保持我的主目錄相同,因為我有大量的 vagrant box 和 pip venvs 填充了我想要保持一致的包,無論基本系統配置是什麼。當我添加 ssh 密鑰、創建熱連線的 vagrant 設置(值得另一篇文章)等時,主目錄將得到輕微管理。這是目前的主要障礙。
我正在考慮使用第二個 EBS 卷並將其安裝在 /home/。問題在於,當您從另一個實例創建 AMI 時,它將複製 EBS,並獲得自己的 EBS ID。下次我使用 Packer 創建 AMI 時,我需要在正在執行的實例上創建 EBS 卷的快照、附加和掛載,但我沒有看到使用 Packer 或 Ansible 執行此操作的明確方法。EFS 太慢,無法考慮。
基本上,有什麼方法可以在遷移到 AWS 中的新實例時保留生產實例中的數據,而無需從舊實例創建 ami,同時避免 EFS 等緩慢或昂貴的組件。我不能只是 ami-create 一個新實例,因為我希望我的 AMI 是從基本 Debian 10 映像生成的,以防止配置漂移。
這是一個左欄位答案,可能不會被接受,但我認為這是一個值得一提的選項。請避免投票給我的衝動,因為我沒有按預期回答。
使用 EFS 可能是最佳實踐。它有點貴,延遲時間更長,但它對這項任務有好處。
AWS 工作區
您是否考慮過AWS 工作區?它是 Ubuntu,但可能會解決您基於雲的工作站的問題。
S3 儲存
S3 上的儲存很便宜,而且通常足夠快,尤其是在您的 VPC 中有 S3 網關的情況下。
您使用 S3 的兩個主要選項是:
- 使用S3FS掛載 S3 儲存桶作為儲存,在 VPC 中使用 S3 網關,您應該可以獲得可接受的性能
- 在啟動、關閉時將您的數據與 S3 同步,您也可以使用 cron 來同步。我相信當您使用 VPC 網關時,S3 的頻寬是免費的,但您仍然需要為 put / get 操作付費,這應該是相當低的成本。