Supervisión y reajuste automático de FSX ONTAP mediante la función Lambda de AWS
En esta página se describe la automatización de la supervisión de AWS FSx ONTAP y el redimensionamiento automático en función del umbral.
Descripción general: Supervisión y reajuste automático de FSX ONTAP a través de la función AWS Lambda
FSX ONTAP es un servicio de almacenamiento en nube de clase empresarial de primer orden disponible en AWS que ofrece un almacenamiento de archivos altamente fiable, escalable, de alto rendimiento y con muchas funciones integrado en el popular sistema de archivos NetApp ONTAP.
FSX ONTAP ofrece una experiencia de puesta en marcha y gestión fluida. No se necesita experiencia en almacenamiento para comenzar. Para simplificar la supervisión, se puede utilizar una función lambda de AWS (para automatizar el redimensionamiento de la capacidad de almacenamiento total, el tamaño de volumen o el tamaño de LUN en función del umbral). Este documento proporciona una guía paso a paso para crear una configuración automatizada que supervise FSx ONTAP a intervalos regulares, notifique y cambie el tamaño cuando se cruza un umbral especificado por el usuario y notifique al administrador la actividad de cambio de tamaño.
Funciones
La solución ofrece las siguientes funciones:
-
Capacidad de supervisión:
-
Uso de la capacidad de almacenamiento general de FSx ONTAP
-
Uso de cada volumen (con aprovisionamiento ligero/con aprovisionamiento grueso)
-
Uso de cada LUN (con aprovisionamiento ligero/con aprovisionamiento grueso)
-
-
Capacidad de cambiar el tamaño de cualquiera de los valores anteriores cuando se supera un umbral definido por el usuario
-
Mecanismo de alertas para recibir avisos de uso y notificaciones de cambio de tamaño por correo electrónico
-
Capacidad para eliminar snapshots más antiguas que el umbral definido por el usuario
-
Capacidad de obtener una lista de volúmenes FlexClone y copias Snapshot asociadas
-
Capacidad para supervisar las comprobaciones a intervalos regulares
-
Posibilidad de utilizar la solución con o sin acceso a Internet
-
Capacidad para implementar manualmente o usar la plantilla de AWS CloudFormation
-
Capacidad de supervisar varios sistemas de archivos FSX ONTAP en un único VPC
Requisitos previos
Antes de empezar, compruebe que se cumplan los siguientes requisitos previos:
-
FSX ONTAP está puesto en marcha
-
Subred privada con conectividad a FSX ONTAP
-
Se ha establecido la contraseña «fsxadmin» para FSx ONTAP
Arquitectura de alto nivel
-
La función Lambda de AWS realiza llamadas API a FSx ONTAP para recuperar y actualizar el tamaño de la capacidad de almacenamiento, los volúmenes y los LUN.
-
Contraseña de fsxadmin almacenada como cadena segura en AWS SSM Parameter Store para una capa de seguridad añadida.
-
Se utiliza el servicio de correo electrónico simple (SES) de AWS para notificar a los usuarios finales cuando se produce un evento de cambio de tamaño.
-
Si implementa la solución en una VPC sin acceso a Internet, los extremos de VPC para AWS SSM, FSx y SES están configurados para permitir que Lambda llegue a estos servicios a través de la red interna de AWS.
Puesta en marcha de la solución
Puesta en marcha automatizada
Cubre el sistema de archivos FSX ONTAP único. |
Siga la serie de pasos para completar la implementación automatizada de esta solución:
Paso 1: Clone el repositorio de GitHub
Clone el repositorio de GitHub en el sistema local:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Paso 2: Configurar un bucket de AWS S3
-
Vaya a AWS Console > S3 y haga clic en Crear bucket. Cree el bloque con la configuración predeterminada.
-
Una vez dentro del depósito, haz clic en Upload > Add files y selecciona Utilities.zip en el repositorio clonado de GitHub en tu sistema.
Paso 3: Configuración SMTP de AWS SES (necesaria si no hay acceso a Internet disponible)
Siga este paso si desea implementar la solución sin acceso a Internet (Nota: Se agregarán costos asociados con los endpoints de VPC que se configuran).
-
Vaya a AWS Console > AWS Simple Email Service (SES) > Configuración SMTP y haga clic en Crear credenciales SMTP
-
Introduzca un nombre de usuario de IAM o déjelo en el valor predeterminado y haga clic en Crear usuario. Guarde el nombre de usuario SMTP y la contraseña SMTP para su uso posterior.
Omita este paso si la configuración SMTP de SES ya está en su lugar.
Paso 4: Implementación de AWS CloudFormation
-
Vaya a AWS Console > CloudFormation > Crear pila > Con nuevos recursos (estándar).
Prepare template: Template is ready Specify template: Upload a template file Choose file: Browse to the cloned GitHub repo and select fsxn-monitoring-solution.yaml
Haga clic en Siguiente
-
Introduzca los detalles de la pila. Haga clic en Siguiente y marque la casilla de verificación “Reconozco que AWS CloudFormation podría crear recursos de IAM” y haga clic en Enviar.
Si «¿El VPC tiene acceso a Internet?» Se establece en Falso, se requiere el nombre de usuario SMTP para AWS SES y la contraseña SMTP para AWS SES. De lo contrario, se pueden dejar vacíos. -
Una vez que se inicie la implementación de CloudFormation, el ID de correo electrónico mencionado en el “ID de correo electrónico del remitente” recibirá un correo electrónico pidiéndoles que autoricen el uso de la dirección de correo electrónico con AWS SES. Haga clic en el enlace para verificar la dirección de correo electrónico.
-
Una vez que se complete la implementación de la pila de CloudFormation, si hay advertencias/notificaciones, se enviará un correo electrónico al ID de correo electrónico del destinatario con los detalles de la notificación.
Puesta en marcha manual
Admite la supervisión de varios sistemas de archivos FSX ONTAP en un único VPC. |
Siga la serie de pasos para completar la implementación manual de esta solución:
Paso 1: Clone el repositorio de GitHub
Clone el repositorio de GitHub en el sistema local:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Paso 2: Configuración SMTP de AWS SES (necesaria si no hay acceso a Internet disponible)
Siga este paso si desea implementar la solución sin acceso a Internet (Nota: Se agregarán costos asociados con los endpoints de VPC que se configuran).
-
Vaya a AWS Console > AWS Simple Email Service (SES) > Configuración SMTP y haga clic en Crear credenciales SMTP
-
Introduzca un nombre de usuario de IAM o déjelo en el valor predeterminado y haga clic en Crear. Guarde el nombre de usuario y la contraseña para seguir utilizándolo.
Paso 3: Crear el parámetro SSM para la contraseña fsxadmin
Navegue hasta la Consola de AWS > Parameter Store y haga clic en Create parameter.
Name: <Any name/path for storing fsxadmin password> Tier: Standard Type: SecureString KMS key source: My current account KMS Key ID: <Use the default one selected> Value: <Enter the password for "fsxadmin" user configured on FSx ONTAP>
Haga clic en Crear parámetro. Repita los pasos anteriores para que se supervisen todos los sistemas de archivos FSX ONTAP.
Realice los mismos pasos para almacenar el nombre de usuario smtp y la contraseña smtp si implementa la solución sin acceso a Internet. De lo contrario, omita la adición de estos 2 parámetros.
Paso 4: Configurar el servicio de correo electrónico
Navegue hasta la Consola de AWS > simple Email Service (SES) y haga clic en Crear identidad.
Identity type: Email address Email address: <Enter an email address to be used for sending resizing notifications>
Haga clic en Crear identidad
El ID de correo electrónico mencionado en el “ID de correo electrónico del remitente” recibirá un correo electrónico solicitando al propietario que autorice el uso de la dirección de correo electrónico con AWS SES. Haga clic en el enlace para verificar la dirección de correo electrónico.
Paso 5: Configurar puntos finales de VPC (necesario si no hay acceso a Internet disponible)
Solo es necesario si se implementa sin acceso a Internet. Habrá costes adicionales asociados a los extremos de VPC. |
-
Vaya a AWS Console > VPC > Endpoints y haga clic en Create Endpoint e introduzca los siguientes detalles:
Name: <Any name for the vpc endpoint> Service category: AWS Services Services: com.amazonaws.<region>.fsx vpc: <select the vpc where lambda will be deployed> subnets: <select the subnets where lambda will be deployed> Security groups: <select the security group> Policy: <Either choose Full access or set your own custom policy>
Haga clic en Crear punto final.
-
Siga el mismo proceso para crear puntos finales de VPC SES y SSM. Todos los parámetros son los mismos que los anteriores, excepto los Servicios que corresponden a com.amazonaws.<region>.smtp y com.amazonaws.<region>.ssm respectivamente.
Paso 6: Crear y configurar la función AWS Lambda
-
Navegue hasta la consola de AWS > AWS Lambda > Functions y haga clic en Create Function en la misma región que FSX ONTAP
-
Utilice el Autor predeterminado desde cero y actualice los siguientes campos:
Function name: <Any name of your choice> Runtime: Python 3.9 Architecture: x86_64 Permissions: Select "Create a new role with basic Lambda permissions" Advanced Settings: Enable VPC: Checked VPC: <Choose either the same VPC as FSx ONTAP or a VPC that can access both FSx ONTAP and the internet via a private subnet> Subnets: <Choose 2 private subnets that have NAT gateway attached pointing to public subnets with internet gateway and subnets that have internet access> Security Group: <Choose a Security Group>
Haga clic en Crear función.
-
Navegue hasta la función Lambda recién creada > Desplácese hasta la sección Capas y haga clic en Agregar una capa.
-
Haga clic en Crear una nueva capa bajo Fuente de capa
-
Cree una capa y cargue el archivo Utilities.zip. Seleccione Python 3.9 como el tiempo de ejecución compatible y haga clic en Crear.
-
Vuelva a la función AWS Lambda > Add Layer > Custom Layers y agregue la capa utilities.
-
Vaya a la pestaña Configuración de la función Lambda y haga clic en Editar en Configuración general. Cambie el tiempo de espera a 5 mins y haga clic en Guardar.
-
Vaya a la ficha permisos de la función Lambda y haga clic en la función asignada. En la ficha permisos de la función, haga clic en Agregar permisos > Crear directiva en línea.
-
Haga clic en la pestaña JSON y pegue el contenido del archivo policy.json en GitHub repo.
-
Reemplace cada ocurrencia de ${AWS::AccountId} con su ID de cuenta y haga clic en Directiva de revisión
-
Proporcione un nombre para la directiva y haga clic en Crear directiva
-
-
Copie el contenido de fsxn_Monitoring_fanging_lambda.py de git repo a lambda_function.py en la sección AWS Lambda Function Code Source.
-
Cree un archivo nuevo en el mismo nivel que lambda_function.py y llíelo var.py y copie el contenido de vars.py del git repo al archivo de la función lambda vars.py. Actualice los valores de variable en var.py. Consulte las definiciones de variables a continuación y haga clic en desplegar:
Nombre
Tipo
Descripción
FsxList
Lista
(Obligatorio) Lista de todos los sistemas de archivos FSX ONTAP que se van a supervisar. Incluya todos los sistemas de archivos de la lista para la supervisión y el cambio de tamaño automático.
FsxMgmtIp
Cadena
(Obligatorio) Introduzca el «Punto final de gestión: Dirección IP» desde la consola de FSx ONTAP en AWS.
FsxId
Cadena
(Obligatorio) Introduzca el «ID del sistema de archivos» desde la consola de FSx ONTAP en AWS.
nombre de usuario
Cadena
(Necesario) Introduzca el «Nombre de usuario de administrador de ONTAP» de FSx ONTAP de la consola FSx ONTAP en AWS.
redimensione_threshold
Entero
(Obligatorio) Introduzca el porcentaje de umbral del 0 al 100. Este umbral se utilizará para medir la capacidad de almacenamiento, el uso del volumen y la LUN, y cuando se utilice el porcentaje de aumento por encima de este umbral, se realizará el cambio de tamaño de la actividad.
fsx_password_ssm_parameter
Cadena
(Obligatorio) Introduzca el nombre de ruta utilizado en el almacén de parámetros de AWS para almacenar la contraseña "fsxadmin".
advertir_notificación
Bool
(Obligatorio) Establezca esta variable en True para recibir una notificación cuando el uso de capacidad de almacenamiento/volumen/LUN supere el 75%, pero sea inferior al umbral.
enable_snapshot_deletion
Bool
(Obligatorio) establezca esta variable en True para habilitar la eliminación de snapshots a nivel de volumen en las snapshots de más antiguo que el valor especificado en "Snapshot_age_threshold_in_Days".
instantánea_age_threshold_in_days
Entero
(Obligatorio) Introduzca el número de días de copias de Snapshot de nivel de volumen que desea conservar. Se eliminarán todas las instantáneas que tengan un valor superior al proporcionado y se notificará por correo electrónico lo mismo.
internet_access
Bool
(Requerido) Establece esta variable en True si el acceso a Internet está disponible desde la subred donde se despliega este lambda. De lo contrario, establézcalo en Falso.
smtp_region
Cadena
(Opcional) Si la variable “INTERNET_ACCESS” está establecida en False, introduzca la región en la que se despliega lambda. Por ejemplo, US-east-1 (en este formato)
smtp_username_ssm_parameter
Cadena
(Opcional) Si la variable “INTERNET_ACCESS” se establece en False, introduzca el nombre de ruta utilizado en AWS Parameter Store para almacenar el nombre de usuario SMTP.
smtp_password_ssm_parameter
Cadena
(Opcional) Si la variable “INTERNET_ACCESS” se establece en False, introduzca el nombre de la ruta de acceso utilizado en AWS Parameter Store para almacenar la contraseña SMTP.
correo_remitente
Cadena
(Obligatorio) Introduzca el ID de correo electrónico registrado en SES que utilizará la función lambda para enviar alertas de notificación relacionadas con la supervisión y el cambio de tamaño.
correo_destinatario
Cadena
(Obligatorio) Introduzca el ID de correo electrónico en el que desea recibir las notificaciones de alerta.
-
Haga clic en Test, cree un evento de prueba con un objeto JSON vacío y ejecute la prueba haciendo clic en Invoke para comprobar si el script se está ejecutando correctamente.
-
Una vez probado correctamente, navegue a Configuración > Disparadores > Agregar desencadenador.
Select a Source: EventBridge Rule: Create a new rule Rule name: <Enter any name> Rule type: Schedule expression Schedule expression: <Use "rate(1 day)" if you want the function to run daily or add your own cron expression>
Haga clic en Agregar.
Conclusión
Con la solución proporcionada, es fácil configurar una solución de supervisión que supervise regularmente el almacenamiento de FSx ONTAP, lo cambie de tamaño en función de un umbral especificado por el usuario y proporcione un mecanismo de alerta. Esto hace que el proceso de utilizar y supervisar FSx ONTAP se libere de forma fluida a los administradores para que puedan centrarse en actividades vitales para el negocio a la vez que el almacenamiento crece automáticamente cuando es necesario.