Blog de Amazon Web Services (AWS)

Diseño de sistema para la trazabilidad de ayudas entregadas a personas afectadas debido a desastres naturales

Por: Juan Miguel Bermúdez Mieles, arquitecto de soluciones en Amazon Web Services (AWS) para Sector Público

Dado el momento de incertidumbre en que se está atravesando a nivel global en materia social, económica y/o climática. Hay poblaciones que se encuentran expuestas a estos factores, que inciden de forma directa en su calidad de vida, llevándolos a condiciones de pobreza extrema. Con el objetivo de combatir este flagelo y apoyar a los más necesitados mediante la distribución de ayudas humanitarias, se propone el diseño de un sistema que se enfoca en ayudar a resolver esta necesidad y que permita la trazabilidad de la distribución de ayudas de una manera equitativa y transparente durante las situaciones de emergencia. Estas emergencias pueden ser causadas por desastres naturales tales como inundaciones, terremotos, sequías o por causas sociales y económicas como la pobreza extrema, la violencia, el conflicto armado y las migraciones forzadas. Prueba de ello es que entre 2020 y 2022 se produjeron 175 desastres naturales en América Latina y el Caribe, según el Informe de Evaluación Global publicado por la Oficina de las Naciones Unidas para la Reducción del Riesgo de Desastres [1]. En estos contextos, la entrega de ayuda humanitaria es vital para salvaguardar la vida de las personas afectadas.

Este sistema permitirá registrar las ayudas entregadas y tener información actualizada de los grupos poblacionales atendidos. Esto ayudaría a enfocar los esfuerzos y redirigir las ayudas a otros que también lo necesiten, cubriendo así a una mayor cantidad de personas afectadas. Además, aumentaría la visibilidad y transparencia en la gestión de las entregas de ayuda humanitaria, lo que es fundamental para mantener la confianza de los donantes y la población en general. Una de las características más importantes del sistema es la posibilidad de determinar si una persona es elegible para recibir ayuda (reside en la zona afectada, está catalogado como persona en pobreza extrema, etc.), mediante la consulta de bases de datos externas (Organizaciones sin ánimo de lucro, entes gubernamentales) que permitan extraer información para segmentar los distintos grupos poblacionales atendidos. Esta clasificación permitirá tener una visión de cómo y a quienes se han entregado las distintas ayudas.

Otra característica importante del sistema es la capacidad de identificar los productos entregados y sus cantidades mediante el reconocimiento de imágenes, y registrarlos en una base de datos en conjunto con la información recopilada del sistema externo. Esto permite una gestión más eficiente del inventario de ayuda humanitaria, asegurando que los suministros se entreguen en la cantidad y calidad adecuadas.

Finalmente, la información recopilada por el sistema será utilizada por un panel de inteligencia de negocios para ayudar en la toma de decisiones. Esto permitiría a los responsables de la gestión de la ayuda humanitaria obtener información valiosa sobre la eficacia de sus programas, identificar áreas de mejora y tomar decisiones informadas en tiempo real.

En resumen, el sistema propuesto aborda una necesidad crítica y permitiría una distribución más efectiva y justa de la ayuda humanitaria, aumentando la transparencia y la confianza de los donantes y la población afectada. Además, permite una gestión más eficiente del inventario de ayuda y proporciona información valiosa para la toma de decisiones informadas en tiempo real.

Estructura del sistema

El sistema estará compuesto por diversos procesos, que incluyen desde la verificación de usuarios hasta la validación de los productos, pasando por el almacenamiento y la visualización de la información.

Verificación, validación e identificación de usuarios y puntos de entregas

En los puntos de entrega, previamente establecidos por la entidad se ubicarán personas encargadas de la distribución la cuales se autenticarán en el sistema a través de una aplicación web o móvil que utilizará Amazon Cognito para la autenticación de usuarios. La aplicación enviará la información de la persona que solicita ayuda para determinar si es o no elegible para recibirla. En caso de que no sea elegible, se registrará en un sistema de espera o validación. Para realizar este proceso, se utilizará una aplicación Backend que incluirá herramientas como Amazon API Gateway, AWS Lambda y otras tecnologías necesarias para garantizar la funcionalidad y seguridad del sistema.

Ilustración 1 Validación, verificación e identificación de beneficiarios y puntos de entrega

