Saltar a contenido

Modelos y servicios de AWS

A continuación explicaremos qué pasos debemos seguir para poder utilizar y/o experimentar con los modelos y servicios basados en IA ofrecidos por Amazon a través de AWS.

1. Primeros pasos con AWS

AWS ofrece sus servicios a través de dos vías: mediante su academia de aprendizaje AWS Academy, de forma gratuita para los alumnos inscritos, o a través del portal oficial AWS, en cuyo caso tendremos que proporcionar datos de pago para poder registrarnos.

A continuación explicamos los pasos generales a dar en uno u otro caso. En este documento nos centraremos en la primera opción, por ser gratuita. Para ello, un profesor debe habernos dado de alta previamente en los cursos o laboratorios que vayamos a probar.

1.1. Uso gratuito y prueba de servicios: AWS Academy

AWS Academy es un programa de capacitación en la nube ofrecido por AWS. Este programa brinda a las instituciones educativas la oportunidad de formar a sus estudiantes en el campo del cloud computing de manera gratuita. Los recursos proporcionados por AWS incluyen un plan de estudios completo, así como acceso a los servicios de AWS a través de laboratorios creados por los profesores. Es importante destacar que los estudiantes no necesitan tener una cuenta en AWS para acceder a los servicios, ya que pueden utilizar los laboratorios proporcionados por los profesores para practicar y experimentar con los servicios de AWS. Aquí tenemos un enlace a su web principal.

Acceso a los laboratorios

Si eres estudiante en un centro educativo afiliado a AWS Academy, podrás acceder a los laboratorios de prácticas mediante invitación previa del docente, sin necesidad de tener una cuenta en AWS.

La primera vez que accedes a un laboratorio (al pulsar el botón/enlace correspondiente en el correo con la invitación), se solicita crear una cuenta en la plataforma Canvas para poder acceder a los laboratorios.

Es necesario rellenar el formulario de registro, indicando, además de un correo electrónico, una contraseña y una zona horaria. Por último, hay que aceptar la política de uso de Canvas y los términos y condiciones para estudiantes de AWS y finalizar el registro.

Una vez terminado el registro, se produce una redirección a la página de inicio del laboratorio. Cada laboratorio cuenta con un saldo inicial predeterminado y acceso gratuito a ciertos servicios en la nube para poder hacer las prácticas planteadas.

Para realizar las tareas propuestas en el laboratorio, hay que hacer clic sobre el enlace Módulos, y a continuación sobre Laboratorio de aprendizaje.

La primera vez que se accede hay que aceptar una serie de términos y condiciones. Desplázate hasta el final de la página y pulsa I agree, y se cargará la siguiente página:

En la parte superior derecha están disponibles las siguientes acciones:

  • Start Lab: permite iniciar el laboratorio y comenzar a trabajar en él. Una vez que haces clic en "Start Lab", se te proporciona acceso a una instancia de AWS que contiene el entorno de laboratorio.
  • End Lab: permite finalizar el laboratorio y cerrar la instancia de AWS. Al hacer clic en "End Lab", se detienen todos los recursos del laboratorio y se borran todos los datos creados en la instancia de AWS.
  • AWS Details: proporciona información detallada sobre la instancia de AWS que se te ha asignado para el laboratorio. Aquí puedes ver la región de AWS, el tipo de instancia, la dirección IP pública, entre otros detalles.
  • Readme: proporciona instrucciones detalladas sobre el laboratorio. Aquí puedes encontrar información sobre el objetivo del laboratorio, los pasos a seguir, los recursos que se te proporcionan, etc.
  • Reset: permite reiniciar el laboratorio y volver al estado inicial. Al hacer clic en "Reset", se detienen todos los recursos del laboratorio y se borran todos los datos creados en la instancia de AWS. Luego, la instancia de AWS se reinicia y se restablece al estado inicial. Ten en cuenta que esta opción no reseteará tu saldo inicial y se eliminará permanentemente todo lo que hayas realizado.

Pulsa Start Lab para iniciar el laboratorio. En ocasiones, este proceso puede tardar unos minutos.

Observa que ahora el icono de AWS (1) aparece en verde, lo que indica que ya puedes acceder a la consola de administración web de AWS, haciendo clic sobre dicho icono en verde. Una vez dentro de la consola, ya podrás utilizar las herramientas y servicios de AWS que necesites desde la interfaz web.

