0% encontró este documento útil (0 votos)
44 vistas11 páginas

Módulo 2 - AWS

módulo 2 del curso de AWS Amazon web service traducido al español.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas11 páginas

Módulo 2 - AWS

módulo 2 del curso de AWS Amazon web service traducido al español.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 2: Introducción al Desarrollo en AWS

AWS Academy Cloud Developing

Sección 1: Introducción
Requisito del negocio del café
Sofía quiere comenzar a desarrollar una presencia web para el café. Antes de empezar a
programar, quiere decidir qué entorno de desarrollo usar para crear y ejecutar su código.
Sofía tiene conocimientos de desarrollo en Python y está aprendiendo más sobre cómo crear
soluciones en la nube. Antes de comenzar a escribir código, quiere decidir qué entorno de
desarrollo utilizar para programar y ejecutar sus aplicaciones.

Herramientas de desarrollo en la nube como parte de la creación de una aplicación en la nube


El diagrama en esta diapositiva da una visión general de la aplicación que se construirá en los
laboratorios de este curso. Las secciones resaltadas son relevantes para este módulo.
Como se destaca en el diagrama, puedes usar la AWS Management Console para iniciar AWS
CloudShell. Con CloudShell, puedes utilizar la AWS Command Line Interface (AWS CLI) o el AWS
SDK para Python (Boto3) para interactuar con los recursos de AWS (por ejemplo, un bucket de S3).

Sección 2: Ciclo de vida del desarrollo de sistemas (SDLC)


El desafío de la entrega de software
Las empresas deben cerrar la brecha entre la estabilidad de sus operaciones y el rápido desarrollo
de nuevas funciones.
El software debe entregarse con tolerancia cero a las interrupciones, de forma:

 Rápida
 Segura
 Confiable

El desarrollo y la entrega de software son un desafío. Los desarrolladores deben construir


soluciones de forma rápida, segura, confiable y escalable para responder a la demanda de los
clientes. Todo esto debe lograrse asegurando la integridad y seguridad del sistema. Por eso se
necesitan metodologías que equilibren la estabilidad operativa con el desarrollo ágil de
funciones.

El SDLC (Systems Development Lifecycle) describe las fases de un proyecto de desarrollo de


sistemas de información, desde el estudio de factibilidad inicial hasta el mantenimiento de la
aplicación finalizada.
En general, una metodología SDLC sigue estos pasos: planificar, definir, diseñar, desarrollar,
implementar y mantener.

Este curso se enfoca principalmente en la fase de Desarrollo, aunque también se abordará


brevemente la fase de Implementación (Deploy).
En la fase de Desarrollo, se crea el nuevo sistema, se obtienen e instalan los nuevos componentes
y programas, se capacita a los usuarios del sistema y se prueban todos los aspectos de
rendimiento. Si es necesario, se corrigen errores y se realizan ajustes para mejorar el desempeño.
Metodologías de SDLC

Existen diferentes metodologías para el SDLC. Dos de las más comunes son:

 Metodología Waterfall (o tradicional):


Es el enfoque clásico y secuencial del desarrollo. Cada fase debe completarse antes de que
comience la siguiente. Bajo este modelo, los equipos de producto pueden tardar meses en
recibir retroalimentación de los clientes, y muchas veces no ocurre hasta la comercialización
del producto.
 Metodología Ágil:
Es un marco conceptual más reciente que apoya el desarrollo iterativo y rápido. Bajo este
enfoque, los equipos lanzan sus avances lo antes posible para recibir retroalimentación de
los clientes y mejorar la siguiente versión.
Conceptos como producto mínimo viable (MVP), release candidate, velocidad, entre otros,
provienen de esta metodología.
Dentro del ágil existen diferentes métodos, como Crystal Methods, DSDM (Dynamic
Systems Development Method) y Scrum.
El desarrollo ágil se organiza en sprints de 1 a 4 semanas. Los requisitos pueden cambiar
con frecuencia, y desarrollar en AWS facilita adaptarse a esos cambios.

Fases principales del desarrollo de software

Las cinco fases principales del desarrollo de software son: Codificar, Compilar, Probar,
Implementar y Mantener.

Las fases de Codificar, Compilar y Probar forman parte de la etapa de Desarrollo del SDLC. Cada
fase incrementa la confianza en que el código funcionará como se espera al liberarse a los clientes.

 Fase de Codificación (Code):


Los desarrolladores escriben el código fuente de la aplicación y lo almacenan en un
repositorio (por ejemplo, Git). Muchos equipos realizan revisiones de código para asegurar
la calidad antes de enviarlo a producción. Algunos utilizan la programación en parejas para
dar retroalimentación en tiempo real.
 Fase de Compilación (Build):
