-
Notifications
You must be signed in to change notification settings - Fork 23
ec2 4.1 Instance Priority Architectural Analysis
- Description
- Tracking
- Analysis
- Use Cases
- Elements
- Workflows & Coordination
- Interactions
-
Abstractions
- Spot Instance Manager: Spot Instance Request
- Spot Instance Manager: Spot Instance Request Quota
- Resource State Manager: Instance Type Availability
- Tag Manager: Spot Instance Request Tag
-
Behaviours
- Spot Instance Manager: Spot Instance Request: Create
- Spot Instance Manager: Spot Instance Request: Describe
- Spot Instance Manager: Spot Instance Request: Cancel
- Spot Instance Manager: Spot Instance Request Quota: Evaluate
- Tag Manager: Spot Instance Request Tag: CRUD
- References
- Notes
As a cloud user, I should be able to mark an instance as a low-priority instance. Such marks would indicate to the administrator (account admin / resource admin / infrastructure admin) that if need be my low-priority instances can be terminated.
- PRD-200
- ARCH-63
- Status: Step #1, initial draft
Termination of spot instances occurs due to "certain (agreed upon) conditions". It is assumed that the only reason for spot instance termination is due to capacity contraints, i.e. the resources permitted for spot instance use are exhausted. This may include some capacity "buffer", a configured # or % of free resources (instances of a given type or types)
Spot instance limits are distinct from on-demand instance limits, we will have distinct quotas for spot instances.
Spot instance usage is not billed in AWS/EC2 for partial hours if the instance is terminated by AWS. There is no specific requirement for usage reporting with spot instances for this feature.
Running instances will need to propagate that the instance is low priority (spot) to ensure correct provisioning. The cluster controller will need to report availability by instance priority ( spot | on-demand ) to support resource allocation and tracking by the EC2 service.
A user requests spot instances be launched in order to perform low priority tasks. Permissions, capacity and quotas are checked to determine if the instances should be launched.
A user requests persistent spot instances be launched in order to perform low priority tasks. Permissions, capacity and quotas are checked to determine if the instances should be launched. The spot instance request is re-evaluated periodically to see if instances should be launched until the request (bid) expires.
A resource administrator describes spot (low-priority) instances using a filter.
A resource administrator identifies and terminates spot (low-priority) instances.
A resource administrator limits the number of spot instances available to an account.
An account admin limits the number of spot instances available to a user in the account.
A user launches instances, spot instances are terminated to free capacity.
An administrator generates a report on instance usage. Spot instance usage is included with regular (on-demand) instance usage including partial hours in which the instance was terminated by the cloud.
An infrastructure administrator defines a pool of resources for spot instance usage.
The spot instance manager implements EC2 API actions related to spot instances.
Responsible for spot instance lifecycle.
EC2 User -> Spot Instance Manager : EC2 API actions for spot instance management
Spot Instance Activity Manager -> VM Control : Launches and terminates instances
Resource State Manager > Cluster Controller : Queries for current and maximum availability by instance type, platform and priority (spot / on-demand)
Represents a request for spot instances.
A quota on the number of spot instances requested.
Represents availability of an instance type by platform, priority and availability zone.
A tag for a spot instance request.
Spot instances are requested by a user. The request is persisted and the spot instance activity manager later processes the request, updating the status (etc)
A user describes the spot instance requests for their account.
A user cancels spot instance requests.
Quotas are evaluated when spot instance requests are created.
EC2 actions related to tagging, not specific to spot instance request tags.
- Need use case for spot instance minimum time? (does AWS/EC2 have this?)
- Need use case for spot instance resource pool utilization report? (along the lines of "euca-describe-instance-types --show-capacity")