También se muestra en la parte superior el saldo (2) y el tiempo restante (3) del laboratorio. Cuando el tiempo se agota, la sesión termina, pero cualquier dato y recurso que hayas creado se mantendrán. Sin embargo, si sobrepasas el presupuesto asignado, tu cuenta de laboratorio será deshabilitada y se perderá todo el progreso realizado. Para evitar malgastar tu presupuesto, asegúrate de lanzar solo el número de instancias que necesites, ajustadas a tus requisitos.

Hemos visto en este apartado cómo acceder a los laboratorios de AWS ACademy y también el acceso a la consola de administración web, pero tenemos otras formas de interactuar o consumir recursos de AWS.

1.2. Uso comercial: la cuenta AWS

En el caso de que vayamos a hacer un uso más profesional de los servicios de Amazon debemos crear una cuenta. Para ello se debe acceder a aws.amazon.com y elegir Crear una cuenta de AWS.

Una vez se hayan completado los campos de correo electrónico y nombre de cuenta, se solicita verificar la dirección de correo electrónico proporcionada e indicar una contraseña.

Seguidamente, se solicita una determinada información de contacto y el tipo de cuenta a crear. La cuenta peude ser personal o empresarial. Dependiendo del tipo de cuenta que elijamos se pedirá un tipo de información u otra de cara a la facturación. Para empezar a conocer AWS y crear pequeños proyectos, una cuenta personal será suficiente. Sin embargo, si ya se tienen nociones de AWS o trabajas en una empresa grande con múltiples usuarios y departamentos y se necesitan políticas de seguridad y control de acceso más robustas, una cuenta empresarial podría ser más apropiada.

En el siguiente paso se pide registrar una forma de pago, ya que todos los servicios de AWS tienen un costo asociado. Aunque AWS dispone de una capa gratuita que incluye una gran cantidad de recursos durante un período de tiempo limitado, algunos servicios pueden generar cargos fuera de los límites de la capa gratuita y por eso es necesario indicar un método de facturación. Más información sobre la capa gratuita de AWS.

El último paso consiste en verificar tu número de teléfono y seleccionar un plan de soporte para la cuenta de AWS.

Como resultado del proceso de registro, se obtiene una cuenta raíz. Esta cuenta raíz tiene acceso completo a todos los servicios y recursos de AWS, incluyendo la administración de usuarios y grupos, modificación del método de pago o, incluso, cerrar la cuenta. Debido a este nivel de permisos, es recomendable proteger al usuario root con Multi-Factor Authentication (MFA) y configurar usuarios adicionales para realizar las tareas diarias relacionadas con nuestra cuenta. Veremos cómo hacer esto más adelante, ya que primero vamos a conocer el servicio AWS Identity and Access Management (IAM) necesario para activar la MFA, y en general, para administrar el acceso a los recursos de AWS.

1.2.1. AWS IAM

Como hemos comentado, una sola cuenta de AWS puede tener servicios administrados por decenas de personas diferentes que pueden estar en distintos departamentos u oficinas, tener diferentes responsabilidades o niveles de antigüedad, e incluso estar en distintos países. Para mantener un entorno seguro en la nube con todas estas variables en cuestión, es esencial seguir las prácticas recomendadas de AWS Identity and Access Management (IAM).

IAM se puede utilizar para gestionar la autenticación y para especificar y aplicar políticas de autorización para especificar qué usuarios pueden obtener acceso a cada servicio. Es decir, permite definir quién, a qué y cómo se accede a los recursos AWS. Puedes obtener más información sobre AWS IAM en la documentación oficial.

