Architecture

Bacula Enterprise Amazon EC2 Plugin is a Bacula File Daemon plugin that utilizes the Amazon Web Services APIs to interact with the Amazon Cloud (retrieve data from Amazon Cloud and to feed it at restore time). The plugin runs a Java Daemon which uses the official Amazon AWS SDK version 2.x built by Amazon.

All the information is obtained using secure and encrypted HTTPS queries to AWS from the File Daemon (and through the mentioned Java Daemon), where the plugin is installed. The specific URLs will depend on the region and the operation being performed.

To get more information about AWS implied APIs, visit: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html

Metadata of every backed up element is stored in Bacula in JSON format. The blocks of the volumes are stored in memory before being streamed directly to the Storage Daemon.

Backup and restore processes use different parallelization techniques in order to maximize performance, and overcome latency times when communicating with AWS Parallelization. The Plugin also supports parallelization of multiple backup jobs.

Every block of data is 512KiB in size, so it is important to consider the total size of data blocks when configuring parallel operations (you could need at least that size multiplied by the number of parallel operations configured). For example, in the worst-case scenario of backing up one Virtual Machine with 500 operations, the total size would be 250MB.

Below, there is a simplified vision of the architecture of this plugin within a generic Bacula Enterprise deployment:

Amazon EC2 Plugin Architecture

Amazon EC2 Plugin Architecture

Go back to the Amazon EC2 plugin main page.

Go back to the main Dedicated Backup Solutions page.