Instalación de Jitterbit App Builder en AWS (Windows)
Introducción
Este manual cubrirá varios métodos sugeridos para instalar App Builder en AWS con Windows y SQL Server. Existen muchos métodos para configurar la arquitectura subyacente para alojamiento web, redes y aspectos de seguridad que se detallan a continuación y que pueden adaptarse según sea necesario.
Esta guía está destinada principalmente a ayudar con una nueva cuenta de AWS en blanco o una existente que pueda adaptarse para cumplir con los requisitos básicos.
Dos métodos generales de uso de AWS para alojar App Builder en Windows son:
- PaaS: ElasticBeanstalk - .NET como plataforma (con y sin alta disponibilidad)
- IaaS: instancias Ec2 de máquinas virtuales (similar a las locales)
Este documento se centra en el uso de ElasticBeanstalk (EB), ya que es el método más sencillo en AWS para la gestión a largo plazo y la facilidad de actualización. Para obtener información sobre Ec2, consulte nuestra documentación de máquinas virtuales/locales. Además, este documento también se centra en el uso de RDS (Servicio de Base de Datos Relacional) para la base de datos.
Nota
Puede ahorrar costos y simplificar la configuración de todos los objetos en subredes públicas (subredes que se encuentran en una tabla de rutas donde la puerta de enlace predeterminada ((0.0.0.0/0)) es una puerta de enlace de Internet). Esto elimina la necesidad de una puerta de enlace NAT y un alojar bastión. Tenga en cuenta que los grupos de seguridad serán la única barrera contra el acceso externo y no podrá tener una IP saliente confiable de App Builder para incluir en la lista de permisos de sistemas externos. (Las puertas de enlace NAT tienen una eIP estática que será la IP saliente).
Elementos de AWS
- VPC con 4 o más subredes; Dos o más asociadas a una tabla de enrutar que contiene una puerta de enlace de Internet como enrutar predeterminada (pública) - Dos o más asociadas a una tabla de enrutar que utiliza una puerta de enlace NAT como enrutar predeterminada (privada) Las zonas de disponibilidad deben reflejarse en todas las tablas de rutas (es decir: utilizando pública: 1a, 1b - privada: 1a, 1b)
- Certificado - Necesitará crear o importar un certificado para usar SSL
- IAM: Usuarios, Roles*, Políticas* - Otorgamiento de permisos de servicio
- Grupos de seguridad* - Concesión de permisos de entrada y entre servidores
- Ec2, alojar Bastion - Servidor Jump para acceso de administrador de base de datos y servidor de aplicaciones
- S3 Bucket* - configurado para permitir el acceso de lectura y escritura de App Builder con el fin de crear y compartir claves de seguridad
- Base de datos* - Se puede ejecutar mediante RDS o instalar en instancias EC2
- Elastic Beanstalk* - Administra instancias EC2 de App Builder
Uno por instancia
Redes básicas
Ejemplo de VPC:
VPC predeterminada: 172.31.0.0/16
Puerta de enlace NAT (opcional): Subred pública, Conectividad pública, asignar eIP.
Subredes:
Tabla de rutas públicas:
Tabla de rutas privadas:
Configuración de S3 para claves de cifrado de datos
Cree un depósito S3 en la región deseada; este se usará para almacenar metadatos del estado de la sesión y el cifrado de la columna de App Builder:
Nombre de ejemplo: *companyname*-vinyl-encryption-keys-*dev*
*Denegar acceso público
SOY
Políticas
Política de acceso de S3:
Crear nueva política con este JSON, editar el recurso con el nombre anterior:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource":
"arn:aws:s3:::companyname-vinyl-encryption-keys-dev/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
Nombre del ejemplo: *companyname*-vinyl-encryption-keys-s3-*dev*
Ejemplo de descripción: Otorga a EC2 acceso al bucket S3
Roles
Crear nuevo rol: Tipo=EC2 -> Agregar políticas:
<S3 Policy Above>
-AWSElasticBeanstalkMulticontainerDocker
-AWSElasticBeanstalkWebTier
-AWSElasticBeanstalkWorkerTier
Nombre: *companyname*-eb-*dev*
EC2
Dentro del servicio EC2, vaya a cada una de las siguientes secciones y cree lo siguiente:
Grupos de seguridad:
Cree al menos dos grupos: uno para EC2/EB (aplicado en EB) y otro para RDS. El grupo EB se añadirá como origen al grupo RDS, como se muestra a continuación. Estos otorgan permisos de RDP a la instancia de EC2 y permiten que esta acceda a la instancia de RDS:
Configuración del grupo de seguridad | ||||
---|---|---|---|---|
Nombre: EB-DEV (Permite puertos a EC2) | ||||
RDP | TCP | 3389 | <VPN Endpoint> | VPN de empresa |
RDP | TCP | 3389 | <Yourself> | RDP |
RDP | TCP | 3389 | sgr-091a912ec59ae4184 | Bastión |
Nombre: RDS-DEV (Permite puertos a RDS) | ||||
MSSQL | TCP | 1433 | <VPN Endpoint> | VPN de empresa |
MSSQL | TCP | 1433 | sgr-082d6e34327ee6b9c8 | (EB-DEV) |
MSSQL | TCP | 1433 | <Yourself> | RDS |
MSSQL | TCP | 1433 | sgr-091a912ec59ae4184 | Bastión |
Nombre: Bastión (Opcional) (Se agrega arriba para permitirle acceder a instancias en subredes privadas) | ||||
MSSQL | TCP | 1433 | <VPN Endpoint> | VPN de empresa |
Pares de claves:
Crear par de claves -> <companyname-%dev%>
-> PEM -> Crear
Instancias: Crear un alojar de Bastion (Opcional)
Inicie una instancia básica de Windows 2019 para usarla como host de salto RDP si se utilizan subredes privadas para instancias de App Builder.
Crear una base de datos usando RDS
- Abra el servicio RDS en la consola de AWS
- Elija Grupos de subredes > Crear grupo de subredes de base de datos > Etiquete como privado o público, dependiendo de si desea la capacidad de acceso externo (si los grupos de seguridad lo permiten) > Elija su VPC y agregue y seleccione el par de zonas de disponibilidad que utilizó al configurar las subredes para la VPC anterior > Ahora seleccione las dos subredes correctas que sean privadas o públicas. > Crear
-
Elija Crear base de datos > Microsoft SQL Server > Elegir licencia:
- SQL Server Express Edition *(Aceptable para bases de datos pequeñas de menos de 10 GB e instancias de tamaño 'grande' o más pequeñas).
- SQL Web Edition (para bases de datos > 10 GB; para tamaños de instancia > 'grandes')
- SQL Standard Edition (para Multi-AZ; Muy caro)
-
Identificador de instancia de base de datos: IE: companyname-db-dev
- Nombre de usuario maestro: App Builder
- Contraseña maestra: genere una contraseña aleatoria segura que excluya símbolos (por ejemplo: zpZvLtLmRmrrE68T)
- Tamaño de instancia: T3.Mediano o mayor, según la carga de trabajo (M5.Grande o mayor para un uso elevado y sostenido de la CPU).
- Almacenamiento asignado: 20 GB para comenzar para desarrollo; se recomiendan 200 GB o más para producción debido a la mayor asignación de IOPS
-
Grupo de subredes: elige el que creaste anteriormente.
- Acceso público: Sí, si el grupo anterior utilizó subredes públicas; de lo contrario, no.
- Grupos de seguridad de VPC existentes: elija el grupo RDS creado anteriormente.
Establezca los valores restantes como desee (mantenga 1433 como puerto DB).
Nota
Si aloja App Builder con Jitterbit, SQL Server Express no es una opción de base de datos compatible.
Configuración de Elastic Beanstalk (EB)
- Nombre de la aplicación:
App Builder
- Nombre del ambiente:*companyname*-app-*dev*
- Plataforma: .NET en Windows; IIS 10 Windows 2019, última plataforma
-
Sube el paquete .zip de App Builder con el nombre de archivo terminado en '-eb'. Por ejemplo:
vinyl-3.3.12345-win-eb.zip
- Seleccione "Configurar más opciones". - Desplácese hasta la parte superior de la página. Seleccione: Configuración personalizada. Para lo siguiente, haga clic en "Editar" en cada sección y guarde en el siguiente orden:Configuración de Elastic Beanstalk Capacidad: Carga equilibrada; mín. 1/máx. 1 (Consulte el manual de alta disponibilidad para obtener información más detallada);
Tipo de instancia: T3.medium o superior (Según la carga);
ID de AMI: Usar el ID de AMI predeterminadoRed: Seleccionar VPC creada
Subredes del balanceador de carga: Seleccionar 2 subredes públicas
Subredes de instancia: Seleccionar 2 subredes privadas
Subredes de la base de datos: Sin usarInstancias: Tamaño: 150 GB; Grupos: Grupo EB creado en la sección EC2. Balanceador de carga: Tipo: Aplicación -> Procesos; Editar predeterminado;
Código HTTP: 200; Ruta /ping
Para SSL: (Consulte Configuración de HTTPS) Agregar oyente - 443/HTTPS - Su certificado - TLS-1-2-Ext-2018-06Seguridad: <EC2 Key pair from above>
Perfil de instancia de IAM creado anteriormente. Dejar el rol de servicio como está (autogenerado) -
¡Crear!
Configuración de publicación EB
El ambiente tardará aproximadamente entre 15 y 20 minutos en aparecer.
Una vez que EB haya terminado de instalar los componentes, es normal que el estado sea rojo en esta fase, ya que es necesario actualizar las propiedades del ambiente EB predeterminadas.
En el ambiente de ElasticBeanstalk: vaya a: Configuración -> Software -> Editar:
Desplácese hacia abajo hasta Propiedades del ambiente:
Nombre de la propiedad | Predeterminado | Ejemplo |
---|---|---|
Información de conexión | DatabaseType=SQLServer;HostName=;DatabaseName=App Builder;UserName=vinyl;Password=password | DatabaseType=SQLServer;HostName=example-db-dev.cmpgei1x4tzz.us-east-1.rds.amazonaws.com;DatabaseName=App Builder;UserName=vinyl;Password=P@SSW**RD~!! |
Cifrado de datos: Punto final del contenedor S3 | https://{bucket}s3{-aws-region}.amazonaws.com | https://companyname-vinyl-encryption-keys-dev |
Cifrado de datos: Prefijo de clave S3 | {elastic-beanstalk-environment-name} | Companyname-app-Dev |
ConnectionInfo
: Edite las partes de la cadena para que coincidan con el nombre de host, el nombre de usuario y la contraseña de su base de datos.DataEncryptionKeyS3BucketEndpoint
: Establezca el nombre del depósito creado anteriormente.DataEncryptionKeyS3KeyPrefix
: Establezca el nombre del ambiente de Elastic Beanstalk.
Una vez aplicados estos pasos y completadas las actualizaciones, acceda a la URL del sitio de App Builder en EB. Esto activará la instalación o actualización de la base de datos, si es necesario.
Configuración de HTTPS
De forma predeterminada, los nuevos ambientes de Elastic Beanstalk no están configurados para HTTPS. Como se indica en la documentación de App Builder, se recomienda encarecidamente usar HTTPS para todos los nuevos ambientes de Elastic Beanstalk.
Los ambientes Elastic Beanstalk finalizan la conexión HTTPS en Elastic Load Balancer.
Nota
Para el siguiente proceso, debe haber creado o importado un certificado en el servicio Administrador de Certificados.
Configuración de Elastic Beanstalk para aceptar solicitudes HTTPS
- Inicie sesión en la consola de Amazon Web Services
- En Servicios, seleccione Elastic Beanstalk
- Seleccione el ambiente que está actualizando
- Seleccione Configuración en el menú de la izquierda.
- En Load Balancer, seleccione Editar
-
Si no está presente, agregue Puerto de escucha 443, HTTPS:
-
Seleccione el ID de certificado SSL que corresponda *Para la 'Política SSL'; en Windows 2019, se debe usar TLS 1.2
-
Haga clic en el botón Guardar y luego en Aplicar en la página Balanceador de carga:
Aplicar redirección HTTPS y FQDN
Asegúrese de haber creado y probado una entrada DNS CNAME para su dominio con su registrador o servidores de nombres actuales antes de configurar lo siguiente. La URI de ElasticBeanstalk será el valor objetivo que debe usar su entrada DNS. También debe coincidir con el certificado SSL que utiliza.
Ejemplo
- Host/Nombre:
demo1.companydomain.com
- Tipo:
CNAME
- Objetivo/Valor:
demo1.us-east-1.elasticbeanstalk.com
- Desde App Builder, vaya a IDE > Proveedores de seguridad
-
Desde el panel Configuración, haga clic en el botón Más y seleccione Sitios:
-
Haga doble clic en la entrada predeterminada
- Haga clic en el botón Editar
- Ingrese su URL FQDN con https en el campo URL
- Marque para habilitar Redireccionar
-
En el campo Redirigir si existe encabezado, ingrese X-Forwarded-For:
-
Haga clic en Guardar