Saltar al contenido

Implementación de alta disponibilidad en AWS para Jitterbit App Builder

Introducción

Se pueden usar los siguientes productos de AWS para crear un entorno de App Builder de alta disponibilidad (HA):

  • Un bucket de S3, configurado con acceso de lectura/escritura de App Builder, para crear y compartir claves de seguridad.

  • Una instancia de RDS en EC2 para la base de datos de App Builder.

  • ElastiCache, utilizado como bus de mensajes para compartir información entre instancias de App Builder.

  • (Opcional) Se puede usar Elastic Beanstalk para administrar instancias de App Builder y proporcionar un balanceador de carga que distribuya las solicitudes de clientes.

El siguiente diagrama muestra una forma en que se pueden usar estos servicios como un entorno de App Builder:

%%{init: {"themeVariables": {"lineColor": "#6b7280", "edgeLabelBackground": "#f5f5f5"}}}%% flowchart LR A[fa:fa-plug API client] B[fa:fa-balance-scale Elastic
load balancer] W[fa:fa-globe Web browser] AB1[fa:fa-window-restore App Builder] AB2[fa:fa-window-restore App Builder] AB3[fa:fa-window-restore App Builder] KS@{shape: das, label: "fa:fa-key S3
key storage"} MB["fa:fa-random Message bus
(Redis)"] ABDB[(fa:fa-database App Builder
database)] ODS@{ shape: lin-cyl, label: "fa:fa-table Other
data sources" } A --> B W --> B subgraph Process_Group [Elastic Beanstalk] B --> AB1 B --> AB2 B --> AB3 end AB1 --> MB AB2 --> MB AB3 --> MB subgraph EC[ElastiCache] MB end MB --> ABDB MB --> ODS KS -.- AB1 KS -.- AB2 KS -.- AB3

Almacenar claves de cifrado de datos en un S3

Como se señala en Configuración de cifrado de datos, no se puede usar el almacenamiento local de instancias EC2 para almacenamiento a largo plazo. Por lo tanto, las Claves de Cifrado de Datos (DEK) deben almacenarse en buckets de S3, según los siguientes detalles:

  • Bucket: vinyl-data-encryption-keys (Bucket de S3 predeterminado utilizado por entornos de Elastic Beanstalk).
  • Dirección: https://s3.amazonaws.com/vinyl-data-encryption-keys
  • Acceso: aws-elasticbeanstalk-ec2-role

Dentro del bucket, las DEK tienen como prefijo el nombre del entorno de Elastic Beanstalk.

Configurar el almacenamiento de la Clave de Cifrado de Datos (DEK) del entorno de Elastic Beanstalk

App Builder incluye un script .ebextensions que registra las propiedades del entorno para el almacenamiento de DEK. Estas propiedades incluyen lo siguiente:

Propiedad Predeterminado Ejemplo
DataEncryptionKeyStorage S3 S3
DataEncryptionKeyS3BucketEndpoint https://{bucket}.s3{-aws-region}.amazonaws.com https://s3.amazonaws.com/vinyl-data-encryption-keys
DataEncryptionKeyS3KeyPrefix {elastic-beanstalk-environment-name} abacceptance

App Builder no iniciará con las propiedades del entorno de Elastic Beanstalk predeterminadas. Debe cambiar los valores de DataEncryptionKeyS3BucketEndpoint y DataEncryptionKeyS3KeyPrefix.

Otorgar acceso a buckets de S3 a entornos de Elastic Beanstalk

Las instancias de EC2 dentro de un entorno de Elastic Beanstalk se asignan a un rol. La siguiente política de ejemplo otorga acceso a un bucket de S3:

Ejemplo de política de acceso a S3
{
  "Version": "2025-10-17",
  "Statement": [
    {
       "Effect": "Allow",
       "Action": "s3:*",
       "Resource": "arn:aws:s3:::{bucket-name}/*"
     },
     {
       "Effect": "Allow",
       "Action": [
         "s3:ListAllMyBuckets",
         "s3:GetBucketLocation",
         "s3:ListBucket"
       ],
       "Resource": "*"
     }
   ]
}

Configuración de ElastiCache

Se puede usar ElastiCache para comunicarse entre servidores de App Builder. Un nodo pequeño, sin réplicas ni shards, es suficiente.

Utiliza la siguiente información cuando configures los servidores de aplicaciones en las configuraciones de Beanstalk:

attachment

Configuración de la base de datos

La configuración de la base de datos está fuera del alcance de este documento. Jitterbit puede proporcionar instrucciones de configuración de RDS si se desea.

Configuración de Elastic Beanstalk

Para configurar un servicio de AWS Elastic Beanstalk, sigue estos pasos:

  1. Crea el entorno:

    attachment

  2. Selecciona Create web server:

    attachment

  3. Selecciona IIS:

    Para cambiar los valores predeterminados, selecciona Change platform version y luego selecciona 8.5 on 64bit Windows Server 2012 R2:

    attachment

  4. Selecciona la versión de aplicación apropiada:

    attachment

  5. Ingresa el nombre del entorno. Este se convierte en parte de una URL que se puede usar para acceder a este entorno:

    attachment

    Consejo

    Este espacio de nombres se utiliza en todas las instancias de Elastic Beanstalk para todos los clientes de AWS.

  6. Marca Create this environment inside a VPC:

    attachment

  7. Establece los siguientes valores:

    • Instance type: t2.small (Jitterbit recomienda instancias T2.small y T2.medium para propósitos de desarrollo y control de calidad, e instancias más grandes para entornos de producción.)
    • EC2 key pair: vinyl
    • (Opcional) Ingresa tu dirección de correo electrónico para recibir notificaciones sobre problemas del entorno.

    attachment

  8. Configura los parámetros de VPC según sea necesario. (La visibilidad de ELB debe ser External.)

    attachment

  9. Revisa el resumen:

    attachment

  10. Establece los permisos:

    attachment

  11. Guarda la configuración:

    attachment

Después de que el entorno esté activo

Después de que el entorno aparezca en verde en el panel de control, debes configurar algunos parámetros adicionales. En Configuration > Software Configuration, establece valores para los siguientes campos de información de conexión:

  • ConnectionInfo:DatabaseType

  • ConnectionInfo:HostName

  • ConnectionInfo:DatabaseName

  • ConnectionInfo:UserName

  • ConnectionInfo:Password

Después de completar estos campos, se abre App Builder. (Pueden ser necesarios pasos adicionales para una instalación o actualización de base de datos.)

Configurar HTTPS

Los entornos de Elastic Beanstalk terminan la conexión HTTPS en el Elastic Load Balancer. La compatibilidad de App Builder con proxies inversos le permite detectar y manejar este escenario. App Builder reconoce tres propiedades de entorno definidas cuando se implementa la instancia de Elastic Beanstalk. Estas variables de entorno están automatizadas; no necesitarás configurarlas por ti mismo.

Se recomienda fuertemente HTTPS para todos los entornos nuevos de Elastic Beanstalk. Sin embargo, por defecto, los entornos nuevos de Elastic Beanstalk no están configurados para HTTPS. Para configurar Elastic Beanstalk a fin de que acepte solicitudes HTTPS, sigue estos pasos:

  1. Inicia sesión en la consola de Amazon Web Services.

  2. En Services, elige Elastic Beanstalk.

  3. Selecciona el entorno que estás actualizando.

  4. Selecciona Configuration en el menú de la izquierda.

  5. Selecciona el icono de engranaje junto a Load Balancing.

  6. Establece el Secure Listener Port en 443.

  7. Selecciona el SSL Certificate ID que sea aplicable.

  8. Haz clic en el botón Save:

    attachment