Proteggere i dati del proprio sito web è una priorità assoluta per qualsiasi proprietario di sito, soprattutto quando si tratta di piattaforme popolari come WordPress. Perdite di dati dovute a errori umani, guasti hardware, o attacchi informatici possono avere conseguenze devastanti sull’operatività e sulla reputazione del tuo sito. Fortunatamente, la tecnologia cloud offre soluzioni affidabili e scalabili per il backup e il recupero dei dati. In questo articolo, esploreremo come configurare backup automatici del tuo sito WordPress su Amazon S3, un servizio di storage di Amazon Web Services (AWS) noto per la sua robustezza, scalabilità e flessibilità.

Imparerai a creare e automatizzare il processo di backup utilizzando script bash e cron jobs, assicurandoti che i tuoi dati siano sempre al sicuro e facilmente recuperabili in caso di necessità. Questo tutorial è pensato per utenti di ogni livello, offrendo istruzioni passo passo su come preparare l’ambiente AWS, configurare i permessi necessari tramite IAM (Identity and Access Management), installare AWS CLI (Command Line Interface), e scrivere uno script di backup efficace. Inoltre, ti mostreremo come gestire la pulizia automatica dei backup vecchi, mantenendo lo storage organizzato e costi-contenuto. Segui questo tutorial per mettere al sicuro il tuo sito WordPress con Amazon S3, assicurandoti che i dati siano sempre protetti e disponibili quando ne hai più bisogno.

Prerequisiti

  • Un’istanza EC2 su AWS con WordPress installato.
  • Accesso alla console AWS.
  • AWS CLI installato sull’istanza EC2.

Passo 1: Configurare i permessi IAM

Creare un ruolo IAM per l’accesso ad S3

  • Nella console AWS, vai al servizio IAM e seleziona Ruoli.
  • Clicca su Crea ruolo, scegli AWS service come tipo di entità di fiducia, e seleziona EC2.
  • Aggiungi la politica AmazonS3FullAccess (adatta le politiche in base alle tue esigenze specifiche per la produzione).
  • Dai un nome al ruolo e completane la creazione.

Associare il ruolo IAM all’istanza EC2

  • Nel Dashboard EC2, seleziona la tua istanza.
  • In Actions > Security > Modify IAM role, associa il ruolo IAM creato e applica le modifiche.

Passo 2: Installare AWS CLI

AWS CLI permette di gestire i servizi AWS direttamente dalla riga di comando. Ecco come installarlo:

  • Connettiti alla tua istanza EC2 via SSH.
  • Esegui i seguenti comandi per installare AWS CLI v2:
sudo yum update -y
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
  • Verifica l’installazione con aws --version.

Configurazione di AWS CLI

  • Dopo l’installazione, configura AWS CLI con le tue credenziali AWS eseguendo aws configure. Ti verranno chieste:
  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region name
  • Default output format
  • Inserisci le informazioni richieste, che troverai nel tuo account AWS.

Passo 3: Creare lo Script di Backup

Lo script di backup eseguirà il dump del database MySQL e creerà un archivio dei file di WordPress, caricando entrambi su Amazon S3.

  • Connettiti alla tua istanza EC2 e naviga alla directory desiderata (es. cd /home/ec2-user).
  • Crea uno script chiamato wordpress_backup.sh usando il tuo editor preferito (es. nano wordpress_backup.sh) e inserisci il seguente codice, sostituendo i placeholder con le tue informazioni:
#!/bin/bash

# Configurazioni
MYSQL_USER="your_mysql_user"
MYSQL_PASSWORD="your_mysql_password"
BUCKET_NAME="your_s3_bucket_name"
BACKUP_PATH="/path/to/your/backup/directory"
DATE=$(date +%Y%m%d%H%M)
MYSQL_BACKUP_NAME="mysql_backup_$DATE.sql"
WWW_BACKUP_NAME="www_backup_$DATE.tar.gz"
REGION="your_aws_region"

# Backup MySQL
mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD --all-databases > $BACKUP_PATH/$MYSQL_BACKUP_NAME

# Backup file WordPress
tar -czf $BACKUP_PATH/$WWW_BACKUP_NAME /var/www/html

# Caricamento su Amazon S3
aws s3 cp $BACKUP_PATH/$MYSQL_BACKUP_NAME s3://$BUCKET_NAME/$MYSQL_BACKUP_NAME --region $REGION
aws s3 cp $BACKUP_PATH/$WWW_BACKUP_NAME s3://$BUCKET_NAME/$WWW_BACKUP_NAME --region $REGION

# Pulizia locale
rm $BACKUP_PATH/$MYSQL_BACKUP_NAME
rm $BACKUP_PATH/$WWW_BACKUP_NAME

# Pulizia dei backup vecchi su S3 (mantieni per 7 giorni)
aws s3 ls s3://$BUCKET_NAME/ | while read -r line; do
    CREATE_DATE=`echo $line|awk {'print $1" "$2'}`
    FILENAME=`echo $line|awk {'print $4'}`
    if [[ $FILENAME != "" ]]; then
        FILEDATE=$(date -d"$CREATE_DATE" +%s)
        NOW=$(date +%s)
        DIFF=$(($NOW - $FILEDATE))
        if [[ $DIFF -gt $((7*24*60*60)) ]]; then
            aws s3 rm s3://$BUCKET_NAME/$FILENAME --region $REGION
        fi
    fi
done
  • Rendi eseguibile lo script: chmod +x wordpress_backup.sh.

Passo 4: Automatizzare lo Script con Cron

Per eseguire automaticamente lo script di backup:

  • Apri il crontab per l’editing: crontab -e.
  • Aggiungi una riga per pianificare l’esecuzione dello script, esempio ogni giorno alle 2 AM:
0 2 * * * /path/to/your/wordpress_backup.sh
  • Salva e chiudi l’editor.

Conclusione

Hai ora configurato con successo il backup automatico del tuo sito WordPress su Amazon S3. Questo assicura che i dati del tuo sito siano regolarmente salvati in un luogo sicuro e facilmente accessibile per il ripristino, se necessario. Ricordati di verificare periodicamente che i tuoi backup vengano eseguiti come previsto.

I am Python, the programming language that mesmerizes codes with my serpentine magic. With enchanting syntax, I capture the hearts of developers. #PythonMagic
AI in Action

Claude: L'Assistente AI Promettente di Anthropic che Mira a Superare ChatGPT

Un'analisi approfondita delle capacità e dei limiti di Claude, il nuovo assistente AI di Anthropic, confrontato con ChatGPT di OpenAI.
CodeLab

Come Integrare Gravity Forms con Jira: Automatizzazione e Test con Postman

Scopri come integrare Gravity Forms con Jira per automatizzare la creazione di task direttamente dai tuoi form WordPress, inclusa una guida dettagliata per testare l'API con Postman. Ottimizza il tuo workflow e migliora l'efficienza dei tuoi progetti.
No results found.