Usando pgbackups-archive para automatizar o arquivamento de backups do Heroku para S3

Sei que não sou o primeiro a enfrentar esse problema e que existem outras soluções viáveis. Eu olhei para vários deles e cheguei à conclusão de que eu queria lançar uma nova gem que pudesse ver a manutenção ativa e contar com o mínimo de dependências possível.

As mudanças recentes do Heroku em suas ofertas de banco de dados e pgbackups manuais vs. automatizados deixam duas coisas importantes a desejar:

  • Os planos dev e basic não suportam pgbackups automatizados nativamente.
  • Os pgbackups são armazenados e rotacionados pelo Heroku e muitos de nós deveríamos realmente arquivar esses backups em outro local.

A gem pgbackups-archive aborda esses dois pontos.

A gema pgbackups-archive

Veja o projeto no Github:
https://github.com/kjohnston/pgbackups-archive

A pgbackups:archivetarefa de rake fornecida por esta gema irá capturar um pgbackup, esperar que ele seja concluído e, em seguida, armazená-lo no bucket do Amazon S3 que você especificar. Essa tarefa de rake pode ser agendada por meio do Agendador Heroku, produzindo backups automatizados externos.

A tarefa rake usará o --expiresinalizador de pgbackups para remover o pgbackup mais antigo que o Heroku está armazenando quando não houver slots livres restantes.

Você pode definir as configurações de retenção no nível do bucket do Amazon S3 de dentro do AWS Console, se desejar.