Veeam Backup for O365 in AWS – part 3/4 (AWS Instance Scheduler)

Jedna z výhod cloudu je tá, že platíte iba za to, čo spotrebujete. Preto nemá veľký význam mať celý deň spustenú inštanciu, ktorá plní svoju úlohu napríklad 30 minút denne.

V prvých dvoch článkoch tejto série sme vyrobili EC2 inštanciu s Veeam Backup for Microsoft Office 365 a Amazon S3 bucket – priestor, ktorý použijeme ako repozitár záloh. V tejto časti by som vám rád ukázal postup, ako naimplementovať AWS Instance Scheduler a tak vypínať/zapínať vašu inštanciu v určitých dňoch/časoch.

Príprava

Inštalácia AWS CLI v2

Postup som vytvvoril pre macOS. Pre ostatné operačné systémy nájdete postup v dokumentácii.

Otvorte si Terminal a zadajte nasledujúcu postupnosť príkazov.


sudo curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

sudo installer -pkg AWSCLIV2.pkg -target /

aws configure

AWS Configure:

AWS Access Key ID a Secret Key som použil k účtu Administrator. Pre Scheduler CLI však stačia práva:

lambda:InvokeFunction a cloudformation:DescribeStackResource

  1. AWS Access Key ID: SAOIJIIOASDOI98JKD9S
  2. AWS Secret Key: daskjsbd4I209DJ9JWJdw0idj=909JWdwi
  3. Default region name: eu-north-1
  4. Default output format: json

Inštalácia Scheduler CLI:

  1. Stiahnite si balík Scheduler CLI a roz-zipujte ho
  2. Otvorte Terminal a presuňte sa do adresára, kam ste roz-zipovali balík Scheduler CLI
  3.  sudo setup.py install 
  4. Môžete zavrieť Terminal, Scheduler CLI budete potrebovať o niečo neskôr.

 

AWS Instance Scheduler

  1. Template pre Cloud Formation pripravil Amazon, takže stačí kliknúť na túto linku a prihlásiť sa vašim AWS účtom.
  2. Kliknite na tlačidlo Next.
  3. Specify stack details
    1. Stack name: AkékoľvekMeno
    2. Create RDS Instance snapshot: No #V čase písania tohto článku už bola default hodnota tejto položky NO.
    3. Region(s): #iba si vpravo hore skontrolujte, či máte vybraný región, v ktorom ste stavali EC2.
    4. Default time zone: Europe/Bratislava
    5. Frequency: 5 #je možné ju zmeniť neskôr
    6. Enable CloudWatch logs: Yes
    7. Started tags: state=started
    8. Stopped tags: state=stopped
    9. Kliknite na tlačidlo Next.
  4. V okne s tagmi nemusíte robiť žiadne zmeny a môžete kliknúť na Next.
  5. Skontrolujte vaše nastavenia, na konci označte “I acknowledge that AWS … ” a kliknite na tlačidlo Next.
  6. Počkajte pár minút, kým sa EC2 Instance Scheduler vytvorí.
  7. Po úspešnom ukončení by obrazovka s udalosťami mala vyzerať približne takto:

 

Period & Schedule

A je tu finále. Dostávame sa ku Scheduler CLI. Niežeby ste si “čo” a “kedy” sa má spúšťať nevedeli nastaviť bez CLI, ale tento spôsob je rýchlejší a možno menej chybový.

  1. Otvorte si Terminal
  2. Spustite príkaz:
     scheduler-cli create-period --stack Ec2instanceScheduler --region eu-north-1 --name weekdays-backup --begintime 22:00 --endtime 23:00 —weekdays 0-4 
    1. –stack: Názov schedulera, ktorý ste zadávali pri jeho vytváraní.
    2. –region: Región v ktorom ste scheduler vytvorili (v mojom prípade eu-north-1 -> Štokholm). Kódy regiónov v dokumentácii.
    3. –name: Pomenovanie intervalu.
    4. –begintime: Čas, kedy má scheduler inštanciu spustiť.
    5. –endtime: Čas, kedy má scheduler inštanciu vypnúť.
    6. –weekdays: Ktoré dni sa má inštancia zapínať a vypínať. 0 je pondelok. Pre viac príkladov si pozrite dokumentáciu.
    7. –timezone: Netreba zadávať, ak je default timezone Europe/Bratislava
  3. Spustite príkaz:
    scheduler-cli create-schedule --stack Ec2instanceScheduler --name dayone-backup --region eu-north-1 --periods weekdays-backup --timezone Europe/Bratislava 
    1. –stack Názov schedulera ktorý ste zadávali pri jeho vytváraní.
    2. –name: Pomenovanie plánu
    3. –region: Región v ktorom ste scheduler vytvorili (v mojom prípade eu-north-1 -> Štokholm). Kódy regiónov v dokumentácii.
    4. –periods: interval, ktorý sme si zadali v bode 2.
    5. –timezone Europe/Bratislava
  4. Kliknite vľavo hore na Services, nájdite DynamoDB a kliknite naň.
  5. Kliknite na Tables.
  6. Kliknite na tabuľku <stack_name>-ConfigTable-<identifikátor>.
  7. Skontrolujte, či máte oba záznamy v tabuľke vytvorené. Po roztiahnutí okna sa dostanete k všetkým informáciám, ktoré ste zadávali. Záznamy je možné veľmi jednoducho editovať. Nieje teda nutné používať Scheduler CLI na editáciu. Kvôli prehľadnosti je možno lepšie prepísať Weekdays z 0-4 na mon-fri.
  8. Opäť kliknite vľavo hore na Services, nájdite EC2, kliknite naň a zobrazte si inštancie.
  9. V spodnom okne kliknite na tab Tags a kliknite na tlačidlo Add/Edit Tags.
  10. Pridajte nový tag a kliknite na tlačidlo Save.
    1. Key: Schedule
    2. Value: dayone-backup

 

