ECS是Amazon的一項免費服務(其他都要錢)主要是基於docker用來管理伺服器需要的服務及可以依照你的docker image達到直接快速佈署(CI)目的而生。
"Amazon ECS 能讓複雜的基礎設施變得簡單,因此您可以專注在設計、建構與執行容器化的應用程式"
當你已經花太多時間去管理docker與你的EC2時,這是個選項
我們先進入AWS的AMI點選Add User新增一個使用者,方便我們這次demo
為了方便我們這邊直接給予最高的權限以免到時發生問題
新增完後我們可以取得這個使用者的Key跟ID方便我們等等aws-cli登入及使用,先放旁邊備用
接下來我們要安裝docker可至上方的連結下載,並選擇Stable stable即可,下載完後double click把鯨魚拖到Applications資料夾即可
左上方的Service 點一下後出現的選單中找尋ECS
點Start
直接下一步
這一步是為了你的ECS Repo命名,取一個對你有義意不會忘記的名稱
在這裡我們就要開始上傳我們的docker image,接下來我們會依照ECS的指示一步一步完成他
首先我們先登入docker,如果沒帳號的話可以到docker hub去註冊一個,因為我們等一下會用docker hub上人家已經作好的image,所以這裡我們就不自建image了
如果你是第一次使用aws-cli的話,我們需要先設定aws輸入"
接下來就可以依照剛剛aws頁面上的指示登入aws-cli,輸入後他會出現一大串的東西,這時不用怕,直接在把他那一大堆東西copy / paste貼回去按下enter就登入了
準備dockerfile
登入完docker與aws-cli後我們就可以挑一個我們在網路上人家已經做好的環境,在這裡我們用ubuntu-nginx-php7為例,我們用git 將人家的docker file clone下來
有了dockerfile後我們就可以建立我們的image,進入剛剛clone下來的目錄輸入
docker build -t laravel .
接下來他就會開始建立我們的image,別忘了image的名稱要與剛剛ECS repo同名
Image Build完以後就可以tag我們的image,然後push他,這邊就是直接照ECS上面的指示進行後,完成後就會看到右邊圖示的樣子,代表你已經完成
當你docker image push完成後,我們就可以在ECS的精靈在按下一步了,這時後就會出現右邊的畫面,設定你task的名稱、記憶體、以及port的對應,請依需求設定然後按下一步就好了
在這裡我們要設定對外的服務,你希望ECS幫你跑多少的task然後實體對外的port要如何對應,及需不需要負載平衡
設定叢集的名稱、機器要有多大,要幾台機器,然後登入的key之類的,最後設定你對外的port要開哪些,沒意外直接下一步即可
確認沒問題後就可以執行了
等待ECS把你的服務建立出來
看到下面這個畫面就代表好了
這時後我們就可以到EC2看到一台機器是剛剛起來的,我們就可以連到這台ip看看
完美的連到我們的服務了