Node Provisioning Strategy
EDH does support multiple type of node provisioning:
| On-Demand Instance | AlwaysOn Instance | AlwaysOn Terminate-When-Idle Instance | |
|---|---|---|---|
| Cost Optimization | Best (Node exist only during the time of the job) | Low (Node exist even if there is no job) | Ok (Node will be automatically terminated if idle) |
| Capacity Provisioning | Automatic | Manual | Manual |
| Capacity Termination | Automatic | Manual | Automatic |
| Average Job Start Time | ~5 minutes (can be reduced to 1 minute with EDH Optimized AMI) | < 1 minute | < 1 minute |
On-Demand Instance¶
Once you submit a job, EDH will calculate the compute/storage resources and provision the right number of EC2 instance to run your jobs. This mode is cost-effective as you don't pay for EC2 capacity unless you have jobs in the queue. However, you usually will see a startup cold time of ~5 minutes, which is the time needed for EDH to provision and configure the capacity provisioned on AWS.
Capacity provisioning and termination are managed automatically by EDH.
You can reduce this cold-start time by creating EDH Optimized AMIs
Note
On-Demand provisioning is the default provisioning mode on EDH
AlwaysOn Instance¶
AlwaysOn instances are a pool of machine running 24/7 and ready to execute jobs as soon as they are queued. There is no cold-start penalty as the capacity is already available. However, this mode may incur additional costs as capacity is available even if there is no job in the queue.
Capacity provisioning and termination are managed manually.
Click here to learn more about Always-On instance
AlwaysOn Terminate-When-Idle Instance¶
AlwaysOn with Terminate-When-Idle instance is the same as AlwaysOn instance except the capacity is automatically deleted if no jobs have been running on them for a specific amount of time. For example, you can automatically terminate a node if this node has not served any job for 30 minutes.
Capacity provisioning is managed manually and termination is automatically managed by EDH.
Click here to learn more about AlwaysOn Terminate-When-Idle instance