Amazon Elastic Container Service(ECS)標誌著 AWS 進入 CaaS 市場。在 Kubernetes 還沒有出現時,各家雲端大廠對於容器化的管理工具都有自己實作。對應在 AWS 上的容器編排平台,是在 2014 年宣佈的 ECS 服務。後續進一步改進,發布 ECS with Fargate,可讓我們運行 container,而無需管理伺服器或集群。 故 Amazon ECS 具有兩個常用模式:
- EC2 啟動類型
- Fargate 啟動類型
以下分別進行介紹。
2017年,AWS 推出了 Fargate,這是一個用於部署和管理容器的模式,代表用戶無需管理 EC2 基礎設施。 Fargate 的核心理念就是 Serverless ,讓 ECS 用戶專注於任務和服務定義,而不是管理集群基礎設施,Fargate 可配合用於 ECS 和 EKS。
ECS (Elastic Container Service) 和 EKS(Elastic Kubernetes Service)都是 AWS 上提供的 Container Orchestration ( 容器管理工具 ),核心都是中央控制管理運行的容器化應用程式,以下來簡單介紹一下吧。
cloud-init 是一個 package,可以藉由配置 cloud-init 來執行各種任務,自動初始化 cloud instance。在初次開機時就將想要的檔案或設定與系統一併弄好而不用手動處理。大部分雲平台都支持 cloud-init,目前是 industry standard (行業標準)。
使用 Packer 建立 AWS EC2 AMI 或者是 GCP Machine Image,兩個都會有機率發生一些問題, 有時候是 image 內一些應用程式安裝出現問題;有時候是再最後啟動 AWS 或 GCP 虛擬機時,使用 user-data 或 startup-script 時會出現問題,共同的錯誤訊息是 no installation candidate. 。 AWS 機率發生體感機率比 GCP 高不少。那問題的根源是什麼呢,來看看吧!
AWS 目前有多種 Load Balancing
- Application Load Balancer
- Network Load Balancer
- Classic Load Balancer
對於 Classic Load Balancer ,除非還有 ec2 運行在 ec2-classic 網路的場景,要不然已經不建議使用了,建議使用 Application Load Balancer 、 Network Load Balancer 取代。