Está en la página 1de 42

¿Qué es AWS?

Informática en la nube y en las instalaciones


Antes de la nube, las empresas y las organizaciones alojaban y mantenían hardware, como equipos de
informática, de almacenamiento y de redes en sus propios centros de datos. A menudo, asignaban
departamentos de infraestructura completos para que se encargaran de los centros de datos, lo que dio lugar
a costosas operaciones que impedían el uso de algunas cargas de trabajo y la experimentación.

A medida que se generalizó el uso de Internet, aumentó la demanda de equipos de informática, de


almacenamiento y de redes. Para algunas empresas y organizaciones, el costo de mantener una gran
presencia física era insostenible. Para resolver este problema, surgió la informática en la nube.

La informática en la nube es la entrega bajo demanda de los recursos de TI a través de Internet con precio de
pago por uso principalmente. Con la informática en la nube, las empresas no tienen que administrar ni
mantener su propio hardware y centros de datos. En cambio, las empresas como AWS poseen y mantienen
los centros de datos y proporcionan tecnologías y servicios asociados a las empresas y los usuarios a través
de Internet.

Para ayudar a diferenciar entre las cargas de trabajo que se ejecutan en las instalaciones y en la nube,
considere una situación en la que los desarrolladores deben implementar una nueva característica de
aplicación. Antes de la implementación, el equipo quiere probar la característica en un entorno de control de
calidad (QA) independiente que tenga las mismas configuraciones que la producción. En una solución en las
instalaciones, un entorno adicional requiere que compre e instale hardware, conecte el cableado necesario,
aprovisione la alimentación, instale los sistemas operativos, etc. Estas tareas pueden llevar mucho tiempo y
ser costosas. A su vez, aumenta el plazo de puesta en producción de la nueva característica mientras los
desarrolladores esperan el entorno de QA. Por el contrario, si ejecuta la aplicación en la nube, puede replicar
todo un entorno de producción tantas veces como sea necesario, en cuestión de minutos o incluso segundos.
En lugar de instalar hardware físicamente y conectar el cableado, la solución se administra a través de
Internet.

Con el uso de la informática en la nube, se ahorra tiempo durante la configuración y se eliminan las cargas
pesadas sin diferenciar. Si observa cualquier aplicación, verá que algunos de sus aspectos son muy
importantes para el negocio, como el código. Sin embargo, otros aspectos no son diferentes de cualquier otra
aplicación que pueda crear; por ejemplo, el cómputo en el que se ejecuta el código. Al eliminar las tareas
comunes repetitivas que no diferencian a su negocio, como la instalación de máquinas virtuales (VM) o el
almacenamiento de las copias de seguridad, puede centrarse en lo que es estratégicamente exclusivo de su
empresa y dejar que AWS se encargue de las tareas que consumen mucho tiempo y no lo distinguen de los
competidores. Ahí es donde actúa AWS.

AWS proporciona servicios de informática en la nube. Los recursos de TI mencionados en la definición de


informática en la nube son servicios de AWS. En la aplicación de directorio corporativo de este curso,
utilizará los servicios de AWS para diseñar una infraestructura escalable, de alta disponibilidad y rentable a
fin de alojar la aplicación de directorio corporativo. De esta forma, puede difundir rápidamente la aplicación
en el mundo, sin administrar hardware físico de alta resistencia.
Las seis ventajas de la informática en la nube
Pagar por uso

En lugar de invertir en centros de datos y hardware antes de saber cómo los va a utilizar, solo paga cuando
utiliza los recursos informáticos y únicamente por la cantidad que utiliza.

Beneficiarse de las grandes economías de escala


Mediante el uso de la informática en la nube, puede obtener un costo más bajo que el que tendría por su
propia cuenta. En la nube se suman los consumos realizados por cientos de miles de clientes. De esta forma,
AWS puede alcanzar mayores economías de escala, lo cual se traduce en precios de pago por uso más bajos.

Dejar de hacer suposiciones sobre la capacidad

Elimine las suposiciones sobre las necesidades de capacidad de la infraestructura. Cuando toma una decisión
relacionada con la capacidad antes de implementar una aplicación, a menudo termina desaprovechando
recursos inactivos costosos o tiene que lidiar con la capacidad limitada. Con la informática en la nube, estos
problemas desaparecen. Puede acceder a la capacidad necesaria y escalar o reducir verticalmente según sea
necesario, y avisar con algunos minutos de antelación.

Incrementar la velocidad y la agilidad

Los recursos de TI están a solo un clic, lo que significa que reduce el tiempo necesario para poner los
recursos a disposición de los desarrolladores de semanas a minutos. El resultado es un aumento radical de la
agilidad en la organización, ya que se reducen notablemente el tiempo y los costos necesarios para la
experimentación y el desarrollo.

Ahorrar costos

Las empresas pueden centrarse en proyectos que diferencian su negocio en lugar de mantener centros de
datos. La informática en la nube le permite concentrarse en sus propios clientes, en lugar de centrarse en las
cargas pesadas de la instalación en bastidores, las pilas y la alimentación de la infraestructura física. Esto se
conoce a menudo como “cargas pesadas sin diferenciar”.

Alcanzar escala mundial en minutos

Las aplicaciones se pueden implementar en varias regiones del mundo con apenas unos clics. Es decir que
puede ofrecer a sus clientes una menor latencia y una mejor experiencia con un costo mínimo.

Recursos
 Sitio externo, AWS: ¿Qué es la informática en la nube?(opens in a new tab)
 Sitio externo, AWS: Tipos de informática en la nube(opens in a new tab)
 Sitio externo, AWS: Informática en la nube con AWS(opens in a new tab)
 Sitio externo, AWS: Información general sobre Amazon Web Services

La infraestructura, como los centros de datos y la conectividad de redes, continua existiendo como la base de
todas las aplicaciones en la nube. En AWS, esta infraestructura física constituye la infraestructura global de
AWS, en forma de regiones y zonas de disponibilidad.
Regiones

Las regiones son ubicaciones geográficas de todo el mundo donde AWS aloja sus centros de datos. Las
regiones de AWS llevan el nombre de la ubicación donde se encuentran. Por ejemplo, en Estados Unidos, la
región del Norte de Virginia se denomina “región Norte de Virginia”, y la región de Oregón se denomina
“región de Oregón”. AWS tiene regiones en Asia Pacífico, Canadá, Europa, Oriente Medio y Sudamérica, y
seguimos expandiéndonos para satisfacer las necesidades de los clientes.
Cada región de AWS está asociada a un nombre geográfico y a un código de región.

Estos son ejemplos de códigos de región:

 us-east-1: la primera región creada


en el área oriental de EE. UU. El
nombre geográfico de esta región es
Norte de Virginia.
 ap-northeast-1: la primera región
creada en el área Nordeste de Asia
Pacífico. El nombre geográfico de
esta región es Tokio.

Las regiones de AWS son independientes unas de otras.


Los datos no se replican de una región a otra sin el
consentimiento y la autorización explícitos del cliente.

Elección de la región de AWS correcta

Cuando decida qué región de AWS alojará sus


aplicaciones y cargas de trabajo, tenga en cuenta cuatro
aspectos principales: la latencia, los precios, la
disponibilidad del servicio y la conformidad.
LATENCIAPRECIODISPONIBILIDAD DEL
SERVICIOCONFORMIDAD DE LOS DATOS
Si la aplicación es sensible a la latencia (el retraso entre
una solicitud de datos y la respuesta), elija una región
cercana a la base de usuarios. Esto ayuda a evitar largos
tiempos de espera para sus clientes. Las aplicaciones
sincrónicas, como los juegos, la telefonía, los WebSockets e Internet de las cosas (IoT), se ven afectadas
significativamente por la alta latencia. Las cargas de trabajo asíncronas, como las aplicaciones de comercio
electrónico, también pueden sufrir retrasos en la conectividad de los usuarios.

Zonas de disponibilidad

Dentro de cada región hay un clúster de zonas de disponibilidad (AZ). Una AZ consiste en uno o más
centros de datos con alimentación, redes y conectividad redundantes. Estos centros de datos operan en
instalaciones discretas de ubicaciones no reveladas. Se conectan mediante enlaces redundantes de alta
velocidad y baja latencia.
Las AZ también tienen un nombre de código. Dado que se encuentran en regiones, se pueden abordar al
añadir una letra al final del nombre del código de la región. Por ejemplo:

 us-east-1a: una AZ en us-east-1 (región Norte de Virginia)


 sa-east-1b: una AZ en sa-east-1 (región São Paulo)

Por lo tanto, si ve que existe un recurso en us-east-1c, puede inferir que dicho recurso se encuentra en la AZ
de la región us-east-1.

Alcance de los servicios de AWS


En función del servicio de AWS que utilice, los recursos se implementan a nivel de la AZ, de la región o
global. Cada servicio es diferente, por lo que debe comprender cómo el alcance de un servicio puede afectar
la arquitectura de la aplicación.

Cuando opera un servicio de alcance regional, solo tiene que seleccionar la región que quiere utilizar. Si no
se le pide que especifique una AZ individual en la que implementar el servicio, este es un indicador de que
el servicio funciona a nivel de alcance regional. En los servicios de alcance regional, AWS realiza acciones
automáticamente para aumentar la durabilidad y la disponibilidad de los datos.

Por otro lado, algunos servicios le piden que especifique una AZ. Con estos servicios, a menudo es
responsable de aumentar la durabilidad de los datos y la alta disponibilidad de los recursos.

Mantenimiento de la resiliencia
Para que la aplicación siga estando disponible, debe mantener una disponibilidad y una resiliencia altas. Una
práctica recomendada conocida para la arquitectura de nube es utilizar Managed Services y los servicios que
tengan alcance regional. Estos servicios vienen con disponibilidad y resiliencia incorporadas. Cuando eso no
sea posible, asegúrese de que la carga de trabajo se replique en varias AZ. Como mínimo, debe utilizar dos
AZ. De esta forma, si ocurre un error en una AZ, la aplicación tendrá la infraestructura en funcionamiento
en una segunda AZ para que se haga cargo del tráfico.

Recursos
 Sitio externo, AWS: Infraestructura global(opens in a new tab)
 (opens in a new tab)Sitio externo, AWS: Documentación sobre la infraestructura global
de AWS(opens in a new tab)
 Sitio externo, AWS: Regiones y zonas de disponibilidad(opens in a new tab)
 Sitio externo, AWS: Puntos de enlace de servicios de AWS(opens in a new tab)
 Sitio externo, AWS: Servicios regionales de AWS

Interacción con AWS


