AWS EC2 instance Backup and Restore from Non-AWS using Elastio
Abhishek Sharma
November 16, 2022
Aim: To Back up an EC2 instance from Ubuntu Multipass and restore it on Ubuntu Multipass instance
Website: https://docs.elastio.com/
Installation and set-up
1. Install and configure AWS
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- unzip awscliv2.zip
- sudo ./aws/install
- Run aws --version
- Configure credentials using aws configure
2. Elastio CLI Installation
-
sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/elastio/elastio-stack/master/scripts/install-elastio.sh)"
-
elastio --version ----to verify
-
Create a new vault (optional)
elastio vault init
- elastio vault init alpha
- Run: elastio vault list : omega
3. Backup of EC2 instance
On Multipass instance (back up)
-
Run an ec2 backup using the following command:
-
sudo -E elastio ec2 backup --vault <vault name> --instance-[<instance-id>] --background
-
Get the instance id from aws account
sudo -E elastio ec2 backup --instance-id i-0681c7639223ec5b8 --vault omega --background
elastio job monitor --job-id j-dgj626aat94euutr4cafqzxm
4. Mount Restore of EC2 instance
On Multipass instance (restore)
- Run elastio rp list --ec2 [<instance-id>]
- Copy the rp which is r-dgjk95e01h893cpnralyavxp
- Run lsblk to see the available devices
-
Run mount using the command:
sudo -E elastio mount rp --rp r-dgjk95e01h893cpnralyavxp
-
Success
-
Run ls and you will see the file system on the mount point created
-
The cd and ls to the mount and see the directory file structure.
cd /media/elastio/vol-011a0aa2877fdb0bd/2021-11-19T21-51-11/part1
5. Cleaning up the mounts multipass instance
How to manage your rp mounts
5.1 Return the list of mounted RPs
- sudo -E elastio mount list
5.2 Unmount a recovery point by RP ID
- sudo -E elastio umount --id <rp-id>
5.3 Unmount by mount point
- sudo -E elastio umount --mp <mount-point>
5.4 Unmount all
- sudo -E elastio umount --all
6. Clean Up Elastio Deployment
You can clean elastio deployment in the following steps:
6.1. Delete the Elastio vault
Use the following command to delete an Elastio vault:
elastio vault delete --vault <vault-name>
6.2. Destroy the Elastio Stack
The Elastio stack is the CloudFormation stack and should be manually deleted after first removing the Cloud Connector. The Cloud Connector is found in, and can be removed from, the CloudFormation section in the AWS console.
Use the following command to destroy the CloudFormation stack:
elastio stack destroy
6.3. Remove the Elastio Shell
Run the following command to remove the Elastio Shell:
pip3 uninstall elastio_shell
6.4. Remove the Elastio CLI
The next step when cleaning up the Elastio Deployment is to uninstall or remove the Elastio CLI. This is achieved in the following manner.
Use the following script to uninstall the Elastio CLI and Elastio Snap:
sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/elastio/elastio-stack/master/scripts/install-elastio.sh) $0" -- -u