There are several options, but none of them knows what everything does: you will need two things: auto-scan hosts according to signals, then auto-scale containers on hosts.
The following are solutions for deploying and scaling containers on hosts (not necessarily autoscaling):
Kubernetes is an orchestration tool that allows you to plan and (using an optional auto-scaler) auto-scale containers (groups of containers) in a cluster. This ensures that your containers will work somewhere if the host is down. The Google Container Engine (GKE) offers this as a service, but I'm not sure that they have the same features as auto-scaling the number of virtual machines in a cluster, as AWS does.
Mesos : somewhat similar to Kubernetes, but not intended to run containers.
Docker Swarm : A solution for deploying multiple Docker hosts, allows you to manage multiple hosts as if they were the only Docker host. I don’t believe that he has any “auto-scan” features, and I don’t believe that he cares to make sure that the containers always work somewhere: this is basically a docker for the cluster.
[EDIT] Docker supports restarting fault-tolerant containers with the option restart=always , as well as with Docker 1.11 Docker Swarm is a mode in Docker Daemon and supports redistributing containers when a node fails: it will restart containers to another node if node is no longer available.
Docker 1.11+ is a lot like Kubernetes in terms of functionality. It has some cool features (like TLS between hosts by default), but still lacks things like static IPs and storage
None of these solutions will auto-scale the number of hosts for you, but they can scale the number of containers on the hosts.
For autosave hosts, the solutions are specific to your cloud provider, so they are a dedicated solution. The key part for you is the integration of the two: AWS allows you to deploy Kubernetes on CoreOS; I don’t think they offer this as a service, so you need to deploy your own cluster of CoreOS and Kubernetes.
Now my personal opinion (and disclaimer)
I mainly used Kubernetes on GKE and bare-metal, as well as Swarm about 6 months ago, and I start infra using ~ 35 services on GKE:
Frankly, GKE with Kubernetes as a service offers most of what you want, but it's not AWS. Host scaling is still a bit more complicated and will require some work.
Setting up your own Kubernets or Meso on AWS or bare metal is very possible, but there is a pretty learning curve: it all depends on whether you really feel like on AWS and are ready to spend time.
Swarm is probably the easiest to work with, but more limited, but the built-in script can do the main job: use the AWS API to scale hosts and deploy Swarm. Guaranteed availability, but will require you to monitor and take care of re-launching containers if node fails.
Besides this, there are also hosting providers for containers that can do the job for you: