close

ELB(Elastic Load Balancing)

  這一篇說的是關於在AWS上的Load Balancing(負載平衡,以下簡稱LB)的部份;在AWS上已經幫我們建立好,一個可以讓我們簡單建立負載平衡功能,當然,它是需要付費的;不過,即然會在這裡介紹,表示它也在AWS一年免費的範圍裡。

ELB的計費方式與免費額度

  ELB的的使用,其實很類似Proxy,因此,它只有二個部份會影響費用,一個是開機時間,一個是資料流量,所以AWS的收費也是以這二個為基準,下圖是AWS在東京區域的收費方式:

而AWS提供的免費額度:

    AWS 免費方案包括一年每月 750 小時的 Elastic Load Balancing 服務時間,以及與 Amazon Elastic Load Balancing 配套的 15 GB 資料處理量。

ELB的建立

  ELB的建立頁面在EC2的頁面上,所以我們要先進到EC2的主控台頁面,找到左方Menu的「LOAD BALANCING」:

  

進入後,一樣,會在上方看到一個藍色的按鈕,利用它來建立起第一台ELB:

進入後會看到有二個ELB可以選擇:

這二個ELB的差別,左邊的Application Load Balancer是可以根據使用者的網址路徑,來指定不同的EC2群組接收;右邊的Classic Load Balancer則無法將EC2分群組,而是全部導到同一群組的EC2,詳細可以參考AWS上的官網說明。因為我們處於一個使用免費額度的狀況,所以選擇右邊的比較簡單。

再來的設定是Port Forward:

當使用者連到LB的某一個Port時,這個ELB會重組一個封包,並發送到某一台EC2,此時可以設定Port是否要轉變;這邊要注意的是,要注意Security Group與EC2上的防火牆要開啟,否則ELB會連不到EC2。

第二步要設定ELB上的Security Group,這邊要注意的是:請把ELB想像成另外一台EC2,所以二邊的設定是分開的,如果設定內容一樣的話,是可以套用相同的Security Group,但在查找問題時,請記住二邊是分開的設定。

如果我們在第一點有選擇HTTPS的話,這一個設定就很麻煩,因為我們必須在這裡建立好憑証;所以依據頁面上的方式,一步一步設定好憑証功能;如果我們在第一步時,沒有選擇HTTPS的話,那在這一步就可以直接跳過了,如下圖:

如果覺得第三步的設定很麻煩的話,可以先回到第一步,刪掉HTTPS,建立好ELB後再回來變更。不管如何,走完第三步後,看到的是:

要設定ELB如何判斷EC2是否存活的設定,基本上按照個人需求或直接使用預設即可;比較需要注意的有二點:

  1. 調整Port與網址,讓ELB可以連到EC2。

  2. ELB連到EC2的中間,會吃掉我們流量額度,所以建議網頁內容越少越好。筆者會直接建立一個簡單的文字網頁,專門用來讓ELB連線使用。

 

再來就是確認那些EC2要被ELB管理,因為我們只有一台,所以就把這一台加EC2加入到ELB進行管理;這邊要注意的是上方的紅框處,如果要建立跨區(Cross-Zone)的ELB,會根據EC2的區(Availability Zone)來建立ELB,換句話說,如果有二台EC2在不同的區,那麼就會有二台ELB,所以這個選項會跟請款金額有影響,如果是使用一年免費額度的話,建議不要勾選。

再來是設定Tag的部份,Tag的功能主要是用來給程式區別用的,所以如果沒有要用到AWS的API來管理的話,這個部份可以不用處理,而且它也不是必填,所以就跳過吧。

最後確認一下,沒問題就可以建立ELB了:

ELB的使用

  ELB建立完後,就可以馬上使用了,而ELB的對外DNS,在EC2的「Load Balancers」主控台可以看到,如下圖:

我們就可以透過這個DNS name,連到我們的服務了,如果我們有另外租用DNS服務,也可以透過這個DNS name來設定,讓使用者透過簡單的DNS name,導到我們的ELB。

ELB障礙排除

  在設定好ELB後,最常遇到的問題,就是--連不到EC2,此時就要回到利用幾個方式來判斷問題出在那裡,下列提供幾個方法:

  1. 確認ELB與EC2的關係:進入ELB的「Instances」的視窗中,確認ELB有提供EC2服務,下圖是正常情況:

其中,正常為:inService,不正常為:outOfService。

  1. 確認EC2正常提供服務:有的時候是EC2掛掉了,這種狀況,我們就要繞過ELB,直接發Request到EC2,來確認服務是否正常;先取得EC2的public IP或DNS,直接連到EC2來確認,下圖是確認EC2 DNS及IP的位置。

  

透過上述的二種方法,就可以解決大部份的問題,如果還不行,可能是DNS端的設定問題,此時就利用ELB的DNS來直接連線,試著找出問題並解決。

arrow
arrow

    JAVA Programmer 發表在 痞客邦 留言(2) 人氣()