Cada acción que realiza en AWS es una llamada a la API que se autentica y autoriza. En AWS, puede
realizar llamadas a la API a los servicios y recursos a través de la consola de administración de AWS, AWS
Command Line Interface (AWS CLI) o los kits de desarrollo de software (SDK) de AWS.
La consola de administración de AWS
Una forma de administrar los recursos en la nube es por medio de la consola basada en la Web, donde inicia
sesión y elige el servicio deseado. Esta puede ser la forma más sencilla de crear y administrar los recursos
cuando comienza a trabajar con la nube por primera vez. A continuación, se incluye una captura de pantalla
que muestra la página de inicio cuando inicia sesión por primera vez en la consola de administración de
AWS.
Los
servicios
se colocan
en
categorías,
como
Compute

(Informática), Storage (Almacenamiento), Database (Base de datos) y Analytics (Análisis).

En la esquina superior derecha, se encuentra el selector de regiones. Si lo elige y cambia la región, realizará
solicitudes a los servicios de la región elegida. La URL también cambia. Al cambiar la configuración de
región, el navegador hace solicitudes a una región de AWS diferente, representada por otro subdominio.
AWS Command Line Interface (AWS CLI)
Tenga en cuenta la situación en la que ejecuta decenas de servidores en AWS para el frontend de su
aplicación. Quiere ejecutar un informe para recopilar datos de todos los servidores. Debe hacerlo de forma
programática todos los días porque los detalles del servidor pueden cambiar. En lugar de iniciar sesión
manualmente en la consola de administración de AWS y luego copiar y pegar la información, puede
programar un script de AWS CLI con una llamada a la API a fin de que se extraigan estos datos para usted.
AWS CLI es una herramienta unificada que puede utilizar para administrar los servicios de AWS. Es posible
descargar y configurar una herramienta que puede utilizar para controlar varios servicios de AWS desde la
línea de comandos y automatizarlos con scripts. La CLI de AWS es de código abierto, y los instaladores
están disponibles para Windows, Linux y macOS.

Por ejemplo, si ejecuta la siguiente llamada a la API con un servicio mediante AWS CLI:

aws ec2 describe-instances

obtendrá la siguiente respuesta:


