Automatic Elasticity Whitepaper (2018)

Types of Elasticity**

  • Time-based elasticity
    • Turning off resources when they are not being used
  • Volume-based elasticity
    • Matching scale to the intensity of demand, whether that’s compute cores, storage sizes, or throughput

Monitoring AWS Service Usage and Costs**

  • Cost Optimization Monitor
    • Detailed billing reports
    • Break down by period, account, resource, or custom resource tags
  • Cost Explorer
    • View data up to the last 13 months
    • Get recommendations on what Reserved Instances to purchase
    • See trends that can help you understand your costs

Tagging Resources

  • Tagging resources helps get better visibility and control over cloud IT costs down

Automating Elasticity

Automating Time-Based Elasticity

  • AWS Instance Scheduler
    • Start and stop schedules for your EC2 instances
    • Deployed using an AWS CloudFormation template
    • Specify the required parameter during the deployment
    • Recurring AWS Lambda function will automatically start and stop appropriately tagged EC2 instances
  • Amazon EC2 API tools
    • Instances can be terminated programmatically using EC2 APIs
    • Use StopInstances and TerminateInstances
  • AWS Lambda
    • Serverless functions can be used to shutdown instances that are not being used
    • Trigger Lambda by Amazon CloudWatch Events
  • AWS Data Pipeline
    • Run AWS CLI commands on a set schedule
  • Amazon CloudWatch
    • Collect and track metrics and log files, set alarms and automatically react to changes in your AWS resources

Automatic Volume-Based Elasticity

Auto-Scaling can be used for::

  • Amazon EC2 Auto Scaling - allows to scale EC2 instances
  • Amazon Elastic Container Service
  • Amazon EC2 Spot Fleets
  • Amazon EMR clusters
  • Amazon AppStream 2.0 stacks and fleets
  • Amazon DynamoDB