Los principales componentes son:

  • Usuario: persona o aplicación que se puede autenticar en AWS. Cada usuario debe tener un nombre único (sin espacios en el nombre) dentro de la cuenta de AWS y un conjunto de credenciales de seguridad que no se comparte con otros usuarios. Estas credenciales son diferentes de las credenciales de seguridad de usuario raíz de la cuenta de AWS.
  • Grupo: conjunto de usuarios de IAM, a los que se les concede una autorización idéntica. Así pues, permite asociar las mismas políticas a varios usuarios de una manera sencilla. Hay que tener en cuenta que:
  • Un grupo puede contener muchos usuarios y un usuario puede pertenecer a varios grupos.
  • Un grupo solo puede contener usuarios y, a su vez, un grupo no puede contener otros grupos.
  • No hay ningún grupo predeterminado que incluya automáticamente a todos los usuarios de la cuenta de AWS.
  • Política de IAM: documento que define permisos para determinar lo que los usuarios pueden hacer en la cuenta de AWS. Una política normalmente concede acceso a recursos determinados y especifica lo que el usuario puede hacer con esos recursos, aunque también pueden denegar explícitamente el acceso.
  • Rol: herramienta para conceder acceso temporal a recursos de AWS específicos de una cuenta de AWS. Un rol de IAM puede tener asociadas políticas de permisos y se puede utilizar para delegar acceso temporal a usuarios o aplicaciones. Dicho de otro modo, un rol de IAM es similar a un usuario, ya que es una identidad de AWS con políticas de permisos que establecen qué puede hacer o no la identidad en AWS. Sin embargo, en lugar de estar asociada únicamente a una persona, el objetivo es que pueda asignarse un rol a cualquier persona que lo necesite. También es conveniente destacar que cuando se asume un rol, se proporcionan credenciales de seguridad temporales para la sesión de rol, de manera que es conveniente utilizar roles para delegar el acceso a usuarios, aplicaciones o servicios que normalmente no tendrían acceso a los recursos de AWS.

Una vez ya sabemos qué hace el servicio AWS IAM, vamos a ver cómo proteger la cuenta raíz de AWS utilizando este servicio.

Proteger la cuenta raíz de AWS

Para proteger las credenciales de nuestro usuario raíz conviene activar la Multi-Factor Authentication (MFA).

La MFA es una característica de seguridad de AWS en la que los usuarios utilizan un segundo paso de autenticación, además de la contraseña, para acceder a sus cuentas de AWS. Este segundo paso de autenticación puede ser un token de seguridad físico, un mensaje de texto SMS o una aplicación de autenticación en un dispositivo móvil.

Para activar MFA en una cuenta de AWS, hay que seguir los siguientes pasos: 1. Inicia sesión en la cuenta AWS. 2. En la barra de búsqueda de la Consola de Administración de AWS, busca el servicio IAM.
3. En el panel de control de IAM, en recomendaciones de seguridad, aparecerá un aviso para proteger al usuario raíz con la MFA. Elige Agregar MFA y luego Activar MFA en la siguiente página.

  1. Elige alguna de las opciones MFA disponibles. Por ejemplo, Dispositivo MFA virtual, que permite utilizar una aplicación de autenticación móvil, como Google Authenticator o Authy, para generar códigos de verificación únicos. Una vez se configura el dispositivo MFA virtual en tu cuenta de AWS, hay que ingresar el código generado por la aplicación en el momento del inicio de sesión para completar la autenticación.
  2. Una vez seleccionado el tipo de dispositivo MFA, elige Continuar. La siguiente página proporciona los pasos necesarios para conectar el dispositivo a tu cuenta. Cuando esté todo listo, elige Asignar MFA.

Configurar usuarios adicionales

Como ya hemos visto, no es recomendable utilizar la cuenta raíz de manera habitual. La recomendación es crear usuarios adicionales con roles y funciones específicas para cada uno.

Para crear usuarios adicionales y asignarles diferentes permisos utilizaremos de nuevo el servicio IAM. Los usuarios creados a traves de este servicio se llaman usuarios IAM. Es importante resaltar de nuevo que estos usuarios no son cuentas independientes sino usuarios creados dentro de la cuenta raíz, con contraseñas propias.

Cuando se crean usuarios IAM en AWS, se pueden elegir dos tipos de acceso: * Acceso a la consola de administración de AWS: permite a los usuarios iniciar sesión en la consola de administración de AWS para realizar tareas y administrar recursos a través de la interfaz gráfica de usuario. * Acceso programático: permite a los usuarios realizar solicitudes a través de las API de AWS utilizando herramientas como AWS CLI, SDK de AWS y otras aplicaciones. Cuando se concede acceso programático, se generan unas claves de acceso que se utilizan para autenticar las solicitudes.

