2016-07-25 69 views
2

我很困惑AWS負載平衡器是如何工作的。我有一個非常簡單的設置...Loadbalancer無法獲得良好的健康檢查

我有一個基於休息的API,需要通過我的負載平衡器暴露於互聯網(端口80)。我只想讓負載均衡器暴露於互聯網流量。我爲我的實例設置了一個安全組設置,僅限我的ipaddress進行測試。

負載均衡器在http上沒有ip限制,它只是打開了端口80(在端口3001上有一個監聽器來監聽我的api服務)。問題是,如果我對有問題的實例設置了任何ip限制,負載均衡器無法看到我的實例。一旦我刪除了我的實例的這些限制,運行狀況檢查就開始工作,並且可以通過負載平衡器訪問該服務。問題是,我的實例現在有端口可以打開到我不想要的互聯網。

有什麼額外的我需要做的,讓負載平衡器訪問我的實例時,使用IP限制?

最後一點,我的健康檢查工作正常,直到我添加實例級別的IP限制,因此我知道健康檢查不是問題。我認爲如果我將負載均衡器的IP添加到白名單中,它會起作用,但該IP是動態的,並且不適用於此目的。

+0

要設置IP限制的,當你ELB使得實例不健康的實例是哪個端口? – error2007s

+0

我限制了端口3001只對我的ip地址開放。限制訪問時,我只是面向流量的互聯網 - 但我認爲這也可能會限制我的負載均衡器訪問實例。 ELB本身不會使實例不健康,它只是沒有通過健康檢查。 – bstar

+0

您在AWS ELB運行狀況檢查中設置了哪些內容? – error2007s

回答

3

請勿使用IP限制。

1)選擇您的LB,選擇Security選項卡並記下安全組ID(類似sg-5555abb)。點擊該ID編輯它

2)當您編輯Load Balancer安全組時,只需添加一個允許規則:HTTP TCP 80 0.0.0.0/0(和/或443如果您需要,但您明白了)。

3)接下來轉到您的實例的安全組。只允許Load Balancer的安全組通過端口3001訪問您的實例:Custom TCP Rule TCP 3001 sg-5555abb (my-load-balancer)。請注意,在Source場你不從第1步中輸入IP地址/掩碼,但安全組ID)

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

+0

我的負載均衡器安全組不限制IP,只是我的實例的安全組。我認爲LB將不受實例的安全組規則的影響......我想它通過本地亞馬遜網絡訪問實例。 – bstar

+0

對不起,也許我還不夠清楚,我會擴大答案。 –

+0

@bstar我刪除了我的答案,按照這個答案,這就是你正在尋找的東西,並且會按照你想要的方式工作。 – error2007s