El código fuente se compila y se prueban automáticamente aspectos de calidad sin
necesidad de servidores. Estas pruebas se inician desde un test harness. Algunos equipos
incluyen métricas de código y verificaciones de estilo.
 Fase de Pruebas (Test):
Se realizan pruebas adicionales que requieren un entorno similar a producción, como
pruebas de integración, pruebas de carga, pruebas de interfaz de usuario (UI) y pruebas de
penetración. Una práctica común es que los ingenieros desplieguen en un entorno de
desarrollo personal para verificar las pruebas automáticas, y luego en entornos de
preproducción para validar la integración con otros sistemas.
 Fase de Implementación (Deploy):
El código se despliega en producción. Aunque existen diferentes estrategias de despliegue,
los objetivos principales son reducir el riesgo al liberar cambios nuevos y minimizar el
impacto si se libera un cambio defectuoso.
 Fase de Mantenimiento (Maintain):
Una vez en producción, el código debe ser monitoreado para asegurar que funcione como
se espera.
 Cada uno de estos pasos puede automatizarse, incluso sin que todo el proceso de
liberación esté completamente automatizado.

Sección 3: Pasos para comenzar a desarrollar en AWS


Cómo comenzar a desarrollar en AWS

Accesibilidad – Pasos iniciales:

1. Crear una cuenta de AWS.


2. Configurar permisos de AWS con IAM.
3. Instalar el entorno de desarrollo con los toolkits de AWS IDE.
4. Interactuar con los servicios de AWS usando los SDKs de AWS y la AWS CLI.

Antes de empezar a desarrollar aplicaciones en AWS, es necesario realizar algunos pasos clave:

 Crear una cuenta de AWS y un usuario de AWS Identity and Access Management (IAM).
Esto incluye configurar permisos para acceder a servicios y operaciones específicas.
 Instalar el entorno de desarrollo para el lenguaje de programación elegido.
 Instalar el AWS SDK para ese lenguaje o la AWS Command Line Interface (AWS CLI) para
interactuar con los servicios de AWS.

Esta sección explica cada servicio de AWS involucrado en la configuración de permisos, la


instalación del entorno de desarrollo y la interacción con los servicios de AWS.
(Los permisos se detallarán en otro módulo de este curso).

Pasos para crear una cuenta de AWS

1. Abrir la página principal de AWS en http://aws.amazon.com.


2. Seleccionar Create an AWS Account.
o Nota: Si recientemente iniciaste sesión en AWS con el mismo navegador, selecciona
Sign in to the Console.
o Si la opción Create a new AWS account no está disponible, elige Sign in to a
different account y luego Create a new AWS account.
3. Ingresar la información solicitada y seleccionar Continue.
4. Indicar si la cuenta es personal o profesional. Para fines de aprendizaje, seleccionar
personal.
o Nota: Ambas cuentas (personal o profesional) ofrecen las mismas características.
5. Ingresar la información personal o empresarial para continuar.
o Si se crea una cuenta profesional, ingresar el número de teléfono de la empresa y un
correo electrónico organizacional. Configurarla con datos personales puede disminuir
la seguridad de la cuenta.
o Asegurarse de poder acceder al correo electrónico usado, ya que se enviará allí el
mensaje de confirmación de creación de la cuenta.
6. Leer y aceptar el AWS Customer Agreement en https://aws.amazon.com/agreement/.
7. Finalmente, seleccionar Create Account and Continue.
Comenzando: Permisos

Al crear una cuenta de AWS, se comienza con una identidad de inicio de sesión única llamada
usuario raíz (root user), que tiene acceso completo a todos los servicios y recursos de la cuenta.
Este usuario raíz se accede con el correo electrónico y la contraseña utilizados al crear la cuenta.

Mejor práctica: evitar usar el usuario raíz salvo que sea estrictamente necesario. Para aumentar la
seguridad de la cuenta, se recomienda crear un usuario IAM con credenciales de acceso
específicas.

IAM (Identity and Access Management) es el servicio que permite controlar de manera segura el
acceso a los recursos de AWS.
Con IAM se controla:

 Quién puede usar los recursos de AWS (autenticación).


 Qué recursos pueden usar y de qué forma (autorización).

IAM permite:

 Crear y administrar usuarios, grupos, roles y políticas de acceso.


 Implementar federación de identidad entre un directorio corporativo y los servicios de
AWS.

Ejemplo de IAM