Antes de crear un nuevo usuario, es conveniente crear un grupo de usuarios. Los grupos de usuarios son una forma de dar permisos a varios usuarios al mismo tiempo, lo que puede facilitar la administración de los permisos. Por ejemplo, podríamos crear un grupo de usuarios llamado "Administradores" y darle los permisos de administrador típicos. Cualquier usuario que pertenezca a ese grupo tendrá automáticamente los permisos de administrador. Si un nuevo usuario se une y necesita permisos de administrador, simplemente se añade al grupo de usuarios "Administradores".

A modo de ejemplo, vamos a crear un grupo de usuarios con acceso de administrador: 1. Inicia sesión en una cuenta AWS. 2. Accede a la consola de IAM. 3. En el menú de navegación de la izquierda, selecciona "Grupos de usuarios" y luego haz clic en "Crear grupo". 4. Indica un nombre para el grupo de usuarios, por ejemplo, "Administradores". 5. Después, desplázate hacia abajo en la página y busca la sección "Adjuntar políticas de permisos". Allí, debes buscar "AdministratorAccess" y seleccionar la casilla junto a la política que tenga ese nombre. Finalmente, desplázate hacia abajo y haz clic en "Crear grupo" para completar el proceso.

  1. En la consola de IAM, selecciona "Usuarios" en la barra de navegación de la izquierda y haz clic en "Agregar usuarios".
  2. Indica un nombre de usuario y selecciona el tipo de acceso a AWS que desees otorgarle. Para este ejemplo, selecciona ambas opciones y haz clic en "Siguiente: Permisos". Observa que aparece seleccionada la opción "Requerir reestablecimiento de contraseña", que obligará al usuario a cambiar su contraseña al iniciar sesión.
  1. En la siguiente página, añade el usuario al grupo de administradores creado anteriormente y selecciona "Siguiente: Etiquetas". Las etiquetas sirven para identificar y categorizar los usuarios. Para el ejemplo, elige directamente "Siguiente: Revisar" sin agregar una etiqueta. Este paso redirige a otra página donde puedes revisar los valores que se han establecido para el usuario antes de crearlo.
  2. Selecciona "Crear usuario" para crear el nuevo usuario. Se mostrará una pantalla de confirmación. Antes de presionar el botón "Cerrar" es muy importante que te asegures de descargar el fichero .csv con el ID de la clave de acceso, la clave de acceso secreta y la contraseña generadas, ya que solo se puede acceder a ellas desde esta pantalla.

2. Modelos y servicios administrados de Machine Learning

AWS proporciona un conjunto de servicios administrados de aprendizaje automático que podemos integrar en nuestras aplicaciones sin tener que contar con una gran experiencia en aprendizaje automático. Algunos de los servicios más populares son los siguientes :

  • Visión artificial: Amazon Rekognition proporciona reconocimiento facial y de objetos para imágenes y videos. Amazon Textract extrae texto de las imágenes.
  • Voz: Amazon Polly convierte texto en voz y Amazon Transcribe convierte el audio hablado en texto.
  • Idioma: Amazon Comprehend utiliza procesamiento del lenguaje natural para encontrar información y relaciones en el texto, Amazon Translate traduce texto a diferentes idiomas.
  • Chatbots: Amazon Lex es es un servicio que ayuda a crear aplicaciones de conversación interactivas que utilizan voz o texto.
  • Previsión: Amazon Forecast utiliza el aprendizaje automático para combinar datos de serie temporal con variables adicionales para crear previsiones
  • Recomendaciones: Amazon Personalize es otro servicio de aprendizaje automático que puede ayudar a crear recomendaciones personalizadas individuales para los clientes.

Para obtener más información acerca de estos servicios, puedes consultar aquí.

No todos los servicios de AWS están disponibles en todas las regiones, y algunos servicios pueden tener características específicas de la región. Puedes obtener una lista de los servicios de AWS ofrecidos por región aquí. Finalmente, aquí tienes todos los elementos que ofrece la capa gratuita de AWS, más allá de los modelos anteriores.

2.1. Formas de acceso a los modelos

A la hora de interactuar con los modelos, deberemos ponerlos en marcha en el servidor (en el laboratorio adecuado, si estamos usando AWS Academy). Si estamos usando un laboratorio podemos utilizarlos desde el propio terminal del laboratorio; desde el cliente tenemos dos opciones:

  • Uso del terminal interactivo de AWS (AWS CLI)
  • Uso del SDK de Python, en nuestro caso, para utilizar las clases adecuadas.

