需要的技術背景

主要需要對Docker有一定程度的了解,有使用過Dcoker Compose,對於多容器管理有基本認識。

以及接下來講到的ECS服務是AWS所提供,除了ECS以外,會有用到其它服務,希望也能有基本認識,例如 VPC, EC2, Load Balance, Auto Scaling,會比較容易上手

目的,為什麼要做容器部署

如果有用Docker就會知道,容器很方便,能夠排除過去很多環境設定上的問題,例如

過去 →

A: 專案程式架構我弄好囉,B,C 你們照著這個文件安裝相依的套件工具還有資料庫,然後在把程式跑起來就好了 !

B: 有文件 👍 ... 你是Mac嗎? 我Linux好像安裝有點問題

C: 好 ! ... 啊我都安裝完了,但好像還是跑不起來欸 😨

容器化後 →

A: 專案程式架構我弄好囉,你們打一下 docker compose up,各服務就都跑好了。如果想知道安裝的步驟,你們可以看一下設定檔案就清楚了 !

B, C: Wow 😍

接著就是把容器部署到Cloud上,當然最簡單的方式,就跟本地使用一樣,在遠端的機器上安裝Docker,一樣將它跑起來就可以。

但是這樣會有效率以及安全性的考量,所以服務都在同一台,當某個服務壞掉時,可能會造成所有服務中斷,而且無法依照個別服務,去提供特定所需的資源量;以及安全性的考量,其中一個服務如果遭受攻擊,可能也會波及其他。目前常見的微服務的架構,當系統有越來越多的微服務時,就需要考量到如何更有效率的控管

基於以上需求,如果想要將多容器部署至多個機器上,現在主流是Kubernetes(K8s)但我還不會,只能不負責任的簡單介紹,他是在提供「跨主機叢集的自動部署、擴充以及執行應用程式容器的平台」的開源系統,你可以安裝在任何地方,無論是私有雲或是公有雲(AWS, GCP...)。

但我今天要講的是AWS ECS(Elastic Container Service),選擇用他的原因是 Amazon Elastic Container Service(Amazon ECS) 是具高可擴展性且快速的容器管理服務,可以在叢集上輕鬆執行、停止和管理容器,看得出來我是從官方介紹貼來的~被「輕鬆」這個字吸引,應該是很好上手 😂