iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
DevOps

探索亞馬遜雨林30天系列 第 25

Day 25: 結合AWS ECS和ECR部署service(下)

  • 分享至 

  • xImage
  •  

昨天做好network的準備之後,就可以開始準備部署,接下來會依序介紹,部署之前還需要做什麼,以及部署的步驟。基本上會需要準備cluster、service和task,它們的關係會像下面這張圖,cluster上面有多個service,每個service上面可以跑多個task,task上可以跑多個container。

設定Task definition

在部署service的時候,需要先定義好container的infra,像是要部署在Fargate還是EC2,要使用什麼OS架構,CPU的大小要多少,以及部署的時候要用哪個role去執行。role的部分,沒有特殊需求的話,基本上使用AWS預先產生好的AWSServiceRoleForECS即可。

然後還需要設定Image的URI,這樣部署的時後才知道要去哪裡抓image。並且可以指定container開放哪些port,甚至是設定環境變數。

設定好之後就可以看到剛才設定的相關資訊,如果要修改,需要新增一個版本,不能直接編輯。

新增cluster

因為service要掛在cluster底下,所以部署前還需要新增一個cluster。新增的時候一樣需要選擇infra,如果要在cluster上跑指定的container,infra必須跟Task definition設定的一致。

新增之後就可以看到上面提示正在執行。

新增cluster是透過cloudformation,所以可以到cloudformation查看進度。

新增Service

有了cluster之後,就可以新增service準備部署。一開始要先選擇Capacity provider strategy,決定執行時有多少task和Fargate的版本。

再來需要選擇task definition,在前面有設定過。

Networking的部分,像前面所說的,VPC需要可以對外部網路存取,所以選擇的VPC不能是封閉不能對外的。

Service一樣是透過cloudformation產生的,所以設定完按Create之後,就可以到cloudformationt查看進度。

部署Service的過程中,會新增task,在task這邊也可以觀察是否有failed的情形。有發現failed的話,可能是在部署container的過程中失敗。

如果要看過程是成功還是失敗,Events也可以看到紀錄。


上一篇
Day 24: 結合AWS ECS和ECR部署servcie(上)
系列文
探索亞馬遜雨林30天25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言