2.1.1. Uso de AWS CLI

La AWS CLI (AWS Command Line Interface) es una herramienta de línea de comandos que nos permite interactuar con los servicios de AWS utilizando comandos en la terminal de nuestro sistema operativo. Resulta especialmente útil para realizar tareas repetitivas, scripting y automatización de procesos. Para poder usarla debemos instalarla y configurar nuestras credenciales de AWS.

Instalación AWS CLI

Antes de continuar, comprueba que no tengas ninguna versión antigua instalada: * Inicia una terminal o línea de comandos en tu sistema operativo. * Ejecuta el siguiente comando: aws --version

Si no tienes instalada ninguna versión previa, accede a este enlace donde encontrarás diferentes instaladores dependiendo del sistema operativo que utilices y sigue los pasos indicados.

Una vez instalada, utiliza el comando anterior para comprobar que el proceso se ha realizado con éxito.

Configuración de las credenciales de AWS:

Para interactuar con los servicios de AWS a través de la CLI, necesitamos proporcionar nuestras credenciales de AWS. Sigue los siguientes pasos para realizar la configuración:

  • Inicia una terminal o línea de comandos en tu sistema operativo.
  • Ejecuta el siguiente comando para iniciar la configuración de la CLI: aws configure
  • Se te pedirá que introduzcas tu Access Key ID y Secret Access Key. Estos son datos de seguridad que se generan al crear un usuario de IAM en tu cuenta de AWS, o en un laboratorio de AWS Academy. En nuestro caso, para obtenerlos, debes acceder a tu Learner Lab y, tras arrancar el laboratorio, pulsa en la opción AWS Details (1), y podrás ver los datos de acceso temporales al pulsar en Show (2) de la opción AWS CLI. Para consultar tu Access Key ID y tu Secret Access Key en una cuenta AWS, consulta aquí la documentación oficial.
  • Después de ingresar las credenciales, se te pedirá que indiques la región predeterminada. Indica el código us-east-1 para la región de EE.UU. Este. Es importante saber que en los Learner Lab solo se puede acceder a los servicios ofrecidos en las regiones us-east-1 y us-west-2.
  • A continuación, se te preguntará sobre el formato de salida predeterminado. Puedes seleccionar el formato que prefieras (text, json, etc) o dejarlo en blanco para utilizar el formato predeterminado.

Este proceso crea dos archivos de configuración de la AWS CLI en nuestro sistema, llamados credentials y config. Dependiendo del sistema operativo que estemos utilizando estos archivos se encontrarán en ubicaciones diferentes:

  • Linux o macOS: ~/.aws/credentials y ~/.aws/config
  • Windows: C:\Users\USERNAME\.aws\credentials y C:\Users\USERNAME\.aws\config

El archivo credentials almacena las credenciales de acceso a AWS, como Access Key ID, Secret Access Key y opcionalmente el Session Token. El Session Token es un tipo de credencial temporal, es decir, que tiene una duración limitada y, por tanto, debe renovarse cuando caduca. La necesidad de un Session Token depende de cómo se haya configurado la autenticación de la cuenta de AWS y de los requisitos de seguridad específicos que se hayan establecido. En nuestro caso, sí tenemos que utilizar un Session Token (veremos a continuación cómo se hace).

El formato del archivo credentials es el siguiente:

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
aws_session_token = YOUR_SESSION_TOKEN

Podemos crear múltiples perfiles en el archivo credentials si necesitamos configurar diferentes conjuntos de credenciales para diferentes cuentas o roles de IAM. Por ejemplo, podemos agregar un perfil adicional de la siguiente manera:

[role1]
aws_access_key_id = ANOTHER_ACCESS_KEY
aws_secret_access_key= ANOTHER_SECRET_ACCESS_KEY
aws_session_token= ANOTHER_SESSION_TOKEN

El archivo config almacena la configuración específica de AWS, como la región predeterminada, el formato de salida y otras opciones de configuración adicionales como configuración de proxy, configuración de cifrado, etc. El formato del archivo config es el siguiente:

[default]
region = YOUR_DEFAULT_REGION
output = json

Igual que con el archivo credentials, podemos tener múltiples perfiles en el archivo config si necesitamos especificar diferentes opciones de configuración para diferentes perfiles. Por ejemplo:

[role1]
region = ANOTHER_REGION
output = text

El comando aws configure, no solicita un Session Token de forma explícita, ya que está diseñado para configurar las credenciales básicas de Access Key ID y Secret Access Key. Para configurar un Session Token, hay que hacerlo manualmente después de configurar las credenciales básicas siguiendo los siguientes pasos:

  • Abre el archivo de configuración credentials
  • Añade la siguiente línea en el perfil predeterminado, debajo de las líneas de Access Key ID y Secret Access Key:
  • aws_session_token = YOUR_SESSION_TOKEN.
  • Reemplaza YOUR_SESSION_TOKEN con el valor de tu AWS Session Token.

Asegúrate de proporcionar el valor correcto y actualizado del Session Token para garantizar una autenticación adecuada.

Puedes verificar que la configuración se ha realizado correctamente ejecutando el siguiente comando en la terminal: aws sts get-caller-identity. La respuesta obtenida será similar a la siguiente:

{
   "UserId": "XXXXXXXXXXXXXXXXXXXXX:user0000000=May_Calle",
   "Account": "111111111111",
   "Arn": "arn:aws:sts::111111111111:assumed-role/voclabs/user0000000=May_Calle"
}

Donde: * UserId: es un identificador único para el usuario que está realizando la llamada a la API, y está asociado con el usuario de IAM o el rol de IAM que se esté utilizando. * Account: es el número de cuenta de AWS asociado con la identidad que realiza la llamada. * Arn (Amazon Resource Name): es un identificador único y global para el recurso de IAM. En este caso, el ARN representa la identidad que está realizando la llamada a la API.

Una vez configurada, podremos ejecutar comandos para administrar y automatizar recursos de AWS. Puedes consultar la documentación oficial de la AWS CLI para obtener más información sobre los comandos y opciones disponibles.

2.1.2. Uso del SDK de Python

AWS proporciona SDKs para varios lenguajes de programación populares, como Python, Java, .NET, JavaScript, Ruby, entre otros. Estos SDKs contienen bibliotecas y herramientas que facilitan la interacción con los servicios de AWS utilizando un lenguaje de programación.

En este curso vamos a utilizar el SDK de AWS para Python, llamado Boto3. Es la biblioteca oficial de AWS para interactuar con los servicios de AWS desde Python. Para instalarlo ejecuta el siguiente comando en un terminal:

pip install boto3. 

Una vez lo tengamos instalado, debemos incluir la librería en nuestros archivos Python. Además, para poder hacer uso de las APIs, debemos crear una instancia del objeto Session de Boto3 para indicar nuestras credenciales. Podemos realizar esto de varias formas:

  1. Credenciales en el código: podemos indicar nuestras credenciales directamente en el código utilizando variables. Sin embargo, esta opción no es la más recomendable ya que deja expuestas nuestras credenciales a cualquier persona.
import boto3

session = boto3.Session(
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_KEY',
    aws_session_token='YOUR_SESSION_TOKEN'
)
  1. Variables de entorno: podemos almacenar nuestras credenciales en las siguientes variables de entorno (es importante poner el nombre de las claves en mayúsculas): AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN:
  • En sistemas Unix/Linux/macOS:

    export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRETE_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

  • En sistemas Windows:

    $Env:AWS_ACCESS_KEY_ID = "YOUR_ACCESS_KEY"
    $Env:AWS_SECRET_ACCESS_KEY = "YOUR_SECRET_KEY"
    $Env:AWS_SESSION_TOKEN = "YOUR_SESSION_TOKEN"
    

Una vez establecidas las variables de entorno, accederemos a ellas desde Python utilizando la variable global os.environ que proporciona acceso al entorno del sistema operativo en el que se está ejecutando el programa. se trata de un diccionario que contiene las variables de entorno como pares clave-valor.

import boto3
import os

session = boto3.Session(
    aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
    aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
    aws_session_token=os.environ['AWS_SESSION_TOKEN']
)
  1. Perfiles de AWS CLI: podemos utilizar los archivos de configuración utilizados por perfiles de AWS CLI para almacenar nuestras credenciales. Por defecto, Boto3 busca el archivo credentials en el directorio ~/.aws/ (en Linux y macOS) o C:\Users\USERNAME\.aws\ (en Windows), visto en el apartado anterior.