{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
SDK de AWS
Las llamadas a la API a AWS también se pueden realizar al ejecutar código con lenguajes de programación.
Puede hacerlo por medio de kits de desarrollo de software (SDK) de AWS. Los SDK son de código abierto y
se mantienen por medio de AWS para los lenguajes de programación más populares, como C++, Go, Java,
JavaScript, .NET, Node.js, PHP, Python y Ruby.

Los desarrolladores suelen utilizar AWS SDK para integrar el código fuente de su aplicación en los servicios
de AWS. Por ejemplo, considere una aplicación con un frontend que se ejecuta en Python. Cada vez que la
aplicación recibe una foto de un gato, sube el archivo a un servicio de almacenamiento. Esta acción se puede
lograr en el código fuente mediante AWS SDK para Python. A continuación, se muestra un ejemplo de
código que puede implementar para trabajar con los recursos de AWS mediante AWS SDK de Python.
import boto3
ec2 = boto3.client('ec2')
response = ec2.describe_instances()
print(response)
Recursos
 Sitio externo, AWS: What is the AWS Management Console?(opens in a new tab)
 Sitio externo, AWS: Interfaz de línea de comandos de AWS(opens in a new tab)
 Sitio externo, AWS: Herramientas para crear en AWS

Cuando trabaja con la nube de AWS, administrar la seguridad y la conformidad es una responsabilidad
compartida entre AWS y usted. Para representar esta responsabilidad compartida, AWS creó el modelo de
responsabilidad compartida. La diferenciación de responsabilidad se conoce comúnmente como “seguridad
DE la nube” frente a “seguridad EN la nube”.
Responsabilidad de AWS
AWS es responsable de la seguridad de la nube. Esto significa que AWS proporciona seguridad y protección
a la infraestructura que ejecuta los servicios ofrecidos en la nube de AWS. AWS es responsable de lo
siguiente:

 Proporcionar seguridad y protección a las regiones, las zonas de disponibilidad y los


centros de datos de AWS, hasta la seguridad física de los edificios
 Administrar el hardware, el software y los componentes de redes que ejecutan los
servicios de AWS, como los servidores físicos, los sistemas operativos del host, las capas
de virtualización y los componentes de redes de AWS

El nivel de responsabilidad de AWS depende del servicio. AWS clasifica los servicios en tres categorías. En
la siguiente tabla, se proporciona información sobre cada uno, incluida la responsabilidad de AWS.
Ejemplos de servicios de AWS en la
Categoría Responsabilidad de AWS
categoría
Servicios de Servicios de cómputo, como Amazon Elastic AWS administra la infraestructura
infraestructura Compute Cloud (Amazon EC2) subyacente y los servicios básicos.
Servicios que requieren menos AWS administra la infraestructura
Servicios de administración por parte del cliente, como subyacente y los servicios básicos, el
contenedores Amazon Relational Database Service sistema operativo y la plataforma de
(Amazon RDS) aplicaciones.
Servicios que requieren muy poca AWS opera la capa de infraestructura,
administración por parte del cliente, como el sistema operativo y las plataformas,
Servicios abstractos
Amazon Simple Storage Service (Amazon además del cifrado del lado del
S3) servidor y la protección de datos.
Nota: Los servicios de contenedores hacen referencia a los contenedores de aplicaciones abstractos de AWS
en segundo plano, no a los servicios de contenedores de Docker. Esto permite a AWS quitar a los clientes la
responsabilidad de administrar la plataforma.
Responsabilidad del cliente
Los clientes son responsables de la seguridad en la nube. Al utilizar cualquier servicio de AWS, es
responsable de configurar correctamente el servicio y las aplicaciones, además de garantizar que sus datos
estén seguros.

Su nivel de responsabilidad depende del servicio de AWS. Algunos servicios requieren que realice todas las
tareas de administración y configuración de seguridad necesarias, mientras que otros servicios más
abstractos requieren que solo administre los datos y controle el acceso a los recursos. Con las tres categorías
de servicios de AWS, puede definir su nivel de responsabilidad por cada servicio de AWS que utilice.
Categoría Responsabilidad de AWS Responsabilidad del cliente
Usted controla el sistema operativo y la
Servicios de AWS administra la infraestructura y los plataforma de aplicaciones, además de
infraestructura servicios básicos. cifrar, proteger y administrar los datos
de los clientes.
Usted es responsable de los datos de los
AWS administra la infraestructura y los
Servicios de clientes y del cifrado y la protección de
servicios básicos, el sistema operativo y la
contenedores los datos a través de Network Firewall y
plataforma de aplicaciones.
copias de seguridad.
AWS opera la capa de infraestructura, el
Usted es responsable de administrar los
sistema operativo y las plataformas,
Servicios abstractos datos de los clientes y protegerlos
además del cifrado del lado del servidor y
mediante el cifrado del lado del cliente.
la protección de datos.

Debido a los distintos niveles de esfuerzo, los clientes deben considerar qué servicios de AWS utilizan y
revisar el nivel de responsabilidad necesario para proteger cada servicio. También deben revisar cómo el
modelo de seguridad compartida se ajusta a los estándares de seguridad de su entorno de TI, además de las
leyes y reglamentos aplicables.

Un concepto clave es que los clientes mantienen el control total de los datos y son responsables de
administrar la seguridad relacionada con su contenido. Por ejemplo, usted es responsable de lo siguiente:

 Elegir una región para los recursos de AWS de acuerdo con las normas de soberanía de
datos
 Implementar mecanismos de protección de datos, como el cifrado y las copias de
seguridad programadas
 Utilizar el control de acceso para limitar quién puede acceder a los datos y recursos de
AWS

Recursos
 Sitio externo, AWS: Modelo de responsabilidad compartida

¿Por qué es importante la autorización?


Cuando configura el acceso a cualquier cuenta, aparecen dos términos con
frecuencia: autenticación y autorización. Si bien estos términos pueden parecer básicos, debe entenderlos
completamente para configurar de forma correcta la administración de accesos en AWS.
Autenticación
Al crear su cuenta de AWS, utiliza la combinación de una dirección de correo electrónico y una contraseña
para verificar su identidad. Si un usuario escribe el correo electrónico y la contraseña correctos, el sistema
asume que al usuario se le permite ingresar y le concede acceso. Este es el proceso de autenticación.

La autenticación garantiza que el usuario sea quien dice ser. Los nombres de usuario y las contraseñas son
los tipos de autenticación más comunes, pero también puede trabajar con otras formas, por ejemplo, la
autenticación basada en tokens o los datos biométricos, como una huella digital. La autenticación
simplemente responde a la pregunta: “¿Es quien dice ser?”
Autorización
Una vez que esté autenticado y en su cuenta de AWS, es posible que quiera saber qué acciones puede
realizar. Aquí es donde entra en juego la autorización. La autorización es el proceso por el cual se concede a
los usuarios el permiso para acceder a los recursos y servicios de AWS. La autorización define si un usuario
puede realizar determinadas acciones, como leer, editar, eliminar o crear recursos. La autorización responde
a la pregunta: “¿Qué acciones puede realizar?”
Usuario raíz de AWS
Cuando crea una cuenta de AWS por primera vez, comienza con una identidad de inicio de sesión único que
tiene acceso total a todos los servicios y recursos de AWS en la cuenta. Esta identidad recibe el nombre de
“usuario raíz de AWS”, y se obtiene acceso a ella iniciando sesión con la dirección de correo electrónico y la
contraseña que utilizó para crear la cuenta.
Credenciales de usuario raíz de AWS
El usuario raíz de AWS tiene dos conjuntos de credenciales asociados. Un conjunto de credenciales es la
dirección de correo electrónico y la contraseña que se utilizan para crear la cuenta. Esto le permite acceder a
la consola de administración de AWS. El segundo conjunto de credenciales se denomina “claves de acceso”
y le permite realizar solicitudes programáticas desde AWS Command Line Interface (AWS CLI) o la API de
AWS.

Las claves de acceso constan de dos partes:

 ID de clave de acceso, por ejemplo, A2lAl5EXAMPLE


 Clave de acceso secreta, por ejemplo, wJalrFE/KbEKxE

De forma similar a una combinación de nombre de usuario y contraseña, necesita tanto el ID de clave de
acceso como la clave de acceso secreta para autenticar las solicitudes mediante AWS CLI o la API de AWS.
Las claves de acceso deben administrarse con la misma seguridad que una dirección de correo electrónico y
una contraseña.

Prácticas recomendadas al trabajar con el usuario raíz de AWS


El usuario raíz tiene acceso completo a todos los servicios y recursos de AWS de su cuenta, además de la
información personal y de facturación. Debido a esto, debe bloquear de forma segura las credenciales
asociadas con el usuario raíz y no utilizar dicho usuario para las tareas cotidianas.

Para garantizar la seguridad del usuario raíz, siga estas prácticas recomendadas:

 Elegir una contraseña segura para el usuario raíz


 No compartir la contraseña de usuario raíz ni las claves de acceso con nadie
 Desactivar o eliminar las claves de acceso asociadas al usuario raíz
 No utilizar el usuario raíz para las tareas administrativas o las tareas cotidianas

¿Cuándo está bien utilizar el usuario raíz de AWS? Para algunas tareas, querrá utilizar el usuario raíz de
AWS. Consulte los enlaces que se encuentran al final de esta sección para obtener más información sobre
estas excepciones.
Eliminación de las claves para mantenerse seguro
Si no tiene una clave de acceso para su usuario raíz de la cuenta de AWS, no cree una a menos que sea
absolutamente necesario. Si tiene una clave de acceso para el usuario raíz de su cuenta de AWS y desea
eliminarla, siga estos pasos:
1. En la consola de administración de AWS, diríjase a la página My Security
Credentials (Mis credenciales de seguridad) e inicie sesión con la dirección de correo
electrónico y la contraseña del usuario raíz.
2. Abra la sección Access keys (Claves de acceso).
3. En Actions (Acciones), elija Delete (Eliminar).
4. Elija Yes (Sí).

Autenticación multifactor (MFA)


Cuando crea una cuenta de AWS e inicia sesión por primera vez en la cuenta, utiliza la autenticación de un
solo factor. La autenticación de un solo factor es la forma de autenticación más sencilla y común. Solo se
requiere un método de autenticación. En este caso, utiliza un nombre de usuario y una contraseña para
autenticarse como usuario raíz de AWS. Otras formas de autenticación de un solo factor incluyen un pin o
un token de seguridad.

Sin embargo, a veces la contraseña de un usuario es fácil de adivinar. Por ejemplo, la contraseña de su
compañero de trabajo Bob, IloveCats222, podría ser fácil de adivinar para alguien que conoce
personalmente a Bob porque es una combinación de información fácil de recordar e incluye ciertos datos
sobre Bob (a Bob le encantan los gatos, y su cumpleaños es el 22 de febrero). Si un atacante adivinara o
descifrara la contraseña de Bob a través de ingeniería social, bots o scripts, Bob podría perder el control de
su cuenta. Lamentablemente, es una situación común que suelen enfrentar los usuarios de cualquier sitio
web. Por este motivo, es importante el uso de la autenticación multifactor (MFA) para evitar el acceso no
deseado a la cuenta.

MFA requiere dos o más métodos de autenticación para verificar una identidad. MFA extrae de las tres
categorías de información siguientes:

 Algo que conoce, como un nombre de usuario y una contraseña, o un número de pin.
 Algo que tiene, como un código de acceso único de un dispositivo de hardware o una
aplicación móvil.
 Algo que es, como la tecnología de huellas dactilares o escaneo facial.

El uso de una combinación de esta información habilita a los sistemas a proporcionar un enfoque por capas
del acceso a las cuentas. Incluso si un atacante malintencionado rompe el primer método de autenticación,
como la contraseña de Bob, el segundo método de autenticación, como una huella digital, proporciona otro
nivel de seguridad. Esta capa adicional de seguridad puede ayudar a proteger sus cuentas más importantes,
por lo que debe habilitar la MFA en el usuario raíz de AWS.
MFA en AWS
Si habilita la MFA en su usuario raíz, debe presentar información de identificación tanto de la categoría de
algo que conoce como de la categoría de algo que tiene. La primera información identificativa que ingresa el
usuario es una combinación de correo electrónico y contraseña. La segunda información es un código
numérico temporal proporcionado por un dispositivo MFA.

La habilitación de MFA añade una capa de seguridad adicional porque requiere que los usuarios utilicen un
mecanismo de MFA compatible además de las credenciales de inicio de sesión habituales. La habilitación de
MFA en la cuenta de usuario raíz de AWS es una práctica recomendada de AWS.
Dispositivos de MFA compatibles
AWS admite diversos mecanismos de MFA, como los dispositivos MFA virtuales, dispositivos de hardware
y claves de seguridad segundo factor universal (U2F). Para obtener instrucciones sobre cómo configurar
cada método, consulte la sección Recursos.
Dispositivo Descripción Dispositivos compatibles
MFA virtual Es una aplicación de software que se ejecuta en un Authy, Duo Mobile, LastPass
teléfono u otro dispositivo, y proporciona una clave Authenticator, Microsoft
de acceso por única vez. Estas aplicaciones pueden Authenticator, Google
Dispositivo Descripción Dispositivos compatibles
ejecutarse en dispositivos móviles desprotegidos y,
debido a ello, es posible que no proporcionen el
Authenticator
mismo nivel de seguridad que el hardware o los
dispositivos U2F.
Es un dispositivo de hardware, generalmente un
dispositivo de tarjeta de visualización o clave única, Clave única, tarjeta de
Hardware
que genera un código numérico de seis dígitos por visualización
única vez.
Es un dispositivo de hardware que conecta a un
U2F YubiKey
puerto USB de su ordenador.
Recursos
 Sitio externo, AWS: Habilitar un dispositivo MFA físico (consola)(opens in a new tab)
 Sitio externo, AWS: Habilitar una llave de seguridad U2F (consola)(opens in a new tab)
 Sitio externo, AWS: Habilitación de un dispositivo de autenticación multifactor (MFA)
virtual (consola)(opens in a new tab)
 Sitio externo, AWS: tabla de dispositivos MFA compatibles

IAM
AWS Identity and Access Management (IAM) es un servicio de AWS que lo ayuda a administrar el acceso a
sus recursos y cuenta de AWS. También proporciona una vista centralizada de quién y qué está permitido en
la cuenta de AWS (autenticación), y quién y qué tiene permisos para utilizar y trabajar con sus recursos de
AWS (autorización).

Con IAM, puede compartir el acceso a una cuenta y a los recursos de AWS sin compartir su conjunto de
claves de acceso ni contraseña. También puede proporcionar acceso pormenorizado a quienes trabajan en la
cuenta, de modo que las personas y los servicios solo tengan permisos para los recursos que necesitan. Por
ejemplo, para proporcionar a un usuario de su cuenta de AWS acceso de solo lectura a un servicio de AWS
concreto, puede seleccionar de forma pormenorizada a qué acciones y recursos de ese servicio puede
acceder.
Características de IAM
Para ayudar a controlar el acceso y administrar las identidades de su cuenta de AWS, IAM ofrece muchas
características para garantizar la seguridad.

 IAM es global y no es específica de ninguna región. Puede ver y utilizar las


configuraciones de IAM desde cualquier región en la consola de administración de AWS.
 IAM se integra en muchos servicios de AWS de forma predeterminada.
 Puede establecer políticas de contraseñas en IAM a fin de especificar los requisitos de
complejidad y los periodos de rotación obligatorios para los usuarios.
 IAM admite MFA.
 IAM admite la identidad federada, que permite a los usuarios que ya tienen contraseñas
en otro lugar (p. ej.: en su red corporativa o con un proveedor de identidad de Internet)
obtener acceso temporal a su cuenta de AWS.
 Cualquier cliente de AWS puede utilizar IAM; el servicio se ofrece sin cargo adicional.

Usuario de IAM
Un usuario de IAM representa a la persona o el servicio que interactúa con AWS. Puede definir el usuario de
su cuenta de AWS. Se factura a su cuenta cualquier actividad realizada por ese usuario. Una vez creado un
usuario, ese usuario puede iniciar sesión para acceder a los recursos de AWS de su cuenta.
También puede añadir más usuarios a la cuenta según sea necesario. Por ejemplo, para la aplicación de fotos
de gatos, podría crear usuarios individuales en su cuenta de AWS que correspondan a las personas que están
trabajando en su aplicación. Cada persona debe tener sus propias credenciales de inicio de sesión.
Proporcionar a los usuarios sus propias credenciales de inicio de sesión impide compartir las credenciales.
Credenciales de usuario de IAM
Un usuario de IAM consta de un nombre y un conjunto de credenciales. Al crear un usuario, puede
proporcionarle los siguientes tipos de acceso:

 Acceso a la consola de administración de AWS


 Acceso programático a AWS Command Line Interface (AWS CLI) y a la interfaz de
programación de la aplicación de AWS (API de AWS)

Para acceder a la consola de administración de AWS, proporcione al usuario un nombre de usuario y una
contraseña. Para el acceso mediante programación, AWS genera un conjunto de claves de acceso que se
puede utilizar con AWS CLI y la API de AWS. Las credenciales de usuario de IAM se consideran
permanentes, lo que significa que se mantienen con el usuario hasta que los administradores hagan una
rotación forzada.

Cuando crea un usuario de IAM, puede conceder permisos directamente a nivel de usuario. Esto puede
parecer una buena idea si solo tiene un usuario o unos usuarios. Sin embargo, a medida que aumenta el
número de usuarios, mantenerse al día con los permisos puede ser más complicado. Por ejemplo, si tiene
3000 usuarios en su cuenta de AWS, puede ser un desafío administrar el acceso y obtener una visión general
de quién puede realizar qué acciones en cuáles recursos.

Si tan solo existiera una forma de agrupar los usuarios de IAM y en cambio adjuntar los permisos a nivel de
grupo. Adivine qué. Existe.
Grupos de IAM
Un grupo de IAM es una colección de usuarios. Todos los usuarios del grupo heredan los permisos
asignados al grupo. Esto permite conceder permisos a varios usuarios a la vez. Es una forma más
conveniente y escalable de administrar los permisos de los usuarios de su cuenta de AWS. Por eso, es una
práctica recomendada utilizar grupos de IAM.

Si está tratando de crear una aplicación y hay varios usuarios en una cuenta que trabajan en la aplicación,
puede organizarlos por función de trabajo. Por ejemplo, puede organizar los grupos de IAM por
desarrolladores, seguridad y administradores. A continuación, puede colocar a todos los usuarios de IAM en
sus respectivos grupos.

Esto proporciona una forma de ver quién tiene qué permisos en su organización. También lo ayuda a escalar
cuando las nuevas personas se unen o se van, y cuando cambian de roles en su organización.

Tenga en cuenta los siguientes ejemplos:

 Un nuevo desarrollador se une a su cuenta de AWS para ayudarlo con su aplicación. Crea
un nuevo usuario y lo añade al grupo de desarrolladores, sin pensar qué permisos
necesitan.
 Un desarrollador cambia de trabajo y se convierte en ingeniero de seguridad. En lugar de
editar los permisos del usuario directamente, lo elimina del grupo anterior y lo añade al
nuevo grupo que ya tiene el nivel de acceso correcto.

Tenga en cuenta las siguientes características de los grupos:


 Los grupos pueden tener muchos usuarios.
 Los usuarios pueden pertenecer a muchos grupos.
 Los grupos no pueden pertenecer a grupos.

El usuario raíz puede realizar todas las acciones en todos los recursos de una cuenta de AWS de forma
predeterminada. Esto contrasta con la creación de nuevos usuarios de IAM, nuevos grupos o roles. Las
nuevas identidades de IAM no pueden realizar acciones en su cuenta de AWS de forma predeterminada
hasta que les conceda permiso explícitamente.

La forma en que concede permisos en IAM es mediante las políticas de IAM.


Políticas de IAM
Para administrar el acceso y proporcionar permisos a los servicios y recursos de AWS, crea políticas de IAM
y las adjunta a los usuarios, grupos y roles de IAM. Cada vez que un usuario o rol hace una solicitud, AWS
evalúa las políticas asociadas a ellos. Por ejemplo, si hay un desarrollador en el grupo de desarrolladores que
solicita un servicio de AWS, AWS evalúa las políticas adjuntas al grupo de desarrolladores y las políticas
adjuntas al usuario de desarrollador para definir si la solicitud debe permitirse o denegarse.
Ejemplos de políticas de IAM
La mayoría de las políticas se almacenan en AWS como documentos JSON con varios elementos de
políticas. En el ejemplo siguiente, se proporciona acceso de administrador a través de una política basada en
la identidad de IAM.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}]
}

