Simple Notification Service (SNS)
Kinesis + MQ
Databases & Analytics
Basic Terms

High availability

  • Minimize the outages and downtime and ensuring an agreed level of uptime/downtime.

Fault tolerance

  • Ability for a system to remain in operation even if some of the components used to build the system fail.

Disaster recovery

  • Ensure that a company can respond to a disaster or other failure that affects systems and minimize the effect on business operations.


  • 2 types of scalability:
    • Horizontal Scalability - Increasing your number of resources - Adding - Aka elasticity.
    • Vertical Scalability - Making your current resources better - Upgrading.
  • Being scalable means your app can handle bigger loads/more traffic by either adding more resources (horizontal scaling) or upgrading the current resources (vertical scaling).
  • Horizontal scaling does not cause any downtime as it doesn't do anything to the instance; it only adds more instances.
  • Vertical scaling changes the instance itself so it will require a reboot, which will cause downtime.