import boto3

session = boto3.Session(profile_name='default')

Después de crear la sesión, podemos utilizarla para interactuar con los servicios de AWS, como Amazon Comprehend, Amazon S3, Amazon EC2, etc. Vamos a ver un ejemplo en la siguiente sección.

2.2. Modelos de visión: Rekognition

Explicaremos a continuación qué modelos tenemos disponibles en AWS para análisis o tratamiento de imágenes. En concreto hablaremos del modelo Amazon Rekognition, un servicio que simplifica la incorporación del análisis de imágenes y vídeos en nuestras aplicaciones. Con solo proporcionar una imagen o un video, el servicio puede realizar diversas tareas de reconocimiento, como identificar objetos, personas, texto, escenas y actividades. Además, es capaz de detectar contenido inapropiado tanto en imágenes como en videos.

Una de las funcionalidades destacadas de Amazon Rekognition es su capacidad para realizar reconocimiento y análisis facial. Esto significa que puede identificar características faciales, emociones y atributos de las personas presentes en las imágenes o videos. Además, es posible crear etiquetas personalizadas, lo que permite crear un modelo de machine learning que encuentre objetos, personas, texto, etc. específicos de un problema concreto.

Aquí puedes consultar la documentación oficial del servicio.

Veremos a continuación un ejemplo que carga una imagen y la envía a Rekognition para extraer información sobre la edad y género de las personas que detecte. Para ello los pasos necesarios serán:

  • Dejar en marcha el laboratorio Learner Lab que tengamos asignado, ya que nuestro cliente conectará con el servicio disponible en dicho laboratorio.
  • Importar la librería boto3
  • Crear un cliente de AWS Rekognition usando nuestras credenciales
  • Enviarle la imagen a analizar, usando el método detect_faces y pasándole como parámetros la imagen a analizar y los parámetros que queremos que nos devuelva: DEFAULT (atributos por defecto), ALL (toda la información), EMOTIONS, AGE_RANGE, GENDER... (consultar el enlace anterior de documentación para más información).
  • Recoger la respuesta

Aquí tenemos un ejemplo de código cliente:

# Ejemplo de uso de AWS Rekognition para identificar géneros y edades

import boto3

session = boto3.Session(
    aws_access_key_id='...',
    aws_secret_access_key='...',
    aws_session_token='...',
    region_name='us-east-1'
)

# Creación del cliente de AWS Comprehend utilizando la sesión
rekognition_client = session.client('rekognition')

# Carga de la imagen
with open("prueba.jpg", "rb") as img:
    imagen = img.read()

# Análisis de imagen
response = rekognition_client.detect_faces(
    Image = {
        "Bytes": imagen,
    },
    Attributes = ['AGE_RANGE','GENDER']
)

for persona in response['FaceDetails']:
    print("Identificada persona:")
    print("Edad mínima:", persona['AgeRange']['Low'])
    print("Edad máxima:", persona['AgeRange']['High'])
    print("Género:", persona['Gender']['Value'])

Nota

Las credenciales de acceso las debes sustituir por las tuyas propias. Hemos explicado antes, aquí, cómo obtenerlas del laboratorio de AWS que tengas en marcha.

Aquí tienes un par de imágenes de prueba con caras que puedes utilizar en este ejemplo.

Solución

Aquí tienes una explicación en vídeo de cómo poner en marcha el laboratorio y probar este ejemplo

2.3. Otros modelos disponibles

Además de AWS Rekognition, aquí listamos otros modelos y servicios de machine/deep learning disponibles para probar y utilizar en los laboratorios de AWS Academy, junto con la documentación oficial de cada uno:

  • Comprehend: procesamiento de lenguaje natural para análisis de sentimiento, extracción de entidades o palabras clave, deteccion de temas...
  • Polly: convierte texto en voz en varios idiomas y acentos.
  • Transcribe: convierte audio en texto.
  • Textract: extrae texto de documentos o imágenes escaneadas.
  • Personalize: sistemas de recomendación personalizados
  • Translate: servicios de traducción
  • Lex: creación de chatbots
  • SageMaker: es una plataforma completa de desarrollo y entrenamiento de modelos de ML/DL. Incluye cuadernos Jupyter y soporte para librerías como TensorFlow o PyTorch.