Esta política tiene cuatro elementos JSON principales: Version (Versión), Effect (Efecto), Action (Acción)
y Resource (Recurso).

 El elemento Version (Versión) define la versión del lenguaje de la política. Especifica las
reglas de sintaxis del lenguaje que AWS necesita para procesar una política. Para utilizar
todas las características de política disponibles, incluya "Version": "2012-10-17" antes
del elemento "Statement" de sus políticas.
 El elemento Effect (Efecto) especifica si la instrucción permite o deniega el acceso. En
esta política, el efecto es "Allow", lo que significa que está proporcionando acceso a un
recurso concreto.
 El elemento Action (Acción) describe el tipo de acción que se debe permitir o denegar.
En la política de ejemplo, la acción es "*". Esto se denomina “comodín” y se utiliza para
simbolizar todas las acciones en su cuenta de AWS.
 El elemento Resource (Recurso) especifica el objeto o los objetos que cubre la
instrucción de política. En el ejemplo de política, el recurso es el comodín "*". Esto
representa todos los recursos de la consola de AWS.

Al unir esta información, tiene una política que le permite realizar todas las acciones en todos los recursos
de su cuenta de AWS. Es lo que llamamos “política de administrador”.

En el siguiente ejemplo, se muestra una política de IAM más pormenorizada.


{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"iam: ChangePassword",
"iam: GetUser"
]
"Resource": "arn:aws:iam::123456789012:user/${aws:username}"
}]
}
Después de observar el JSON, puede ver que esta política permite al usuario de IAM cambiar su propia
contraseña de IAM (iam:ChangePassword) y obtener información sobre su propio usuario (iam:GetUser).
Solo permite al usuario acceder a sus propias credenciales porque el recurso restringe el acceso con la
sustitución de variables ${aws:username}.
Estructura de la política
Al crear una política, cada uno de los elementos que se muestran en la tabla son obligatorios en la
instrucción de política.

Elemento Descripción Obligatorio Ejemplo


Effect Especifica si la instrucción da como
(Efecto) resultado un permiso o una denegación √ "Effect": "Deny"
explícita.
Action Describe las acciones específicas que
√ "Action": "iam:CreateUser"
(Acción) se permiten o deniegan.
"Resource":
Especifica el objeto o los objetos que
Resource (Recurso) √ "arn:aws:iam::account-ID-
abarca la instrucción
without-hyphens:user/Bob"
Recursos
 Sitio externo: What Is IAM?(opens in a new tab)
 Sitio externo: IAM Identities (users, user groups, and roles)(opens in a new tab)
 Sitio externo: Access management for Amazon resources

En estas últimas lecciones, ha aprendido algunas prácticas recomendadas de IAM. En esta sección se
resumen algunas de las prácticas recomendadas de IAM más importantes con las que debe estar
familiarizado para crear soluciones en AWS.

Elija el signo + para obtener más información sobre cada práctica recomendada.
Bloquear el usuario raíz de AWS

El usuario raíz es una identidad omnipotente y omnisciente en su cuenta de AWS. Si un usuario
malintencionado tuviera el control de las credenciales de usuario raíz, podría acceder a todos los
recursos de su cuenta, incluida la información personal y de facturación. Para bloquear el usuario
raíz, puede hacer lo siguiente:
 No comparta las credenciales asociadas al usuario raíz.
 Considere eliminar las claves de acceso de usuario raíz.
 Habilite MFA en la cuenta raíz.
Seguir el principio de mínimo privilegio

El mínimo privilegio es un principio de seguridad estándar que le aconseja conceder solo los mínimos
permisos necesarios para realizar un trabajo en particular y nada más. A fin de implementar el mínimo
privilegio para el control de acceso, comience con el conjunto de permisos mínimo de una política de IAM
y, a continuación, conceda permisos adicionales según sea necesario para un usuario, un grupo o un rol.

Utilizar IAM adecuadamente



IAM se utiliza para proteger el acceso a sus recursos y cuenta de AWS. Simplemente proporciona una forma
de crear y administrar usuarios, grupos y roles para acceder a los recursos en una única cuenta de AWS.
IAM no se utiliza para la autenticación y autorización del sitio web, como proporcionar a los usuarios de un
sitio web funcionalidad de inicio de sesión y registro. IAM tampoco admite los controles de seguridad para
proteger los sistemas operativos y las redes.

Utilizar roles de IAM cuando sea posible



Mantener roles es más eficiente que mantener a los usuarios. Cuando asume un rol, IAM proporciona
dinámicamente credenciales temporales que vencen tras un periodo definido, entre 15 minutos y 36 horas.
Los usuarios, por otro lado, tienen credenciales de largo plazo en forma de combinaciones de nombre de
usuario y contraseña, o un conjunto de claves de acceso.

Las claves de acceso de usuario solo vencen cuando usted o el administrador de la cuenta rotan las claves.
Las credenciales de inicio de sesión de usuario caducan si aplica una política de contraseñas a su cuenta que
obliga a los usuarios a rotar las contraseñas.
Considerar el uso de un proveedor de identidad

Si decide convertir su aplicación de fotos de gatos en un negocio y comienza a tener más de unas personas
trabajando en ella, considere administrar la información de identidad de los empleados a través de un
proveedor de identidad (IdP). El uso de un IdP, ya sea un servicio de AWS, como AWS Single Sign-On o un
proveedor de identidad de terceros, proporciona una fuente única de información para todas las identidades
de su organización.

Ya no tiene que crear usuarios de IAM independientes en AWS. En cambio, puede utilizar roles de IAM
para proporcionar permisos a las identidades federadas de su IdP. Por ejemplo, hay una empleada, Martha,
que tiene acceso a varias cuentas de AWS. En lugar de crear y administrar varios usuarios de IAM llamados
“Martha” en cada una de esas cuentas de AWS, podría administrar Martha en el IdP de su empresa. Si
Martha cambia a otro puesto en la empresa o la abandona, se puede actualizar en el IdP, en lugar de en todas
las cuentas de AWS de la empresa.

Considerar AWS Single Sign-On



Si tiene una organización que abarca muchos empleados y varias cuentas de AWS, es posible
que desee que sus empleados inicien sesión con una única credencial.

AWS SSO es un IdP que permite a los usuarios iniciar sesión en un portal de usuarios con un
único conjunto de credenciales. A continuación, proporciona a los usuarios acceso a sus cuentas
y aplicaciones asignadas en una ubicación central.

Es similar a IAM. AWS SSO ofrece un directorio en el que puede crear usuarios, organizarlos en
grupos, establecer permisos en todos los grupos y conceder acceso a los recursos de AWS. Sin
embargo, AWS SSO tiene algunas ventajas en comparación con IAM. Por ejemplo, si utiliza un
IdP de terceros, puede sincronizar sus usuarios y grupos con AWS SSO. Esto elimina la carga de
volver a crear usuarios que ya existen en otro lugar y le permite administrar los usuarios desde su
IdP. Lo más importante es que AWS SSO separa las tareas entre su IdP y AWS, lo que garantiza
que la administración del acceso a la nube no esté en el IdP ni dependa de él.
Recursos
 Sitio externo, AWS: Prácticas de seguridad recomendadas para IAM(opens in a new tab)
 Sitio externo, AWS: How to create and manage users within AWS Single Sign-On

Servidores
El primer bloque de creación que necesita para alojar una aplicación es un servidor. Por lo general, los
servidores pueden gestionar las solicitudes del Protocolo de transferencia de hipertexto (HTTP) y enviar
respuestas a los clientes al adoptar el modelo cliente-servidor, aunque cualquier comunicación basada en la
API también se incluye en este modelo. Un cliente es una persona o un ordenador que envía una solicitud.
Un servidor que gestiona las solicitudes es un ordenador o una colección de ordenadores conectados a
Internet que ofrecen sitios web a los usuarios de Internet.

Los servidores potencian su aplicación al proporcionar CPU, memoria y capacidad de redes para procesar
las solicitudes de los usuarios y transformarlas en respuestas. En cuanto al contexto, los servidores HTTP
comunes incluyen los siguientes:

 Opciones de Windows, como Internet Information Services (IIS)


 Opciones de Linux, como Apache HTTP Web Server, Nginx y Apache Tomcat

Para ejecutar un servidor HTTP en AWS, debe encontrar un servicio que proporcione potencia de cómputo
en la consola de administración de AWS. Puede iniciar sesión en la consola y ver la lista completa de
servicios de cómputo de AWS.

Elección de la opción de cómputo adecuada


Si es responsable de configurar los servidores en AWS para ejecutar su infraestructura, tiene muchas
opciones de cómputo. Tiene que saber qué servicio utilizar para un caso de uso determinado. En un nivel
fundamental, hay tres tipos de opciones de cómputo disponibles: máquinas virtuales (VM), servicios de
contenedores y modelo sin servidor.

Si tiene conocimientos previos sobre infraestructura, una máquina virtual suele ser la opción de cómputo
más fácil de entender. Se debe a que una máquina virtual emula un servidor físico y le permite instalar un
servidor HTTP para ejecutar sus aplicaciones. Para ejecutar máquinas virtuales, instale un hipervisor en un
equipo host. El hipervisor aprovisiona los recursos para crear y ejecutar sus máquinas virtuales.

En AWS, las máquinas virtuales se denominan “Amazon Elastic Compute Cloud” o “Amazon EC2”. En
segundo plano, AWS opera y administra los equipos host y la capa de hipervisor. AWS también instala el
sistema operativo de la máquina virtual, denominado “sistema operativo invitado”.
Algunos servicios de cómputo de AWS utilizan Amazon EC2 o los conceptos de virtualización de manera
interna. Debe comprender este servicio para avanzar a los servicios de contenedores y a la informática sin
servidor.