Ilustración 1 Validación, verificación e identificación de beneficiarios y puntos de entrega

Nota: En cada sección explicaremos el uso de los servicios de AWS en el sistema

  • Amazon Route 53: Servicio de registro de nombres de dominio para asignar un nombre personalizado al dominio del sistema.
  • AWS Web Application Firewall (WAF): Servicio de protección del sistema contra diferentes tipos de ataques y bloqueo de acceso a IPs que no sean del país donde se implementa la solución.
  • Amazon Cognito user pool: Servicio de gestión de usuarios relacionados con los puntos de entrega.
  • Amazon API Gateway: Servicio de entrada al backend de la aplicación, integrado con Amazon Cognito para validar la autorización de los usuarios que acceden al sistema.
  • AWS Lambda Function (Validador): Función encargada de verificar los sistemas externos de posibles beneficiarios, validar el modelo de reconocimiento de productos y sus cantidades, registrar la información relacionada con las solicitudes en una base de datos, y publicar los eventos satisfactorios (información de beneficiarios sin PII más información de productos) y los eventos no satisfactorios en colas separadas para su posterior procesamiento.
  • Amazon Simple Queue Service (SQS) (Cola de registro): Almacenamiento de mensajes con información del proceso de reconocimiento de productos y datos demográficos relacionados con los beneficiarios para su procesamiento posterior.
  • Amazon Simple Queue Service (SQS) (Cola de espera): Seguimiento de personas que no fueron incluidas como beneficiarios para recibir ayuda. Este servicio es opcional.

Reconocimiento de los productos

Para este componente del sistema, nos apoyaremos en la característica de Amazon Rekognition Custom Labels, que nos permitirá entrenar un modelo de Machine Learning para el reconocimiento de objetos en imágenes. Utilizaremos la consola de AWS para este proceso y será necesario recopilar una gran cantidad de imágenes de los productos que se quieran identificar, se sugiere ubicar los productos en diferentes posiciones a la hora de capturarlos en imágenes. Esto nos ayudará a crear conjunto de datos diversos que serán usados para entrenar al modelo. Una parte de este conjunto de imágenes se repartirá entre conjunto para el entrenamiento y para la prueba del modelo.

Ilustración 2 Etiquetado de productos por medio de la consola

Ilustración 2 Etiquetado de productos por medio de la consola

Luego de tener el conjunto de datos (dataset), es necesario entrenar el modelo utilizando técnicas de aprendizaje supervisado con este nuevo conjunto de datos etiquetados. Una vez que el modelo ha sido entrenado, puede ser desplegado y accedido a través de una API utilizando el SDK correspondiente.

Ilustración 3 Reconocimiento de imágenes

Ilustración 3 Reconocimiento de imágenes

Almacenamiento de la información

Dada la necesidad de disponer de la información y permitir su consumo en tableros de inteligencia de negocios, se ha decidido implementar una etapa de procesamiento de la información. En esta etapa, se enviarán los mensajes en lotes desde la cola de registro a una función que procesará los mensajes en formato parquet, que es una estructura de datos columnar que permite mayor eficiencia en las consultas desde servicios como Amazon Athena. La función podrá procesar hasta 10.000 mensajes por batch y creará un archivo en formato parquet, que será almacenado en un bucket de Amazon S3. Para mejorar el rendimiento de las consultas en Amazon Athena, se crearán particiones de los datos.

Ilustración 4 Procesamiento de mensajes

Ilustración 4 Procesamiento de mensajes

  • AWS Lambda Function (Procesador): Función encargada de procesar los mensajes en batch desde la cola de registro, construir y almacenar los archivos en formato parquet en un bucket de Amazon S3. Esta función también debe crear particiones de los datos para mejorar el rendimiento de las consultas en Amazon Athena.
  • Amazon S3: Bucket para el almacenamiento de los archivos procesados en formato parquet.

Visualización de la información

Para el descubrimiento de la información y la construcción del catálogo de datos a ser usado por Amazon Athena, se puede hacer de dos formas manual y automática. De la forma manual, podemos crear la base de datos y tabla a usar en Amazon Athena teniendo información del contenido de los archivos a consultar, mientras que de forma automática nos podemos apoyar de los AWS Glue Crawler para poblar el catálogo de datos y sus respectivas tablas. Amazon Athena nos servirá como Dataset para nuestro tablero de inteligencia de negocios.

