

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# infraestructura
<a name="infrastructure-pattern-list"></a>

**Topics**
+ [Acceda a un host bastión mediante Session Manager y Amazon EC2 Instance Connect](access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.md)
+ [Centralice la resolución de DNS mediante AWS Managed Microsoft AD Microsoft Active Directory local](centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.md)
+ [Centralice la supervisión mediante Amazon CloudWatch Observability Access Manager](centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.md)
+ [Comprueba EC2 las instancias para ver si hay etiquetas obligatorias en el lanzamiento](check-ec2-instances-for-mandatory-tags-at-launch.md)
+ [Limpie los recursos de AWS Account Factory for Terraform (AFT) de forma segura después de la pérdida de archivos estatales](clean-up-aft-resources-safely-after-state-file-loss.md)
+ [Cree una canalización en las regiones de AWS que no sean compatibles con AWS CodePipeline](create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.md)
+ [Personalice los nombres de los roles predeterminados mediante AWS CDK aspectos y trampillas de escape](customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.md)
+ [Implemente un clúster de Cassandra en Amazon EC2 con estática privada IPs para evitar el reequilibrio](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Amplíe VRFs su alcance a AWS mediante AWS Transit Gateway Connect](extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.md)
+ [Reciba notificaciones de Amazon SNS cuando cambie el estado de clave de una clave de AWS KMS](get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.md)
+ [Preserve el espacio IP enrutable en los diseños de VPC de varias cuentas para subredes que no son de carga de trabajo](preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets.md)
+ [Aprovisione un producto de Terraform AWS Service Catalog mediante un repositorio de código](provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.md)
+ [Registre varios Cuentas de AWS con una sola dirección de correo electrónico mediante Amazon SES](register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.md)
+ [Configure la resolución de DNS para redes híbridas en un entorno de AWS de una sola cuenta](set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment.md)
+ [Configure automáticamente los bots de UiPath RPA en Amazon EC2 mediante AWS CloudFormation](set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.md)
+ [Configure una PeopleSoft arquitectura de alta disponibilidad en AWS](set-up-a-highly-available-peoplesoft-architecture-on-aws.md)
+ [Configure la recuperación ante desastres para Oracle JD Edwards EnterpriseOne con AWS Elastic Disaster Recovery](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Configure la detección de CloudFormation desviaciones en una organización multirregional y multicuenta](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Importación correcta de un bucket de S3 como CloudFormation pila de AWS](successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.md)
+ [Sincronice los datos entre los sistemas de archivos de Amazon EFS en distintas regiones de AWS mediante AWS DataSync](synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.md)
+ [Pruebe AWS la infraestructura mediante LocalStack Terraform Tests](test-aws-infra-localstack-terraform.md)
+ [Actualice los clústeres de SAP Pacemaker de a ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Utilice zonas de disponibilidad coherentes en VPCs diferentes cuentas de AWS](use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.md)
+ [Utilice el usuario IDs en las políticas de IAM para el control de acceso y la automatización](use-user-ids-iam-policies-access-control-automation.md)
+ [Validar Account Factory para el código Terraform (AFT) localmente](validate-account-factory-for-terraform-aft-code-locally.md)
+ [Más patrones](infrastructure-more-patterns-pattern-list.md)

# Acceda a un host bastión mediante Session Manager y Amazon EC2 Instance Connect
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect"></a>

*Piotr Chotkowski y Witold Kowalik, Amazon Web Services*

## Resumen
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-summary"></a>

Un *host bastión*, también denominado *jump box*, es un servidor que proporciona un único punto de acceso desde una red externa a los recursos ubicados en una red privada. Un servidor expuesto a una red pública externa, como Internet, supone un posible riesgo de seguridad en caso de acceso no autorizado. Es importante proteger y controlar el acceso a estos servidores.

Este patrón describe cómo puede utilizar [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) y [Amazon EC2 Instance Connect para conectarse](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) de forma segura a un host bastión de Amazon Elastic Compute Cloud (Amazon EC2) implementado en su Cuenta de AWS servidor. El administrador de sesiones es una capacidad de AWS Systems Manager. Las ventajas de este patrón incluyen:
+ El host bastión implementado no tiene ningún puerto de entrada abierto expuesto a la Internet pública. Esto reduce la posible superficie expuesta a ataques.
+ No necesita almacenar ni mantener las claves de Secure Shell (SSH) de larga duración en su Cuenta de AWS. En su lugar, cada usuario genera un nuevo key pair de claves SSH cada vez que se conecta al host bastión. AWS Identity and Access Management Las políticas (IAM) que se adjuntan a las AWS credenciales del usuario controlan el acceso al host bastión.

**Destinatarios previstos**

Este patrón está dirigido a lectores que tengan experiencia con conocimientos básicos de Amazon EC2, Amazon Virtual Private Cloud (Amazon VPC) y Hashicorp Terraform.