Amazon EC2

Amazon EC2 es un servicio web que proporciona capacidad de cómputo en la nube segura y de tamaño
modificable. Permite aprovisionar servidores virtuales denominados “instancias EC2”. Aunque AWS utiliza
la frase “servicio web” para describirlo, no está limitado a ejecutar únicamente servidores web en las
instancias EC2.

Puede crear y administrar instancias EC2 a través de la consola de administración de AWS, la interfaz de
línea de comandos (CLI) de AWS, las herramientas de automatización, los servicios de orquestación de
infraestructuras y los kits de desarrollo de software (SDK) de AWS.

Para crear una instancia EC2, debe definir lo siguiente:

 Especificaciones de hardware, como CPU, memoria, red y almacenamiento


 Configuraciones lógicas, como ubicación de redes, reglas de firewall, autenticación y el
sistema operativo de su elección

Al lanzar una instancia EC2, el primer ajuste que configura es qué sistema operativo quiere al seleccionar
Amazon Machine Image (AMI).
Amazon Machine Image
En el mundo de la infraestructura tradicional, el proceso de poner en marcha un servidor consiste en instalar
un sistema operativo a partir de discos, unidades o asistentes de instalación a través de la red. En la nube de
AWS, la instalación del sistema operativo no es responsabilidad suya. En cambio, está integrado en la AMI
que elija.

Además, cuando utiliza una AMI, puede seleccionar mapeos de almacenamiento, el tipo de arquitectura
(como 32 bits, 64 bits o ARM de 64 bits) y software adicional instalado.
Relación entre las AMI y las instancias EC2

Las instancias EC2 son instancias en directo de lo que se define en una AMI, al igual que un pastel es una
instancia en directo de una receta de pastel. Si está familiarizado con el desarrollo de software, también
puede ver este tipo de relación entre una clase y un objeto.

Una clase es algo que modela y define, mientras que un objeto es algo con lo que interactúa. En este caso, la
AMI es la forma en que modela y define la instancia, mientras que la instancia EC2 es la entidad con la que
interactúa, donde puede instalar el servidor web y entregar el contenido a los usuarios.

Cuando lanza una nueva instancia, AWS asigna una máquina virtual que se ejecuta en un hipervisor. A
continuación, la AMI que seleccionó se copia en el volumen de dispositivo raíz, que contiene la imagen
utilizada para arrancar el volumen. Al final, obtiene un servidor al que puede conectarse y donde puede
instalar paquetes y software adicional. En el ejemplo, instala un servidor web junto con el código fuente
configurado correctamente de la aplicación de directorio de empleados.
Una ventaja de utilizar las AMI es que son reutilizables. Puede elegir una AMI basada en Linux y configurar
el servidor HTTP, los paquetes de aplicaciones y el software adicional que necesita para ejecutar la
aplicación. Si quiere crear una segunda instancia EC2 con las mismas configuraciones, podría atravesar todo
el proceso de creación y configuración de instancias para que la configuración coincida con la primera
instancia. Alternativamente, podría crear una AMI a partir de la instancia en ejecución y utilizar la AMI para
iniciar una nueva instancia. De esta forma, la nueva instancia tendría las mismas configuraciones que la
instancia actual porque las configuraciones establecidas en las AMI son las mismas.

Búsqueda de las AMI

Puede seleccionar una AMI de las siguientes categorías:

 AMI de inicio rápido, creadas por AWS para ayudarlo a comenzar rápidamente
 AMI de AWS Marketplace, que proporcionan software comercial y de código abierto
popular de proveedores de terceros
 Mis AMI, que se crean a partir de las instancias EC2
 AMI de la comunidad, proporcionadas por la comunidad de usuarios de AWS
 Una imagen personalizada creada con EC2 Image Builder

Cada AMI de la consola de administración de AWS tiene un ID de AMI, que lleva el prefijo “ami-”, seguido
de un hash aleatorio de números y letras. Los ID son exclusivos para cada región de AWS.
Recursos
 Sitio externo, AWS: Amazon EC2(opens in a new tab)
 Sitio externo, AWS: Imágenes de máquina de Amazon (AMI)(opens in a
new tab)
 Sitio externo, AWS: Crear una AMI de Linux con respaldo Amazon
EBS(opens in a new tab)
 Sitio externo, AWS: What is EC2 Image Builder?

Ciclo de vida de las instancias de Amazon EC2

 Ahora que sabe cómo seleccionar un sistema operativo para su instancia EC2, está listo
para elegir otras configuraciones que le permiten crear su instancia EC2, como el tipo de
instancias, la red y el almacenamiento.

Para una aplicación como la aplicación de directorio de empleados, necesita instancias


con capacidad suficiente como para ejecutar servidores web y procesar las solicitudes de
clientes entrantes. El dimensionamiento de la instancia dependerá tanto de las demandas
de la aplicación como del tamaño previsto de la base de usuarios.
El pronóstico de la capacidad del servidor para una aplicación en las instalaciones
requiere decisiones difíciles que implican una considerable inversión inicial de capital,
mientras que los cambios en la asignación de los servicios basados en la nube se pueden
realizar con una simple llamada a la API. Debido al modelo de pago por uso de AWS,
puede adaptar la capacidad de la infraestructura a la demanda de la aplicación, en lugar de
hacerlo al revés.
 Tipos de instancias de Amazon EC2
 Las instancias de Amazon EC2 son una combinación de procesadores virtuales (vCPU),
memoria, red y, en algunos casos, unidades de procesamiento de gráficos (GPU) y
almacenamiento de instancias. Cuando crea una instancia EC2, tiene que elegir cuánto
necesita de cada uno de estos componentes.

 AWS ofrece una variedad de instancias que difieren según el rendimiento. Algunas
instancias proporcionan más capacidad que otras. Para obtener información general sobre
los detalles de capacidad de una instancia concreta, debe consultar el tipo de instancias.
Los tipos de instancias consisten en un prefijo que identifica el tipo de cargas de trabajo
para las que están optimizadas, seguido de un tamaño. Por ejemplo, el tipo de instancias
c5.large se puede desglosar de la siguiente manera:
 c5 define la familia de instancias y el número de generación. En este caso, la instancia
pertenece a la quinta generación de instancias de una familia de instancias optimizada
para el cálculo genérico.
 large establece la cantidad de capacidad de la instancia.
 Familias de instancias
 En el ejemplo, c5.large, la primera letra, c, significa “optimizada para cómputo”.
Optimizadas para cómputo es una de muchas familias de instancias que ofrece AWS.
Cada familia de instancias está optimizada para adaptarse a diferentes casos de uso. En la
siguiente tabla, se describen las familias de instancias y algunas cargas de trabajo típicas.
 Familia de
 Descripción  Casos de uso
instancias

 Escalar
horizontalmente
cargas de trabajo,
 Proporcionan un
como servidores
equilibrio entre
web,
recursos de
microservicios en
cómputo,
contenedores,
 De uso general memoria y redes,
flotas de
y se pueden
almacenamiento
utilizar para
en caché,
diversas cargas
almacenes de
de trabajo.
datos distribuidos
y entornos de
desarrollo

 Servidores web
de alto
rendimiento,
modelado
científico,
procesamiento
 Son ideales para por lotes, análisis
aplicaciones distribuidos,
vinculadas a informática de
 Optimizadas
cómputo que se alto rendimiento
para cómputo
benefician de (HPC), machine
procesadores de learning y
alto rendimiento. aprendizaje
profundo,
publicación de
anuncios, juegos
multijugador
altamente
escalables

 Optimizadas  Están diseñadas a  Aplicaciones que


para memoria fin de ofrecer un requieren un uso
rendimiento intensivo de
rápido para las memoria, como
cargas de trabajo bases de datos de
que procesan alto rendimiento,
grandes cachés en
conjuntos de memoria
datos en la distribuidas a
memoria. escala web, bases
de datos en
memoria de
 Familia de
 Descripción  Casos de uso
instancias

tamaño mediano,
análisis de big
data en tiempo
real y otras
aplicaciones
empresariales

 Utilizan
aceleradores de
hardware o
 Visualizaciones
coprocesadores
3D, estaciones de
para realizar
trabajo remotas
funciones, como
con uso intensivo
cálculos de
de gráficos,
números de coma
renderizado 3D,
 Informática flotante,
streaming de
acelerada procesamiento de
aplicaciones,
gráficos o
codificación de
concordancia de
video y otras
patrones de datos
cargas de trabajo
de forma más
de gráficos del
eficiente que lo
lado del servidor
posible con las
CPU
convencionales.

 Están diseñadas
para las cargas de
trabajo que
requieren en gran
medida el acceso
 Bases de datos
secuencial de
NoSQL, como
lectura y
Cassandra,
escritura a
MongoDB y
grandes
Redis, bases de
conjuntos de
datos en
datos en el
 Optimizadas memoria, bases
almacenamiento
para de datos
local. Están
almacenamiento transaccionales
optimizados para
de escalado
entregar decenas
horizontal,
de miles de
almacenamiento
operaciones de
de datos,
E/S aleatorias de
Elasticsearch y
baja latencia por
análisis
segundo (IOPS)
a las aplicaciones
que replican sus
datos en distintas
instancias.
 Ubicaciones de instancias EC2
 De forma predeterminada, las instancias EC2 se colocan en una red denominada
“Amazon Virtual Private Cloud (Amazon VPC) predeterminada”. Esta red se creó para
que pueda comenzar fácilmente a utilizar Amazon EC2 sin aprender a crear y configurar
una VPC.

Cualquier recurso que coloque en la VPC predeterminada será público y accesible a


través de Internet, por lo que no debe colocar datos de clientes ni información privada en
ella.

Una vez que esté más familiarizado con las redes en AWS, debe cambiar esta
configuración predeterminada para elegir sus propias VPC personalizadas y restringir el
acceso con mecanismos de enrutamiento y conectividad adicionales.
 Diseño para la alta disponibilidad
 En la red, la instancia se encuentra en una zona de disponibilidad de su elección. Como
ha aprendido anteriormente, los servicios de AWS que se encuentran en el ámbito del
nivel de la zona de disponibilidad deben diseñarse teniendo en cuenta la alta
disponibilidad.

Si bien las instancias EC2 suelen ser fiables, dos son mejores que una, y tres son mejores
que dos. Especificar el tamaño de la instancia proporciona una ventaja a la hora de
diseñar la arquitectura porque puede utilizar una mayor cantidad de instancias más
pequeñas en lugar de unas más grandes.

Si su frontend solo tiene una única instancia y ocurre un error en la instancia, la


aplicación se desactiva. Por otro lado, si la carga de trabajo se distribuye en 10 instancias
y ocurre un error en una, solo pierde el 10 por ciento de su flota, y la disponibilidad de las
aplicaciones apenas se ve afectada.

