AWS Design Considerations

Cloud is great for:
  • Scaling
  • Unknown Future
  • Global reach
  • Variable load (day / week / month)
  • Don’t pay when not in use
  • Auto-scaling
  • Multi-region
Have the mind set that anything in the cloud is ephemeral and plan for it being gone.
  • Design to fail
  • Data locality
  • Geographic sensitivity
  • Stateless
  • Asynchronous (tolerant of failures and retries)
  • Eventual consistency
  • Restart policies
  • Autoscaling policy (minimum of 1 is still resilient)
Batch processing
  • GPU offloading
  • ‘Big Data’
Continuos Development / Integration
  • Repeatability
  • Regression testing
  • Production development
  • A/B deployments
  • Docker integration can provide the same working environment from dev laptop -> production
  • If things fail, redeploy
Cloud is NOT good for:
  • Non-resilient apps
  • Massive apps!
  • Always on, individual apps
  • Mainframe, non-x86
  • Massive data sets (multi-PB)
  • Poorly written apps
Surprisingly appropriate for:
  • Financial services data
  • Government data
  • PCI
  • Encrypted date
  • VDI and business apps
  • Geographically limited / controlled data
  • Understand IAM – use least privileged access, never root!
  • Don’t sign-up with your shopping account
  • Understand roles – don’t store AWS credentials
  • Use MFA, hardware or software
  • S3 versioning and remove delete access for WORM repository for things like config data and logs
  • Set billing threshold notifications / alerts
  • 1 year up-front commitment can be 56% the of the on-demand cost
  • 3 years is 37%
  • 40 hours running per week and power down is 25%
  • RDS is cheaper than running EC2 with a database
  • Native databases can be cheaper
Best practices
  • Try create a completely ‘headless’ build, something that can be deployed by code and you never access via SSH / RDP
  • Chaos engineering, if any instance dies does the app still work?
  • SLA engineering
Trusted advisor
Commandments for a Resilient Web Scale Public Cloud Architecture
Simian Army
Want to pass the exams

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>