Ilustración 5 Visualización de los datos

Ilustración 5 Visualización de los datos

  • AWS Glue Crawler: Exploración automática de los archivos para la construcción del catálogo de datos a usar por Amazon Athena.
  • Amazon Athena: Servicio de consultas de datos en el catálogo, por medio de sentencias SQL, permitiendo a los usuarios explorar y analizar los datos en S3.
  • Amazon QuickSight: Herramienta de análisis y visualización de datos en la nube, que permite la creación y publicación de tableros interactivos para proporcionar información relacionada con la entrega de los productos y los grupos atendidos.

Seguridad

Por último, este sistema contará con servicios esenciales de seguridad que serán integrados o utilizados por otros servicios, como AWS Identity and Access Management (IAM), AWS Key Management Service (KMS), AWS Certificate Manager, AWS Secrets Manager, entre otros. Estos servicios funcionarán como una capa extra de seguridad para el sistema, proporcionando una mayor protección y control en el manejo de los datos y la información sensible.

Además de proporcionar una mayor protección y control en el manejo de los datos y la información sensible, la utilización de estos servicios de seguridad de AWS tiene las siguientes ventajas:

  • AWS IAM permite administrar y controlar el acceso a los recursos del sistema, asegurando que solo los usuarios autorizados puedan acceder a la información.
  • AWS KMS proporciona un servicio de gestión de claves de encriptación que permite cifrar y descifrar datos de forma segura, lo que ayuda a proteger la información confidencial.
  • AWS Certificate Manager facilita la emisión, el manejo y la renovación de certificados SSL/TLS para la encriptación segura de las comunicaciones entre los servicios del sistema.
  • AWS Secrets Manager proporciona un servicio seguro y escalable para el manejo de secretos, como contraseñas y claves de acceso, que se utilizan en el sistema.
Ilustración 6 Servicios de seguridad asociados

Ilustración 6 Servicios de seguridad asociados

Ahora veremos como cada uno de los componentes del sistema interactúan entre sí:

Cabe resaltar que esta es una arquitectura de referencia y que se puede realizar esta solución con otros servicios y patrones, más allá del cómo es poder contar con un sistema de gestión de ayuda humanitaria puede ser crucial para asegurar que la ayuda llegue a los grupos más vulnerables y necesitados. La segmentación de los diferentes grupos poblacionales, la identificación de los productos entregados y la gestión de la información a través de un panel de inteligencia de negocios permitirá una toma de decisiones más informada y eficiente, lo que a su vez aumentará la transparencia y la visibilidad en la gestión de la entrega de la ayuda humanitaria.

Además, el uso de tecnologías avanzadas como el reconocimiento de imágenes y la integración de bases de datos externas, permite una gestión más precisa y rápida de la información, mejorando la eficiencia del proceso de entrega de ayuda. En resumen, un sistema bien diseñado y correctamente implementado puede marcar la diferencia entre el éxito y el fracaso en una operación de ayuda humanitaria [2]

Referencias

[1] Informe de la ONU sobre la percepción del riesgo de la Humanidad

[2] How AWS is supporting nonprofits, governments, and communities impacted by Hurricane Ian

Sobre el autor

Juan Miguel Bermúdez Mieles es arquitecto de soluciones en Amazon Web Services para Sector Público. Juan Miguel apoya a distintas entidades e instituciones públicas en Centro América y el Caribe en la adopción de nuevas tecnologías y prácticas que permitan el mejoramiento de sus servicios.

 

 

 

Revisores Técnicos

Camilo García es Arquitecto de Soluciones para el Sector Público en la región Andina. Camilo ha ayudado a entidades estatales y organizaciones sin ánimo de lucro en la adopción de tecnologías de nube sobre AWS. Ha profundizado en temas de resiliencia, con énfasis en recuperación ante desastres. Le apasionan los temas de TI en las organizaciones, manejo de redes y diseño de sistemas resilientes.

 

 

Roberto León es arquitecto de soluciones para socios de negocio en Amazon Web Services, donde apoya a nuestros socios a innovar en su jornada de adopción y modernización tecnológica para el sectór público en mercados del Caribe.