Al diseñar la arquitectura de cualquier aplicación para obtener alta disponibilidad,


considere utilizar al menos dos instancias EC2 en dos zonas de disponibilidad
independientes.

 Ciclo de vida de la instancia EC2


 Una instancia EC2 cambia entre distintos estados desde el momento en que la crea hasta
que se termina.

 1
 1
 Al lanzar una instancia, esta entra en estado pending (pendiente). Cuando una instancia
está pendiente, la facturación no ha comenzado. En esta etapa, la instancia se está
preparando para entrar en estado de ejecución. El estado pendiente es donde AWS realiza
todas las acciones necesarias para configurar una instancia, como copiar el contenido de
la AMI en el dispositivo raíz y asignar los componentes de redes necesarios.
 2
 2
 Cuando la instancia se está ejecutando, está lista para el uso. Esta es también la etapa en
la que comienza la facturación. Tan pronto como se esté ejecutando una instancia, puede
realizar otras acciones en la instancia, como reiniciar, terminar, detener y detener-
hibernar.
 3
 3
 Cuando reinicia una instancia, es diferente de realizar una acción de detención y después
una acción de inicio. El reinicio de una instancia es equivalente al reinicio del sistema
operativo. La instancia sigue estando en el mismo equipo host y conserva su dirección IP
privada y pública, además de los datos en el almacén de instancias.
 4
 4
 Normalmente, el reinicio tarda unos minutos en completarse. Cuando detiene e inicia una
instancia, es posible que la instancia se coloque en un nuevo servidor físico subyacente.
Por lo tanto, pierde cualquier dato del almacén de instancias que se encontraba en el
equipo host anterior. Cuando detiene una instancia, esta obtiene una nueva dirección IP
pública, pero mantiene la misma dirección IP privada.

 5
5
Cuando termina una instancia, se borran los almacenes de instancias, y pierde la dirección IP pública y la
dirección IP privada de la máquina. La terminación de una instancia significa que ya no se puede acceder a
la máquina.
Diferencia entre detener y detener-hibernar
Cuando detiene una instancia, entra en el estado de detención hasta que alcanza el estado detenido. AWS no
cobra tarifas de uso o transferencia de datos para su instancia después de detenerla, pero aún se cobra el
almacenamiento de cualquier volumen de Amazon EBS. Mientras la instancia se encuentra en estado
detenido, puede modificar algunos atributos, como el tipo de instancias. Cuando detiene la instancia, se
pierden los datos almacenados en la memoria (RAM).
Cuando detiene-hiberna una instancia, AWS indica al sistema operativo que realice la hibernación
(suspensión a disco), con lo cual se guarda el contenido de la memoria de la instancia (RAM) en el volumen
raíz de Amazon EBS.

Considere una situación en la que crea una aplicación de tres capas estándar, donde hay servidores web, de
aplicaciones y de bases de datos. De repente, la aplicación que creó se vuelve extremadamente popular. Para
aliviar el estrés en la base de datos que respalda la aplicación, quiere implementar una capa de backend
personalizada que almacene en caché la información de la base de datos en la memoria (RAM). Decide
ejecutar esta solución de almacenamiento en caché de backend personalizada en Amazon EC2.

En esta situación, la característica detener-hibernar sería fundamental para el almacenamiento persistente.


Evitaría tener que crear scripts manualmente para guardar los datos de la RAM antes de apagar el servidor.
Precio
Una de las formas de reducir los costos con Amazon EC2 es elegir la opción de precio adecuada para la
ejecución de sus aplicaciones. AWS ofrece tres opciones de compra principales para las instancias EC2:
instancias bajo demanda, reservadas y de spot.

Pago por uso con las instancias bajo demanda


Con las instancias bajo demanda, paga por la capacidad de cómputo sin compromisos a largo plazo. La
facturación comienza cuando la instancia se está ejecutando y se detiene cuando la instancia se encuentra en
estado detenido o terminado. El precio por segundo de una instancia bajo demanda en ejecución es fijo.

Para las aplicaciones que requieren que los servidores se ejecuten todo el tiempo, es menos probable que se
beneficie del modelo de precio bajo demanda, simplemente porque no hay ninguna situación en la que tenga
que apagar los servidores. Por ejemplo, es posible que desee que el servidor web que aloja el frontend de su
aplicación de directorio corporativo se ejecute las 24 horas, todos los días para que los usuarios puedan
acceder al sitio web en cualquier momento. Incluso si no hay usuarios conectados a su sitio web, no querrá
apagar los servidores que respaldan el sitio ante la posible actividad del usuario.

Si no pueden detenerse los servidores, considere utilizar una instancia reservada para ahorrar costos.
Capacidad de reserva con las instancias reservadas (RI)

Las RI le proporcionan un descuento importante en comparación con el precio de las instancias bajo
demanda. Las RI ofrecen una tarifa horaria con descuento y una reserva de capacidad opcional para las
instancias EC2. Puede elegir entre tres opciones de pago: el pago total anticipado, el pago inicial parcial o
sin pago inicial. Puede seleccionar un periodo de 1 año o 3 años para cada una de estas opciones.

Según la opción que elija, recibe un descuento diferente.


 Pago total anticipado ofrece un descuento superior al de las instancias de pago inicial
parcial.
 Las instancias de pago inicial parcial ofrecen un descuento mayor que sin pago inicial.
 Sin pago inicial ofrece un descuento superior al de las instancias bajo demanda.

Las instancias bajo demanda y sin pago inicial son similares, ya que en ninguno de los dos casos se requiere
un pago inicial. Sin embargo, hay una diferencia importante. Cuando elige una instancia bajo demanda, deja
de pagar por la instancia cuando la detiene o la termina. Cuando detiene una RI, sigue pagando por ella
porque se comprometió a cumplir un término de 1 o 3 años.

Las instancias reservadas se asocian a un tipo de instancias y a una zona de disponibilidad en función de
cómo las reserve. El descuento aplicado por una compra de instancia reservada no se asocia directamente a
un ID de instancia específico, sino a un tipo de instancias.
Ahorro de costos con las instancias de spot
Otra forma de pagar las instancias EC2 es mediante instancias de spot. Las instancias de spot de Amazon
EC2 le permiten aprovechar la capacidad de EC2 sin utilizar en la nube de AWS. Están disponibles hasta
con un 90 % de descuento en comparación con los precios bajo demanda.

Con las instancias de spot, establece un límite al pago por la hora de la instancia. Esto se compara con el
precio de spot actual que define AWS. Si el monto que paga es superior al precio de spot actual y hay
capacidad, recibirá una instancia. Aunque son muy prometedoras desde el punto de vista de la facturación,
debe tener en cuenta algunas consideraciones de arquitectura para utilizarlas de manera efectiva.

Una consideración es que la instancia de spot podría interrumpirse. Por ejemplo, si AWS determina que la
capacidad ya no está disponible para una instancia de spot concreta o si el precio de spot supera la cantidad
que está dispuesto a pagar, AWS le dará una advertencia de 2 minutos antes de interrumpir la instancia. Esto
significa que cualquier aplicación o carga de trabajo que se ejecute en una instancia de spot debe poder
interrumpirse.

Debido a esta consideración única, las cargas de trabajo inherentemente tolerantes a errores suelen ser
buenos candidatos para utilizar con las instancias de spot. Se incluyen big data, las cargas de trabajo en
contenedores, la integración y entrega continuas (CI/CD), los servidores web, la informática de alto
rendimiento (HPC), el renderizado de imágenes y medios, y otras cargas de trabajo de prueba y desarrollo.
Recursos
 Sitio externo, AWS: Amazon EC2(opens in a new tab)
 Sitio externo, AWS: VPC predeterminada y subredes predeterminadas(opens in a new
tab)
 Sitio externo, AWS: Pilar de fiabilidad de AWS (PDF)(opens in a new tab)
 Sitio externo, AWS: Ciclo de vida de la instancia(opens in a new tab)
 Sitio externo, AWS: Precios de Amazon EC2(opens in a new tab)
 Sitio externo, AWS: Precios de las instancias bajo demanda de Amazon EC2(opens in a
new tab)
 Sitio externo, AWS: Precios de instancias de spot de Amazon EC2(opens in a new tab)
 Sitio externo, AWS: Precios de las instancias reservadas de Amazon EC2

Servicios de contenedores
AWS ofrece una amplia gama de ofertas de cómputo que le dan la flexibilidad de elegir la herramienta
adecuada para el trabajo. Las tres categorías principales de cómputo son las máquinas virtuales (VM), los
contenedores y el modelo sin servidor. No existe un servicio de cómputo único para todos los casos porque
depende de sus necesidades.
La clave está en entender qué ofrece cada opción. A continuación, puede crear una arquitectura de nube
adecuada para su caso de uso. En esta sección, aprenderá sobre los contenedores y cómo ejecutarlos.

Los contenedores pueden alojar una variedad de cargas de trabajo diferentes, incluidas las aplicaciones web,
las migraciones lift and shift, las aplicaciones distribuidas y la optimización de los entornos de desarrollo,
prueba y producción.
Contenedores
Aunque a menudo se conoce a los contenedores como una nueva tecnología, la idea comenzó en la década
de 1970, cuando algunos kernels Linux tenían la capacidad de separar sus procesos mediante el aislamiento.
En ese momento, la configuración se realizaba manualmente, por lo que las operaciones eran complejas.

Con la evolución de la comunidad de software de código abierto, los contenedores evolucionaron. Hoy los
contenedores se utilizan como solución a los problemas de cómputo tradicional, incluido el problema de
hacer que el software se ejecute de forma fiable cuando se traslada de un entorno informático a otro.

Un contenedor es una unidad estandarizada que empaqueta el código y sus dependencias. Este paquete está
diseñado para ejecutarse de forma fiable en cualquier plataforma, ya que el contenedor crea su propio
entorno independiente. Con los contenedores, las cargas de trabajo se pueden transportar de un lugar a otro,
como desde el desarrollo hasta la producción o desde las instalaciones hasta la nube.
Docker
Cuando escuche la palabra “contenedor”, puede asociarla a Docker. Docker es un tiempo de ejecución de
contenedores popular que simplifica la administración de toda la pila de sistemas operativos necesaria para
el aislamiento de contenedores, incluidas las redes y el almacenamiento. Docker ayuda a los clientes a crear,
empaquetar, implementar y ejecutar los contenedores.
Diferencia entre los contenedores y las máquinas virtuales (VM)

Las máquinas virtuales comparten el mismo sistema operativo y kernel que el host en el que existen,
mientras que las máquinas virtuales contienen su sistema operativo. Cada máquina virtual debe mantener
una copia de un sistema operativo, lo que da como resultado cierto desperdicio de espacio.

