Ref T2015. Depends on D10495. Depends on D10394.
This implements an Amazon EC2 blueprint that allocates and leases hosts from EC2. It starts EC2 instances according to the parameters specified on the blueprint, using the public key of a Passphrase key as the key pair for AWS.
For Linux, this connects over SSH using the private key pair, which is automatically configured by AWS.
For Windows, this connects over WinRM, using the specified WinRM password credential. The user must configure a Windows image in AWS with remoting enabled and with an account that matches the username / password in the credential.
It handles allocation of Elastic IPs, which provides a public IP address for connecting to the allocated machine when Phabricator is not hosted in the same VPC (or on Amazon).
This is built to allocate into a VPC; it doesn't support allocating a classic EC2 instance (and mainly because AWS is trying to deprecate that model anyway).