1

我使用AWS,我用shell腳本創建自動縮放的啓動配置:無法訪問EC2實例

#!/bin/sh 
curl -L https://us-west-2-aws-training.s3.amazonaws.com/awsu-spl/spl03-working-elb/static/bootstrap-elb.sh | sh 

創建這和負載均衡後,創建了兩個實例。然後我複製了DNS名稱,並在瀏覽器中粘貼它,但它說:

This site can’t be reached 

internal-elb-asg-167368762.us-east-1.elb.amazonaws.com took too long to respond. 
Go to http://amazonaws.com/ 
Search Google for internal elb asg 167368762 east amazonaws 
ERR_CONNECTION_TIMED_OUT 
+1

您是否爲負載均衡器配置了運行狀況檢查,並且負載均衡器中的實例狀態顯示爲「正在服務」? – Asanka

+0

內部Elb's無法訪問互聯網。 – jzaa

+0

請確認用戶數據的*第一行*以'#!'開始。它必須在這些字符之前不*有任何空格或空行,否則腳本不會在啓動時執行。 –

回答

0

編輯

我跟着你的腳步,但失敗。

您必須更改用戶數據的這一部分:

#!/bin/sh curl -L https://us-west-2-aws-training.s3.amazonaws.com/awsu-spl/spl03-working-elb/static/bootstrap-elb.sh | sh 

有了這個:

#!/bin/sh 
curl -L https://us-west-2-aws-training.s3.amazonaws.com/awsu-spl/spl03-working-elb/static/bootstrap-elb.sh | sh 

編輯:@約翰 - rotenstein提到的沒有必要使用sudo。

此外,檢查:

  • 您對EC2和你ELB正確的安全組。
  • 檢查您是否正在收聽ELB中的端口80。
  • 您的EC2安全組中的端口80必須在您的ELB安全組中打開,並且端口80必須在您的ELB安全組的全球範圍內打開(0.0.0.0)。

最後,你確定你沒有使用內部負載平衡器嗎?

希望它可以幫助你。

+0

用戶數據在實例啓動時作爲Root用戶執行。因此,'sudo'不是必需的。 (但是,如果您以'ec2-user'手動運行腳本,則需要使用'sudo'。) –

+0

當我檢查日誌(Web控制檯)時,它以ec2用戶身份執行,而不是以root身份執行 –

+1

[在啓動時在Linux實例上運行命令](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html):「作爲用戶數據輸入的腳本以root用戶身份執行,因此請不要在腳本中使用sudo命令。「 –