Because mutables architectures are still highly common and as they are encountered in most Cloud migrations, CloneSquad is a Serverless Autoscaler software with the main goal to get the most of the Cloud benefits while taking the constraint to never create or terminate EC2 instances but only by doing start/stop of existing ones (aka ‘Pet’ machines).
CloneSquad is designed to be used when AWS Auto Scaling cannot be: It manages as well EC2 ALB/NLBs, target groups and health checks mechanisms. It contains various strategies to reduce cost of running EC2 Pet instance fleets.
Please visit the GitHub repository for download and instruction
Features and Benefits (Please also read the FAQ)
- Scaling (see Documentation details)
- Automatic autoscaling based on internal and/or user-defined alarms & metrics,
- Desired instance count mode (ex: temporarily force 100% of instances to run and allow mutable update),
- Always-on Availability Zone instance balancing algorithm,
- Multi targetgroup support (associated to one or multiple ALB or NLB) at the same time w/ smart instance draining before shutdown),
- Automatic replacement of unhealthy/unavail/impaired instances,
- (Optional) Vertical scaling (by leveraging instance type distribution in the fleet),
- Cost optimization
- Support for ‘persistent’ Spot instances aside of On-Demand ones in the same fleet with configurable priorities,
- Spot interruption handling
- Smart management of tX.xxx burstable instances (aka ‘CloneSquad CPU Crediting’ mode to avoid overcost linked to unlimited bursting),
- Dedicated Cloudwatch Alarm detecting burstable instances with CPU Credit exhausted,
- Optional ‘LightHouse’ mode allowing to run automatically cheap instance types during low activity periods,
- Resilience
- Manual or automatic Availability Zone eviction (automatic mode based on describe_availability_zones() AWS standard API),
- (Optional) Instance bouncing: Frictionless AWS hypervisor maintenance by performing a permanent rolling state cycle (periodic start/stop of instances),
- (Optional) Static subfleet support both for EC2 Instances and RDS databases. Allows simple on/off use-cases (in combination with the scheduler for instance. See demonstration).
- Agility
- Support for mixed instance type fleet,
- Integrated event scheduler (‘cron’ or ‘rate’ based) for complex scaling scenario,
- Configuration hierarchy for complex dynamic settings,
- API Gateway to monitor and make some basic operations.
- Observability
- (Optional) CloudWatch dashboard (Note: activated by default),
- Events & Notifications (Lambda/SQS/SNS targets) framework to react to Squad events (ex: Register a just-started instance to an external monitoring solution and/or DNS),
- Extensive debuggability with encountered scaling issues and exceptions exported to S3 (with contextual CloudWatch dashboard PNG snapshots).