Git Product home page Git Product logo

hsdp-task-streaming-backup's Introduction

hsdp-task-streaming-backup

A Docker image that you can schedule on HSDP IronIO to perform PostgreSQL backups to an S3 bucket

Features

  • Streaming backups so not dependent on runner disk storage
  • Compresses backups

Usage

module "siderite_backend" {
  source = "philips-labs/siderite-backend/cloudfoundry"

  cf_region   = "eu-west"
  cf_org_name = "hsdp-demo-org"
  cf_user     = var.cf_user
  iron_plan   = "medium-encrypted-4GB"
}

resource "hsdp_function" "psql_backup" {
  name         = "psql_backup"
  docker_image = "philipslabs/hsdp-task-streaming-backup:v0.2.0"
  command      = ["/app/backup.sh"]

  environment = {
    DB_HOST               = "postgres-xxx.eu-west-1.rds.amazonaws.com"
    DB_PORT               = "5432"
    DB_USER               = "[REDACTED]"
    DB_PASSWORD           = "[REDACTED]"
    DB_NAME               = "mydb"

    BACKUP_NAME           = "backups/mydb"
    S3_ENDPOINT           = "s3-eu-west-1.amazonaws.com"
    S3_BUCKET             = "cf-s3-xxx"
    AWS_ACCESS_KEY_ID     = "[REDACTED]"
    AWS_SECRET_ACCESS_KEY = "[REDACTED]"
  }

  schedule {
    run_every = "7d"
  }

  backend {
    credentials = module.siderite_backend.credentials
  }
}

Bucket lifecycle policy

It is advised to set a S3 Bucket lifecycle policy. A good practice is to move your database backups to the GLACIER storage class after a couple of days and to set a expiration date to automatically delete older backups. The below policy moves dumps to CLACIER after 7 days and deletes them after 6 months (180 days)

[
  {
    "Expiration": {
      "Days": 180
    },
    "ID": "Move to Glacier and expire after 6 months",
    "Prefix": "",
    "Status": "Enabled",
    "Transitions": [
      {
        "Days": 7,
        "StorageClass": "GLACIER"
      }
    ]
  }
]

License

License is MIT

hsdp-task-streaming-backup's People

Contributors

dependabot[bot] avatar loafoe avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.