Amazon-Web-Services

在 AWS(或其他雲提供商)中部署鏡像環境有哪些模式和反模式

  • September 6, 2018

我正在尋找一些用於部署鏡像環境的良好模式和反模式(為簡單起見,讓我們說一個 EC2 實例以及 RDS 和 S3 儲存桶,這是一種非常常見的設置)。假設我們必須這樣做數百甚至數千次。我已經提出了一些想法,例如

  • 多個帳戶 - 單一用途 - 使用所有區域

    • 我們為每個區域部署一個 VPC 實例,並在該區域部署我們的一組服務。
    • 好,保證隔離並且沒有noisy neighbors,TF模組或CloudFormation模板不會復雜
    • 糟糕,一場可怕的管理噩夢
  • 單一賬戶 - 多用途

    • 我們將 VPC 分割成多個子網,並按子網分組部署資源
    • 好,更容易管理,事半功倍
    • 不好,您每個區域的子網數量被軟限制為 20 個(16 個區域 * 20),可能存在嘈雜的鄰居,網路最終可能會變成意大利麵條

我正在尋找更多的方法來做到這一點,以及為什麼它們會不好(技術債務、不可維護)或好的(易於重用等)

太感謝了

所以關於這個相當複雜的話題要說幾點一般性的觀點——這在很大程度上取決於你真正想要實現的目標。

你有三個選擇:

  1. 單個 VPC - 一組大型子網 - 在您的範例中,這將是 4 - 2 個“公共”子網和 2 個“私有”子網。然後使用安全組來隔離“部署”——我看到,使用子網進行隔離沒有任何好處,除了必須管理 IP 地址空間和大量子網。最終,子網之間的唯一區別通常是:AZ/route-table/nacl/dhcp-options - 如果其中一個發生更改,則僅使用新子網。子網本身不會給您帶來任何“吵鬧的鄰居”問題。它不是經典的“vlan”意義上的第 2 層域,上游網際網路網關是水平可擴展的,沒有限制,根據:Amazon VPC 常見問題
  2. 多個 VPC - 如果您有一個帳戶 - 您可以在一個區域中擁有多個 VPC,軟限制為 5 個 VPC,但硬最大為:

區域內的 VPC 數量乘以每個 VPC 的安全組數量不能超過 10000。

亞馬遜 VPC 限制

這是相當高的,在您的範例中,您可以說可能有 4 個安全組(ELB、EC2 ASG、RDS、管理員訪問),所以理論上意味著 2,500 個 VPC?我沒有聽說有人有這個,但它可能是一種選擇。

但是,根據您的平台的自動擴展性,要考慮的另一件事是,一些限制是帳戶範圍的,如果您針對一個部署點擊它們,那麼它可能會影響另一個 - 例如,只是特定類型的實例計數 - 或 Lambda 並發執行限制。所以這導致了第三種選擇…… 3. 多個賬戶 - 現在您可以通過 API 創建新賬戶,這要歸功於 AWS Organizations API,但遺憾的是,限制頁面在賬戶數量方面的限制是模糊的。雖然我聽說大型企業有 1000 個帳戶。請參閱:AWS Organizations 的限制以及如何使用 AWS Organizations 自動創建端到端賬戶

總體而言,對於您的案例,您將需要一個乾淨的 CloudFormation 堆棧,該堆棧可以以最小的變化完全重複使用 - 只是為了部署、操作和支持的一致性。對我來說,這指向 VPC 作為部署單元或帳戶作為部署單元。在這兩種情況下,您都需要小心注意限制。在具有大型子網或按子網拆分的 VPC 中執行此操作最終將變得難以維護 - 我的主觀看法。

引用自:https://serverfault.com/questions/929768