Týmto nastavením sme docielili, že naša inštancia sa bude zapínať o 22:00 a vypínať o 23:00 v každý pracovný deň.

 

Vypínanie inštancie po ukončení Veeam Backup Jobu

Vo vašom prostredí môže nastať situácia, že backup job skončí oveľa skôr, ako je naplánované vypnutie inštancie. Najjednoduchší spôsob ako inštanciu vypnúť po ukončení backup jobu, je vypnúť ju pomocou scriptu a Windows Task Scheduleru.

Task Schedulerom necháte spúšťať script každých 5 min.

Script zistí, či za poslednú hodinu zbehli všetky Backup Joby ktoré sú “povolené”, a či boli ukončené so statusom Warning alebo Success.

Ak neboli, inštancia beží ďalej. Ak boli, script počká 3 minúty a inštanciu vypne.

Import-Module Veeam.Archiver.PowerShell
Connect-VBOServer

$VBOJobs = Get-VBOJob | Where-Object {$_.IsEnabled -eq $true}

$VBOJobsSuccessWarning = Get-VBOJob | Where-Object {($_.IsEnabled -eq $true) -and ($_.LastRun -gt (get-date).AddHours(-1)) -and ($_.LastStatus -eq "Success") -or ($_.LastStatus -eq "Warning")}

if ($VBOJobsSuccessWarning.Count -eq $VBOJobs.Count){
Disconnect-VBOServer
Start-Sleep -Seconds 180
Stop-Computer -ComputerName localhost -Confirm:$false
}
Disconnect-VBOServer

Týmto docielime vypnutie inštancie pár minút po ukončení zálohovania. V prípade, že by nastala chyba na strane OS alebo Veeam backupu, inštanciu vypne AWS Instance Scheduler v plánovanom čase. Inštancia sa na ďalší deň zapne bez ohľadu na to, ako sa predchádzajúci deň vypla.

Pozor: AWS Instance scheduler vypne inštanciu aj vtedy, ak backup job stále beží. Tomu by sme sa mali vedieť vyhnúť tým, že editujeme periodu pomocou Scheudler CLI v závislosti od ukončenia backup jobu, z vnútra inštancie. O tom ale až nabudúce.

Záver

Ukázali sme si 2 spôsoby ako nastaviť zapínanie a vypínanie EC2 inštancie. Tieto spôsoby nám ušetria nemálo prevádzkových nákladov na samotnú EC2 inštanciu. V poslednom článku v tejto sérii, si ukážeme ako pridať do Veeam Backup for Microsoft Office 365 náš O365 tenant, pripojiť S3 storage, vyrobiť na ňom repozitár a ako vyrobiť samotný Backup Job.

Odkazy na ostatné časti série:

Veeam Backup for O365 in AWS – part 1/4 (EC2 instance)

Veeam Backup for O365 in AWS – part 2/4 (S3 bucket)

Veeam Backup for O365 in AWS – part 4/4 (Veeam Backup)

Author: Martin

Infrastructure engineer | virtualization & cloud enthusiast | vSphere specialist | blogger | VMware vExpert 2017, 2018, 2019, 2020 | VMCE | Slovak VMUG Leader |  user group ambassador for kmug.sk | husband&father