Can an aws instance fail? Do I need backups?

I have a website hosted on aws EC2. Do I need backups in case the instance fails or is there enough redundancy on amazon's side already?


You will definitely need a backup! When running a single EC2 instance to host a webserver and that EC2 instance fails, your data will be gone. There are no automatic backups if you just fire up an EC2 instance without further configuration (i.e. make the root volume an EBS volume).

EC2 instances can fail and this must be part of your architectural concept. Usually, AWS announces before an AWS is scheduled for retirement, however, I’ve seen instances fail without any warning. I recommend to regard them as ephemeral and assume that they can fail at any time.

From the AWS documentation:

An instance is scheduled to be retired when AWS detects irreparable failure of the underlying hardware hosting the instance. When an instance reaches its scheduled retirement date, it is stopped or terminated by AWS. If your instance root device is an Amazon EBS volume, the instance is stopped, and you can start it again at any time. Starting the stopped instance migrates it to new hardware. If your instance root device is an instance store volume, the instance is terminated, and cannot be used again.

From https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-retirement.html

Also:

  • Regularly back up your EBS volumes using Amazon EBS snapshots, and create an Amazon Machine Image (AMI) from your instance to save the configuration as a template for launching future instances.
  • Deploy critical components of your application across multiple Availability Zones, and replicate your data appropriately.
  • Regularly test the process of recovering your instances and Amazon EBS volumes if they fail.

From https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-best-practices.html, section Backup and Recovery

So depending on the uptime you’re trying to achieve, it can be advisable not to run just a single EC2 instance, but multiple and add them to a load balancer. Based on a health check you can configure, it will take care of replacing faulty instances automatically.

You might also want to consider hosting your website on AWS Elastic Beanstalk, which can take care of setting up the required infrastructure for you.


You need to think about what backups are for. Even if you have a highly resilient web server that is deployed across different availability zones, what would happen if your data or disk got corrupted? You must have a backup to protect yourself for these occurrences.

Amazon do not claim that EC2 instances are resilient in any way but they do provide materials on how to architect a resilient environment using 2 or more instances.

You can find resources for how to architect a resilient environment at https://aws.amazon.com/architecture/

An up to date (2020) guide for EC2 at https://www.logicata.com/blog/aws-ec2-everything-you-need-to-know-about-ec2-instances/