Supongamos que eres responsable de los usuarios de una organización.

 Podrías usar IAM para crear una cuenta de usuario para cada desarrollador.
 Cada usuario tendría una cuenta de IAM para acceder a los servicios de AWS.
 Luego, se podría crear un rol de desarrollador y asignarlo a las cuentas de los
desarrolladores.
 Ese rol contendría políticas que definan qué servicios y operaciones puede usar.

De esta forma, los desarrolladores asumen el rol para obtener los permisos necesarios. Si los
permisos cambian, basta con actualizar la política IAM asociada al rol y todos los desarrolladores
obtendrán automáticamente los nuevos permisos.

Aprenderás más sobre IAM en el próximo módulo.

Comenzando: Entorno de desarrollo

Al configurar tu entorno de desarrollo, debes instalar:

 El lenguaje de programación elegido.


 Un entorno de desarrollo integrado (IDE).

AWS ofrece varios IDEs específicos por lenguaje para escribir, ejecutar, depurar y desplegar
aplicaciones.
La instalación del entorno de desarrollo dependerá de las instrucciones de los proveedores de la
tecnología y del IDE elegido.

Comenzando: Servicios de AWS

Puedes interactuar con AWS de dos maneras:

 A través de la AWS Management Console.


 De forma programática, utilizando:
o AWS CLI (Command Line Interface)
o AWS SDK para el lenguaje soportado
o APIs de los servicios de AWS

Interactuar con los servicios de AWS

Todos los servicios de AWS se gestionan a través de una API común con estilo REST. AWS
proporciona una API para cada uno de sus servicios. Puedes interactuar con estas APIs para
acceder a tus recursos de AWS de cuatro maneras:

 Directamente: realizando llamadas directas a las APIs.


 AWS Management Console: implementación de llamadas a la API a través de una consola
web, con una interfaz gráfica rica que cubre la mayoría de las funciones de AWS.
o Nota: a veces, las funciones nuevas no están disponibles inmediatamente en la
consola al momento de su lanzamiento.
 AWS Command Line Interface (AWS CLI): herramienta de código abierto que permite
interactuar con los servicios de AWS mediante comandos en la línea de comandos.
 AWS SDKs (Software Development Kits): paquetes que permiten acceder a los servicios y
recursos de AWS en distintos lenguajes de programación populares.

La AWS CLI y los SDKs ofrecen flexibilidad: permiten crear tus propias herramientas y personalizar
características de AWS.
Por ejemplo, podrías crear scripts o aplicaciones que lancen instancias de EC2 con un conjunto
específico de AMIs (Amazon Machine Images), agreguen un grupo estándar de etiquetas, y más.

Estos modos de acceso pueden usarse de forma intercambiable.

 Ejemplo: puedes crear una instancia de EC2 con una llamada a un SDK, consultar su
configuración con un comando de AWS CLI (aws ec2 describe-instances) y, finalmente,
terminar la instancia desde la consola.
 Nota: puede tomar unos segundos o minutos para que los cambios hechos vía CLI o API se
reflejen en la consola.

Herramientas de línea de comandos


Al trabajar en la línea de comandos, puedes usar varias herramientas para interactuar con los
servicios de AWS:

 AWS Command Line Interface (AWS CLI):


Herramienta de código abierto que permite interactuar con los servicios de AWS desde la
terminal, con una funcionalidad equivalente a la consola de administración.
Más información: AWS CLI.
 AWS Tools for PowerShell:
Incluye AWS Tools for Windows PowerShell y AWS Tools for PowerShell Core.
Son módulos de PowerShell basados en el SDK para .NET. Permiten automatizar
operaciones en recursos de AWS directamente desde PowerShell.
Más información: AWS Tools for PowerShell User Guide.
 AWS Serverless Application Model (AWS SAM) Local:
Herramienta de la AWS CLI para desarrollo y pruebas locales de aplicaciones serverless.
Más información: Repositorio en GitHub de AWS SAM CLI.
 AWS Amplify:
Permite crear, configurar e implementar aplicaciones móviles escalables respaldadas por
AWS.
Administra el backend móvil y ofrece un marco sencillo para integrarlo con los frontends
(iOS, Android, Web, React Native).
Además, automatiza el proceso de lanzamiento tanto del frontend como del backend,
acelerando la entrega de nuevas funciones.
Más información: AWS Amplify.

AWS CLI: Formato de comandos en la línea de comandos

Las llamadas hechas desde la AWS CLI siguen este formato:

1. aws → siempre se inicia con esta cadena, que invoca a la AWS CLI.
2. Comando de servicio → el servicio principal de AWS al que se llama (por ejemplo, Amazon
EC2).
o Para ver los servicios soportados: Servicios disponibles.
3. Subcomando de operación → la acción que se quiere ejecutar en ese servicio.
o Ejemplo: run-instances para crear una nueva instancia EC2.
4. Parámetros → argumentos necesarios para la operación, precedidos por --.
o Ejemplo: para crear una instancia EC2, se debe especificar el ID de la AMI y otros
parámetros.
5. Opciones → ajustes adicionales para la operación.
o Ejemplo: --query para limitar la respuesta y mostrar solo el ID de la nueva instancia.

AWS CloudShell permite acceso a la CLI desde un navegador web. Características:

 Disponible en la AWS Management Console.


 Sesión preautenticada.
 Incluye AWS CLI, SDKs y otras herramientas preinstaladas.
 Sin costo, con 1 GB de almacenamiento por Región.
 Las credenciales se heredan de la Management Console, sin necesidad de manejar archivos
de claves.
 Corre en una instancia de Amazon Linux 2 totalmente gestionada, siempre actualizada.
 Ofrece almacenamiento persistente por Región para scripts, archivos, configuraciones y
herramientas personalizadas.
 Solo se paga por los recursos que se crean y ejecutan en AWS.
Sección 4: Fundamentos de trabajo con los AWS SDKs
AWS SDK para:

 C++
 Go
 Java
 JavaScript en el navegador
 JavaScript en Node.js
 .NET y Xamarin
 PHP
 Python (Boto3)
 Ruby

AWS Mobile SDK para:

 Android
 iOS
 .NET y Xamarin
 Unity

AWS IoT Device SDK para:

 Arduino Yún
 C++
 Embedded C
 Java
 JavaScript
 Python

Los AWS SDKs están disponibles en varios lenguajes de programación y plataformas tecnológicas.
Puedes usarlos para llamar a los servicios de AWS desde el código de tu aplicación.

Por ejemplo: si desarrollas una aplicación para compartir música que necesita cargar archivos de
un usuario a un bucket de S3, tu aplicación podría usar un AWS SDK para subir los archivos al
bucket de forma programática.

Desarrollo de aplicaciones con AWS SDKs

Cuando desarrollas aplicaciones en AWS, puedes usar los SDKs para realizar llamadas API a los
servicios de AWS y recibir respuestas de ellos. Proceso:

1. Escribes una aplicación utilizando un AWS SDK en tu lenguaje preferido.


2. Cada SDK proporciona una o más APIs para trabajar con los servicios de AWS.
3. El SDK construye una solicitud HTTP(S) para usar con la API del servicio y la envía al
endpoint del servicio.
4. El servicio procesa la solicitud y envía una respuesta.
5. El SDK procesa la respuesta y la devuelve a tu aplicación.
Service Client API

 Tiene un método por cada operación del servicio.


 Contiene objetos para los datos de la solicitud y la respuesta.

Ejemplo en Python:

# Listar objetos en un bucket usando el client API


# Tipo de retorno: dict / llamadas API adicionales necesarias para obtener objetos
def listClient():
s3client = boto3.client('s3')
response = s3client.list_objects_v2(Bucket='DOC-EXAMPLE-BUCKET')
for content in response['Contents']:
print(content['Key'], content['LastModified'])
return

Los AWS SDKs ofrecen dos niveles de APIs para llamar a los servicios de AWS:

1. Service client APIs (bajo nivel)


2. Resource APIs (alto nivel)

En las client APIs, cada cliente expone un mapeo directo de la API del servicio. Esto permite un
control total sobre el comportamiento y rendimiento de las llamadas.

Resource API

 Tiene una clase por cada recurso conceptual.


 Define recursos de servicio e individuales.

Ejemplo en Python:

# Listar objetos en un bucket usando el Resource API


# Los recursos representan una interfaz orientada a objetos para AWS
def listResource():
s3resource = boto3.resource('s3')
bucket = s3resource.Bucket('DOC-EXAMPLE-BUCKET')
for obj in bucket.objects.all():
print(obj.key, obj.last_modified)
return

Los resource APIs proporcionan una abstracción de nivel más alto que los client APIs. Representan
recursos conceptuales con clases y métodos que permiten recuperar datos, invocar acciones y
acceder a recursos relacionados.

Especificar Regiones de AWS

Ejemplo en Python:

dynamodb_client = boto3.client('dynamodb', region_name='us-east-1')


También puedes definir la región por defecto en el archivo de configuración:

~/.aws/config
[default]
region=us-west-2
output=json

La infraestructura de AWS está organizada en Regiones y Zonas de disponibilidad. Cada SDK


maneja la definición de región de manera distinta.

Manejo de Excepciones

Ejemplo de error devuelto por un servicio:

<Error>
<Code>NoSuchKey</Code>
<Message>The resource you requested does not exist</Message>
<Resource>/DOC-EXAMPLE-BUCKET/myfoto.jpg</Resource>
<RequestId>4442587FB7D0A2F9</RequestId>
</Error>

Tipos de error y qué hacer:

 Errores 400 (cliente): tu aplicación debe manejar el error. Ejemplo: S3 devuelve 404 si el
bucket no existe.
 Errores 500 (servidor): reintentar la operación. Los SDKs aplican reintentos automáticos con
exponential backoff.

Estructura de una respuesta de error:

 Error: contenedor general.


 Code: código único que identifica la condición de error.
 Message: descripción genérica en inglés para humanos.
 Resource: recurso involucrado.
 RequestID: ID de la solicitud asociada.

Excepciones según SDK

 SDK para Java:


o AmazonServiceException (y subclases): la solicitud llegó al servicio, pero este devolvió
un error. Incluye código HTTP, código de error de AWS, mensaje y request ID.
o AmazonClientException: error en el cliente Java (ejemplo: sin conexión de red).
o IllegalArgumentException: argumentos inválidos al llamar una operación.
 SDK para .NET y Xamarin:
o Amazon.Runtime.AmazonServiceException
o Amazon.Runtime.AmazonClientException
 SDK para Python:
o botocore.exceptions.ClientError
 SDK para JavaScript:
o Cada método puede aceptar un callback:

function(error, data) { ... }

Sección 5: Introducción a Amazon Q Developer


Amazon Q Developer

 Asistente de programación impulsado por IA generativa


 Diseñado para desarrolladores y profesionales de TI
 Genera código y te ayuda a entender, construir, extender y operar aplicaciones en AWS
 Escanea código en busca de vulnerabilidades de seguridad
 Seguro y privado por diseño

Para aliviar algunos de los desafíos de escribir código, AWS introdujo Amazon Q Developer, un
asistente de programación que puede ser utilizado incluso por personas sin mucha experiencia.

Está entrenado con años de ejemplos y documentación de alta calidad de AWS, y también puede
entrenarse con el código y los sistemas de tu organización.

Con Amazon Q Developer puedes:

 Conversar sobre tu código.


 Obtener autocompletado en línea mientras programas.
 Generar nuevo código.
 Escanear tu código para detectar vulnerabilidades de seguridad.
 Realizar mejoras y actualizaciones (por ejemplo, cambios de lenguaje, depuración y
optimización).

Incluso puedes describir en lenguaje natural la aplicación que quieres crear, y Amazon Q
Developer generará y sugerirá el código correspondiente.

Su enfoque no-code puede ser especialmente útil para:

 Crear aplicaciones web simples.


 Automatizar procesos de negocio.
 Construir prototipos o pruebas de concepto.

Más información en: Getting Started del AWS Amazon Q Developer User Guide, disponible en la
página de recursos de tu curso en línea.

Amazon Q Developer y el ciclo de vida del software (SDLC)

Amazon Q Developer brinda soporte en todas las fases del Software Development Lifecycle
(SDLC):
Planificación

 Permite hacer preguntas y obtener orientación contextual y con referencias.


 Explica código mediante interacción conversacional.
 En la AWS Management Console, puedes consultar sobre buenas prácticas, recibir
recomendaciones, optimizar instancias de Amazon EC2 y aprender sobre el Well-
Architected Framework.
 En el IDE, ayuda a comprender la base de código y ponerse al día en proyectos.

Creación

 Ofrece recomendaciones de código en línea para múltiples lenguajes.


 Permite implementar funcionalidades a partir de comentarios o indicaciones en el código.
 Posibilita chatear directamente dentro de tu entorno de desarrollo integrado (IDE) o desde
la línea de comandos (CLI).
 Usa lenguaje natural para generar nuevas funciones sin salir del IDE.

Pruebas y seguridad

 Genera pruebas unitarias automáticamente.


 Escanea el código de tu proyecto en busca de vulnerabilidades y brinda sugerencias de
remediación.
 Ayuda a detectar y corregir problemas de seguridad temprano en el ciclo de desarrollo.

Operación

 Ayuda a depurar errores en servicios como AWS Lambda, Amazon EC2 y Amazon ECS.
 Permite analizar la conectividad de la VPC mediante el VPC Reachability Analyzer.
 Brinda recomendaciones para optimizar y mejorar la depuración.

Mantenimiento y modernización

 El Amazon Q Developer Agent for Code Transformation ayuda a mantener y modernizar


proyectos, actualizándolos a versiones más recientes de los lenguajes de programación.

También podría gustarte