Skip to content

mrdunski/accumulation-zone

Repository files navigation

accumulation-zone

Accumulation Zone is where the glacier forms.

AWS Glacier is a reliable, cost-effective, and high-performant backup.

This application operates directly with AWS Glacier and sends incremental updates to cold storage. It uses local index file to track file changes and sends only updates.

Before start

To use AZ, you need to set up your AWS account first. You will need the following:

  1. AWS account
  2. Glacier Vault
  3. IAM Access Key

Backup and restore

Choose your option

Backup and restore with docker

### Backup first pass
docker run -it -v /path/to/your/data:/data mrdunski/accumulation-zone changes upload \
  --account-id=... \
  --region-id=... \
  --vault-name=... \
  --key-id=... \
  --key-secret=...

### Backup incremental changes
docker run -it -v /path/to/your/data:/data mrdunski/accumulation-zone changes upload \
  --account-id=... \
  --region-id=... \
  --vault-name=... \
  --key-id=... \
  --key-secret=...

### ???

### 💣

### Recover from backup
docker run -it -v /path/to/your/data:/data mrdunski/accumulation-zone recover all \
  --account-id=... \
  --region-id=... \
  --vault-name=... \
  --key-id=... \
  --key-secret=... \
  --tier=Expedited

for more info, use:

docker run -it mrdunski/accumulation-zone --help

Backup with Helm and Kubernetes

Prepare values.yaml file. Example can be found here: exampleValues.yaml

helm install -f ./chart/accumulation-zone/exampleValues.yaml my-release ./chart/accumulation-zone

Backup and restore with command line

go build -o accumulation-zone

export VAULT_NAME=...
export ACCOUNT_ID=...
export REGION_ID=...
export KEY_ID=...
export KEY_SECRET=...
export PATH_TO_BACKUP=/path/to/your/data

### Backup first pass
./accumulation-zone changes upload

### Backup second pass
./accumulation-zone changes upload

### ???

### 💣

### Recover from backup
./accumulation-zone recover all --tier=Expedited

for more info, use:

go build -o accumulation-zone && ./accumulation-zone --help

Run unit tests

go test ./...

or use ginkgo

go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@latest
ginkgo -r

Important notice

A wise man once said: if you do not test your backup, you do not have a backup.

Please be careful when using this application to handle important data. Before using it, verify if it works correctly for your use case.