Ejemplo: una VPC para servidores web y de bases de datos
En este ejemplo se muestra cómo crear una VPC que se puede utilizar para una arquitectura de dos niveles en un entorno de producción. Para mejorar la resiliencia, los servidores se implementan en dos zonas de disponibilidad.
Contenido
Información general
En el diagrama siguiente, se proporciona información general sobre los recursos que se incluyen en este ejemplo. La VPC tiene subredes privadas y públicas en dos zonas de disponibilidad. Los servidores web se ejecutan en las subredes públicas y reciben tráfico desde los clientes a través de un equilibrador de carga. El grupo de seguridad de los servidores web permite el tráfico del equilibrador de carga. Los servidores de bases de datos se ejecutan en las subredes privadas y reciben tráfico desde los servidores web. El grupo de seguridad de los servidores de bases de datos permite el tráfico desde los servidores web. Los servidores de bases de datos pueden conectarse a Amazon S3 mediante un punto de conexión de VPC de puerta de enlace.
Enrutamiento
Cuando crea esta VPC con la consola de Amazon VPC, creamos una tabla de enrutamiento para las subredes públicas con rutas locales y rutas a la puerta de enlace de Internet y una tabla de enrutamiento para cada subred privada con rutas locales y una ruta al punto de conexión de VPC de la puerta de enlace.
El siguiente es un ejemplo de una tabla de enrutamiento para las subredes públicas, con rutas tanto para IPv4 como para IPv6. Si crea subredes solo para IPv4 en lugar de subredes de doble pila, la tabla de enrutamiento solo contiene las rutas IPv4.
Destino | Objetivo |
---|---|
10.0.0.0/16 |
local |
2001:db8:1234:1a00::/56 |
local |
0.0.0.0/0 | igw-id |
::/0 | igw-id |
El siguiente es un ejemplo de una tabla de enrutamiento para las subredes privadas, con rutas locales para IPv4 e IPv6. Si creó subredes solo para IPv4, la tabla de enrutamiento solo contiene la ruta IPv4. La última ruta envía el tráfico destinado a Amazon S3 al punto de conexión de VPC de la puerta de enlace.
Destino | Objetivo |
---|---|
10.0.0.0/16 |
local |
2001:db8:1234:1a00::/56 |
local |
s3-prefix-list-id |
s3-gateway-id |
Seguridad
Para esta configuración de ejemplo, se crea un grupo de seguridad para el equilibrador de carga, un grupo de seguridad para los servidores web y un grupo de seguridad para los servidores de bases de datos.
Equilibrador de carga
El grupo de seguridad del equilibrador de carga de aplicación o del equilibrador de carga de red debe permitir el tráfico entrante de los clientes en el puerto de agente de escucha del equilibrador de carga. Para aceptar tráfico desde cualquier lugar de Internet, especifique 0.0.0.0/0 como origen. El grupo de seguridad del equilibrador de carga también debe permitir el tráfico saliente del equilibrador de carga a las instancias de destino en el puerto de agente de escucha de la instancia y en el puerto de comprobación de estado.
Servidores web
Las siguientes reglas del grupo de seguridad permiten que los servidores web reciban tráfico HTTP y HTTPS del equilibrador de carga. Si lo desea, puede permitir que los servidores web reciban tráfico SSH o RDP desde su red. Los servidores web pueden enviar tráfico SQL o MySQL a los servidores de bases de datos.
Origen | Protocolo | Rango de puerto | Descripción |
---|---|---|---|
ID del grupo de seguridad del equilibrador de carga |
TCP | 80 | Permite el acceso HTTP de entrada desde el equilibrador de carga |
ID del grupo de seguridad del equilibrador de carga |
TCP | 443 | Permite el acceso HTTPS de entrada desde el equilibrador de carga |
Rango de direcciones IPv4 públicas de su red |
TCP | 22 | (Opcional) Permite el acceso SSH de entrada desde las direcciones IP IPv4 de su red |
Rango de direcciones IPv6 de su red |
TCP | 22 | (Opcional) Permite el acceso SSH de entrada desde las direcciones IP IPv6 de su red |
Rango de direcciones IPv4 públicas de su red |
TCP | 3389 | (Opcional) Permite el acceso RDP de entrada desde las direcciones IP IPv4 de su red |
Rango de direcciones IPv6 de su red |
TCP | 3389 | (Opcional) Permite el acceso RDP de entrada desde las direcciones IP IPv6 de su red |
Destino | Protocolo | Rango de puerto | Descripción |
---|---|---|---|
ID del grupo de seguridad para instancias que ejecuten Microsoft SQL Server |
TCP |
1433 |
Permite el acceso saliente de Microsoft SQL Server a los servidores de bases de datos |
ID del grupo de seguridad para instancias que ejecuten MySQL |
TCP |
3306 |
Permite el acceso saliente de MySQL a los servidores de bases de datos |
Servidores de bases de datos
Las siguientes reglas para el grupo de seguridad permiten a los servidores de bases de datos recibir solicitudes de lectura y escritura desde los servidores web.
Origen | Protocolo | Rango de puerto | Comentarios |
---|---|---|---|
ID del grupo de seguridad del servidor web |
TCP | 1433 | Permite el acceso entrante de Microsoft SQL Server desde los servidores web |
ID del grupo de seguridad del servidor web |
TCP | 3306 | Permite el acceso entrante de MySQL Server desde los servidores web |
Destino | Protocolo | Rango de puerto | Comentarios |
---|---|---|---|
0.0.0.0/0 | TCP | 80 | Permite el acceso HTTP saliente a internet a través de IPv4 |
0.0.0.0/0 | TCP | 443 | Permite el acceso HTTPS saliente a internet a través de IPv4 |
Para obtener más información acerca de los grupos de seguridad para instancias de base de datos de Amazon RDS, consulte Control de acceso con grupos de seguridad en la Guía del usuario de Amazon RDS.
1. Creación de la VPC
Utilice el siguiente procedimiento para crear una VPC con una subred pública y una subred privada en dos zonas de disponibilidad.
Para crear la VPC
Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/
. -
En el panel, elija Crear VPC.
-
En Recursos para crear, elija VPC y más.
-
Configurar la VPC:
-
Mantenga seleccionada la opción Generación automática de etiquetas de nombre para crear etiquetas de nombre para los recursos de la VPC, o desactívela para proporcionar sus propias etiquetas de nombre para los recursos de la VPC.
-
En Bloque de CIDR IPv4, puede conservar la sugerencia predeterminada o, como alternativa, ingresar el bloque de CIDR necesario para su aplicación o red. Para obtener más información, consulte Bloques de CIDR de VPC.
-
(Opcional) Si su aplicación se comunica mediante direcciones IPv6, elija Bloque de CIDR IPv6, Bloque de CIDR IPv6 proporcionado por Amazon.
-
Elija una opción de tenencia. Esta opción define si las instancias de EC2 que lance en la VPC se ejecutarán en hardware compartido con otras Cuentas de AWS o en hardware dedicado para su uso exclusivo. Si elige que la tenencia de la VPC sea
Default
, las instancias de EC2 lanzadas en esta VPC utilizarán el atributo de tenencia especificado al lanzar la instancia. Para obtener más información, consulte Lanzar una instancia mediante parámetros definidos en la Guía del usuario de Linux de Amazon EC2. Si elige que la tenencia de la VPC seaDedicated
, las instancias siempre se ejecutarán como Instancias dedicadas en hardware dedicado para su uso.
-
-
Configurar las subredes:
-
En Número de zonas de disponibilidad, elija 2 para poder lanzar instancias en dos zonas de disponibilidad y mejorar la resiliencia.
-
Para Número de subredes públicas, elija 2.
-
Para Número de subredes privadas, elija 2.
-
Puede conservar los bloques de CIDR predeterminados para las subredes o, si lo prefiere, puede expandir Personalizar los bloques de CIDR de subredes e introducir un bloque de CIDR. Para obtener más información, consulte Bloques de CIDR de subred.
-
-
En Puertas de enlace NAT, mantenga el valor predeterminado: Ninguno.
-
En Puntos de conexión de VPC, mantenga el valor predeterminado, Puerta de enlace de S3. Si bien no tiene ningún efecto, a menos que acceda a un bucket de S3, habilitar este punto de conexión de VPC no tiene ningún costo.
-
Mantenga ambas opciones seleccionadas en Opciones de DNS. Como resultado, los servidores web recibirán nombres de host DNS públicos que corresponden a sus direcciones IP públicas.
-
Seleccione Crear VPC.
2. Implementar la aplicación
Lo ideal es que ya haya probado sus servidores web y servidores de bases de datos en un entorno de desarrollo o de prueba y haya creado los scripts o las imágenes que utilizará para implementar la aplicación en producción.
Puede utilizar instancias de EC2 para sus servidores web. Hay diversas formas para implementar instancias de EC2. Por ejemplo:
Para mejorar la disponibilidad, puede utilizar Amazon EC2 Auto Scaling para implementar servidores en varias zonas de disponibilidad y mantener la capacidad mínima de servidor que requiere su aplicación.
Puede utilizar Elastic Load Balancing para distribuir el tráfico de manera uniforme entre los servidores. Puede asociar un equilibrador de carga a un grupo de escalado automático.
Puede usar instancias de EC2 para sus servidores de bases de datos o uno de nuestros tipos de bases de datos personalizadas. Para obtener más información, consulte Bases de datos en AWS: Cómo elegir.
3. Pruebe la configuración
Una vez que haya terminado de implementar la aplicación, puede probarla. Si la aplicación no puede enviar ni recibir el tráfico esperado, puede utilizar el Analizador de accesibilidad para solucionar problemas. Por ejemplo, el Analizador de accesibilidad puede identificar problemas de configuración en sus tablas de enrutamiento o grupos de seguridad. Para obtener más información, consulte la Guía del Analizador de accesibilidad.
4. Limpieza
Cuando complete esta configuración, puede eliminarla. Antes de poder eliminar la VPC, debe terminar las instancias y eliminar el equilibrador de carga. Para obtener más información, consulte Eliminar su VPC.