Ejemplo: Lanzamiento de Elastic Beanstalk en una VPC con Amazon RDS - AWS Elastic Beanstalk

Ejemplo: Lanzamiento de Elastic Beanstalk en una VPC con Amazon RDS

En esta sección, encontrará las tareas para implementar una aplicación de Elastic Beanstalk con Amazon RDS en una VPC utilizando una gateway de NAT. Su infraestructura será similar al diagrama siguiente.


      Topología de Elastic Beanstalk y VPC con Amazon RDS
nota

Si nunca antes ha utilizado una instancia de base de datos con la aplicación, intente agregar una a un entorno de prueba y establecer conexión con una instancia de base de datos externa antes de agregar una configuración de VPC al conjunto.

Creación de una VPC con subredes públicas y privadas

Puede utilizar la consola de Amazon VPC para crear una VPC.

Para crear una VPC

  1. Inicie sesión en la consola de Amazon VPC.

  2. En el panel de navegación, elija VPC Dashboard (Panel de VPC). A continuación, elija Create VPC (Crear VPC).

  3. Elija VPC with Public and Private Subnets (VPC con subredes privadas y públicas) y, a continuación, Select (Seleccionar).

    
              Elija VPC with Public and Private Subnets (VPC con subredes privadas y públicas) y, a continuación, Select (Seleccionar).
  4. El balanceador de carga Elastic Load Balancing y las instancias Amazon EC2 deben estar en la misma zona de disponibilidad para comunicarse entre sí. Elija la misma zona de disponibilidad en cada lista de zona de disponibilidad.

    
            Elija las mismas zonas de disponibilidad para sus subredes privadas y públicas.
  5. Elija una dirección IP elástica para gateway NAT.

  6. Seleccione Create VPC.

    El asistente comienza a crear la VPC, las subredes y la gateway de Internet. También actualiza la tabla de ruteo principal y crea una personalizada. Por último, el asistente crea una gateway NAT en la subred pública.

    nota

    Puede elegir lanzar una instancia NAT en la subred pública en lugar de una gateway NAT. Para obtener más información, consulte Situación 2: VPC con subredes privadas y públicas (NAT) en la Guía de usuario de Amazon VPC.

  7. Una vez creada la VPC correctamente, obtendrá un ID de VPC. Necesitará este valor para el siguiente paso. Para ver el ID de la VPC, seleccione Your VPCs (Sus VPC) en el panel izquierdo de la consola de Amazon VPC.

    
            La consola de Amazon VPC muestra el ID de la VPC.

Creación de un grupo de subredes de base de datos

Un grupo de subredes de base de datos de una VPC es una colección de subredes (normalmente privadas) que se pueden designar para las instancias de base de datos de RDS de los back-end. Cada grupo de subredes de base de datos debe tener al menos una subred por cada una de las zonas de disponibilidad de una región de AWS determinada. Para obtener más información, consulte Creación de una subred en la VPC.

Creación de un grupo de subredes de base de datos

  1. Abra la consola de Amazon RDS.

  2. En el panel de navegación, elija Subnet groups.

  3. Elija Create DB Subnet Group.

  4. Elija Name (Nombre) y escriba el nombre del grupo de subredes de base de datos.

  5. Elija Description (Descripción) y describa el grupo de subredes de base de datos.

  6. Para VPC, elija el ID de la VPC que ha creado.

  7. En Add subnets (Añadir subredes), elija Add all the subnets related to this VPC (Añadir todas las subredes relacionadas con esta VPC).

    
            Añada todas las subredes relacionadas con su VPC.
  8. Cuando haya terminado, seleccione Create (Crear).

    El nuevo grupo de subredes de base de datos aparece en la lista de grupos de subredes de la consola de Amazon RDS. En el panel de detalles que se encuentra en la parte inferior de la página, puede elegir en esa lista para ver los detalles (por ejemplo, todas las subredes asociadas al grupo).

Implementar en Elastic Beanstalk

Una vez configurada la VPC, puede crear el entorno dentro de ella e implementar la aplicación en Elastic Beanstalk. Puede hacerlo mediante la consola de Elastic Beanstalk o puede utilizar los kits de herramientas de AWS, la CLI de AWS, la CLI de EB o la API de Elastic Beanstalk. Si utiliza la consola de Elastic Beanstalk, solo tiene que cargar el archivo .war o .zip y seleccionar la configuración VPC dentro del asistente. Después, Elastic Beanstalk crea el entorno dentro de la VPC e implementa la aplicación. Como alternativa, puede utilizar los kits de herramientas de AWS, la CLI de AWS, la CLI de EB o la API de Elastic Beanstalk para implementar su aplicación. Para ello, tiene que definir los valores de configuración de la VPC en un archivo de configuración e implementarlo con el paquete de código fuente. En este tema se ofrecen instrucciones para ambos métodos.

Implementación con la consola de Elastic Beanstalk

La consola de Elastic Beanstalk le guía en el proceso de creación de un nuevo entorno dentro de la VPC. Tiene que proporcionar un archivo .war (para aplicaciones Java) o un archivo .zip (para el resto de aplicaciones). En la página VPC Configuration (Configuración de VPC) del asistente de entorno de Elastic Beanstalk, debe hacer las selecciones siguientes:

VPC

Seleccione la VPC.

VPC security group (Grupo de seguridad de VPC)

Seleccione el grupo de seguridad de la instancia que ha creado antes.

ELB visibility (Visibilidad de ELB)

Seleccione External si el balanceador de carga debe estar disponible públicamente o seleccione Internal si el balanceador de carga solo debe estar disponible dentro de la VPC.

Seleccione las subredes para el balanceador de carga y las instancias EC2. Asegúrese de que selecciona la subred pública para el balanceador de carga y la subred privada para las instancias Amazon EC2. De manera predeterminada, el asistente para la creación de VPC crea la subred pública en 10.0.0.0/24 y la subred privada en 10.0.1.0/24.

Puede ver el ID de la subred eligiendo Subnets (Subredes) en la consola de Amazon VPC.


            Identificadores de subred para la VPC

Implementación con los conjuntos de herramientas de AWS, CLI de EB, CLI de AWS o API

Cuando se implementa una aplicación en Elastic Beanstalk utilizando los kits de herramientas de AWS, la CLI de EB, la CLI o la API de AWS, se puede especificar la configuración de las opciones de la VPC en un archivo e implementarlo con el paquete de código fuente. Para obtener más información, consulte Personalización avanzada de entornos con archivos de configuración (.ebextensions).

Cuando actualice las opciones de configuración, tendrá que especificar lo siguiente:

  • VPCId: contiene el ID de la VPC.

  • Subnets: contiene el ID de la subred del grupo de Auto Scaling. En este ejemplo, es el ID de la subred privada.

  • ELBSubnets: contiene el ID de la subred del balanceador de carga. En este ejemplo, es el ID de la subred pública.

  • SecurityGroups: contiene el ID de los grupos de seguridad.

  • DBSubnets: contiene el ID de las subredes de base de datos.

    nota

    Si utiliza subredes de base de datos, deberá crear subredes adicionales en la VPC para cubrir todas las zonas de disponibilidad de la región de AWS.

Si lo desea, también puede especificar los siguientes datos:

  • ELBScheme: especifique internal si desea crear un balanceador de carga interno en la VPC para que no se pueda obtener acceso a la aplicación de Elastic Beanstalk desde el exterior de la VPC.

A continuación, se incluye un ejemplo de la configuración que se utiliza al implementar la aplicación de Elastic Beanstalk en una VPC. Para obtener más información sobre la configuración de VPC (con ejemplos acerca de cómo definir las opciones, los valores predeterminados y los valores válidos), consulte el espacio de nombres aws:ec2:vpc en Opciones de configuración.

option_settings: - namespace: aws:autoscaling:launchconfiguration option_name: EC2KeyName value: ec2keypair - namespace: aws:ec2:vpc option_name: VPCId value: vpc-170647c - namespace: aws:ec2:vpc option_name: Subnets value: subnet-4f195024 - namespace: aws:ec2:vpc option_name: ELBSubnets value: subnet-fe064f95 - namespace: aws:ec2:vpc option_name: DBSubnets value: subnet-fg148g78 - namespace: aws:autoscaling:launchconfiguration option_name: InstanceType value: m1.small - namespace: aws:autoscaling:launchconfiguration option_name: SecurityGroups value: sg-7f1ef110
nota

Si utiliza subredes de bases de datos, asegúrese de que tiene subredes en la VPC para cubrir todas las zonas de disponibilidad de la región de AWS.