iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

從0開始的AWS ECS CICD系列 第 6

D06_聽起來跟EC2很像的ECS_進入點ELB

  • 分享至 

  • xImage
  •  

昨天有提到,ECS可以因應需求進行Task數量的擴充/縮減,
那我要怎麼讓流量導向不同的Task呢?還是要等一個Task的負載全滿後,流量才會導入下個Task嗎?
一般來說,在有多個Server的情況下,會透過負載平衡器來進行分流。
以ECS來說通常是使用ELB(Elastic Load Balancing)。
ELB分為以下四種:

  • ALB (Application Load Balancer)
  • NLB (Network Load Balancer)
  • Gateway Load Balancer
  • Classic Load Balancer
    各自有優缺點,詳細的比較請看官方文件。
    但大部分的情況,ALB會是較佳的選擇,他可以使用HTTP、HTTPS來進行監聽,能夠以路由的Path來決定,要導向哪個服務。
    相較之下NLB則必須透過port來決定導向,就沒那麼方便。

以這次的架構來說,我們會採用ALB來串接ECS,
首先要說明ALB如何串接。

Request進入ALB後,會依據他是HTTP或HTTPS以及Port來決定會導向哪個Listener
接著會依據Request的Path來決定要導向哪個Target Group,若Target Group內有多個Task,則ALB會自動分配流量到不同的Task內。
以下圖的範例來說。如果我的Request是
http://example-alb-123456789.ap-northeast-1.elb.amazonaws.com/IThome/test
會導向哪裡呢?
答案是ECS的其中一個Task (至於是哪個Task則要看ALB心情了)
https://ithelp.ithome.com.tw/upload/images/20230921/20152618ulOcbYrUbv.png
為什麼答案是ECS?
就需要來拆解Request了,
首先他是http的請求,所以Load Balancer會將它分派給Listen1。
再來example-alb-123456789.ap-northeast-1.elb.amazonaws.com是為了範例所寫的ALB DNS,是讓外不能夠連到這個ALB的位置
接著其後接了 /IThome/ 則符合了Listener1的Rule1 (*表示萬用字元),因此會導向ECS。

看到這邊,在這張圖中,如果我想要導向EC2的話,Request應該會是什麼呢?
大家應該已經知道答案了吧

以上是ALB的原理,以及如何串接ECS。
明天會說明部署ECS的方式。


上一篇
D05_聽起來跟EC2很像的ECS_三種模式
下一篇
D07__聽起來跟EC2很像的ECS_滾動式更新
系列文
從0開始的AWS ECS CICD30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言