Quite a few changes you might want to cherrypick something from, top to bottom:
change retries to 1 and set a timeout of 10s on fetch_ip
rewrote the check_alive function to be much simpler, the fetch_ip check was not viable at 20+ proxies. It took too long.
updated ip_list not to return ip:s slated for destruction
added option to restart AWS proxies, much faster than destroy/create and fetches a new IP. Not supported for DO.
opened up port 22 on proxies for debugging, future enhancement is to only allow web control. (Use the EC2_INSTANCE_CONNECT filter for the service parameter to get the IP address ranges in the EC2 Instance Connect subset. )
enhanced status messages a bit in the check_alive for AWS
moved check_delete/stop to before provision so it removes and then immediately provisions a new one instead of waiting 20s for next tick
changed the proxy software to tinyproxy directly on the image instead of using docker. Much faster deployment and less cpu intensive so should work better with t2.nano
updated the settings checks to compare true/false as a string since it seems to be what it is getting, earlier a value of False in the config would read as true.
updated environ get to match the doc (ie SCALING instead of SCALE)
added botocore to requirements.txt, seemed to be missing.
Quite a few changes you might want to cherrypick something from, top to bottom: