@drawoharaik ❤️ dit! << klik op me 🐛 🫖 🧚
/aws-ebs-backups-we-rewrote-drebs
gepubliceerd op: 2014-06-23

Vorige week hebben we versie 0.1.0 van DREBS, ons script voor herstel van elastische blokopslag, uitgebracht. We gebruiken het elk uur op al onze 3 EC2-instanties, waarbij we back-ups maken van 6 verschillende EBS-volumes. Dit script is cruciaal voor ons en de AWS-gemeenschap in het algemeen, omdat Amazon geen officiële ondersteuning biedt voor dergelijke scripts of tools voor back-ups. Er zijn verschillende SaaS-producten die deze functionaliteit bieden, maar open-source scripts voor hackers zoals ons zijn schaars. De nieuw geschreven versie is productieklaar en we hopen dat jullie het evenveel genieten als wij.

Vorig jaar bracht voormalig dojo4-medewerker en eeuwige vriend van de dojo Garett Shulman de eerste versie van DREBS uit. Het had het eenvoudige doel om een beheerder in staat te stellen om back-upstrategieën en pre/post-back-uptaken (mysqldump, enz.) te definiëren voor elk EBS-volume dat is gekoppeld aan een EC2-instantie. Een eenvoudige cron-taak voert DREBS elk uur uit, die elke back-upstrategie van de EBS-instantie doorloopt en als de strategie aangeeft dat een back-up moet plaatsvinden, gebruikt DREBS de right_aws gem om het volume te back-uppen en te uploaden naar het AWS-account als een EBS-snapshot.

De nieuwe versie van DREBS biedt dezelfde functionaliteit, maar met enkele verbeteringen:

Als voorbeeld van een installatie, hier is DREBS in onze crontab op al onze machines:

0 * * * * /home/dojo4/git/drebs/bin/drebs execute /usr/local/var/drebs_config.yml &> /usr/local/var/drebs_cron.out

en hier is ons configuratiebestand voor een van onze EC2-instanties:

---
aws_access_key_id: XXXX
aws_secret_access_key: XXX
region: us-west-1
strategies:
- hours_between: 6
  num_to_keep: 12
  mount_point: /dev/sdh
  pre_snapshot_tasks:
  - pg_dump -U postgres -f /ebs/databases/postgresql/backups/project_name_production.sql project_name_production
  post_snapshot_tasks:
- hours_between: 1
  num_to_keep: 2
  mount_point: /dev/sda1
  pre_snapshot_tasks:
  post_snapshot_tasks:
- hours_between: 24
  num_to_keep: 4
  mount_point: /dev/sda1
- hours_between: 96
  num_to_keep: 4
  mount_point: /dev/sda1
log_path: /usr/local/var/drebs.log
email_on_exception: miles@dojo4.com
email_host: smtp.gmail.com
email_port: 587
email_domain: gmail.com
email_user: xxx
email_password: xxx

Zoals altijd, hebben we meer ideeën om dit script te verbeteren en als dit script je net zoveel helpt als ons, nodigen we je uit om de repo te forken en ons een pull request te sturen:

We denken dat DREBS een geweldige bijdrage is aan de AWS-gemeenschap die ons heeft geholpen om een geweldige implementatiearchitectuur te bouwen die geweldige websites en producten heeft gehost in de loop der jaren. Als je het eens bent en het gebruikt, zouden we graag je feedback horen op Twitter op @dojo4!