Un contenedor es más ligero. Se activan con mayor rapidez, casi al instante. Esta diferencia en el tiempo de
inicio se vuelve fundamental cuando se diseñan aplicaciones que necesitan escalarse rápidamente durante las
ráfagas de entrada y salida (E/S).
Si bien los contenedores pueden proporcionar velocidad, las máquinas virtuales ofrecen toda la fuerza de un
sistema operativo y más recursos, como la instalación de paquetes, el kernel dedicado, etc.
Orquestación de contenedores
En AWS, los contenedores se ejecutan en instancias EC2. Por ejemplo, podría tener una instancia grande y
ejecutar algunos contenedores en esa instancia. Si bien la ejecución de una instancia es fácil de administrar,
carece de alta disponibilidad y escalabilidad. La mayoría de las empresas y organizaciones ejecutan muchos
contenedores en una gran cantidad de instancias EC2 en varias zonas de disponibilidad.

Si pretende administrar el cómputo a gran escala, debe saber lo siguiente:

 Cómo colocar los contenedores en las instancias


 Qué sucede si ocurre un error en el contenedor
 Qué sucede si ocurre un error en la instancia
 Cómo monitorear las implementaciones de sus contenedores

Un servicio de orquestación de contenedores gestiona esta coordinación. AWS ofrece dos servicios de
orquestación de contenedores: Amazon Elastic Container Service (ECS) y Amazon Elastic Kubernetes
Service (EKS).
Gestión de contenedores con Amazon Elastic Container Service
(Amazon ECS)
Amazon ECS es un servicio de orquestación de contenedores integral que lo ayuda a activar nuevos
contenedores y administrarlos en un clúster de instancias EC2.

Para ejecutar y administrar los contenedores, tiene que instalar el agente de contenedores de Amazon ECS
en las instancias EC2. Este agente es de código abierto y es responsable de comunicar al servicio ECS de
Amazon los detalles de administración de clústeres. Puede ejecutar el agente en AMI de Linux y Windows.
Una instancia con el agente de contenedores instalado a menudo se denomina “instancia de contenedor”.
Una vez que las instancias de contenedor de Amazon ECS estén en funcionamiento, puede realizar acciones
que incluyen, entre otras, lanzar y detener contenedores, obtener el estado del clúster, reducir y escalar
horizontalmente, programar la ubicación de contenedores en el clúster, asignar permisos y cumplir los
requisitos de disponibilidad.

Para preparar la aplicación a fin de que se ejecute en Amazon ECS, crea una definición de tarea. La
definición de tarea es un archivo de texto en formato JSON que describe uno o más contenedores. Una
definición de tarea es similar a un proyecto donde se describen los recursos necesarios para ejecutar un
contenedor, como la información sobre las redes, la CPU, la memoria, los puertos, las imágenes y el
almacenamiento.

Esta es una definición de tarea sencilla que puede utilizar para su aplicación de directorio corporativo. En
este ejemplo, se ejecuta en el servidor web de Nginx.
{
"family": "webserver",
"containerDefinitions": [ {
"name": "web",
"image": "nginx",
"memory": "100",
"cpu": "99"
} ],
"requiresCompatibilities": [ "FARGATE" ],
"networkMode": "awsvpc",
"memory": "512",
"cpu": "256"
}
Uso de Kubernetes con Amazon Elastic Kubernetes Service
(Amazon EKS)
Kubernetes es una plataforma portátil, extensible y de código abierto para administrar las cargas de trabajo y
los servicios en contenedores. Al unir el desarrollo de software y las operaciones por diseño, Kubernetes
creó un ecosistema de rápido crecimiento que es muy popular y está bien establecido en el mercado.

Si ya utiliza Kubernetes, puede utilizar Amazon EKS para orquestar las cargas de trabajo en la nube de
AWS. Amazon EKS es conceptualmente similar a Amazon ECS, pero con las siguientes diferencias:
 Una instancia EC2 con el agente ECS instalado y configurado se denomina “instancia de
contenedor”. En Amazon EKS, se denomina “nodo de empleado”.
 Un contenedor ECS se conoce como “tarea”. En Amazon EKS, se denomina “pod”.
 Mientras que Amazon ECS se ejecuta en tecnología nativa de AWS, Amazon EKS se
ejecuta a partir de Kubernetes.

Si tiene contenedores que se ejecutan en Kubernetes y quiere una solución de orquestación avanzada que
pueda ofrecer simplicidad, alta disponibilidad y control pormenorizado de su infraestructura, Amazon EKS
podría ser la herramienta para usted.
Recursos
 Sitio externo, AWS: Containers on AWS(opens in a new tab)
 Sitio externo, Docker: What Is a Container?(opens in a new tab)
 Sitio externo, AWS: Amazon Elastic Container Service(opens in a new tab)
 Sitio externo, GitHub: Amazon ECS Agent(opens in a new tab)
 Sitio externo, AWS: Instancias de contenedor de Amazon ECS(opens in a new tab)
 Curso de Coursera: Building Containerized Applications on AWS

AWS Lambda
Eliminación de las cargas pesadas sin diferenciar
Si ejecuta el código en Amazon EC2, AWS es responsable del hardware físico, y usted es responsable de los
controles lógicos, como el sistema operativo invitado, la seguridad y la aplicación de parches, las redes, la
seguridad y el escalado.

Si ejecuta el código en contenedores de Amazon ECS y Amazon EKS, AWS es responsable de una mayor
parte de la administración de contenedores, como la implementación de contenedores en las instancias EC2
y la administración del clúster de contenedores. Sin embargo, al ejecutar ECS y EKS en EC2, sigue siendo
responsable de mantener las instancias EC2 subyacentes.

Si quiere implementar sus cargas de trabajo y aplicaciones sin tener que administrar ninguna instancia EC2,
puede hacerlo en AWS con el cómputo sin servidor.
Adopción del modelo sin servidor
En cada definición del modelo sin servidor, se mencionan los cuatro aspectos siguientes:

 No hay servidores para aprovisionar o administrar.


 Se escala con el uso.
 Nunca paga por recursos inactivos.
 La disponibilidad y la tolerancia a errores están integradas.

Con el modelo sin servidor, puede dedicar tiempo a los aspectos que diferencian su aplicación, en lugar de
dedicarlo a garantizar la disponibilidad, el escalado y la gestión de los servidores.

AWS ofrece varias opciones de informática sin servidor, incluidas AWS Fargate y AWS Lambda.
Exploración de los contenedores sin servidor con AWS Fargate
Amazon ECS y Amazon EKS le permiten ejecutar sus contenedores en los dos modos siguientes:

 Modo Amazon EC2


 Modo AWS Fargate
AWS Fargate es un motor de informática sin servidor creado específicamente para los contenedores. Fargate
escala y administra la infraestructura, lo que permite a los desarrolladores trabajar en lo que mejor hacen: el
desarrollo de las aplicaciones. Lo logra al asignar la cantidad correcta de cómputo, eliminar la necesidad de
elegir y gestionar las instancias EC2 y la capacidad de clúster, así como por medio del escalado. Fargate es
compatible con la arquitectura de Amazon ECS y Amazon EKS, y proporciona aislamiento de la carga de
trabajo y seguridad mejorada por diseño.

Fargate abstrae la instancia EC2 para que no tenga que administrarla. Sin embargo, con Fargate puede
utilizar los mismos conceptos de ECS, las API y las integraciones de AWS. Se integra de forma nativa en
AWS Identity and Access Management (IAM) y Amazon Virtual Private Cloud (VPC). La integración
nativa en Amazon VPC le permite lanzar contenedores de Fargate en su red y controlar la conectividad con
sus aplicaciones.
Ejecución de código en AWS Lambda
Si quiere implementar sus cargas de trabajo y aplicaciones sin tener que administrar contenedores o
instancias EC2, puede utilizar AWS Lambda.

Con AWS Lambda, puede ejecutar código sin aprovisionar ni administrar servidores o contenedores. Puede
ejecutar código para prácticamente cualquier tipo de aplicación o servicio de backend, incluidos el
procesamiento de datos, el procesamiento de secuencias en tiempo real, machine learning, los WebSockets,
los backends de IoT, los backends móviles y las aplicaciones web, como su aplicación de directorio
corporativo.

AWS Lambda no requiere gestión por parte del usuario. Tiene que subir el código fuente, y Lambda se
encarga de todo lo necesario para ejecutar y escalar el código con alta disponibilidad. No hay servidores que
administrar, lo que le proporciona un escalado continuo con medición inferior a un segundo y un
rendimiento coherente.
Funcionamiento de AWS Lambda
Una función de Lambda tiene tres componentes principales: el desencadenador, el código y la configuración.
El código es código fuente que describe lo que debe ejecutar la función de Lambda. Se puede crear de tres
maneras.

 Crea el código desde cero.


 Utiliza un proyecto que proporciona AWS.
 Utiliza algún código de AWS Serverless Application Repository, un recurso que contiene
aplicaciones de ejemplo, como código “hola, mundo”, código de muestra de Skill de
Amazon Alexa, código de redimensionamiento de imagen, codificación de video y más.

Al crear la función de Lambda, especifica el tiempo de ejecución en el que quiere que se ejecute el código.
Puede utilizar los tiempos de ejecución integrados, como Python, Node.js, Ruby, Go, Java o .NET Core, o
bien puede implementar las funciones de Lambda para que se ejecuten en un tiempo de ejecución
personalizado.

La configuración de una función de Lambda consiste en información que describe cómo debe ejecutarse la
función. En la configuración, especifica la ubicación de red, las variables de entorno, la memoria, el tipo de
invocación, los conjuntos de permisos y otras configuraciones. Para profundizar en estas configuraciones,
consulte la sección de recursos.

Los desencadenadores describen cuándo debe ejecutarse una función de Lambda. Un desencadenador
integra la función Lambda en otros servicios de AWS, lo que le permite ejecutar la función de Lambda en
respuesta a determinadas llamadas a la API que se producen en la cuenta de AWS. De este modo, aumenta
la capacidad de responder a los eventos de la consola sin tener que realizar acciones manuales. Necesita
saber qué, cómo y cuándo en relación con una función de Lambda para tener una capacidad de cómputo
funcional que se ejecute solo cuando lo necesita.

El director de tecnología de Amazon, Werner Vogels, explica lo siguiente: “No hay un servidor que sea más
fácil de administrar que ningún servidor”. En esta cita, se resume lo conveniente que puede ser ejecutar las
soluciones sin servidor, como AWS Fargate y AWS Lambda. Más adelante, aplicará toda la información que
ha adquirido sobre Amazon EC2, Amazon ECS, Amazon EKS y AWS Fargate a algunos casos de uso de
cada servicio.
Controlador de funciones de AWS Lambda
El controlador de funciones de AWS Lambda es el método del código de la función que procesa los eventos.
Cuando se invoca una función, Lambda ejecuta el método del controlador. Si sale el controlador o devuelve
una respuesta, pasa a estar disponible para gestionar otro evento.

