AWS ECS 分享
Agenda
- 實作!!
- FAQ
What?
ECS是Amazon的一項免費服務(其他都要錢)主要是基於docker用來管理伺服器需要的服務及可以依照你的docker image達到直接快速佈署(CI)目的而生。
"Amazon ECS 能讓複雜的基礎設施變得簡單,因此您可以專注在設計、建構與執行容器化的應用程式"
When?
當你已經花太多時間去管理docker與你的EC2時,這是個選項
How?
今天實作用ECS佈署我們常用的PHP環境
事前準備
- Mac一台(今天的demo都以mac為主)
- Docker hub帳號一組
- AWS 可課金帳號一組
- 基本Docker知識
- 愉悅的心情
新增使用者
我們先進入AWS的AMI點選Add User新增一個使用者,方便我們這次demo

給予使用者權限
為了方便我們這邊直接給予最高的權限以免到時發生問題

取得Key & ID
新增完後我們可以取得這個使用者的Key跟ID方便我們等等aws-cli登入及使用,先放旁邊備用

安裝docker
接下來我們要安裝docker可至上方的連結下載,並選擇Stable stable即可,下載完後double click把鯨魚拖到Applications資料夾即可

接下來我們進入ECS
左上方的Service 點一下後出現的選單中找尋ECS

進入精靈
點Start

ECS精靈-2
直接下一步

ECS精靈-3
這一步是為了你的ECS Repo命名,取一個對你有義意不會忘記的名稱

ECS精靈-4
在這裡我們就要開始上傳我們的docker image,接下來我們會依照ECS的指示一步一步完成他

登入docker
首先我們先登入docker,如果沒帳號的話可以到docker hub去註冊一個,因為我們等一下會用docker hub上人家已經作好的image,所以這裡我們就不自建image了

登入aws-cli
如果你是第一次使用aws-cli的話,我們需要先設定aws輸入"

登入aws-cli
接下來就可以依照剛剛aws頁面上的指示登入aws-cli,輸入後他會出現一大串的東西,這時不用怕,直接在把他那一大堆東西copy / paste貼回去按下enter就登入了

準備dockerfile
登入完docker與aws-cli後我們就可以挑一個我們在網路上人家已經做好的環境,在這裡我們用ubuntu-nginx-php7為例,我們用git 將人家的docker file clone下來

建立Image
有了dockerfile後我們就可以建立我們的image,進入剛剛clone下來的目錄輸入
docker build -t laravel .
接下來他就會開始建立我們的image,別忘了image的名稱要與剛剛ECS repo同名

上傳image至ECS
Image Build完以後就可以tag我們的image,然後push他,這邊就是直接照ECS上面的指示進行後,完成後就會看到右邊圖示的樣子,代表你已經完成

設定你的Service
當你docker image push完成後,我們就可以在ECS的精靈在按下一步了,這時後就會出現右邊的畫面,設定你task的名稱、記憶體、以及port的對應,請依需求設定然後按下一步就好了

設定Service
在這裡我們要設定對外的服務,你希望ECS幫你跑多少的task然後實體對外的port要如何對應,及需不需要負載平衡

設定叢集
設定叢集的名稱、機器要有多大,要幾台機器,然後登入的key之類的,最後設定你對外的port要開哪些,沒意外直接下一步即可

確認
確認沒問題後就可以執行了

等待
等待ECS把你的服務建立出來

服務完成
看到下面這個畫面就代表好了

確認服務
這時後我們就可以到EC2看到一台機器是剛剛起來的,我們就可以連到這台ip看看

登登~
完美的連到我們的服務了

FAQ
Amazon ECS 分享
By Seta Chuang
Amazon ECS 分享
- 867