Scale net apps in aws
- 3. agenda
• Scalability vs Auto Scale?
• To be able to scale, you need
• A Load Balancer (web applications)
• To solve your session issues
• Auto Scale means actually monitoring your app
- 4. beginnings
• Why Amazon Web Services (2011)?
• Pros:
• Infrastructure – easy to start
• Mature, big platform
• Cons:
• No AD Services (added in 2014, improved in 2015)
• No SQL Server HA (RDS added in 2014)
- 5. scalability – what is?
• Scalability is the ability of a system, network, or process to handle a
growing amount of work in a capable manner or its ability to be
enlarged to accommodate that growth -
en.wikipedia.org/wiki/Scalability
• Vertically and Horizontally
© bframe.com
- 6. autoscaling – what is?
• Auto-scaling, also spelled autoscaling, is a cloud computing service
feature that automatically adds or removes compute resources
depending upon actual usage - itknowledgeexchange.techtarget.com
• Mostly horizontally
• Scale Up and Down
© dev.mlsdigital.net
- 7. an application
• 2 Web Servers with 2 web services each under a LB (2012)
• 3 Application Servers each with 2 Windows Services (2012)
• 2 to 5 Application Servers each with 2 Windows Services (2015)
• 1 SQL Server with 2 databases (2012)
• 3 SQS, 1 Memcached (ElastiCache) cluster with 3 nodes (2015)
- 8. web application - load balancing
• AWS Elastic Load Balancer
• Hidden public machines - Round Robin on DNS
• Has Health Check (out of service)
• No IP control
• Sometimes you might need a reverse proxy
© blog.celingest.com
- 9. web applications - state
• Classic solution – Sticky Sessions – go over it
• Build your session for out of process from the start (StateServer,
SqlServer, Redis)
• Be careful on what you put in Session – loads on every request
• Session might timeout
• Cache layer for big items
- 12. workers
• Don’t rely on application machines (OnStart/OnStop)
• Your application starts fresh, which is not always great – go for no warm up
and if needed load from cache
• Your application also needs to be able to stop
- 13. monitoring your app
• Log mechanism outside of the machine (S3, SQL, NoSQL)
• Think of monitoring from the start
• That it is running
• That is doing the right thing
• That it is able to process everything
- 14. monitoring your app
• AWS CloudWatch
• Standard Metrics
• Custom Metrics - PowerShell
• Alarms - AWS SNS
- 15. finally – you can auto scale
• Based on metrics you collect:
• Go UP
• Go DOWN
• AWS Limitation: Only on one metric
• Machine Images for AutoScale