## Requisitos previos y limitaciones
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ AWS Command Line Interface (AWS CLI) versión 2, [instalada](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) y [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ [Se ha instalado](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) el AWS CLI complemento Session Manager para
+ CLI de Terraform, [instalada](https://developer.hashicorp.com/terraform/cli)
+ Almacenamiento para el [estado](https://developer.hashicorp.com/terraform/language/state) de Terraform, como un bucket de Amazon Simple Storage Service (Amazon S3) y una tabla de Amazon DynamoDB que sirven como un backend remoto para almacenar el estado de Terraform. Para obtener más información sobre el uso de backends remotos para el estado de Terraform, consulte los [backends de Amazon S3](https://www.terraform.io/language/settings/backends/s3) (documentación de Terraform). Para ver un ejemplo de código que configura la administración remota del estado con un backend de Amazon S3, consulte [remote-state-s3-backend](https://registry.terraform.io/modules/nozaq/remote-state-s3-backend/aws/latest) (Terraform Registry). Tenga en cuenta los siguientes requisitos:
  + El bucket de Amazon S3 y la tabla de DynamoDB deben estar en la misma Región de AWS.
  + Al crear la tabla de DynamoDB, la clave de partición debe ser `LockID` (distingue entre mayúsculas y minúsculas) y el tipo de clave de partición debe ser `String`. Todos los demás valores de la tabla deben estar en sus valores predeterminados. Para obtener más información, consulte [Acerca de las claves principales](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) y [Crear una tabla](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html) en la documentación de DynamoDB.
+ Un cliente SSH, instalado.

**Limitaciones**
+ Este patrón pretende ser una prueba de concepto (PoC) o una base para un mayor desarrollo. No debe utilizarse en su forma actual en entornos de producción. Antes de la implementación, ajuste el código de muestra del repositorio para que se adapte a sus requisitos y a su caso de uso.
+ Este patrón supone que el host bastión de destino utiliza Amazon Linux 2 como sistema operativo. Si bien es posible utilizar otras Amazon Machine Images (AMIs), otros sistemas operativos están fuera del alcance de este patrón.
**nota**  
Se acerca el fin de la compatibilidad de Amazon Linux 2. Para obtener más información, consulte [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).
+ En este patrón, el host bastión está ubicado en una subred privada sin una puerta de enlace NAT ni una puerta de enlace de Internet. Este diseño aísla la EC2 instancia de Amazon de la Internet pública. Puede añadir una configuración de red específica que le permita comunicarse con Internet. Para obtener más información, consulte [Conectar su nube privada virtual (VPC) a otras redes](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) en la documentación de Aamazon VPC. Del mismo modo, siguiendo el [principio de privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), el host del bastión no tiene acceso a ningún otro recurso suyo a Cuenta de AWS menos que le concedas permisos de forma explícita. Para más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) en la documentación de IAM.

**Versiones de producto**
+ CLI de AWS versión 2
+ Terraform versión 1.3.9

## Arquitectura
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-architecture"></a>

**Pila de tecnología de destino**
+ Una VPC con una única subred privada
+ Los siguientes [puntos de conexión de VPC de interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html):
  + `amazonaws.<region>.ssm`— El punto final del AWS Systems Manager servicio.
  + `amazonaws.<region>.ec2messages`: Systems Manager utiliza este punto de conexión para realizar llamadas desde SSM Agent al servicio de Systems Manager.
  + `amazonaws.<region>.ssmmessages`— Session Manager usa este punto final para conectarse a tu EC2 instancia de Amazon a través de un canal de datos seguro.
+ Una EC2 instancia de `t3.nano` Amazon que ejecuta Amazon Linux 2
+ Rol de IAM y perfil de instancia
+ Grupos de seguridad de Amazon VPC y reglas de grupos de seguridad para los puntos de conexión y la instancia de Amazon EC2 

**Arquitectura de destino**

![\[Diagrama de arquitectura del uso de Session Manager para acceder a un host bastión.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/a02aed20-1852-4c91-902f-f553795006e2/images/819c503b-7eec-4a9c-862b-b87107d50dc1.png)


El diagrama muestra el proceso siguiente:

1. El usuario asume un rol de IAM que tiene permisos para hacer lo siguiente:
   + Autenticar, autorizar y conectarse a la instancia de Amazon EC2 
   + Iniciar una sesión con Session Manager

1. El usuario inicia una sesión SSH a través de Session Manager.

1. Session Manager autentica al usuario, verifica los permisos de las políticas de IAM asociadas, comprueba los ajustes de configuración y envía un mensaje al agente SSM para abrir una conexión bidireccional.

1. El usuario envía la clave pública SSH al host del bastión a través de los metadatos de Amazon. EC2 Esto debe hacerse antes de cada conexión. La clave pública SSH permanece disponible durante 60 segundos.

1. El host bastión se comunica con los puntos finales de la interfaz de VPC para Systems Manager y Amazon. EC2

1. El usuario accede al host bastión a través de Session Manager mediante un canal de comunicación bidireccional cifrado con TLS 1.2.

**Automatizar y escalar**

Las siguientes opciones están disponibles para automatizar la implementación o escalar esta arquitectura:
+ Puede implementar la arquitectura mediante una canalización de integración y entrega continuas (CI/CD).
+ Puede modificar el código para cambiar el tipo de instancia del host bastión.
+ Puede modificar el código para implementar varios hosts bastión. En el archivo `bastion-host/main.tf`, en el bloque de recursos `aws_instance`, añada el meta argumento `count`. Para obtener más información, consulte la [documentación de Terraform](https://developer.hashicorp.com/terraform/language/meta-arguments/count).

## Tools (Herramientas)
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-tools"></a>

**Servicios de AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le ayuda a interactuar Servicios de AWS mediante los comandos de su shell de línea de comandos.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) lo ayuda a administrar las aplicaciones y la infraestructura que se ejecutan en la Nube de AWS. Simplifica la administración de aplicaciones y recursos, reduce el tiempo necesario para detectar y resolver problemas operativos y le ayuda a administrar sus AWS recursos de forma segura y a escala. Este patrón utiliza el [Administrador de sesiones](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html), una capacidad de Administrador de sistemas.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

**Otras herramientas**
+ [HashiCorp Terraform](https://www.terraform.io/docs) es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube. Este patrón usa [Terraform CLI](https://developer.hashicorp.com/terraform/cli).

**Repositorio de código**

El código de este patrón está disponible en el repositorio GitHub [Access a bastion mediante el administrador de sesiones y el repositorio Amazon EC2 Instance Connect](https://github.com/aws-samples/secured-bastion-host-terraform).

## Prácticas recomendadas
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-best-practices"></a>
+ Recomendamos usar herramientas de escaneo de código automatizadas para mejorar la seguridad y la calidad del código. Este patrón se escaneó con [Checkov](https://www.checkov.io/), una herramienta de análisis de código estático para IaC. Como mínimo, le recomendamos que realice comprobaciones básicas de validación y formato mediante los comandos `terraform validate` y `terraform fmt -check -recursive` de Terraform.
+ Es una buena práctica añadir pruebas automatizadas para la iAC. Para obtener más información sobre los diferentes enfoques para probar el código de Terraform, consulte [Probar HashiCorp Terraform (entrada del blog de Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform)).
+ Durante la implementación, Terraform usa la EC2 instancia de Amazon que reemplaza cada vez que se detecta una nueva versión de la [AMI de Amazon Linux 2](https://aws.amazon.com/marketplace/pp/prodview-zc4x2k7vt6rpu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa). Esto implementa la nueva versión del sistema operativo, que incluye los parches y las actualizaciones. Si el programa de implementación no es frecuente, esto puede suponer un riesgo para la seguridad, ya que la instancia no tiene los parches actualizados. Es importante actualizar y aplicar con frecuencia los parches de seguridad a las EC2 instancias de Amazon desplegadas. Para obtener más información, consulta [Gestión de actualizaciones en Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/update-management.html).
+ Como este patrón es una prueba de concepto, utiliza políticas AWS gestionadas, como`AmazonSSMManagedInstanceCore`. AWS las políticas administradas cubren casos de uso comunes, pero no otorgan permisos con privilegios mínimos. Según sea necesario en su caso, le recomendamos que cree políticas personalizadas que concedan permisos con privilegios mínimos para los recursos implementados en esta arquitectura. Para obtener más información, consulte [Comenzar con las políticas AWS administradas y avanzar hacia](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies) los permisos con privilegios mínimos.
+ Use una contraseña para proteger el acceso a las claves SSH y guarde las claves en un lugar seguro.
+ Configure el registro y la supervisión del host bastión. El registro y la supervisión son partes importantes del mantenimiento de los sistemas, tanto desde una perspectiva operativa como de seguridad. Existen varias formas de supervisar las conexiones y la actividad en su host bastión. Para obtener más información, consulte los siguientes temas en la documentación de Systems Manager.
  + [Supervisión AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring.html)
  + [Inicio de sesión y supervisión AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/logging-and-monitoring.html)
  + [Auditoría de la actividad de sesiones](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-auditing.html)
  + [Registro de la actividad de la sesión](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)

## Epics
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics"></a>

### Implementación de recursos
<a name="deploy-the-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio de código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingeniero, desarrollador | 
| Inicialice el directorio de trabajo de Terraform. | Este paso solo es necesario para la primera implementación. Si va a realizar una reimplementación del patrón, vaya al paso siguiente.En el directorio raíz del repositorio clonado, introduzca el siguiente comando, donde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)<pre>terraform init \<br />    -backend-config="bucket=$S3_STATE_BUCKET" \<br />    -backend-config="key=$PATH_TO_STATE_FILE" \<br />    -backend-config="region=$AWS_REGION</pre>También puede abrir el archivo **config.tf** y, en la sección `terraform`, proporcionar estos valores manualmente. | DevOps ingeniero, desarrollador, Terraform | 
| Implementación de recursos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingeniero, desarrollador, Terraform | 

### Configurar el entorno local
<a name="set-up-the-local-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure la conexión SSH. | Actualice el archivo de configuración de SSH para permitir las conexiones SSH a través de Session Manager. Para obtener instrucciones, consulte [Permitir conexiones SSH para Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable). Esto permite a los usuarios autorizados introducir un comando proxy que inicia una sesión de Session Manager y transfiere todos los datos a través de una conexión bidireccional. | DevOps ingeniero | 
| Genere las claves SSH. | Introduzca el siguiente comando para general un par de claves de SSH locales privadas y publicas. Use este par de claves para conectarse al host bastión.<pre>ssh-keygen -t rsa -f my_key</pre> | DevOps ingeniero, desarrollador | 

### Conectarse al host bastión mediante Session Manager
<a name="connect-to-the-bastion-host-by-using-sesh"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Obtenga el ID de la instancia. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS general | 
| Envíe la clave pública SSH. | En esta sección, debe cargar la clave pública en los [metadatos de la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) del host bastión. Una vez cargada la clave, dispone de 60 segundos para iniciar una conexión con el host bastión. Transcurridos 60 segundos, se elimina la clave pública. Para obtener más información, consulte la sección [Solución de problemas](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting) de este patrón. Complete los siguientes pasos rápidamente para evitar que se extraiga la clave antes de conectarse al host bastión.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS general | 
| Conéctese al host bastión. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)Existen otras opciones para abrir una conexión SSH con el host bastión. Para obtener más información, consulte *Enfoques alternativos para establecer una conexión SSH con el host bastión* en la sección de [Información adicional](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional) de este patrón. | AWS general | 

### (Opcional) Limpieza
<a name="optional-clean-up"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los recursos implementados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingeniero, desarrollador, Terraform | 

## Resolución de problemas
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| `TargetNotConnected` error al intentar conectarse al host bastión | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | 
| `Permission denied` error al intentar conectarse al host bastión | Una vez cargada la clave pública en el host bastión, solo dispondrá de 60 segundos para iniciar la conexión. Transcurridos 60 segundos, la clave se elimina automáticamente y no puede usarla para conectarse a la instancia. Si esto ocurre, puede repetir el paso para volver a enviar la clave a la instancia. | 

## Recursos relacionados
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-resources"></a>

**AWS documentación**
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) (documentación de Systems Manager)
+ [Instalación del plugin de Session Manager para la AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (documentación de Systems Manager)
+ [Permitir conexiones SSH para Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) (documentación de Systems Manager)
+ [Acerca del uso de EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) ( EC2 documentación de Amazon)
+ [Conéctese mediante EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html) ( EC2 documentación de Amazon)
+ [Gestión de identidad y acceso para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) ( EC2 documentación de Amazon)
+ [Uso de una función de IAM para conceder permisos a las aplicaciones que se ejecutan en EC2 instancias de Amazon (documentación](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) de IAM)
+ [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentación de IAM)
+ [Control del tráfico hacia los recursos mediante grupos de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) (documentación de Amazon VPC)

**Otros recursos**
+ [Página web para desarrolladores de Terraform](https://developer.hashicorp.com/terraform)
+ [Comando: validar](https://developer.hashicorp.com/terraform/cli/commands/validate) (documentación de Terraform)
+ [Comando: fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) (documentación de Terraform)
+ [Probando HashiCorp Terraform (entrada de](https://www.hashicorp.com/blog/testing-hashicorp-terraform) blog) HashiCorp 
+ [Página web Checkov](https://www.checkov.io/)

## Información adicional
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional"></a>

**Enfoques alternativos para establecer una conexión SSH con el host bastión**

*Enrutamiento de puertos*

Puede usar la opción `-D 8888` para abrir una conexión SSH con reenvío dinámico de puertos. Para más información, consulte [las instrucciones](https://explainshell.com/explain?cmd=ssh+-i+%24PRIVATE_KEY_FILE+-D+8888+ec2-user%40%24INSTANCE_ID) en explainshell.com. El siguiente es un ejemplo de un comando para abrir una conexión SSH mediante el reenvío de puertos.

```
ssh -i $PRIVATE_KEY_FILE -D 8888 ec2-user@$INSTANCE_ID
```

Este tipo de conexión abre un proxy SOCKS que puede reenviar el tráfico de su navegador local a través del host bastión. Si utiliza Linux o macOS, para ver todas las opciones, introduzca `man ssh`. Se mostrará el manual de referencia de SSH.

*Uso del script proporcionado*

En lugar de ejecutar manualmente los pasos descritos en *Conectar al host bastión mediante Session Manager* en la sección [Epics](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics), puede utilizar el script **connect.sh** incluido en el repositorio de código. Este script genera el par de claves SSH, envía la clave pública a la EC2 instancia de Amazon e inicia una conexión con el host del bastión. Al ejecutar el script, se pasan la etiqueta y el nombre de la clave como argumentos. A continuación se muestra un ejemplo del comando para ejecutar el script.

```
./connect.sh sandbox-dev-bastion-host my_key
```

# Centralice la resolución de DNS mediante AWS Managed Microsoft AD Microsoft Active Directory local
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory"></a>

*Brian Westmoreland, Amazon Web Services*

## Resumen
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-summary"></a>

Este patrón proporciona orientación para centralizar la resolución de DNS en un entorno de AWS varias cuentas mediante AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) y Amazon Route 53. En este patrón, el espacio de nombres AWS DNS es un subdominio del espacio de nombres DNS local. Este patrón también proporciona instrucciones sobre cómo configurar los servidores DNS locales para que reenvíen consultas AWS cuando la solución DNS local utilice Microsoft Active Directory.  

## Requisitos previos y limitaciones
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-prereqs"></a>

**Requisitos previos **
+ Un entorno AWS de varias cuentas configurado mediante. AWS Organizations
+ Conectividad de red establecida entre Cuentas de AWS.
+ Conectividad de red establecida entre el entorno local AWS y el entorno local (mediante el uso de AWS Direct Connect cualquier tipo de conexión VPN).
+ AWS Command Line Interface (AWS CLI) configurado en una estación de trabajo local.
+ AWS Resource Access Manager (AWS RAM) se utiliza para compartir las reglas de Route 53 entre cuentas. Por lo tanto, el uso compartido debe estar habilitado en el AWS Organizations entorno, como se describe en la sección [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics).

**Limitaciones**
+ AWS Managed Microsoft AD La Edición Estándar tiene un límite de 5 acciones.
+ AWS Managed Microsoft AD La Edición Enterprise tiene un límite de 125 acciones.
+ La solución de este patrón se limita a Regiones de AWS que el soporte se comparta a través de él AWS RAM.

**Versiones de producto**
+ Microsoft Active Directory ejecutado en Windows Server 2008, 2012, 2012 R2 o 2016.

## Arquitectura
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-architecture"></a>

**Arquitectura de destino**

![\[Arquitectura para la resolución de DNS centralizada en AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/91430e2a-f7f6-4dbe-9fe7-8abed1f764a7/images/9b5fc51d-590b-468f-80f7-1949f3b3b258.png)


En este diseño, AWS Managed Microsoft AD se instala en los servicios compartidos Cuenta de AWS. Si bien no es un requisito, este patrón presupone dicha configuración. Si lo configuras AWS Managed Microsoft AD de forma diferente Cuenta de AWS, es posible que tengas que modificar los pasos de la sección [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics) en consecuencia.

Este diseño emplea Route 53 Resolvers para admitir la resolución de nombres mediante el uso de reglas de Route 53. Si la solución de DNS en las instalaciones usa Microsoft DNS, no es fácil crear una regla de reenvío condicional para el espacio de nombres de AWS (`aws.company.com`), que es un subdominio del espacio de nombres DNS (`company.com`) de la empresa. Si intenta crear un reenviador condicional tradicional, se producirá un error. Esto se debe a que Microsoft Active Directory ya se considera autorizado para cualquier subdominio de `company.com`. Para evitar este error, primero debe crear una delegación para `aws.company.com` que permita delegar la autoridad de ese espacio de nombres. A continuación, puede crear el reenviador condicional.

La nube privada virtual (VPC) de cada cuenta radial puede tener su propio espacio de nombres DNS único basado en el espacio de nombres raíz. AWS En este diseño, cada cuenta radial añade una abreviatura del nombre de cuenta al espacio de nombres base de AWS. Una vez creadas las zonas alojadas privadas en la cuenta de radio, las zonas se asocian a la VPC local de la cuenta de radio y a la VPC de la cuenta de red central. AWS Esto permite que la cuenta de AWS red central responda a las consultas de DNS relacionadas con las cuentas de radio. De esta manera, tanto Route 53 como Route 53 AWS Managed Microsoft AD trabajan juntos para compartir la responsabilidad de administrar el espacio de AWS nombres ()`aws.company.com`.

**Automatización y escala**

Este diseño utiliza los puntos finales de Route 53 Resolver para escalar las consultas de DNS entre el entorno local AWS y el entorno local. Cada punto de conexión de Route 53 Resolver incluye varias interfaces de red elásticas (distribuidas en varias zonas de disponibilidad), y cada interfaz de red puede gestionar hasta 10 000 consultas por segundo. Route 53 Resolver admite hasta 6 direcciones IP por punto de conexión, por lo que, en total, este diseño admite hasta 60 000 consultas de DNS por segundo distribuidas en varias zonas de disponibilidad para lograr una alta disponibilidad.  

Además, este patrón tiene en cuenta automáticamente el crecimiento futuro en AWS. No es necesario modificar las reglas de reenvío de DNS configuradas localmente para que sean compatibles con las zonas alojadas privadas nuevas VPCs y las asociadas que se agreguen a ellas. AWS 

## Tools (Herramientas)
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-tools"></a>

**Servicios de AWS**
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)permite que sus cargas de trabajo y AWS recursos compatibles con directorios utilicen Microsoft Active Directory en. Nube de AWS
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)es un servicio de administración de cuentas que le ayuda a consolidar varias cuentas Cuentas de AWS en una organización que puede crear y administrar de forma centralizada.
+ [AWS Resource Access Manager (AWS RAM)](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) le ayuda a compartir sus recursos de forma segura Cuentas de AWS para reducir la sobrecarga operativa y ofrecer visibilidad y capacidad de auditoría.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) es un servicio web de sistema de nombres de dominio (DNS) escalable y de alta disponibilidad.

**Herramientas**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que te ayuda a interactuar Servicios de AWS mediante los comandos de tu consola de línea de comandos. En este patrón, AWS CLI se usa para configurar las autorizaciones de Route 53.

## Epics
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics"></a>

### Cree y comparta un directorio AWS Managed Microsoft AD
<a name="create-and-share-an-managed-ad-directory"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implementar AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador de AWS | 
| Compartir el directorio. | Una vez creado el directorio, compártalo con otros miembros Cuentas de AWS de la AWS organización. Para obtener más instrucciones, consulte [Cómo compartir su directorio](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) en la *Guía de administración de AWS Directory Service *.  AWS Managed Microsoft AD La Edición Estándar tiene un límite de 5 acciones. La Edición Enterprise tiene un límite de 125 acciones. | Administrador de AWS | 

### Configure Route 53
<a name="configure-r53"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree Route 53 Resolvers. | Los solucionadores Route 53 facilitan la resolución de consultas de DNS entre el centro de datos local AWS y el centro de datos local.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Si bien el uso de la VPC de la cuenta de AWS red central no es obligatorio, en los pasos restantes se asume esta configuración. | Administrador de AWS | 
| Cree reglas de Route 53. | Es posible que su caso de uso específico requiera una gran cantidad de reglas de Route 53, pero tendrá que configurar las siguientes reglas como base:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Para más información, consulte [Gestión de reglas de reenvío](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) en la *Guía del desarrollador de Route 53*. | Administrador de AWS | 
| Configure un perfil de Route 53. | Puede usar un perfil de Route 53 para compartir las reglas con las cuentas de radio.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador de AWS | 

### Configure el DNS de Active Directory en las instalaciones
<a name="configure-on-premises-active-directory-dns"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la delegación. | Use el complemento DNS de Microsoft (`dnsmgmt.msc`) para crear una nueva delegación para el espacio de nombres `company.com` de Active Directory. El nombre del dominio delegado debe ser `aws`. Esto lo convierte en el nombre completo del dominio (FQDN) de la delegación `aws.company.com`. Utilice las direcciones IP de los controladores de AWS Managed Microsoft AD dominio para los valores de IP del servidor de nombres y `server.aws.company.com` utilícelas para el nombre. (Esta delegación solo se usa en la redundancia, ya que se creará un reenviador condicional para este espacio de nombres que tendrá prioridad sobre la delegación). | Active Directory | 
| Cree el reenviador condicional. | Use el complemento DNS de Microsoft (`dnsmgmt.msc`) para crear un nuevo reenviador condicional para `aws.company.com`.  Utilice las direcciones IP de los AWS Route 53 Resolvers entrantes del DNS Cuenta de AWS central como destino del reenviador condicional.   | Active Directory | 

### Cree zonas alojadas privadas de Route 53 para los radios Cuentas de AWS
<a name="create-r53-private-hosted-zones-for-spoke-aws-accounts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree las zonas alojadas privadas de Route 53. | Crear una zona alojada privada de Route 53 en cada cuenta radial. Asocie esta zona alojada privada con la VPC de la cuenta radial. Para ver los pasos detallados, consulte [Crear una zona alojada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) en la *Guía del desarrollador de Route 53*. | Administrador de AWS | 
| Cree autorizaciones. | Utilice el AWS CLI para crear una autorización para la VPC de la cuenta AWS de red central. Ejecute este comando desde el contexto de cada Cuenta de AWS radial:<pre>aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>donde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador de AWS | 
| Cree asociaciones. | Cree la asociación de zonas alojadas privadas de Route 53 para la VPC de la cuenta de AWS red central mediante. AWS CLI Ejecute este comando desde el contexto de la cuenta de AWS red central:<pre>aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>donde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador de AWS | 

## Recursos relacionados
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-resources"></a>
+ [Simplifique la administración del DNS en un entorno con varias cuentas con Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (AWS entrada del blog)
+ [Creando su AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html) (AWS Directory Service documentación)
+ [Compartir un AWS Managed Microsoft AD directorio](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) (AWS Directory Service documentación)
+ [¿Qué es Amazon Route 53 Resolver?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) (Documentación de Amazon Route 53)
+ [Creación de una zona alojada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) (documentación de Amazon Route 53)
+ [Qué es Perfiles de Amazon Route 53?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html) (Documentación de Amazon Route 53)

# Centralice la supervisión mediante Amazon CloudWatch Observability Access Manager
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager"></a>

*Anand Krishna Varanasi, JAGDISH KOMAKULA, Ashish Kumar, Jimmy Morgan, Sarat Chandra Pothula, Vivek Thangamuthu y Balaji Vedagiri, Amazon Web Services*

## Resumen
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-summary"></a>

La observabilidad es fundamental para la supervisión, la comprensión y la solución de problemas de las aplicaciones. Las aplicaciones que abarcan varias cuentas, como las AWS Control Tower implementaciones de landing zone, generan una gran cantidad de registros y datos de rastreo. Para solucionar problemas rápidamente o comprender los análisis de usuarios o empresariales, necesita una plataforma de observabilidad común en todas las cuentas. El Amazon CloudWatch Observability Access Manager le permite acceder a varios registros de cuentas y controlarlos desde una ubicación central.

Puede usar Observability Access Manager para ver y administrar los registros de datos de observabilidad generados por las cuentas de origen. Las cuentas de origen son individuales y Cuentas de AWS generan datos de observabilidad para sus recursos. Las cuentas de origen comparten sus datos de observabilidad con la cuenta de monitoreo. Los datos de observabilidad compartidos pueden incluir métricas en Amazon CloudWatch, registros en Amazon CloudWatch Logs y rastreos. AWS X-Ray Para más información, consulte [la documentación de Observability Access Manager](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html).

Este patrón es para los usuarios que tienen aplicaciones o infraestructuras que se ejecutan en varias direcciones Cuentas de AWS y necesitan un lugar común para ver los registros. En él se explica cómo puede configurar Observability Access Manager mediante Terraform para supervisar el estado y el estado de estas aplicaciones o infraestructuras. Puede instalar esta solución de varias maneras:
+ Como un módulo Terraform independiente que puede configurar manualmente
+ Mediante el uso de una canalización de integración y entrega continuas (CI/CD)
+ Mediante la integración con otras soluciones, como [Generador de cuentas para Terraform (AFT) de AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)

Las instrucciones de la sección [Epics](#centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics) tratan sobre la implementación manual. Para ver los pasos de instalación de AFT, consulte el archivo README del repositorio de GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Requisitos previos y limitaciones
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-prereqs"></a>

**Requisitos previos **
+ [Terraform](https://www.terraform.io/) está instalado o referenciado en su sistema o en canalizaciones automatizadas. (Le recomendamos que utilice [la última versión](https://releases.hashicorp.com/terraform/).)
+ Una cuenta que puede usar como cuenta de monitoreo central. Otras cuentas crean enlaces a la cuenta de monitoreo central para ver los registros.
+ (Opcional) Un repositorio de código fuente como GitHub Atlassian Bitbucket o un sistema similar. AWS CodeCommit No es necesario disponer de un repositorio de código fuente si utilizas canalizaciones automatizadas. CI/CD 
+ (Opcional) Permisos para crear solicitudes de cambios (PRs) para revisar el código y colaborar con él. GitHub

**Limitaciones**

Observability Access Manager tiene las siguientes Service quotas, que no se pueden cambiar. Tenga en cuenta estas cuotas antes de implementar esta característica. Para obtener más información, consulta [las cuotas de CloudWatch servicio](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html) en la CloudWatch documentación.
+ **Vínculos de cuentas de origen**: puede vincular cada cuenta de origen a un máximo de cinco cuentas de supervisión.
+ **Depósitos**: puedes crear varios depósitos para una cuenta, pero solo Región de AWS se permite un depósito por cuenta.

Además:
+ Los sumideros y los enlaces deben crearse de la misma manera Región de AWS; no pueden ser de una región a otra.

**Supervisión entre cuentas y entre regiones**

Para la supervisión entre regiones y cuentas, puede elegir una de las siguientes opciones:
+ Cree [ CloudWatch paneles de control multicuentas y regiones](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) para alarmas y métricas. Esta opción no admite registros ni rastreos.
+ Implemente el [registro centralizado](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) mediante Amazon OpenSearch Service.
+ Cree un colector por región a partir de todas las cuentas de los inquilinos, transfiera las métricas a una cuenta de supervisión centralizada (como se describe en este patrón) y, a continuación, utilice los [flujos de CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html) para enviar los datos a un destino externo común o a productos de supervisión de terceros, como Datadog, Dynatrace, Sumo Logic, Splunk o New Relic.

## Arquitectura
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-architecture"></a>

**Componentes**

CloudWatch Observability Access Manager consta de dos componentes principales que permiten la observabilidad entre cuentas:
+ Un *receptor* permite a las cuentas de origen enviar datos de observabilidad a la cuenta de monitoreo central. Básicamente, un receptor proporciona una puerta de enlace a la que se pueden conectar las cuentas de origen. Solo puede haber una puerta de enlace o conexión receptora y varias cuentas pueden conectarse a ella.
+ Cada cuenta de origen tiene un *enlace* al cruce de la puerta de enlace receptora y los datos de observabilidad se envían a través de este enlace. Debe crear un receptor antes de crear enlaces desde cada cuenta de origen.

**Arquitectura**

El siguiente diagrama ilustra Observability Access Manager y sus componentes.

![\[Arquitectura para la observabilidad entre cuentas con receptores y enlaces.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/00603763-4f99-456e-85e7-a80d803b087d/images/5188caf9-348b-4d91-b560-2b3d6ea81191.png)


## Tools (Herramientas)
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-tools"></a>

**Servicios de AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)es un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que usted crea y administra de forma centralizada.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

**Herramientas**
+ [Terraform](https://www.terraform.io/) es una herramienta de infraestructura como código (IaC) HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.
+ [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) configura una canalización de Terraform para ayudarte a aprovisionar y personalizar las cuentas. AWS Control Tower Si lo desea, puede utilizar AFT para configurar Observability Access Manager de forma escalable en varias cuentas.

**Repositorio de código**

El código de este patrón está disponible en el repositorio de GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Prácticas recomendadas
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-best-practices"></a>
+ En AWS Control Tower los entornos, marque la cuenta de registro como la cuenta de supervisión central (receptáculo).
+ Si tiene varias organizaciones con varias cuentas AWS Organizations, le recomendamos que incluya las organizaciones en lugar de las cuentas individuales en la política de configuración. Si tiene un número reducido de cuentas o si las cuentas no forman parte de una organización en la política de configuración de destino, puede optar por incluir cuentas individuales en su lugar.

## Epics
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics"></a>

### Configure el módulo de receptor
<a name="set-up-the-sink-module"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clonar el repositorio. | Clona el repositorio GitHub de Observability Access Manager:<pre>git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform</pre> | AWS DevOps, administrador de la nube, administrador de AWS | 
| Especifique los valores de las propiedades del módulo receptor. | En el archivo `main.tf` (en la ****carpeta `deployments/aft-account-customizations/LOGGING/terraform/` del repositorio), especifique los valores de las siguientes propiedades:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obtener más información, consulte [AWS::Oam::Sink](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)la CloudFormation documentación. | AWS DevOps, administrador de la nube, administrador de AWS | 
| Instale el módulo receptor. | Exporte las credenciales de la cuenta Cuenta de AWS que haya seleccionado como cuenta de monitoreo e instale el módulo receptor Observability Access Manager:<pre>Terraform Init<br />Terrafom Plan<br />Terraform Apply</pre> | AWS DevOps, administrador de la nube, administrador de AWS | 

### Configure el módulo receptor
<a name="set-up-the-link-module"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Especifique los valores de las propiedades del módulo de enlace. | En el archivo `main.tf ` (en la ****carpeta `deployments/aft-account-customizations/LOGGING/terraform/` del repositorio), especifique los valores de las siguientes propiedades:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obtener más información, consulte [AWS::Oam::Link](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)la CloudFormation documentación. | AWS DevOps, administrador de nube, arquitecto de nube | 
| Instale el módulo de enlace para cuentas individuales. | Exporte las credenciales de las cuentas individuales e instale el módulo de enlace Observability Access Manager:<pre>Terraform Plan<br />Terraform Apply</pre>Puede configurar el módulo de enlace de forma individual para cada cuenta o usar [AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) para instalar automáticamente este módulo en una gran cantidad de cuentas. | AWS DevOps, administrador de nube, arquitecto de nube | 

### Apruebe sink-to-link las conexiones
<a name="approve-sink-to-link-connections"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Verifique el mensaje del estado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)A la derecha, debería ver el mensaje de estado **Supervisar la cuenta con una cuenta habilitada** con una marca de verificación verde. Esto significa que la cuenta de monitoreo tiene un receptor de Observability Access Manager al que se conectarán los enlaces de otras cuentas. |  | 
| Apruebe las link-to-sink conexiones. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obtener más información, consulte [Vincular las cuentas de supervisión con las cuentas de origen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html) en la CloudWatch documentación. | AWS DevOps, administrador de nube, arquitecto de nube | 

### Verificar los datos de observabilidad entre cuentas
<a name="verify-cross-account-observability-data"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ver datos entre cuentas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html) | AWS DevOps, administrador de nube, arquitecto de nube | 

### (Opcional) Habilite las cuentas de origen para que confíen en la cuenta de monitoreo
<a name="optional-enable-source-accounts-to-trust-monitoring-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Consulte las métricas, los paneles, los registros, los widgets y las alarmas de otras cuentas. | Como función adicional,**** puede compartir CloudWatch las métricas, los paneles, los registros, los widgets y las alarmas con otras cuentas. Cada cuenta utiliza un rol de IAM denominado **CloudWatch: CrossAccountSharingRole ** para acceder a estos datos.Las cuentas de origen que tienen una relación de confianza con la cuenta de supervisión central pueden asumir esta función y ver los datos de la cuenta de supervisión.CloudWatch proporciona un ejemplo de CloudFormation script para crear el rol. Elija **Administrar el rol en IAM** y ejecute este script en las cuentas en las que desee ver los datos.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre>Para obtener más información, consulte [Habilitar la funcionalidad multicuenta CloudWatch en](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region) la CloudWatch documentación. | AWS DevOps, administrador de nube, arquitecto de nube | 

### (Opcional) Ver las cuentas y Regiones cruzadas desde la cuenta de monitoreo
<a name="optional-view-cross-account-cross-region-from-the-monitoring-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configuración del acceso entre cuentas y regiones. | En la cuenta de supervisión central, si lo desea, puede añadir un selector de cuentas para cambiar fácilmente de una cuenta a otra y ver sus datos sin tener que autenticarse.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obtener más información, consulte la [ CloudWatch consola multicuentas y regiones](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) en la documentación. CloudWatch  | AWS DevOps, administrador de nube, arquitecto de nube | 

## Recursos relacionados
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-resources"></a>
+ [CloudWatch observabilidad entre cuentas (documentación de](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) Amazon CloudWatch )
+ [Referencia de la API de Amazon CloudWatch Observability Access Manager](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html) ( CloudWatch documentación de Amazon)
+ [Recurso: aws\$1oam\$1sink](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/oam_sink) (documentación de Terraform)
+ [Origen de datos: aws\$1oam\$1link](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/oam_link) (documentación de Terraform)
+ [CloudWatchObservabilityAccessManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/oam.html)(documentación de AWS Boto3)

# Comprueba EC2 las instancias para ver si hay etiquetas obligatorias en el lanzamiento
<a name="check-ec2-instances-for-mandatory-tags-at-launch"></a>

*Susanne Kangnoh y Archit Mathur, Amazon Web Services*

## Resumen
<a name="check-ec2-instances-for-mandatory-tags-at-launch-summary"></a>

Amazon Elastic Compute Cloud (Amazon EC2) proporciona capacidad informática escalable en la nube de Amazon Web Services (AWS). El uso de Amazon EC2 elimina la necesidad de invertir en hardware por adelantado, por lo que puede desarrollar e implementar aplicaciones más rápido.

Puede usar el etiquetado para categorizar los recursos de AWS de diferentes maneras. EC2 El etiquetado de instancias resulta útil cuando tiene muchos recursos en su cuenta y quiere identificar rápidamente un recurso específico en función de las etiquetas. Puedes asignar metadatos personalizados a tus EC2 instancias mediante etiquetas. Una etiqueta es una marca que consta de una clave y un valor definidos por el usuario. Le recomendamos que cree un conjunto de etiquetas coherente para satisfacer los requisitos de su organización. 

Este patrón proporciona una CloudFormation plantilla de AWS que le ayuda a supervisar EC2 las instancias para etiquetas específicas. La plantilla crea un evento de Amazon CloudWatch Events que vigila los **UntagResource**eventos de AWS para detectar el etiquetado CloudTrail **TagResource**o la eliminación de etiquetas de nuevas EC2 instancias. Si falta una etiqueta predefinida, llama una función de AWS Lambda, que envía un mensaje de infracción a la dirección de correo electrónico que usted proporcione mediante Amazon Simple Notification Service (Amazon SNS). 

## Requisitos previos y limitaciones
<a name="check-ec2-instances-for-mandatory-tags-at-launch-prerequisites-and-limitations"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Cargue el código de Lambda proporcionado en un bucket de Amazon Simple Storage Service (Amazon S3).
+ Una dirección de correo electrónico en la que desee recibir las notificaciones de infracciones.

**Limitaciones**
+ Esta solución es compatible con CloudTrail **TagResource**nuestros **UntagResource**eventos. No crea notificaciones para ningún otro evento.
+ Esta solución solo comprueba las claves de las etiquetas. No supervisa los valores clave.

## Arquitectura
<a name="check-ec2-instances-for-mandatory-tags-at-launch-architecture"></a>

**Arquitectura ****de flujo de trabajo**

![\[Workflow diagram showing Servicios de AWS interaction for EC2 instance monitoring and notification.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9cd74141-a87f-419e-94b3-0b28fd04a018/images/b48fd21b-a86b-4ec7-b9f6-4f1a64999437.png)


 

**Automatización y escala**
+ Puede utilizar la CloudFormation plantilla de AWS varias veces para distintas regiones y cuentas de AWS. Debe ejecutar la plantilla solo una vez en cada región o cuenta.

## Tools (Herramientas)
<a name="check-ec2-instances-for-mandatory-tags-at-launch-tools"></a>

**Servicios de AWS**
+ [Amazon EC2](https://aws.amazon.com/ec2/): Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona una capacidad informática segura y de tamaño variable en la nube. Se ha diseñado para facilitar a los desarrolladores la computación en la nube en la Web.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html): CloudTrail es un servicio de AWS que le ayuda con la gobernanza, el cumplimiento y la auditoría operativa y de riesgos de su cuenta de AWS. Las acciones realizadas por un usuario, un rol o un servicio de AWS se registran como eventos en CloudTrail. 
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html): Amazon CloudWatch Events ofrece una transmisión casi en tiempo real de los eventos del sistema que describen los cambios en los recursos de AWS. CloudWatch Events se da cuenta de los cambios operativos a medida que se producen y toma las medidas correctivas necesarias, mediante el envío de mensajes en respuesta al entorno, la activación de funciones, la introducción de cambios y la recopilación de información sobre el estado. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): Lambda es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html): Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos altamente escalable que se puede utilizar para una amplia gama de soluciones de almacenamiento, incluidos sitios web, aplicaciones móviles, copias de seguridad y lagos de datos.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html): Amazon Simple Notification Service (Amazon SNS) es un servicio web que permite a las aplicaciones, los usuarios finales y los dispositivos enviar y recibir al instante notificaciones desde la nube.

**Codigo**

Este patrón incluye un adjunto con dos archivos:
+ `index.zip` es un archivo comprimido que incluye el código de Lambda de este patrón.
+ `ec2-require-tags.yaml`es una CloudFormation plantilla que despliega el código Lambda.

Consulte la sección *Epics* para obtener información sobre cómo usar estos archivos.

## Epics
<a name="check-ec2-instances-for-mandatory-tags-at-launch-epics"></a>

### Implementar el código de Lambda
<a name="deploy-the-lambda-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cargue el código en un bucket de S3. | Cree un bucket de S3 nuevo o utilice un bucket de S3 ya existente para cargar el archivo adjunto `index.zip` (código de Lambda). Este depósito debe estar en la misma región de AWS que los recursos (EC2 instancias) que desee supervisar. | Arquitecto de la nube | 
| Implemente la CloudFormation plantilla. | Abra la consola de Cloudformation en la misma región de AWS que el bucket de S3 e implemente el archivo `ec2-require-tags.yaml` que se incluye en el archivo adjunto. En la siguiente Epic, proporcione los valores de los parámetros.   | Arquitecto de la nube | 

### Complete los parámetros de la CloudFormation plantilla
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Proporcione el nombre del bucket de S3. | Escriba el nombre del bucket de S3 que ha creado o seleccionado en la primera Epic. Este bucket de S3 contiene el archivo.zip del código Lambda y debe estar en la misma región de AWS que CloudFormation la plantilla y EC2 las instancias que desea monitorear. | Arquitecto de la nube | 
| Proporcione la clave de S3. | Proporcione la ubicación del archivo .zip del código de Lambda en su bucket de S3, sin barras diagonales iniciales (por ejemplo, `index.zip` o `controls/index.zip`). | Arquitecto de la nube | 
| Proporcione una dirección de correo electrónico. | Proporcione una dirección de correo electrónico activa en la que desee recibir notificaciones de infracciones. | Arquitecto de la nube | 
| Defina un nivel de registro. | Especifique el nivel de registro y el detalle. `Info` designa mensajes informativos detallados sobre el progreso de la aplicación y solo debe usarse para la depuración. `Error` designa los eventos de error que aún podrían permitir que la aplicación siguiera ejecutándose. `Warning` designa situaciones potencialmente dañinas. | Arquitecto de la nube | 
| Ingrese las claves de etiqueta requeridas. | Escriba las claves de etiqueta que desea comprobar. Si desea especificar varias claves, sepárelas con comas, sin espacios. (Por ejemplo, `ApplicationId,CreatedBy,Environment,Organization` busca cuatro claves). El evento CloudWatch Events busca estas claves de etiquetas y envía una notificación si no las encuentra. | Arquitecto de la nube | 

### Confirmar la suscripción
<a name="confirm-the-subscription"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Confirme la suscripción de correo electrónico. | Cuando la CloudFormation plantilla se implementa correctamente, envía un mensaje de correo electrónico de suscripción a la dirección de correo electrónico que has proporcionado. Debe confirmar esta suscripción de correo electrónico para recibir notificaciones.   | Arquitecto de la nube | 

## Recursos relacionados
<a name="check-ec2-instances-for-mandatory-tags-at-launch-related-resources"></a>
+ [Creación de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) (documentación de Amazon S3)
+ [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) (documentación de Amazon S3)
+ [Etiquete sus EC2 recursos de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) ( EC2 documentación de Amazon)
+ [Creación de una regla de CloudWatch eventos que se active en una llamada a la API de AWS mediante AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) ( CloudWatch documentación de Amazon)

## Conexiones
<a name="attachments-9cd74141-a87f-419e-94b3-0b28fd04a018"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/9cd74141-a87f-419e-94b3-0b28fd04a018/attachments/attachment.zip)

# Limpie los recursos de AWS Account Factory for Terraform (AFT) de forma segura después de la pérdida de archivos estatales
<a name="clean-up-aft-resources-safely-after-state-file-loss"></a>

*Gokendra Malviya, Amazon Web Services*

## Resumen
<a name="clean-up-aft-resources-safely-after-state-file-loss-summary"></a>

Cuando usa AWS Account Factory for Terraform (AFT) para administrar su AWS Control Tower entorno, AFT genera un archivo de estado de Terraform para rastrear el estado y la configuración de los recursos creados por Terraform. La pérdida del archivo de estado de Terraform puede suponer importantes desafíos para la administración y limpieza de los recursos. Este patrón proporciona un enfoque sistemático para identificar y eliminar de forma segura los recursos relacionados con la AFT y, al mismo tiempo, mantener la integridad de su entorno. AWS Control Tower 

El proceso está diseñado para garantizar la eliminación adecuada de todos los componentes de AFT, incluso sin la referencia del archivo de estado original. Este proceso proporciona un camino claro para restablecer y reconfigurar correctamente la AFT en su entorno, a fin de garantizar una interrupción mínima de sus operaciones. AWS Control Tower 

Para obtener más información sobre AFT, consulte la [documentación de AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html).

## Requisitos previos y limitaciones
<a name="clean-up-aft-resources-safely-after-state-file-loss-prereqs"></a>

**Requisitos previos **
+ Un conocimiento detallado de la [arquitectura de AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-architecture.html).
+ Acceso de administrador a las siguientes cuentas:
  + Cuenta de administración de AFT
  + AWS Control Tower Cuenta de administración
  + Cuenta del archivo de registro
  + Cuenta de auditoría
+ Verificación de que ninguna política de control de servicios (SCPs) contiene restricciones o limitaciones que puedan bloquear la eliminación de los recursos relacionados con AFT.

**Limitaciones**
+ Este proceso puede limpiar los recursos de forma eficaz, pero no puede recuperar los archivos de estado perdidos, y algunos recursos pueden requerir una identificación manual.
+ La duración del proceso de limpieza depende de la complejidad del entorno y puede tardar varias horas.
+ Este patrón se probó con la versión 1.12.2 de AFT y elimina los siguientes recursos. Si está utilizando una versión diferente de AFT, es posible que deba eliminar recursos adicionales.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html)

**importante**  
Los recursos que se eliminan mediante los pasos de este patrón no se pueden recuperar. Antes de seguir estos pasos, compruebe cuidadosamente los nombres de los recursos y asegúrese de que fueron creados por AFT.

## Arquitectura
<a name="clean-up-aft-resources-safely-after-state-file-loss-architecture"></a>

En el siguiente diagrama se muestran los componentes de AFT y el flujo de trabajo de alto nivel. AFT configura una canalización de Terraform que le ayuda a aprovisionar y personalizar varias cuentas de AWS Control Tower. AFT sigue un GitOps modelo para automatizar los procesos de aprovisionamiento de cuentas en. AWS Control Tower Puede crear un archivo de Terraform para una solicitud de cuenta y confirmarlo en un repositorio, que proporciona la entrada que activa el flujo de trabajo de AFT para el aprovisionamiento de la cuenta. Una vez completado el aprovisionamiento de la cuenta, AFT puede ejecutar automáticamente pasos de personalización adicionales.

![\[Componentes de AFT y flujo de trabajo de alto nivel.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/3e0cae87-20ef-4fcc-aacf-bb450844ac56.png)


En esta arquitectura:
+ **AWS Control Tower La cuenta de administración** es una Cuenta de AWS que está dedicada al AWS Control Tower servicio. Por lo general, también se denomina *cuenta de pagador de AWS * o *cuenta de administración de AWS Organizations *.
+ La **cuenta de administración de AFT** está dedicada a las operaciones de administración de AFT. Cuenta de AWS Es diferente de la cuenta de administración de su organización.
+ La **cuenta vendida** es una Cuenta de AWS que contiene todos los componentes y controles básicos que seleccionó. AFT utiliza AWS Control Tower para vender una cuenta nueva.

Para obtener información adicional sobre esta arquitectura, consulte [Introducción a la AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) en el AWS Control Tower taller.

## Tools (Herramientas)
<a name="clean-up-aft-resources-safely-after-state-file-loss-tools"></a>

**Servicios de AWS**
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)le ayuda a configurar y gobernar un entorno de AWS múltiples cuentas, siguiendo las mejores prácticas prescriptivas.
+ [AWS Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) establece una canalización de Terraform para ayudarlo a aprovisionar y personalizar cuentas y recursos. AWS Control Tower
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)le ayuda a gestionar y gobernar su entorno de forma centralizada a medida que crece y escala sus AWS recursos. Con Organizations, puede crear nuevas cuentas y asignar recursos, agrupar cuentas para organizar sus flujos de trabajo, aplicar políticas con fines de gobernanza y simplificar la facturación mediante un único método de pago para todas sus cuentas.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos. Este patrón requiere roles y permisos de IAM.

**Otras herramientas**
+ [Terraform](https://www.terraform.io/) es una herramienta de infraestructura como código (IaC) HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.

## Prácticas recomendadas
<a name="clean-up-aft-resources-safely-after-state-file-loss-best-practices"></a>
+ Para ello AWS Control Tower, consulte [las prácticas recomendadas para AWS Control Tower administradores](https://docs.aws.amazon.com/controltower/latest/userguide/best-practices.html) en la documentación. AWS Control Tower 
+ Para más información de IAM, consulte [Prácticas recomendadas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM.

## Epics
<a name="clean-up-aft-resources-safely-after-state-file-loss-epics"></a>

### Eliminación de los recursos de AFT en la cuenta de administración de AFT
<a name="delete-aft-resources-in-the-aft-management-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los recursos que identifique la etiqueta AFT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Elimine roles de IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Elimine la bóveda AWS Backup de respaldo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Elimina CloudWatch los recursos de Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Eliminar AWS KMS recursos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 

### Eliminación de recursos de AFT en la cuenta del archivo de registros
<a name="delete-aft-resources-in-the-log-archive-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine buckets de S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Elimine roles de IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 

### Eliminación de recursos de AFT en la cuenta de auditoría
<a name="delete-aft-resources-in-the-audit-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine roles de IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 

### Elimine los recursos de AFT de la cuenta AWS Control Tower de administración
<a name="delete-aft-resources-in-the-ctower-management-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine roles de IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 
| Eliminar EventBridge reglas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador de AWS DevOps, DevOps ingeniero de AWS | 

## Resolución de problemas
<a name="clean-up-aft-resources-safely-after-state-file-loss-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| No se pudo desconectar la puerta de enlace de Internet. | Mientras elimina los recursos identificados mediante la etiqueta **AFT**, si se encuentras con este problema al desconectar o eliminar la puerta de enlace de Internet, primero debe eliminar los puntos de conexión de VPC:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | 
| No puede encontrar las consultas CloudWatch especificadas. | Si no puede encontrar las CloudWatch consultas que creó AFT, siga estos pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | 

## Recursos relacionados
<a name="clean-up-aft-resources-safely-after-state-file-loss-resources"></a>
+ AFT:
  + [GitHub Repositorio](https://github.com/aws-ia/terraform-aws-control_tower_account_factory)
  + [Taller](https://catalog.workshops.aws/control-tower/en-US/customization/aft)
  + [Documentación](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html)
+ [AWS Control Tower documentación](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)

## Información adicional
<a name="clean-up-aft-resources-safely-after-state-file-loss-additional"></a>

Para ver las consultas AFT en el panel de control de CloudWatch Logs Insights, selecciona el icono de **consultas guardadas y de muestra** en la esquina superior derecha, como se muestra en la siguiente captura de pantalla:

![\[Acceder a las consultas AFT en el panel de control de CloudWatch Logs Insights.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/255d4032-738b-4600-9084-9684d2e9a328.png)


# Cree una canalización en las regiones de AWS que no sean compatibles con AWS CodePipeline
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Resumen
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Aviso**: ya no AWS CodeCommit está disponible para nuevos clientes. Los clientes actuales de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. [Más información](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

AWS CodePipeline es un servicio de organización de entrega continua (CD) que forma parte de un conjunto de DevOps herramientas de Amazon Web Services (AWS). Se integra con una gran variedad de fuentes (como sistemas de control de versiones y soluciones de almacenamiento), productos y servicios de integración continua (CI) de AWS y sus socios, y productos de código abierto para proporcionar un servicio de end-to-end flujo de trabajo que permita una implementación rápida de aplicaciones e infraestructuras.

Sin embargo, CodePipeline no es compatible en todas las regiones de AWS y es útil tener un orquestador invisible que conecte CI/CD los servicios de AWS. Este patrón describe cómo implementar una canalización de end-to-end flujo de trabajo en las regiones de AWS en las que aún CodePipeline no se admite mediante el uso de CI/CD servicios de AWS como AWS CodeCommit CodeBuild, AWS y AWS CodeDeploy.

## Requisitos previos y limitaciones
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa
+ CLI del AWS Cloud Development Kit (AWS CDK) versión 2.28 o posterior

## Arquitectura
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**Pila de tecnología de destino**

En el siguiente diagrama se muestra una canalización que se creó en una región que no es compatible CodePipeline, como la región de África (Ciudad del Cabo). Un desarrollador envía los archivos de CodeDeploy configuración (también denominados *scripts de enlace del ciclo de vida de despliegue*) al repositorio de Git que aloja. CodeCommit (Consulta el [GitHub repositorio](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) que se proporciona con este patrón). Se inicia CodeBuild automáticamente una EventBridge regla de Amazon.

Los archivos CodeDeploy de configuración se obtienen CodeCommit como parte de la etapa de origen de la canalización y se transfieren a ella. CodeBuild 

En la siguiente fase, CodeBuild realiza las siguientes tareas: 

1. Descargue el archivo TAR del código fuente de la aplicación. Puede configurar el nombre de este archivo mediante Parameter Store, una capacidad de AWS Systems Manager.

1. Descarga los archivos CodeDeploy de configuración.

1. Crea un archivo combinado de código fuente de la aplicación y archivos de CodeDeploy configuración específicos del tipo de aplicación.

1. Inicia el CodeDeploy despliegue en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) mediante el archivo combinado.

![\[Creación de canalizaciones en una región de AWS no compatible\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Tools (Herramientas)
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**Servicios de AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) es un servicio de compilación totalmente gestionado que le ayuda a compilar código fuente, ejecutar pruebas unitarias y producir artefactos listos para su implementación.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) es un servicio de control de versiones que le ayuda a almacenar y gestionar repositorios de Git de forma privada, sin necesidad de gestionar su propio sistema de control de código fuente.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) automatiza las implementaciones en instancias locales o de Amazon EC2, funciones de AWS Lambda o servicios de Amazon Elastic Container Service (Amazon ECS).
+ [AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) le CodePipeline ayuda a modelar y configurar rápidamente las diferentes etapas de una versión de software y a automatizar los pasos necesarios para publicar cambios de software de forma continua.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) es un marco de desarrollo de software que le ayuda a definir y aprovisionar la infraestructura en la nube de AWS en código.

**Código**

El código de este patrón está disponible en el repositorio de [regiones GitHub CodePipeline no compatibles](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Epics
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Configurar la estación de trabajo de desarrollador
<a name="set-up-your-developer-workstation"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la CLI de AWS CDK. | Para obtener instrucciones, consulte la [documentación de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | AWS DevOps | 
| Instalar un cliente Git. | Para crear confirmaciones, puedes usar un cliente Git instalado en tu computadora local y, a continuación, enviar tus confirmaciones al CodeCommit repositorio. Para configurarlo CodeCommit con tu cliente Git, consulta la [CodeCommit documentación](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Instale npm. | Instale el administrador de paquetes **npm**. Para obtener más información, consulte la [documentación npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configurar la canalización
<a name="set-up-the-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio de código. | Clone el repositorio de [Regions GitHub CodePipeline no compatibles](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) en su máquina local ejecutando el siguiente comando.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps ingeniero | 
| Establezca los parámetros en cdk.json. | Abra el archivo `cdk.json` y proporcione valores para los siguientes parámetros:<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>donde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | AWS DevOps | 
| Configure la biblioteca de constructo de AWS CDK. | En el GitHub repositorio clonado, utilice los siguientes comandos para instalar la biblioteca de construcción de AWS CDK, compilar la aplicación y sintetizar para generar la CloudFormation plantilla de AWS para la aplicación.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Implementar la aplicación de AWS CDK de muestra | Implemente el código ejecutando el siguiente comando en una región no compatible (por ejemplo `af-south-1`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configure el CodeCommit repositorio para CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure CI/CD para la aplicación. | Clone el CodeCommit repositorio que especificó en el `cdk.json` archivo (se denomina de forma `app-dev-repo` predeterminada) para configurar la CI/CD canalización de la aplicación.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>donde el nombre y la región del repositorio dependen de los valores que haya proporcionado en el archivo `cdk.json`. | AWS DevOps | 

### Prueba la canalización
<a name="test-the-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pruebe la canalización con las instrucciones de implementación. | La `CodeDeploy_Files` carpeta del repositorio de [regiones GitHub CodePipeline no compatibles](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) incluye archivos de muestra que indican cómo CodeDeploy implementar la aplicación. El `appspec.yml` archivo es un archivo CodeDeploy de configuración que contiene enlaces para controlar el flujo de implementación de la aplicación. Puede usar los archivos de muestra `index.html`, `start_server.sh`, `stop_server.sh` y `install_dependencies.sh` para actualizar un sitio web alojado en Apache. Estos son ejemplos: puede usar el código del GitHub repositorio para implementar cualquier tipo de aplicación. Cuando los archivos se envían al CodeCommit repositorio, la canalización invisible se inicia automáticamente. Para ver los resultados de la implementación, compruebe los resultados de las fases individuales en las CodeDeploy consolas CodeBuild y consolas. | AWS DevOps | 

## Recursos relacionados
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Introducción](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentación de AWS CDK)
+ [Introducción al Cloud Development Kit (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Taller sobre AWS CDK](https://cdkworkshop.com/)

# Personalice los nombres de los roles predeterminados mediante AWS CDK aspectos y trampillas de escape
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches"></a>

*SANDEEP SINGH y James Jacob, Amazon Web Services*

## Resumen
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-summary"></a>

Este patrón muestra cómo personalizar los nombres predeterminados de los roles que se crean mediante componentes fijos. AWS Cloud Development Kit (AWS CDK) La personalización de los nombres de los roles suele ser necesaria si la organización tiene restricciones específicas basadas en las convenciones de nomenclatura. Por ejemplo, su organización puede establecer [límites de permisos AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) (IAM) o [políticas de control de servicios (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) que requieran un prefijo específico en los nombres de las funciones. En esos casos, es posible que los nombres de los roles predeterminados generados por AWS CDK las construcciones no cumplan estas convenciones y sea necesario modificarlos. Este patrón aborda esos requisitos mediante el uso de [vías de escape](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html) y [aspectos](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) de AWS CDK. Utilice las vías de escape para definir los nombres de los roles personalizados y los aspectos para aplicar un nombre personalizado a todos los roles, a fin de garantizar el cumplimiento de las políticas y restricciones de la organización.

## Requisitos previos y limitaciones
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Requisitos previos especificados en la [documentación de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)

**Limitaciones**
+ Los aspectos filtran los recursos en función de los tipos de recursos, por lo que todos los roles comparten el mismo prefijo. Si necesita prefijos de rol diferentes para roles distintos, es necesario aplicar filtros adicionales en función de otras propiedades. Por ejemplo, para asignar distintos prefijos a los roles que están asociados a AWS Lambda funciones, puede filtrar por atributos o etiquetas de rol específicos y aplicar un prefijo para los roles relacionados con Lambda y un prefijo diferente para los demás roles.
+ Los nombres de los roles de IAM tienen una longitud máxima de 64 caracteres, por lo que los nombres de los roles modificados deben recortarse para cumplir con esta restricción.
+ Algunos Servicios de AWS no están disponibles en todos. Regiones de AWS Para conocer la disponibilidad de las regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para los puntos de conexión específicos, consulte la página [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

## Arquitectura
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-architecture"></a>

**Pila de tecnología de destino**
+ AWS CDK
+ AWS CloudFormation

**Arquitectura de destino**

![\[Arquitectura para usar vías de escape y aspectos para personalizar los nombres de los roles asignados por AWS CDK.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/c149d8d2-1da6-4680-ab0b-e5051b69688c/images/15e56ca5-f150-4522-b374-8ee2dcc655a9.png)

+ Una AWS CDK aplicación consta de una o más CloudFormation pilas, que se sintetizan e implementan para administrar AWS los recursos.
+ Para modificar una propiedad de un recurso AWS CDK administrado que no esté expuesta por una construcción de capa 2 (L2), se utiliza una vía de escape para anular las CloudFormation propiedades subyacentes (en este caso, el nombre de la función) y un aspecto para aplicar la función a todos los recursos de la AWS CDK aplicación durante el proceso de síntesis de la pila. AWS CDK 

## Tools (Herramientas)
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-tools"></a>

**Servicios de AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la Nube de AWS infraestructura en el código.
+ [AWS CDK La interfaz de línea de comandos (AWS CDK CLI)](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (también conocida como kit de AWS CDK herramientas) es un kit de desarrollo en la nube de línea de comandos que le ayuda a interactuar con su AWS CDK aplicación. El `cdk` comando CLI es la herramienta principal para interactuar con AWS CDK la aplicación. Ejecuta tu aplicación, consulta el modelo de aplicación que has definido y produce e implementa las CloudFormation plantillas generadas por el. AWS CDK
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)le ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todas Cuentas de AWS las regiones.

**Repositorio de código**

El código fuente y las plantillas de este patrón están disponibles en el repositorio GitHub [CDK Aspects Override](https://github.com/aws-samples/cdk-aspects-override).

## Prácticas recomendadas
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-best-practices"></a>

Consulte [las mejores prácticas para usar el AWS CDK in TypeScript para crear proyectos de IaC](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html) en el sitio web de la Guía **AWS **prescriptiva.

## Epics
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-epics"></a>

### Instalación de la AWS CDK CLI
<a name="install-the-cdk-cli"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la AWS CDK CLI. | Para instalar la AWS CDK CLI globalmente, ejecute el comando:<pre>npm install -g aws-cdk</pre> | AWS DevOps | 
| Verificar la versión. | Ejecute el comando:<pre>cdk --version</pre>Confirme que está utilizando la versión 2 de la AWS CDK CLI. | AWS DevOps | 
| Inicie el AWS CDK entorno. | Antes de implementar las CloudFormation plantillas, prepare la cuenta Región de AWS que desea usar. Ejecute el comando:<pre>cdk bootstrap <account>/<Region></pre>Para obtener más información, consulte el proceso de [AWS CDK arranque en](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) la documentación. AWS  | AWS DevOps | 

### Implemente la AWS CDK aplicación para demostrar el uso de los aspectos
<a name="deploy-the-cdk-app-to-demonstrate-the-use-of-aspects"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure el proyecto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html) | AWS DevOps | 
| Implemente pilas con los nombres de rol predeterminados asignados por AWS CDK. | Implemente dos CloudFormation pilas (`ExampleStack1`y`ExampleStack2`) que contengan las funciones de Lambda y sus funciones asociadas:<pre>npm run deploy:ExampleAppWithoutAspects</pre>El código no transfiere explícitamente las propiedades de los roles, por lo que los nombres de los roles los construirá AWS CDK.Para obtener un ejemplo de resultado, consulte la sección [Información adicional](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 
| Implemente pilas con aspectos. | En este paso, se aplica un aspecto que impone una convención de nombres de roles añadiendo un prefijo a todos los roles de IAM que se implementan en el proyecto. AWS CDK El aspecto se define en el archivo `lib/aspects.ts`. El aspecto utiliza una vía de escape para anular el nombre del rol mediante la adición de un prefijo. El aspecto se aplica a las pilas del archivo `bin/app-with-aspects.ts`. En este ejemplo, el prefijo del nombre del rol es `dev-unicorn`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html)Para obtener un ejemplo de resultado, consulte la sección [Información adicional](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 

### Eliminar recursos
<a name="clean-up-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine sus AWS CloudFormation pilas. | Cuando termine este patrón, ejecute el comando siguiente para eliminar los recursos y evitar incurrir en costos adicionales:<pre>cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f </pre> | AWS DevOps | 

## Resolución de problemas
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Tiene problemas al utilizar el AWS CDK. | Consulte [Solución de AWS CDK problemas comunes](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) en la AWS CDK documentación. | 

## Recursos relacionados
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-resources"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)
+ [AWS CDK documentación](https://docs.aws.amazon.com/cdk/)
+ [AWS CDK en GitHub](https://github.com/aws/aws-cdk)
+ [Vías de escape](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html)
+ [Aspectos y el AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)

## Información adicional
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional"></a>

**Nombres de roles creados por CloudFormation sin aspectos**

```
Outputs:
ExampleStack1WithoutAspects.Function1RoleName = example-stack1-without-as-Function1LambdaFunctionSe-y7FYTY6FXJXA
ExampleStack1WithoutAspects.Function2RoleName = example-stack1-without-as-Function2LambdaFunctionSe-dDZV4rkWqWnI
...

Outputs:
ExampleStack2WithoutAspects.Function3RoleName = example-stack2-without-as-Function3LambdaFunctionSe-ygMv49iTyMq0
```

**Nombres de rol creados por CloudFormation With Aspects**

```
Outputs:
ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC
ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181
...

Outputs:
ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C
```

# Implemente un clúster de Cassandra en Amazon EC2 con estática privada IPs para evitar el reequilibrio
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing"></a>

*Dipin Jain, Amazon Web Services*

## Resumen
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-summary"></a>

La IP privada de una instancia de Amazon Elastic Compute Cloud (Amazon EC2) se conserva durante todo su ciclo de vida. Sin embargo, la IP privada puede cambiar durante un bloqueo planificado o imprevisto del sistema; por ejemplo, durante una actualización de Imagen de máquina de Amazon (AMI). En algunos escenarios, retener una IP estática privada puede mejorar el rendimiento y el tiempo de recuperación de las cargas de trabajo. Por ejemplo, el uso de una IP estática para un nodo raíz de Apache Cassandra evita que el clúster incurra en una sobrecarga de reequilibrio. 

Este patrón describe cómo conectar una interfaz de red elástica secundaria a EC2 las instancias para mantener la IP estática durante el realojamiento. El patrón se centra en los clústeres de Cassandra, pero puedes usar esta implementación para cualquier arquitectura que se beneficie de la estática privada. IPs

## Requisitos previos y limitaciones
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-prereqs"></a>

**Requisitos previos **
+ Una cuenta de Amazon Web Services (AWS) activa

**Versiones de producto**
+ DataStax versión 5.11.1
+ Sistema operativo: Ubuntu 16.04.6 LTS

## Arquitectura
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-architecture"></a>

**Arquitectura de origen**

La fuente podría ser un clúster de Cassandra en una máquina virtual (VM) local o en EC2 instancias de la nube de AWS. En el siguiente diagrama se ilustra el segundo escenario. Este ejemplo incluye cuatro nodos en el clúster: tres nodos raíz y un nodo de administración. En la arquitectura de origen, cada nodo tiene una única interfaz de red conectada.

![\[Cuatro nodos de EC2 clúster de Amazon, cada uno con una única interfaz de red conectada.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/5d80cfc9-4b72-4c72-aefd-b77cc0fb58e3.png)


**Arquitectura de destino**

El clúster de destino se aloja en EC2 instancias con una interfaz de red elástica secundaria conectada a cada nodo, como se muestra en el siguiente diagrama.

![\[Cuatro nodos de EC2 clúster de Amazon, cada uno con una interfaz de red elástica secundaria conectada.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/d1e22017-f041-426b-9204-31ac158a407d.png)


**Automatización y escala**

También puede automatizar la conexión de una segunda interfaz de red elástica a un grupo de EC2 Auto Scaling, tal y como se describe en un [vídeo del AWS Knowledge Center](https://www.youtube.com/watch?v=RmwGYXchb4E).

## Epics
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-epics"></a>

### Configurar un clúster de Cassandra en Amazon EC2
<a name="configure-a-cassandra-cluster-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Lanza EC2 nodos para alojar un clúster de Cassandra. | En la [ EC2 consola de Amazon](https://console.aws.amazon.com/ec2/), lanza cuatro EC2 instancias para tus nodos de Ubuntu en tu cuenta de AWS. Se utilizan tres nodos (iniciales) para el clúster de Cassandra y el cuarto nodo actúa como nodo de administración de clústeres en el que se instalará DataStax Enterprise (DSE) OpsCenter. Para obtener instrucciones, consulta la [ EC2 documentación de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance). | Ingeniero de nube | 
| Confirmar las comunicaciones de los nodos. | Asegúrese de que los cuatro nodos se puedan comunicar entre sí a través de los puertos de administración de la base de datos y el clúster. | Ingeniero de redes | 
| Instale el DSE OpsCenter en el nodo de administración. | Instale DSE OpsCenter 6.1 desde el paquete Debian en el nodo de gestión. Para obtener instrucciones, consulte la [documentación de DataStax ](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html). | Administrador de base de datos | 
| Cree una interfaz de red secundaria. | Cassandra genera un identificador único universal (UUID) para cada nodo en función de la dirección IP de la EC2 instancia de ese nodo. Este UUID se utiliza para distribuir los nodos virtuales (vnodes) en el anillo. Cuando Cassandra se implementa en EC2 las instancias, las direcciones IP se asignan automáticamente a las instancias a medida que se crean.  En caso de que se produzca una interrupción planificada o imprevista, la dirección IP de la nueva EC2 instancia cambia, la distribución de los datos cambia y es necesario reequilibrar todo el anillo. Esta situación no es deseable. Para conservar la dirección IP asignada, utilice una [interfaz de red elástica secundaria](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#scenarios-enis) con una dirección IP fija.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Para obtener más información sobre la creación de una interfaz de red, consulta la [ EC2 documentación de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#create_eni). | Ingeniero de nube | 
| Conectar la interfaz de red secundaria a los nodos del clúster. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Para obtener más información sobre cómo conectar una interfaz de red, consulta la [ EC2 documentación de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#attach_eni). | Ingeniero de nube | 
| Añade rutas en Amazon EC2 para abordar el enrutamiento asimétrico.  | Al conectar la segunda interfaz de red, es muy probable que la red realice un enrutamiento asimétrico. Para evitarlo, puede agregar rutas para las nuevas interfaces de red.Para obtener una explicación detallada y corregir el enrutamiento asimétrico, consulte el [vídeo del AWS Knowledge Center](https://www.youtube.com/watch?v=RmwGYXchb4E) o [Cómo superar el enrutamiento asimétrico en servidores multihogar](http://www.linuxjournal.com/article/7291) (artículo *publicado por Patrick en Linux Journal* McManus, el 5 de abril de 2004). | Ingeniero de redes | 
| Actualizar las entradas de DNS para que apunten a la IP de la interfaz de red secundaria. | Apunte el nombre de dominio completo (FQDN) del nodo a la IP de la interfaz de red secundaria. | Ingeniero de redes | 
| Instale y configure el clúster de Cassandra mediante DSE. OpsCenter | Cuando los nodos del clúster estén listos con las interfaces de red secundarias, podrá instalar y configurar el clúster de Cassandra. | Administrador de base de datos | 

### Recuperar el clúster de un fallo de nodo
<a name="recover-cluster-from-node-failure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una AMI para el nodo raíz del clúster. | Haga una copia de seguridad de los nodos para poder restaurarlos con los archivos binarios de la base de datos en caso de que fallen los nodos. Para obtener instrucciones, consulte [Crear una AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami.html) en la EC2 documentación de Amazon. | Administrador de copias de seguridad | 
| Recuperarse del fallo de un nodo. | Sustituya el nodo fallido por una nueva EC2 instancia lanzada desde la AMI y conecte la interfaz de red secundaria del nodo fallido. | Administrador de copias de seguridad | 
| Verificar que el clúster de Cassandra está en buen estado. | Cuando el nodo de reemplazo esté activo, compruebe el estado del clúster en el DSE OpsCenter. | Administrador de base de datos | 

## Recursos relacionados
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-resources"></a>
+ [Instalación del DSE OpsCenter 6.1 desde el paquete Debian](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html) (DataStax documentación)
+ [Cómo hacer que una interfaz de red secundaria funcione en una EC2 instancia de Ubuntu](https://www.youtube.com/watch?v=RmwGYXchb4E) (vídeo del AWS Knowledge Center)
+ [Prácticas recomendadas para ejecutar Apache Cassandra en Amazon EC2](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-cassandra-on-amazon-ec2/) (entrada del blog de AWS)

# Amplíe VRFs su alcance a AWS mediante AWS Transit Gateway Connect
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect"></a>

*Adam Till, Yashar Araghi, Vikas Dewangan y Mohideen, de Amazon Web Services HajaMohideen*

## Resumen
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-summary"></a>

El enrutamiento y el reenvío virtuales (VRF) son una característica de las redes tradicionales. Utiliza dominios de enrutamiento lógico aislados, en forma de tablas de enrutamiento, para separar el tráfico de red dentro de la misma infraestructura física. Puede configurar AWS Transit Gateway para que admita el aislamiento de VRF al conectar su red en las instalaciones a AWS. Este patrón utiliza una arquitectura de ejemplo para conectarse de forma local a diferentes tablas de rutas de las pasarelas de tránsito. VRFs 

Este patrón utiliza interfaces virtuales de tránsito (VIFs) en los archivos adjuntos de AWS Direct Connect y Transit Gateway Connect para ampliar la VRFs. Un [VIF de tránsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html) se utiliza para acceder a una o más puertas de enlace de tránsito de Amazon VPC asociadas a las puertas de enlace de Direct Connect. Una [conexión de Transit Gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) conecta una puerta de enlace de tránsito con un dispositivo virtual de terceros que se ejecuta en una VPC. Una conexión de Transit Gateway Connect admite el protocolo de túnel de encapsulación de enrutamiento genérico (GRE) para un alto rendimiento y el protocolo de puerta de enlace fronteriza (BGP) para el enrutamiento dinámico.

El enfoque descrito en este patrón tiene los siguientes beneficios:
+ Con Transit Gateway Connect, puede anunciar hasta 1000 rutas en el dispositivo homólogo de Transit Gateway Connect y recibir hasta 5000 rutas de este. El uso de la característica VIF de tránsito Direct Connect sin Transit Gateway Connect está limitado a 20 prefijos por puerta de enlace.
+ Puede mantener el aislamiento del tráfico y utilizar Transit Gateway Connect para proporcionar servicios con host en AWS, independientemente de los esquemas de direcciones IP que utilicen sus clientes.
+ No es necesario que el tráfico de VRF atraviese una interfaz virtual pública. Esto facilita el cumplimiento de los requisitos de cumplimiento y seguridad en muchas organizaciones.
+ Cada túnel de GRE admite hasta 5 Gbps y puede tener hasta cuatro túneles de GRE por cada conexión de Transit Gateway Connect. Es más rápido que muchos otros tipos de conexión, como las conexiones Site-to-Site VPN de AWS que admiten hasta 1,25 Gbps.

## Requisitos previos y limitaciones
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-prereqs"></a>

**Requisitos previos **
+ Se han creado las cuentas de AWS necesarias (consulte la arquitectura para obtener más información)
+ Permisos para asumir un rol de AWS Identity and Access Management (IAM) en cada cuenta.
+ Los roles de IAM de cada cuenta deben tener permisos para aprovisionar los recursos de AWS Transit Gateway y AWS Direct Connect. Para obtener más información, consulte [Autenticación y control de acceso para sus puertas de enlace](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html) y [Administración de identidad y acceso para Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/security-iam.html).
+ Las conexiones Direct Connect se crearon correctamente. Para obtener más información, consulte [Creación de una conexión mediante el asistente de conexión](https://docs.aws.amazon.com/directconnect/latest/UserGuide/dedicated_connection.html#create-connection).

**Limitaciones**
+ Hay límites para las conexiones de Transit Gateway a VPCs las cuentas de producción, control de calidad y desarrollo. Para obtener más información, consulte [Conexión de puerta de enlace de tránsito a una VPC](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html).
+ Existen límites para la creación y el uso de puertas de enlace de Direct Connect. Para obtener más información, consulte [Cuotas AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/limits.html).

## Arquitectura
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-architecture"></a>

**Arquitectura de destino**

El siguiente ejemplo de arquitectura proporciona una solución reutilizable para implementar Transit VIFs con los archivos adjuntos Transit Gateway Connect. Esta arquitectura proporciona resiliencia mediante el uso de varias ubicaciones de Direct Connect. Para obtener más información, consulte [Resiliencia máxima](https://docs.aws.amazon.com/directconnect/latest/UserGuide/maximum_resiliency.html) en la documentación de Direct Connect. La red local tiene producción, control de calidad y desarrollo VRFs que se extienden a AWS y se aíslan mediante tablas de rutas dedicadas.

![\[Diagrama de arquitectura del uso de los recursos de AWS Direct Connect y AWS Transit Gateway para ampliar VRFs\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/10be0625-8574-40eb-bc00-bb0a07d0dc26.png)


En el entorno de AWS, hay dos cuentas dedicadas a ampliarla VRFs: una cuenta de *Direct Connect y una cuenta* de *hub de red*. La cuenta Direct Connect contiene la conexión y el tránsito VIFs de cada router. El tránsito se crea VIFs desde la cuenta de Direct Connect, pero se despliega en la cuenta del concentrador de red para poder asociarlo a la puerta de enlace de Direct Connect en la cuenta del concentrador de red. La cuenta del hub de red contiene la puerta de enlace de Direct Connect y la puerta de enlace de tránsito. Los recursos de AWS están conectados de la siguiente manera:

1. Transit VIFs conecta los enrutadores de las ubicaciones de Direct Connect con AWS Direct Connect en la cuenta de Direct Connect.

1. Un VIF de tránsito conecta Direct Connect con la puerta de enlace Direct Connect de la cuenta del hub de red.

1. Una [asociación de puertas de enlace de tránsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html) conecta la puerta de enlace Direct Connect con la puerta de enlace de tránsito de la cuenta del hub de red.

1. [Los accesorios Transit Gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) conectan la pasarela de tránsito con VPCs las cuentas de producción, control de calidad y desarrollo.

*Arquitectura Transit VIF*

El siguiente diagrama muestra los detalles de configuración del tránsito VIFs. En este ejemplo de arquitectura se utiliza una VLAN para la fuente del túnel, pero también se puede utilizar un bucle invertido.

![\[Detalles de configuración de las conexiones VIF de tránsito entre los enrutadores y AWS Direct Connect\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e88d2546-61ef-4531-972b-089cdf44ed67.png)


A continuación se muestran los detalles de configuración, como los números de sistema autónomo (ASNs), del tránsito VIFs.


| 
| 
| Recurso | Elemento | Detalle | 
| --- |--- |--- |
| router-01 | ASN | 65534 | 
| router-02 | ASN | 65534 | 
| router-03 | ASN | 65534 | 
| router-04 | ASN | 65534 | 
| Gateway de Direct Connect | ASN | 64601 | 
| Puerta de enlace de tránsito | ASN | 64600 | 
| Bloque CIDR | 10,100,254,0/24 | 

*Arquitectura Transit Gateway Connect*

El diagrama y las tablas siguientes describen cómo configurar un VRF único a través de una conexión Transit Gateway Connect. Además VRFs, asigne direcciones IP GRE de túnel IDs, pasarela de tránsito y BGP únicos dentro de los bloques CIDR. La dirección IP GRE homóloga coincide con la dirección IP homóloga del router del VIF de tránsito.

![\[Detalles de configuración de los túneles de GRE entre los enrutadores y la puerta de enlace de tránsito\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e58278e1-f3b4-442d-95d9-1dafab4aa5ac.png)


La siguiente tabla contiene detalles de configuración del enrutador.


| 
| 
| Enrutador | Túnel | Dirección IP | Origen | Destino | 
| --- |--- |--- |--- |--- |
| router-01 | Túnel 1 | 169.254.101.17 | VLAN 60169,254,1001 | 10,100,254.1 | 
| router-02 | Túnel 11 | 169,254,101,81 | VLAN 61169,254,1005 | 10,100254,11 | 
| router-03 | Túnel 21 | 169,254,101,145 | VLAN 62169,254,1009 | 10,100254,21 | 
| router-04 | Túnel 31 | 169,254,101,209 | VLAN 63169,254100,13 | 10,100254,31 | 

La siguiente tabla contiene detalles de la puerta de enlace de tránsito.


| 
| 
| Túnel | Dirección IP GRE de puerta de enlace | Direcciones IP GRE del mismo nivel | BGP dentro de los bloques CIDR | 
| --- |--- |--- |--- |
| Túnel 1 | 10,100254.1 | VLAN 60169,254,1001 | 169,254,101,16/29 | 
| Túnel 11 | 10,100254,11 | VLAN 61169,254,1005 | 169,254,101,80/29 | 
| Túnel 21 | 10,100254,21 | VLAN 62169,254,1009 | 169,254.101.144/29 | 
| Túnel 31 | 10,100254,31 | VLAN 63169,254100,13 | 169,254,101.208/29 | 

**Implementación**

La sección [Epics](#extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-epics) describe cómo implementar un ejemplo de configuración para un** **único VRF en varios enrutadores de clientes. Una vez completados los pasos 1 a 5, puede crear nuevas conexiones de Transit Gateway Connect siguiendo los pasos 6 y 7 para cada VRF nuevo que extienda a AWS:

1. Cree la puerta de enlace de tránsito.

1. Crear una tabla de enrutamiento de la puerta de enlace de tránsito para cada VRF.

1. Cree las interfaces virtuales de tránsito.

1. Cree una puerta de enlace Direct Connect.

1. Cree la interfaz virtual de la puerta de enlace Direct Connect y las asociaciones de puerta de enlace con los prefijos permitidos.

1. Cree una conexión de Connect de puerta de enlace de tránsito.

1. Crear pares de Transit Gateway Connect.

1. Asocie las conexiones de Transit Gateway Connect con la tabla de enrutamiento.

1. Anuncie las rutas a los enrutadores.

## Tools (Herramientas)
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-tools"></a>

**Servicios de AWS**
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) vincula su red interna con una ubicación de Direct Connect a través de un cable estándar Ethernet de fibra óptica. Con esta conexión, puede crear interfaces virtuales directamente en servicios públicos de AWS omitiendo a los proveedores de servicios de Internet en su ruta de acceso a la red.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) es un centro central que conecta nubes privadas virtuales (VPCs) y redes locales.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

## Epics
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-epics"></a>

### Planifique la arquitectura
<a name="plan-the-architecture"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree diagramas de arquitectura personalizados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 

### Cree los recursos de la puerta de enlace de tránsito.
<a name="create-the-transit-gateway-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la puerta de enlace de tránsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrador de redes, arquitecto de la nube | 
| Cree una tabla de enrutamiento para la puerta de enlace de tránsito. | Siga las instrucciones de [Crear una tabla de enrutamiento para la puerta de enlace de tránsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#create-tgw-route-table). Tenga en cuenta lo siguiente para este patrón:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 

### Cree las interfaces virtuales de tránsito
<a name="create-the-transit-virtual-interfaces"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree las interfaces virtuales de tránsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 

### Cree los recursos de Direct Connect
<a name="create-the-direct-connect-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una puerta de enlace de Direct Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 
| Conecte la puerta de enlace Direct Connect al transporte público VIFs. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 
| Cree las asociaciones de puerta de enlace Direct Connect con los prefijos permitidos. | En la cuenta del hub de red, siga las instrucciones de [Para asociar una puerta de enlace de tránsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html#associate-tgw-with-direct-connect-gateway). Tenga en cuenta lo siguiente para este patrón:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html)Al crear esta asociación, se crea automáticamente una conexión de puerta de enlace de tránsito que tiene un tipo de recurso Direct Connect Gateway. No es necesario que esta conexión esté asociada a una tabla de enrutamiento de puerta de enlace de tránsito. | Arquitecto de la nube, administrador de redes | 
| Cree una conexión de Connect de puerta de enlace de tránsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquitecto de la nube, administrador de redes | 
| Crear pares de Transit Gateway Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) |  | 

### Anuncie las rutas a los enrutadores.
<a name="advertise-routes-to-the-routers"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Anuncie las rutas. | Asocie la nueva conexión de puerta de enlace de Connect a la tabla de enrutamiento que creó anteriormente para este VRF. Por ejemplo, asocie las conexiones de Transit Gateway Connect de producción con la tabla de enrutamiento `Production-VRF`.Cree una ruta estática para el prefijo que se anuncia en los enrutadores.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrador de redes, arquitecto de la nube | 

## Recursos relacionados
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-resources"></a>

**Documentación de AWS**
+ Documentación de Direct Connect
  + [Uso de puertas de enlace de Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways.html)
  + [Asociaciones de la puerta de enlace de tránsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html)
  + [Interfaces virtuales de AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html)
+ Documentación de Transit Gateway
  + [Usar puertas de enlace de tránsito](https://docs.aws.amazon.com/vpc/latest/tgw/working-with-transit-gateways.html)
  + [Conexiones de puertas de enlace de tránsito a una puerta de enlace de Direct Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-dcg-attachments.html)
  + [Conexiones de puertas de enlace de tránsito y pares de Transit Gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html)
  + [Crear una conexión Transit gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#create-tgw-connect-attachment)

**Publicaciones del blog de AWS**
+ [Segmentación de redes híbridas con AWS Transit Gateway Connect](https://aws.amazon.com/blogs/networking-and-content-delivery/segmenting-hybrid-networks-with-aws-transit-gateway-connect/)
+ [Uso de AWS Transit Gateway connect para ampliar VRFs y aumentar la publicidad de prefijos de IP](https://aws.amazon.com/blogs/networking-and-content-delivery/using-aws-transit-gateway-connect-to-extend-vrfs-and-increase-ip-prefix-advertisement/)

## Conexiones
<a name="attachments-db17e177-6c94-4d81-ab39-0923ecab2f1b"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/db17e177-6c94-4d81-ab39-0923ecab2f1b/attachments/attachment.zip)

# Reciba notificaciones de Amazon SNS cuando cambie el estado de clave de una clave de AWS KMS
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes"></a>

*Shubham Harsora, Aromal Raj Jayarajan y Navdeep Pareek, Amazon Web Services*

## Resumen
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-summary"></a>

Los datos y los metadatos asociados con una clave de AWS Key Management Service (AWS KMS) se pierden al eliminarla. Esta eliminación es irreversible, y no se pueden recuperar los datos perdidos (incluidos los datos cifrados). Puede evitar la pérdida de datos configurando un sistema de notificaciones que le avise de los cambios de estado en los [estados de clave](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) de sus claves de AWS KMS.

Este patrón le muestra cómo supervisar los cambios de estado en las claves de AWS KMS mediante Amazon EventBridge y Amazon Simple Notification Service (Amazon SNS) para emitir notificaciones automáticas siempre que el estado clave de una clave de AWS KMS cambie a o. `Disabled` `PendingDeletion` Por ejemplo, si un usuario intenta deshabilitar o eliminar una clave de AWS KMS, recibirá una notificación por correo electrónico con detalles sobre el intento de cambio de estado. También puede usar este patrón para programar la eliminación de las claves de AWS KMS.

## Requisitos previos y limitaciones
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS con un usuario de AWS Identity and Access Management (IAM)
+ Una [clave de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)

## Arquitectura
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-architecture"></a>

**Pila de tecnología**
+ Amazon EventBridge
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Notification Service (Amazon SNS)

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura para crear un proceso automatizado de supervisión y notificación que detecta cualquier cambio en el estado de una clave de AWS KMS.

![\[Arquitectura para crear un proceso automatizado de supervisión y notificación\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2534df87-a6fd-4360-9b5d-4a8b1f533de3/images/0cb6a6b0-405b-4d26-ad04-2067176aa086.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Un usuario deshabilita o programa la eliminación de una clave de AWS KMS.

1. Una EventBridge regla evalúa la programación `Disabled` o el `PendingDeletion` evento.

1. La EventBridge regla invoca el tema Amazon SNS.

1. Amazon SNS envía un mensaje de notificación por correo electrónico a los usuarios.

**nota**  
Puede personalizar el mensaje de correo electrónico para adaptarlo a las necesidades de su organización. Recomendamos incluir información sobre las entidades en las que se usa la clave de AWS KMS. Esto puede ayudar a los usuarios a comprender el impacto de eliminar la clave de AWS KMS. También puede programar una notificación de recordatorio por correo electrónico que se envíe uno o dos días antes de eliminar la clave de AWS KMS.

**Automatización y escala**

La CloudFormation pila de AWS implementa todos los recursos y servicios necesarios para que este patrón funcione. Puede implementar el patrón de forma independiente en una sola cuenta o mediante [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) para varias cuentas o [unidades organizativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) independientes en AWS Organizations.

## Tools (Herramientas)
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-tools"></a>
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) le CloudFormation ayuda a configurar los recursos de AWS, aprovisionarlos de forma rápida y coherente y gestionarlos durante todo su ciclo de vida en todas las cuentas y regiones de AWS. La CloudFormation plantilla de este patrón describe todos los recursos de AWS que desee y los CloudFormation aprovisiona y configura automáticamente.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. EventBridge ofrece un flujo de datos en tiempo real desde sus propias aplicaciones y servicios de AWS, y dirige esos datos a objetivos como AWS Lambda. EventBridge simplifica el proceso de creación de arquitecturas basadas en eventos.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) facilita poder crear y controlar claves criptográficas para proteger los datos.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.

**Código**

El código de este patrón está disponible en el repositorio GitHub [Monitor AWS KMS Keys Disable and Scheduled Delete](https://github.com/aws-samples/aws-kms-deletion-notification).

## Epics
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-epics"></a>

### Implemente la CloudFormation plantilla
<a name="deploy-the-cloudformation-template"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clonar el repositorio. | Clone el repositorio de [claves, deshabilitación y eliminación programada de claves de AWS KMS de GitHub Monitor](https://github.com/aws-samples/aws-kms-deletion-notification) en su máquina local ejecutando el siguiente comando:`git clone https://github.com/aws-samples/aws-kms-deletion-notification` | Administrador de AWS, arquitecto de la nube | 
| Actualice los parámetros de la plantilla. | En un editor de código, abra la `Alerting-KMS-Events.yaml` CloudFormation plantilla que ha clonado del repositorio y, a continuación, actualice los siguientes parámetros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador de AWS, arquitecto de la nube | 
| Implemente la CloudFormation plantilla. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador de AWS, arquitecto de la nube | 

### Confirmar la suscripción
<a name="confirm-the-subscription"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Confirme la suscripción por correo electrónico. | Una vez que la CloudFormation plantilla se haya implementado correctamente, Amazon SNS envía un mensaje de confirmación de suscripción a la dirección de correo electrónico que proporcionó en CloudFormation la plantilla.Debe confirmar esta suscripción de correo electrónico para recibir notificaciones. Para obtener más información, consulte [Cómo confirmar la suscripción](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.confirm.html) en la Guía para desarrolladores de Amazon SNS. | Administrador de AWS, arquitecto de la nube | 

### Pruebe la notificación de la suscripción
<a name="test-the-subscription-notification"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Deshabilite las claves de AWS KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador de AWS | 
| Valide la suscripción. | Confirme que ha recibido la notificación de Amazon SNS por correo electrónico. | Administrador de AWS | 

### Eliminar recursos
<a name="clean-up-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine la pila CloudFormation . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador de AWS | 

## Recursos relacionados
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-resources"></a>
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/) (documentación de AWS)
+ [Creación de una pila en la CloudFormation consola de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) ( CloudFormation documentación de AWS)
+ [Creación de arquitecturas basadas en eventos en AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/63320e83-6abc-493d-83d8-f822584fb3cb/en-US) (documentación de AWS Workshop Studio)
+ [Prácticas recomendadas de AWS Key Management Service](https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) (documento técnico de AWS)
+ [Prácticas recomendadas de seguridad para AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) (Guía del desarrollador de AWS KMS)

## Información adicional
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-additional"></a>

Amazon SQS proporciona cifrado en tránsito de forma predeterminada. Para satisfacer las prácticas recomendadas de seguridad, también puede habilitar el cifrado en el servidor para Amazon SNS mediante una clave de AWS KMS gestionada por el cliente.

# Preserve el espacio IP enrutable en los diseños de VPC de varias cuentas para subredes que no son de carga de trabajo
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets"></a>

*Adam Spicer, Amazon Web Services*

## Resumen
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-summary"></a>

Amazon Web Services (AWS) ha publicado prácticas recomendadas que animan a usar subredes dedicadas en una nube privada virtual (VPC) tanto para [conexiones de puerta de enlace de tránsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) como para [los puntos de conexión del equilibrador de carga de la puerta de enlace](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/getting-started.html) (para admitir [AWS Network Firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-high-level-steps.html) o dispositivos de terceros). Estas subredes se utilizan para contener interfaces de red elásticas para estos servicios. Si utiliza AWS Transit Gateway y una puerta de enlace de equilibrador de carga, se crean dos subredes en cada zona de disponibilidad para la VPC. Debido a la forma en que VPCs están diseñadas, estas subredes adicionales [no pueden ser más pequeñas que una máscara /28 y pueden consumir un](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-sizing) valioso espacio IP enrutable que, de otro modo, podría usarse para cargas de trabajo enrutables. Este patrón muestra cómo se puede utilizar un rango de enrutamiento entre dominios sin clase (CIDR) secundario y no enrutable para estas subredes dedicadas a fin de ayudar a preservar el espacio IP enrutable.

## Requisitos previos y limitaciones
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-prereqs"></a>

**Requisitos previos**
+ [Estrategia de múltiples VPC](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) para un espacio IP enrutable
+ Un rango de CIDR no enrutable para los servicios que está utilizando ([conexión de puerta de enlace de tránsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) y [conexiones al equilibrador de carga de la puerta de enlace](https://aws.amazon.com/blogs/apn/centralized-traffic-inspection-with-gateway-load-balancer-on-aws/) o [puntos de conexión de Network Firewall](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/))

## Arquitectura
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-architecture"></a>

**Arquitectura de destino**

Este patrón incluye dos arquitecturas de referencia: una arquitectura tiene subredes para los adjuntos de la pasarela de tránsito (TGW) y un punto final de Gateway Load Balancer (GWLBe), y la segunda arquitectura tiene subredes solo para los adjuntos de la TGW.

**Arquitectura 1: VPC conectada a TGW-con enrutamiento de entrada a un dispositivo**

El siguiente diagrama representa una arquitectura de referencia para una VPC que abarca dos zonas de disponibilidad. Al entrar, la VPC utiliza [un patrón de enrutamiento de entrada](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) para dirigir el tráfico destinado a la subred pública a [bump-in-the-wire un](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-gateway-load-balancer-supported-architecture-patterns/) dispositivo para inspeccionar el firewall. Un adjunto de TGW admite la salida de las subredes privadas a una VPC independiente.

Este patrón utiliza un rango CIDR no enrutable para la subred adjunta del TGW y la subred. GWLBe En la tabla de enrutamiento de TGW, este CIDR no enrutable se configura con una ruta de agujero negro (estática) mediante un conjunto de rutas más específicas. Si las rutas se propagaran a la tabla de enrutamiento de TGW, se aplicarían estas rutas de agujero negro más específicas.

En este ejemplo, el CIDR enrutable /23 se divide y se asigna completamente a las subredes enrutables.

![\[VPC adjunta a TGW con enrutamiento de entrada a un dispositivo.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/adad1c83-cdc2-4c5e-aa35-f47fc31af384.png)


**Arquitectura 2: VPC adjunta a TGW**

El siguiente diagrama representa otra arquitectura de referencia para una VPC que abarca dos zonas de disponibilidad. Una conexión de TGW admite el tráfico de salida (egreso) de las subredes privadas a una VPC independiente. Utiliza un rango CIDR no enrutable solo para la subred de conexión de TGW. En la tabla de enrutamiento de TGW, este CIDR no enrutable se configura con una ruta de agujero negro mediante un conjunto de rutas más específicas. Si las rutas se propagaran a la tabla de enrutamiento de TGW, se aplicarían estas rutas de agujero negro más específicas.

En este ejemplo, el CIDR enrutable /23 se divide y se asigna completamente a las subredes enrutables. 

![\[La VPC abarca 2 zonas de disponibilidad con conexión a TGW para salir de subredes privadas a una VPC independiente.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/31a2a241-5be6-425e-93e9-5ff7ffeca3a9.png)


## Tools (Herramientas)
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-tools"></a>

**Servicios y recursos de AWS**
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS. En este patrón, las VPC secundarias CIDRs se utilizan para conservar el espacio IP enrutable en la carga de trabajo. CIDRs
+ El [enrutamiento de ingreso de la puerta de enlace de Internet](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) (asociaciones de periferia) se puede utilizar junto con los puntos de conexión del equilibrador de carga de la puerta de enlace para subredes dedicadas no enrutables.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) es un centro central que conecta VPCs las redes locales. Según este patrón, VPCs están conectados centralmente a una puerta de enlace de tránsito y los adjuntos a la puerta de enlace de tránsito están en una subred dedicada no enrutable.
+ [Los equilibradores de carga de la puerta de enlace](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html) permiten implementar, escalar y administrar dispositivos virtuales, como firewalls, sistemas de prevención y detección de intrusiones así como sistemas de inspección profunda de paquetes. La puerta de enlace sirve como punto único de entrada y salida para todo el tráfico. En este patrón, los puntos de conexión de un equilibrador de carga de puerta de enlace se pueden usar en una subred dedicada no enrutable.
+ [AWS Network Firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html) es un servicio de detección y prevención de intrusiones y firewall de red gestionado y con estado para la VPCs nube de AWS. En este patrón, los puntos de conexión de un firewall se pueden usar en una subred dedicada no enrutable.

**Repositorio de código**

En el repositorio de patrones [CIDR secundarios GitHub no enrutables](https://github.com/aws-samples/non-routable-secondary-vpc-cidr-patterns/) hay un manual y CloudFormation plantillas de AWS para este patrón. Puede usar los archivos de muestra para configurar un laboratorio de trabajo en su entorno.

## Prácticas recomendadas
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-best-practices"></a>

**AWS Transit Gateway**
+ Utilice una subred independiente para cada archivo asociado a la VPC de la puerta de enlace de tránsito.
+ Asigne una subred /28 del rango CIDR secundario no enrutable para las subredes de conexión de puerta de enlace de tránsito.
+ En cada tabla de enrutamiento de la puerta de enlace de tránsito, añada una ruta estática más específica para el rango CIDR no enrutable como agujero negro.

**Equilibrador de carga de puerta de enlace y enrutamiento de ingreso**
+ Utilice el enrutamiento de ingreso para dirigir el tráfico de Internet a los puntos de conexión del equilibrador de carga de puerta de enlace.
+ Utilice una subred independiente para cada punto de conexión del equilibrador de carga de puerta de enlace.
+ Asigne una subred /28 del rango CIDR secundario no enrutable para las subredes de punto de conexión de puerta de enlace del equilibrador de carga.

## Epics
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-epics"></a>

### Crear VPCs
<a name="create-vpcs"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Determine el rango CIDR no enrutable. | Determine un rango CIDR no enrutable que se utilizará para la subred de conexión de puerta de enlace de tránsito y (opcionalmente) para cualquier subred de punto de conexión de equilibrador de carga de puerta de enlace o Network Firewall. Este rango de CIDR se utilizará como CIDR secundario para la VPC. **No debe poder enrutarse** desde el rango CIDR principal de la VPC ni desde la red más amplia. | Arquitecto de la nube | 
| Determine los rangos de CIDR enrutables para. VPCs | Determine un conjunto de rangos de CIDR enrutables que se utilizarán para su. VPCs Este rango de CIDR se utilizará como el CIDR principal de su. VPCs | Arquitecto de la nube | 
| Crear. VPCs | Crea las tuyas VPCs y adjúntalas a la pasarela de transporte. Cada VPC debe tener un rango CIDR principal que se pueda enrutar y un rango CIDR secundario que no se pueda enrutar, según los rangos que haya determinado en los dos pasos anteriores. | Arquitecto de la nube | 

### Configuración de las rutas de agujeros negros de puerta de enlace de tránsito
<a name="configure-transit-gateway-blackhole-routes"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea agujeros negros más específicos que no se puedan enrutar CIDRs . | Cada tabla de enrutamiento de las pasarelas de tránsito debe tener un conjunto de rutas negras creadas para las que no se pueden enrutar. CIDRs Están configurados para garantizar que el tráfico del CIDR de la VPC secundaria no se pueda enrutar y no se filtre a la red más amplia. Estas rutas deben ser más específicas que el CIDR no enrutable que se establece como el CIDR secundario en la VPC. Por ejemplo, si el CIDR secundario no enrutable es 100.64.0.0/26, las rutas de agujero negro de la tabla de enrutamiento de la puerta de enlace de tránsito deberían ser 100.64.0.0/27 y 100.64.0.32/27. | Arquitecto de la nube | 

## Recursos relacionados
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-resources"></a>
+ [Prácticas recomendadas para implementar el Equilibrador de carga de puerta de enlace](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/)
+ [Arquitecturas de inspección distribuida con el Equilibrador de carga de puerta de enlace](https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/distributed-inspection-architectures-gwlb-ra.pdf?did=wp_card&trk=wp_card)
+ [Día de inmersión en redes](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc): [laboratorio de firewall de Internet a VPC](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc)
+ [Prácticas recomendadas de diseño de una puerta de enlace de tránsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html)

## Información adicional
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-additional"></a>

El rango CIDR secundario no enrutable también puede resultar útil cuando se trabaja con implementaciones de contenedores de mayor escala que requieren un gran conjunto de direcciones IP. Puede utilizar este patrón con una puerta de enlace NAT privada para utilizar una subred no enrutable para alojar las implementaciones de contenedores. Para obtener más información, consulte la entrada de blog sobre [cómo resolver el agotamiento de la IP privada con una solución de NAT privada](https://aws.amazon.com/blogs/networking-and-content-delivery/how-to-solve-private-ip-exhaustion-with-private-nat-solution/).

# Aprovisione un producto de Terraform AWS Service Catalog mediante un repositorio de código
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository"></a>

*Dr. Rahul Sharad Gaikwad y Tamilselvan P, Amazon Web Services*

## Resumen
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-summary"></a>

AWS Service Catalog [admite el aprovisionamiento de autoservicio con gobernanza para sus configuraciones de Terraform. HashiCorp ](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) Si usa Terraform, puede usar Service Catalog como la única herramienta para organizar, gobernar y distribuir sus configuraciones de Terraform AWS a escala. Puede acceder a las funciones clave de Service Catalog, como la catalogación de plantillas de infraestructura como código (IaC) estandarizadas y previamente aprobadas, el control de acceso, el aprovisionamiento de recursos en la nube con el menor acceso privilegiado, el control de versiones, el uso compartido con miles de personas y el etiquetado. Cuentas de AWS Los usuarios finales, como ingenieros, administradores de bases de datos y científicos de datos, ven una lista de productos y versiones a los que tienen acceso y, a continuación, pueden implementarlos con una sola acción.

Este patrón le ayuda a implementar AWS recursos mediante el código de Terraform. Se accede al código de Terraform del GitHub repositorio a través de Service Catalog. Con este enfoque, puede integrar los productos con los flujos de trabajo de Terraform existentes. Los administradores pueden crear carteras de Service Catalog y añadirles AWS Launch Wizard productos mediante Terraform.

Los siguientes son beneficios de esta solución:
+ Gracias a la característica de reversión de Service Catalog, si se produce algún problema durante la implementación, puede revertir el producto a una versión anterior.
+ Puede identificar fácilmente las diferencias entre las versiones del producto. Esto le permite resolver los problemas durante la implementación.
+ Puede configurar una conexión al repositorio en Service Catalog, por ejemplo, a GitHub o GitLab. Puede realizar cambios en los productos directamente a través del repositorio.

Para obtener información sobre las ventajas generales de AWS Service Catalog, consulte [Qué es Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).

## Requisitos previos y limitaciones
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS.
+ Un GitHub repositorio u otro que contenga archivos de configuración de Terraform en formato ZIP. BitBucket
+ AWS Serverless Application Model Interfaz de línea de comandos (AWS SAM CLI), [instalada](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html).
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Go [instalado](https://go.dev/doc/install).
+ Versión 3.9 de Python, [instalada](https://www.python.org/downloads/release/python-3913/). AWS SAM La CLI requiere esta versión de Python.
+ Permisos para escribir y ejecutar AWS Lambda funciones y permisos para acceder a los productos y carteras de Service Catalog y administrarlos.

## Arquitectura
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-architecture"></a>

![\[Diagrama de arquitectura del aprovisionamiento de un producto de Terraform en Service Catalog desde un repositorio de código\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/7d0d76e8-9485-4b3f-915f-481b6a7cdcd9/images/e83fa44a-4ca6-4438-a0d1-99f09a3541bb.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Cuando la configuración de Terraform está lista, un desarrollador crea un archivo .zip que contiene todo el código de Terraform. El desarrollador carga el archivo .zip en el repositorio de código que está conectado a Service Catalog.

1. Un administrador asocia el producto de Terraform a una cartera de Service Catalog. El administrador también crea una restricción de lanzamiento que permite a los usuarios finales aprovisionar el producto.

1. En Service Catalog, los usuarios finales lanzan AWS recursos mediante la configuración de Terraform. Pueden elegir qué versión de producto se debe implementar.

## Tools (Herramientas)
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-tools"></a>

**Servicios de AWS**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)le ayuda a gestionar de forma centralizada los catálogos de servicios de TI aprobados. AWS Los usuarios finales pueden implementar rápidamente solo los servicios de TI aprobados que necesitan, de acuerdo con las limitaciones establecidas por su organización.

**Otros servicios**
+ [Go](https://go.dev/doc/install) es un lenguaje de programación de código abierto compatible con Google.
+ [Python](https://www.python.org/) es un lenguaje de programación informático de uso general.

**Repositorio de código**

Si necesita ejemplos de configuraciones de Terraform que pueda implementar a través de Service Catalog, puede usar las configuraciones del repositorio GitHub [Amazon Macie Organization Setup Using](https://github.com/aws-samples/aws-macie-customization-terraform-samples) Terraform. No es necesario usar los ejemplos de código de este repositorio.

## Prácticas recomendadas
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-best-practices"></a>
+ En lugar de proporcionar los valores de las variables en el archivo de configuración de Terraform (`terraform.tfvars`), configure los valores de las variables al lanzar el producto a través de Service Catalog.
+ Conceda acceso a la cartera solo a usuarios o administradores específicos.
+ Cumpla con el principio de privilegio mínimo y conceda los permisos mínimos necesarios para llevar a cabo una tarea. Para obtener más información, consulte las [mejores prácticas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) y [concesión de privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) en la documentación AWS Identity and Access Management (IAM).

## Epics
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-epics"></a>

### Configure su equipo de trabajo local
<a name="set-up-your-local-workstation"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| (Opcional) Instale Docker. | Si desea ejecutar las AWS Lambda funciones en su entorno de desarrollo, instale Docker. Para ver instrucciones, consulte [Install Docker Engine](https://docs.docker.com/engine/install/) (Instalar motor de Docker) en la documentación de Docker. | DevOps ingeniero | 
| Instale el AWS Service Catalog motor para Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingeniero, administrador de AWS | 

### Conectar el GitHub repositorio
<a name="connect-the-github-repository"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una conexión con el GitHub repositorio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 

### Creación de un producto de Terraform en Service Catalog
<a name="create-a-terraform-product-in-service-catalog"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el producto de Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Cree una cartera. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Agregue el producto de Terraform a la cartera. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Cree la política de acceso. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Cree una política de confianza personalizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Agregue una restricción de lanzamiento al producto de Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Conceda acceso al producto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 
| Lance el producto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingeniero | 

### Verifique la implementación
<a name="verify-the-deployment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide la implementación. | Hay dos máquinas de AWS Step Functions estado para el flujo de trabajo de aprovisionamiento de Service Catalog:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html)Debe comprobar los registros de la máquina de estados `ManageProvisionedProductStateMachine` para confirmar que el producto se ha aprovisionado.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingeniero | 

### Limpieza de la infraestructura
<a name="clean-up-infrastructure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los productos aprovisionados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingeniero | 
| Retire el AWS Service Catalog motor de Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador de AWS | 

## Recursos relacionados
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-resources"></a>

**AWS documentación**
+ [Cómo empezar con un producto de Terraform](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-Terraform.html)

**Documentación de Terraform**
+ [Instalación de Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
+ [Terraform backend configuration](https://developer.hashicorp.com/terraform/language/backend)
+ [Documentación de Terraform Provider AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)

## Información adicional
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-additional"></a>

**Política de acceso**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                }
            }
        },
        {
            "Action": [
                "s3:CreateBucket*",
                "s3:DeleteBucket*",
                "s3:Get*",
                "s3:List*",
                "s3:PutBucketTagging"
            ],
            "Resource": "arn:aws:s3:::*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "resource-groups:CreateGroup",
                "resource-groups:ListGroupResources",
                "resource-groups:DeleteGroup",
                "resource-groups:Tag"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "tag:TagResources",
                "tag:UntagResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

**Política de confianza**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GivePermissionsToServiceCatalog",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::account_id:root"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*",
                        "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*",
                        "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*"
                    ]
                }
            }
        }
    ]
}
```

# Registre varios Cuentas de AWS con una sola dirección de correo electrónico mediante Amazon SES
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses"></a>

*Joe Wozniak y Shubhangi Vishwakarma, Amazon Web Services*

## Resumen
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-summary"></a>

Este patrón describe cómo puede desvincular las direcciones de correo electrónico reales de la dirección de correo electrónico asociada a una. Cuenta de AWS Cuentas de AWS requieren que se proporcione una dirección de correo electrónico única al momento de crear la cuenta. En algunas organizaciones, el equipo que lo administra Cuentas de AWS debe asumir la carga de administrar muchas direcciones de correo electrónico únicas con su equipo de mensajería. Esto puede resultar difícil para las grandes organizaciones que administran muchas Cuentas de AWS. Además, si su sistema de correo electrónico no permite usar el *símbolo \$1 en direcciones* ni usar *subdirecciones*, tal como se define en [Sieve Email Filtering: Subaddress Extension (RFC 5233)](https://datatracker.ietf.org/doc/html/rfc5233) (agregando un signo más [\$1] y un identificador al final de la parte local del correo, como `admin+123456789123@example.com`) este patrón permite sortear dicha limitación.

Este patrón proporciona una solución única de venta de direcciones de correo electrónico que permite a Cuenta de AWS los propietarios asociar una dirección de correo electrónico con varias Cuentas de AWS. Luego, las direcciones de correo electrónico reales de Cuenta de AWS los propietarios se asocian a estas direcciones de correo electrónico generadas en una tabla. La solución gestiona todo el correo entrante de las cuentas de correo electrónico únicas, busca al propietario de cada cuenta y, a continuación, reenvía los mensajes recibidos al propietario.  

## Requisitos previos y limitaciones
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-prereqs"></a>

**Requisitos previos **
+ Acceso administrativo a un Cuenta de AWS.
+ Acceso a un entorno de desarrollo. 
+ (Opcional) Estar familiarizado con los AWS Cloud Development Kit (AWS CDK) flujos de trabajo y el lenguaje de programación Python le ayudará a solucionar cualquier problema o a realizar modificaciones.

**Limitaciones**
+ La longitud total de la dirección de correo electrónico vendida es de 64 caracteres. Para obtener más información, consulta la [CreateAccount](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreateAccount.html)referencia de la *AWS Organizations API*.

**Versiones de producto**
+ Node.js, versión 22.x o posterior
+ Python 3.13 o posterior
+ Paquetes de Python **pip** y **virtualenv**
+ AWS CDK CLI versión 2.1019.2 o posterior
+ Docker, versión 20.10x o posterior

## Arquitectura
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-architecture"></a>

**Pila de tecnología de destino**
+ CloudFormation pila
+ AWS Lambda funciones
+ Reglas y conjunto de reglas de Amazon Simple Email Service (Amazon SES)
+ AWS Identity and Access Management funciones y políticas (IAM)
+ Un bucket de Amazon Simple Storage Service (Amazon S3) y política de bucket
+ AWS Key Management Service (AWS KMS) política clave y clave
+ Tema de Amazon Simple Notification Service (Amazon SNS) y política de temas
+ Tabla de Amazon DynamoDB 

**Arquitectura de destino**

![\[Arquitectura de destino para registrar varias cuentas de AWS con una sola dirección de correo electrónico\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/1be85b92-69e5-43b2-aeed-27b9509e145e/images/c7ae9d7a-d4e0-412e-97cb-0f3073e012e7.png)


En este diagrama se muestran dos flujos:
+ **Flujo de venta de direcciones de correo electrónico:** en el diagrama, el flujo de venta de direcciones de correo electrónico (sección inferior) comienza normalmente con una solución de venta de cuentas o con una automatización externa, o se invoca manualmente. En la solicitud, se llama a una función de Lambda con una carga útil que contiene los metadatos necesarios. La función utiliza esta información para generar un nombre de cuenta y una dirección de correo electrónico únicos, los almacena en una base de datos de DynamoDB y devuelve los valores a la persona que llama. Luego, estos valores se pueden usar para crear una nueva Cuenta de AWS (normalmente mediante AWS Organizations).
+ **Flujo de reenvío de correo electrónico:** este flujo se ilustra en la sección superior del diagrama anterior. Cuando Cuenta de AWS se crea una con el correo electrónico de la cuenta generado a partir del flujo de venta de direcciones de correo electrónico, AWS envía varios correos electrónicos, como la confirmación de registro de la cuenta y las notificaciones periódicas, a esa dirección de correo electrónico. Siguiendo los pasos de este patrón, configuras tu cuenta Cuenta de AWS con Amazon SES para recibir correos electrónicos de todo el dominio. Esta solución configura reglas de reenvío que permiten a Lambda procesar todos los correos electrónicos entrantes, comprobar si la dirección `TO` está en la tabla de DynamoDB y, en su lugar, reenviar el mensaje a la dirección de correo electrónico del propietario de la cuenta. El uso de este proceso permite a los propietarios de las cuentas asociar varias cuentas a una sola dirección de correo electrónico.

**Automatización y escala**

Este patrón lo utiliza AWS CDK para automatizar completamente la implementación. La solución utiliza servicios AWS gestionados que se escalarán automáticamente (o se pueden configurar) para adaptarse a sus necesidades. Es posible que las funciones de Lambda requieran una configuración adicional para satisfacer sus necesidades de escalado. Para obtener más información, consulte [Comprender el escalado de la función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html) en la documentación de Lambda.

## Tools (Herramientas)
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-tools"></a>

**Servicios de AWS**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)le ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todas Cuentas de AWS las regiones.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le ayuda a interactuar con los servicios de AWS mediante comandos en su shell de línea de comandos.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) facilita poder enviar y recibir correos electrónicos a través de los dominios y direcciones de correo electrónico propios.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

**Herramientas necesarias para la implementación**
+ Entorno de desarrollo con acceso AWS CLI de IAM a su. Cuenta de AWS Para obtener más información, consulte los enlaces de la sección de [recursos relacionados](#register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources).  
+ En su sistema de desarrollo, instale lo siguiente:
  + Herramienta de línea de comandos de Git, disponible en el [sitio web de descargas de Git](https://git-scm.com/downloads).
  +  AWS CLI Para configurar las credenciales de acceso para AWS CDK. Para obtener más información, consulte la [Documentación de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
  + La versión 3.13 o posterior de Python, disponible en el [sitio web de descargas de Python](https://www.python.org/downloads/).
  + UV para la administración de paquetes de Python. Para ver instrucciones de instalación, consulte [UV installation guide](https://docs.astral.sh/uv/getting-started/installation/).
  + La versión 22.x o posterior de Node.js. Consulte la [documentación de Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs) para ver las instrucciones de instalación.
  + AWS CDK CLI versión 2.1019.2 o posterior. Consulte la [documentación de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html#getting-started-install) para ver las instrucciones de instalación.
  + La versión 20.10.x o posterior de Docker. Consulte la [documentación de Docker](https://docs.docker.com/engine/install/) para ver las instrucciones de instalación.

**Código**

El código de este patrón está disponible en el repositorio de correo electrónico de GitHub [Cuenta de AWS fábrica](https://github.com/aws-samples/aws-account-factory-email).

## Epics
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-epics"></a>

### Asigne un entorno de implementación objetivo
<a name="allocate-a-target-deployment-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Identifique o cree un Cuenta de AWS. | Identifique uno existente o nuevo Cuenta de AWS al que tenga acceso administrativo completo para implementar la solución de correo electrónico. | Administrador de la nube, administrador de AWS | 
| Configure un entorno de implementación. | Configure un entorno de implementación fácil de usar y configure las dependencias siguiendo estos pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | AWS DevOps, desarrollador de aplicaciones | 

### Configuración de un dominio verificado
<a name="set-up-a-verified-domain"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Identifique y asigne un dominio. | La funcionalidad de reenvío de correo electrónico requiere un dominio dedicado. Identifique y asigne un dominio o subdominio que pueda verificar con Amazon SES. Este dominio debe estar disponible para recibir el correo electrónico entrante en el Cuenta de AWS lugar donde esté implementada la solución de reenvío de correo electrónico.Requisitos del dominio:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Administrador de la nube, administrador de redes, administrador de DNS | 
| Compruebe el dominio. | Compruebe que el dominio identificado se puede utilizar para aceptar el correo entrante.Complete las instrucciones de [Verificación de su dominio para la recepción de correos electrónicos de Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-verification.html) en la documentación de Amazon SES. Esto requerirá la coordinación con la persona o el equipo responsable de los registros de DNS del dominio. | Desarrollador de aplicaciones, AWS DevOps | 
| Configure los registros MX. | Configure su dominio con registros MX que apunten a los puntos de enlace de Amazon SES de su Cuenta de AWS región. Para obtener más información, consulte [Publicar un registro MX para la recepción de correos electrónicos de Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html) en la documentación de Amazon SES. | Administrador de la nube, administrador de redes, administrador de DNS | 

### Implemente la solución de venta y reenvío de correo electrónico
<a name="deploy-the-email-vending-and-forwarding-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Modifique los valores predeterminados en `cdk.json`. | Edite algunos de los valores predeterminados del archivo `cdk.json` (en la raíz del repositorio) para que la solución funcione correctamente una vez implementada.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desarrollador de aplicaciones, AWS DevOps | 
| Implemente la solución de venta y reenvío de correo electrónico. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desarrollador de aplicaciones, AWS DevOps | 
| Compruebe que la solución se haya implementado. | Compruebe que la solución se ha implementado correctamente antes de comenzar las pruebas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desarrollador de aplicaciones, AWS DevOps | 

### Compruebe que la venta y el reenvío de correo electrónico funcionan según lo previsto
<a name="verify-that-email-vending-and-forwarding-operate-as-expected"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Verifique que la API está en funcionamiento. | En este paso, debe enviar los datos de prueba a la API de la solución y confirmar que la solución produce el resultado esperado y que las operaciones de backend se han realizado según lo previsto.Ejecute manualmente la función **Vend Email** de la función de Lambda mediante una entrada de prueba. (Para ver un ejemplo, consulte el archivo [sample\$1vend\$1request.json](https://github.com/aws-samples/aws-account-factory-email/blob/main/src/events/sample_vend_request.json)). Para `OwnerAddress`, utilice una dirección de correo electrónico válida. La API debería devolver el nombre de la cuenta y el correo electrónico de la cuenta con los valores esperados. | Desarrollador de aplicaciones, AWS DevOps | 
| Compruebe que el correo electrónico se está reenviando. | En este paso, envía un correo electrónico de prueba a través del sistema y comprueba que el correo electrónico se ha reenviado al destinatario previsto.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desarrollador de aplicaciones, AWS DevOps | 

## Resolución de problemas
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| El sistema no reenvía el correo electrónico como se esperaba. | Compruebe que la configuración es correcta:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html)Después de verificar la configuración de dominio, siga estos pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Cuando intenta implementar la AWS CDK pila, recibe un error similar al siguiente:“Template format error: Unrecognized resource types”  | En la mayoría de las instancias, este mensaje de error significa que la región a la que se dirige no tiene todos los servicios de AWS disponibles. Si utilizas una EC2 instancia de Amazon para implementar la solución, es posible que te dirijas a una región diferente de la región en la que se ejecuta la instancia.De forma predeterminada, se AWS CDK despliega en la región y la cuenta que configuraste en. AWS CLIPosibles soluciones:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Al implementar la solución, recibirá el siguiente mensaje de error:«Fallo en la implementación: Error AwsMailFwdStack: no se encontró el parámetro bootstrap/hnb659fds/version /cdk- de SSM. ¿Arrancó el entorno? Please run 'cdk bootstrap'” | Si nunca has desplegado ningún AWS CDK recurso en la región a la que te diriges, primero tendrás que ejecutar el `cdk bootstrap` comando, tal Cuenta de AWS y como indica el error. Si sigue recibiendo este error después de usar el comando de arranque, es posible que esté intentando implementar la solución en una región distinta de la región del entorno de desarrollo.Para resolver este problema, defina la variable de `AWS_DEFAULT_REGION` entorno o defina una región con la AWS CLI antes de implementar la solución. Como alternativa, puede modificar el archivo `app.py` en la raíz del repositorio para incluir un ID y región de cuenta de codificación rígida y una región siguiendo las instrucciones de la [documentación de AWS CDK sobre entornos](https://docs.aws.amazon.com/cdk/v2/guide/environments.html). | 

## Recursos relacionados
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources"></a>
+ Para obtener ayuda con la instalación AWS CLI, consulte [Instalación o actualización a la versión más reciente de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ Para obtener ayuda para configurar el AWS CLI con credenciales de acceso de IAM, consulte [Configurar los ajustes del AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Para obtener ayuda con el AWS CDK, consulte [Primeros pasos con](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_install). AWS CDK

## Información adicional
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-additional"></a>

**Costos**

Al implementar esta solución, el Cuenta de AWS propietario puede incurrir en costos asociados con el uso de los siguientes servicios.  Es importante que comprenda cómo se facturan estos servicios para estar al tanto de los posibles cargos. Para obtener información sobre precios, consulte las siguientes páginas:
+ [Precios de Amazon SES](https://aws.amazon.com/ses/pricing/)
+ [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/)
+ [AWS KMS precios](https://aws.amazon.com/kms/pricing/)
+ [AWS Lambda precios](https://aws.amazon.com/lambda/pricing/)
+ [Precios de Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/)

# Configure la resolución de DNS para redes híbridas en un entorno de AWS de una sola cuenta
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment"></a>

*Abdullahi Olaoye, Amazon Web Services*

## Resumen
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-summary"></a>

Este patrón describe cómo configurar una arquitectura de sistema de nombres de dominio (DNS) totalmente híbrida que permita la resolución end-to-end mediante DNS de recursos locales, recursos de AWS y consultas de DNS de Internet, sin sobrecargas administrativas. El patrón describe cómo configurar las reglas de reenvío de Amazon Route 53 Resolver que determinan dónde debe enviarse una consulta de DNS que se origina en AWS, en función del nombre de dominio. Las consultas de DNS para los recursos en las instalaciones se reenvían a los solucionadores de DNS en las instalaciones. Route 53 Resolver resuelve las consultas de DNS para los recursos de AWS y las consultas de DNS de Internet.

Este patrón cubre la resolución de DNS híbrido en un entorno de cuenta única de AWS. Para obtener información sobre la configuración de consultas de DNS salientes en un entorno de varias cuentas de AWS, consulte el patrón [Configurar la resolución de DNS para redes híbridas en un entorno de AWS de varias cuentas](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.html).

## Requisitos previos y limitaciones
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS
+ Crear una nube privada virtual (VPC) en la cuenta de AWS.
+ Conectividad de red entre el entorno en las instalaciones y VPC a través de los servicios de AWS Virtual Private Network (AWS VPN) o AWS Direct Connect
+ Direcciones IP de sus resolutores de DNS en las instalaciones (accesibles desde su VPC)
+ Nombre de dominio o subdominio para reenviar a los solucionadores en las instalaciones (por ejemplo, onprem.mydc.com)
+ Nombre de dominio/subdominio de la zona alojada privada de AWS (por ejemplo, myvpc.cloud.com)

## Arquitectura
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-architecture"></a>

**Pila de tecnología de destino**
+ Zona alojada privada de Amazon Route 53
+ Amazon Route 53 Resolver
+ Amazon VPC
+ AWS VPN o Direct Connect

**Arquitectura de destino**

![\[Flujo de trabajo de resolución de DNS híbrido en un entorno de cuenta única de AWS mediante Route 53 Resolver.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/120dedc8-cc6c-4aa7-be11-c70a7ee80642/images/7b75f534-1adc-4a39-86d6-5c4596ff7b6a.png)


 

## Tools (Herramientas)
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-tools"></a>
+ [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) facilita la nube híbrida a los clientes empresariales al permitir una resolución de consultas de DNS perfecta en toda la nube híbrida. Puede crear puntos de enlace de DNS y reglas de reenvío condicional para resolver los espacios de nombres de DNS entre su centro de datos local y el suyo. VPCs
+ La [zona alojada privada de Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) es un contenedor que contiene información sobre cómo desea que Route 53 responda a las consultas de DNS de un dominio y sus subdominios dentro de uno o varios VPCs que cree con el servicio Amazon VPC.

## Epics
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-epics"></a>

### Configure una zona alojada privada
<a name="configure-a-private-hosted-zone"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una zona alojada privada de Route 53 para un nombre de dominio reservado de AWS, como myvpc.cloud.com. | Esta zona contiene los registros de DNS de los recursos de AWS que deben resolverse desde el entorno en las instalaciones. Para obtener instrucciones, consulte [Crear una zona alojada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) en la documentación de Route 53. | Administrador de red, administrador del sistema | 
| Asocie esta zona alojada privada con la VPC de la VPC. | Para permitir que los recursos de la VPC resuelvan los registros DNS en esta zona alojada privada, debe asociar la VPC a la zona alojada. Para obtener instrucciones, consulte [Crear una zona alojada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) en la documentación de Route 53. | Administrador de red, administrador del sistema | 

### Configure los puntos de conexión de Route 53 Resolver
<a name="set-up-route-53-resolver-endpoints"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un punto de conexión de entrada | Route 53 Resolver utiliza un punto de conexión de entrada para recibir las consultas de DNS de los solucionadores en las instalaciones. Para obtener instrucciones, consulte [Reenviar consultas DNS entrantes a su](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html) cuenta VPCs en la documentación de Route 53. Anote la dirección IP del punto de conexión entrante. | Administrador de red, administrador del sistema | 
| Crear un punto de conexión de salida | Route 53 Resolver utiliza un punto de conexión de salida para enviar las consultas de DNS de los solucionadores en las instalaciones. Para obtener instrucciones, consulte [Reenvío de consultas de DNS de salida a su red](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-outbound-queries.html) en la documentación de Route 53. Anote el ID del punto de conexión de salida. | Administrador de red, administrador del sistema | 

### Configure una regla de reenvío y asóciela a su VPC
<a name="set-up-a-forwarding-rule-and-associate-it-with-your-vpc"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una regla de reenvío para un dominio en las instalaciones | Esta regla indicará a Route 53 Resolver que reenvíe cualquier consulta de DNS para los dominios en las instalaciones (como onprem.mydc.com) a los solucionadores de DNS en las instalaciones. Para crear esta regla, necesitará las direcciones IP de los resolutores de DNS en las instalaciones y el ID del punto de conexión de salida de Route 53 Resolver. Para obtener instrucciones, consulte [Administración de reglas de reenvío](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) en la documentación de Route 53. | Administrador de red, administrador del sistema | 
| Asocie la regla de reenvío a su VPC. | Para que la regla de reenvío entre en vigor, debe asociarla a su VPC. Luego, Route 53 Resolver tiene en cuenta la regla al resolver un dominio. Para obtener instrucciones, consulte [Administración de reglas de reenvío](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) en la documentación de Route 53. | Administrador de red, administrador del sistema | 

### Configuración de solucionadores DNS en las instalaciones
<a name="configure-on-premises-dns-resolvers"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure el reenvío condicional en los solucionadores de DNS en las instalaciones.  | Para que las consultas de DNS se envíen a la zona alojada privada de Route 53 desde el entorno en las instalaciones, debe configurar el reenvío condicional en los solucionadores de DNS en las instalaciones. Esto indica a los solucionadores de DNS que reenvíen todas las consultas de DNS del dominio de AWS (por ejemplo, para myvpc.cloud.com) a la dirección IP del punto de conexión entrante de Route 53 Resolver. | Administrador de red, administrador del sistema | 

### Pruebe la resolución de DNS end-to-end
<a name="test-end-to-end-dns-resolution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar la resolución DNS desde AWS en el entorno en las instalaciones. | Desde un servidor de la VPC, realice una consulta de DNS para un dominio en las instalaciones (como server1.onprem.mydc.com). | Administrador de red, administrador del sistema | 
| Probar la resolución DNS desde AWS en el entorno en las instalaciones. | Desde un servidor en las instalaciones, realice la resolución de DNS para un dominio de AWS (como server1.myvpc.cloud.com). | Administrador de red, administrador del sistema | 

## Recursos relacionados
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-resources"></a>
+ [Administración centralizada de DNS de la nube híbrida con Amazon Route 53 y AWS Transit Gateway (AWS Transit Gateway (AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/centralized-dns-management-of-hybrid-cloud-with-amazon-route-53-and-aws-transit-gateway/) (Blog de AWS Networking y Content Delivery)
+ [Simplifique la administración de DNS en un entorno multicuenta con Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (publicación del blog de AWS Security)
+ [Trabajar con zonas alojadas privadas](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) (documentación de Route 53)
+ [Introducción a Route 53 Resolver ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) (documentación de Route 53)

# Configure automáticamente los bots de UiPath RPA en Amazon EC2 mediante AWS CloudFormation
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation"></a>

*Dr. Rahul Sharad Gaikwad y Tamilselvan P, Amazon Web Services*

## Resumen
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-summary"></a>

Este patrón explica cómo puede implementar bots de automatización robótica de procesos (RPA) en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Utiliza una canalización de [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) para crear una Amazon Machine Image (AMI) personalizada. Una AMI es una imagen de máquina virtual (VM) preconfigurada que contiene el sistema operativo (SO) y el software preinstalado para implementar EC2 instancias. Este patrón utiliza CloudFormation plantillas de AWS para instalar [la edición UiPath Studio Community](https://www.uipath.com/product/studio) en la AMI personalizada. UiPath es una herramienta de RPA que le ayuda a configurar robots para automatizar sus tareas.

Como parte de esta solución, las instancias de EC2 Windows se lanzan mediante la AMI base y la aplicación UiPath Studio se instala en las instancias. El patrón utiliza la herramienta Microsoft System Preparation (Sysprep) para duplicar la instalación personalizada de Windows. Después, elimina la información del host y crea una AMI final de la instancia. A continuación, puede lanzar las instancias bajo demanda mediante la AMI final con sus propias convenciones de nomenclatura y configuración de supervisión.


| 
| 
| Nota: Este patrón no proporciona ninguna información sobre el uso de bots de RPA. Para obtener esa información, consulte la [UiPath documentación](https://docs.uipath.com/). También puede usar este patrón para configurar otras aplicaciones de bots de RPA personalizando los pasos de instalación en función de sus necesidades. | 
| --- |

Este patrón proporciona las siguientes automatizaciones y ventajas:
+ Implementación y uso compartido de aplicaciones: puede crear Amazon EC2 AMIs para el despliegue de aplicaciones y compartirlas en varias cuentas a través de una canalización de EC2 Image Builder, que utiliza CloudFormation plantillas de AWS como scripts de infraestructura como código (IaC).
+  EC2 Aprovisionamiento y escalado de Amazon: las plantillas de CloudFormation IaC proporcionan secuencias de nombres de ordenadores personalizadas y automatizan las uniones de Active Directory.
+ Observabilidad y supervisión: el patrón configura los CloudWatch paneles de Amazon para ayudarte a monitorear las EC2 métricas de Amazon (como el uso de CPU y disco).
+ Ventajas de la RPA para su empresa: la RPA mejora la precisión porque los robots pueden realizar las tareas asignadas de forma automática y coherente. La RPA también aumenta la velocidad y la productividad porque elimina las operaciones que no añaden valor y gestiona las actividades repetitivas.

## Requisitos previos y limitaciones
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-prereqs"></a>

**Requisitos previos**
+ Una [cuenta de AWS](https://aws.amazon.com/free/) activa
+ [Permisos de AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) para implementar plantillas CloudFormation 
+ [Políticas de IAM](https://docs.aws.amazon.com/imagebuilder/latest/userguide/cross-account-dist.html) para configurar la distribución de AMI entre cuentas con Image Builder EC2 

## Arquitectura
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-architecture"></a>

![\[Arquitectura de destino para configurar bots de RPA en Amazon EC2\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/5555a62d-91d4-4e81-9961-ff89faedd6ad/images/1893d2d3-8912-4473-adf1-6633b5badcd9.png)


1. El administrador proporciona la AMI de Windows básica en el `ec2-image-builder.yaml` archivo e implementa la pila en la CloudFormation consola.

1. La CloudFormation pila implementa la canalización EC2 Image Builder, que incluye los siguientes recursos:
   + `Ec2ImageInfraConfiguration`
   + `Ec2ImageComponent`
   + `Ec2ImageRecipe`
   + `Ec2AMI`

1. La canalización de EC2 Image Builder lanza una EC2 instancia temporal de Windows mediante la AMI base e instala los componentes necesarios (en este caso, UiPath Studio).

1.  EC2 Image Builder elimina toda la información del host y crea una AMI desde Windows Server.

1. Actualiza el `ec2-provisioning yaml` archivo con la AMI personalizada y lanza varias EC2 instancias en función de sus requisitos.

1. La macro Count se implementa mediante una CloudFormation plantilla. Esta macro proporciona una propiedad **Count** para CloudFormation los recursos, de modo que puede especificar fácilmente varios recursos del mismo tipo.

1. Actualiza el nombre de la macro en el CloudFormation `ec2-provisioning.yaml` archivo y despliega la pila.

1. El administrador actualiza el archivo `ec2-provisioning.yaml` en función de los requisitos y lanza la pila.

1. La plantilla implementa EC2 instancias con la aplicación UiPath Studio.

## Tools (Herramientas)
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-tools"></a>

**Servicios de AWS**
+ [AWS](https://aws.amazon.com/cloudformation/) le CloudFormation ayuda a modelar y gestionar los recursos de infraestructura de forma automatizada y segura.
+ [Amazon](https://aws.amazon.com/cloudwatch/) le CloudWatch ayuda a observar y supervisar los recursos y las aplicaciones en AWS, en las instalaciones y en otras nubes.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://aws.amazon.com/ec2/)) proporciona una capacidad informática segura y de tamaño variable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [EC2 Image Builder](https://aws.amazon.com/image-builder/) simplifica la creación, las pruebas y el despliegue de máquinas virtuales e imágenes de contenedores para su uso en AWS o de forma local.
+ [Amazon](https://aws.amazon.com/eventbridge/) le EventBridge ayuda a crear aplicaciones basadas en eventos a escala en AWS, sistemas existentes o aplicaciones de software como servicio (SaaS).
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a controlar de forma segura el acceso a los recursos de AWS. Con IAM, puede administrar de forma centralizada los permisos que controlan a qué recursos de AWS pueden acceder los usuarios. Utilice IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos.
+ [AWS Lambda](https://aws.amazon.com/lambda/) es un servicio de computación controlado por eventos sin servidor que permite ejecutar código para prácticamente cualquier tipo de aplicación o servicio backend, sin aprovisionar ni administrar servidores. Puede utilizar funciones de Lambda desde más de 200 servicios de AWS y aplicaciones SaaS y pagar solo por el consumo realizado.
+ [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Systems Manager Agent (SSM Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) ayuda a Systems Manager a actualizar, gestionar y configurar EC2 instancias, dispositivos periféricos, servidores locales y máquinas virtuales ()VMs.

**Repositorios de código**

El código de este patrón está disponible en la [configuración del bot de GitHub UiPath RPA mediante](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation) el repositorio. CloudFormation El patrón también usa una macro que está disponible en el [repositorio de CloudFormation macros de AWS](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count).

## Prácticas recomendadas
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-best-practices"></a>
+ AWS lanza nuevas versiones de [Windows AMIs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html) cada mes. Contienen los últimos parches del sistema operativo, controladores y agentes de lanzamiento. Le recomendamos que aproveche las AMI más recientes al lanzar nuevas instancias o al crear sus propias imágenes personalizadas.
+ Aplique todos los parches de seguridad disponibles para Windows o Linux durante la creación de imágenes.

## Epics
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-epics"></a>

### Implemente una canalización de imágenes para la imagen base
<a name="deploy-an-image-pipeline-for-the-base-image"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure una canalización EC2 de Image Builder. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Vea EC2 la configuración de Image Builder. | La configuración EC2 de Image Builder incluye la configuración de la infraestructura, la configuración de distribución y la configuración de escaneo de seguridad. Para ver la configuración:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Como práctica recomendada, las actualizaciones de EC2 Image Builder se deben realizar únicamente a través de la CloudFormation plantilla. | AWS DevOps | 
| Puede ver la canalización de imágenes. | Para ver la canalización de imágenes desplegada:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Ver los registros de Generador de imágenes. | EC2 Los registros de Image Builder se agrupan en grupos de CloudWatch registros. Para ver los registros en CloudWatch:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)EC2 Los registros de Image Builder también se almacenan en un bucket de S3. Para consultar los registros en el bucket:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Cargue el UiPath archivo en un bucket de S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Implementación y pruebas de la macro Count
<a name="deploy-and-test-the-count-macro"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la macro Count. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Si quieres usar la consola, sigue las instrucciones de la epopeya anterior o de la [CloudFormation documentación](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).  | DevOps ingeniero | 
| Pruebe la macro Count. | Para probar las capacidades de la macro, intente iniciar la plantilla de ejemplo que se proporciona con la macro. <pre>aws cloudformation deploy \<br />    --stack-name Count-test \<br />    --template-file test.yaml \<br />    --capabilities CAPABILITY_IAM</pre> | DevOps ingeniero | 

### Implemente la CloudFormation pila para aprovisionar instancias con la imagen personalizada
<a name="deploy-the-cloudformation-stack-to-provision-instances-with-the-custom-image"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la plantilla de EC2 aprovisionamiento de Amazon. | Para implementar EC2 Image Pipeline mediante CloudFormation:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Consulta la EC2 configuración de Amazon. | La EC2 configuración de Amazon incluye configuraciones de seguridad, redes, almacenamiento, comprobaciones de estado, monitoreo y etiquetas. Para ver estas configuraciones:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Vea el CloudWatch panel de control. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Después de aprovisionar la pila, se tarda un tiempo en rellenar el panel con las métricas.El panel proporciona las siguientes métricas: `CPUUtilization`, `DiskUtilization`, `MemoryUtilization`, `NetworkIn`, `NetworkOut`, `StatusCheckFailed`. | AWS DevOps | 
| Vea las métricas personalizadas del uso de memoria y disco.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Vea las alarmas de uso de memoria y disco.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Verifique la regla del ciclo de vida de las instantáneas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Eliminar el entorno (opcional)
<a name="delete-the-environment-optional"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine las pilas. | Cuando haya completado su PoC o su proyecto piloto, le recomendamos que elimine las pilas que ha creado para asegurarse de que no se le cobre por estos recursos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)La operación de eliminación de la pila no se puede detener una vez que comienza. La pila avanza al estado `DELETE_IN_PROGRESS`.Si la eliminación ha fallado, la pila tendrá el estado `DELETE_FAILED`. Para obtener soluciones, consulte Fallos al [eliminar una pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) en la documentación de CloudFormation solución de problemas de AWS.Para obtener información sobre cómo proteger las pilas para que no se eliminen accidentalmente, consulte Cómo [proteger una pila para que no se elimine](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) en la CloudFormation documentación de AWS. | AWS DevOps | 

## Resolución de problemas
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Al implementar la plantilla de EC2 aprovisionamiento de Amazon, aparece el error: Se *ha recibido una respuesta con formato incorrecto de transform 123xxxx*: :Count. | Se trata de un problema conocido. (Consulte la solución personalizada y las relaciones públicas en el [repositorio de CloudFormation macros de AWS](https://github.com/aws-cloudformation/aws-cloudformation-macros/pull/20)).[Para solucionar este problema, abra la consola de AWS Lambda y actualice `index.py` con el contenido del GitHub repositorio.](https://raw.githubusercontent.com/aws-cloudformation/aws-cloudformation-macros/f1629c96477dcd87278814d4063c37877602c0c8/Count/src/index.py)  | 

## Recursos relacionados
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-resources"></a>

**GitHub repositorios**
+ [UiPath Configuración del bot RPA mediante CloudFormation](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation)
+ [Count Macro CloudFormation ](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count)

**Referencias de AWS**
+ [Creación de una pila en la CloudFormation consola de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentación)
+ [Solución de problemas CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html) (CloudFormation documentación)
+ [Supervise las métricas de memoria y disco de las EC2 instancias de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) ( EC2 documentación de Amazon)
+ [¿Cómo puedo usar el CloudWatch agente para ver las métricas del monitor de rendimiento en un servidor Windows?](https://repost.aws/knowledge-center/cloudwatch-performance-monitor-windows) (artículo de AWS Re:post)

**Referencias adicionales**
+ [UiPath documentación](https://docs.uipath.com/)
+ [Configuración del nombre de host en una SysPreped AMI](https://blog.brianbeach.com/2014/07/setting-hostname-in-syspreped-ami.html) (entrada de blog de Brian Beach)
+ [¿Cómo hago para que Cloudformation reprocese una plantilla mediante una macro cuando cambian los parámetros?](https://stackoverflow.com/questions/59828989/how-do-i-make-cloudformation-reprocess-a-template-using-a-macro-when-parameters) (Desbordamiento de pila)

# Configure una PeopleSoft arquitectura de alta disponibilidad en AWS
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws"></a>

*Ramanathan Muralidhar, Amazon Web Services*

## Resumen
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-summary"></a>

Cuando migra sus PeopleSoft cargas de trabajo a AWS, la resiliencia es un objetivo importante. Garantiza que su PeopleSoft aplicación siempre tenga una alta disponibilidad y pueda recuperarse rápidamente de los errores.

Este patrón proporciona una arquitectura para sus PeopleSoft aplicaciones en AWS a fin de garantizar la alta disponibilidad (HA) en los niveles de red, aplicación y base de datos. Emplea una base de datos [Amazon Relational Database Service (Amazon RDS](https://aws.amazon.com/rds/)) para Oracle o Amazon RDS para SQL Server en el nivel de base de datos. Esta arquitectura escalable también incluye servicios de AWS como [Amazon Route 53](https://aws.amazon.com/route53/), instancias de Linux en [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/), [Amazon Elastic Block Storage (Amazon EBS)](https://aws.amazon.com/ebs/), [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) y un [equilibrador de carga de aplicación](https://aws.amazon.com/elasticloadbalancing/application-load-balancer).

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) proporciona un conjunto de herramientas y aplicaciones para la administración de la fuerza laboral y otras operaciones empresariales.

## Requisitos previos y limitaciones
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Un PeopleSoft entorno con las licencias necesarias para configurarlo en AWS
+ Una nube privada virtual (VPC) configurada en su cuenta de AWS con los siguientes recursos:
  + Al menos dos zonas de disponibilidad
  + Una subred pública y tres subredes privadas en cada zona de disponibilidad
  + Una puerta de enlace NAT y una puerta de enlace de Internet
  + Tablas de enrutamiento en cada subred para enrutar el tráfico
  + Listas de control de acceso a la red (red ACLs) y grupos de seguridad definidos para garantizar la seguridad de la PeopleSoft aplicación de acuerdo con los estándares de su organización

**Limitaciones**
+ Este patrón proporciona una solución de alta disponibilidad (HA). No es compatible con escenarios de recuperación de desastres (DR). En el infrecuente caso de que toda la región de AWS para la implementación de alta disponibilidad dejase de estar disponible, la aplicación dejaría de estar disponible.

**Versiones de producto**
+ PeopleSoft aplicaciones que ejecutan la versión PeopleTools 8.52 y versiones posteriores

## Arquitectura
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-architecture"></a>

**Arquitectura de destino**

El tiempo de inactividad o la interrupción de PeopleSoft la aplicación de producción afectan a la disponibilidad de la aplicación y provocan importantes interrupciones en su negocio.

Le recomendamos que diseñe su aplicación de PeopleSoft producción de manera que siempre tenga una alta disponibilidad. Para ello, puede eliminar los puntos únicos de fallo, añadir puntos de cruce o conmutación por error fiables y detectar los fallos. El siguiente diagrama ilustra una arquitectura de alta disponibilidad para PeopleSoft AWS.

![\[Arquitectura de alta disponibilidad para PeopleSoft AWS\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/0db96376-dadb-4545-b130-ebbe64acd4e9/images/5d585a8e-320a-495d-a049-97171633e90f.png)


Esta implementación de arquitectura utiliza Amazon RDS for Oracle como PeopleSoft base de datos e instancias EC2 que se ejecutan en Red Hat Enterprise Linux (RHEL). También puede usar Amazon RDS para SQL Server como base de datos de Peoplesoft.

Esta arquitectura contiene los siguientes componentes: 
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) se utiliza como servidor de nombres de dominio (DNS) para enrutar las solicitudes de Internet a la PeopleSoft aplicación.
+ [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) le ayuda a protegerse contra exploits y bots web comunes que pueden afectar a la disponibilidad, comprometer la seguridad o consumir recursos excesivos. [AWS Shield Avanzado](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) (no se ilustra) proporciona una protección mucho más amplia.
+ El [Equilibrador de carga de aplicación](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) equilibra la carga del tráfico HTTP y HTTPS con un enrutamiento de solicitudes avanzado dirigido a los servidores web.
+ Los servidores web, los servidores de aplicaciones, los servidores del programador de procesos y los servidores Elasticsearch que admiten la PeopleSoft aplicación se ejecutan en varias zonas de disponibilidad y utilizan [Amazon](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) EC2 Auto Scaling.
+ La base de datos utilizada por la PeopleSoft aplicación se ejecuta en [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) en una configuración Multi-AZ.
+ El recurso compartido de archivos que utiliza la PeopleSoft aplicación está configurado en [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) y se utiliza para acceder a los archivos de todas las instancias.
+ [Amazon EC2 Auto Scaling utiliza Amazon Machine Images (AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)) para garantizar PeopleSoft que los componentes se clonen rápidamente cuando sea necesario.
+ Las [puertas de enlace NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) conectan las instancias de una subred privada a servicios externos a su VPC y garantizan que los servicios externos no puedan iniciar una conexión con dichas instancias.
+ La [puerta de enlace de internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) es un componente de la VPC de escalado horizontal, redundante y de alta disponibilidad que permite la comunicación entre su VPC e internet.
+ Los host bastión de la subred pública proporcionan acceso a los servidores de la subred privada desde una red externa, como Internet o una red en las instalaciones. Los host bastión proporcionan un acceso controlado y seguro a los servidores de las subredes privadas.

**Detalles de la arquitectura**

La PeopleSoft base de datos está alojada en una base de datos Amazon RDS for Oracle (o Amazon RDS for SQL Server) en una configuración Multi-AZ. La [función Amazon RDS Multi-AZ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) replica las actualizaciones de la base de datos en dos zonas de disponibilidad para aumentar la durabilidad y la disponibilidad. Amazon RDS conmuta automáticamente a la base de datos en espera en caso de mantenimiento planificado e interrupciones imprevistas.

La PeopleSoft web y el nivel medio se instalan en las instancias EC2. Estas instancias se distribuyen en varias zonas de disponibilidad, y están vinculadas a un [grupo de escalado automático](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). Esto garantiza que estos componentes estén siempre altamente disponibles. Se mantiene el número mínimo de instancias necesarias para garantizar que la aplicación esté siempre disponible y pueda escalarse cuando sea necesario.

Recomendamos usar un tipo de instancia EC2 de la generación actual para las instancias EC2 OEM. Los tipos de instancias de la generación actual, como [las instancias creadas en el sistema Nitro de AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), admiten máquinas virtuales de hardware (HVMs). Las HVM AMIs son necesarias para aprovechar las ventajas de las [redes mejoradas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) y, además, ofrecen una mayor seguridad. Las instancias de EC2 que forman parte de cada grupo de escalado automático usan su propia AMI al reemplazar o escalar verticalmente las instancias. Le recomendamos que seleccione los tipos de instancias EC2 en función de la carga que desee que PeopleSoft gestione su aplicación y de los valores mínimos recomendados por Oracle para su PeopleSoft aplicación y PeopleTools versión. Para obtener más información sobre los requisitos de hardware y software, consulte el [sitio web de soporte de Oracle.](https://support.oracle.com)

La PeopleSoft web y el nivel medio comparten una montura de Amazon EFS para compartir informes, archivos de datos y (si es necesario) el `PS_HOME` directorio. Amazon EFS se configura con objetivos de montaje en cada zona de disponibilidad por motivos de rendimiento y costo.

Se aprovisiona un Application Load Balancer para soportar el tráfico que accede a la PeopleSoft aplicación y equilibra la carga del tráfico entre los servidores web de las diferentes zonas de disponibilidad. Un equilibrador de carga de aplicación es un dispositivo de red que proporciona alta disponibilidad en, al menos, dos zonas de disponibilidad. Los servidores web distribuyen el tráfico a diferentes servidores de aplicaciones mediante una configuración de equilibrio de carga. El equilibrador de carga entre el servidor web y el servidor de aplicaciones garantiza que la carga se distribuya de manera uniforme entre las instancias, ayudando a evitar los cuellos de botella y las interrupciones del servicio debido a la sobrecarga de las instancias.

Amazon Route 53 se emplea como servicio de DNS para enrutar el tráfico desde Internet al equilibrador de carga de aplicación. Route 53 es un servicio web de sistema de nombres de dominio (DNS) escalable y de alta disponibilidad.

**Detalles de HA**
+ Bases de datos: la función Multi-AZ de Amazon RDS opera dos bases de datos en varias zonas de disponibilidad con replicación sincrónica. Esto crea un entorno de alta disponibilidad con conmutación por error automática. Amazon RDS cuenta con una función de detección de eventos de conmutación por error, e inicia una conmutación por error automática cuando se producen dichos eventos. También puede iniciar una conmutación por error manual a través de la API de Amazon RDS. Para obtener una explicación detallada, consulte la entrada del blog [Amazon RDS entre bastidores: Multi-AZ](https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/). La conmutación por error es fluida, y la aplicación se vuelve a conectar automáticamente a la base de datos cuando se produce. Sin embargo, cualquier trabajo del programador de procesos durante la conmutación por error genera errores y debe volver a enviarse.
+ PeopleSoft servidores de aplicaciones: los servidores de aplicaciones están distribuidos en múltiples zonas de disponibilidad y tienen un grupo de Auto Scaling definido para ellos. Si una instancia falla, el grupo de escalado automático la reemplaza inmediatamente por una instancia en buen estado que se clona desde la AMI de la plantilla del servidor de aplicaciones. Se habilita la *agrupación por descargas* de modo que, cuando una instancia del servidor de aplicaciones deja de funcionar, las sesiones se conmutan automáticamente por error a otro servidor de aplicaciones, y el grupo de escalado automático activa automáticamente otra instancia, abre el servidor de aplicaciones y la registra en el montaje de Amazon EFS. El servidor de aplicaciones recién creado se añade automáticamente a los servidores web mediante el script `PSSTRSETUP.SH` de los servidores web. Esto garantiza que el servidor de la aplicación esté siempre altamente disponible y se recupere de los errores con rapidez.
+ Programadores de procesos: los servidores de los programadores de procesos están distribuidos en varias zonas de disponibilidad, y tienen un grupo de escalado automático definido para ellos. Si falla una instancia, el grupo de escalado automático la sustituye inmediatamente por una instancia sana clonada a partir de la AMI de la plantilla de servidor del programador de procesos. Cuando una instancia del programador de procesos deja de funcionar, el grupo de escalado automático activa automáticamente otra instancia y abre el programador de procesos. Todos los trabajos que estaban en ejecución cuando la instancia falló deben volver a enviarse. Esto garantiza que el programador de procesos esté disponible en todo momento y se recupere rápidamente de los errores.
+ Servidores Elasticsearch: Los servidores Elasticsearch tienen un grupo de escalado automático definido para ellos. Si falla una instancia, el grupo de escalado automático la sustituye inmediatamente por una instancia sana clonada a partir de la AMI de la plantilla del servidor de Elasticsearch. Cuando una instancia de Elasticsearch deja de funcionar, el equilibrador de carga de aplicación que le envía las solicitudes detecta el error y deja de enviarle tráfico. El grupo de escalado automático activa automáticamente otra instancia y abre la instancia de Elasticsearch. Cuando la instancia de Elasticsearch se recupera, el equilibrador de carga de aplicación detecta que está en buen estado y vuelve a enviarle solicitudes. Esto garantiza que el servidor de Elasticsearch esté siempre altamente disponible y se recupere de los errores con rapidez.
+ Servidores web: Los servidores web tienen un grupo de escalado automático definido para ellos. Si falla una instancia, el grupo de escalado automático la sustituye inmediatamente por una instancia sana clonada a partir de la AMI de la plantilla del servidor web. En concreto, cuando una instancia de servidor web se cae, el Equilibrador de carga de aplicación que le sirve las peticiones detecta el fallo y deja de enviarle tráfico. El grupo de escalado automático pone en marcha automáticamente otra instancia y pone en marcha la instancia del servidor web. Cuando la instancia del servidor web vuelve a funcionar, el Equilibrador de carga de aplicación detecta que está en buen estado y comienza a enviarle peticiones de nuevo. Esto garantiza que el servidor web esté siempre altamente disponible y se recupere de los errores con rapidez.

## Tools (Herramientas)
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-tools"></a>

**Servicios de AWS**
+ Los [Equilibradores de carga de aplicación](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/) distribuyen el tráfico entrante de aplicaciones entre varios destinos, tales como instancias EC2, en varias zonas de disponibilidad.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) proporciona volúmenes de almacenamiento por bloques para su uso con instancias de Amazon Elastic Compute Cloud (Amazon EC2).
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) proporciona capacidad de computación escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) le ayuda a crear y configurar sistemas de archivos compartidos en la nube de AWS.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) es un servicio web de sistema de nombres de dominio (DNS) escalable y de alta disponibilidad.

## Prácticas recomendadas
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-best-practices"></a>

**Prácticas operativas recomendadas**
+ Cuando utilice AWS, utilice Route 53 para enrutar el tráfico desde Internet y de forma local. PeopleSoft Use la [opción de conmutación por error](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring.html) para redirigir el tráfico al sitio de recuperación de desastres (DR) si la instancia de base de datos principal no está disponible.
+ Utilice siempre un Application Load Balancer delante del PeopleSoft entorno. Esto garantiza que la carga del tráfico se equilibre en los servidores web de forma segura.
+ En la configuración del grupo de destino del equilibrador de carga de aplicación, asegúrese de que la [adherencia esté activada](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html) con una cookie generada por el equilibrador de carga.
**nota**  
Es posible que tenga que utilizar una cookie basada en aplicación si utiliza un inicio de sesión único (SSO) externo. Esto garantiza que las conexiones sean consistentes entre los servidores web y los servidores de aplicaciones.
+ En el caso de una aplicación de PeopleSoft producción, el tiempo de espera de inactividad de Application Load Balancer debe coincidir con el establecido en el perfil web que utilice. Esto evita que las sesiones de usuario caduquen en la capa del equilibrador de carga.
+ Para una aplicación PeopleSoft de producción, establezca el [recuento de reciclaje](https://docs.oracle.com/cd/F28299_01/pt857pbr3/eng/pt/tsvt/concept_PSAPPSRVOptions-c07f06.html?pli=ul_d96e90_tsvt) del servidor de aplicaciones en un valor que minimice las pérdidas de memoria.
+ Si utiliza una base de datos de Amazon RDS para su aplicación de PeopleSoft producción, tal y como se describe en este patrón, ejecútela en [formato Multi-AZ para obtener una alta disponibilidad](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html).
+ Si la base de datos se ejecuta en una instancia EC2 para la aplicación de PeopleSoft producción, asegúrese de que la [base de datos en espera se ejecute en otra zona de disponibilidad para garantizar una alta disponibilidad](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html#ec2-oracle-ha).
+ Para la DR, asegúrese de que la base de datos de Amazon RDS o la instancia de EC2 tengan un modo de espera configurado en una región de AWS independiente de la base de datos de producción. Esto garantiza que, en caso de que se produzca un desastre en la región, pueda cambiar la aplicación a otra región.
+ En cuanto a la RD, use [Amazon Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) para configurar los componentes de nivel de aplicación en una región distinta de los componentes de producción. Esto garantiza que, en caso de que se produzca un desastre en la región, pueda cambiar la aplicación a otra región.
+ Utilice Amazon EFS (para I/O requisitos moderados) o [Amazon FSx](https://aws.amazon.com/fsx/) (para I/O requisitos altos) para almacenar sus PeopleSoft informes, archivos adjuntos y archivos de datos. Esto garantiza que el contenido se almacene en una ubicación central y accesible desde cualquier lugar de la infraestructura.
+ Utilice [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) (básico y detallado) para supervisar los recursos de la nube de AWS que utiliza su PeopleSoft aplicación prácticamente en tiempo real. Esto garantiza que reciba alertas de los problemas al instante y pueda solucionarlos rápidamente antes de que afecten a la disponibilidad del entorno.
+ Si utiliza una base de datos de Amazon RDS como base de datos, utilice [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html). PeopleSoft Esta función proporciona acceso a más de 50 métricas, incluidas la CPU, la memoria y el sistema I/O, and disk I/O de archivos.
+ Utilice [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) para supervisar las llamadas a la API en los recursos de AWS que utiliza su PeopleSoft aplicación. Esto permite realizar análisis de seguridad, seguimiento de los cambios en los recursos y auditorías de conformidad.

**Prácticas recomendadas de seguridad**
+ [Para proteger su PeopleSoft aplicación de vulnerabilidades habituales, como la inyección de SQL o el cross-site scripting (XSS), utilice AWS WAF.](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) Considere la posibilidad de usar [AWS Shield Avanzado](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) para obtener servicios de detección y mitigación personalizados.
+ Agrega una regla al Application Load Balancer para redirigir el tráfico de HTTP a HTTPS automáticamente y así proteger tu PeopleSoft aplicación.
+ Configure un grupo de seguridad independiente para el equilibrador de carga de aplicación. Este grupo de seguridad debe permitir solo el tráfico HTTPS/HTTP entrante y no el saliente. Esto garantiza que solo se permita el tráfico previsto y ayuda a proteger la aplicación.
+ Use subredes privadas para los servidores de aplicaciones, los servidores web y la base de datos, y use [puertas de enlace NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) para el tráfico de Internet saliente. Esto garantiza que no se pueda acceder públicamente a los servidores que respaldan la aplicación y, al mismo tiempo, proporciona acceso público solo a los servidores que lo necesitan.
+ Utilice diferentes VPCs para ejecutar sus entornos de PeopleSoft producción y de no producción. Utilice [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/), la interconexión de [VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html), la [red ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) y [los grupos de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) para controlar el flujo de tráfico entre las [VPC](https://aws.amazon.com/vpc/) y, si es necesario, su centro de datos local.
+ Siga el principio de privilegio mínimo Conceda acceso a los recursos de AWS que utiliza la PeopleSoft aplicación solo a los usuarios que lo necesiten absolutamente. Otorgue únicamente los privilegios mínimos obligatorios para realizar una tarea. Para obtener más información, consulte el [pilar de seguridad](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html) del Marco de AWS Well-Architected.
+ Siempre que sea posible, utilice [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) para acceder a las instancias EC2 que utiliza la PeopleSoft aplicación.

**Prácticas recomendadas de fiabilidad**
+ Cuando utilice un equilibrador de carga de aplicación, registre un único destino para cada zona de disponibilidad habilitada. Esto aumenta la efectividad del equilibrador de carga.
+ Le recomendamos que tenga tres direcciones distintas URLs para cada entorno de PeopleSoft producción: una URL para acceder a la aplicación, otra para servir al agente de integración y otra para ver los informes. Si es posible, cada URL debe tener sus propios servidores web y servidores de aplicaciones dedicados. Este diseño ayuda a que PeopleSoft la aplicación sea más segura, ya que cada URL tiene una funcionalidad distinta y un acceso controlado. También minimiza el alcance del impacto en caso de que los servicios subyacentes fallen.
+ Te recomendamos que configures las [comprobaciones de estado de los grupos objetivo del balanceador de cargas](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) de tu PeopleSoft aplicación. Las comprobaciones de estado deben realizarse en los servidores web, y no en las instancias EC2 que ejecutan esos servidores. Esto garantiza que si el servidor web se bloquea o la instancia EC2 que aloja el servidor web deja de funcionar, el equilibrador de carga de aplicación refleje esa información con precisión.
+ En el caso PeopleSoft de una aplicación de producción, le recomendamos que distribuya los servidores web en al menos tres zonas de disponibilidad. Esto garantiza que la PeopleSoft aplicación siempre tenga una alta disponibilidad, incluso si una de las zonas de disponibilidad deja de funcionar.
+ Para una aplicación PeopleSoft de producción, habilite la agrupación de sacudidas ()`joltPooling=true`. Esto garantiza que su aplicación se conmute por error a otro servidor de aplicaciones si un servidor está inactivo por motivos de aplicación de parches o debido a un fallo de la máquina virtual.
+ Para una aplicación de PeopleSoft producción, establézcalo en 1`DynamicConfigReload `. Esta configuración se admite en la PeopleTools versión 8.52 y versiones posteriores. Añade nuevos servidores de aplicaciones al servidor web de forma dinámica, sin necesidad de reiniciar los servidores.
+ Para minimizar el tiempo de inactividad al aplicar PeopleTools parches, utilice el método de blue/green despliegue para las configuraciones de lanzamiento grupal de Auto Scaling para los servidores web y de aplicaciones. Para obtener más información, consulte el documento técnico [Descripción general de las opciones de implementación en AWS](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html).
+ Utilice [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) para hacer copias de seguridad de su PeopleSoft aplicación en AWS. AWS Backup es un servicio rentable, totalmente gestionado y basado en políticas que simplifica la protección de datos a escala.

**Prácticas recomendadas de rendimiento**
+ Termine el SSL en el Application Load Balancer para obtener un rendimiento óptimo del PeopleSoft entorno, a menos que su empresa requiera tráfico cifrado en todo el entorno.
+ Cree puntos de enlace de [VPC de interfaz para](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) los servicios de AWS, como [Amazon Simple Notification Service (Amazon SNS) [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html), de forma](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) que el tráfico sea siempre interno. Esto es rentable y ayuda a mantener la aplicación segura.

**Prácticas recomendadas de optimización de costos**
+ Etiquete todos los recursos que utiliza su PeopleSoft entorno y active las etiquetas de asignación de [costes](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). Estas etiquetas le ayudan a ver y gestionar los costos de sus recursos.
+ Para una aplicación PeopleSoft de producción, configure grupos de Auto Scaling para los servidores web y los servidores de aplicaciones. De este modo, mantiene el número mínimo de servidores web y de aplicaciones para dar soporte a su aplicación. Puede usar [políticas de grupo de escalado automático](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) para ampliar o reducir los servidores según sea necesario.
+ Use [alarmas de facturación](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) para recibir alertas cuando los costos superen el umbral presupuestario que especifique.

**Prácticas recomendadas de sostenibilidad**
+ Utilice [la infraestructura como código](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IaC) para mantener sus PeopleSoft entornos. Esto permite crear entornos coherentes y a mantener el control de los cambios.

## Epics
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-epics"></a>

### Migre su PeopleSoft base de datos a Amazon RDS
<a name="migrate-your-peoplesoft-database-to-amazon-rds"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Creación de un grupo de subredes de base de datos. | En la [consola de Amazon RDS](https://console.aws.amazon.com/rds/), en el panel de navegación, elija **Grupos de subred** y, a continuación, cree un grupo de subredes de base de datos de Amazon RDS con subredes en varias zonas de disponibilidad. Esto es necesario para que la base de datos de Amazon RDS se ejecute en una configuración Multi-AZ. | Administrador de la nube | 
| Crear la base de datos de Amazon RDS. | Cree una base de datos de Amazon RDS en una zona de disponibilidad de la región de AWS que haya seleccionado para el entorno de PeopleSoft alta disponibilidad. Al crear la base de datos de Amazon RDS, asegúrese de seleccionar la opción Multi-AZ (**crear una instancia en espera**) y el grupo de subredes de la base de datos que creó en el paso anterior. Para obtener más información, consulte la [documentación de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | Administrador de la nube, administrador de bases de datos de Oracle | 
| Migre su PeopleSoft base de datos a Amazon RDS. | Migre su PeopleSoft base de datos existente a la base de datos de Amazon RDS mediante AWS Database Migration Service (AWS DMS). Para más información, consulte la [documentación de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) y la publicación del blog de AWS [Migración de bases de datos de Oracle con un tiempo de inactividad casi nulo mediante AWS DMS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/). | Administrador de nube, administrador de bases de datos PeopleSoft  | 

### Configure su sistema de archivos Amazon EFS
<a name="set-up-your-amazon-efs-file-system"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un sistema de archivos. | En la [consola de Amazon EFS](https://console.aws.amazon.com/efs/), cree un sistema de archivos y monte los destinos para cada zona de disponibilidad. Para obtener instrucciones, consulte la [documentación de Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-fs-part1-console). Cuando haya creado el sistema de archivos, anote su nombre de DNS. Usará esta información cuando monte el sistema de archivos. | Administrador de la nube | 

### Configure su PeopleSoft aplicación y su sistema de archivos
<a name="set-up-your-peoplesoft-application-and-file-system"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Lanzar una instancia EC2. | Lance una instancia EC2 para su PeopleSoft aplicación. Para obtener instrucciones, consulte la [documentación de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nube, PeopleSoft administrador | 
| Instálelo PeopleSoft en la instancia. | Instale PeopleSoft la aplicación y PeopleTools en la instancia EC2 que creó. Para obtener instrucciones, consulte la [documentación de Oracle](https://docs.oracle.com). | Administrador de nube, PeopleSoft administrador | 
| Crear el servidor de la aplicación. | Cree el servidor de aplicaciones para la plantilla de AMI y asegúrese de que se conecta correctamente a la base de datos de Amazon RDS. | Administrador de la nube, PeopleSoft administrador | 
| Monte el sistema de archivos de Amazon EFS. | Inicie sesión en la instancia EC2 como usuario raíz y ejecute los siguientes comandos para montar el sistema de archivos de Amazon EFS en una carpeta llamada `PSFTMNT` en el servidor.<pre>sudo su –<br />mkdir /psftmnt<br />cat /etc/fstab</pre>Añada la línea siguiente al archivo `/etc/fstab`. Use el nombre de DNS que anotó al crear el sistema de archivos.<pre>fs-09e064308f1145388.efs.us-east-1.amazonaws.com:/ /psftmnt nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0<br />mount -a</pre> | Administrador de la nube, PeopleSoft administrador | 
| Comprobar permisos. | Asegúrese de que la `PSFTMNT` carpeta tenga los permisos adecuados para que el PeopleSoft usuario pueda acceder a ella correctamente. | Administrador de la nube, PeopleSoft administrador | 
| Cree instancias adicionales. | Repita los pasos anteriores de esta épica para crear instancias de plantilla para el programador de procesos, el servidor web y el servidor Elasticsearch. Nombre estas instancias como `PRCS_TEMPLATE`, `WEB_TEMPLATE` y `SRCH_TEMPLATE`. En el servidor web, defina `joltPooling=true`** **y `DynamicConfigReload=1`. | Administrador de la nube, PeopleSoft administrador | 

### Cree scripts para configurar los servidores
<a name="create-scripts-to-set-up-servers"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un script para instalar el servidor de aplicaciones. | En la `APP_TEMPLATE` instancia de Amazon EC2, cree el siguiente script como PeopleSoft usuario. Asígnele el nombre `appstart.sh` y colóquelo en el directorio `PS_HOME`. Usará este script para abrir el servidor de aplicaciones y también para registrar el nombre del servidor en el soporte de Amazon EFS.<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/.profile.<br />psadmin -c configure -d HCMDEMO<br />psadmin -c parallelboot -d HCMDEMO<br />touch /psftmnt/`echo $HOSTNAME`</pre> | PeopleSoft administrador | 
| Cree un script para instalar el servidor de programador de procesos. | En la `PRCS_TEMPLATE` instancia de Amazon EC2, cree el siguiente script como PeopleSoft usuario. Asígnele el nombre `prcsstart.sh` y colóquelo en el directorio `PS_HOME`. Usará este script para abrir el servidor de programador de procesos.<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/. profile<br />/* The following line ensures that the process scheduler always has a unique name during replacement or scaling activity. */ <br />sed -i "s/.*PrcsServerName.*/`hostname -I | awk -F. '{print "PrcsServerName=PSUNX"$3$4}'`/" $HOME/appserv/prcs/*/psprcs.cfg<br />psadmin -p configure -d HCMDEMO<br />psadmin -p start -d HCMDEMO</pre> | PeopleSoft administrador | 
| Cree un script para instalar el servidor Elasticsearch. | En la instancia `SRCH_TEMPLATE` de Amazon EC2, como usuario de Elasticsearch, cree el siguiente script. Asígnele el nombre `srchstart.sh` y colóquelo en el directorio `HOME`.<pre>#!/bin/ksh<br />/* The following line ensures that the correct IP is indicated in the elasticsearch.yaml file. */<br />sed -i "s/.*network.host.*/`hostname  -I | awk '{print "host:"$0}'`/" $ES_HOME_DIR/config/elasticsearch.yaml<br />nohup $ES_HOME_DIR/bin/elasticsearch &</pre> | PeopleSoft administrador | 
| Cree un script para instalar el servidor web. | En la instancia `WEB_TEMPLATE` de Amazon EC2, como usuario del servidor web, cree los siguientes scripts en el directorio `HOME`.`renip.sh`: este script garantiza que el servidor web tenga la IP correcta cuando se clone desde la AMI.<pre>#!/bin/ksh<br />hn=`hostname`<br />/* On the following line, change the IP with the hostname with the hostname of the web template. */<br />for text_file in `find  *  -type f -exec grep -l '<hostname-of-the-web-template>' {} \;`<br />do<br />sed -e 's/<hostname-of-the-web-template>/'$hn'/g' $text_file > temp<br />mv -f temp $text_file<br />done</pre>`psstrsetup.sh`: Este script garantiza que el servidor web utilice el servidor de aplicaciones correcto IPs que se está ejecutando actualmente. Intenta conectarse a cada servidor de aplicaciones en el puerto de descarga y lo añade al archivo de configuración.<pre>#!/bin/ksh<br />c2=""<br />for ctr in `ls -1 /psftmnt/*.internal`<br />do<br />c1=`echo $ctr | awk -F "/" '{print $3}'`<br />/* In the following lines, 9000 is the jolt port. Change it if necessary. */<br />if nc -z $c1 9000 2> /dev/null; then<br />if [[ $c2 = "" ]]; then<br />c2="psserver="`echo $c1`":9000"<br />else<br />c2=`echo $c2`","`echo $c1`":9000"<br />fi<br />fi<br />done</pre>`webstart.sh`: este script ejecuta los dos scripts anteriores e inicia los servidores web.<pre>#!/bin/ksh<br />/* Change the path in the following if necessary. */<br />cd  /usr/homes/hcmdemo <br />./renip.sh<br />./psstrsetup.sh<br />webserv/peoplesoft/bin/startPIA.sh</pre> | PeopleSoft administrador | 
| Añada una entrada de crontab. | En la instancia de Amazon EC2 `WEB_TEMPLATE`, como usuario del servidor web, añada la siguiente línea a **crontab**. Cambie la hora y la ruta para reflejar los valores que necesita. Esta entrada garantiza que su servidor web siempre tenga las entradas correctas del servidor de aplicaciones en el archivo `configuration.properties`.<pre>* * * * * /usr/homes/hcmdemo/psstrsetup.sh</pre> | PeopleSoft administrador | 

### Plantillas de grupos de Creación AMIs y Auto Scaling
<a name="create-amis-and-auto-scaling-group-templates"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una AMI para la plantilla del servidor de aplicaciones. | En la consola de Amazon EC2, cree una imagen de AMI de la instancia `APP_TEMPLATE` de Amazon EC2. Ponga el nombre `PSAPPSRV-SCG-VER1` a la AMI. Para obtener instrucciones, consulte la [documentación de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html). | Administrador de la nube, PeopleSoft administrador | 
| Crea AMIs para los demás servidores. | Repita el paso anterior AMIs para crear el programador de procesos, el servidor Elasticsearch y el servidor web. | Administrador de la nube, administrador PeopleSoft  | 
| Cree una plantilla de lanzamiento para el grupo de escalado automático del servidor de aplicaciones. | Cree una plantilla de lanzamiento para el grupo de escalado automático del servidor de aplicaciones. Asigne el nombre `PSAPPSRV_TEMPLATE.` a la plantilla. En la plantilla, elija la AMI que creó para la instancia `APP_TEMPLATE`. Para obtener instrucciones, consulte la [documentación de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-instance).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube, PeopleSoft administrador | 
| Cree una plantilla de lanzamiento para el grupo de escalado automático del servidor de programación de procesos. | Repita el paso anterior para crear una plantilla de lanzamiento para el grupo de escalado automático del servidor programador de procesos. Asigne un nombre a la plantilla `PSPRCS_TEMPLATE`. En la plantilla, elija la AMI que creó para el programador de procesos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube, PeopleSoft administrador | 
| Cree una plantilla de lanzamiento para el grupo de escalado automático del servidor de Elasticsearch. | Repita los pasos anteriores para crear una plantilla de lanzamiento para el grupo de escalado automático del servidor Elasticsearch. Asigne un nombre a la plantilla `SRCH_TEMPLATE`. En la plantilla, elija la AMI que creó para el servidor de búsqueda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube, PeopleSoft administrador | 
| Cree una plantilla de lanzamiento para el grupo de escalado automático del servidor web. | Repita los pasos anteriores para crear una plantilla de lanzamiento para el grupo de escalado automático del servidor web. Asigne un nombre a la plantilla `WEB_TEMPLATE`. En la plantilla, elija la AMI que creó para el servidor web.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube, PeopleSoft administrador | 

### Crear grupos de escalado automático
<a name="create-auto-scaling-groups"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un grupo de escalado automático para el servidor de aplicaciones. | En la consola de Amazon EC2, cree un grupo de escalado automático llamado `PSAPPSRV_ASG` para el servidor de aplicaciones usando la plantilla `PSAPPSRV_TEMPLATE`. Para obtener instrucciones, consulte la [documentación de Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube, PeopleSoft administrador | 
| Cree grupos de escalado automático en el resto de servidores. | Repita el paso anterior para crear grupos de escalado automático para el programador de procesos, el servidor Elasticsearch y el servidor web. | Administrador de la nube, PeopleSoft administrador | 

### Cree y configure grupos de destino
<a name="create-and-configure-target-groups"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un grupo de destino para el servidor web. | En la consola de Amazon EC2, cree un grupo de destino para el servidor web. Para obtener más instrucciones, consulte la [documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html). Establezca el puerto en el que escucha el servidor web. | Administrador de la nube | 
| Configurar comprobaciones de estado. | Confirme que las comprobaciones de estado tengan los valores correctos según los requisitos de su empresa. Para obtener más información, consulte la [Documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html). | Administrador de la nube | 
| Cree un grupo de destino para el servidor Elasticsearch. | Repita los pasos anteriores para crear un grupo de destino llamado `PSFTSRCH` para el servidor de Elasticsearch, y configure el puerto de Elasticsearch correcto. | Administrador de la nube | 
| Añada grupos de destino a los grupos de escalado automático. | Abra el grupo de escalado automático `PSPIA_ASG` que creó anteriormente. En la pestaña **Equilibrador de carga**, elija **Editar** y, a continuación, añada el grupo de destino `PSFTWEB` al grupo de escalado automático.Repite este paso para el grupo de escalado automático de Elasticsearch `PSSRCH_ASG` y añada el grupo objetivo `PSFTSRCH` que creó anteriormente. | Administrador de la nube | 
| Establezca la adherencia de la sesión. | En el grupo de destino `PSFTWEB`, seleccione la pestaña **Atributos**, elija **Editar** y defina la adherencia de la sesión. En el tipo de adherencia, seleccione **Cookie generada por el equilibrador de carga**, y establezca la duración en 1. Para obtener más información, consulte la [Documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html).Repita este paso para el grupo de destino `PSFTSRCH`. | Administrador de la nube | 

### Crear y configurar equilibradores de carga de aplicaciones
<a name="create-and-configure-application-load-balancers"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un equilibrador de carga para los servidores web. | Cree un equilibrador de carga de aplicación con el nombre `PSFTLB` para equilibrar la carga del tráfico a los servidores web. Para obtener más instrucciones, consulte la [documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html#configure-load-balancer).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube | 
| Cree un equilibrador de carga para los servidores de Elasticsearch. | Cree un equilibrador de carga de aplicación con el nombre `PSFTSCH` para equilibrar la carga del tráfico a los servidores de Elasticsearch.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de la nube | 
| Configure Route 53. | En la [consola Amazon Route 53](https://console.aws.amazon.com/route53/), cree un registro en la zona alojada que servirá a la PeopleSoft aplicación. Para obtener instrucciones, consulte la [documentación de Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html). Esto garantiza que todo el tráfico pase por el equilibrador de carga `PSFTLB`. | Administrador de la nube | 

## Recursos relacionados
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-resources"></a>
+ [ PeopleSoft Sitio web de Oracle](https://www.oracle.com/applications/peoplesoft/)
+ [Documentación de AWS](https://docs.aws.amazon.com/)

# Configure la recuperación ante desastres para Oracle JD Edwards EnterpriseOne con AWS Elastic Disaster Recovery
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery"></a>

*Thanigaivel Thirumalai, Amazon Web Services*

## Resumen
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-summary"></a>

Los desastres provocados por catástrofes naturales, fallos en las aplicaciones o interrupciones de servicios son perjudiciales para los ingresos y provocan tiempo de inactividad en las aplicaciones corporativas. Para reducir las repercusiones de este tipo de eventos, la planificación de la recuperación ante desastres (DR) es fundamental para las empresas que adoptan los sistemas de planificación de recursos EnterpriseOne empresariales (ERP) de JD Edwards y otros programas de software esenciales y empresariales de JD Edwards. 

Este patrón explica cómo las empresas pueden utilizar AWS Elastic Disaster Recovery como una opción de recuperación ante desastres para sus EnterpriseOne aplicaciones de JD Edwards. También describe los pasos para utilizar la conmutación por error y la recuperación ante fallos de Elastic Disaster Recovery a fin de crear una estrategia de recuperación ante desastres entre regiones para las bases de datos alojadas en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en la nube de AWS.

**nota**  
Este patrón requiere que las regiones principal y secundaria para que la implementación de DR entre regiones se hospede en AWS.

[Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) es una solución de software ERP integrada para empresas medianas y grandes de una amplia gama de sectores.

AWS Elastic Disaster Recovery minimiza el tiempo de inactividad y la pérdida de datos con una recuperación rápida y fiable de aplicaciones locales y basadas en la nube mediante el uso de un almacenamiento asequible, un cálculo y point-in-time una recuperación mínimos.

AWS proporciona [cuatro patrones de arquitectura de DR principales](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Este documento se centra en la instalación, configuración y optimización mediante una [estrategia de prueba piloto](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Esta estrategia le ayuda a crear un entorno de DR de costo reducido, en el que inicialmente se aprovisiona un servidor de replicación para replicar los datos de la base de datos de origen. El servidor de base de datos propiamente dicho se aprovisiona solo cuando se inicia un proceso de recuperación de desastres. Esta estrategia elimina los gastos de mantenimiento de un servidor de base de datos en la región de DR. En su lugar, usted paga por una instancia EC2 más pequeña que actúa como servidor de replicación.

## Requisitos previos y limitaciones
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Una EnterpriseOne aplicación de JD Edwards que se ejecuta en Oracle Database o Microsoft SQL Server con una base de datos compatible en estado de ejecución en una instancia EC2 gestionada. Esta aplicación debe incluir todos los componentes EnterpriseOne básicos de JD Edwards (Enterprise Server, HTML Server y Database Server) instalados en una región de AWS.
+ Un rol de AWS Identity and Access Management (IAM) para configurar el servicio Elastic Disaster Recovery.
+ Una red para ejecutar Elastic Disaster Recovery, configurada de acuerdo con los [ajustes de conectividad](https://docs.aws.amazon.com/drs/latest/userguide/Network-Requirements.html) requeridos.

**Limitaciones**
+ Puede usar este patrón para replicar todos los niveles, a menos que la base de datos esté alojada en Amazon Relational Database Service (Amazon RDS). En este caso, le recomendamos que use la [funcionalidad de copia entre regiones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) de Amazon RDS.
+ Elastic Disaster Recovery no es compatible con CloudEndure Disaster Recovery, pero puede actualizarse desde CloudEndure Disaster Recovery. Para obtener más información, consulte las [preguntas frecuentes](https://docs.aws.amazon.com/drs/latest/userguide/cedr-to-drs.html) en la documentación de Elastic Disaster Recovery.
+ Amazon Elastic Block Store (Amazon EBS) limita la velocidad a la que puede tomar instantáneas. Puede replicar un número máximo de 300 servidores en una única cuenta de AWS mediante Elastic Disaster Recovery. Para replicar más servidores, puede usar varias cuentas de AWS o varias regiones de AWS de destino. (Deberá configurar Elastic Disaster Recovery por separado en cada cuenta y región). Para más información, consulte las [Prácticas recomendadas](https://docs.aws.amazon.com/drs/latest/userguide/best_practices_drs.html) en la documentación de Elastic Disaster Recovery.
+ Las cargas de trabajo de origen (la EnterpriseOne aplicación y la base de datos de JD Edwards) deben alojarse en instancias EC2. Este patrón no admite cargas de trabajo en las instalaciones o en otros entornos de nube.
+ Este patrón se centra en los componentes de JD Edwards EnterpriseOne . Un plan completo de DR y continuidad empresarial (BCP) debe incluir otros servicios básicos, como:
  + Redes (nube privada virtual, subredes y grupos de seguridad)
  + Active Directory
  + Amazon WorkSpaces
  + Elastic Load Balancing
  + Un servicio de base de datos administrado como Amazon Relational Database Service (Amazon RDS).

Para obtener información adicional sobre los requisitos previos, configuraciones y limitaciones, consulte la [documentación de Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html).

**Versiones de producto**
+ Oracle JD Edwards EnterpriseOne (versiones compatibles con Oracle y SQL Server basadas en los requisitos técnicos mínimos de Oracle)

## Arquitectura
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-architecture"></a>

**Pila de tecnología de destino**
+ Una sola región y una sola nube privada virtual (VPC) para producción y no producción, y una segunda región para DR
+ Zonas de disponibilidad únicas para asegurar una baja latencia entre los servidores
+ Un equilibrador de carga de aplicación que distribuya el tráfico de red para mejorar la escalabilidad y la disponibilidad de las aplicaciones en varias zonas de disponibilidad
+ Amazon Route 53, para proporcionar configuración de sistema de nombres de dominio (DNS)
+ Amazon proporcionará WorkSpaces a los usuarios una experiencia de escritorio en la nube
+ Amazon Simple Storage Service (Amazon S3) para almacenar copias de seguridad, archivos y objetos
+ Amazon CloudWatch para el registro, la supervisión y las alarmas de aplicaciones
+ Amazon Elastic Disaster Recovery, para la recuperación de desastres

**Arquitectura de destino**

El siguiente diagrama muestra la arquitectura de recuperación ante desastres interregional de JD Edwards EnterpriseOne mediante Elastic Disaster Recovery.

![\[Arquitectura para la recuperación ante desastres EnterpriseOne entre regiones de JD Edwards en AWS\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9b0de5f0-f211-4086-a044-321d081604f9/images/978b7219-e54e-4e31-b3ff-4885784e2971.png)


**Procedimiento**

A continuación puede ver un resumen de alto nivel del proceso. Para más información, consulte la sección *Epics*.
+ La replicación de Elastic Disaster Recovery comienza con una sincronización inicial. Durante esta sincronización inicial, el agente de replicación de AWS replica todos los datos de los discos de origen en el recurso correspondiente de la subred del área transitoria.
+ La replicación continua sigue realizándose indefinidamente una vez finalizada la sincronización inicial.
+ Debe revisar los parámetros de lanzamiento, que incluyen las configuraciones específicas del servicio y una plantilla de lanzamiento de Amazon EC2, una vez que se haya instalado el agente y se haya iniciado la replicación. Cuando se indique que el servidor de origen está listo para la recuperación, podrá iniciar las instancias.
+ Cuando Elastic Disaster Recovery emite una serie de llamadas a la API para iniciar la operación de lanzamiento, la instancia de recuperación se lanza inmediatamente en AWS según la configuración de lanzamiento. El servicio activa automáticamente un servidor de conversión durante el inicio.
+ La nueva instancia se activa en AWS una vez finalizada la conversión y está lista para usarse. El estado del servidor de origen en el momento del lanzamiento se representa mediante los volúmenes asociados a la instancia lanzada. El proceso de conversión implica cambios en los controladores, la red y la licencia del sistema operativo para asegurar que la instancia se inicie de forma nativa en AWS.
+ Tras el lanzamiento, los volúmenes recién creados ya no se mantienen sincronizados con los servidores de origen. El agente de replicación de AWS sigue replicando de forma rutinaria los cambios realizados en los servidores de origen de los volúmenes del área transitoria, pero las instancias lanzadas no reflejan dichos cambios.
+ Al iniciar una nueva instancia de simulacro o recuperación, los datos siempre se reflejan en el estado más reciente que se ha replicado desde el servidor de origen a la subred del área transitoria.
+ Cuando el servidor de origen esté marcado como preparado para la recuperación, podrá iniciar las instancias.

**nota**  
El proceso funciona en ambos sentidos: para la conmutación por error de una región de AWS principal a una región de DR, y también para la conmutación por recuperación al sitio principal una vez que se ha recuperado. Puede preparar la conmutación por recuperación invirtiendo la dirección de replicación de los datos desde el equipo de destino al equipo de origen de forma totalmente orquestada.

Entre las ventajas del proceso descrito en este patrón se incluyen las siguientes:
+ Flexibilidad: los servidores de replicación escalan horizontal y verticalmente en función del conjunto de datos y del tiempo de replicación, por lo que puede realizar pruebas de DR sin interrumpir las cargas de trabajo de origen ni la replicación.
+ Fiabilidad: la replicación es sólida, no disruptiva y continua.
+ Automatización: esta solución proporciona un proceso unificado y automatizado para las pruebas, la recuperación y la conmutación por recuperación.
+ Optimización de costos: puede replicar y pagar solo por los volúmenes necesarios, y pagar por los recursos de cómputo en el sitio de DR solo cuando esos recursos estén activados. Puede usar una instancia de replicación con costos optimizados (le recomendamos que emplee un tipo de instancia optimizada para la computación) para varias fuentes o una sola fuente con un gran volumen de EBS.

**Automatización y escala**

Al realizar una recuperación ante desastres a escala, los EnterpriseOne servidores de JD Edwards dependerán de otros servidores del entorno. Por ejemplo:
+ Los servidores de EnterpriseOne aplicaciones de JD Edwards que se conectan a una base de datos EnterpriseOne compatible con JD Edwards durante el arranque dependen de esa base de datos.
+  EnterpriseOne Los servidores de JD Edwards que requieren autenticación y necesitan conectarse a un controlador de dominio durante el arranque para iniciar los servicios dependen del controlador de dominio.

Por este motivo, le recomendamos que automatice las tareas de conmutación por error. Por ejemplo, puede usar AWS Lambda o AWS Step Functions para automatizar los scripts de EnterpriseOne inicio de JD Edwards y los cambios en el balanceador de carga para automatizar el end-to-end proceso de conmutación por error. Para obtener más información, consulte la publicación del blog [Crear un plan de recuperación de desastres escalable con AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/).

## Tools (Herramientas)
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) brinda volúmenes de almacenamiento por bloques para su uso con instancias de EC2.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/products/compute/) proporciona capacidad de computación escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [AWS Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) minimiza el tiempo de inactividad y la pérdida de datos con una recuperación rápida y fiable de aplicaciones locales y basadas en la nube mediante un almacenamiento asequible, un cálculo y point-in-time una recuperación mínimos.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/) le ofrece un control total sobre su entorno de redes virtuales, incluida la ubicación de los recursos, la conectividad y la seguridad.

## Prácticas recomendadas
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-best-practices"></a>

**Prácticas recomendadas generales**
+ Elabore con antelación un plan de acción en caso de que se produzca un evento de recuperación real.
+ Después de configurar Elastic Disaster Recovery correctamente, cree una CloudFormation plantilla de AWS que pueda crear la configuración bajo demanda, en caso de que sea necesario. Determine el orden en el que deben lanzarse los servidores y las aplicaciones, y regístrelo en el plan de recuperación.
+ Realice un simulacro regular (se aplican las tarifas estándar de Amazon EC2).
+ Supervise el estado de la replicación en curso mediante la consola de Elastic Disaster Recovery o mediante programación.
+ Proteja las point-in-time instantáneas y confirme antes de finalizar las instancias.
+ Cree un rol de IAM para la instalación del agente de replicación de AWS.
+ Habilite la protección de finalización de las instancias de recuperación en un escenario real de DR.
+ No use la acción **Desconectar de AWS** en la consola de Elastic Disaster Recovery en los servidores para los que lanzó instancias de recuperación, incluso en el caso de un evento de recuperación real. Al realizar una desconexión, se cancelan todos los recursos de replicación relacionados con estos servidores de origen, incluidos los puntos de recuperación point-in-time (PIT).
+ Modifique la política de PIT para cambiar el número de días de retención de las instantáneas.
+ Edite la plantilla de lanzamiento, en la configuración de lanzamiento de Elastic Disaster Recovery, para configurar la subred, el grupo de seguridad y el tipo de instancia correctos para su servidor de destino.
+ Automatice el proceso de end-to-end conmutación por error mediante Lambda o Step Functions para automatizar los scripts de inicio de JD EnterpriseOne Edwards y los cambios en el balanceador de carga.

**Optimización y consideraciones de JD Edwards EnterpriseOne **
+ Vaya **PrintQueue**a la base de datos.
+ Vaya **MediaObjects**a la base de datos.
+ Excluya los registros y la carpeta temporal de los servidores lógicos y por lotes.
+ Excluya la carpeta temporal de Oracle WebLogic.
+ Cree scripts para el inicio después de la conmutación por error.
+ Excluya la tempdb de SQL Server.
+ Excluya el archivo temporal de Oracle.

## Epics
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-epics"></a>

### Realice las tareas y configuración iniciales
<a name="perform-initial-tasks-and-configuration"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure la red de replicación.  | Implemente su EnterpriseOne sistema JD Edwards en la región principal de AWS e identifique la región de AWS para DR. Siga los pasos de la sección de [requisitos de red de replicación](https://docs.aws.amazon.com/drs/latest/userguide/preparing-environments.html) de la documentación de Elastic Disaster Recovery para planificar y configurar su red de replicación y DR. | Administrador de AWS | 
| Determine el RPO y el RTO. | Identifique el objetivo de tiempo de recuperación (RTO) y el objetivo de punto de recuperación (RPO) para los servidores de aplicaciones y la base de datos. | Arquitecto de la nube, arquitecto de DR | 
| Habilite la replicación para Amazon EFS. | Si procede, habilite la replicación desde la región principal de AWS a la región DR para sistemas de archivos compartidos como Amazon Elastic File System (Amazon EFS) mediante AWS DataSync, **rsync** u otra herramienta adecuada. | Administrador de la nube | 
| Administre el DNS de DR. | Identifique el proceso para actualizar el sistema de nombres de dominio (DNS) durante el simulacro de DR o la recuperación real | Administrador de la nube | 
| Crear un rol de IAM para la configuración. | Siga las instrucciones de la sección [Inicialización y permisos de Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/getting-started-initializing.html), de la documentación de Elastic Disaster Recovery, para crear un rol de IAM para inicializar y administrar el servicio de AWS. | Administrador de la nube | 
| Configure las interconexiones con VPC. | Asegúrese de que el origen y el destino VPCs estén sincronizados y sean accesibles entre sí. Para obtener instrucciones sobre la configuración, consulte la [documentación de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html). | Administrador de AWS | 

### Configure los parámetros de replicación de Elastic Disaster Recovery
<a name="configure-elastic-disaster-recovery-replication-settings"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicialice Elastic Disaster Recovery. | Abra la [consola de Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), seleccione la región de AWS de destino (donde replicará los datos y lanzará las instancias de recuperación) y, a continuación, elija **Cómo establecer la configuración de replicación predeterminada**. | Administrador de AWS | 
| Configure los servidores de replicación | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador de AWS | 
| Configure los volúmenes y los grupos de seguridad. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador de AWS | 
| Configure los ajustes adicionales. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador de AWS | 

### Instale el agente de replicación de AWS
<a name="install-the-aws-replication-agent"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un rol de IAM. | Cree un rol de IAM que contenga la política `AWSElasticDisasterRecoveryAgentInstallationPolicy`. En la sección **Seleccionar tipo de acceso de AWS**, habilite el acceso programático. Apunte el ID de clave de acceso y la clave de acceso secreta. Necesitará esta información durante la instalación del agente de replicación de AWS. | Administrador de AWS | 
| Compruebe los requisitos. | Compruebe y complete los [requisitos previos](https://docs.aws.amazon.com/drs/latest/userguide/installation-requiremets.html) de la documentación de Elastic Disaster Recovery para instalar el agente de replicación de AWS. | Administrador de AWS | 
| Instale el agente de replicación de AWS. | Siga las [instrucciones de instalación](https://docs.aws.amazon.com/drs/latest/userguide/agent-installation-instructions.html) de su sistema operativo e instale el agente de replicación de AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Repita estos pasos en el servidor restante. | Administrador de AWS | 
| Supervisar la replicación | Regrese al panel **Servidores de origen** de Elastic Disaster Recovery para supervisar el estado de la replicación. La sincronización inicial tardará algún tiempo en función del tamaño de la transferencia de datos.Cuando el servidor de origen esté completamente sincronizado, el estado del servidor se actualizará a **Listo**. Esto significa que se ha creado un servidor de replicación en el área transitoria, y que los volúmenes de EBS se han replicado desde el servidor de origen al área de almacenamiento transitorio. | Administrador de AWS | 

### Configure los ajustes de lanzamiento
<a name="configure-launch-settings"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Edite la configuración de lanzamiento. | Para actualizar la configuración de lanzamiento de las instancias de simulacro y recuperación, en la [consola de Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), seleccione el servidor de origen y, a continuación, seleccione **Acciones** y **Editar configuración de lanzamiento**. También puede elegir las máquinas de origen que se van a replicar en la página **Servidores de origen** y, a continuación, elegir la pestaña **Configuración de lanzamiento**. Esta pestaña tiene dos secciones: **Configuración general de lanzamiento** y **plantilla de lanzamiento de EC2**. | Administrador de AWS | 
| Configure los ajustes generales de lanzamiento. | Revise la configuración general de lanzamiento según sus necesidades.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obtener más información, consulte la [Configuración general de lanzamiento](https://docs.aws.amazon.com/drs/latest/userguide/launch-general-settings.html) en la documentación de Elastic Disaster Recovery. | Administrador de AWS | 
| Configure la plantilla de lanzamiento de Amazon EC2. | Elastic Disaster Recovery emplea plantillas de lanzamiento de Amazon EC2 para lanzar instancias de simulacro y recuperación para cada servidor de origen. La plantilla de lanzamiento se crea automáticamente para cada servidor de origen que añada a Elastic Disaster Recovery tras instalar AWS Replication Agent.Debe configurar la plantilla de lanzamiento de Amazon EC2 como plantilla de lanzamiento predeterminada si desea usarla con Elastic Disaster Recovery.Para obtener más información, consulte la [Plantilla de lanzamiento de EC2](https://docs.aws.amazon.com/drs/latest/userguide/ec2-launch.html) en la documentación de Elastic Disaster Recovery. | Administrador de AWS | 

### Inicie el simulacro y la conmutación por error de DR
<a name="initiate-dr-drill-and-failover"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie el simulacro | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obtener más información, consulte las [Preparación para la conmutación por error](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing.html) en la documentación de Elastic Disaster Recovery. | Administrador de AWS | 
| Valide el simulacro. | En el paso anterior, lanzó nuevas instancias de destino en la región de DR. Las instancias de destino son réplicas de los servidores de origen basadas en la instantánea realizada al iniciar el lanzamiento.En este procedimiento, se conectará a las máquinas de destino de Amazon EC2 para confirmar que funcionan según lo previsto.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) |  | 
| Iniciar la conmutación por error. | La conmutación por error es la redirección del tráfico de un sistema principal a un sistema secundario. Elastic Disaster Recovery le ayuda a realizar una conmutación por error al lanzar instancias de recuperación en AWS. Cuando se lanzan las instancias de recuperación, el tráfico de sus sistemas principales se redirige a estas instancias.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para más información, consulte las [Efectuar una conmutación por error](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing-failover.html) en la documentación de Elastic Disaster Recovery. | Administrador de AWS | 
| Inicie la conmutación por recuperación. | El proceso para iniciar una conmutación por recuperación es similar al proceso para iniciar una conmutación por error.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para más información, consulte las [Efectuar una conmutación por recuperación](https://docs.aws.amazon.com/drs/latest/userguide/failback-performing-main.html) en la documentación de Elastic Disaster Recovery. | Administrador de AWS | 
| Inicie los EnterpriseOne componentes de JD Edwards. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Deberá incorporar los cambios en Route 53 y Application Load Balancer para que funcione el EnterpriseOne enlace de JD Edwards.Puede automatizar estos pasos mediante Lambda, Step Functions y Systems Manager (Run Command).Elastic Disaster Recovery realiza la replicación en cada bloque de los volúmenes de EBS de la instancia de EC2 de origen que alojan el sistema operativo y los sistemas de archivos. Los sistemas de archivos compartidos creados con Amazon EFS no forman parte de esta replicación. Puede replicar los sistemas de archivos compartidos en la región de DR mediante AWS DataSync, como se indica en la primera epopeya, y luego montar estos sistemas de archivos replicados en el sistema de DR. | JD Edwards CNC EnterpriseOne  | 

## Resolución de problemas
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| El estado de la replicación de los datos del servidor de origen es **Estancado** y la replicación se retrasa. Si comprueba los detalles, el estado de la replicación de datos muestra **Agente no encontrado**. | Compruebe que el servidor de origen estancado está en funcionamiento.Si el servidor de origen deja de funcionar, el servidor de replicación finaliza automáticamente.Para obtener más información sobre problemas de retardo, consulte [Problemas de retardo en la replicación](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) en la documentación de Elastic Disaster Recovery. | 
| La instalación de AWS Replication Agent en la instancia de EC2 de origen falla en RHEL 8.2 después de escanear los discos. `aws_replication_agent_installer.log` indica que faltan los encabezados del kernel. | Antes de instalar AWS Replication Agent en RHEL 8, CentOS 8 u Oracle Linux 8, ejecute:<pre>sudo yum install elfutils-libelf-devel</pre>Para más información, consulte las [Requisitos de instalación de Linux](https://docs.aws.amazon.com/mgn/latest/ug/installation-requirements.html#linux-requirements) en la documentación de Elastic Disaster Recovery. | 
| En la consola de Elastic Disaster Recovery, verá el servidor de origen como **Listo** con retardo, y el estado de replicación de datos como **Estancado**.En función del tiempo que AWS Replication Agent no esté disponible, el estado puede indicar un retardo elevado, pero el problema seguirá siendo el mismo. | Use un comando del sistema operativo para confirmar que AWS Replication Agent se está ejecutando en la instancia de EC2 de origen o confirme que la instancia se está ejecutando.Tras corregir los problemas, Elastic Disaster Recovery reiniciará el escaneo. Espere a que se hayan sincronizado todos los datos y el estado de la replicación sea **Correcto** antes de iniciar un simulacro de DR. | 
| Replicación inicial con retardo elevado. En la consola de Elastic Disaster Recovery, puede ver que el estado de sincronización inicial es extremadamente lento para un servidor de origen. | Compruebe los problemas de retardo en la replicación documentados en la sección [Problemas de retardo en la replicación](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) de la documentación de Elastic Disaster Recovery.Es posible que el servidor de replicación no pueda gestionar la carga debido a las operaciones informáticas intrínsecas. En ese caso, intente actualizar el tipo de instancia tras consultar con el [equipo de soporte técnico de AWS](https://support.console.aws.amazon.com/support/). | 

## Recursos relacionados
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-resources"></a>
+ [Guía del usuario de AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html)
+ [Crear un plan de recuperación de desastres escalable con AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/) (publicación del blog de AWS)
+ [AWS Elastic Disaster Recovery: introducción técnica](https://explore.skillbuilder.aws/learn/course/internal/view/elearning/11123/aws-elastic-disaster-recovery-a-technical-introduction) (curso de AWS Skill Builder; requiere iniciar sesión)
+ [Guía de inicio rápido de AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/quick-start-guide-gs.html)

# Configure la detección de CloudFormation desviaciones en una organización multirregional y multicuenta
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization"></a>

*Ram Kandaswamy, Amazon Web Services*

## Resumen
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-summary"></a>

Los usuarios de Amazon Web Services (AWS) suelen buscar una forma eficaz de detectar los desajustes en la configuración de los recursos, incluida la desviación en las AWS CloudFormation pilas, y solucionarlos lo antes posible. Este es especialmente el caso cuando se AWS Control Tower utiliza.

Este patrón proporciona una solución prescriptiva que resuelve el problema de manera eficiente mediante el uso de cambios consolidados en la configuración de los recursos y la adopción de medidas en función de esos cambios para generar resultados. La solución está diseñada para situaciones en las que se crean varias CloudFormation pilas en más de una Región de AWS, en más de una cuenta, o en una combinación de ambas. Los objetivos de la solución son los siguientes:
+ Simplificar el proceso de detección de desviaciones
+ Configurar las notificaciones y las alertas
+ Configurar los informes consolidados

## Requisitos previos y limitaciones
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-prereqs"></a>

**Requisitos previos **
+ AWS Config está habilitada en todas las regiones y cuentas que se deben monitorear

**Limitaciones**
+ El informe generado solo admite valores separados por comas (CSV) y JSON.

## Arquitectura
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-architecture"></a>

El siguiente diagrama muestra la AWS Organizations configuración con varias cuentas. AWS Config las reglas se comunican entre las cuentas.  

![\[Proceso de cinco pasos para supervisar las pilas de dos cuentas de AWS Organizations.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/735d0987-b953-47f8-a9bc-b02a88957ee5/images/340cee9a-5a4e-49ea-bd73-d37dcea5e098.png)


 En el flujo de trabajo se incluyen los pasos siguientes:

1. La AWS Config regla detecta la desviación.

1. Los resultados de la detección de desviaciones que se encuentran en otras cuentas se envían a la cuenta de administración.

1. La CloudWatch regla de Amazon llama a una AWS Lambda función.

1. La función Lambda consulta la AWS Config regla para obtener resultados agregados.

1. La función de Lambda notifica a Amazon Simple Notification Service (Amazon SNS), que notifica la desviación por correo electrónico.

**Automatización y escala**

La solución que se presenta aquí puede escalarse tanto para regiones como para cuentas adicionales.

## Tools (Herramientas)
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-tools"></a>

**Servicios de AWS**
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)proporciona una vista detallada de la configuración de AWS los recursos de su Cuenta de AWS. Esto incluye cómo se relacionan los recursos entre sí y cómo se han configurado en el pasado, para que pueda ver cómo las configuraciones y las relaciones cambian a lo largo del tiempo.
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.

## Epics
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-epics"></a>

### Automatice la detección de desviaciones para CloudFormation
<a name="automate-drift-detection-for-cfn"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el agregador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Arquitecto de la nube | 
| Cree una regla AWS gestionada. | Añada la regla `cloudformation-stack-drift-detection-check` AWS**** gestionada. La regla necesita un valor de parámetro: `cloudformationArn`. Introduzca el nombre de recurso de Amazon (ARN) del rol de IAM que tiene los permisos de detectar la desviación de las pilas. El rol debe tener una política de confianza que AWS Config permita asumirlo. | Arquitecto de la nube | 
| Cree la sección de consultas avanzadas del agregador. | Para buscar pilas desviadas de varias fuentes, cree la siguiente consulta:<pre>SELECT resourceId, configuration.driftInformation.stackDriftStatus WHERE resourceType = 'AWS::CloudFormation::Stack'  AND configuration.driftInformation.stackDriftStatus IN ('DRIFTED')</pre> | Arquitecto de la nube, desarrollador | 
| Automatice la ejecución de la consulta y la publicación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Arquitecto de la nube, desarrollador | 
| Cree una CloudWatch regla. | Cree una CloudWatch regla basada en la programación para llamar a la función Lambda, que es responsable de las alertas. | Arquitecto de la nube | 

## Recursos relacionados
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-resources"></a>

**Recursos**
+ [¿Qué es? AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Acumulación de datos de multicuentas y multiregiones](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html)
+ [Detección de cambios de configuración no administrados en pilas y recursos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)
+ [IAM: Transferir una función de IAM a una función específica Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html)
+ [¿Qué es Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

## Información adicional
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-additional"></a>

**Consideraciones**

Recomendamos utilizar la solución presentada en este patrón en lugar de utilizar soluciones personalizadas que impliquen llamadas a la API en intervalos específicos para iniciar la detección de desviaciones en cada CloudFormation pila o conjunto de pilas. Las soluciones personalizadas que utilizan llamadas a la API en intervalos específicos pueden provocar un gran número de llamadas a la API y afectar al rendimiento. Debido a la cantidad de llamadas a la API, se pueden producir limitaciones. Otro posible problema es el retraso en la detección si los cambios en los recursos se identifican únicamente en función de la programación.

Dado que los conjuntos de pilas se componen de pilas, puede utilizar esta solución. Los detalles de las instancias de pilas también están disponibles como parte de la solución.

## Conexiones
<a name="attachments-735d0987-b953-47f8-a9bc-b02a88957ee5"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/735d0987-b953-47f8-a9bc-b02a88957ee5/attachments/attachment.zip)

# Importación correcta de un bucket de S3 como CloudFormation pila de AWS
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack"></a>

*Ram Kandaswamy, Amazon Web Services*

## Resumen
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-summary"></a>

Si utiliza los recursos de Amazon Web Services (AWS), como los buckets de Amazon Simple Storage Service (Amazon S3), y desea utilizar un enfoque de infraestructura como código (IaC), puede importar sus recursos a CloudFormation AWS y gestionarlos como una pila.

Este patrón proporciona los pasos para importar correctamente un bucket de S3 como una CloudFormation pila de AWS. Al utilizar este enfoque de patrón, puede evitar los posibles errores que podrían producirse si importa su bucket de S3 en una sola acción.

## Requisitos previos y limitaciones
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Un bucket de S3 y una política de bucket de S3 existentes. Para obtener más información al respecto, consulte [Qué política de bucket de S3 debo usar para cumplir con la regla s3- de AWS Config bucket-ssl-requests-only](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/) en el Centro de conocimiento de AWS.
+ Una clave de AWS Key Management Service (AWS KMS) existente y su alias. Para obtener más información, consulte [Trabajar con alias](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html) en la documentación de AWS KMS.
+ La CloudFormation plantilla de `CloudFormation-template-S3-bucket` AWS de muestra (adjunta), descargada en su ordenador local.

## Arquitectura
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-architecture"></a>

![\[Flujo de trabajo para usar la CloudFormation plantilla a fin de crear una CloudFormation pila para importar un bucket de S3.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/aea7f6fe-8e67-46c4-8b90-1ab06b879111/images/ee143374-a0a4-42d9-b7ca-16593a597a84.png)


 

En el diagrama, se muestra el siguiente flujo de trabajo:

1. El usuario crea una plantilla de AWS CloudFormation con formato JSON o YAML.

1. La plantilla crea una CloudFormation pila de AWS para importar el bucket de S3.

1. La CloudFormation pila de AWS administra el depósito de S3 que especificó en la plantilla.

**Pila de tecnología**
+ AWS CloudFormation
+ AWS Identity y Access Management (IAM)
+ AWS KMS
+ Amazon S3

 

**Herramientas**
+ [AWS CloudFormation: AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) le CloudFormation ayuda a crear y aprovisionar despliegues de infraestructura de AWS de forma predecible y repetitiva.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html): IAM es un servicio web que le ayuda a controlar el acceso seguro a los servicios de AWS.
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html): AWS Key Management Service (AWS KMS) es un servicio de cifrado y administración de claves adaptado a la nube.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html): Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento para Internet.

## Epics
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-epics"></a>

### Importe un bucket de S3 con cifrado AWS KMS key basado en una CloudFormation pila de AWS
<a name="import-an-s3-bucket-with-kms-key-long--based-encryption-as-an-aws-cloudformation-stack"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una plantilla para importar el bucket de S3 y la clave de KMS. | En su equipo local, cree una plantilla para importar el bucket de S3 y la clave de KMS con la plantilla de muestra siguiente:<pre>AWSTemplateFormatVersion: 2010-09-09<br /><br />Parameters:<br /><br />  bucketName:<br /><br />    Type: String<br /><br />Resources:<br /><br />  S3Bucket:<br /><br />    Type: 'AWS::S3::Bucket'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      BucketName: !Ref bucketName<br /><br />      BucketEncryption:<br /><br />        ServerSideEncryptionConfiguration:<br /><br />          - ServerSideEncryptionByDefault:<br /><br />              SSEAlgorithm: 'aws:kms'<br /><br />              KMSMasterKeyID: !GetAtt <br /><br />                - KMSS3Encryption<br /><br />                - Arn<br /><br />  KMSS3Encryption:<br /><br />    Type: 'AWS::KMS::Key'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      Enabled: true<br /><br />      KeyPolicy: !Sub |-<br /><br />        {<br /><br />            "Id": "key-consolepolicy-3",<br /><br />            "Version": "2012-10-17",		 	 	 <br /><br />            "Statement": [<br /><br />                {<br /><br />                    "Sid": "Enable IAM User Permissions",<br /><br />                    "Effect": "Allow",<br /><br />                    "Principal": {<br /><br />                        "AWS": ["arn:aws:iam::${AWS::AccountId}:root"]<br /><br />                    },<br /><br />                    "Action": "kms:*",<br /><br />                    "Resource": "*"<br /><br />                }<br /><br />                }<br /><br />            ]<br /><br />        }<br /><br />      EnableKeyRotation: true</pre> | AWS DevOps | 
| Cree la pila. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html) | AWS DevOps | 
| Cree el alias de la clave KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>KMSS3EncryptionAlias:<br /><br />    Type: 'AWS::KMS::Alias'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties: <br /><br />    AliasName: alias/S3BucketKey<br /><br />    TargetKeyId: !Ref KMSS3Encryption</pre>Para obtener más información al respecto, consulte [las actualizaciones de la CloudFormation pila](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) de AWS en la CloudFormation documentación de AWS.  | AWS DevOps | 
| Actualice la pila para incluir la política de bucket de S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>S3BucketPolicy:<br /><br />  Type: 'AWS::S3::BucketPolicy'<br /><br />  Properties:<br /><br />    Bucket: !Ref S3Bucket<br /><br />    PolicyDocument: !Sub |-<br /><br />      {<br /><br />                  "Version": "2008-10-17",		 	 	 <br /><br />                  "Id": "restricthttp",<br /><br />                  "Statement": [<br /><br />                      {<br /><br />                          "Sid": "denyhttp",<br /><br />                          "Effect": "Deny",<br /><br />                          "Principal": {<br /><br />                              "AWS": "*"<br /><br />                          },<br /><br />                          "Action": "s3:*",<br /><br />                          "Resource": ["arn:aws:s3:::${S3Bucket}","arn:aws:s3:::${S3Bucket}/*"],<br /><br />                          "Condition": {<br /><br />                              "Bool": {<br /><br />                                  "aws:SecureTransport": "false"<br /><br />                              }<br /><br />                          }<br /><br />                      }<br /><br />                  ]<br /><br />              }</pre>Esta política de bucket de S3 tiene una declaración de denegación que restringe las llamadas a la API que no son seguras.  | AWS DevOps | 
| Actualice la política de claves. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)Para más información, consulte [Políticas de claves en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la documentación de AWS KMS. | Administrador de AWS | 
| Adición de etiquetas de nivel de recursos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>Tags:<br /><br />  - Key: createdBy<br /><br />    Value: Cloudformation</pre> | AWS DevOps | 

## Recursos relacionados
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-resources"></a>
+ [Incorporar los recursos existentes a la CloudFormation administración de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)
+ [AWS re:Invent 2017: información detallada sobre AWS CloudFormation (vídeo](https://www.youtube.com/watch?v=01hy48R9Kr8))

## Conexiones
<a name="attachments-aea7f6fe-8e67-46c4-8b90-1ab06b879111"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/aea7f6fe-8e67-46c4-8b90-1ab06b879111/attachments/attachment.zip)

# Sincronice los datos entre los sistemas de archivos de Amazon EFS en distintas regiones de AWS mediante AWS DataSync
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync"></a>

*Sarat Chandra Pothula y Aditya Ambati, Amazon Web Services*

## Resumen
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-summary"></a>

Esta solución proporciona un marco sólido para una sincronización de datos eficiente y segura entre instancias de Amazon Elastic File System (Amazon EFS) en regiones de AWS distintas. Este enfoque es escalable y proporciona una replicación de datos controlada entre regiones. Esta solución puede mejorar sus estrategias de recuperación ante desastres y redundancia de datos.

Al utilizar AWS Cloud Development Kit (AWS CDK), este patrón utiliza un enfoque de infraestructura como código (IaC) para implementar los recursos de la solución. La aplicación AWS CDK implementa los recursos esenciales de AWS, DataSync Amazon EFS, Amazon Virtual Private Cloud (Amazon VPC) y Amazon Elastic Compute Cloud (Amazon). EC2 Esta IaC proporciona un proceso de implementación repetible y controlado por versiones que está totalmente alineado con las prácticas recomendadas de AWS.

## Requisitos previos y limitaciones
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ La versión 2.9.11 o posterior de la Interfaz de la línea de comandos de AWS (AWS CLI) [instalada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) y [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ La versión 2.114.1 o posterior de AWS CDK [instalada](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) y [arrancada](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap)
+ La versión 20.8.0 o posterior de NodeJS [instalada](https://nodejs.org/en/download)

**Limitaciones**
+ La solución hereda las limitaciones de DataSync Amazon EFS, como las tasas de transferencia de datos, las limitaciones de tamaño y la disponibilidad regional. Para obtener más información, consulte Cuotas de [AWS y DataSync Cuotas](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html) de [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/limits.html).
+ Esta solución solo es compatible con Amazon EFS. DataSync es compatible con [otros servicios de AWS](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html), como Amazon Simple Storage Service (Amazon S3) y FSx Amazon for Lustre. Sin embargo, esta solución requiere modificaciones para sincronizar los datos con estos otros servicios.

## Arquitectura
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-architecture"></a>

![\[Diagrama de arquitectura para replicar los datos en un sistema de archivos de EFS en una región diferente\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/e28ba6c2-ab8b-4812-932e-f038106d5496/images/18b35ae9-a22e-43e7-b7a3-30e40321c44e.png)


Esta solución implementa las pilas siguientes de AWS CDK:
+ **Pila de Amazon VPC**: esta pila configura los recursos de la nube privada virtual (VPC), tal como las subredes, una puerta de enlace de Internet y una puerta de enlace NAT en las regiones de AWS principal y secundaria.
+ **Pila de Amazon EFS**: esta pila implementa los sistemas de archivos de Amazon EFS en las regiones principal y secundaria y los conecta a sus respectivas VPCs regiones.
+ **Amazon EC2 stack**: esta pila lanza EC2 instancias en las regiones principal y secundaria. Estas instancias están configuradas para montar el sistema de archivos de Amazon EFS, lo que les permite acceder al almacenamiento compartido.
+ **DataSync pila de ubicaciones**: esta pila utiliza una construcción personalizada llamada `DataSyncLocationConstruct` para crear recursos de DataSync ubicación en las regiones principal y secundaria. Estos recursos definen los puntos de conexión para la sincronización de datos.
+ **DataSync pila de tareas**: esta pila utiliza una construcción personalizada llamada `DataSyncTaskConstruct` para crear una DataSync tarea en la región principal. Esta tarea está configurada para sincronizar los datos entre las regiones principal y secundaria mediante las ubicaciones de DataSync origen y destino.

## Tools (Herramientas)
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-tools"></a>

**Servicios de AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) es un marco de desarrollo de software que le ayuda a definir y aprovisionar la infraestructura de la nube de AWS en código.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) es un servicio de transferencia y descubrimiento de datos en línea que le ayuda a mover archivos o datos de objetos hacia, desde y entre los servicios de almacenamiento de AWS.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) le ayuda a crear y configurar sistemas de archivos compartidos en la nube de AWS.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.

**Repositorio de código**

El código de este patrón está disponible en el repositorio de [ DataSync proyectos multiregionales de GitHub Amazon EFS](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main).

## Prácticas recomendadas
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-best-practices"></a>

Siga las prácticas recomendadas descritas en [Prácticas recomendadas para usar la CDK de AWS TypeScript para crear proyectos de IaC](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html).

## Epics
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-epics"></a>

### Implementación de la aplicación de AWS CDK
<a name="deploy-the-aws-cdk-app"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio del proyecto. | Introduzca el siguiente comando para clonar el repositorio del [ DataSync proyecto multiregional de Amazon EFS](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main).<pre>git clone https://github.com/aws-samples/aws-efs-crossregion-datasync.git</pre> | AWS DevOps | 
| Instale las dependencias de npm. | Escriba el siguiente comando.<pre>npm ci</pre> | AWS DevOps | 
| Elija las regiones principal y secundaria. | En el repositorio clonado, vaya al directorio `src/infa`. En el archivo `Launcher.ts`, actualice los valores de `PRIMARY_AWS_REGION` y `SECONDARY_AWS_REGION`. Utilice los [códigos de región](https://docs.aws.amazon.com/general/latest/gr/datasync.html#datasync-region) correspondientes.<pre>const primaryRegion = { account: account, region: '<PRIMARY_AWS_REGION>' };<br />const secondaryRegion = { account: account, region: '<SECONDARY_AWS_REGION>' };</pre> | AWS DevOps | 
| Arranque el entorno de . | Introduzca el comando siguiente para iniciar la cuenta de AWS y región de AWS que quiere utilizar.<pre>cdk bootstrap <aws_account>/<aws_region></pre>Para obtener más información, consulte [Proceso de arranque](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) en la documentación de AWS CDK. | AWS DevOps | 
| Enumere las pilas de CDK de AWS. | Introduzca el comando siguiente para ver una lista de las pilas de AWS CDK de la aplicación.<pre>cdk ls</pre> | AWS DevOps | 
| Sincronice las pilas de AWS CDK. | Introduzca el siguiente comando para generar una CloudFormation plantilla de AWS para cada pila definida en la aplicación AWS CDK.<pre>cdk synth</pre> | AWS DevOps | 
| Implemente la aplicación de AWS CDK. | Introduzca el comando siguiente para implementar todas las pilas en su cuenta de AWS, sin necesidad de aprobación manual para hacer cambios.<pre>cdk deploy --all --require-approval never</pre> | AWS DevOps | 

### Validación de la implementación
<a name="validate-the-deployment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie sesión en la EC2 instancia de la región principal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Cree un archivo temporal. | Introduzca el comando siguiente para crear un archivo temporal en la ruta de montaje de Amazon EFS.<pre>sudo dd if=/dev/zero \<br />of=tmptst.dat \<br />bs=1G \<br />seek=5 \<br />count=0<br /><br />ls -lrt tmptst.dat</pre> | AWS DevOps | 
| Inicie la DataSync tarea. | Introduzca el siguiente comando para replicar el archivo temporal de la región principal a la región secundaria, donde `<ARN-task>` se encuentra el nombre del recurso de Amazon (ARN) de la tarea. DataSync <pre>aws datasync start-task-execution \<br />    --task-arn <ARN-task></pre>El comando devuelve el ARN de la ejecución de la tarea con el formato siguiente:`arn:aws:datasync:<region>:<account-ID>:task/task-execution/<exec-ID>` | AWS DevOps | 
| Compruebe el estado de la transferencia de datos. | Introduzca el siguiente comando para describir la tarea de DataSync ejecución, donde `<ARN-task-execution>` está el ARN de la ejecución de la tarea.<pre>aws datasync describe-task-execution \<br />    --task-execution-arn <ARN-task-execution></pre>La DataSync tarea está completa cuando `PrepareStatus``TransferStatus`, y `VerifyStatus` todas tienen el valor`SUCCESS`. | AWS DevOps | 
| Inicie sesión en la EC2 instancia de la región secundaria. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Valide la replicación. | Introduzca el comando siguiente para verificar que el archivo temporal existe en el sistema de archivos de Amazon EFS.<pre>ls -lrt<br />tmptst.dat</pre> | AWS DevOps | 

## Recursos relacionados
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-resources"></a>

**Documentación de AWS**
+ [AWS CDK API Reference](https://docs.aws.amazon.com/cdk/api/v2/python/modules.html)
+ [Configuración de las DataSync transferencias de AWS con Amazon EFS](https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html)
+ [Solución de problemas con las DataSync transferencias de AWS](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html)

**Otros recursos de AWS**
+ [AWS DataSync FAQs](https://aws.amazon.com/datasync/faqs/)

# Pruebe AWS la infraestructura mediante LocalStack Terraform Tests
<a name="test-aws-infra-localstack-terraform"></a>

*Ivan Girardi y Ioannis Kalyvas, Amazon Web Services*

## Resumen
<a name="test-aws-infra-localstack-terraform-summary"></a>

Este patrón le ayuda a probar localmente la infraestructura como código (IaC) AWS en Terraform sin necesidad de aprovisionar la infraestructura en su entorno. AWS Integra el marco de [pruebas de Terraform](https://developer.hashicorp.com/terraform/language/tests) con. [LocalStack](https://github.com/localstack/localstack) El contenedor LocalStack Docker proporciona un entorno de desarrollo local que emula varios. Servicios de AWS Esto le permite probar e iterar las implementaciones de infraestructura sin generar costos en la Nube de AWS.

Esta solución proporciona los siguientes beneficios:
+ **Optimización de costos**: la ejecución de pruebas LocalStack elimina la necesidad de usarlo. Servicios de AWS Esto evita que incurra en los costos asociados con la creación, el funcionamiento y la modificación de esos AWS recursos.
+ **Velocidad y eficiencia**: las pruebas locales también suelen ser más rápidas que implementar los AWS recursos. Este rápido ciclo de retroalimentación acelera el desarrollo y la depuración. Como LocalStack se ejecuta de forma local, puede desarrollar y probar sus archivos de configuración de Terraform sin conexión a Internet. Puede depurar los archivos de configuración de Terraform de forma local y recibir comentarios de inmediato, lo que simplifica el proceso de desarrollo.
+ **Consistencia y reproducibilidad**: LocalStack proporciona un entorno coherente para las pruebas. Esta coherencia ayuda a garantizar que las pruebas arrojen los mismos resultados, independientemente de los AWS cambios externos o los problemas de la red.
+ **Aislamiento**: las pruebas permiten LocalStack evitar que se afecten accidentalmente a AWS los recursos activos o a los entornos de producción. Este aislamiento permite experimentar y probar varias configuraciones de manera segura.
+ **Automatización**: la integración con una canalización de integración y entrega continuas (CI/CD) le permite probar automáticamente los [archivos de configuración](https://developer.hashicorp.com/terraform/language/files) de Terraform. La canalización prueba minuciosamente la IaC antes de la implementación.
+ **Flexibilidad**: puede simular diferentes Regiones de AWS configuraciones y configuraciones de servicio para que se adapten mejor a sus entornos de producción. Cuentas de AWS

## Requisitos previos y limitaciones
<a name="test-aws-infra-localstack-terraform-prereqs"></a>

**Requisitos previos **
+ [Instalar Docker](https://docs.docker.com/get-started/get-docker/)
+ [Habilite el acceso](https://docs.docker.com/reference/cli/dockerd/#daemon-socket-option) al socket de Docker predeterminado (`/var/run/docker.sock`). Para obtener más información, consulte la [Documentación de LocalStack ](https://docs.localstack.cloud/user-guide/aws/lambda/#migrating-to-lambda-v2).
+ [Instalación](https://docs.docker.com/compose/install/) de Docker Compose
+ [Instalación](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) de la versión 1.6.0 o posterior de Terraform
+ [Instalación](https://developer.hashicorp.com/terraform/cli) de la CLI de Terraform
+ [Configure](https://hashicorp.github.io/terraform-provider-aws/) el proveedor de Terraform AWS 
+ (Opcional) [Instale](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) el AWS Command Line Interface (AWS CLI). Para ver un ejemplo de cómo usar el AWS CLI with LocalStack, consulta el repositorio de GitHub [pruebas de AWS infraestructura LocalStack y Terraform Tests](https://github.com/aws-samples/localstack-terraform-test).

**Limitaciones**
+ Este patrón proporciona ejemplos explícitos para probar los recursos de Amazon Simple Storage Service (Amazon S3) AWS Lambda y AWS Step Functions Amazon DynamoDB. Sin embargo, puede ampliar esta solución para incluir recursos adicionales AWS .
+ Este patrón proporciona instrucciones para ejecutar las pruebas de Terraform de forma local, pero ¿se pueden integrar las pruebas en cualquier CI/CD proceso?
+ Este patrón proporciona instrucciones para usar la imagen de la LocalStack comunidad. Si utilizas la imagen LocalStack Pro, consulta la [documentación de LocalStack Pro](https://hub.docker.com/r/localstack/localstack-pro).
+ LocalStack proporciona servicios de emulación para diferentes. AWS APIs Para una lista completa, consulte [AWS Service Feature Coverage](https://docs.localstack.cloud/user-guide/aws/feature-coverage/). Es posible que algunas funciones avanzadas requieran una suscripción a LocalStack Pro.

## Arquitectura
<a name="test-aws-infra-localstack-terraform-architecture"></a>

En el siguiente diagrama se muestra la arquitectura para esta solución. Los componentes principales son un repositorio de código fuente, una CI/CD canalización y un contenedor de LocalStack Docker. El contenedor LocalStack Docker aloja lo siguiente de forma local: Servicios de AWS 
+ Un bucket de Amazon S3 para almacenar archivos
+ Amazon CloudWatch para la supervisión y el registro
+ Una AWS Lambda función para ejecutar código sin servidor
+ Una máquina de AWS Step Functions estados para organizar flujos de trabajo de varios pasos
+ Una tabla de Amazon DynamoDB para almacenar datos de NoSQL

![\[Una CI/CD canalización crea y prueba el contenedor de LocalStack Docker y los recursos de AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/34bfbdbf-14e7-42a0-9022-c85a9c30cdcd/images/dc61fac9-b92c-4841-9132-ff8bb865eed9.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Agregue y confirme un archivo de configuración de Terraform en el repositorio de código fuente.

1. La CI/CD canalización detecta los cambios e inicia un proceso de compilación para el análisis estático del código de Terraform. La canalización crea y ejecuta el contenedor de LocalStack Docker. A continuación, la canalización inicia el proceso de prueba.

1. La canalización carga un objeto en un bucket de Amazon S3 que está alojado en el contenedor de LocalStack Docker.

1. Al cargar el objeto, se invoca una función. AWS Lambda 

1. La función Lambda almacena la notificación de eventos de Amazon S3 en un CloudWatch registro.

1. La función Lambda inicia una máquina de AWS Step Functions estados.

1. La máquina de estados escribe el nombre del objeto de Amazon S3 en una tabla de DynamoDB.

1. El proceso de prueba de la CI/CD canalización comprueba que el nombre del objeto cargado coincide con la entrada de la tabla de DynamoDB. También verifica que el bucket de S3 se haya implementado con el nombre especificado y que la AWS Lambda función se haya implementado correctamente.

## Tools (Herramientas)
<a name="test-aws-infra-localstack-terraform-tools"></a>

**Servicios de AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)es un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones críticas para la empresa.

**Otras herramientas**
+ [Docker](https://www.docker.com/) es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel del sistema operativo para entregar software en contenedores.
+ [Docker Compose](https://docs.docker.com/compose/) es una herramienta para definir y ejecutar aplicaciones de varios contenedores.
+ [LocalStack](https://localstack.cloud)es un emulador de servicios en la nube que se ejecuta en un único contenedor. Al usarlo LocalStack, puede ejecutar cargas de trabajo en la máquina local que utilice Servicios de AWS, sin necesidad de conectarse al Nube de AWS.
+ [Terraform](https://www.terraform.io/) es una herramienta de iAC HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.
+ [Terraform Tests](https://developer.hashicorp.com/terraform/language/tests) le permite a validar las actualizaciones de configuración de los módulos de Terraform mediante pruebas análogas a las pruebas de integración o unitarias.

**Repositorio de código**

El código de este patrón está disponible en la [AWS infraestructura de GitHub pruebas mediante el repositorio de Terraform LocalStack Tests](https://github.com/aws-samples/localstack-terraform-test).

## Prácticas recomendadas
<a name="test-aws-infra-localstack-terraform-best-practices"></a>
+ Esta solución prueba la AWS infraestructura que se especifica en los archivos de configuración de Terraform y no implementa esos recursos en ellos. Nube de AWS Si quiere implementar los recursos, siga el [principio del mínimo privilegio](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) (documentación de IAM) y, de manera correcta, [configure el backend de Terraform](https://developer.hashicorp.com/terraform/language/backend) (documentación de Terraform).
+ Al LocalStack integrarlo en una CI/CD canalización, le recomendamos que no ejecute el contenedor LocalStack Docker en modo privilegiado. Para obtener más información, consulte [Privilegios de tiempo de ejecución y capacidades de Linux](https://docs.docker.com/engine/containers/run/#runtime-privilege-and-linux-capabilities) (documentación de Docker) y [Seguridad para ejecutores autogestionados (GitLab documentación](https://docs.gitlab.com/runner/security/)).

## Epics
<a name="test-aws-infra-localstack-terraform-epics"></a>

### Implementar la solución
<a name="deploy-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clonar el repositorio. | En un intérprete de comandos de bash, ingrese el siguiente comando. Esto clona la [AWS infraestructura de pruebas mediante LocalStack un repositorio de Terraform Tests](https://github.com/aws-samples/localstack-terraform-test) de: GitHub<pre>git clone https://github.com/aws-samples/localstack-terraform-test.git</pre> | DevOps ingeniero | 
| Ejecute el LocalStack contenedor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps ingeniero | 
| Inicialice Terraform. | Introduzca el comando siguiente para inicializar Terraform:<pre>terraform init</pre> | DevOps ingeniero | 
| Ejecute Terraform Tests. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps ingeniero | 
| Eliminación de recursos. | Introduzca el siguiente comando para destruir el LocalStack contenedor:<pre>docker-compose down</pre> | DevOps ingeniero | 

## Resolución de problemas
<a name="test-aws-infra-localstack-terraform-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Resultado de `Error: reading DynamoDB Table Item (Files\|README.md): empty` al ejecutar el comando `terraform test`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | 

## Recursos relacionados
<a name="test-aws-infra-localstack-terraform-resources"></a>
+ [Cómo empezar con Terraform: orientación para AWS CDKAWS CloudFormation expertos](https://docs.aws.amazon.com/prescriptive-guidance/latest/getting-started-terraform/introduction.html) (orientación AWS prescriptiva)
+ [Mejores prácticas para usar el AWS proveedor de Terraform (guía prescriptiva](https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html))AWS 
+ [Terraform CI/CD y sus pruebas AWS con el nuevo Terraform Test Framework](https://aws.amazon.com/blogs/devops/terraform-ci-cd-and-testing-on-aws-with-the-new-terraform-test-framework/) (entrada del blog)AWS 
+ [Acelerar la entrega de software con LocalStack Cloud Emulator desde AWS Marketplace](https://aws.amazon.com/blogs/awsmarketplace/accelerating-software-delivery-localstack-cloud-emulator-aws-marketplace/) (AWS entrada del blog)

## Información adicional
<a name="test-aws-infra-localstack-terraform-additional"></a>

**Integración con GitHub acciones**

Puedes integrar LocalStack y terraformar las pruebas en una CI/CD canalización mediante GitHub Actions. Para obtener más información, consulta la [documentación de GitHub Actions](https://docs.github.com/en/actions). El siguiente es un ejemplo de archivo de configuración de GitHub Actions:

```
name: LocalStack Terraform Test

on:
  push:
    branches:
      - '**'

  workflow_dispatch: {}

jobs:
  localstack-terraform-test:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - name: Build and Start LocalStack Container
      run: |
        docker compose up -d

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3
      with:
        terraform_version: latest

    - name: Run Terraform Init and Validation
      run: |
        terraform init
        terraform validate
        terraform fmt --recursive --check
        terraform plan
        terraform show

    - name: Run Terraform Test
      run: |
        terraform test

    - name: Stop and Delete LocalStack Container
      if: always()
      run: docker compose down
```

# Actualice los clústeres de SAP Pacemaker de a ENSA1 ENSA2
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2"></a>

*Gergely Cserdi y Balazs Sandor Skublics, Amazon Web Services*

## Resumen
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-summary"></a>

Este patrón explica los pasos y las consideraciones para actualizar un clúster de SAP Pacemaker basado en Standalone Enqueue Server () a. ENSA1 ENSA2 La información de este patrón se aplica a los sistemas operativos SUSE Linux Enterprise Server (SLES) y Red Hat Enterprise Linux (RHEL).

Los clústeres Pacemaker de SAP NetWeaver 7.52 o S/4HANA 1709 y versiones anteriores se ejecutan en una arquitectura y están configurados específicamente para ello. ENSA1 ENSA1 Si ejecuta sus cargas de trabajo de SAP en Amazon Web Services (AWS) y está interesado en pasarse a ellos ENSA2, es posible que la documentación de SAP, SUSE y RHEL no proporcione información completa. Este patrón describe los pasos técnicos necesarios para reconfigurar los parámetros de SAP y los clústeres de Pacemaker desde los que realizar la actualización. ENSA1 ENSA2 Proporciona ejemplos de sistemas SUSE, pero el concepto es el mismo para los clústeres RHEL.

**nota**  
ENSA1 y ENSA2 son conceptos que se refieren únicamente a las aplicaciones de SAP, por lo que la información de este patrón no se aplica a SAP HANA ni a otros tipos de clústeres.

**nota**  
Técnicamente, se ENSA2 puede utilizar con o sin Enqueue Replicator 2. Sin embargo, la alta disponibilidad (HA) y la automatización de la conmutación por error (mediante una solución de clúster) requieren Enqueue Replicator 2. Este patrón utiliza el término *ENSA2 clústeres para referirse a los clústeres* con Enqueue Server 2 y Enqueue Replicator 2 independientes.

## Requisitos previos y limitaciones
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-prereqs"></a>

**Requisitos previos**
+ Clúster funcional que utiliza Pacemaker y Corosync ENSA1 en SLES o RHEL.
+ Al menos dos instancias de Amazon Elastic Compute Cloud (Amazon EC2) en las que se estén ejecutando las instancias (ABAP) de SAP Central Services (ASCS/SCS) y Enqueue Replication Server (ERS).
+ Conocimientos sobre la gestión de clústeres y aplicaciones de SAP.
+ Acceso al entorno Linux como usuario raíz.

**Limitaciones**
+ ENSA1los clústeres basados solo admiten una arquitectura de dos nodos.
+ ENSA2los clústeres basados en SAP no se pueden implementar en NetWeaver versiones de SAP anteriores a la 7.52.
+ EC2 las instancias de los clústeres deben estar en distintas zonas de disponibilidad de AWS.

**Versiones de producto**
+ SAP NetWeaver versión 7.52 o posterior
+ A partir de S/4HANA 2020, solo ENSA2 se admiten clústeres
+ Kernel 7.53 o posterior, que admite Enqueue Replicator ENSA2 2
+ SLES para aplicaciones SAP, versión 12 o posterior
+ RHEL para SAP con alta disponibilidad (HA) versión 7.9 o posterior

## Arquitectura
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-architecture"></a>

**Pila de tecnología de origen**
+ SAP NetWeaver 7.52 con SAP Kernel 7.53 o posterior
+ Sistema operativo SLES o RHEL

**Pila de tecnología de destino**
+ SAP NetWeaver 7.52 con SAP Kernel 7.53 o posterior, incluido S/4HANA 2020 con plataforma ABAP
+ Sistema operativo SLES o RHEL

**Arquitectura de destino**

El siguiente diagrama muestra una configuración de alta disponibilidad de ASCS/SCS instancias ERS basadas en un clúster. ENSA2 

![\[Arquitectura de alta ASCS/SCS disponibilidad para instancias ERS en un ENSA2 clúster\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/c32560de-901f-4796-a6b3-c08c109b22c8/images/19501713-0ddf-4242-9ea3-90478200a19e.png)


**Comparación de ENSA2 clústeres ENSA1 y clústeres**

Se presenta SAP ENSA2 como el sucesor de ENSA1. Un clúster ENSA1 basado admite una arquitectura de dos nodos en la que la ASCS/SCS instancia se conmuta por error al ERS cuando se produce un error. Esta limitación se debe a la forma en que la ASCS/SCS instancia recupera la información de la tabla de bloqueo de la memoria compartida del nodo ERS tras la conmutación por error. ENSA2Los clústeres basados en Enqueue Replicator 2 eliminan esta limitación, ya que la ASCS/SCS instancia puede recopilar la información de bloqueo de la instancia ERS a través de la red. ENSA2Los clústeres basados pueden tener más de dos nodos, ya que la ASCS/SCS instancia ya no es necesaria para realizar la conmutación por error al nodo ERS. (Sin embargo, en un entorno de ENSA2 clúster de dos nodos, la ASCS/SCS instancia seguirá realizando la conmutación por error al nodo ERS porque no hay otros nodos en el clúster a los que realizar la conmutación por error). ENSA2 se admite a partir del kernel 7.50 de SAP con algunas limitaciones. Para una configuración de alta disponibilidad compatible con Enqueue Replicator 2, el requisito mínimo es de NetWeaver 7.52 (consulte la nota 2630416 de [SAP](https://launchpad.support.sap.com/#/notes/2630416) OSS). El S/4HANA 1809 viene con la ENSA2 arquitectura recomendada de forma predeterminada, mientras que S/4HANA solo es compatible a partir de la versión 2020. ENSA2 

**Automatizar y escalar**

El clúster de alta disponibilidad de la arquitectura de destino hace que el ASCS realice automáticamente la conmutación por error a otros nodos.

**Escenarios para pasar a clústeres basados en clústeres ENSA2**

Existen dos escenarios principales para la actualización a clústeres ENSA2 basados: 
+ Escenario 1: elige realizar la actualización a SAP ENSA2 sin necesidad de realizar una actualización de SAP o una conversión a S/4HANA, suponiendo que su versión de SAP y su versión de kernel sean compatibles. ENSA2
+ Escenario 2: ENSA2 como parte de una actualización o conversión (por ejemplo, a S/4HANA 1809 o posterior), utiliza SUM.

La sección [Epics](#upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics) describe los pasos para estos dos escenarios. El primer escenario requiere que configure manualmente los parámetros relacionados con SAP antes de cambiar la configuración del clúster. ENSA2 En el segundo escenario, SUM implementa los binarios y los parámetros relacionados con SAP, y la única tarea restante es actualizar la configuración del clúster para HA. Aun así, le recomendamos que valide los parámetros de SAP después de usar SUM. En la mayoría de los casos, la conversión a S/4HANA es el motivo principal de la actualización de un clúster.

## Tools (Herramientas)
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-tools"></a>
+ Para los administradores de paquetes de sistemas operativos, recomendamos las herramientas Zypper (para SLES) o YUM (para RHEL).
+ Para la administración de clústeres, recomendamos los servidores **crm** (para SLES) o **pcs** (para RHEL).
+ Herramientas de administración de instancias de SAP, como SAPControl.
+ (Opcional) Herramienta SUM para la actualización de conversión a S/4HANA.

## Prácticas recomendadas
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-best-practices"></a>
+ Para conocer las prácticas recomendadas sobre el uso de cargas de trabajo de SAP en AWS, consulte [SAP Lens](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html) para el Marco de AWS Well-Architected
+ Tenga en cuenta la cantidad de nodos del clúster (pares o impares) en su arquitectura de ENSA2 varios nodos.
+ Configure el ENSA2 clúster para el SLES 15 de acuerdo con el estándar de certificación SAP S/4-HA-CLU 1.0.
+ Guarde o haga una copia de seguridad del estado actual del clúster y de la aplicación antes de realizar la actualización a ellos. ENSA2

## Epics
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics"></a>

### Configure los parámetros de SAP manualmente para ENSA2 (solo en el escenario 1)
<a name="configure-sap-parameters-manually-for-ensa2-scenario-1-only"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure los parámetros en el perfil predeterminado. | Si desea actualizar a la misma versión de SAP ENSA2 mientras utiliza la misma versión o si la versión de destino es la predeterminada ENSA1, defina los parámetros del perfil predeterminado (archivo DEFAULT.PFL) en los siguientes valores.<pre>enq/enable=TRUE<br />enq/serverhost=sapascsvirt<br />enq/serverinst=10        (instance number of ASCS/SCS instance)<br />enque/process_location=REMOTESA<br />enq/replicatorhost=sapersvirt<br />enq/replicatorinst=11    (instance number of ERS instance)<br />  </pre>donde `sapascsvirt` es el nombre de host virtual de las instancias de ASCS y es `sapersvirt` el nombre de host virtual de las instancias de ERS. Puede cambiarlos para adaptarlos a su entorno de destino.Para utilizar esta opción de actualización, la versión de SAP y la versión del núcleo deben ser compatibles ENSA2 con Enqueue Replicator 2. | SAP | 
| Configure el perfil de la instancia ASCS/SCS . | Si desea actualizar a la misma versión de SAP sin ENSA2 dejar de utilizar o si la versión de destino es la predeterminada ENSA1, defina los siguientes parámetros en el perfil de la ASCS/SCS instancia. La sección del perfil en la que ENSA1 se define tiene un aspecto similar al siguiente.<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_EN = en.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_EN) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN) <br />Start_Program_01 = local $(_EN) pf=$(_PF)<br />  </pre>Para reconfigurar esta sección para ENSA2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Esta sección de perfil tendrá un aspecto similar al siguiente después de los cambios.<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_ENQ = enq.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_ENQ) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enq_server$(FT_EXE) $(_ENQ) <br />Start_Program_01 = local $(_ENQ) pf=$(_PF) <br />... <br />enq/server/replication/enable = TRUE <br />Autostart = 0</pre>`_ENQ` no debe tener habilitada la opción de reinicio. Si `RestartProgram_01` está configurada para `_ENQ`, cámbiela a `StartProgram_01`. Esto evita que SAP reinicie el servicio o interfiera con los recursos gestionados por el clúster. | SAP | 
| Configurar el perfil ERS. | Si desea actualizar a la misma versión de SAP ENSA2 mientras utiliza la misma versión de SAP o si la versión de destino es la predeterminada ENSA1, defina los siguientes parámetros en el perfil de la instancia de ERS.Busque la sección en la que está definido el replicador de puesta en cola. Será similar al siguiente.<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ER = er.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_03 = local rm -f $(_ER) <br />Execute_04 = local ln -s -f $(DIR_EXECUTABLE)/enrepserver$(FT_EXE) $(_ER) <br />Start_Program_00 = local $(_ER) pf=$(_PF) NR=$(SCSID)<br />  </pre>Para volver a configurar esta sección para el replicador de puesta en cola 2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Esta sección de perfil tendrá un aspecto similar al siguiente después de los cambios.<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ENQR = enqr.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_01 = local rm -f $(_ENQR) <br />Execute_02 = local ln -s -f $(DIR_EXECUTABLE)/enq_replicator$(FT_EXE) $(_ENQR) <br />Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID) <br />… <br />Autostart = 0</pre>`_ENQR` no debe tener habilitada la opción de reinicio. Si `RestartProgram_01` está configurada para `_ENQR`, cámbiela a `StartProgram_01`. Esto evita que SAP reinicie el servicio o interfiera con los servicios gestionados por clústeres. | SAP | 
| Reinicie SAP Start Services. | Tras cambiar los perfiles descritos anteriormente en esta epopeya, reinicie SAP Start Services tanto para ERS como para ASCS/SCS él.`sapcontrol -nr 10 -function RestartService SCT``sapcontrol -nr 11 -function RestartService SCT`donde `SCT` se refiere al ID del sistema SAP y suponiendo que 10 y 11 son los números de instancia de ASCS/SCS las instancias ERS, respectivamente. | SAP | 

### Reconfigure el clúster para ENSA2 (obligatorio en ambos escenarios)
<a name="reconfigure-the-cluster-for-ensa2-required-for-both-scenarios"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Verifique los números de versión en los agentes de recursos de SAP. | Cuando utiliza SUM para actualizar SAP a S/4HANA 1809 o posterior, SUM gestiona los cambios de parámetros en los perfiles de SAP. Solo el clúster requiere un ajuste manual. Sin embargo, le recomendamos que compruebe la configuración de los parámetros antes de realizar cualquier cambio en el clúster.En los ejemplos de esta epic, se supone que está utilizando el sistema operativo SUSE. Si está utilizando RHEL, necesitará utilizar herramientas como YUM y **pcs** shell en lugar de Zypper y **crm**.Compruebe ambos nodos de la arquitectura para confirmar que el paquete de `resource-agents`coincide con la versión mínima recomendada por SAP. Para el SLES, consulte la nota 2641019 de SAP OSS. Para RHEL, consulte la nota 2641322 de SAP OSS. (SAP Notes requiere una [cuenta de usuario de SAP ONE Support Launchpad](https://support.sap.com/en/my-support/knowledge-base.html)).<pre>sapers:sctadm 23> zypper search -s -i resource-agents<br />Loading repository data...<br />Reading installed packages...<br />S | Name | Type | Version | Arch | Repository<br />--+-----------------+---------+------------------------------------+--------+-----------------------------<br />i | resource-agents | package | 4.8.0+git30.d0077df0-150300.8.28.1 | x86_64 | SLE-Product-HA15-SP3-Updates</pre>Actualice la versión `resource-agents` si es necesario. | Administrador de sistemas de AWS | 
| Realice una copia de seguridad de la configuración del clúster. | Realice una copia de seguridad de la configuración del clúster de CRM de la siguiente manera.`crm configure show > /tmp/cluster_config_backup.txt` | Administrador de sistemas de AWS | 
| Establezca el modo de mantenimiento. | Configure el clúster en modo de mantenimiento.`crm configure property maintenance-mode="true"` | Administrador de sistemas de AWS | 
| Compruebe la configuración del clúster. | Compruebe la configuración actual del clúster.`crm configure show`He aquí un extracto del resultado completo:<pre>node 1: sapascs<br />node 2: sapers<br />...<br />primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ <br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10<br />primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000<br />...<br />colocation col_sap_SCT_no_both -5000: grp_SCT_ERS11 grp_SCT_ASCS10<br />location loc_sap_SCT_failover_to_ers rsc_sap_SCT_ASCS10 \<br />rule 2000: runs_ers_SCT eq 1<br />order ord_sap_SCT_first_start_ascs Optional: rsc_sap_SCT_ASCS10:start rsc_sap_SCT_ERS11:stop symmetrical=false<br />...</pre>donde `sapascsvirt` se refiere al nombre de host virtual de las instancias de ASCS, `sapersvirt` se refiere al nombre de host virtual de las instancias de ERS y `SCT` se refiere al ID del sistema SAP. | Administrador de sistemas de AWS | 
| Elimine la restricción de colocación de la conmutación por error. | En el ejemplo anterior, la restricción de ubicación `loc_sap_SCT_failover_to_ers` especifica que la ENSA1 función de ASCS siempre debe seguir la instancia del ERS en caso de conmutación por error. Con ENSA2, ASCS debería poder realizar la conmutación por error libremente a todos los nodos participantes, de modo que pueda eliminar esta restricción.`crm configure delete loc_sap_SCT_failover_to_ers` | Administrador de sistemas de AWS | 
| Ajuste las primitivas. | También necesitará realizar cambios menores en las primitivas de ASCS y ERS. SAPInstance A continuación, se muestra un ejemplo de una SAPInstance primitiva de ASCS que está configurada para. ENSA1<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10</pre>Para actualizar a ENSA2, cambie esta configuración por la siguiente.<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=3000 </pre>Este es un ejemplo de una SAPInstance primitiva ERS configurada para ENSA1.<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000</pre>Para realizar la actualización a ENSA2, cambie esta configuración por la siguiente.<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true</pre>Puede cambiar las primitivas de varias formas. Por ejemplo, puede revisarlas en un editor como vi, como se muestra en el siguiente ejemplo.`crm configure edit rsc_sap_SCT_ERS11` | Administrador de sistemas de AWS | 
| Deshabilitar el modo de mantenimiento. | Deshabilitar el modo de mantenimiento en el clúster.`crm configure property maintenance-mode="false"`Cuando el clúster está fuera del modo de mantenimiento, intenta poner en línea las instancias de ASCS y ERS con la nueva ENSA2 configuración. | Administrador de sistemas de AWS | 

### (Opcional) Añada nodos de clúster
<a name="optional-add-cluster-nodes"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Consulte las prácticas recomendadas. | Antes de añadir más nodos, asegúrese de comprender las prácticas recomendadas, como por ejemplo si debe utilizar un número par o impar de nodos. | Administrador de sistemas de AWS | 
| Añada nodos. | Añadir más nodos implica una serie de tareas, como actualizar el sistema operativo, instalar paquetes de software que coincidan con los nodos existentes y hacer que los montajes estén disponibles. Puede utilizar la opción **Preparación de un host adicional** en el Administrador de aprovisionamiento de software de SAP (SWPM) para crear una línea base del host específica para SAP. Para obtener más información, consulte las guías de SAP que se muestran en la siguiente sección. | Administrador de sistemas de AWS | 

## Recursos relacionados
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-resources"></a>

**Referencias de SAP y SUSE**

Para acceder a SAP Notes, debe tener una cuenta de usuario de SAP ONE Support Launchpad. Para obtener más información, consulte el [sitio web de soporte de SAP](https://support.sap.com/en/my-support/knowledge-base.html).
+ [SAP Note 2501860 ‒ Documentación del servidor de NetWeaver aplicaciones SAP para ABAP 7.52](https://launchpad.support.sap.com/#/notes/2501860)
+ [SAP Note 2641019 ‒ Instalación ENSA2 y actualización desde o en un entorno de alta disponibilidad de SUSE ENSA1 ENSA2 ](https://launchpad.support.sap.com/#/notes/2641019)
+ [SAP Note 2641322 ‒ Instalación ENSA2 y actualización desde y ENSA2 cuando se utilizan las soluciones HA de Red Hat ENSA1 para SAP](https://launchpad.support.sap.com/#/notes/2641322)
+ [Nota de SAP 2711036: Uso del servidor Enqueue 2 independiente en un entorno de alta disponibilidad](https://launchpad.support.sap.com/#/notes/2711036)
+ Servidor [Enqueue 2 independiente](https://help.sap.com/docs/ABAP_PLATFORM/cff8531bc1d9416d91bb6781e628d4e0/902412f09e134f5bb875adb6db585c92.html) (documentación de SAP)
+ [SAP S/4 HANA: Clúster de alta disponibilidad de Enqueue Replication 2:](https://documentation.suse.com/sbp/all/html/SAP_S4HA10_SetupGuide-SLE12/index.html) guía de configuración (documentación de SUSE)

**Referencias de AWS**
+ [SAP HANA en AWS: guía de configuración de alta disponibilidad para SLES y RHEL](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-ha-configuration.html)
+ [SAP Lens: Marco de AWS Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)

# Utilice zonas de disponibilidad coherentes en VPCs diferentes cuentas de AWS
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts"></a>

*Adam Spicer, Amazon Web Services*

## Resumen
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-summary"></a>

En la nube de Amazon Web Services (AWS), una zona de disponibilidad tiene un nombre que puede variar entre sus cuentas de AWS y un [Identificador de zona de disponibilidad (AZ ID) ](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)que identifica su ubicación. Si utiliza AWS CloudFormation para crear nubes privadas virtuales (VPCs), debe especificar el nombre o el ID de la zona de disponibilidad al crear las subredes. Si crea VPCs en varias cuentas, el nombre de la zona de disponibilidad es aleatorio, lo que significa que las subredes utilizan distintas zonas de disponibilidad en cada cuenta. 

Para usar la misma zona de disponibilidad en todas sus cuentas, debe asignar el nombre de la zona de disponibilidad de cada cuenta al mismo Identificador de zona de disponibilidad. Por ejemplo, en el siguiente diagrama se muestra que el Identificador AZ de `use1-az6` se llama `us-east-1a` en la cuenta A de AWS y `us-east-1c` en la cuenta Z de AWS.

![\[El ID de la zona de disponibilidad use1-az6 se llama us-east-1a en la cuenta A de AWS y us-east-1c en la cuenta Z de AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/23c8a37b-2408-4534-a1e0-bccfa4d7fbe3.png)


 

Este patrón ayuda a garantizar la coherencia zonal al proporcionar una solución escalable y multicuenta para utilizar las mismas zonas de disponibilidad en sus subredes. La coherencia zonal garantiza que el tráfico de red entre cuentas evite las rutas de red entre zonas de disponibilidad, lo que ayuda a reducir los costos de transferencia de datos y a reducir la latencia de red entre las cargas de trabajo.

Este patrón es un enfoque alternativo a la CloudFormation [AvailabilityZoneId propiedad](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid) de AWS.

## Requisitos previos y limitaciones
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-prereqs"></a>

**Requisitos previos **
+ Al menos dos cuentas de AWS activas en la misma región de AWS.
+ Evalúe cuántas zonas de disponibilidad se necesitan para cumplir con los requisitos de VPC en la región.
+ Identifique y registre el Identificador de zona de disponibilidad para cada zona de disponibilidad que necesite admitir. Para obtener más información al respecto, consulte [Availability Zone IDs para sus recursos de AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) en la documentación de AWS Resource Access Manager.  
+ Una lista ordenada y separada por comas de su zona de disponibilidad. IDs Por ejemplo, la primera zona de disponibilidad de la lista se mapea como `az1`, la segunda zona de disponibilidad se mapea como `az2` y esta estructura de mapeo continúa hasta que la lista separada por comas esté completamente mapeada. No hay un número máximo de AZ IDs que se puedan mapear. 
+ El `az-mapping.yaml` archivo del repositorio de [mapeo de zonas de disponibilidad de GitHub múltiples cuentas](https://github.com/aws-samples/multi-account-az-mapping/), copiado en su máquina local

## Arquitectura
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-architecture"></a>

El siguiente diagrama muestra la arquitectura que se implementa en una cuenta y que crea los valores de Almacén de parámetros de AWS Systems Manager. Estos valores del almacén de parámetros se consumen al crear una VPC en la cuenta.

![\[Flujo de trabajo para crear los valores del Almacén de parámetros de Systems Manager para cada ID de AZ y nombre de AZ del almacén.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/f1168464-55f8-4efc-9b28-6a0cda668b9e.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. La solución de este patrón se implementa en todas las cuentas que requieren coherencia zonal para una VPC. 

1. La solución crea valores de almacén de parámetros para cada Identificador de zona de disponibilidad y almacena el nombre de la nueva zona de disponibilidad. 

1. La CloudFormation plantilla de AWS utiliza el nombre de la zona de disponibilidad almacenado en cada valor del almacén de parámetros, lo que garantiza la coherencia zonal.

En el siguiente diagrama, se muestra el flujo de trabajo para crear una VPC con la solución de este patrón.

 

![\[El flujo de trabajo envía una CloudFormation plantilla para crear una VPC con la AZ correcta. IDs\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/cd859430-ac25-479f-b56a-21da24cddf21.png)


 

En el diagrama, se muestra el siguiente flujo de trabajo:

1. Envíe una plantilla para crear una VPC a AWS. CloudFormation

1. AWS CloudFormation resuelve los valores del almacén de parámetros de cada zona de disponibilidad y devuelve el nombre de la zona de disponibilidad de cada ID de zona de disponibilidad.

1. Se crea una VPC con la AZ correcta IDs necesaria para garantizar la coherencia zonal.

Tras implementar la solución de este patrón, puede crear subredes que hagan referencia a los valores del almacén de parámetros. Si usa AWS CloudFormation, puede hacer referencia a los valores de los parámetros de mapeo de zonas de disponibilidad del siguiente código de ejemplo con formato YAML:

```
Resources:
    PrivateSubnet1AZ1: 
        Type: AWS::EC2::Subnet 
        Properties: 
            VpcId: !Ref VPC
            CidrBlock: !Ref PrivateSubnetAZ1CIDR
            AvailabilityZone: 
                !Join 
                    - ''
                    - - '{{resolve:ssm:/az-mapping/az1:1}}'
```

Este código de muestra se incluye en el `vpc-example.yaml ` archivo del repositorio de mapeo de zonas de [disponibilidad de GitHub varias cuentas.](https://github.com/aws-samples/multi-account-az-mapping/) Le muestra cómo crear una VPC y subredes que se alineen con los valores del almacén de parámetros para garantizar la coherencia zonal.

**Pila de tecnología**
+ AWS CloudFormation
+ AWS Lambda
+ Almacén de parámetros de AWS Systems Manager

**Automatización y escala**

Puede implementar este patrón en todas sus cuentas de AWS mediante AWS CloudFormation StackSets o la solución Customizations for AWS Control Tower. Para obtener más información, consulte [Trabajar con AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) en la documentación de AWS Cloudformation y [Personalizaciones para la Torre de Control de AWS en la biblioteca](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) de soluciones de AWS. 

Después de implementar la CloudFormation plantilla de AWS, puede actualizarla para usar los valores del almacén de parámetros e implementarla VPCs en canalizaciones o según sus requisitos. 

## Tools (Herramientas)
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-tools"></a>

**Servicios de AWS**
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) le CloudFormation ayuda a modelar y configurar sus recursos de AWS, a aprovisionarlos de forma rápida y coherente y a gestionarlos durante todo su ciclo de vida. Facilita poder usar una plantilla para describir los recursos y sus dependencias, y lanzarlos y configurarlos juntos como una pila, en lugar de administrarlos de forma individual. Puede administrar y aprovisionar pilas en varias cuentas y regiones de AWS.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Solo pagará por el tiempo de computación que consuma, no se aplican cargos cuando el código no se está ejecutando.
+ [Almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) es una funcionalidad de AWS Systems Manager. Proporciona un almacenamiento seguro y jerárquico para administrar los datos de configuración y los secretos.

**Código**

El código de este patrón se proporciona en el repositorio de [mapeo de zonas de disponibilidad de GitHub múltiples cuentas](https://github.com/aws-samples/multi-account-az-mapping/).

## Epics
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-epics"></a>

### Implemente el archivo az-mapping.yaml
<a name="deploy-the-az-mapping-yaml-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Determine las zonas de disponibilidad requeridas para la región. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html) | Arquitecto de la nube | 
| Implemente el archivo az-mapping.yaml. | Utilice el `az-mapping.yaml` archivo para crear una CloudFormation pila de AWS en todas las cuentas de AWS necesarias. En el parámetro `AZIds`, utilice la lista separada por comas que creó anteriormente. Le recomendamos que utilice [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) o la [solución Customizations for AWS Control Tower](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/). | Arquitecto de la nube | 

### Impleméntelo VPCs en sus cuentas
<a name="deploy-the-vpcs-in-your-accounts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Personalice las CloudFormation plantillas de AWS. | Cuando cree las subredes con AWS CloudFormation, personalice las plantillas para que usen los valores del almacén de parámetros que creó anteriormente.Para ver una plantilla de ejemplo, consulte el `vpc-example.yaml` archivo en el repositorio de [mapeo de zonas de disponibilidad de GitHub múltiples cuentas](https://github.com/aws-samples/multi-account-az-mapping/). | Arquitecto de la nube | 
| Implemente el VPCs. | Implemente las CloudFormation plantillas de AWS personalizadas en sus cuentas. Por lo tanto, cada VPC de la región tiene coherencia zonal en las zonas de disponibilidad utilizadas para las subredes | Arquitecto de la nube | 

## Recursos relacionados
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-resources"></a>
+ [Zona de disponibilidad IDs para sus recursos de AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) (documentación de AWS Resource Access Manager)
+ [AWS::EC2::Subnet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)( CloudFormation documentación de AWS)

# Utilice el usuario IDs en las políticas de IAM para el control de acceso y la automatización
<a name="use-user-ids-iam-policies-access-control-automation"></a>

*Srinivas Ananda Babu y Ram Kandaswamy, Amazon Web Services*

## Resumen
<a name="use-user-ids-iam-policies-access-control-automation-summary"></a>

Este patrón explica los posibles inconvenientes de usar políticas basadas en nombres de usuario en AWS Identity and Access Management la IAM, las ventajas de usar políticas basadas en el nombre de usuario y cómo integrar este IDs enfoque para la automatización. AWS CloudFormation 

En él Nube de AWS, el servicio de IAM le ayuda a gestionar las identidades de los usuarios y el control de acceso con precisión. Sin embargo, confiar en los nombres de usuario al crear las políticas de IAM puede provocar riesgos de seguridad imprevistos y problemas de control de acceso. Por ejemplo, considere este escenario: un empleado nuevo, John Doe, se une a su equipo y usted crea una cuenta de usuario de IAM con el nombre de usuario `j.doe`, lo que le concede permisos a través de las políticas de IAM que hacen referencia a los nombres de usuario. Cuando John deja la empresa, se elimina la cuenta. El problema comienza cuando una empleada nueva, Jane Doe, se une al equipo y se vuelve a crear el nombre de usuario `j.doe`. Las políticas existentes ahora conceden a Jane Doe los mismos permisos que a John Doe. Esto crea una pesadilla en materia de seguridad y cumplimiento.

La actualización manual de cada política para reflejar los detalles de los usuarios nuevos es un proceso lento y propenso a errores, especialmente a medida que la organización crece. La solución consiste en utilizar un ID de usuario único e inmutable. Al crear una cuenta de usuario de IAM, AWS asigna al usuario de IAM un ID de usuario único (o ID principal). Puede utilizar estos usuarios IDs en sus políticas de IAM para garantizar un control de acceso coherente y fiable que no se vea afectado por los cambios o la reutilización del nombre de usuario.

Por ejemplo, una política de IAM que utiliza un ID de usuario podría tener un aspecto similar al siguiente:

```
{ 
    "Version": "2012-10-17",		 	 	  
    "Statement": [ 
        { 
            "Effect": "Allow", 
            "Action": "s3:ListBucket", 
            "Resource": "arn:aws:s3:::example-bucket", 
            "Principal": { "AWS": "arn:aws:iam::123456789012:user/abcdef01234567890" } 
        } 
      ] 
}
```

Entre las ventajas de utilizar el usuario IDs en las políticas de IAM se incluyen las siguientes:
+ **Unicidad.** IDs Los usuarios son únicos en todos los ámbitos Cuentas de AWS, por lo que proporcionan una solicitud de permisos correcta y coherente.
+ **Inmutabilidad.** El usuario IDs no se puede cambiar, por lo que proporciona un identificador estable para hacer referencia a los usuarios en las políticas.
+ **Auditoría y conformidad.** Servicios de AWS suelen incluir al usuario IDs en los registros y registros de auditoría, lo que facilita el seguimiento de las acciones hasta usuarios específicos.
+ **Automatización e integración.** El uso de scripts IDs de AWS APIs automatización o de entrada de usuario garantiza que los procesos no se vean afectados por los cambios de nombre de usuario. SDKs
+ **Preparación para el futuro.** Utilizar el usuario IDs en las políticas desde el principio puede evitar posibles problemas de control de acceso o actualizaciones exhaustivas de las políticas.

**Automatización**

Cuando se utilizan herramientas de infraestructura como código (IaC) AWS CloudFormation, las dificultades de las políticas de IAM basadas en nombres de usuario pueden seguir causando problemas. El recurso de usuario de IAM devuelve el nombre de usuario cuando se llama a la función intrínseca `Ref`. A medida que la infraestructura de su organización evoluciona, el ciclo de creación y eliminación de recursos, tal como las cuentas de usuario de IAM, puede provocar problemas de control de acceso no deseados si se reutilizan los nombres de usuario.

Para solucionar este problema, te recomendamos que incorpores el usuario en tus plantillas. IDs CloudFormation Sin embargo, obtener IDs un usuario para este propósito puede resultar difícil. Aquí es donde los recursos personalizados pueden resultar útiles. Puede utilizar recursos CloudFormation personalizados para ampliar la funcionalidad del servicio mediante la integración con servicios externos AWS APIs o con otros. Al crear un recurso personalizado que obtenga el ID de usuario de un usuario de IAM determinado, puede hacer que el ID de usuario esté disponible en sus CloudFormation plantillas. Este enfoque agiliza el proceso de referencia al usuario IDs y garantiza que sus flujos de trabajo de automatización sigan siendo sólidos y estén preparados para el futuro.

## Requisitos previos y limitaciones
<a name="use-user-ids-iam-policies-access-control-automation-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Una función de IAM para que un administrador de la nube ejecute la plantilla CloudFormation 

**Limitaciones**
+ Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para conocer la disponibilidad de las regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para los puntos de conexión específicos, consulte la página [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

## Arquitectura
<a name="use-user-ids-iam-policies-access-control-automation-architecture"></a>

**Arquitectura de destino**

En el siguiente diagrama se muestra cómo se CloudFormation utiliza un recurso personalizado respaldado por AWS Lambda para recuperar el ID de usuario de IAM.

![\[Obtener el ID de usuario de IAM mediante un recurso CloudFormation personalizado.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/71698647-274e-4911-92f0-549e444b53f6/images/7e507df4-f597-499e-bd5b-6d7a55e64146.png)


**Automatización y escala**

Puedes usar la CloudFormation plantilla varias veces para diferentes Regiones de AWS cuentas. Debe ejecutarla solo una vez en cada región o cuenta.

## Tools (Herramientas)
<a name="use-user-ids-iam-policies-access-control-automation-tools"></a>

**Servicios de AWS**
+ [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html): AWS Identity and Access Management (IAM) es un servicio web que le ayuda a controlar de forma segura el acceso a los AWS recursos. Utilice IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)— le AWS CloudFormation ayuda a modelar y configurar sus AWS recursos para que pueda dedicar menos tiempo a gestionarlos y más tiempo a centrarse en las aplicaciones en las que se ejecutan. AWS Crea una plantilla que describe los AWS recursos que desea y CloudFormation se encarga de aprovisionar y configurar esos recursos por usted.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)— AWS Lambda es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. 

## Prácticas recomendadas
<a name="use-user-ids-iam-policies-access-control-automation-best-practices"></a>

Si está empezando desde cero o tiene prevista una implementación totalmente nueva, le recomendamos que utilice [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) para la administración centralizada de usuarios. El Centro de Identidad de IAM se integra con sus proveedores de identidad existentes (como Active Directory u Okta) para federar las identidades de los usuarios AWS, lo que elimina la necesidad de crear y administrar los usuarios de IAM directamente. Este enfoque no solo garantiza un control de acceso uniforme, sino que también simplifica la administración del ciclo de vida de los usuarios y ayuda a mejorar la seguridad y el cumplimiento en todo el entorno. AWS 

## Epics
<a name="use-user-ids-iam-policies-access-control-automation-epics"></a>

### Validación de permisos
<a name="validate-permissions"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide su función Cuenta de AWS y la de IAM. | Confirme que tiene un rol de IAM con permisos para implementar CloudFormation plantillas en su. Cuenta de AWSSi piensa utilizar la consola AWS CLI en lugar de la CloudFormation consola para implementar la plantilla en el último paso de este procedimiento, también debe configurar credenciales temporales para ejecutar AWS CLI comandos. Para obtener instrucciones, consulte la [documentación de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli). | Arquitecto de la nube | 

### Cree una CloudFormation plantilla
<a name="build-a-cfnshort-template"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea una CloudFormation plantilla. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html) | AWS DevOps, arquitecto de nube | 
| Agregue un parámetro de entrada para el nombre de usuario. | Añada el siguiente código a la `Parameters` sección de la CloudFormation plantilla:<pre>Parameters:<br />  NewIamUserName:<br />    Type: String<br />    Description: Unique username for the new IAM user<br /></pre>Este parámetro solicita al usuario el nombre de usuario. | AWS DevOps, arquitecto de nube | 
| Agregue un recurso personalizado para crear un usuario de IAM. | Añada el siguiente código a la `Resources` sección de la CloudFormation plantilla:<pre>Resources:<br />  rNewIamUser:<br />    Type: 'AWS::IAM::User'<br />    Properties:<br />      UserName: !Ref NewIamUserName<br /></pre>Este código añade un CloudFormation recurso que crea un usuario de IAM con el nombre proporcionado por el `NewIamUserName` parámetro. | AWS DevOps, arquitecto de nube | 
| Agregue un rol de ejecución para la función de Lambda. | En este paso, crea un rol de IAM que otorga un permiso a una AWS Lambda función para obtener el `UserId` IAM. Especifique los siguientes permisos mínimos necesarios para que Lambda se ejecute:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html)Para obtener instrucciones sobre cómo crear un rol de ejecución, consulte la [documentación de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Hará referencia a este rol en el paso siguiente, cuando cree la función de Lambda. | Administrador de AWS, arquitecto de la nube | 
| Agregue una función de Lambda para obtener el `UserId` de IAM único. | En este paso, se define una función de Lambda con un tiempo de ejecución de Python para obtener el `UserId` de IAM único. Para ello, añada el siguiente código a la `Resources` sección de la CloudFormation plantilla. Sustituya `<<ROLENAME>>` por el nombre del rol de ejecución que creó en el paso anterior.<pre>  GetUserLambdaFunction:<br />    Type: 'AWS::Lambda::Function'<br />    Properties:<br />      Handler: index.handler<br />      Role: <<ROLENAME>><br />      Timeout: 30<br />      Runtime: python3.11<br />      Code:<br />        ZipFile: |<br />          import cfnresponse, boto3<br />          def handler(event, context):<br />            try:<br />              print(event)<br />              user = boto3.client('iam').get_user(UserName=event['ResourceProperties']['NewIamUserName'])['User']<br />              cfnresponse.send(event, context, cfnresponse.SUCCESS, {'NewIamUserId': user['UserId'], 'NewIamUserPath': user['Path'], 'NewIamUserArn': user['Arn']})<br />            except Exception as e:<br />              cfnresponse.send(event, context, cfnresponse.FAILED, {'NewIamUser': str(e)})<br /></pre> | AWS DevOps, arquitecto de nube | 
| Agregue un recurso personalizado. | Añada el siguiente código a la `Resources` sección de la CloudFormation plantilla:<pre>  rCustomGetUniqueUserId:<br />    Type: 'Custom::rCustomGetUniqueUserIdWithLambda'<br />    Properties:<br />      ServiceToken: !GetAtt GetUserLambdaFunction.Arn<br />      NewIamUserName: !Ref NewIamUserName<br /></pre>Este recurso personalizado llama a la función de Lambda para obtener el `UserID` de IAM. | AWS DevOps, arquitecto de nube | 
| Defina CloudFormation los resultados. | Añada el siguiente código a la `Outputs` sección de la CloudFormation plantilla:<pre>Outputs:<br />  NewIamUserId:<br />    Value: !GetAtt rCustomGetUniqueUserId.NewIamUserId<br /></pre>Muestra el `UserID` de IAM del nuevo usuario de IAM. | AWS DevOps, arquitecto de nube | 
| Guarde la plantilla. | Guarde los cambios en la CloudFormation plantilla. | AWS DevOps, arquitecto de nube | 

### Implemente la CloudFormation plantilla
<a name="deploy-the-cfnshort-template"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la CloudFormation plantilla. | Para implementar la `get_unique_user_id.yaml` plantilla mediante la CloudFormation consola, siga las instrucciones de la [CloudFormation documentación](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).Como alternativa, puede ejecutar el siguiente AWS CLI comando para implementar la plantilla:<pre>aws cloudformation create-stack \<br />--stack-name DemoNewUser \<br />--template-body file://get_unique_user_id.yaml \<br />--parameters ParameterKey=NewIamUserName,ParameterValue=demouser \<br />--capabilities CAPABILITY_NAMED_IAM</pre> | AWS DevOps, arquitecto de nube | 

## Recursos relacionados
<a name="use-user-ids-iam-policies-access-control-automation-resources"></a>
+ [Cree una pila desde la CloudFormation consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentación)
+ [Recursos personalizados respaldados por Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html) (documentación) CloudFormation 
+ [Identificadores únicos](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) (documentación de IAM)
+ [Utilice credenciales temporales con los AWS recursos (documentación de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html))

# Validar Account Factory para el código Terraform (AFT) localmente
<a name="validate-account-factory-for-terraform-aft-code-locally"></a>

*Alexandru Pop y Michal Gorniak, Amazon Web Services*

## Resumen
<a name="validate-account-factory-for-terraform-aft-code-locally-summary"></a>

Este patrón muestra cómo probar localmente el código de HashiCorp Terraform administrado por AWS Control Tower Account Factory for Terraform (AFT). Terraform es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube. AFT configura una canalización de Terraform que le ayuda a aprovisionar y personalizar múltiples entradas. Cuentas de AWS AWS Control Tower

Durante el desarrollo del código, puede resultar útil probar su infraestructura de Terraform como código (IaC) a nivel local, fuera de la canalización de AFT. Este ejemplo muestra cómo hacer lo siguiente:
+ Recupere una copia local del código de Terraform que está almacenado en los AWS CodeCommit repositorios de su cuenta de administración de AFT.
+ Simule la canalización de AFT de forma local con el código recuperado.

Este procedimiento también se puede utilizar para ejecutar comandos de Terraform que no forman parte de la canalización AFT normal. Por ejemplo, puede usar este método para ejecutar comandos como `terraform validate`, `terraform plan`, `terraform destroy`, y`terraform import`.

## Requisitos previos y limitaciones
<a name="validate-account-factory-for-terraform-aft-code-locally-prereqs"></a>

**Requisitos previos **
+ Un entorno activo de AWS múltiples cuentas que utiliza [AWS Control Tower](https://aws.amazon.com/controltower)
+ Un [entorno AFT](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) completamente implementado
+ AWS Command Line Interface [(AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [AWS CLI asistente de credenciales para AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html), instalado y configurado
+ Python 3.x
+ [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), instalado y configurado en su equipo local
+ Utilidad de `git-remote-commit` [instalada and configurada](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html#setting-up-git-remote-codecommit-install)
+ [Terraform](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS), instalado y configurado (la versión local del paquete Terraform debe coincidir con la versión que se utiliza en la implementación de AFT)

**Limitaciones**
+ Este patrón no cubre los pasos de implementación necesarios para AWS Control Tower el AFT o cualquier módulo específico de Terraform.
+ El resultado que se genera localmente durante este procedimiento no se guarda en los registros de tiempo de ejecución de AFT Pipeline.

## Arquitectura
<a name="validate-account-factory-for-terraform-aft-code-locally-architecture"></a>

**Pila de tecnología de destino**
+ Infraestructura AFT implementada dentro de una AWS Control Tower implementación
+ Terraform
+ Git
+ AWS CLI versión 2

**Automatización y escala**

Este patrón muestra cómo invocar localmente el código de Terraform para las personalizaciones de cuentas globales de AFT en una sola cuenta administrada por AFT. Cuenta de AWS Una vez validado el código de Terraform, puede aplicarlo al resto de las cuentas de su entorno de múltiples cuentas. Para obtener más información, consulte [Volver](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations) a invocar las personalizaciones en la documentación. AWS Control Tower 

También puede usar un proceso similar para ejecutar las personalizaciones de la cuenta AFT en una terminal local. Para invocar localmente el código de Terraform desde las personalizaciones de la cuenta AFT, clone el **aft-account-customizations**repositorio en lugar del **aft-global-account-customizations**repositorio desde CodeCommit su cuenta de administración de AFT.

## Tools (Herramientas)
<a name="validate-account-factory-for-terraform-aft-code-locally-tools"></a>

**Servicios de AWS**
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)le ayuda a configurar y gobernar un entorno de AWS cuentas múltiples, siguiendo las mejores prácticas prescriptivas.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que te ayuda a interactuar Servicios de AWS mediante los comandos de tu shell de línea de comandos.

**Otros servicios**
+ [HashiCorp Terraform](https://www.terraform.io/docs) es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube.
+ [Git](https://git-scm.com/docs) es un sistema de control de versiones distribuido y de código abierto.

**Código**

El siguiente es un ejemplo de un script bash que se puede usar para ejecutar localmente el código de Terraform administrado por AFT. Para usar el script, siga las instrucciones de la sección [Epics](#validate-account-factory-for-terraform-aft-code-locally-epics) de este patrón.

```
#! /bin/bash
# Version: 1.1 2022-06-24 Unsetting AWS_PROFILE since, when set, it interferes with script operation
#          1.0 2022-02-02 Initial Version
#
# Purpose: For use with AFT: This script runs the local copy of TF code as if it were running within AFT pipeline.
#        * Facilitates testing of what the AFT pipline will do 
#           * Provides the ability to run terraform with custom arguments (like 'plan' or 'move') which are currently not supported within the pipeline.
#
# © 2021 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.
# This AWS Content is provided subject to the terms of the AWS Customer Agreement
# available at http://aws.amazon.com/agreement or other written agreement between
# Customer and either Amazon Web Services, Inc. or Amazon Web Services EMEA SARL or both.
#
# Note: Arguments to this script are passed directly to 'terraform' without parsing nor validation by this script.
#
# Prerequisites:
#    1. local copy of ct GIT repositories
#    2. local backend.tf and aft-providers.tf filled with data for the target account on which terraform is to be run
#       Hint: The contents of above files can be obtain from the logs of a previous execution of the AFT pipeline for the target account.
#    3. 'terraform' binary is available in local PATH
#    4. Recommended: .gitignore file containing 'backend.tf', 'aft_providers.tf' so the local copy of these files are not pushed back to git

readonly credentials=$(aws sts assume-role \
    --role-arn arn:aws:iam::$(aws sts get-caller-identity --query "Account" --output text ):role/AWSAFTAdmin \
    --role-session-name AWSAFT-Session \
    --query Credentials )

unset AWS_PROFILE
export AWS_ACCESS_KEY_ID=$(echo $credentials | jq -r '.AccessKeyId')
export AWS_SECRET_ACCESS_KEY=$(echo $credentials | jq -r '.SecretAccessKey')
export AWS_SESSION_TOKEN=$(echo $credentials | jq -r '.SessionToken')
terraform "$@"
```

## Epics
<a name="validate-account-factory-for-terraform-aft-code-locally-epics"></a>

### Guardar el código de ejemplo como un archivo local
<a name="save-the-example-code-as-a-local-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Guardar el código de ejemplo como un archivo local. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador de AWS | 
| Haga que el código de ejemplo sea ejecutable. | Abra una ventana de terminal y autentifíquese en su cuenta de administración de AWS AFT realizando una de las siguientes acciones:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)Es posible que su organización también tenga una herramienta personalizada para proporcionar credenciales de autenticación a su AWS entorno. | Administrador de AWS | 
| Verifique el acceso a la cuenta de administración de AFT en la Región de AWS correcta. | Asegúrese de utilizar la misma sesión de terminal con la que se autenticó en su cuenta de administración de AFT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador de AWS | 
| Crear un nuevo directorio local para almacenar el código del repositorio de AFT. | En la misma sesión de terminal, ejecute los siguientes comandos:<pre>mkdir my_aft <br />cd my_aft</pre> | Administrador de AWS | 
| Clone el código del repositorio AFT remoto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador de AWS | 

### Cree los archivos de configuración de Terraform necesarios para que la canalización AFT se ejecute localmente
<a name="create-the-terraform-configuration-files-required-for-the-aft-pipeline-to-run-locally"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Abra una canalización AFT previamente ejecutada y copie los archivos de configuración de Terraform en una carpeta local. | Los archivos de configuración `backend.tf` y `aft-providers.tf` que se crean en esta epic son necesarios para que la canalización de AFT se ejecute localmente. Estos archivos se crean automáticamente dentro de la canalización de AFT basada en la nube, pero deben crearse manualmente para que la canalización se ejecute localmente. La ejecución local de la canalización de AFT requiere un conjunto de archivos que represente la ejecución de la canalización en una sola Cuenta de AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)**Ejemplo de instrucción backend.tf generada automáticamente**<pre>## Autogenerated backend.tf ##<br />## Updated on: 2022-05-31 16:27:45 ##<br />terraform {<br />  required_version = ">= 0.15.0"<br />  backend "s3" {<br />    region         = "us-east-2"<br />    bucket         = "aft-backend-############-primary-region"<br />    key            = "############-aft-global-customizations/terraform.tfstate"<br />    dynamodb_table = "aft-backend-############"<br />    encrypt        = "true"<br />    kms_key_id     = "########-####-####-####-############"<br />    role_arn       = "arn:aws:iam::#############:role/AWSAFTExecution"<br />  }<br />}</pre>****Los `aft-providers.tf` archivos `backend.tf` y están vinculados a una implementación y una carpeta específicas Cuenta de AWS de AFT. Estos archivos también son diferentes, dependiendo de si están en el **aft-account-customizations**repositorio **aft-global-customizations**y dentro de la misma implementación de AFT. Asegúrese de generar ambos archivos a partir de la misma lista de tiempo de ejecución. | Administrador de AWS | 

### Ejecute la canalización AFT localmente mediante el script bash de ejemplo
<a name="run-the-aft-pipeline-locally-by-using-the-example-bash-script"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente los cambios de configuración de Terraform que desee validar. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador de AWS | 
| Ejecute el script `ct_terraform.sh` y revise el resultado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)** **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador de AWS | 

### Devolución de los cambios de código local al repositorio de AFT
<a name="push-your-local-code-changes-back-to-the-aft-repository"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Agregue referencias a los archivos `backend.tf` y `aft-providers.tf` a un archivo `.gitignore`. | Añada los archivos `backend.tf`** **y `aft-providers.tf` que creó a un archivo `.gitignore` ejecutando los siguientes comandos:<pre>echo backend.tf >> .gitignore<br />echo aft-providers.tf >>.gitignore</pre>Al mover los archivos al archivo `.gitignore`****, se garantiza que no se confirmen ni se devuelvan al repositorio de AFT remoto. | Administrador de AWS | 
| Confirme y envíe los cambios de código al repositorio AFT remoto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)Los cambios de código que introduzca siguiendo este procedimiento hasta ese momento se aplicarán Cuenta de AWS únicamente a uno de ellos. | Administrador de AWS | 

### Implementación de los cambios en varias cuentas
<a name="roll-out-the-changes-to-multiple-accounts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente los cambios en todas sus cuentas administradas por AFT. | Para implementar los cambios en varios Cuentas de AWS gestionados por AFT, siga las instrucciones de la documentación sobre cómo [volver a invocar las personalizaciones](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations). AWS Control Tower  | Administrador de AWS | 

# Más patrones
<a name="infrastructure-more-patterns-pattern-list"></a>

**Topics**
+ [Agregue HA a Oracle PeopleSoft en Amazon RDS Custom mediante una réplica de lectura](add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.md)
+ [Audite automáticamente los grupos de AWS seguridad que permiten el acceso desde direcciones IP públicas](audit-security-groups-access-public-ip.md)
+ [Automatice la creación de cuentas mediante el acelerador de zonas de aterrizaje en AWS](automate-account-creation-lza.md)
+ [Automatice la adición o actualización de entradas de registro de Windows con AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.md)
+ [Automatice la evaluación de recursos de AWS](automate-aws-resource-assessment.md)
+ [Automatice la implementación de productos y la cartera de AWS Service Catalog mediante AWS CDK](automate-aws-service-catalog-portfolio-and-product-deployment-by-using-aws-cdk.md)
+ [Automatización de la conmutación por error y la conmutación por recuperación entre regiones mediante DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatice la eliminación de AWS CloudFormation pilas y recursos asociados](automate-deletion-cloudformation-stacks-associated-resources.md)
+ [Automatización de la ingesta y visualización de métricas personalizadas de Amazon MWAA en Amazon Managed Grafana mediante Terraform](automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.md)
+ [Automatizar la configuración de RabbitMQ en Amazon MQ](automate-rabbitmq-configuration-in-amazon-mq.md)
+ [Automatice la implementación de lagos de AWS Supply Chain datos en una configuración de múltiples repositorios](automate-the-deployment-of-aws-supply-chain-data-lakes.md)
+ [Automatice la replicación de las instancias de Amazon RDS en Cuentas de AWS](automate-the-replication-of-amazon-rds-instances-across-aws-accounts.md)
+ [Adjunte automáticamente una política gestionada por AWS para Systems Manager a los perfiles de EC2 instancia mediante Cloud Custodian y AWS CDK](automatically-attach-an-aws-managed-policy-for-systems-manager-to-ec2-instance-profiles-using-cloud-custodian-and-aws-cdk.md)
+ [Cree CI/CD canalizaciones y clústeres de Amazon ECS de forma automática para microservicios mediante AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.md)
+ [Detecta automáticamente los cambios e inicia diferentes CodePipeline canalizaciones para un monorepo en CodeCommit](automatically-detect-changes-and-initiate-different-codepipeline-pipelines-for-a-monorepo-in-codecommit.md)
+ [Cree una canalización de datos para incorporar, transformar y analizar los datos de Google Analytics con el kit de AWS DataOps desarrollo](build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.md)
+ [Cree un PAC de servidor empresarial Micro Focus con Amazon EC2 Auto Scaling y Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Cree e inserte imágenes de Docker en Amazon ECR mediante GitHub Actions y Terraform](build-and-push-docker-images-to-amazon-ecr-using-github-actions-and-terraform.md)
+ [Construye una AWS landing zone que incluya MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Centralización de la administración de claves de acceso de IAM en AWS Organizations mediante Terraform](centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.md)
+ [Centralización de la distribución de paquetes de software en AWS Organizations mediante Terraform](centralize-software-package-distribution-in-aws-organizations-by-using-terraform.md)
+ [Configure el registro de invocación de modelos en Amazon Bedrock mediante AWS CloudFormation](configure-bedrock-invocation-logging-cloudformation.md)
+ [Configurar el enrutamiento de solo lectura en los grupos de disponibilidad de Always On en SQL Server on AWS](configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.md)
+ [Cree un portal para microinterfaces mediante Angular AWS Amplify y Module Federation](create-amplify-micro-frontend-portal.md)
+ [Cree un marco de orquestación de recursos basado en API con GitHub Actions y Terragrunt](create-an-api-driven-resource-orchestration-framework-using-github-actions-and-terragrunt.md)
+ [Crear una EventBridge conexión entre cuentas de Amazon en una organización](create-cross-account-amazon-eventbridge-connection-organization.md)
+ [Crear automáticamente canalizaciones de CI dinámicas para proyectos de Java y Python](create-dynamic-ci-pipelines-for-java-and-python-projects-automatically.md)
+ [Implemente una API de Amazon API Gateway en un sitio web interno mediante puntos de conexión privados y un Equilibrador de carga de aplicación](deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.md)
+ [Implemente y gestione AWS Control Tower los controles mediante el uso AWS CDK y CloudFormation](deploy-and-manage-aws-control-tower-controls-by-using-aws-cdk-and-aws-cloudformation.md)
+ [Implemente y gestione AWS Control Tower controles mediante Terraform](deploy-and-manage-aws-control-tower-controls-by-using-terraform.md)
+ [Despliega canarios de CloudWatch Synthetics con Terraform](deploy-cloudwatch-synthetics-canaries-by-using-terraform.md)
+ [Implemente un clúster de CockroachDB en Amazon EKS mediante Terraform](deploy-cockroachdb-on-eks-using-terraform.md)
+ [Implementación de un sistema de archivos de Lustre para un procesamiento de datos de alto rendimiento mediante Terraform y DRA](deploy-lustre-file-system-for-high-performance-data-processing-with-terraform-dra.md)
+ [Implemente un caso de uso de RAG AWS mediante Terraform y Amazon Bedrock](deploy-rag-use-case-on-aws.md)
+ [Despliega recursos en una AWS Wavelength zona mediante Terraform](deploy-resources-wavelength-zone-using-terraform.md)
+ [Implemente instancias de clústeres de conmutación por error de SQL Server en Amazon EC2 y Amazon FSx mediante Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Implemente las automatizaciones de seguridad para la AWS WAF solución mediante Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Detección de las instancias de bases de datos de Amazon RDS y Aurora que tienen certificados CA vencidos](detect-rds-instances-expiring-certificates.md)
+ [Documentación del diseño de su AWS Landing Zone](document-your-aws-landing-zone-design.md)
+ [Exportar los informes de AWS Backup de toda la organización en AWS Organizations como un archivo CSV](export-aws-backup-reports-from-across-an-organization-in-aws-organizations-as-a-csv-file.md)
+ [Genere recomendaciones personalizadas y reclasificadas con Amazon Personalize](generate-personalized-and-re-ranked-recommendations-using-amazon-personalize.md)
+ [Control de los conjuntos de permisos para varias cuentas mediante Account Factory for Terraform](govern-permission-sets-aft.md)
+ [Identifique y avise cuando los recursos de Amazon Data Firehose no estén cifrados con una clave AWS KMS](identify-and-alert-when-amazon-data-firehose-resources-are-not-encrypted-with-an-aws-kms-key.md)
+ [Implementación del Generador de cuentas para Terraform (AFT) mediante una canalización de arranque](implement-account-factory-for-terraform-aft-by-using-a-bootstrap-pipeline.md)
+ [Implementación del control de versiones de API basado en rutas mediante dominios personalizados en Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.md)
+ [Instalación del agente SSM en los nodos de trabajo de Amazon EKS mediante Kubernetes DaemonSet](install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset.md)
+ [Instale el agente SSM y el CloudWatch agente en los nodos de trabajo de Amazon EKS mediante preBootstrapCommands](install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands.md)
+ [Administre los conjuntos de AWS IAM Identity Center permisos como código mediante AWS CodePipeline](manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.md)
+ [Administre los conjuntos de AWS permisos de forma dinámica mediante Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Administre los productos de AWS Service Catalog en varias cuentas y regiones de AWS](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Gestión de las aplicaciones de contenedores en las instalaciones mediante la configuración de Amazon ECS Anywhere con AWS CDK](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Gestione AWS Organizations las políticas como código mediante AWS CodePipeline Amazon Bedrock](manage-organizations-policies-as-code.md)
+ [Migración de registros DNS de forma masiva a una zona alojada privada de Amazon Route 53](migrate-dns-records-in-bulk-to-an-amazon-route-53-private-hosted-zone.md)
+ [Migre Oracle PeopleSoft a Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migración de los sistemas BYOL de RHEL a instancias con licencia incluida de AWS mediante AWS MGN](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Supervise ElastiCache los clústeres de Amazon para comprobar el cifrado en reposo](monitor-amazon-elasticache-clusters-for-at-rest-encryption.md)
+ [Supervise la actividad de las aplicaciones mediante CloudWatch Logs Insights](monitor-application-activity-by-using-cloudwatch-logs-insights.md)
+ [Supervisión de los clústeres de SAP RHEL Pacemaker mediante los servicios de AWS](monitor-sap-rhel-pacemaker-clusters-by-using-aws-services.md)
+ [Cree una arquitectura IPAM jerárquica y multirregional mediante Terraform AWS](multi-region-ipam-architecture.md)
+ [Optimice las implementaciones sin servidor con varias cuentas mediante los flujos de trabajo y Actions AWS CDK GitHub](optimize-multi-account-serverless-deployments.md)
+ [AWS Service Catalog Aprovisione productos en función de AWS CloudFormation plantillas mediante GitHub acciones](provision-aws-service-catalog-products-using-github-actions.md)
+ [Aprovisionamiento de roles de IAM con privilegio mínimo mediante la implementación de una solución de máquina expendedora de roles](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)
+ [Elimine EC2 las entradas de Amazon Cuentas de AWS de un lado a otro AWS Managed Microsoft AD mediante AWS Lambda la automatización](remove-amazon-ec2-entries-across-aws-accounts-from-aws-managed-microsoft-ad.md)
+ [Elimine EC2 las entradas de Amazon en el mismo Cuenta de AWS AWS Managed Microsoft AD formulario mediante AWS Lambda la automatización](remove-amazon-ec2-entries-in-the-same-aws-account-from-aws-managed-microsoft-ad.md)
+ [Proteja las transferencias de archivos mediante Transfer Family, Amazon Cognito y GuardDuty](secure-file-transfers.md)
+ [Enviar una notificación cuando se cree un usuario de IAM](send-a-notification-when-an-iam-user-is-created.md)
+ [Configuración de un router de celdas sin servidor para una arquitectura basada en celdas](serverless-cell-router-architecture.md)
+ [Configure una CI/CD canalización para cargas de trabajo híbridas en Amazon ECS Anywhere mediante AWS CDK y GitLab](set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.md)
+ [Configure una HA/DR arquitectura para Oracle E-Business Suite en Amazon RDS Custom con una base de datos en espera activa](set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database.md)
+ [Configurar la resolución de DNS para redes híbridas en un entorno de cuentas múltiples AWS](set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.md)
+ [Configure una infraestructura Multi-AZ para una FCI Always On de SQL Server mediante Amazon FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)
+ [Configure la funcionalidad UTL\$1FILE de Oracle en Aurora compatible con PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Simplificación de la autenticación de aplicaciones con TLS mutuo en Amazon ECS mediante el equilibrador de carga de aplicación](simplify-application-authentication-with-mutual-tls-in-amazon-ecs.md)
+ [Simplifique la administración de certificados privados mediante AWS Private CA y AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.md)
+ [Optimice los flujos de trabajo de aprendizaje automático desde el desarrollo local hasta los experimentos escalables mediante el uso de SageMaker IA e Hydra](streamline-machine-learning-workflows-by-using-amazon-sagemaker.md)
+ [Etiquete automáticamente las conexiones de puerta de enlace de tránsito con AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Funciones de transición para una PeopleSoft aplicación de Oracle en Amazon RDS Custom for Oracle](transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.md)
+ [Uso de Amazon Q Developer como asistente de codificación para aumentar la productividad](use-q-developer-as-coding-assistant-to-increase-productivity.md)