對比AWS、Azure和Google的云容器注冊表
亞馬遜云計算服務(AWS)、谷歌云服務和微軟Azure,這三大公共云平臺都提供Docker容器注冊表。雖然他們的產品看起來很相似,但開發人員在做出選擇之前,應該先了解價格和功能方面的差異。
公共云供應商的云容器注冊表使用戶能夠托管容器鏡像,并通過該供應商的容器服務進行部署。***選項是Amazon Elastic Container Registry(ECR)、Azure Container Registry和Google Container Registry。
在大多數情況下,開發人員不必使用其特定云供應商提供的云容器注冊表,即使他們正在使用該供應商的容器服務。他們通常可使用第三方容器注冊表,例如Docker Hub。但是,由于某些原因,云服務提供商原生注冊表通常是最簡單的選擇。
成本比較
這三個云容器注冊表之間***的區別之一是價格。AWS ECR、Azure Container Registry和Google Container Registry之間不僅費率不同,而且定價結構也不同。
AWS ECR會對存儲在容器注冊表中的數據收費,還會對數據傳入和傳出注冊表的帶寬收費。用戶可將數據從ECR傳輸到同一區域的Elastic Compute Cloud實例,而無需任何成本,但向不同地區傳輸數據則需要付費。ECR具體定價取決于注冊表所在的AWS區域;當達到一定限度,數據存儲和帶寬都是免費。
另一方面,Azure容器注冊表有著更為復雜的定價結構。微軟的價格分為三個等級,每個等級按固定價格計費,并有固定的存儲空間。這種結構可能看起來很簡單,但它不包括網絡帶寬費用,這些費用單獨計算。用戶還必須單獨為容器鏡像構建付費,價格為每秒CPU時間0.00005美元。對于很多用戶來說,這是很小的成本,但對于經常重建容器圖像的人來說,這可能不是小數目。
而Google Container Registry的定價與ECR類似。用戶根據他們使用的數據存儲量和網絡帶寬付費。但是,默認情況下,Google Container Registry會將數據存儲在多區域存儲桶中。
云容器注冊表中的其他主要差異
地理冗余使容器圖像能夠分布在多個云中;當一個區域變得不可用,用戶可以從另一個區域訪問容器圖像。地理冗余還可以提高性能,因為它使企業能夠將容器鏡像放置在地理位置靠近用戶的數據中心。
但對于不同云提供商,此功能會有所不同。
Google Container Registry默認提供地理冗余。 Azure容器注冊表允許用戶配置重復地理,但此功能僅在高級服務層中提供,這是最昂貴的服務級別。AWS不提供在多個地區傳播容器圖像的直接方法,ECR僅作為區域服務設計。如果要在ECR中實現地理冗余,用戶必須在不同區域手動設置多個注冊表,而保持這些圖像同步需要大量工作。
通過AWS ECR和Azure容器注冊表界面,開發人員可通過Web門戶在其注冊表中管理容器鏡像。此外,這兩個容器注冊表都提供使用命令行界面來管理容器鏡像的選項。另一方面,Google Container Registry要求開發人員使用Google的軟件開發工具包命令行工具來推送和拉取容器鏡像。