✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo realizar una copia de seguridad de la aplicación Laravel y almacenarla en Amazon S3

84

En el pasado, publiqué un artículo que almacena la copia de seguridad de Laravel localmente en el servidor. Aunque en ese artículo discutimos el almacenamiento de una copia de seguridad en el servidor de alojamiento, no se recomienda una forma de almacenamiento. La opción más segura de almacenar copias de seguridad está en la nube. Puede suceder que su servidor se bloquee y pierda la aplicación junto con las copias de seguridad almacenadas localmente. En estos peores escenarios, si tiene una copia de seguridad almacenada en la nube, puede revertirla fácilmente en cualquier momento.

Teniendo en cuenta la importancia de la copia de seguridad, en este artículo estudiamos cómo hacer una copia de seguridad de una aplicación Laravel y almacenarla en Amazon s3. Para lograr nuestro objetivo, usaremos tanto Laravel Filesystem como el paquete desarrollado por Spatie.

Obtenga sus credenciales de seguridad de AWS

Para comenzar, primero debe tener una cuenta en Amazon S3. Después de crear la cuenta, asegúrese de haber activado el servicio S3 siguiendo el proceso de verificación de AWS.

Después de activar el servicio S3, obtenga sus credenciales de seguridad que necesitaremos en unos momentos. Lo obtendrá haciendo clic en el enlace ‘Mis credenciales de seguridad’.

Cómo realizar una copia de seguridad de la aplicación Laravel y almacenarla en Amazon S3

Configurar el controlador S3 en Laravel

Dirígete a tu editor de código y abre el archivo config/filesystems.php. En este archivo, puede ver que los detalles de S3 se configuran mediante el env()método. Significa que debe configurar sus credenciales de S3 en un .envarchivo.

config / filesystems.php

<?php
return [
  
    .....
  
    'disks' => [
  
        .....
  
        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
        ],
    ...
    ...
];

Abra su .envarchivo y agréguele las credenciales de AWS S3. No es necesario establecer el valor AWS_URL, ya que es opcional.

.env

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=

Antes de usar el S3, deberá instalar el paquete apropiado a través de Composer:

composer require league/flysystem-aws-s3-v3 ~1.0

Instalar y configurar la biblioteca de Spatie

Antes de instalar la biblioteca de Spatie, asegúrese de que su sistema cumpla con los requisitos del paquete. Lea más sobre esto en su página de Requisitos.

Si está utilizando una versión anterior de Laravel, consulte una de las versiones anteriores de estos paquetes en v6, v5, v4.

Instalemos el paquete ejecutando el siguiente comando:

composer require spatie/laravel-backup

Una vez que la biblioteca esté instalada, ejecute el siguiente comando a continuación, que publicará el archivo de configuración en config/backup.php.

php artisan vendor:publish --provider="SpatieBackupBackupServiceProvider"

Abra el config/backup.phparchivo y establezca el nombre de los ‘discos’ como ‘s3’. Al hacerlo, le estamos diciendo a este paquete que almacene la copia de seguridad de Laravel en el bucket de Amazon S3.

<?php
...
...
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
    's3',
],

Hay otras configuraciones también disponibles en este archivo. Un usuario puede incluir y excluir los directorios para la copia de seguridad. Para incluir, el valor es base_path()y para la opción de exclusión, los valores son base_path('vendor'), base_path(‘node_modules’). Significa no incluir carpetas vendory nod_modulesen la copia de seguridad final.

Almacene la copia de seguridad de la aplicación Laravel en Amazon S3

Hemos terminado con todas las configuraciones básicas necesarias para almacenar la copia de seguridad de Laravel en Amazon S3. Ahora podemos almacenar nuestra primera copia de seguridad. Abra la terminal en el directorio raíz de su proyecto y ejecute el comando:

php artisan backup:run

El comando anterior hará una copia de seguridad de su aplicación Laravel en AWS. Encontrará el zip de la copia de seguridad en su bucket de S3. El zip de respaldo contiene los archivos de la aplicación, las carpetas y el almacén de la base de datos.

Cómo realizar una copia de seguridad de la aplicación Laravel y almacenarla en Amazon S3

Esta biblioteca también permite programar un proceso de respaldo. Puede automatizar su tarea de copia de seguridad. Para esto, agregue el siguiente código en el app/Console/Kernel.phparchivo.

<?php
...
...
protected function schedule(Schedule $schedule)
{
    $schedule->command('backup:run')->daily()->at('06:00');
}

Aquí configuro la copia de seguridad diaria a las 06:00. El usuario puede cambiar este tiempo según sus necesidades.

Espero que comprenda cómo realizar una copia de seguridad de la aplicación Laravel y almacenarla en Amazon S3. Me gustaría escuchar sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More