Puede utilizar la siguiente sintaxis general al crear un controlador de funciones en Python.


def handler_name(event, context):

return some_value

Nomenclatura
El nombre del controlador de funciones de Lambda especificado en el momento de crear una función de
Lambda deriva de lo siguiente:

 Nombre del archivo en el que se encuentra la función de controlador de Lambda


 Nombre de la función de controlador de Python

Un controlador de funciones puede ser cualquier nombre; sin embargo, el valor predeterminado de la
consola de Lambda es lambda_function.lambda_handler. Este nombre refleja el nombre de la función como
lambda_handler y el archivo donde se almacena el código del controlador como lambda_function.py. Si
elige un nombre diferente para el controlador de funciones en la consola de Lambda, debe actualizar el
nombre en el panel Runtime settings (Configuración del tiempo de ejecución).

Pormenorización de la facturación
AWS Lambda le permite ejecutar código sin aprovisionar ni administrar servidores, y solo paga por lo que
utiliza. Se le cobra el número de veces que se activa el código (solicitudes) y el tiempo que se ejecuta el
código, redondeado a 1 ms más cercano (duración).

AWS redondea la duración al milisegundo más cercano sin tiempo de ejecución mínimo. Con este precio,
puede ser rentable ejecutar funciones cuyo tiempo de ejecución es muy bajo, como las funciones con
duraciones inferiores a 100 ms o las API de baja latencia. Puede obtener más información en el siguiente
enlace: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-1ms-billing-granularity-adds-cost-savings/
(opens in a new tab)

Código fuente
A continuación, puede encontrar un tutorial sobre cómo crear la función de AWS Lambda así como el
código utilizado en la demostración de AWS Lambda: https://aws.amazon.com/blogs/compute/resize-
images-on-the-fly-with-amazon-s3-aws-lambda-and-amazon-api-gateway/(opens in a new tab)
Recursos
 Sitio externo; AWS: Sin servidor(opens in a new tab)
 Curso de Coursera: Building Modern Python Applications on AWS(opens in a new tab)
 Sitio externo, AWS: Herramientas para desarrolladores(opens in a new tab)
 Sitio externo, AWS: Creación de aplicaciones con arquitecturas sin servidor(opens in a
new tab)
 Sitio externo, AWS: Best practices for organizing larger serverless applications(opens in
a new tab)
 Sitio externo, AWS: Administración de funciones de AWS Lambda(opens in a new tab)
 Sitio externo, AWS: 10 Things Serverless Architects Should Know(opens in a new tab)
 Sitio externo, AWS: AWS Alien Attack: a Serverless Adventure

Definición de las redes


Las redes se refieren a la forma en que conecta los ordenadores de todo el mundo y les permite comunicarse
entre sí. En este curso, ya ha visto algunos ejemplos de redes. Uno es la infraestructura global de AWS.
AWS creó una red de recursos mediante los centros de datos, las zonas de disponibilidad y las regiones.
Conceptos básicos de las redes

Una forma de pensar la creación de redes es como el envío de una carta. Cuando envía una carta,
proporciona los tres elementos siguientes:

 La carga o la carta dentro del sobre


 La dirección del remitente en la sección From (De)
 La dirección del destinatario en la sección To (Para)

Cada dirección debe contener información específica, como la siguiente:

 Nombre del remitente y destinatario


 Calle
 Ciudad
 Estado o provincia
 Código postal o área
 País

Necesita todas las partes de una dirección para asegurarse de que la carta llegue a destino. Sin la dirección
correcta, los empleados postales no pueden entregar correctamente la carta. En el mundo digital, los
ordenadores manejan la entrega de mensajes de forma similar. Esto se denomina “enrutamiento”.
Direcciones IP
Para dirigir correctamente los mensajes a una ubicación, necesita una dirección. Al igual que cada hogar
tiene una dirección postal, cada ordenador tiene una dirección IP. Sin embargo, en lugar de utilizar la
combinación de calle, ciudad, estado, código postal y país, la dirección IP utiliza una combinación de bits, 0
y 1.

A continuación, se muestra un ejemplo de una dirección de 32 bits en formato binario:

Se denomina “32 bits” porque tiene 32 dígitos. Puede contarlos.


Notación IPv4
Normalmente, no se ve una dirección IP en su formato binario. En cambio, se convierte en formato decimal
y se anota como una dirección Ipv4.

En el siguiente diagrama, los 32 bits se agrupan en grupos de 8 bits, también denominados “octetos”. Cada
uno de estos grupos se convierte en formato decimal separado por un punto.

Finalmente, es lo que se denomina “dirección Ipv4”. Es importante saberlo al tratar de comunicarse con un
solo ordenador. No obstante, recuerde que está trabajando con una red. Aquí es donde entra en juego la
notación CIDR.
Notación CIDR
192.168.1.30 es una única dirección IP. Si quiere expresar direcciones IP entre el intervalo de 192.168.1.0 y
192.168.1.255, ¿cómo puede hacerlo?

Una forma es utilizar la notación de direccionamiento entre dominios sin clase (CIDR). La notación CIDR
es una forma comprimida de especificar un intervalo de direcciones IP. La especificación de un intervalo
define cuántas direcciones IP están disponibles para usted.

Aquí se muestra la notación CIDR.

Comienza con una dirección IP inicial y está separada por una barra diagonal (el carácter “/”) seguida de un
número. El número que se muestra al final especifica cuántos bits de la dirección IP son fijos. En este
ejemplo, los primeros 24 bits de la dirección IP son fijos. El resto es flexible.

Si a los 32 bits totales se restan los 24 bits fijos, quedan 8 bits flexibles. Cada uno de estos bits flexibles
puede ser 0 o 1 porque es un sistema binario. Significa que tiene dos opciones para cada uno de los 8 bits, al
proporcionar 256 direcciones IP en ese intervalo de IP.

Cuanto mayor sea el número después de /, menor será el número de direcciones IP de la red. Por ejemplo, un
intervalo de 192.168.1.0/24 es menor que 192.168.1.0/16.

Al trabajar con redes en la nube de AWS, elige el tamaño de la red mediante la notación CIDR. En AWS, el
intervalo de IP más pequeño que puede tener es /28, que proporciona 16 direcciones IP. El intervalo de IP
más grande que puede tener es /16, que proporciona 65 536 direcciones IP.

Amazon VPC

Una Virtual Private Cloud (VPC) es una red aislada que crea en la nube de AWS, similar a una red
tradicional de un centro de datos. Al crear una VPC, debe elegir tres factores principales:

 El primer factor es el nombre de la VPC.


 El segundo factor es la región en la que se encontrará la VPC. Cada VPC abarca varias zonas de
disponibilidad dentro de la región seleccionada.
 El tercer factor es el intervalo de IP para la VPC en notación CIDR. De este modo, se determina el
tamaño de la red. Cada VPC puede tener hasta cuatro intervalos de IP de /16.

Con esta información, AWS aprovisionará una red y direcciones IP para dicha red.
Creación de una subred

Después de crear la VPC, debe crear subredes en la red. Piense en las subredes como redes más pequeñas
dentro de la red base o bien redes de área local virtual (VLAN) en una red en las instalaciones tradicional.
En una red en las instalaciones, el caso de uso típico de las subredes es aislar u optimizar el tráfico de red.
En AWS, las subredes se utilizan para proporcionar opciones de altas disponibilidad y conectividad para los
recursos.

Al crear una subred, debe especificar lo siguiente:

 La VPC en la que desea que se encuentre la subred; en este caso: VPC (10.0.0.0/16)
 La zona de disponibilidad en la que quiere que se encuentre la subred; en este caso: AZ1
 E bloque de CIDR para la subred, que debe ser un subconjunto del bloque de CIDR de la VPC; en
este caso: 10.0.0.0/24

Cuando lanza una instancia EC2, la lanza en una subred, que se ubicará en la zona de disponibilidad que
elija.
Alta disponibilidad con una VPC
Cuando cree las subredes, tenga en cuenta la alta disponibilidad. Para mantener la redundancia y la
tolerancia a errores, cree al menos dos subredes configuradas en dos zonas de disponibilidad.

Como se mencionó antes, recuerde que “todo falla en todo momento”. Con la red de ejemplo, si ocurre un
error en una de las AZ, seguirá teniendo los recursos disponibles en otra AZ como copia de seguridad.
IP reservadas
Para que AWS configure adecuadamente su VPC, AWS reserva cinco direcciones IP en cada subred. Estas
direcciones IP se utilizan para el enrutamiento, el sistema de nombres de dominio (DNS) y la administración
de redes.

Por ejemplo, considere una VPC con el intervalo de IP 10.0.0.0/22. La VPC incluye 1024 direcciones IP en
total. Se divide en cuatro subredes de igual tamaño, cada una con un intervalo de IP de /24 con 256
direcciones IP. De cada uno de esos intervalos de IP, solo hay 251 direcciones IP que se pueden utilizar
porque AWS reserva cinco.

Las cinco direcciones IP reservadas pueden afectar el diseño de la red. Un punto de partida común para
aquellos que son nuevos en la nube es crear una VPC con un intervalo de IP de /16 y crear subredes con un
intervalo de IP de /24. Esto proporciona una gran cantidad de direcciones IP con las que trabajar tanto a
nivel de la VPC como de la subred.
Gateways
Puerta de enlace de Internet
A fin de habilitar la conectividad a Internet para su VPC, debe crear una puerta de enlace de Internet. Piense
que la gateway es similar a un módem. Del mismo modo en que un módem conecta el ordenador a Internet,
la puerta de enlace de Internet conecta la VPC a Internet. A diferencia de su módem en el hogar, que a veces
se desactiva o queda sin conexión, una puerta de enlace de Internet tiene altas disponibilidad y escalabilidad.
Después de crear una puerta de enlace de Internet, la adjunta a la VPC.

Gateway privada virtual


Una gateway privada virtual conecta AWS VPC a otra red privada. Una vez que crea y adjunta una gateway
privada virtual a una VPC, la gateway actúa como ancla en el lado de AWS de la conexión. En el otro lado
de la conexión, tendrá que conectar una gateway de cliente a la otra red privada. Un dispositivo de gateway
de cliente es un dispositivo físico o una aplicación de software en su extremo de la conexión. Una vez que
tenga ambas gateways, puede establecer una conexión de VPN cifrada entre los dos lados.

Recursos

 Sitio externo, AWS: VPC con subredes privadas y públicas (NAT)(opens in a new tab)
 Sitio externo, AWS: Tablas de enrutamiento personalizadas(opens in a new tab)
 Sitio externo: Gateway de cliente(opens in a new tab)
 Sitio externo, AWS: ¿Qué es Amazon VPC?(opens in a new tab)
 Sitio externo, AWS: VPC y subredes

También podría gustarte