我正在尝试测试亚马逊ECS中的自动缩放行为。这是我测试的方式
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class LoadHttp {
private static final String GET_URL = "http://tournament-ecs-weather-lb-1526102172.ap-south-1.elb.amazonaws.com/status";
public static void main(String[] args) throws IOException {
System.out.println("GET DONE");
while(true){
sendGET();
}
}
private static void sendGET() throws IOException {
Thread t = new Thread(() -> {
URL obj;
try {
obj = new URL(GET_URL);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setConnectTimeout(5000);
int responseCode = con.getResponseCode();
System.out.println(responseCode);
} catch (Exception e) {
e.printStackTrace();
}
});
t.start();
}
}
这是我的自动缩放组配置
我正在使用ECS服务来创建集群,我的服务正在docker容器中运行。在执行我的测试代码后,我发现我的服务没有被自动调整。容器实例的数量仍然是一个。如果您需要其他信息,我会很高兴。
答案 0 :(得分:0)
如果我理解了您的问题,那么当当前实例中没有足够的可用资源来处理请求时,服务会自动调整。
在您的特定情况下,您已将实例的最小值设置为0,这表示即使没有实例正在运行,系统也应该做出反应。您需要为最小值至少设置1才能使整个群集运行正常。我相信由于这个原因,您的自动缩放不会启动任何实例。
另外,我建议您将Elastic Load平衡器添加到自动缩放组,当自动缩放中指定的最小实例数不健康时,它会要求自动缩放组启动更多实例。
最后,要测试自动扩展组是否正常工作,请检查实例的可用区域并注意该向下。现在终止你的实例。由于正在运行的实例终止,因此自动调节组应自动在不同的可用区中启动实例。如果它在不同的可用区域中启动新实例而不是终止的实例,则它可以正常工作。
希望这会有所帮助。