

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Topics**
+ [Acesse um bastion host usando o Session Manager e o Amazon EC2 Instance Connect](access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.md)
+ [Centralize a resolução de DNS usando o Microsoft AWS Managed Microsoft AD Active Directory local](centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.md)
+ [Centralize o monitoramento usando o Amazon CloudWatch Observability Access Manager](centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.md)
+ [Verifique as EC2 instâncias para ver as tags obrigatórias no lançamento](check-ec2-instances-for-mandatory-tags-at-launch.md)
+ [Limpe os recursos AWS do Account Factory for Terraform (AFT) com segurança após a perda do arquivo de estado](clean-up-aft-resources-safely-after-state-file-loss.md)
+ [Crie um pipeline em regiões da AWS que não oferecem suporte à AWS CodePipeline](create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.md)
+ [Personalize os nomes das funções padrão usando AWS CDK aspectos e escotilhas de escape](customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.md)
+ [Implemente um cluster Cassandra na Amazon EC2 com estática privada IPs para evitar o reequilíbrio](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Estenda VRFs para a AWS usando o AWS Transit Gateway Connect](extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.md)
+ [Receber notificações do Amazon SNS quando o estado de chave de uma chave do AWS KMS mudar](get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.md)
+ [Preserve o espaço IP roteável em projetos de VPC com várias contas para sub-redes sem workload](preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets.md)
+ [Provisione um produto Terraform AWS Service Catalog usando um repositório de código](provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.md)
+ [Registre vários Contas da AWS com um único endereço de e-mail usando o Amazon SES](register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.md)
+ [Configure a resolução de DNS para redes híbridas em um ambiente de conta única da AWS](set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment.md)
+ [Configure bots de UiPath RPA automaticamente na Amazon EC2 usando a AWS CloudFormation](set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.md)
+ [Configure uma PeopleSoft arquitetura altamente disponível na AWS](set-up-a-highly-available-peoplesoft-architecture-on-aws.md)
+ [Configure a recuperação de desastres para o Oracle JD Edwards com o EnterpriseOne AWS Elastic Disaster Recovery](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Configure a detecção de CloudFormation desvios em uma organização multirregional e com várias contas](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Importe com sucesso um bucket do S3 como uma pilha da AWS CloudFormation](successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.md)
+ [Sincronize dados entre sistemas de arquivos Amazon EFS em diferentes regiões da AWS usando a AWS DataSync](synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.md)
+ [Teste a AWS infraestrutura usando LocalStack e Terraform Tests](test-aws-infra-localstack-terraform.md)
+ [Atualize os clusters do SAP Pacemaker de para ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Use zonas de disponibilidade consistentes VPCs em diferentes contas da AWS](use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.md)
+ [Use o usuário IDs nas políticas do IAM para controle de acesso e automação](use-user-ids-iam-policies-access-control-automation.md)
+ [Valide o código do Account Factory for Terraform (AFT) localmente](validate-account-factory-for-terraform-aft-code-locally.md)
+ [Mais padrões](infrastructure-more-patterns-pattern-list.md)

# Acesse um bastion host usando o Session Manager e o Amazon EC2 Instance Connect
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect"></a>

*Piotr Chotkowski e Witold Kowalik, Amazon Web Services*

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

Um *bastion host*, às vezes chamado de *jump box*, é um servidor que fornece um único ponto de acesso de uma rede externa aos recursos localizados em uma rede privada. Um servidor exposto a uma rede pública externa, como a Internet, representa um potencial risco de segurança para acesso não autorizado. É importante proteger e controlar o acesso a esses servidores.

Esse padrão descreve como você pode usar o [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) e o [Amazon EC2 Instance Connect para se conectar](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) com segurança a um host bastion do Amazon Elastic Compute Cloud (Amazon EC2) implantado em seu. Conta da AWS O Gerenciador de Sessões é um recurso de AWS Systems Manager. Os benefícios desse padrão incluem:
+ O bastion host implantado não tem nenhuma porta de entrada aberta exposta à Internet pública. Isso reduz a superfície de ataque potencial.
+ Você não precisa armazenar e manter chaves Secure Shell (SSH) de longo prazo no seu Conta da AWS. Em vez disso, cada usuário gera um novo par de chaves SSH sempre que se conecta ao bastion host. AWS Identity and Access Management As políticas (IAM) anexadas às AWS credenciais do usuário controlam o acesso ao bastion host.

**Público-alvo**

Esse padrão é destinado a leitores com experiência com conhecimento básico da Amazon EC2, Amazon Virtual Private Cloud (Amazon VPC) e Hashicorp Terraform.

## Pré-requisitos e limitações
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ AWS Command Line Interface (AWS CLI) versão 2, [instalada](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) e [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ Plugin do Gerenciador de Sessões para o AWS CLI, [instalado](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
+ CLI do Terraform, [instalado](https://developer.hashicorp.com/terraform/cli)
+ Armazenamento para o [estado](https://developer.hashicorp.com/terraform/language/state) do Terraform, como um bucket do Amazon Simple Storage Service (Amazon S3) e uma tabela do Amazon DynamoDB que serve como backend remoto para armazenar o estado do Terraform. Para obter mais informações sobre o uso de backends remotos para o estado do Terraform, consulte [Amazon S3 Backends](https://www.terraform.io/language/settings/backends/s3) (documentação do Terraform). Para uma amostra de código que configura o gerenciamento remoto do estado com um back-end do Amazon S3, consulte [remote-state-s3-back-end](https://registry.terraform.io/modules/nozaq/remote-state-s3-backend/aws/latest) (Terraform Registry). Observe os seguintes requisitos:
  + As tabelas do DynamoDB e do bucket do Amazon S3 devem estar na mesma Região da AWS.
  + Ao criar a tabela do DynamoDB, a chave de partição deve ser `LockID` (com distinção entre maiúsculas e minúsculas) e o tipo de chave de partição deve ser `String`. Todas as outras configurações devem estar em seus valores predefinidos. Para obter mais informações, consulte [Sobre chaves primárias](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) e [Criar uma tabela](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html) na documentação do DynamoDB.
+ Um SSH cliente, instalado

**Limitações**
+ Esse padrão serve como uma prova de conceito (PoC) ou como base para um maior desenvolvimento. Ele não deve ser usado na sua forma atual em ambientes de produção. Antes da implantação, ajuste o código de amostra no repositório para atender aos seus requisitos e ao seu caso de uso.
+ Esse padrão pressupõe que o bastion host de destino usa o Amazon Linux 2 como seu sistema operacional. Embora seja possível usar outras Amazon Machine Images (AMIs), outros sistemas operacionais estão fora do escopo desse padrão.
**nota**  
O Amazon Linux 2 está se aproximando do fim do suporte. Para obter mais informações, consulte o [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).
+ Nesse padrão, o bastion host está localizado em uma sub-rede privada sem um gateway NAT e um gateway da internet. Esse design isola a EC2 instância da Amazon da Internet pública. Você pode adicionar uma configuração de rede específica que permita a comunicação com a internet. Para obter mais informações, consulte [Conectar sua VPC a outras redes](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) na documentação do Amazon VPC. Da mesma forma, seguindo o [princípio do privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), o host bastion não tem acesso a nenhum outro recurso em seu, a Conta da AWS menos que você conceda permissões explicitamente. Para obter mais informações, consulte [Políticas baseadas em recurso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) na documentação do IAM.

**Versões do produto**
+ AWS CLI versão 2
+ Terraform versão 1.3.9

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

**Pilha de tecnologias de destino**
+ Uma VPC com uma única sub-rede privada.
+ Os seguintes [endpoints da VPC de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html):
  + `amazonaws.<region>.ssm`— O endpoint do AWS Systems Manager serviço.
  + `amazonaws.<region>.ec2messages`: o Systems Manager usa esse endpoint para fazer chamadas do SSM Agent para o serviço do Systems Manager.
  + `amazonaws.<region>.ssmmessages`— O Session Manager usa esse endpoint para se conectar à sua EC2 instância Amazon por meio de um canal de dados seguro.
+ Uma EC2 instância `t3.nano` da Amazon executando o Amazon Linux 2
+ Perfil do IAM de perfil de instância
+ Grupos de segurança da Amazon VPC e regras de grupos de segurança para os endpoints e a instância da Amazon EC2 

**Arquitetura de destino**

![\[Diagrama de arquitetura do uso do Session Manager para acessar um bastion host.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/a02aed20-1852-4c91-902f-f553795006e2/images/819c503b-7eec-4a9c-862b-b87107d50dc1.png)


O diagrama mostra o seguinte processo:

1. O usuário assume um perfil do IAM que tem permissões para fazer o seguinte:
   + Autentique, autorize e conecte-se à instância da Amazon EC2 
   + Iniciar a sessão com o Session Manager

1. O usuário inicia uma sessão SSH por meio do Session Manager.

1. O Session Manager autentica o usuário, verifica as permissões nas políticas do IAM associadas, verifica as configurações e envia uma mensagem ao SSM Agent para abrir uma conexão bidirecional.

1. O usuário envia a chave pública SSH para o Bastion Host por meio de metadados da Amazon. EC2 Isso deve ser feito antes de cada conexão. A chave pública SSH permanece disponível por 60 segundos.

1. O bastion host se comunica com os endpoints VPC da interface para Systems Manager e Amazon. EC2

1. O usuário acessa o bastion host por meio do Session Manager usando um canal de comunicação bidirecional criptografado TLS 1.2.

**Automação e escala**

As opções a seguir estão disponíveis para automatizar a implantação ou escalar essa arquitetura:
+ Você pode implantar a arquitetura por meio de um pipeline de integração contínua e entrega contínua (CI/CD).
+ Você pode modificar o código para alterar o tipo de instância do bastion host.
+ Você pode modificar o código para implantar vários bastion hosts. No arquivo `bastion-host/main.tf`, no bloco de recursos `aws_instance`, adicione o meta-argumento `count`. Para obter mais informações, consulte a [documentação do Terraform](https://developer.hashicorp.com/terraform/language/meta-arguments/count).

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

**Serviços da AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ajuda você a gerenciar suas aplicações e infraestrutura em execução na Nuvem AWS. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança em grande escala. Esse padrão usa o [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html), um atributo do Systems Manager.
+ [A Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.

**Outras ferramentas**
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. Esse padrão usa o [Terraform CLI](https://developer.hashicorp.com/terraform/cli).

**Repositório de código**

O código desse padrão está disponível no GitHub [Access a bastion host usando o Session Manager e o repositório Amazon EC2 Instance Connect](https://github.com/aws-samples/secured-bastion-host-terraform).

## Práticas recomendadas
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-best-practices"></a>
+ Recomendamos o uso de ferramentas automatizadas de verificação de código para melhorar a segurança e a qualidade do código. Esse padrão foi verificado usando o [Checkov](https://www.checkov.io/), uma ferramenta estática de análise de código para IaC. No mínimo, recomendamos que você execute verificações básicas de validação e formatação usando os comandos `terraform validate` e `terraform fmt -check -recursive` do Terraform.
+ É uma boa prática adicionar testes automatizados para IaC. Para obter mais informações sobre as diferentes abordagens para testar o código do Terraform, consulte [Testando o HashiCorp Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform) (postagem no blog do Terraform).
+ Durante a implantação, o Terraform usa a EC2 instância substituta da Amazon sempre que uma nova versão do [Amazon Linux 2 AMI](https://aws.amazon.com/marketplace/pp/prodview-zc4x2k7vt6rpu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) é detectada. Isso implanta a nova versão do sistema operacional, incluindo patches e atualizações. Se a programação de implantação não for frequente, isso pode representar um risco de segurança porque a instância não tem os patches mais recentes. É importante atualizar e aplicar patches de segurança com frequência às EC2 instâncias implantadas da Amazon. Para obter mais informações, consulte [Gerenciamento de atualizações na Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/update-management.html).
+ Como esse padrão é uma prova de conceito, ele usa políticas AWS gerenciadas, como`AmazonSSMManagedInstanceCore`. AWS as políticas gerenciadas abrangem casos de uso comuns, mas não concedem permissões de privilégios mínimos. Conforme necessário para seu caso de uso, recomendamos que você crie políticas personalizadas que concedam permissões de privilégio mínimo para os recursos implantados nessa arquitetura. Para obter mais informações, consulte [Comece a usar políticas AWS gerenciadas e adote as permissões de privilégios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies).
+ Use uma senha para proteger o acesso às chaves SSH e armazenar as chaves em um local seguro.
+ Configure o registro em log e o monitoramento do bastion host. O registro em log e o monitoramento são partes importantes da manutenção de sistemas, tanto do ponto de vista operacional quanto de segurança. Há várias maneiras de monitorar conexões e atividades em seu bastion host. Para obter mais informações, consulte os tópicos a seguir na documentação do Systems Manager.
  + [Monitoramento AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring.html)
  + [Registro e monitoramento em AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/logging-and-monitoring.html)
  + [Auditar a atividade da sessão](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-auditing.html)
  + [Registrar a atividade de sessão de registro em log](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)

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

### Implantar os recursos
<a name="deploy-the-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps engenheiro, Desenvolvedor | 
| Iniciar o diretório de trabalho do Terraform. | Essa etapa é necessária somente para a primeira implantação. Se você estiver reimplantando o padrão, pule para a próxima etapa.No diretório raiz do repositório clonado, insira o seguinte comando, onde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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>Como alternativa, você pode abrir o arquivo **config.tf** e, na seção `terraform`, fornecer manualmente esses valores. | DevOps engenheiro, desenvolvedor, Terraform | 
| Implantar os recursos | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps engenheiro, desenvolvedor, Terraform | 

### Configurar o ambiente local
<a name="set-up-the-local-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a conexão do SSH. | Atualize o arquivo de configuração do SSH para permitir conexões do SSH através do Session Manager. Para obter instruções, consulte [Permitir conexões do SSH para o Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable). Isso permite que usuários autorizados insiram um comando proxy que inicia uma sessão do Session Manager e transfere todos os dados por meio de uma conexão bidirecional. | DevOps engenheiro | 
| Gerar as chaves SSH. | Insira o seguinte comando para gerar um par de chaves SSH privadas e públicas locais. Use esse par de chaves para se conectar ao bastion host.<pre>ssh-keygen -t rsa -f my_key</pre> | DevOps engenheiro, Desenvolvedor | 

### Conecte-se ao bastion host usando o Session Manager
<a name="connect-to-the-bastion-host-by-using-sesh"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha o ID da instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS geral | 
| Enviar a chave pública SSH. | Nesta seção, você carrega a chave pública para os [metadados da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) do bastion host. Depois que a chave for carregada, você terá 60 segundos para iniciar uma conexão com o bastion host. Após 60 segundos, a chave pública é removida. Para obter mais informações, consulte a seção [Solução de problemas](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting) desse padrão. Conclua as próximas etapas rapidamente para evitar que a chave seja removida antes de se conectar ao bastion host.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS geral | 
| Conecte-se ao bastion host. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)Existem outras opções para abrir uma conexão SSH com o bastion host. Para obter mais informações, consulte *Abordagens alternativas para estabelecer uma conexão SSH com o bastion host* na seção [Informações adicionais](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional) desse padrão. | AWS geral | 

### Limpar (opcional)
<a name="optional-clean-up"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remova os recursos implantados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps engenheiro, desenvolvedor, Terraform | 

## Solução de problemas
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| erro `TargetNotConnected` ao tentar se conectar ao bastion host | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | 
| erro `Permission denied` ao tentar se conectar ao bastion host | Depois que a chave for carregada aos bastion host, você terá 60 segundos para iniciar a conexão. Depois de 60 segundos, a chave é removida automaticamente e você não pode usá-la para se conectar à instância. Se isso ocorrer, você poderá repetir a etapa para reenviar a chave para a instância. | 

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

**AWS documentação**
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) (documentação do Systems Manager)
+ [Instalar o plugin do Gerenciador de Sessões para a AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (documentação do Gerenciador de Sessões)
+ [Permitindo conexões SSH para o Session Manager ](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) (documentação do Systems Manager)
+ [Sobre o uso do EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) ( EC2 documentação da Amazon)
+ [Conecte-se usando o EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html) ( EC2 documentação da Amazon)
+ [Gerenciamento de identidade e acesso para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) ( EC2 documentação da Amazon)
+ [Usando uma função do IAM para conceder permissões a aplicativos executados em EC2 instâncias da Amazon](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) (documentação do IAM)
+ [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentação do IAM)
+ [Controlar o tráfego para recursos usando grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) (documentação da Amazon VPC)

**Outros recursos**
+ [Página da web do Desenvolvedor do Terraform](https://developer.hashicorp.com/terraform)
+ [Comando: validar](https://developer.hashicorp.com/terraform/cli/commands/validate) (documentação do Terraform)
+ [Comando: fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) (documentação do Terraform)
+ [Testando o HashiCorp Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform) (postagem HashiCorp no blog)
+ [Página da Web de Checkov](https://www.checkov.io/)

## Mais informações
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional"></a>

**Abordagens alternativas para estabelecer uma conexão SSH com o bastion host**

*Encaminhamento de portas*

Você pode usar a opção `-D 8888` para abrir uma conexão SSH com encaminhamento dinâmico de portas. Para obter mais informações, consulte as [instruções](https://explainshell.com/explain?cmd=ssh+-i+%24PRIVATE_KEY_FILE+-D+8888+ec2-user%40%24INSTANCE_ID) em explainshell.com. Veja a seguir um exemplo de um comando para abrir uma conexão SSH usando o encaminhamento de porta.

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

Esse tipo de conexão abre um proxy SOCKS que pode encaminhar o tráfego do seu navegador local por meio do bastion host. Se você estiver usando Linux ou macOS, insira `man ssh` para ver todas as opções. Isso exibe o manual de referência do SSH.

*Usando o script fornecido*

Em vez de executar manualmente as etapas descritas em *Conecte-se ao bastion host usando o Session Manager* na seção [Épicos](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics), você pode usar o script **connect.sh** incluído no repositório de código. Esse script gera o par de chaves SSH, envia a chave pública para a EC2 instância da Amazon e inicia uma conexão com o host bastion. Ao executar o script, você passa a tag e o nome da chave como argumentos. Veja a seguir um exemplo do comando para executar o script.

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

# Centralize a resolução de DNS usando o Microsoft AWS Managed Microsoft AD 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*

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

Esse padrão fornece orientação para centralizar a resolução de DNS em um ambiente de AWS várias contas usando AWS Directory Service for Microsoft Active Directory ()AWS Managed Microsoft AD e o Amazon Route 53. Nesse padrão, o namespace AWS DNS é um subdomínio do namespace DNS local. Esse padrão também fornece orientação sobre como configurar os servidores DNS locais para encaminhar consultas para AWS quando a solução de DNS local usa o Microsoft Active Directory.  

## Pré-requisitos e limitações
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-prereqs"></a>

**Pré-requisitos **
+ Um ambiente de AWS várias contas configurado usando AWS Organizations.
+ Conectividade de rede estabelecida entre Contas da AWS.
+ Conectividade de rede estabelecida entre AWS e o ambiente local (usando AWS Direct Connect ou qualquer tipo de conexão VPN).
+ AWS Command Line Interface (AWS CLI) configurado em uma estação de trabalho local.
+ AWS Resource Access Manager (AWS RAM) usado para compartilhar regras do Route 53 entre contas. Portanto, o compartilhamento deve ser ativado dentro do AWS Organizations ambiente, conforme descrito na seção [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics).

**Limitações**
+ AWS Managed Microsoft AD A Edição Standard tem um limite de 5 compartilhamentos.
+ AWS Managed Microsoft AD A Enterprise Edition tem um limite de 125 ações.
+ A solução nesse padrão é limitada ao compartilhamento Regiões da AWS desse suporte AWS RAM.

**Versões do produto**
+ Microsoft Active Directory em execução no Windows Server 2008, 2012, 2012 R2 ou 2016.

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

**Arquitetura de destino**

![\[Arquitetura para resolução de DNS centralizada na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/91430e2a-f7f6-4dbe-9fe7-8abed1f764a7/images/9b5fc51d-590b-468f-80f7-1949f3b3b258.png)


Neste design, AWS Managed Microsoft AD é instalado nos serviços compartilhados Conta da AWS. Embora não seja obrigatório, este padrão considera essa configuração. Se você configurar de AWS Managed Microsoft AD forma diferente Conta da AWS, talvez seja necessário modificar as etapas na seção [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics) adequadamente.

Esse design usa resolvedores do Route 53 para oferecer suporte à resolução de nomes por meio do uso das regras do Route 53. Se a solução de DNS on-premises usa o Microsoft DNS, criar uma regra de encaminhamento condicional para o namespace da AWS (`aws.company.com`), que é um subdomínio do namespace do DNS da empresa (`company.com`), não é simples. Se você tentar criar um encaminhador condicional tradicional, isso resultará em um erro. Isso ocorre porque o Microsoft Active Directory já é considerado autoritário para qualquer subdomínio do `company.com`. Para contornar esse erro, primeiro você deve criar uma delegação para que `aws.company.com` delegue a autoridade desse namespace. Em seguida, você pode criar o encaminhador condicional.

A nuvem privada virtual (VPC) de cada conta spoke pode ter seu próprio namespace DNS exclusivo com base no namespace raiz. AWS Nesse design, cada conta spoke acrescenta uma abreviatura do nome da conta ao namespace base da AWS. Depois que as zonas hospedadas privadas na conta spoke forem criadas, elas serão associadas à VPC local na conta spoke, bem como à VPC na conta da rede central. AWS Isso permite que a conta da AWS rede central responda às consultas de DNS relacionadas às contas spoke. Dessa forma, tanto o Route 53 quanto o Route 53 AWS Managed Microsoft AD trabalham juntos para compartilhar a responsabilidade de gerenciar o AWS namespace ()`aws.company.com`.

**Automação e escala**

Esse design usa endpoints do Route 53 Resolver para escalar consultas de DNS entre AWS e seu ambiente local. Cada endpoint do Route 53 Resolver compreende várias interfaces de rede elástica (espalhadas por várias zonas de disponibilidade), e cada interface de rede pode lidar com até 10.000 consultas por segundo. O Route 53 Resolver suporta até 6 endereços IP por endpoint, então, no total, esse design suporta até 60.000 consultas ao DNS por segundo espalhadas por várias zonas de disponibilidade para alta disponibilidade.  

Além disso, este padrão considera automaticamente o crescimento futuro na AWS. As regras de encaminhamento de DNS configuradas no local não precisam ser modificadas para oferecer suporte às zonas hospedadas privadas novas VPCs e associadas que são adicionadas. AWS 

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

**Serviços da AWS**
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)permite que suas cargas de trabalho e AWS recursos com reconhecimento de diretório usem o Microsoft Active Directory no. Nuvem AWS
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ [AWS Resource Access Manager (AWS RAM)](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) ajuda você a compartilhar seus recursos com segurança Contas da AWS para reduzir a sobrecarga operacional e fornecer visibilidade e auditabilidade.
+ O [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) é um serviço web de DNS altamente disponível e escalável.

**Ferramentas**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando. Nesse padrão, o AWS CLI é usado para configurar as autorizações do Route 53.

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

### Crie e compartilhe um AWS Managed Microsoft AD diretório
<a name="create-and-share-an-managed-ad-directory"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador da AWS | 
| Compartilhar o diretório. | Depois que o diretório for criado, compartilhe-o com outras Contas da AWS pessoas na AWS organização. Para obter instruções, consulte [Compartilhar seu diretório](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) no *Guia de administração do AWS Directory Service *.  AWS Managed Microsoft AD A Edição Standard tem um limite de 5 compartilhamentos. A Enterprise Edition tem um limite de 125 ações. | Administrador da AWS | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie resolvedores do Route 53. | Os resolvedores do Route 53 facilitam a resolução de consultas de DNS entre AWS e o data center local.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Embora o uso da conta AWS de rede central VPC não seja obrigatório, as etapas restantes pressupõem essa configuração. | Administrador da AWS | 
| Crie regras do Route 53. | Seu caso de uso específico pode exigir um grande número de regras do Route 53, mas você precisará configurar as seguintes regras como linha de base:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Para obter mais informações, consulte [Gerenciar regras de encaminhamento](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) no *Guia do desenvolvedor do Route 53*. | Administrador da AWS | 
| Configure um perfil do Route 53. | Um perfil do Route 53 é usado para compartilhar as regras com as contas de spoke.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador da AWS | 

### Configurar o DNS do Active Directory on-premises
<a name="configure-on-premises-active-directory-dns"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a delegação. | Use o snap-in do Microsoft DNS (`dnsmgmt.msc`) para criar uma nova delegação para o namespace `company.com` no Active Directory. O nome do domínio delegado deve ser `aws`. Isso torna o nome de domínio totalmente qualificado (FQDN) da delegação `aws.company.com`. Use os endereços IP dos controladores de AWS Managed Microsoft AD domínio para os valores IP do servidor de nomes e use `server.aws.company.com` para o nome. (Esta delegação é apenas para redundância, pois um encaminhador condicional será criado para esse namespace, o qual terá precedência sobre a delegação.) |  Active Directory | 
| Crie o encaminhador condicional. | Use o snap-in do Microsoft DNS (`dnsmgmt.msc`) para criar um novo encaminhador condicional para `aws.company.com`.  Use os endereços IP dos resolvedores de AWS entrada do Route 53 no DNS central Conta da AWS para o destino do encaminhador condicional.   |  Active Directory | 

### Crie zonas hospedadas privadas do Route 53 para spoke Contas da AWS
<a name="create-r53-private-hosted-zones-for-spoke-aws-accounts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie as zonas hospedadas privadas do Route 53. | Crie uma zona hospedada privada do Route 53 em cada conta spoke. Associe essa zona hospedada privada à conta spoke VPC. Para obter etapas detalhadas, consulte [Criação de uma zona hospedada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) no *Guia do desenvolvedor do Route 53*. | Administrador da AWS | 
| Crie autorizações. | Use o AWS CLI para criar uma autorização para a conta de AWS rede central VPC. Execute este comando no contexto de cada Conta da AWS de spoke:<pre>aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>em que:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador da AWS | 
| Criar associações. | Crie a associação de zona hospedada privada do Route 53 para a conta de AWS rede central VPC usando o. AWS CLI Execute este comando a partir do contexto da conta de AWS rede central:<pre>aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>em que:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrador da AWS | 

## Recursos relacionados
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-resources"></a>
+ [Simplifique o gerenciamento de DNS em um ambiente de várias contas com o Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (AWS postagem no blog)
+ [Criando sua AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html) (AWS Directory Service documentação)
+ [Compartilhamento de um AWS Managed Microsoft AD diretório](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) (AWS Directory Service documentação)
+ [O que é Amazon Route 53 Resolver?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) (Documentação do Amazon Route 53)
+ [Criar uma zona hospedada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) (documentação do Amazon Route 53)
+ [O que são perfis do Amazon Route 53?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html) (Documentação do Amazon Route 53)

# Centralize o monitoramento usando o 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 e Balaji Vedagiri, Amazon Web Services*

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

A observabilidade é crucial para monitorar, entender e solucionar problemas de aplicativos. Aplicativos que abrangem várias contas, como implementações de landing zone AWS Control Tower ou landing zone, geram um grande número de registros e rastreiam dados. Para solucionar problemas rapidamente ou entender a análise de usuários ou a análise de negócios, você precisa de uma plataforma de observabilidade comum em todas as contas. O Amazon CloudWatch Observability Access Manager oferece acesso e controle sobre vários registros de contas a partir de um local central.

Você pode usar o Gerente de Acesso à Observabilidade para visualizar e gerenciar registros de dados de observabilidade gerados pelas contas de origem. As contas de origem são individuais Contas da AWS que geram dados de observabilidade para seus recursos. Os dados de observabilidade são compartilhados entre contas de origem e as de monitoramento. Os dados de observabilidade compartilhados podem incluir métricas na Amazon CloudWatch, registros no Amazon CloudWatch Logs e rastreamentos. AWS X-Ray Para obter mais informações, consulte [Referência de API do Gerente de Acesso à Observabilidade](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html).

Esse padrão é para usuários que têm aplicativos ou infraestrutura executados em vários Contas da AWS e precisam de um local comum para visualizar os registros. Ele explica como você pode configurar o Gerente de Acesso à Observabilidade usando o Terraform para monitorar o status e a integridade desses aplicativos ou infraestrutura. Você pode instalar esta solução de diversas formas:
+ Como um módulo do Terraform independente, que você configura manualmente
+ Ao usar um pipeline de integração contínua e entrega contínua (CI/CD)
+ Ao realizar a integração com outras soluções, como o [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)

As instruções na seção [Épicos](#centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics) abrangem a implementação manual. Para as etapas de instalação do AFT, consulte o arquivo README do repositório do GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Pré-requisitos e limitações
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-prereqs"></a>

**Pré-requisitos **
+ O [Terraform](https://www.terraform.io/) instalado ou referenciado em seu sistema ou em tubulações automatizadas. (É recomendável usar a versão [mais recente](https://releases.hashicorp.com/terraform/).)
+ Uma conta que você pode usar como uma conta de monitoramento central. Outras contas criam links para a conta de monitoramento central para visualizar os logs.
+ (Opcional) Um repositório de código-fonte GitHub, como AWS CodeCommit, Atlassian Bitbucket ou sistema similar. Um repositório de código-fonte não é necessário se você estiver usando CI/CD pipelines automatizados.
+ (Opcional) Permissões para criar pull requests (PRs) para revisão de código e colaboração de código em GitHub.

**Limitações**

O Gerente de Acesso à Observabilidade tem as seguintes Service Quotas, que não podem ser alteradas. Considere essas cotas antes de implantar esse atributo. Para obter mais informações, consulte as [cotas de CloudWatch serviço](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html) na CloudWatch documentação.
+ **Links da conta de origem**: você pode vincular cada conta de origem a no máximo cinco contas de monitoramento.
+ **Coletores**: você pode criar vários coletores para uma conta, mas somente um coletor por conta Região da AWS é permitido.

Além disso:
+ Os coletores e links devem ser criados da mesma forma Região da AWS; eles não podem ser interregionais.

**Monitoramento entre regiões e entre contas**

Para o monitoramento entre regiões e entre contas, você pode escolher uma das seguintes opções:
+ Crie [ CloudWatch painéis entre contas e regiões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) para alarmes e métricas. Essa opção não é compatível com registros em log e rastreamentos.
+ Implemente o [registro centralizado](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) usando o Amazon OpenSearch Service.
+ Crie um coletor por região a partir de todas as contas de locatários, envie métricas para uma conta de monitoramento centralizada (conforme descrito neste padrão) e, em seguida, use [fluxos de CloudWatch métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html) para enviar os dados para um destino externo comum ou para produtos de monitoramento de terceiros, como Datadog, Dynatrace, Sumo Logic, Splunk ou New Relic.

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

**Componentes**

CloudWatch O Observability Access Manager consiste em dois componentes principais que permitem a observabilidade entre contas:
+ Um *coletor* permite que as contas de origem enviem dados de observabilidade para a conta de monitoramento central. Basicamente, um coletor fornece uma junção de gateway para as contas de origem se conectarem. Só pode haver um gateway ou conexão de coletor, e várias contas podem se conectar a ele.
+ Cada conta de origem tem um *link* para a junção do gateway do coletor e os dados de observabilidade são enviados por meio desse link. Você deve criar um coletor antes de criar links de cada conta de origem.

**Arquitetura**

O diagrama a seguir ilustra o Gerente de Acesso à Observabilidade e seus componentes.

![\[Arquitetura para observabilidade entre contas com coletores e links.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/00603763-4f99-456e-85e7-a80d803b087d/images/5188caf9-348b-4d91-b560-2b3d6ea81191.png)


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

**Serviços da AWS**
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

**Ferramentas**
+ [O Terraform](https://www.terraform.io/) é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.
+ AWS Control Tower O [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) configura um pipeline do Terraform para ajudá-lo a provisionar e personalizar contas em. AWS Control Tower Opcionalmente, você pode usar o AFT para configurar o Gerente de Acesso à Observabilidade em escala em várias contas.

**Repositório de código**

O código desse padrão está disponível no repositório do GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Práticas recomendadas
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-best-practices"></a>
+ Em AWS Control Tower ambientes, marque a conta de registro como a conta de monitoramento central (coletor).
+ Se você tiver várias organizações com várias contas AWS Organizations, recomendamos que você inclua as organizações em vez de contas individuais na política de configuração. Se você tiver um pequeno número de contas ou se as contas não fizerem parte de uma organização na política de configuração do coletor, você pode optar por incluir contas individuais.

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

### Configure o módulo coletor
<a name="set-up-the-sink-module"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Clone o repositório do GitHub Observability Access Manager:<pre>git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform</pre> | AWS DevOps, administrador da nuvem, administrador da AWS | 
| Especifique os valores das propriedades para o módulo coletor. | No arquivo `main.tf` (na pasta `deployments/aft-account-customizations/LOGGING/terraform/`**** do repositório), especifique valores para as seguintes propriedades:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obter mais informações, consulte [AWS::Oam::Sink](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)a CloudFormation documentação. | AWS DevOps, administrador da nuvem, administrador da AWS | 
| Instale o módulo sink. | Exporte as credenciais da Conta da AWS que você selecionou como conta de monitoramento e instale o módulo coletor do Observability Access Manager:<pre>Terraform Init<br />Terrafom Plan<br />Terraform Apply</pre> | AWS DevOps, administrador da nuvem, administrador da AWS | 

### Configure o módulo do coletor
<a name="set-up-the-link-module"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Especifique os valores da propriedade para o módulo de link. | No arquivo `main.tf ` (na pasta `deployments/aft-account-customizations/LOGGING/terraform/`**** do repositório), especifique valores para as seguintes propriedades:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obter mais informações, consulte [AWS::Oam::Link](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)a CloudFormation documentação. | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 
| Instale o módulo de link para contas individuais. | Exporte as credenciais de contas individuais e instale o módulo de link do Gerente de Acesso à Observabilidade:<pre>Terraform Plan<br />Terraform Apply</pre>Você pode configurar o módulo do link individualmente para cada conta ou usar o [AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) para instalar automaticamente esse módulo em várias contas. | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 

### Aprovar conexões sink-to-link
<a name="approve-sink-to-link-connections"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar a mensagem de status. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)À direita, você deve ver a mensagem de status **Conta de monitoramento habilitada** com uma marca de seleção verde. Isso significa que a conta de monitoramento tem um coletor do Gerente de Acesso à Observabilidade ao qual os links de outras contas se conectarão. |  | 
| Aprove as link-to-sink conexões. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obter mais informações, consulte [Vincular contas de monitoramento com contas de origem](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html) na CloudWatch documentação. | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 

### Verifique os dados de observabilidade entre contas
<a name="verify-cross-account-observability-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Visualize dados entre contas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html) | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 

### (Opcional) Permita que as contas de origem confiem na conta de monitoramento
<a name="optional-enable-source-accounts-to-trust-monitoring-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Visualize métricas, painéis, logs, widgets e alarmes de outras contas. | Como recurso adicional,**** você pode compartilhar CloudWatch métricas, painéis, registros, widgets e alarmes com outras contas. Cada conta usa uma função do IAM chamada **CloudWatch- CrossAccountSharingRole ** para obter acesso a esses dados.As contas de origem que têm uma relação de confiança com a conta central de monitoramento podem assumir essa função e visualizar dados da conta de monitoramento.CloudWatch fornece um CloudFormation script de exemplo para criar a função. Escolha **Gerenciar perfil no IAM** e execute esse script nas contas em que você deseja visualizar os dados.<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 obter mais informações, consulte [Habilitando a funcionalidade entre contas CloudWatch na](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region) CloudWatch documentação. | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 

### (Opcional) Visualizar entre contas e entre regiões a partir da conta de monitoramento
<a name="optional-view-cross-account-cross-region-from-the-monitoring-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o acesso entre contas e entre regiões. | Na conta central de monitoramento, você pode, opcionalmente, adicionar um seletor de contas para alternar facilmente entre contas e visualizar seus dados sem precisar se autenticar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Para obter mais informações, consulte [ CloudWatch Console multiregional entre contas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) na CloudWatch documentação. | AWS DevOps, administrador de nuvem, arquiteto de nuvem | 

## Recursos relacionados
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-resources"></a>
+ [CloudWatch observabilidade entre contas (documentação](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) da Amazon CloudWatch )
+ [Referência da API do Amazon CloudWatch Observability Access Manager](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html) ( CloudWatch documentação da Amazon)
+ [Recurso: aws\$1oam\$1sink](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/oam_sink) (documentação do Terraform)
+ [Fonte de dados: aws\$1oam\$1link](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/oam_link) (documentação do Terraform)
+ [CloudWatchObservabilityAccessManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/oam.html)(Documentação AWS do Boto3)

# Verifique as EC2 instâncias para ver as tags obrigatórias no lançamento
<a name="check-ec2-instances-for-mandatory-tags-at-launch"></a>

*Susanne Kangnoh e Archit Mathur, Amazon Web Services*

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

O Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável na nuvem da Amazon Web Services (AWS). O uso da Amazon EC2 elimina a necessidade de investir antecipadamente em hardware, para que você possa desenvolver e implantar aplicativos com mais rapidez.

Você pode usar a marcação para categorizar seus recursos da AWS de maneiras diferentes. EC2 a marcação de instâncias é útil quando você tem muitos recursos em sua conta e deseja identificar rapidamente um recurso específico com base nas tags. Você pode atribuir metadados personalizados às suas EC2 instâncias usando tags. Cada tag consiste em um valor e em uma chave definida pelo usuário. Recomendamos criar um conjunto consistente de tags para atender às necessidades da sua organização. 

Esse padrão fornece um CloudFormation modelo da AWS para ajudar você a monitorar EC2 instâncias para tags específicas. O modelo cria um evento da Amazon CloudWatch Events que monitora a AWS CloudTrail **TagResource**ou **UntagResource**os eventos para detectar novas marcações de EC2 instâncias ou remoção de tags. Se uma tag predefinida estiver ausente, ela chama uma função do AWS Lambda, que envia uma mensagem de violação para um endereço de e-mail que você fornece, usando o Amazon Simple Notiﬁcation Service (Amazon SNS). 

## Pré-requisitos e limitações
<a name="check-ec2-instances-for-mandatory-tags-at-launch-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um bucket do Amazon Simple Storage Service (Amazon S3) para carregar o código do Lambda fornecido.
+ Um endereço de e-mail no qual você deseja receber notificações de violação.

**Limitações**
+ Essa solução suporta CloudTrail **TagResource**nossos **UntagResource**eventos. Ela não cria notificações para nenhum outro evento.
+ Essa solução verifica somente as chaves de tag. Ele não monitora os valores-chave.

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

**Arquitetura ****de fluxo de trabalho **

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


 

**Automação e escala**
+ Você pode usar o CloudFormation modelo da AWS várias vezes para diferentes regiões e contas da AWS. Você precisa executar o modelo somente uma vez em cada região ou conta.

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

**Serviços da AWS**
+ [Amazon EC2](https://aws.amazon.com/ec2/) — O Amazon Elastic Compute Cloud (Amazon EC2) é um serviço web que fornece capacidade computacional segura e redimensionável na nuvem. Ele foi projetado para facilitar a computação em nuvem na escala da web para os desenvolvedores.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) — CloudTrail é um serviço da AWS que ajuda você com governança, conformidade e auditoria operacional e de risco da sua conta da AWS. As ações realizadas por um usuário, função ou serviço da AWS são registradas como eventos em CloudTrail. 
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — O Amazon CloudWatch Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos recursos da AWS. CloudWatch Os eventos ficam cientes das mudanças operacionais à medida que elas ocorrem e tomam medidas corretivas conforme necessário, enviando mensagens para responder ao ambiente, ativando funções, fazendo alterações e capturando informações de estado. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): o Lambda é um serviço de computação que oferece suporte à execução de código sem a necessidade de provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html): o Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos altamente escalável que pode ser usado para uma ampla variedade de soluções de armazenamento, incluindo sites, aplicativos móveis, backups e data lakes.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html): o Amazon Simple Notiﬁcation Service (Amazon SNS) é um serviço web que permite que aplicativos, usuários finais e dispositivos enviem e recebam notificações da nuvem instantaneamente.

**Código **

Esse padrão inclui um anexo com dois arquivos:
+ `index.zip` é um arquivo compactado que inclui o código do Lambda para esse padrão.
+ `ec2-require-tags.yaml`é um CloudFormation modelo que implanta o código Lambda.

Consulte a seção *Tópicos* para obter informações sobre como usar esses arquivos.

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

### Implantar o código do Lambda
<a name="deploy-the-lambda-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça upload do código para um bucket do S3. | Crie um novo bucket do S3 ou use um bucket do S3 existente para carregar o arquivo `index.zip` anexado (código do Lambda). Esse bucket deve estar na mesma região da AWS que os recursos (EC2 instâncias) que você deseja monitorar. | Arquiteto de nuvem | 
| Implante o CloudFormation modelo. | Abra o console do Cloudformation na mesma região da AWS do bucket S3 e implante o arquivo `ec2-require-tags.yaml` fornecido no anexo. No próximo épico, forneça valores para os parâmetros do modelo.   | Arquiteto de nuvem | 

### Preencha os parâmetros no CloudFormation modelo
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Dar o nome do bucket do S3. | Insira o nome do bucket do S3 que você criou ou selecionou no primeiro épico. Esse bucket do S3 contém o arquivo.zip do código Lambda e deve estar na mesma região da AWS do CloudFormation modelo e das EC2 instâncias que você deseja monitorar. | Arquiteto de nuvem | 
| Fornecer a chave do S3. | Forneça a localização do arquivo .zip do código Lambda em seu bucket do S3, sem barras iniciais (por exemplo, `index.zip` ou `controls/index.zip`). | Arquiteto de nuvem | 
| Fornecer um endereço de e-mail. | Forneça um endereço de e-mail ativo no qual você deseja receber notificações de violação. | Arquiteto de nuvem | 
| Defina o nível de registro em log. | Especifique o nível de registro em log e a verbosidade. `Info` designa mensagens informativas detalhadas sobre o progresso do aplicativo e deve ser usado somente para depuração. `Error` designa eventos de erro que ainda podem permitir que o aplicativo continue em execução. `Warning` designa situações potencialmente prejudiciais. | Arquiteto de nuvem | 
| Inserir as chaves de tag necessárias. | Insira as chaves de tag que você deseja verificar. Se você quiser especificar várias chaves, separe-as com vírgulas, sem espaços. (Por exemplo, `ApplicationId,CreatedBy,Environment,Organization` pesquisa quatro chaves.) O evento CloudWatch Events pesquisa essas chaves de tag e envia uma notificação se elas não forem encontradas. | Arquiteto de nuvem | 

### Confirmar a assinatura
<a name="confirm-the-subscription"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Confirme a assinatura por e-mail. | Quando o CloudFormation modelo é implantado com sucesso, ele envia uma mensagem de e-mail de assinatura para o endereço de e-mail que você forneceu. Você precisa confirmar sua assinatura para começar a receber as notificações.   | Arquiteto de nuvem | 

## Recursos relacionados
<a name="check-ec2-instances-for-mandatory-tags-at-launch-related-resources"></a>
+ [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) (documentação do Amazon S3)
+ [Carregar objetos](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) (documentação do Amazon S3)
+ [Marque seus EC2 recursos da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) ( EC2 documentação da Amazon)
+ [Criação de uma regra de CloudWatch eventos que é acionada em uma chamada de API da AWS usando a AWS (documentação da CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) Amazon CloudWatch )

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/9cd74141-a87f-419e-94b3-0b28fd04a018/attachments/attachment.zip)

# Limpe os recursos AWS do Account Factory for Terraform (AFT) com segurança após a perda do arquivo de estado
<a name="clean-up-aft-resources-safely-after-state-file-loss"></a>

*Gokendra Malviya, Amazon Web Services*

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

Quando você usa o AWS Account Factory for Terraform (AFT) para gerenciar seu AWS Control Tower ambiente, o AFT gera um arquivo de estado do Terraform para rastrear o estado e a configuração dos recursos criados pelo Terraform. Perder o arquivo de estado do Terraform pode gerar desafios significativos para o gerenciamento e a limpeza dos recursos. Esse padrão fornece uma abordagem sistemática para identificar e remover com segurança os recursos relacionados ao AFT, mantendo a integridade do seu AWS Control Tower ambiente.

O processo foi projetado para garantir a remoção adequada de todos os componentes do AFT, mesmo na ausência da referência do arquivo de estado original. Esse processo fornece um caminho claro para restabelecer e reconfigurar com sucesso o AFT em seu ambiente, para ajudar a garantir o mínimo de interrupção em suas operações. AWS Control Tower 

Para obter mais informações sobre o AFT, consulte a [documentação do AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html).

## Pré-requisitos e limitações
<a name="clean-up-aft-resources-safely-after-state-file-loss-prereqs"></a>

**Pré-requisitos **
+ Conhecimento detalhado da [arquitetura do AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-architecture.html).
+ Acesso de administrador às seguintes contas:
  + Conta gerencial do AFT
  + AWS Control Tower Conta de gerenciamento
  + Conta de arquivamento de logs
  + Conta de auditoria
+ Verificação de que nenhuma política de controle de serviço (SCPs) contém restrições ou limitações que bloqueariam a exclusão de recursos relacionados ao AFT.

**Limitações**
+ Este procedimento consegue remover os recursos com eficiência, porém não recupera arquivos de estado perdidos, e alguns recursos podem precisar ser identificados manualmente.
+ O tempo necessário para o processo de limpeza varia conforme a complexidade do ambiente e pode demorar várias horas.
+ Este padrão foi testado usando a versão 1.12.2 do AFT e remove os recursos listados a seguir. Se você estiver usando uma versão diferente do AFT, talvez seja necessário excluir recursos adicionais.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html)

**Importante**  
Os recursos excluídos pelos procedimentos deste padrão não podem ser recuperados. Antes de seguir estas etapas, verifique cuidadosamente os nomes dos recursos e confirme que eles foram criados pelo AFT.

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

O diagrama a seguir apresenta os componentes do AFT e o fluxo de trabalho geral. O AFT configura um pipeline do Terraform que ajuda você a provisionar e personalizar suas contas no AWS Control Tower. O AFT segue um GitOps modelo para automatizar os processos de provisionamento de contas em. AWS Control Tower Você cria um arquivo do Terraform para uma solicitação de conta e o envia para um repositório, que fornece a entrada que aciona o fluxo de trabalho do AFT para o provisionamento das contas. Após a conclusão do provisionamento da conta, o AFT pode executar etapas adicionais de personalização automaticamente.

![\[Componentes do AFT e fluxo de trabalho geral.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/3e0cae87-20ef-4fcc-aacf-bb450844ac56.png)


Nesta arquitetura:
+ AWS Control Tower A **conta de gerenciamento** Conta da AWS é dedicada ao AWS Control Tower serviço. Essa conta também é comumente referida como *conta pagadora da AWS * ou a *conta gerencial do AWS Organizations *.
+ A **conta de gerenciamento da AFT** Conta da AWS é dedicada às operações de gerenciamento da AFT. Esta conta é diferente da conta gerencial da sua organização.
+ A **conta vendida** Conta da AWS contém todos os componentes e controles básicos que você selecionou. A AFT usa AWS Control Tower para vender uma nova conta.

Para obter informações adicionais sobre essa arquitetura, consulte [Introdução ao AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) no AWS Control Tower workshop.

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

**Serviços da AWS**
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)ajuda você a configurar e administrar um ambiente AWS com várias contas, seguindo as melhores práticas prescritivas.
+ AWS O [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) configura um pipeline do Terraform para ajudá-lo a provisionar e personalizar contas e recursos no. AWS Control Tower
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)ajuda você a gerenciar e governar centralmente seu ambiente à medida que você cresce e escala seus AWS recursos. Com o Organizations, você pode criar contas e alocar recursos, agrupar contas para organizar os fluxos de trabalho, aplicar políticas de governança e simplificar o faturamento usando um único método de pagamento para todas as suas contas.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los. Este padrão requer perfis IAM e permissões.

**Outras ferramentas**
+ [O Terraform](https://www.terraform.io/) é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.

## Práticas recomendadas
<a name="clean-up-aft-resources-safely-after-state-file-loss-best-practices"></a>
+ Para AWS Control Tower isso, consulte [Práticas recomendadas para AWS Control Tower administradores](https://docs.aws.amazon.com/controltower/latest/userguide/best-practices.html) na AWS Control Tower documentação.
+ Para o IAM, consulte as [Práticas recomendadas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.

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

### Exclusão de recursos do AFT na conta gerencial do AFT
<a name="delete-aft-resources-in-the-aft-management-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua recursos identificados pela etiqueta do AFT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua os perfis do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua o cofre AWS Backup de backup. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua CloudWatch os recursos da Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua AWS KMS recursos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 

### Exclusão dos recursos do AFT na conta de arquivamento de logs
<a name="delete-aft-resources-in-the-log-archive-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua os buckets do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua os perfis do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 

### Exclusão dos recursos do AFT na conta de auditoria
<a name="delete-aft-resources-in-the-audit-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua os perfis do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 

### Excluir recursos AFT na conta AWS Control Tower de gerenciamento
<a name="delete-aft-resources-in-the-ctower-management-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua os perfis do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 
| Exclua EventBridge as regras. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrador da AWS, AWS DevOps, DevOps engenheiro | 

## Solução de problemas
<a name="clean-up-aft-resources-safely-after-state-file-loss-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| A desanexação do gateway da internet não foi bem-sucedida. | Durante a exclusão dos recursos identificados pela etiqueta **AFT**, se você enfrentar esse problema ao desanexar ou excluir o gateway da internet, deverá primeiro excluir os endpoints da VPC:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | 
| Você não consegue encontrar as CloudWatch consultas especificadas. | Se você não conseguir encontrar CloudWatch as consultas que foram criadas pelo AFT, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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 Repositório](https://github.com/aws-ia/terraform-aws-control_tower_account_factory)
  + [Workshop](https://catalog.workshops.aws/control-tower/en-US/customization/aft)
  + [Documentação](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html)
+ [AWS Control Tower documentação](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)

## Mais informações
<a name="clean-up-aft-resources-safely-after-state-file-loss-additional"></a>

Para visualizar as consultas AFT no painel do CloudWatch Logs Insights, escolha o ícone de **consultas salvas e de amostra** no canto superior direito, conforme ilustrado na captura de tela a seguir:

![\[Acessando as consultas do AFT no painel do CloudWatch Logs Insights.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/255d4032-738b-4600-9084-9684d2e9a328.png)


# Crie um pipeline em regiões da AWS que não oferecem suporte à AWS CodePipeline
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

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

**Aviso**: não AWS CodeCommit está mais disponível para novos clientes. Os clientes existentes do AWS CodeCommit podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

 CodePipeline A AWS é um serviço de orquestração de entrega contínua (CD) que faz parte de um conjunto de DevOps ferramentas da Amazon Web Services (AWS). Ele se integra a uma grande variedade de fontes (como sistemas de controle de versão e soluções de armazenamento), produtos e serviços de integração contínua (CI) da AWS e de parceiros da AWS e produtos de código aberto para fornecer um serviço de end-to-end fluxo de trabalho para implantações rápidas de aplicativos e infraestrutura.

No entanto, CodePipeline não é compatível com todas as regiões da AWS e é útil ter um orquestrador invisível que conecte os serviços da AWS CI/CD . Esse padrão descreve como implementar um pipeline de end-to-end fluxo de trabalho em regiões da AWS onde ainda CodePipeline não é suportado pelo uso de CI/CD serviços da AWS CodeCommit, como AWS CodeBuild, AWS e AWS CodeDeploy.

## Pré-requisitos e limitações
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ CLI do AWS Cloud Development Kit (AWS CDK) versão 2.28 ou superior

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

**Pilha de tecnologias de destino**

O diagrama a seguir mostra um pipeline que foi criado em uma região que não oferece suporte CodePipeline, como a região da África (Cidade do Cabo). Um desenvolvedor envia os arquivos de CodeDeploy configuração (também chamados de *scripts de gancho do ciclo de vida de implantação*) para o repositório Git hospedado por. CodeCommit (Consulte o [GitHub repositório](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) fornecido com esse padrão.) Uma EventBridge regra da Amazon é iniciada automaticamente. CodeBuild

Os arquivos de CodeDeploy configuração são obtidos CodeCommit como parte do estágio de origem do pipeline e transferidos para o. CodeBuild 

Na próxima fase, CodeBuild executa as seguintes tarefas: 

1. Faz o download do arquivo TAR do código-fonte da aplicação. Você pode configurar o nome desse arquivo usando o Parameter Store, um recurso do AWS Systems Manager.

1. Faz o download dos arquivos de CodeDeploy configuração.

1. Cria um arquivo combinado de código-fonte e arquivos CodeDeploy de configuração do aplicativo que são específicos para o tipo de aplicativo.

1. Inicia a CodeDeploy implantação em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) usando o arquivamento combinado.

![\[Criação de pipeline em uma região da AWS sem suporte\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


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

**Serviços da AWS**
+  CodeBuildA [AWS](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de criação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes unitários e produzir artefatos prontos para implantação.
+  CodeCommitA [AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) é um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu próprio sistema de controle de origem.
+ A [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) automatiza implantações no Amazon EC2 ou em instâncias locais, funções do AWS Lambda ou serviços do Amazon Elastic Container Service (Amazon ECS).
+  CodePipelineA [AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar alterações de software continuamente.
+ O [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura da Nuvem AWS em código.

**Código**

O código desse padrão está disponível no repositório GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

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

### Configurar a estação de trabalho do desenvolvedor
<a name="set-up-your-developer-workstation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS CDK CLI. | Para obter instruções, consulte a [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | AWS DevOps | 
| Instalar um cliente Git. | Para criar commits, você pode usar um cliente Git instalado em seu computador local e, em seguida, enviar seus commits para o repositório. CodeCommit [Para configurar CodeCommit com seu cliente Git, consulte a CodeCommit documentação.](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html) | AWS DevOps | 
| Instale o npm. | Instale o gerenciador de pacotes **npm**. Para obter mais informações, consulte a [documentação do npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configurar o pipeline
<a name="set-up-the-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos. | Clone o repositório de [regiões GitHub CodePipeline não suportadas](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) em sua máquina local executando o comando a seguir.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps engenheiro | 
| Defina os parâmetros em cdk.json. | Abra o arquivo `cdk.json` e forneça valores para os seguintes 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>em que:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | AWS DevOps | 
| Configure a biblioteca de estruturas CDK da AWS. | No GitHub repositório clonado, use os comandos a seguir para instalar a biblioteca de construção do AWS CDK, criar seu aplicativo e sintetizar para gerar o modelo da AWS CloudFormation para o aplicativo.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Implante a aplicação WS CDK CLI de exemplo. | Implante o código executando o comando a seguir em uma região sem suporte (como `af-south-1`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configure o CodeCommit repositório para CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure CI/CD para o aplicativo. | Clone o CodeCommit repositório que você especificou no `cdk.json` arquivo (chamado `app-dev-repo` por padrão) para configurar o CI/CD pipeline do aplicativo.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>onde o nome do repositório e a região dependem dos valores fornecidos no arquivo `cdk.json`. | AWS DevOps | 

### Teste o pipeline
<a name="test-the-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o pipeline com instruções de implantação. | A `CodeDeploy_Files` pasta do repositório GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) inclui arquivos de amostra que instruem CodeDeploy a implantação do aplicativo. O `appspec.yml` arquivo é um arquivo CodeDeploy de configuração que contém ganchos para controlar o fluxo de implantação do aplicativo. Você pode usar os arquivos de amostra `index.html`, `start_server.sh`, `stop_server.sh` e `install_dependencies.sh` para atualizar um site hospedado no Apache. Esses são exemplos: você pode usar o código no GitHub repositório para implantar qualquer tipo de aplicativo. Quando os arquivos são enviados para o CodeCommit repositório, o pipeline invisível é iniciado automaticamente. Para ver os resultados da implantação, verifique os resultados das fases individuais nos CodeBuild CodeDeploy consoles e. | AWS DevOps | 

## Recursos relacionados
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Conceitos básicos](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentação do AWS CDK)
+ [Introdução ao kit de desenvolvimento em nuvem (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Workshop sobre o AWS CDK](https://cdkworkshop.com/)

# Personalize os nomes das funções padrão usando AWS CDK aspectos e escotilhas de escape
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches"></a>

*Sandeep Singh e James Jacob, Amazon Web Services*

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

Esse padrão demonstra como personalizar os nomes padrão das funções criadas por AWS Cloud Development Kit (AWS CDK) construções. A personalização dos nomes de perfis é frequentemente necessária quando sua organização tem restrições específicas baseadas em convenções de nomenclatura. Por exemplo, sua organização pode definir [limites de permissões AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) (IAM) ou [políticas de controle de serviço (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) que exijam um prefixo específico nos nomes das funções. Nesses casos, os nomes de função padrão gerados pelas AWS CDK construções podem não atender a essas convenções e talvez precisem ser alterados. Este padrão atende a esses requisitos ao usar [mecanismos de escape](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html) e [aspectos](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) no AWS CDK. Você emprega os mecanismos de escape para definir nomes de perfis personalizados e os aspectos para aplicar um nome personalizado a todos os perfis, garantindo conformidade com as políticas e restrições da sua organização.

## Pré-requisitos e limitações
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Pré-requisitos especificados na [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)

**Limitações**
+ Os aspectos filtram recursos com base em tipos de recurso, garantindo que todos os perfis compartilhem o mesmo prefixo. Caso sejam necessários prefixos distintos para diferentes perfis, é preciso aplicar filtros adicionais com base em outras propriedades. Por exemplo, para atribuir prefixos diferentes a funções associadas a AWS Lambda funções, você pode filtrar por atributos ou tags de função específicos e aplicar um prefixo para funções relacionadas ao Lambda e um prefixo diferente para outras funções.
+ Os nomes de perfis do IAM podem ter, no máximo, 64 caracteres, de modo que nomes de perfis alterados precisam ser reduzidos para respeitar esse limite.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

**Pilha de tecnologias de destino**
+ AWS CDK
+ AWS CloudFormation

**Arquitetura de destino**

![\[Arquitetura para usar mecanismos de escape e aspectos para personalizar os nomes de perfis atribuídos pelo AWS CDK.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c149d8d2-1da6-4680-ab0b-e5051b69688c/images/15e56ca5-f150-4522-b374-8ee2dcc655a9.png)

+ Um AWS CDK aplicativo consiste em uma ou mais CloudFormation pilhas, que são sintetizadas e implantadas para gerenciar recursos. AWS 
+ Para modificar uma propriedade de um recurso AWS CDK gerenciado que não é exposta por uma construção de camada 2 (L2), use uma saída de emergência para substituir as CloudFormation propriedades subjacentes (nesse caso, o nome da função) e um aspecto para aplicar a função a todos os recursos no AWS CDK aplicativo durante o processo de síntese da pilha. AWS CDK 

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

**Serviços da AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.
+ AWS CDK A [interface de linha de comando (AWS CDK CLI)](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (também conhecida como kit de AWS CDK ferramentas) é um kit de desenvolvimento em nuvem de linha de comando que ajuda você a interagir com seu aplicativo. AWS CDK O `cdk` comando CLI é a principal ferramenta para interagir com seu aplicativo. AWS CDK Ele executa seu aplicativo, interroga o modelo de aplicativo que você definiu e produz e implanta os CloudFormation modelos gerados pelo. AWS CDK
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.

**Repositório de código**

O código-fonte e os modelos desse padrão estão disponíveis no repositório GitHub [CDK Aspects Override](https://github.com/aws-samples/cdk-aspects-override).

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

Consulte [as melhores práticas para usar o AWS CDK in TypeScript para criar projetos de IaC no site](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html) de Orientação **AWS **Prescritiva.

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

### Instale a AWS CDK CLI
<a name="install-the-cdk-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS CDK CLI. | Para instalar a AWS CDK CLI globalmente, execute o comando:<pre>npm install -g aws-cdk</pre> | AWS DevOps | 
| Verificar a versão. | Execute o comando :<pre>cdk --version</pre>Confirme se você está usando a versão 2 da AWS CDK CLI. | AWS DevOps | 
| Inicialize o AWS CDK ambiente. | Antes de implantar os CloudFormation modelos, prepare a conta Região da AWS que você deseja usar. Execute o comando :<pre>cdk bootstrap <account>/<Region></pre>Para obter mais informações, consulte [AWS CDK bootstrapping na documentação](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html). AWS  | AWS DevOps | 

### Implante o AWS CDK aplicativo para demonstrar o uso de aspectos
<a name="deploy-the-cdk-app-to-demonstrate-the-use-of-aspects"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o projeto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html) | AWS DevOps | 
| Implante pilhas com nomes de perfil padrão atribuídos pelo AWS CDK. | Implante duas CloudFormation pilhas (`ExampleStack1`e`ExampleStack2`) que contenham as funções do Lambda e suas funções associadas:<pre>npm run deploy:ExampleAppWithoutAspects</pre>O código não transfere propriedades de perfil explicitamente, portanto, os nomes dos perfis serão definidos pelo AWS CDK.Para obter uma saída de exemplo, consulte a seção [ Informações adicionais](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 
| Implante pilhas com aspectos. | Nesta etapa, você aplica um aspecto que impõe uma convenção de nome de função adicionando um prefixo a todas as funções do IAM implantadas no projeto. AWS CDK O aspecto está definido no arquivo `lib/aspects.ts`. O aspecto usa um mecanismo de escape para substituir o nome do perfil adicionando um prefixo. O aspecto é aplicado às pilhas no arquivo `bin/app-with-aspects.ts`. O prefixo de nome de perfil usado neste exemplo é `dev-unicorn`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html)Para obter uma saída de exemplo, consulte a seção [ Informações adicionais](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua suas AWS CloudFormation pilhas. | Após terminar de usar este padrão, execute o seguinte comando para limpar os recursos e evitar incorrer em custos adicionais:<pre>cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f </pre> | AWS DevOps | 

## Solução de problemas
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Você encontra problemas ao usar AWS CDK o. | Consulte [Solução de AWS CDK problemas comuns](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) na AWS CDK documentação. | 

## 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 documentação](https://docs.aws.amazon.com/cdk/)
+ [AWS CDK em GitHub](https://github.com/aws/aws-cdk)
+ [Escape hatches](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html)
+ [Aspectos e o AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)

## Mais informações
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional"></a>

**Nomes de funções criados por CloudFormation without aspects**

```
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
```

**Nomes de funções criados por CloudFormation with aspects**

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

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

# Implemente um cluster Cassandra na Amazon EC2 com estática privada IPs para evitar o reequilíbrio
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing"></a>

*Dipin Jain, Amazon Web Services*

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

O IP privado de uma instância do Amazon Elastic Compute Cloud (Amazon EC2) é retido durante todo o seu ciclo de vida. No entanto, o IP privado pode mudar durante uma falha planejada ou não planejada do sistema; por exemplo, durante uma atualização da imagem de máquina da Amazon (AMI). Em alguns cenários, reter um IP estático privado pode melhorar o desempenho e o tempo de recuperação das workloads. Por exemplo, usar um IP estático para um nó inicial do Apache Cassandra evita que o cluster incorra em uma sobrecarga de rebalanceamento. 

Esse padrão descreve como conectar uma interface de elastic network secundária às EC2 instâncias para manter o IP estático durante a nova hospedagem. O padrão se concentra nos clusters do Cassandra, mas você pode usar essa implementação para qualquer arquitetura que se beneficie da estática privada. IPs

## Pré-requisitos e limitações
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-prereqs"></a>

**Pré-requisitos **
+ Uma conta ativa da Amazon Web Service (AWS)

**Versões do produto**
+ DataStax versão 5.11.1
+ Sistema operacional: Ubuntu 16.04.6 LTS

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

**Arquitetura de origem**

A fonte pode ser um cluster Cassandra em uma máquina virtual (VM) local ou em instâncias EC2 na nuvem da AWS. O diagrama a seguir ilustra o segundo cenário. Esse exemplo inclui quatro nós de cluster: três nós iniciais e um nó de gerenciamento. Na arquitetura de origem, cada nó tem uma única interface de rede conectada.

![\[Quatro nós de EC2 cluster da Amazon, cada um com uma única interface de rede conectada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/5d80cfc9-4b72-4c72-aefd-b77cc0fb58e3.png)


**Arquitetura de destino**

O cluster de destino é hospedado em EC2 instâncias com uma interface de rede elástica secundária conectada a cada nó, conforme ilustrado no diagrama a seguir.

![\[Quatro nós de EC2 cluster da Amazon, cada um com uma interface de rede elástica secundária conectada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/d1e22017-f041-426b-9204-31ac158a407d.png)


**Automação e escala**

Você também pode automatizar a conexão de uma segunda interface de rede elástica a um grupo de Auto EC2 Scaling, conforme descrito em um vídeo do [AWS](https://www.youtube.com/watch?v=RmwGYXchb4E) Knowledge Center.

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

### Configurar um cluster Cassandra na Amazon EC2
<a name="configure-a-cassandra-cluster-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie EC2 nós para hospedar um cluster Cassandra. | No [ EC2 console da Amazon](https://console.aws.amazon.com/ec2/), execute quatro EC2 instâncias para seus nós do Ubuntu em sua conta da AWS. Três nós (iniciais) são usados para o cluster Cassandra, e o quarto nó atua como um nó de gerenciamento de cluster onde você instalará o DataStax Enterprise (DSE). OpsCenter Para obter instruções, consulte a [ EC2 documentação da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance). | Engenheiro de nuvem | 
| Confirme as comunicações do nó. | Certifique-se de que os quatro nós possam se comunicar entre si pelas portas de gerenciamento do banco de dados e do cluster. | Engenheiro de rede | 
| Instale o DSE OpsCenter no nó de gerenciamento. | Instale o DSE OpsCenter 6.1 do pacote Debian no nó de gerenciamento. Para obter instruções, consulte a [documentação do DataStax ](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html). | DBA | 
| Criar uma interface de rede secundária. | O Cassandra gera um identificador exclusivo universal (UUID) para cada nó com base no endereço IP da EC2 instância desse nó. Esse UUID é usado para distribuir nós virtuais (vnodes) no anel. Quando o Cassandra é implantado em EC2 instâncias, os endereços IP são atribuídos automaticamente às instâncias à medida que elas são criadas.  No caso de uma interrupção planejada ou não planejada, o endereço IP da nova EC2 instância muda, a distribuição de dados muda e todo o anel precisa ser rebalanceado. Isso não é desejável. Para preservar o endereço IP atribuído, use uma [interface de rede elástica secundária](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#scenarios-enis) com um endereço IP fixo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Para obter mais informações sobre a criação de uma interface de rede, consulte a [ EC2 documentação da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#create_eni). | Engenheiro de nuvem | 
| Conecte a interface de rede secundária aos nós do cluster. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Para obter mais informações sobre como conectar uma interface de rede, consulte a [ EC2 documentação da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#attach_eni). | Engenheiro de nuvem | 
| Adicione rotas na Amazon EC2 para lidar com o roteamento assimétrico.  | Quando você conectar a segunda interface de rede, a rede provavelmente executará um roteamento assimétrico. Para evitar isso, você pode adicionar rotas para as novas interfaces de rede.Para obter uma explicação detalhada e a remediação do roteamento assimétrico, consulte o [vídeo do AWS Knowledge Center](https://www.youtube.com/watch?v=RmwGYXchb4E) ou [Superando o roteamento assimétrico em servidores multiresidenciais (artigo de Patrick no](http://www.linuxjournal.com/article/7291) *Linux* Journal, 5 de abril de 2004). McManus | Engenheiro de rede | 
| Atualize as entradas DNS para apontar para o IP da interface de rede secundária. | Aponte o nome de domínio totalmente qualificado (FQDN) do nó para o IP da interface de rede secundária. | Engenheiro de rede | 
| Instale e configure o cluster Cassandra usando o DSE. OpsCenter | Quando os nós do cluster estiverem prontos com as interfaces de rede secundárias, você poderá instalar e configurar o cluster do Cassandra. | DBA | 

### Recupere o cluster da falha do nó
<a name="recover-cluster-from-node-failure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma AMI para o nó inicial do cluster. | Faça um backup dos nós para que você possa restaurá-los com binários do banco de dados em caso de falha do nó. Para obter instruções, consulte [Criar uma AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami.html) na EC2 documentação da Amazon. | Administrador de backup | 
| Recupere-se da falha do nó. | Substitua o nó com falha por uma nova EC2 instância executada a partir da AMI e conecte a interface de rede secundária do nó com falha. | Administrador de backup | 
| Verifique se o cluster do Cassandra está íntegro. | Quando o nó de substituição estiver ativo, verifique a integridade do cluster no DSE. OpsCenter | DBA | 

## Recursos relacionados
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-resources"></a>
+ [Instalando o DSE OpsCenter 6.1 a partir do pacote Debian (documentação](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html)) DataStax 
+ [Como fazer uma interface de rede secundária funcionar em uma EC2 instância do Ubuntu](https://www.youtube.com/watch?v=RmwGYXchb4E) (vídeo do AWS Knowledge Center)
+ [Melhores práticas para executar o Apache Cassandra na Amazon (publicação no blog EC2 da AWS)](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-cassandra-on-amazon-ec2/)

# Estenda VRFs para a AWS usando o AWS Transit Gateway Connect
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect"></a>

*Adam Till, Yashar Araghi, Vikas Dewangan e Mohideen, da Amazon Web Services HajaMohideen*

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

O roteamento e encaminhamento virtuais (VRF) é um atributo das redes tradicionais. Ele usa domínios de roteamento lógico isolados, na forma de tabelas de rotas, para separar o tráfego de rede dentro da mesma infraestrutura física. Você pode configurar o AWS Transit Gateway para suportar o isolamento de VRF ao conectar sua rede on-premises à AWS. Esse padrão usa uma arquitetura de exemplo para se conectar localmente VRFs a diferentes tabelas de rotas do gateway de trânsito.

Esse padrão usa interfaces virtuais de trânsito (VIFs) nos anexos do AWS Direct Connect e do Transit Gateway Connect para estender o. VRFs Uma [VIF de trânsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html) é usada para acessar um ou mais gateways de trânsito do Amazon VPC associados aos gateways do Direct Connect. Um [anexo do gateway de trânsito Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) conecta um gateway de trânsito a um dispositivo virtual de terceiros que está sendo executado em uma VPC. Um anexo do gateway de trânsito Connect oferece suporte ao protocolo de túnel Generic Routing Encapsulation (GRE) para alto desempenho e ao Protocolo de Gateway da Borda (BGP) para roteamento dinâmico.

A abordagem descrita nesse padrão tem os seguintes benefícios:
+ Usando o Transit Gateway Connect, você pode anunciar até 1.000 rotas para o Transit Gateway Connect peer e receber até 5.000 rotas dele. O uso do atributo Direct Connect Transit da VIF sem o Transit Gateway Connect é limitado a 20 prefixos por gateway de trânsito.
+ Você pode manter o isolamento do tráfego e usar o Transit Gateway Connect para fornecer serviços hospedados na AWS, independentemente dos esquemas de endereço IP que seus clientes estejam usando.
+ O tráfego de VRF não precisa cruzar uma interface virtual pública. Isso facilita o cumprimento dos requisitos de conformidade e segurança em muitas organizações.
+ Cada túnel do GRE suporta até 5 Gbps, e você pode ter até quatro túneis do GRE por anexo do gateway de trânsito Connect. Isso é mais rápido do que muitos outros tipos de conexão, como conexões AWS Site-to-Site VPN que suportam até 1,25 Gbps.

## Pré-requisitos e limitações
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-prereqs"></a>

**Pré-requisitos **
+ As contas da AWS necessárias foram criadas (consulte a arquitetura para obter detalhes)
+ Permissões para presumir um perfil do IAM no AWS Identity and Access Management (IAM) em cada conta.
+ Os perfis do IAM em cada conta devem ter permissões para provisionar recursos do AWS Transit Gateway e do AWS Direct Connect. Para obter mais informações, consulte [Autenticação e controle de acesso para seus gateways de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html) e consulte [Gerenciamento de identidade e acesso para o Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/security-iam.html).
+ As conexões do Direct Connect foram criadas com sucesso. Para obter mais informações, visite [Criar uma conexão usando o assistente de conexão](https://docs.aws.amazon.com/directconnect/latest/UserGuide/dedicated_connection.html#create-connection).

**Limitações**
+ Há limites para anexos do Transit Gateway às contas VPCs de produção, controle de qualidade e desenvolvimento. Para obter mais informações, consulte [Anexos do gateway de trânsito para uma VPC](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html).
+ Há limites para criação e uso de gateways Direct Connect. Para obter mais informações, consulte [Cotas do AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/limits.html).

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

**Arquitetura de destino**

O exemplo de arquitetura a seguir fornece uma solução reutilizável para implantar o transporte público VIFs com anexos do Transit Gateway Connect. Essa arquitetura fornece resiliência usando vários locais do Direct Connect. Para obter mais informações, visite [Máxima resiliência](https://docs.aws.amazon.com/directconnect/latest/UserGuide/maximum_resiliency.html) na documentação do Direct Connect. A rede local tem produção, controle de qualidade e desenvolvimento VRFs que são estendidos para a AWS e isolados por meio do uso de tabelas de rotas dedicadas.

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


No ambiente da AWS, duas contas são dedicadas à extensão do VRFs: uma conta do *Direct Connect e uma conta* do *hub de rede*. A conta do Direct Connect contém a conexão e o trânsito VIFs de cada roteador. Você cria o trânsito a VIFs partir da conta do Direct Connect, mas o implanta na conta do hub de rede para poder associá-lo ao gateway Direct Connect na conta do hub de rede. A conta do hub de rede contém o gateway do Direct Connect e o gateway de trânsito. Os recursos da AWS estão conectados da seguinte forma:

1. O Transit VIFs conecta os roteadores nos locais do Direct Connect com o AWS Direct Connect na conta do Direct Connect.

1. Uma VIF de trânsito conecta o Direct Connect ao gateway do Direct Connect na conta do hub de rede.

1. Uma [associação de gateway de trânsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html) conecta o gateway do Direct Connect ao gateway de trânsito na conta do hub de rede.

1. [Os anexos do Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) Connect conectam o gateway de trânsito às contas de produção, controle de qualidade e desenvolvimento. VPCs 

*Arquitetura de VIF de trânsito*

O diagrama a seguir mostra os detalhes da configuração do trânsito VIFs. Esse exemplo de arquitetura usa uma VLAN para a origem do túnel, mas você também pode usar um loopback.

![\[Detalhes de configuração das conexões VIF de trânsito entre os roteadores e o AWS Direct Connect\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e88d2546-61ef-4531-972b-089cdf44ed67.png)


A seguir estão os detalhes da configuração, como números do sistema autônomo (ASNs), para o trânsito VIFs.


| 
| 
| Recurso | Item | Detalhes | 
| --- |--- |--- |
| router-01 | ASN | 65534 | 
| router-02 | ASN | 65534 | 
| router-03 | ASN | 65534 | 
| router-04 | ASN | 65534 | 
| Direct Connect gateway | ASN | 64601 | 
| Transit gateway | ASN | 64600 | 
| CIDR block (Bloco CIDR) | 10.100.254.0/24 | 

*Arquitetura do Transit Gateway Connect*

O diagrama e as tabelas a seguir descrevem como configurar um único VRF por meio de um anexo do gateway de trânsito Connect. Além VRFs disso, atribua túneis exclusivos IDs, endereços IP GRE do gateway de trânsito e BGP dentro dos blocos CIDR. O endereço IP do GRE de mesmo nível corresponde ao endereço IP de mesmo nível do roteador da VIF de trânsito.

![\[Detalhes de configuração dos túneis do GRE entre os roteadores e o gateway de trânsito\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e58278e1-f3b4-442d-95d9-1dafab4aa5ac.png)


A tabela a seguir contém detalhes da configuração do roteador.


| 
| 
| Roteador | Túnel | IP address (endereço de IP) | Fonte | Destino | 
| --- |--- |--- |--- |--- |
| router-01 | Túnel 1 | 169.254.101.17 | VLAN 60169.254.100.1 | 10.100.254.1 | 
| router-02 | Túnel 11 | 169.254.101.81 | VLAN 61169.254.100.5 | 10.100.254.11 | 
| router-03 | Túnel 21 | 169.254.101.145 | VLAN 62169.254.100.9 | 10.100.254.21 | 
| router-04 | Túnel 31 | 169.254.101.209 | VLAN 63169.254.100.13 | 10.100.254.31 | 

A tabela a seguir contém detalhes da configuração do Transit Gateway.


| 
| 
| Túnel | Endereço IP GRE do gateway de trânsito | Endereço IP GRE no mesmo nível | BGP dentro de blocos CIDR | 
| --- |--- |--- |--- |
| Túnel 1 | 10.100.254.1 | VLAN 60169.254.100.1 | 169.254.101.16/29 | 
| Túnel 11 | 10.100.254.11 | VLAN 61169.254.100.5 | 169.254.101.80/29 | 
| Túnel 21 | 10.100.254.21 | VLAN 62169.254.100.9 | 169.254.101.144/29 | 
| Túnel 31 | 10.100.254.31 | VLAN 63169.254.100.13 | 169.254.101.208/29 | 

**Implantação**

A seção [Épicos](#extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-epics) descreve como implantar um exemplo de configuração para um** **único VRF em vários roteadores de clientes. Depois que as etapas de 1 a 5 forem concluídas, você poderá criar novos anexos do Transit Gateway Connect usando as etapas 6 a 7 para cada novo VRF que você estiver estendendo para a AWS:

1. Crie o gateway de trânsito.

1. Crie uma tabela de rotas do gateway de trânsito para cada VRF.

1. Crie as interfaces virtuais de trânsito.

1. Crie um gateway do Direct Connect.

1. Crie a interface virtual do gateway do Direct Connect e as associações de gateway com prefixos permitidos.

1. Criar um anexo do Connect do gateway de trânsito.

1. Crie pares do gateway de trânsito Connect.

1. Associe o anexo do gateway de trânsito Connect à tabela de rotas.

1. Anuncie rotas para os roteadores.

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

**Serviços da AWS**
+ O [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) conecta sua rede interna a um local do Direct Connect por meio de um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para serviços públicos da AWS, ignorando provedores de serviço da internet no caminho da sua rede.
+ [O AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) é um hub central que conecta nuvens privadas virtuais (VPCs) e redes locais.
+ A [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda a iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.

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

### Planejar a arquitetura
<a name="plan-the-architecture"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie diagramas de arquitetura personalizados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 

### Criar os recursos do Transit Gateway
<a name="create-the-transit-gateway-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o gateway de trânsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrador de rede, arquiteto de nuvem | 
| Criar uma tabela de rotas do gateway de trânsito. | Siga as instruções em [Criar uma tabela de rotas do gateway de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#create-tgw-route-table). Observe o seguinte para esse padrão:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 

### Crie as interfaces virtuais de trânsito
<a name="create-the-transit-virtual-interfaces"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie as interfaces virtuais de trânsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 

### Crie os recursos do Direct Connect
<a name="create-the-direct-connect-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um gateway Direct Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 
| Conecte o gateway Direct Connect ao trânsito VIFs. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 
| Crie as associações do gateway do Direct Connect com os prefixos permitidos. | Na conta do hub de rede, siga as instruções em [Para associar um gateway de trânsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html#associate-tgw-with-direct-connect-gateway). Observe o seguinte para esse padrão:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html)A criação dessa associação cria automaticamente um anexo do gateway de trânsito que tem um tipo de recurso do Direct Connect Gateway. Esse anexo não precisa estar associado a uma tabela de rotas do gateway de trânsito. | Arquiteto de nuvem, administrador de rede | 
| Criar um anexo do Connect do gateway de trânsito. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Arquiteto de nuvem, administrador de rede | 
| Crie pares do gateway de trânsito Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) |  | 

### Anuncie rotas para os roteadores
<a name="advertise-routes-to-the-routers"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Anuncie as rotas. | Associe o novo anexo do gateway de trânsito Connect à tabela de rotas que você criou anteriormente para esse VRF. Por exemplo, associe o anexo Connect do gateway de trânsito de produção à tabela de rotas `Production-VRF`.Crie uma rota estática para o prefixo anunciado para os roteadores.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrador de rede, arquiteto de nuvem | 

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

**Documentação da AWS**
+ Documentação do Direct Connect
  + [Trabalhar com gateways Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways.html)
  + [Associações de gateways de trânsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html)
  + [Interfaces virtuais do AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html)
+ Documentação do Transit Gateway
  + [Trabalhar com gateways de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/working-with-transit-gateways.html)
  + [Anexos do gateway de trânsito a um gateway do Direct Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-dcg-attachments.html)
  + [Anexos do Transit Gateway Connect e pares do Transit Gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html)
  + [Criar um anexo do Connect do gateway de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#create-tgw-connect-attachment)

**Publicações do blog da AWS**
+ [Segmentação de redes híbridas com o AWS Transit Gateway Connect](https://aws.amazon.com/blogs/networking-and-content-delivery/segmenting-hybrid-networks-with-aws-transit-gateway-connect/)
+ [Usando o AWS Transit Gateway, conecte-se para ampliar VRFs e aumentar a publicidade do prefixo IP](https://aws.amazon.com/blogs/networking-and-content-delivery/using-aws-transit-gateway-connect-to-extend-vrfs-and-increase-ip-prefix-advertisement/)

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/db17e177-6c94-4d81-ab39-0923ecab2f1b/attachments/attachment.zip)

# Receber notificações do Amazon SNS quando o estado de chave de uma chave do AWS KMS mudar
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes"></a>

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

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

Os dados e metadados associados a uma chave do AWS Key Management Service (AWS KMS) são perdidos quando essa chave é excluída. A exclusão é irreversível e você não pode recuperar dados perdidos (incluindo dados criptografados). Você pode evitar a perda de dados ao configurar um sistema de notificação para alertá-lo sobre mudanças de status nos [estados principais](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) de suas chaves do AWS KMS.

Esse padrão mostra como monitorar alterações de status nas chaves do AWS KMS usando a Amazon e o EventBridge Amazon Simple Notification Service (Amazon SNS) para emitir notificações automáticas sempre que o estado da chave do AWS KMS mudar para ou. `Disabled` `PendingDeletion` Por exemplo, se um usuário tentar desabilitar ou excluir uma chave do AWS KMS, você receberá uma notificação por e-mail com detalhes sobre a tentativa de alteração de status. Você também pode usar esse padrão para programar a exclusão das chaves do AWS KMS.

## Pré-requisitos e limitações
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-prereqs"></a>

**Pré-requisitos **
+ Uma conta ativa do AWS com um usuário do Identity and Access Management (IAM).
+ Uma [chave do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)

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

**Pilha de tecnologia**
+ Amazon EventBridge
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Notiﬁcation Service (Amazon SNS)

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para criar um processo automatizado de monitoramento e notificação para detectar quaisquer alterações no estado de uma chave do AWS KMS.

![\[Arquitetura para criar um processo automatizado de monitoramento e notificação\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2534df87-a6fd-4360-9b5d-4a8b1f533de3/images/0cb6a6b0-405b-4d26-ad04-2067176aa086.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário desativa ou programa a exclusão de uma chave do AWS KMS.

1. Uma EventBridge regra avalia o agendado `Disabled` ou o `PendingDeletion` evento.

1. A EventBridge regra invoca o tópico do Amazon SNS.

1. O Amazon SNS envia uma mensagem de notificação por e-mail aos usuários.

**nota**  
É possível personalizar a mensagem de e-mail para atender às necessidades da sua organização. Recomendamos incluir informações sobre as entidades nas quais a chave do AWS KMS é usada. Isso pode ajudar os usuários a entenderem o impacto da exclusão da chave do AWS KMS. Você também pode agendar uma notificação de lembrete por e-mail enviada um ou dois dias antes da exclusão da chave do AWS KMS.

**Automação e escala**

O AWS CloudFormation stack implanta todos os recursos e serviços necessários para que esse padrão funcione. Você pode implementar o padrão de forma independente em uma única conta ou usando a [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) para várias contas independentes ou [unidades organizacionais](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) no AWS Organizations.

## Ferramentas
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-tools"></a>
+  CloudFormationA [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ajuda você a configurar recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em todas as contas e regiões da AWS. O CloudFormation modelo desse padrão descreve todos os recursos da AWS que você deseja e CloudFormation provisiona e configura esses recursos para você.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. EventBridge fornece um fluxo de dados em tempo real de seus próprios aplicativos e serviços da AWS e encaminha esses dados para destinos como o AWS Lambda. EventBridge simplifica o processo de criação de arquiteturas orientadas por eventos.
+ O [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para proteger seus dados.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.

**Código **

O código desse padrão está disponível no repositório de [desativação e exclusão programada de chaves do AWS KMS do GitHub Monitor AWS](https://github.com/aws-samples/aws-kms-deletion-notification) KMS.

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

### Implante o CloudFormation modelo
<a name="deploy-the-cloudformation-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Clone o repositório de [desativação e exclusão programada das chaves do GitHub Monitor AWS KMS](https://github.com/aws-samples/aws-kms-deletion-notification) em sua máquina local executando o seguinte comando:`git clone https://github.com/aws-samples/aws-kms-deletion-notification` | Administrador da AWS, arquiteto de nuvem | 
| Atualizar os parâmetros do modelo. | Em um editor de código, abra o `Alerting-KMS-Events.yaml` CloudFormation modelo que você clonou do repositório e atualize os seguintes parâmetros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador da AWS, arquiteto de nuvem | 
| Implante o CloudFormation modelo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador da AWS, arquiteto de nuvem | 

### Confirmar a assinatura
<a name="confirm-the-subscription"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Confirmar a assinatura de e-mail. | Depois que o CloudFormation modelo for implantado com sucesso, o Amazon SNS envia uma mensagem de confirmação da assinatura para o endereço de e-mail que você forneceu no CloudFormation modelo.Você precisa confirmar sua assinatura para começar a receber as notificações. Para obter mais informações, consulte [Confirmar a assinatura](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.confirm.html) no Guia do desenvolvedor do Amazon SNS. | Administrador da AWS, arquiteto de nuvem | 

### Testar a notificação de assinatura.
<a name="test-the-subscription-notification"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desabilitar chaves do AWS KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador da AWS | 
| Validar a assinatura. | Confirme se você recebeu o e-mail de notificação do Amazon SNS. | Administrador da AWS | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua a CloudFormation pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrador da 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/) (documentação da AWS)
+ [Criação de uma pilha no CloudFormation console da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) ( CloudFormation documentação da AWS)
+ [Criar arquiteturas orientadas por eventos na AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/63320e83-6abc-493d-83d8-f822584fb3cb/en-US) (documentação do AWS Workshop Studio)
+ [Práticas recomendadas do AWS Key Management Service](https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) (whitepaper da AWS)
+ [Práticas recomendadas de segurança para o AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) (Guia do desenvolvedor do AWS KMS)

## Mais informações
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-additional"></a>

O Amazon SNS fornece criptografia em trânsito por padrão. Para se alinhar às práticas recomendadas de segurança, você também pode habilitar a criptografia do lado do servidor para o Amazon SNS usando uma chave gerenciada pelo cliente do AWS KMS.

# Preserve o espaço IP roteável em projetos de VPC com várias contas para sub-redes sem workload
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets"></a>

*Adam Spicer, Amazon Web Services*

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

A Amazon Web Services (AWS) publicou as melhores práticas que recomendam o uso de sub-redes dedicadas em uma nuvem privada virtual (VPC) para [anexos do gateway de trânsito e endpoints](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) do Gateway [Load Balancer (](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/getting-started.html)para oferecer suporte ao [AWS](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-high-level-steps.html) Network Firewall ou dispositivos de terceiros). Essas sub-redes são usadas para conter interfaces de rede elásticas para esses serviços. Se você usa o AWS Transit Gateway e um balanceador de carga do gateway, duas sub-redes são criadas em cada zona de disponibilidade da VPC. Devido à forma como VPCs são projetadas, essas sub-redes extras [não podem ser menores que uma máscara /28 e podem consumir um](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-sizing) precioso espaço IP roteável que, de outra forma, poderia ser usado para cargas de trabalho roteáveis. Esse padrão demonstra como você pode usar um intervalo de Encaminhamento Entre Domínios Sem Classificação (CIDR) secundário, não roteável para essas sub-redes dedicadas para ajudar a preservar o espaço IP roteável.

## Pré-requisitos e limitações
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-prereqs"></a>

**Pré-requisitos**
+ [Estratégia de várias VPCs para espaço](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) IP roteável
+ [Um intervalo CIDR não roteável para os serviços que você está usando ([anexos de gateway de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) e [balanceador de carga do gateway](https://aws.amazon.com/blogs/apn/centralized-traffic-inspection-with-gateway-load-balancer-on-aws/) ou endpoints do Network Firewall](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/))

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

**Arquitetura de destino**

Esse padrão inclui duas arquiteturas de referência: uma arquitetura tem sub-redes para anexos do Transit Gateway (TGW) e um endpoint do Gateway Load Balancer (GWLBe), e a segunda arquitetura tem sub-redes somente para anexos TGW.

**Arquitetura 1 ‒ VPC conectada ao TGW com roteamento de entrada para um dispositivo**

O diagrama a seguir representa uma arquitetura de referência para uma VPC que abrange duas zonas de disponibilidade. [Na entrada, a VPC usa [um padrão de roteamento de entrada para direcionar o](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) tráfego destinado à sub-rede pública para um dispositivo para inspeção do firewall. bump-in-the-wire ](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-gateway-load-balancer-supported-architecture-patterns/) Um anexo TGW suporta a saída das sub-redes privadas para uma VPC separada.

Esse padrão usa um intervalo CIDR não roteável para a sub-rede do anexo TGW e a sub-rede. GWLBe Na tabela de rotas do TGW, esse CIDR não roteável é configurado com uma rota de buraco negro (estática) usando um conjunto de rotas mais específicas. Se as rotas fossem propagadas para a tabela de rotas do TGW, essas rotas de buraco negro mais específicas se aplicariam.

Neste exemplo, o CIDR roteável /23 é dividido e totalmente alocado às sub-redes roteáveis.

![\[VPC anexada ao TGW com roteamento de entrada para um dispositivo.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/adad1c83-cdc2-4c5e-aa35-f47fc31af384.png)


**Arquitetura 2 – VPC conectada ao TGW**

O diagrama a seguir representa outra arquitetura de referência para uma VPC que abrange duas zonas de disponibilidade. Um anexo TGW oferece suporte ao tráfego de saída (egress) das sub-redes privadas para uma VPC separada. Ele usa um intervalo CIDR não roteável somente para a sub-rede de anexos do TGW. Na tabela de rotas TGW, esse CIDR não roteável é configurado com uma rota blackhole usando um conjunto de rotas mais específicas. Se as rotas fossem propagadas para a tabela de rotas do TGW, essas rotas de buraco negro mais específicas se aplicariam.

Neste exemplo, o CIDR roteável /23 é dividido e totalmente alocado às sub-redes roteáveis. 

![\[A VPC abrange duas zonas de disponibilidade com anexo ao TGW para saída de sub-redes privadas para uma VPC separada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/31a2a241-5be6-425e-93e9-5ff7ffeca3a9.png)


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

**Serviços e recursos da AWS**
+ A [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda a iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS. Nesse padrão, a VPC secundária CIDRs é usada para preservar o espaço IP roteável na carga de trabalho. CIDRs
+ O [roteamento de entrada do gateway da Internet](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) (associações de borda) pode ser usado junto com os endpoints do balanceador de carga do gateway para sub-redes dedicadas não roteáveis.
+ [O AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) é um hub central que conecta VPCs redes locais. Nesse padrão, VPCs são conectados centralmente a um gateway de trânsito, e os anexos do gateway de trânsito estão em uma sub-rede dedicada não roteável.
+ Os [balanceadores de carga do gateway](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html) ajudam você a implantar, escalar e gerenciar dispositivos virtuais, como firewalls, sistemas de detecção e prevenção de intrusões e sistemas de inspeção profunda de pacotes. O gateway atua como um único ponto de entrada e saída para todo o tráfego. Nesse padrão, os endpoints de um balanceador de carga do gateway podem ser usados em uma sub-rede dedicada não roteável.
+ [O AWS Network Firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html) é um serviço gerenciado e monitorado de firewall de rede e detecção e prevenção de intrusões VPCs na nuvem da AWS. Nesse padrão, os endpoints de um firewall podem ser usados em uma sub-rede não roteável dedicada.

**Repositório de código**

Um runbook e CloudFormation modelos da AWS para esse padrão estão disponíveis no repositório de padrões [CIDR secundários GitHub não roteáveis](https://github.com/aws-samples/non-routable-secondary-vpc-cidr-patterns/). Você pode usar os arquivos de amostra para configurar um laboratório de trabalho em seu ambiente.

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

**AWS Transit Gateway**
+ Use uma sub-rede separada para cada anexo da VPC do gateway.
+ Aloque uma sub-rede /28 do intervalo CIDR secundário não roteável para as sub-redes do anexo do gateway de trânsito.
+ Em cada tabela de rotas do Transit Gateway, adicione uma rota estática e mais específica para o intervalo CIDR não roteável como um buraco negro.

**Balanceador de carga do gateway e roteamento de entrada**
+ Use o roteamento de entrada para direcionar o tráfego da Internet para os endpoints do balanceador de carga do gateway.
+ Use uma sub-rede separada para cada endpoint do balanceador de carga do gateway.
+ Aloque uma sub-rede /28 do intervalo CIDR secundário não roteável para as sub-redes de endpoint do balanceador de carga do gateway.

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

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine o intervalo CIDR não roteável. | Determine um intervalo CIDR não roteável que será usado para a sub-rede de anexo do gateway de trânsito e (opcionalmente) para qualquer sub-rede de endpoint do balanceador de carga do gateway ou do Network Firewall. Esse intervalo de CIDR será usado como CIDR secundário para a VPC. Ele **não deve ser roteável** a partir do intervalo CIDR primário da VPC ou de uma rede maior. | Arquiteto de nuvem | 
| Determine os intervalos de CIDR roteáveis para. VPCs | Determine um conjunto de intervalos CIDR roteáveis que serão usados para o seu. VPCs Esse intervalo de CIDR será usado como o CIDR primário para o seu. VPCs | Arquiteto de nuvem | 
| Criar VPCs. | Crie o seu VPCs e conecte-o ao gateway de trânsito. Cada VPC deve ter um intervalo CIDR primário que seja roteável e um intervalo CIDR secundário que não seja roteável, com base nos intervalos que você determinou nas duas etapas anteriores. | Arquiteto de nuvem | 

### Configurar rotas de blackhole do Transit Gateway
<a name="configure-transit-gateway-blackhole-routes"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie buracos negros não roteáveis CIDRs mais específicos. | Cada tabela de roteamento do gateway de trânsito precisa ter um conjunto de rotas blackhole criadas para as não roteáveis. CIDRs Eles são configurados para garantir que qualquer tráfego do CIDR VPC secundário permaneça não roteável e não vaze para a rede maior. Essas rotas devem ser mais específicas do que o CIDR não roteável definido como CIDR secundário na VPC. Por exemplo, se o CIDR secundário não roteável for 100.64.0.0/26, as rotas do blackhole na tabela de rotas do Transit Gateway deverão ser 100.64.0.0/27 e 100.64.0.32/27. | Arquiteto de nuvem | 

## Recursos relacionados
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-resources"></a>
+ [Melhores práticas para implantar o balanceador de carga do gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/)
+ [Arquiteturas de inspeção distribuídas com Gateway Load Balancer](https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/distributed-inspection-architectures-gwlb-ra.pdf?did=wp_card&trk=wp_card)
+ [Dia de imersão em redes ‒ ](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc)‒ [Lab de Internet para o Firewall da VPC](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc)
+ [Melhores práticas de design do gateway de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html)

## Mais informações
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-additional"></a>

O intervalo CIDR secundário não roteável também pode ser útil ao trabalhar com implantações de contêineres em maior escala que exigem um grande conjunto de endereços IP. Você pode usar esse padrão com um gateway NAT privado para usar uma sub-rede não roteável para hospedar suas implantações de contêineres. Para obter mais informações, consulte a postagem de blog [Como resolver o esgotamento de IP privado com a solução de NAT privado](https://aws.amazon.com/blogs/networking-and-content-delivery/how-to-solve-private-ip-exhaustion-with-private-nat-solution/).

# Provisione um produto Terraform AWS Service Catalog usando um repositório de código
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository"></a>

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

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

AWS Service Catalog [oferece suporte ao provisionamento de autoatendimento com governança para suas HashiCorp configurações do Terraform.](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) Se você usa o Terraform, pode usar o Service Catalog como a única ferramenta para organizar, controlar e distribuir suas configurações do Terraform em grande escala. AWS Você pode acessar os principais recursos do Service Catalog, incluindo catalogação de modelos padronizados e pré-aprovados de infraestrutura como código (IaC), controle de acesso, provisionamento de recursos em nuvem com acesso de privilégios mínimos, controle de versão, compartilhamento com milhares de pessoas e marcação. Contas da AWS Usuários finais, como engenheiros, administradores de banco de dados e cientistas de dados, veem uma lista de produtos e versões aos quais têm acesso e podem implantá-los por meio de uma única ação.

Esse padrão ajuda você a implantar AWS recursos usando o código do Terraform. O código do Terraform no GitHub repositório é acessado por meio do Service Catalog. Usando essa abordagem, você integra os produtos aos seus fluxos de trabalho existentes do Terraform. Os administradores podem criar portfólios do Service Catalog e adicionar AWS Launch Wizard produtos a eles usando o Terraform.

A seguir estão os benefícios dessa solução:
+ Devido ao recurso de reversão no Service Catalog, se ocorrer algum problema durante a implantação, você poderá reverter o produto para uma versão anterior.
+ Você pode identificar facilmente as diferenças entre as versões do produto. Isso ajuda você a resolver problemas durante a implantação.
+ Você pode configurar uma conexão de repositório no Service Catalog, como para GitHub ou GitLab. Você pode fazer alterações no produto diretamente por meio do repositório.

Para obter informações sobre os benefícios gerais do AWS Service Catalog, consulte [O que é Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).

## Pré-requisitos e limitações
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Um GitHub, BitBucket, ou outro repositório que contenha arquivos de configuração do Terraform no formato ZIP.
+ AWS Serverless Application Model [Interface de linha de comando (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) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Vá, [instalado](https://go.dev/doc/install).
+ [Python versão 3.9, instalado.](https://www.python.org/downloads/release/python-3913/) AWS SAM A CLI requer essa versão do Python.
+ Permissões para escrever e executar AWS Lambda funções e permissões para acessar e gerenciar produtos e portfólios do Service Catalog.

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

![\[Diagrama de arquitetura do provisionamento de um produto Terraform no Service Catalog a partir de um repositório de código\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7d0d76e8-9485-4b3f-915f-481b6a7cdcd9/images/e83fa44a-4ca6-4438-a0d1-99f09a3541bb.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Quando uma configuração do Terraform está pronta, um desenvolvedor cria um arquivo.zip que contém todo o código do Terraform. O desenvolvedor carrega o arquivo.zip no repositório de código conectado ao Service Catalog.

1. Um administrador associa o produto Terraform a um portfólio no Service Catalog. O administrador também cria uma restrição de lançamento que permite que os usuários finais provisionem o produto.

1. No Service Catalog, os usuários finais iniciam AWS recursos usando a configuração do Terraform. Eles podem escolher a versão do produto a ser implantada.

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

**Serviços da AWS**
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)ajuda você a gerenciar centralmente catálogos de serviços de TI aprovados. AWS Os usuários finais podem implantar rapidamente somente os serviços de TI aprovados de que precisam, seguindo as restrições definidas pela organização.

**Outros serviços**
+ O [Go](https://go.dev/doc/install) é uma linguagem de programação de código aberto compatível com o Google.
+ [Python](https://www.python.org/) é uma linguagem de programação de computador de uso geral.

**Repositório de código**

Se você precisar de exemplos de configurações do Terraform que você possa implantar por meio do Service Catalog, você pode usar as configurações no repositório GitHub [Amazon Macie Organization](https://github.com/aws-samples/aws-macie-customization-terraform-samples) Setup Using Terraform. O uso das amostras de código neste repositório não é obrigatório.

## Práticas recomendadas
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-best-practices"></a>
+ Em vez de fornecer os valores das variáveis no arquivo de configuração do Terraform (`terraform.tfvars`), configure os valores das variáveis ao iniciar o produto por meio do Service Catalog.
+ Conceda acesso ao portfólio somente para usuários ou administradores específicos.
+ Respeite o princípio de privilégio mínimo, garantindo somente as permissões estritamente necessárias para a execução de uma tarefa. Para obter mais informações, consulte [Conceder privilégios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [melhores práticas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) na documentação AWS Identity and Access Management (IAM).

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

### Configure sua estação de trabalho local.
<a name="set-up-your-local-workstation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| (Opcional) Instale o Docker. | Se você quiser executar as AWS Lambda funções em seu ambiente de desenvolvimento, instale o Docker. Para obter mais informações, consulte [Install Docker Engine](https://docs.docker.com/engine/install/) (Instalar mecanismo do Docker) na documentação do Docker. | DevOps engenheiro | 
| Instale o AWS Service Catalog motor para o Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps engenheiro, administrador da AWS | 

### Conecte o GitHub repositório
<a name="connect-the-github-repository"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma conexão com o GitHub repositório. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 

### Crie um produto Terraform no Service Catalog
<a name="create-a-terraform-product-in-service-catalog"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o produto Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Crie um portfólio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Adicione o produto Terraform ao portfólio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Crie a política de acesso. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Crie uma política de confiança personalizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Adicione uma restrição de lançamento ao produto Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Conceda acesso ao produto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 
| Lance o produto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps engenheiro | 

### Verificar a implantação
<a name="verify-the-deployment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a implantação. | Há duas máquinas de AWS Step Functions estado para o fluxo de trabalho de provisionamento do Service Catalog:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html)Você verifica os registros da máquina de `ManageProvisionedProductStateMachine` estado para confirmar se o produto foi provisionado.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps engenheiro | 

### Limpeza da infraestrutura
<a name="clean-up-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua produtos provisionados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps engenheiro | 
| Remova o AWS Service Catalog motor do Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrador da AWS | 

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

**AWS documentação**
+ [Começando com um produto Terraform](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-Terraform.html)

**Documentação do Terraform**
+ [Instalação do Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
+ [Configuração de backend do Terraform](https://developer.hashicorp.com/terraform/language/backend)
+ [Documentação do Terraform AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)

## Mais informações
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-additional"></a>

**Política de acesso**

```
{
    "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 confiança**

```
{
    "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 vários Contas da AWS com um único endereço de e-mail usando o Amazon SES
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses"></a>

*Joe Wozniak e Shubhangi Vishwakarma, Amazon Web Services*

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

Esse padrão descreve como você pode dissociar endereços de e-mail reais do endereço de e-mail associado a um Conta da AWS. Contas da AWS exija que um endereço de e-mail exclusivo seja fornecido no momento da criação da conta. Em algumas organizações, a equipe que gerencia Contas da AWS deve assumir a responsabilidade de gerenciar vários endereços de e-mail exclusivos com sua equipe de mensagens. Isso pode ser difícil para grandes organizações que gerenciam muitas Contas da AWS. Além disso, se seu sistema de e-mail não permitir *endereçamento adicional* ou *subendereçamento*, conforme definido em [Sieve Email Filtering: Subaddress Extension (RFC 5233)](https://datatracker.ietf.org/doc/html/rfc5233) (adicionando um sinal de adição (\$1) e um identificador ao final da parte local do endereço de e-mail, como `admin+123456789123@example.com`) este padrão pode ajudar a superar essa limitação.

Esse padrão fornece uma solução exclusiva de venda automática de endereços de e-mail que permite que Conta da AWS os proprietários associem um endereço de e-mail a vários Contas da AWS. Os endereços de e-mail reais dos Conta da AWS proprietários são então associados a esses endereços de e-mail gerados em uma tabela. A solução lida com todos os e-mails recebidos para as contas de e-mail exclusivas, pesquisa o proprietário de cada conta e, em seguida, encaminha todas as mensagens recebidas para o proprietário.  

## Pré-requisitos e limitações
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-prereqs"></a>

**Pré-requisitos **
+ Acesso administrativo a um Conta da AWS.
+ Acesso a um ambiente de desenvolvimento. 
+ (Opcional) A familiaridade com AWS Cloud Development Kit (AWS CDK) os fluxos de trabalho e com a linguagem de programação Python ajudará você a solucionar quaisquer problemas ou fazer modificações.

**Limitações**
+ O tamanho geral do endereço de e-mail vendido é de 64 caracteres. Para obter detalhes, consulte [CreateAccount](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreateAccount.html)a *referência AWS Organizations da API*.

**Versões do produto**
+ Node.js versão 22.x ou posterior
+ Python 3.13 ou posterior
+ **Pacotes Python pip e **virtualenv****
+ AWS CDK CLI versão 2.10.19.2 ou posterior
+ Docker 20.10.x ou superior

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

**Pilha de tecnologias de destino**
+ CloudFormation pilha
+ AWS Lambda funções
+ Regras e conjunto de regras do Amazon Simple Email Service (Amazon SES)
+ AWS Identity and Access Management Funções e políticas (IAM)
+ O bucket do Amazon Simple Storage Service (Amazon S3) e política de bucket.
+ AWS Key Management Service (AWS KMS) chave e política chave
+ Tópico e política de tópico do Amazon Simple Notification Service (Amazon SNS)
+ Tabela do Amazon DynamoDB 

**Arquitetura de destino**

![\[Arquitetura de destino para registro de várias contas da AWS com um único endereço de e-mail\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/1be85b92-69e5-43b2-aeed-27b9509e145e/images/c7ae9d7a-d4e0-412e-97cb-0f3073e012e7.png)


Esse diagrama mostra dois fluxos:
+ **Fluxo de venda automática de endereços de e-mail:** no diagrama, o fluxo de venda automática de endereços de e-mail (seção inferior) geralmente inicia com uma solução de venda automática de contas ou automação externa, ou é invocado manualmente. Na solicitação, uma função do Lambda é chamada com uma carga que contém os metadados necessários. A função usa essas informações para gerar um nome de conta e endereço de e-mail exclusivos, armazenar em um banco de dados do DynamoDB e retornar os valores ao chamador. Esses valores podem então ser usados para criar um novo Conta da AWS (normalmente usando AWS Organizations).
+ **Fluxo de encaminhamento de e-mail:** esse fluxo é ilustrado na seção superior do diagrama anterior. Quando um Conta da AWS é criado usando o e-mail da conta gerado a partir do fluxo de venda automática de endereços de e-mail, AWS envia vários e-mails, como confirmação do registro da conta e notificações periódicas, para esse endereço de e-mail. Seguindo as etapas desse padrão, você configura seu Conta da AWS com o Amazon SES para receber e-mails de todo o domínio. Essa solução configura regras de encaminhamento que permitem ao Lambda processar todos os e-mails recebidos, verificar se o endereço `TO` está na tabela do DynamoDB e encaminhar a mensagem para o endereço de e-mail do proprietário da conta. O uso desse processo dá aos proprietários da conta a capacidade de associar várias contas a um endereço de e-mail.

**Automação e escala**

Esse padrão usa o AWS CDK para automatizar totalmente a implantação. A solução usa serviços AWS gerenciados que serão (ou podem ser configurados para) escalar automaticamente para atender às suas necessidades. As funções do Lambda podem exigir configuração adicional para atender às suas necessidades de escalabilidade. Para obter mais informações, consulte [Como entender a escalabilidade da função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html) na documentação do Lambda.

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

**Serviços da AWS**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir com os serviços da AWS por meio de comandos em seu shell de linha de comando.
+ O [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida, previsível e escalável.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html): ajuda você a enviar e receber e-mails usando seus próprios endereços de e-mail e domínios.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Ferramentas necessárias para implantação**
+ Ambiente de desenvolvimento com acesso AWS CLI e IAM ao seu Conta da AWS. Para obter detalhes, consulte os links na seção [Recursos relacionados](#register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources).  
+ Em seu sistema de desenvolvimento, instale o seguinte:
  + Ferramenta de linha de comando do Git, disponível no [site de downloads do Git](https://git-scm.com/downloads).
  + O AWS CLI para configurar as credenciais de acesso para o. AWS CDK Para obter mais informações, consulte a [documentação do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
  + Python versão 3.13 ou posterior, disponível no [site de downloads do Python](https://www.python.org/downloads/).
  + UV para gerenciamento de pacotes Python. Para obter instruções de instalação, consulte o [guia de instalação do UV](https://docs.astral.sh/uv/getting-started/installation/).
  + Node.js versão 22.x ou posterior. Para obter instruções de instalação, consulte a [documentação do Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs).
  + AWS CDK CLI versão 2.1019.2 ou posterior. Para obter instruções de instalação, consulte a [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html#getting-started-install).
  + Docker versão 20.10.x ou posterior. Para obter instruções de instalação, consulte a [documentação do Docker](https://docs.docker.com/engine/install/).

**Código **

O código desse padrão está disponível no repositório de [e-mail de GitHub Conta da AWS fábrica](https://github.com/aws-samples/aws-account-factory-email).

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

### Aloque um ambiente de implantação de destino
<a name="allocate-a-target-deployment-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique ou crie um Conta da AWS. | Identifique um existente ou novo Conta da AWS ao qual você tenha acesso administrativo total para implantar a solução de e-mail. | Administrador da AWS, administrador de nuvem | 
| Configurar um ambiente de implantação. | Configure um ambiente de implantação fácil de usar e configure dependências seguindo estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | AWS DevOps, desenvolvedor de aplicativos | 

### Configurar um domínio verificado
<a name="set-up-a-verified-domain"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique e aloque um domínio. | A funcionalidade de encaminhamento de e-mail requer um domínio dedicado. Identifique e aloque um domínio ou subdomínio que você possa verificar com o Amazon SES. Esse domínio deve estar disponível para receber e-mails recebidos no local em Conta da AWS que a solução de encaminhamento de e-mail está implantada.Requisitos de domínio:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Administrador de nuvem, administrador de rede, administrador de DNS | 
| Verificar o domínio. | Verifique se o domínio identificado pode ser usado para aceitar e-mails recebidos.Complete as instruções em [Como verificar seu domínio para recebimento de e-mails do Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-verification.html) na documentação do Amazon SES. Isso exigirá coordenação com a pessoa ou equipe responsável pelos registros DNS do domínio. | Desenvolvedor de aplicativos, AWS DevOps | 
| Configurar registros MX. | Configure seu domínio com registros MX que apontam para os endpoints do Amazon SES em sua região Conta da AWS . Para obter mais informações, consulte [Publicação de um registro MX para recebimento de e-mails do Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html) na documentação do Amazon SES. | Administrador de nuvem, administrador de rede, administrador de DNS | 

### Implemente a solução de venda e encaminhamento de e-mails
<a name="deploy-the-email-vending-and-forwarding-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Modifique os valores padrão em `cdk.json`. | Edite alguns dos valores padrão no arquivo `cdk.json` (na raiz do repositório) para que a solução funcione corretamente após a implantação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desenvolvedor de aplicativos, AWS DevOps | 
| Implante a solução de venda e encaminhamento de e-mails. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desenvolvedor de aplicativos, AWS DevOps | 
| Verificar se a solução foi implantada. | Verificar se a solução foi implantada com sucesso antes de começar o teste:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desenvolvedor de aplicativos, AWS DevOps | 

### Verificar se a venda e o encaminhamento de e-mails funcionam conforme o esperado
<a name="verify-that-email-vending-and-forwarding-operate-as-expected"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar se a API está trabalhando. | Nesta etapa, você enviará dados de teste para a API da solução e confirma se a solução produz a saída esperada e se as operações de backend foram executadas conforme o esperado.Execute manualmente a função do Lambda **Vend Email** usando a entrada de teste. (Para ver um exemplo, consulte o arquivo [sample\$1vend\$1request.json](https://github.com/aws-samples/aws-account-factory-email/blob/main/src/events/sample_vend_request.json).) Use um endereço de e-mail válido para `OwnerAddress`. A API deve retornar o nome da conta e o e-mail da conta com os valores esperados. | Desenvolvedor de aplicativos, AWS DevOps | 
| Verificar se o e-mail está sendo encaminhado. | Nesta etapa, você enviará um e-mail de teste pelo sistema e verifica se o e-mail foi encaminhado para o destinatário esperado.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Desenvolvedor de aplicativos, AWS DevOps | 

## Solução de problemas
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O sistema não encaminha e-mails conforme o esperado. | Verificar se sua configuração está correta:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html)Depois de verificar a configuração do domínio, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Ao tentar implantar a AWS CDK pilha, você recebe um erro semelhante a:“Erro no formato do modelo: tipos de recursos não reconhecidos”  | Na maioria das instâncias, essa mensagem de erro significa que a região que você está segmentando não tem todos os serviços da AWS disponíveis. Se você estiver usando uma EC2 instância da Amazon para implantar a solução, você pode ter como alvo uma região diferente da região em que a instância está sendo executada.Por padrão, o é AWS CDK implantado na região e na conta que você configurou no AWS CLI.Soluções possíveis:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Ao implementar a solução, você recebe a mensagem de erro:“Falha na implantação: Erro: AwsMailFwdStack: parâmetro SSM bootstrap/hnb659fds/version /cdk- não encontrado. O ambiente foi inicializado? Por favor, execute 'cdk bootstrap'” | Se você nunca implantou nenhum AWS CDK recurso na região que está almejando, primeiro precisará executar o `cdk bootstrap` comando conforme o erro indica. Conta da AWS Se você continua recebendo esse erro depois de executar o comando inicialização, talvez esteja tentando implementar a solução em uma região diferente da região em que seu ambiente de desenvolvimento está sendo executado.Para resolver esse problema, defina a variável de `AWS_DEFAULT_REGION` ambiente ou defina uma região com o AWS CLI antes de implantar a solução. Como alternativa, você pode modificar o arquivo `app.py` na raiz do repositório para incluir um ID de conta e uma região de codificação rígida seguindo as instruções na [documentação do AWS CDK para ambientes](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 obter ajuda na instalação do AWS CLI, consulte [Instalando ou atualizando para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ Para obter ajuda na configuração do AWS CLI com credenciais de acesso do IAM, consulte [Como configurar as configurações do](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). AWS CLI
+ Para obter ajuda com o AWS CDK, consulte [Introdução ao AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_install). 

## Mais informações
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-additional"></a>

**Custos**

Quando você implanta essa solução, o Conta da AWS detentor pode incorrer em custos associados ao uso dos seguintes serviços.  É importante entender como esses serviços são cobrados para estar ciente de quaisquer possíveis cobranças. Para obter mais informações sobre definição de preço, veja as seguintes páginas:
+ [Definição de preços do Amazon SES](https://aws.amazon.com/ses/pricing/)
+ [Definição de preços do Amazon S3](https://aws.amazon.com/s3/pricing/)
+ [AWS KMS preços](https://aws.amazon.com/kms/pricing/)
+ [AWS Lambda preços](https://aws.amazon.com/lambda/pricing/)
+ [Preços do Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/)

# Configure a resolução de DNS para redes híbridas em um ambiente de conta única da AWS
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment"></a>

*Abdullahi Olaoye, Amazon Web Services*

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

Esse padrão descreve como configurar uma arquitetura de Sistema de Nomes de Domínio (DNS) totalmente híbrida que permite a resolução de end-to-end DNS de recursos locais, recursos da AWS e consultas de DNS na Internet, sem sobrecarga administrativa. O padrão descreve como configurar as regras de encaminhamento do Amazon Route 53 Resolver que determinam para onde uma consulta ao DNS originada da AWS deve ser enviada, com base no nome do domínio. As consultas ao DNS para recursos on-premises são encaminhadas para solucionadores de DNS on-premises. As consultas ao DNS para recursos da AWS e consultas ao DNS da Internet são resolvidas pelo Route 53 Resolver.

Esse padrão cobre a resolução de DNS híbrido em um ambiente de conta única da AWS. Para obter informações sobre como configurar consultas ao DNS de saída em um ambiente de várias contas da AWS, consulte o padrão [Configurar a resolução de DNS para redes híbridas em um ambiente da AWS com várias contas](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.html).

## Pré-requisitos e limitações
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-prereqs"></a>

**Pré-requisitos **
+ Uma conta da AWS
+ Uma nuvem privada virtual (VPC) na conta da AWS.
+ Uma conexão de rede entre o ambiente on-premises e a sua VPC, por meio da AWS Virtual Private Network (AWS VPN) ou do AWS Direct Connect
+ Endereços IP dos seus solucionadores de DNS on-premises (acessíveis a partir da sua VPC)
+ Nome de domínio/subdomínio a ser encaminhado aos solucionadores on-premises (por exemplo, onprem.mydc.com)
+ Nome de domínio/subdomínio para a zona hospedada privada da AWS (por exemplo, myvpc.cloud.com)

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

**Pilha de tecnologias de destino**
+ Zona hospedada privada do Amazon Route 53
+ Amazon Route 53 Resolver
+ Amazon VPC
+ AWS VPN ou Direct Connect

**Arquitetura de destino**

![\[Fluxo de trabalho da resolução de DNS híbrida em um ambiente da AWS de conta única usando o Route 53 Resolver.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/120dedc8-cc6c-4aa7-be11-c70a7ee80642/images/7b75f534-1adc-4a39-86d6-5c4596ff7b6a.png)


 

## Ferramentas
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-tools"></a>
+ O [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) facilita a nuvem híbrida para clientes corporativos ao permitir uma resolução perfeita de consultas ao DNS em toda a sua nuvem híbrida. Você pode criar endpoints de DNS e regras de encaminhamento condicional para resolver namespaces DNS entre seu data center local e seu. VPCs
+ A [zona hospedada privada do Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) é um contêiner que contém informações sobre como você deseja que o Route 53 responda às consultas de DNS para um domínio e seus subdomínios em um ou mais VPCs que você cria com o serviço Amazon VPC.

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

### Configurar uma zona hospedada privada
<a name="configure-a-private-hosted-zone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma zona hospedada privada do Route 53 para um nome de domínio reservado da AWS, como myvpc.cloud.com. | Essa zona contém os registros DNS dos recursos da AWS que devem ser resolvidos no ambiente on-premises. Para obter instruções, consulte [Como criar uma zona hospedada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) na documentação do Route 53. | Admin de rede, admin do sistema | 
| Associe a zona hospedada privada à sua VPC. | Para permitir que os recursos em sua VPC resolvam registros DNS nessa zona hospedada privada, você deve associar sua VPC à zona hospedada. Para obter instruções, consulte [Como criar uma zona hospedada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) na documentação do Route 53. | Admin de rede, admin do sistema | 

### Configurar endpoints do Route 53 Resolver
<a name="set-up-route-53-resolver-endpoints"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um endpoint de entrada. | O Route 53 Resolver usa o endpoint de entrada para receber consultas ao DNS de solucionadores DNS on-premises. Para obter instruções, consulte [Encaminhando consultas DNS de entrada para você na documentação do VPCs Route](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html) 53. Anote o endereço IP do endpoint de entrada. | Admin de rede, admin do sistema | 
| Crie um endpoint de saída | O Route 53 Resolver usa o endpoint de saída para enviar consultas ao DNS para solucionadores DNS on-premises. Para obter instruções, consulte [Como encaminhar consultas ao DNS de saída para sua rede](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-outbound-queries.html) na documentação do Route 53. Anote o ID do endpoint de saída. | Admin de rede, admin do sistema | 

### Configure uma regra de encaminhamento e associe à sua VPC
<a name="set-up-a-forwarding-rule-and-associate-it-with-your-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma regra para o domínio no on-premises | Essa regra instruirá o Route 53 Resolver a encaminhar qualquer consulta ao DNS para domínios on-premises (como onprem.mydc.com) para solucionadores de DNS on-premises. Para criar essa regra, você precisará dos endereços IP dos solucionadores de DNS on-premises e do ID do endpoint de saída do Route 53 Resolver. Para obter instruções, consulte [Como gerenciar regras de encaminhamento](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) na documentação do Route 53. | Admin de rede, admin do sistema | 
| Associe a regra de encaminhamento à sua VPC. | Para que a regra de encaminhamento entre em vigor, você deve associar a regra à sua VPC. O Route 53 Resolver então leva a regra em consideração ao resolver um domínio. Para obter instruções, consulte [Como gerenciar regras de encaminhamento](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) na documentação do Route 53. | Admin de rede, admin do sistema | 

### Configurar solucionadores de DNS on-premises
<a name="configure-on-premises-dns-resolvers"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o encaminhamento condicional nos solucionadores de DNS on-premises.  | Para que as consultas ao DNS sejam enviadas para a zona hospedada privada do Route 53 a partir do ambiente on-premises, você deve configurar o encaminhamento condicional nos solucionadores de DNS on-premises. Isso instrui os solucionadores de DNS a encaminhar todas as consultas ao DNS para o domínio da AWS (por exemplo, para myvpc.cloud.com) para o endereço IP do endpoint de entrada do Route 53 Resolver. | Admin de rede, admin do sistema | 

### Teste a end-to-end resolução do DNS
<a name="test-end-to-end-dns-resolution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a resolução de DNS da AWS para o ambiente on-premises. | Em um servidor na VPC, execute uma consulta ao DNS para um domínio on-premises (como server1.onprem.mydc.com). | Admin de rede, admin do sistema | 
| Teste a resolução de DNS para o ambiente on-premises. | Em um servidor on-premises, execute a resolução de DNS para um domínio da AWS (como server1.myvpc.cloud.com). | Admin de rede, admin do sistema | 

## Recursos relacionados
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-resources"></a>
+ [Gerenciamento de DNS centralizado da nuvem híbrida com o Amazon Route 53 e o 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 redes e entrega de conteúdo da AWS)
+ [Simplifique o gerenciamento de DNS em um ambiente de várias contas com o Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (blog de segurança da AWS)
+ [Trabalhando com zonas hospedadas privadas](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) (documentação do Route 53)
+ [Conceitos básicos do Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) (documentação do Route 53 Resolver)

# Configure bots de UiPath RPA automaticamente na Amazon EC2 usando a AWS CloudFormation
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation"></a>

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

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

Esse padrão explica como você pode implantar bots de automação robótica de processos (RPA) em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Ele usa um pipeline do [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) para criar uma Amazon Machine Image (AMI) personalizada. Uma AMI é uma imagem de máquina virtual (VM) pré-configurada que contém o sistema operacional (OS) e o software pré-instalado para implantar instâncias. EC2 Esse padrão usa CloudFormation modelos da AWS para instalar a [edição UiPath Studio Community](https://www.uipath.com/product/studio) na AMI personalizada. UiPath é uma ferramenta de RPA que ajuda você a configurar robôs para automatizar suas tarefas.

Como parte dessa solução, as instâncias EC2 do Windows são iniciadas usando a AMI básica e o aplicativo UiPath Studio é instalado nas instâncias. O padrão usa a ferramenta Microsoft System Preparation (Sysprep) para duplicar uma instalação personalizada do Windows. Depois disso, ele remove as informações do host e cria uma AMI final da instância. Em seguida, você pode executar as instâncias sob demanda usando a AMI final com suas próprias convenções de nomenclatura e configuração de monitoramento.


| 
| 
| Observação: esse padrão não fornece nenhuma informação sobre o uso de bots de RPA. Para obter essas informações, consulte a [UiPath documentação](https://docs.uipath.com/). Você também pode usar esse padrão para configurar outros aplicativos de bot RPA personalizando as etapas de instalação com base em seus requisitos. | 
| --- |

Esse padrão fornece as seguintes automações e benefícios:
+ Implantação e compartilhamento de aplicativos: você pode criar a Amazon EC2 AMIs para implantação de aplicativos e compartilhá-los em várias contas por meio de um pipeline do EC2 Image Builder, que usa CloudFormation modelos da AWS como scripts de infraestrutura como código (IaC).
+  EC2 Provisionamento e escalabilidade da Amazon: os modelos de CloudFormation IaC fornecem sequências personalizadas de nomes de computadores e automação de junção do Active Directory.
+ Observabilidade e monitoramento: o padrão configura os CloudWatch painéis da Amazon para ajudar você a monitorar as EC2 métricas da Amazon (como uso de CPU e disco).
+ Benefícios da RPA para sua empresa: a RPA melhora a precisão porque os robôs podem realizar tarefas atribuídas de forma automática e consistente. A RPA também aumenta a velocidade e a produtividade porque remove operações que não agregam valor e lida com atividades repetitivas.

## Pré-requisitos e limitações
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-prereqs"></a>

**Pré-requisitos **
+ Uma [conta AWS](https://aws.amazon.com/free/) ativa
+ [Permissões do AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) para implantação de modelos CloudFormation 
+ [Políticas do IAM](https://docs.aws.amazon.com/imagebuilder/latest/userguide/cross-account-dist.html) para configurar a distribuição de AMI entre contas com o EC2 Image Builder

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

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


1. O administrador fornece a AMI básica do Windows no `ec2-image-builder.yaml` arquivo e implanta a pilha no CloudFormation console.

1. A CloudFormation pilha implanta o pipeline do EC2 Image Builder, que inclui os seguintes recursos:
   + `Ec2ImageInfraConfiguration`
   + `Ec2ImageComponent`
   + `Ec2ImageRecipe`
   + `Ec2AMI`

1. O pipeline do EC2 Image Builder inicia uma EC2 instância temporária do Windows usando a AMI básica e instala os componentes necessários (nesse caso, o UiPath Studio).

1. O EC2 Image Builder remove todas as informações do host e cria uma AMI do Windows Server.

1. Você atualiza o `ec2-provisioning yaml` arquivo com a AMI personalizada e executa várias EC2 instâncias com base em seus requisitos.

1. Você implanta a macro Count usando um CloudFormation modelo. Essa macro fornece uma propriedade **Count** para CloudFormation recursos para que você possa especificar facilmente vários recursos do mesmo tipo.

1. Você atualiza o nome da macro no CloudFormation `ec2-provisioning.yaml` arquivo e implanta a pilha.

1. O administrador atualiza o arquivo `ec2-provisioning.yaml` com base nos requisitos e inicia a pilha.

1. O modelo implanta EC2 instâncias com o aplicativo UiPath Studio.

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

**Serviços da AWS**
+  CloudFormationA [AWS](https://aws.amazon.com/cloudformation/) ajuda você a modelar e gerenciar recursos de infraestrutura de forma automatizada e segura.
+  CloudWatchA [Amazon](https://aws.amazon.com/cloudwatch/) ajuda você a observar e monitorar recursos e aplicativos na AWS, no local e em outras nuvens.
+ [A Amazon Elastic Compute Cloud (Amazon EC2](https://aws.amazon.com/ec2/)) fornece capacidade computacional segura e redimensionável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ EC2 O [Image Builder](https://aws.amazon.com/image-builder/) simplifica a criação, o teste e a implantação de máquinas virtuais e imagens de contêineres para uso na AWS ou localmente.
+  EventBridgeA [Amazon](https://aws.amazon.com/eventbridge/) ajuda você a criar aplicativos orientados por eventos em grande escala na AWS, em sistemas existentes ou em aplicativos de software como serviço (SaaS).
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a controlar de modo seguro o acesso a recursos da AWS. Com o IAM, é possível gerenciar, de maneira centralizada, permissões que controlam quais recursos da AWS os usuários poderão acessar. Com o IAM, você controla quem pode se autenticar (fazer login) e quem tem autorização (permissões) para acessar os recursos.
+ O [AWS Lambda](https://aws.amazon.com/lambda/) é um serviço computacional com tecnologia sem servidor e orientado a eventos que permite executar o código em praticamente qualquer tipo de aplicativo ou serviço de backend sem o provisionamento ou gerenciamento de servidores. Você chama as funções do Lambda a partir de mais de 200 serviços da AWS e aplicativos de SaaS e pagar somente pelo que usar.
+ O [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O AWS Systems Manager Agent (SSM Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) ajuda o Systems Manager a atualizar, gerenciar e configurar EC2 instâncias, dispositivos periféricos, servidores locais e máquinas virtuais ()VMs.

**Repositórios de códigos**

O código desse padrão está disponível na [configuração do bot GitHub UiPath RPA usando](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation) o CloudFormation repositório. O padrão também usa uma macro que está disponível no [repositório de CloudFormation macros da AWS](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count).

## Práticas recomendadas
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-best-practices"></a>
+ A AWS lança um novo [Windows AMIs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html) todo mês. Elas contêm os drivers, agentes de execução e patches do SO mais recentes. Recomendamos utilizar o AMI mais recente ao executar novas instâncias ou ao criar suas próprias imagens personalizadas.
+ Aplique todos os patches de segurança disponíveis para Windows ou Linux durante a criação de imagens.

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

### Implementar um pipeline de imagens para a imagem base
<a name="deploy-an-image-pipeline-for-the-base-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure um pipeline do EC2 Image Builder. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Veja as configurações do EC2 Image Builder. | As configurações do EC2 Image Builder incluem configuração de infraestrutura, configurações de distribuição e configurações de verificação de segurança. Para ver as configurações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Como prática recomendada, você deve fazer qualquer atualização no EC2 Image Builder somente por meio do CloudFormation modelo. | AWS DevOps | 
| Visualize o pipeline de imagens. | Para ver o pipeline de imagens implantado:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Veja os logs do Image Builder. | EC2 Os registros do Image Builder são agregados em grupos de CloudWatch registros. Para ver os logins CloudWatch:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)EC2 Os registros do Image Builder também são armazenados em um bucket do S3. Para visualizar os logs no bucket:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Faça upload do UiPath arquivo em um bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Implantar e testar a macro Count
<a name="deploy-and-test-the-count-macro"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar a macro Count. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Se você quiser usar o console, siga as instruções no épico anterior ou na [CloudFormation documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).  | DevOps engenheiro | 
| Testar a macro Count. | Para testar os recursos da macro, tente iniciar o modelo de exemplo fornecido com a macro. <pre>aws cloudformation deploy \<br />    --stack-name Count-test \<br />    --template-file test.yaml \<br />    --capabilities CAPABILITY_IAM</pre> | DevOps engenheiro | 

### Implante a CloudFormation pilha para provisionar instâncias com a imagem personalizada
<a name="deploy-the-cloudformation-stack-to-provision-instances-with-the-custom-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o modelo de EC2 provisionamento da Amazon. | Para implantar o EC2 Image Pipeline usando CloudFormation:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Veja as EC2 configurações da Amazon. | As EC2 configurações da Amazon incluem configurações de segurança, rede, armazenamento, verificações de status, monitoramento e tags. Para ver essas configurações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Veja o CloudWatch painel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Depois que você provisiona a pilha, leva algum tempo para que o painel seja preenchido com as métricas.O painel fornece essas métricas:`CPUUtilization`, `DiskUtilization`, `MemoryUtilization`, `NetworkIn`, `NetworkOut`, `StatusCheckFailed`. | AWS DevOps | 
| Visualizar métricas personalizadas para uso de memória e disco.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Visualizar os alarmes para uso da memória e do disco.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Verificar a regra do ciclo de vida do snapshot. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Excluir o ambiente (opcional)
<a name="delete-the-environment-optional"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua as pilhas. | Quando seu PoC ou projeto piloto estiver concluído, recomendamos que você exclua as pilhas criadas para garantir que não seja cobrado por esses recursos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)A operação de exclusão da pilha não pode ser interrompida após ser iniciada. A pilha continua para o estado `DELETE_IN_PROGRESS`.Se houver falha ao excluir, a pilha estará no estado `DELETE_FAILED`. Para obter soluções, consulte [Excluir falhas na pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) na documentação de solução de CloudFormation problemas da AWS.Para obter informações sobre como proteger pilhas de serem excluídas acidentalmente, consulte Como [proteger uma pilha de ser excluída na documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) da AWS. CloudFormation  | AWS DevOps | 

## Solução de problemas
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ao implantar o modelo de EC2 provisionamento da Amazon, você recebe o erro: *Received malformed response from transform 123xxxx*: :Count. | Esse é um problema conhecido. (Veja a solução personalizada e o PR no [repositório de CloudFormation macros da AWS](https://github.com/aws-cloudformation/aws-cloudformation-macros/pull/20).)[Para corrigir esse problema, abra o console do AWS Lambda e atualize `index.py` com o conteúdo do GitHub repositório.](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 repositórios**
+ [UiPath Configuração do bot RPA usando CloudFormation](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation)
+ [ CloudFormation Macro de contagem](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count)

**Referências da AWS**
+ [Criação de uma pilha no CloudFormation console da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentação)
+ [Solução de problemas CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html) (CloudFormation documentação)
+ [Monitore métricas de memória e disco para EC2 instâncias da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) ( EC2 documentação da Amazon)
+ [Como posso usar o CloudWatch agente para visualizar métricas do Monitor de Desempenho em um servidor Windows?](https://repost.aws/knowledge-center/cloudwatch-performance-monitor-windows) (Artigo do AWS ref:Post)

**Referências adicionais**
+ [UiPath documentação](https://docs.uipath.com/)
+ [Definindo o nome do host em uma SysPreped AMI](https://blog.brianbeach.com/2014/07/setting-hostname-in-syspreped-ami.html) (postagem no blog de Brian Beach)
+ [Como faço para que o Cloudformation reprocesse um modelo usando uma macro quando os parâmetros mudam?](https://stackoverflow.com/questions/59828989/how-do-i-make-cloudformation-reprocess-a-template-using-a-macro-when-parameters) (Estouro de pilha)

# Configure uma PeopleSoft arquitetura altamente disponível na AWS
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws"></a>

*Ramanathan Muralidhar, Amazon Web Services*

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

Quando você migra suas PeopleSoft cargas de trabalho para a AWS, a resiliência é um objetivo importante. Ele garante que seu PeopleSoft aplicativo esteja sempre altamente disponível e seja capaz de se recuperar rapidamente de falhas.

Esse padrão fornece uma arquitetura para seus PeopleSoft aplicativos na AWS para garantir alta disponibilidade (HA) nos níveis de rede, aplicativo e banco de dados. Ele usa um banco de dados [Amazon Relational Database Service (Amazon RDS](https://aws.amazon.com/rds/)) para Oracle ou Amazon RDS para SQL Server para a camada de banco de dados. Essa arquitetura também inclui serviços da AWS, como o [Amazon Route 53](https://aws.amazon.com/route53/), instâncias Linux do [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/), o [Amazon Elastic Block Storage (Amazon EBS)](https://aws.amazon.com/ebs/), o [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) e um [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer), além de ser escalável.

 PeopleSoftA [Oracle](https://www.oracle.com/applications/peoplesoft/) fornece um conjunto de ferramentas e aplicativos para gerenciamento da força de trabalho e outras operações comerciais.

## Pré-requisitos e limitações
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um PeopleSoft ambiente com as licenças necessárias para configurá-lo na AWS
+ Uma nuvem privada virtual (VPC) configurada em sua conta da AWS com os seguintes recursos:
  + Selecione pelo menos duas Zonas de disponibilidade.
  + Uma sub-rede pública e três sub-redes privadas em cada zona de disponibilidade
  + Um gateway NAT e um gateway da Internet
  + Tabelas de rotas para cada sub-rede para rotear o tráfego
  + Listas de controle de acesso à rede (rede ACLs) e grupos de segurança definidos para ajudar a garantir a segurança do PeopleSoft aplicativo de acordo com os padrões da sua organização

**Limitações**
+ Esse padrão fornece uma solução de alta disponibilidade (HA). Ele não oferece suporte a cenários de recuperação de desastres (DR). Na rara ocorrência de toda a região da AWS para a implementação de HA cair, o aplicativo ficará indisponível.

**Versões do produto**
+ PeopleSoft aplicativos executando PeopleTools 8.52 e versões posteriores

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

**Arquitetura de destino**

O tempo de inatividade ou interrupção de seu aplicativo de PeopleSoft produção afeta a disponibilidade do aplicativo e causa grandes interrupções em seus negócios.

Recomendamos que você projete seu aplicativo de PeopleSoft produção para que ele esteja sempre altamente disponível. Você pode conseguir isso eliminando pontos únicos de falha, adicionando pontos confiáveis de cruzamento ou failover e detectando falhas. O diagrama a seguir ilustra uma arquitetura de HA para PeopleSoft a AWS.

![\[Arquitetura altamente disponível para PeopleSoft na AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0db96376-dadb-4545-b130-ebbe64acd4e9/images/5d585a8e-320a-495d-a049-97171633e90f.png)


Essa implantação de arquitetura usa o Amazon RDS for Oracle como PeopleSoft banco de dados e instâncias EC2 que estão sendo executadas no Red Hat Enterprise Linux (RHEL). Você também pode usar o Amazon RDS para SQL Server como banco de dados Peoplesoft.

Essa arquitetura inclui os seguintes componentes: 
+ [O Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) é usado como servidor de nomes de domínio (DNS) para rotear solicitações da Internet para o PeopleSoft aplicativo.
+ O [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) ajuda você a se proteger contra exploits comuns da web e bots que podem afetar a disponibilidade, comprometer a segurança ou consumir recursos excessivos. O [AWS Shield Avançado](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) (não ilustrado) oferece uma proteção muito mais ampla.
+ Um [Application Load Balancer equilibra a carga](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) do tráfego HTTP e HTTPS com roteamento avançado de solicitações direcionado aos servidores da web.
+ Os servidores web, servidores de aplicativos, servidores de agendamento de processos e servidores Elasticsearch que oferecem suporte ao PeopleSoft aplicativo são executados em várias zonas de disponibilidade e usam o [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
+ O banco de dados usado pelo PeopleSoft aplicativo é executado no [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) em uma configuração Multi-AZ.
+ O compartilhamento de arquivos usado pelo PeopleSoft aplicativo é configurado no [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) e é usado para acessar arquivos entre instâncias.
+ As [Amazon Machine Images (AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) s) são usadas pelo Amazon EC2 Auto Scaling para PeopleSoft garantir que os componentes sejam clonados rapidamente quando necessário.
+ O [gateway NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) conecta as instâncias em uma sub-rede privada a serviços fora da VPC, e tgarantir que externos não iniciem uma conexão com essas instâncias.
+ Um [gateway da Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) é um componente da VPC horizontalmente dimensionado, redundante e altamente disponível que permite a comunicação entre a VPC e a Internet.
+ Os bastion hosts na sub-rede pública fornecem acesso aos servidores na sub-rede privada a partir de uma rede externa, como a Internet ou a rede on-premises. Os bastion hosts fornecem acesso controlado e seguro aos servidores nas sub-redes privadas.

**Detalhes de arquitetura**

O PeopleSoft banco de dados está alojado em um banco de dados Amazon RDS for Oracle (ou Amazon RDS for SQL Server) em uma configuração Multi-AZ. O atributo [Multi-AZ do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) replica as atualizações de bancos de dados em duas zonas de disponibilidade para aumentar a durabilidade e a disponibilidade. O Amazon RDS passará automaticamente para o modo de standby para manutenção planejada e interrupções não planejadas.

A PeopleSoft web e a camada intermediária são instaladas em instâncias do EC2. Essas instâncias estão espalhadas por várias zonas de disponibilidade e vinculadas por um [grupo do Auto Scaling.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) Isso garante que esses componentes estejam sempre altamente disponíveis. Um número mínimo de instâncias necessárias é mantido para garantir que o aplicativo esteja sempre disponível e possa ser escalado quando necessário.

Recomendamos que você use um tipo de instância do EC2 da geração atual para as instâncias OEM EC2. Os tipos de instância da geração atual, como [instâncias criadas no AWS Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), oferecem suporte a máquinas virtuais de hardware (HVMs). É necessário que o HVM aproveite AMIs as vantagens da [rede aprimorada](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) e também ofereça maior segurança. As instâncias do EC2 que fazem parte de cada grupo do Auto Scaling usam sua própria AMI ao substituir ou ampliar as instâncias. Recomendamos que você selecione os tipos de instância do EC2 com base na carga que você deseja que seu PeopleSoft aplicativo manipule e nos valores mínimos recomendados pela Oracle para seu PeopleSoft aplicativo e PeopleTools versão. Para obter mais informações sobre os requisitos de hardware e software, consulte o [site de suporte da Oracle](https://support.oracle.com).

A PeopleSoft web e o nível intermediário compartilham uma montagem do Amazon EFS para compartilhar relatórios, arquivos de dados e (se necessário) o `PS_HOME` diretório. O Amazon EFS é configurado com destinos de montagem em cada zona de disponibilidade por motivos de desempenho e custo.

Um Application Load Balancer é provisionado para suportar o tráfego que acessa o PeopleSoft aplicativo e balanceia a carga do tráfego entre os servidores web em diferentes zonas de disponibilidade. Um Application Load Balancer é um dispositivo de rede que fornece HA em pelo menos duas zonas de disponibilidade. Os servidores web distribuem o tráfego para diferentes servidores de aplicativos usando uma configuração de balanceamento de carga. O balanceamento de carga entre o servidor web e o servidor de aplicativos garante que a carga seja distribuída uniformemente entre as instâncias e ajuda a evitar gargalos e interrupções no serviço devido a instâncias sobrecarregadas.

O Amazon Route 53 é usado como serviço de DNS para rotear o tráfego da Internet para o Application Load Balancer. O Amazon Route 53 é um web service DNS altamente disponível e dimensionável.

**Detalhes do HA**
+ Bancos de dados: o atributo Multi-AZ do Amazon RDS opera dois bancos de dados em várias zonas de disponibilidade com replicação síncrona. Isso cria um ambiente altamente disponível com failover automático. O Amazon RDS tem detecção de eventos de failover e inicia um failover automático quando esses eventos ocorrem. Você também pode iniciar o failover manual por meio da API do Amazon RDS. Para obter uma explicação detalhada, consulte a postagem do blog [Amazon RDS Under The Hood: Multi-AZ](https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/). O failover é contínuo e o aplicativo se reconecta automaticamente ao banco de dados quando isso acontece. No entanto, qualquer trabalho do agendador de processos durante o failover gera erros e precisa ser reenviado.
+ PeopleSoft servidores de aplicativos: os servidores de aplicativos estão espalhados por várias zonas de disponibilidade e têm um grupo de Auto Scaling definido para eles. Se uma instância falhar, o grupo do Auto Scaling a substituirá imediatamente por uma instância íntegra que é clonada da AMI do modelo do servidor de aplicativos. Especificamente, o *jolt pooling* está ativado. Portanto, quando uma instância do servidor de aplicativos fica inativa, as sessões são transferidas automaticamente para outro servidor de aplicativos, e o grupo do Auto Scaling automaticamente cria outra instância, abre o servidor do aplicativo e o registra na montagem do Amazon EFS. O servidor de aplicativos recém-criado é adicionado automaticamente aos servidores web usando o `PSSTRSETUP.SH` script nos servidores web. Isso garante que o servidor de aplicativos esteja sempre altamente disponível e se recupere rapidamente de falhas.
+ Agendadores de processos: os servidores dos agendadores de processos estão espalhados por várias zonas de disponibilidade e têm um grupo do Auto Scaling definido para eles. Se uma instância falhar, o grupo do Auto Scaling a substituirá imediatamente por uma instância íntegra que é clonada da AMI do modelo do servidor de processos. Especificamente, quando uma instância do agendador de processos fica inativa, o grupo do Auto Scaling ativa automaticamente outra instância e ativa o agendador de processos. Todos os trabalhos que estavam em execução quando a instância falhou devem ser reenviados. Isso garante que o agendador de processos esteja sempre altamente disponível e se recupere rapidamente de falhas.
+ Servidores Elasticsearch: os servidores Elasticsearch têm um grupo do Auto Scaling definido para eles. Se uma instância falhar, o grupo do Auto Scaling a substituirá imediatamente por uma instância íntegra que é clonada da AMI do modelo do servidor Elasticsearch. Especificamente, quando uma instância do Elasticsearch fica inativa, o Application Load Balancer que atende às solicitações detecta a falha e para de enviar tráfego para ela. O grupo do Auto Scaling ativa automaticamente outra instância e ativa a instância do Elasticsearch. Quando a instância do Elasticsearch é reativada, o Application Load Balancer detecta que ela está íntegra e começa a enviar solicitações para ela novamente. Isso garante que o servidor Elasticsearch esteja sempre altamente disponível e se recupere rapidamente de falhas.
+ Servidores web: os servidores web têm um grupo do Auto Scaling definido para eles. Se uma instância falhar, o grupo do Auto Scaling a substituirá imediatamente por uma instância íntegra que é clonada da AMI do modelo de servidor web. Especificamente, quando uma instância do servidor web fica inativa, o Application Load Balancer que atende às solicitações detecta a falha e para de enviar tráfego para ela. O grupo do Auto Scaling ativa automaticamente outra instância e ativa a instância do servidor web. Quando a instância do web server é reativada, o Application Load Balancer detecta que ela está íntegra e começa a enviar solicitações para ela novamente. Isso garante que o servidor web esteja sempre altamente disponível e se recupere rapidamente de falhas.

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

**Serviços da AWS**
+ O [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/) distribui o tráfego de entrada do aplicativo por vários destinos, como instâncias EC2, em várias Zonas de disponibilidade.
+ O [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) oferece volumes de armazenamento ao nível do bloco para usar com instâncias do Amazon Elastic Compute Cloud (Amazon EC2).
+ O [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) oferece capacidade computacional escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.
+ O [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) é um serviço web de DNS altamente disponível e escalável.

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

**Melhores práticas operacionais**
+ Quando você executa PeopleSoft na AWS, use o Route 53 para rotear o tráfego da Internet e localmente. Use a [opção de failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring.html) para redirecionar o tráfego para o site de recuperação de desastres (DR) se a instância de banco de dados primária não estiver disponível.
+ Sempre use um Application Load Balancer na frente do PeopleSoft ambiente. Isso garante que a carga do tráfego seja balanceada para os servidores da web de forma segura.
+ Nas configurações do grupo-alvo do Application Load Balancer, verifique se a [aderência está ativada com um cookie gerado](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html) pelo balanceador de carga.
**nota**  
Talvez seja necessário usar um cookie baseado em aplicação se você usar uma autenticação única (SSO) externa. Isso garante que as conexões sejam consistentes entre os servidores web e os servidores de aplicativos.
+ Para um aplicativo PeopleSoft de produção, o tempo limite de inatividade do Application Load Balancer deve corresponder ao que está definido no perfil da web que você usa. Isso evita que as sessões do usuário expirem na camada do balanceador de carga.
+ Para um aplicativo PeopleSoft de produção, defina a [contagem de reciclagem](https://docs.oracle.com/cd/F28299_01/pt857pbr3/eng/pt/tsvt/concept_PSAPPSRVOptions-c07f06.html?pli=ul_d96e90_tsvt) do servidor de aplicativos para um valor que minimize os vazamentos de memória.
+ Se você estiver usando um banco de dados do Amazon RDS para seu aplicativo de PeopleSoft produção, conforme descrito neste padrão, execute-o no [formato Multi-AZ para obter alta disponibilidade](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html).
+ Se seu banco de dados estiver sendo executado em uma instância do EC2 para seu aplicativo PeopleSoft de produção, certifique-se de que um [banco de dados em espera esteja sendo executado em outra zona de disponibilidade](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html#ec2-oracle-ha) para alta disponibilidade.
+ Para DR, certifique-se de que seu banco de dados Amazon RDS ou instância do EC2 tenha um modo de espera configurado em uma região da AWS separada do banco de dados de produção. Isso garante que, em caso de desastre na região, você possa mudar o aplicativo para outra região.
+ Para DR, usar o [Amazon Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) para configurar componentes no nível do aplicativo em uma região separada dos componentes de produção. Isso garante que, em caso de desastre na região, você possa mudar o aplicativo para outra região.
+ Use o Amazon EFS (para I/O requisitos moderados) ou o [Amazon FSx](https://aws.amazon.com/fsx/) (para I/O requisitos altos) para armazenar seus PeopleSoft relatórios, anexos e arquivos de dados. Isso garante que o conteúdo seja armazenado em um local central e seja acessado de qualquer lugar dentro da infraestrutura.
+ Use a [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) (básica e detalhada) para monitorar os recursos da Nuvem AWS que seu PeopleSoft aplicativo está usando quase em tempo real. Isso garante que você receba alertas sobre problemas instantaneamente e possa resolvê-los rapidamente antes que afetem a disponibilidade do ambiente.
+ Se você estiver usando um banco de dados do Amazon RDS como banco de dados, use o PeopleSoft [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html). Esse recurso fornece acesso a mais de 50 métricas, incluindo CPU, memória e sistema de arquivosI/O, and disk I/O.
+ Use CloudTrail a [AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) para monitorar chamadas de API nos recursos da AWS que seu PeopleSoft aplicativo está usando. Isso ajuda você a realizar análises de segurança, rastreamento de alterações de recursos e auditoria de conformidade.

**Práticas recomendadas de segurança**
+ [Para proteger seu PeopleSoft aplicativo contra explorações comuns, como injeção de SQL ou cross-site scripting (XSS), use o AWS WAF.](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) Considere usar o [AWS Shield Avançado](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) para serviços personalizados de detecção e mitigação.
+ Adicione uma regra ao Application Load Balancer para redirecionar automaticamente o tráfego de HTTP para HTTPS e ajudar a proteger seu aplicativo. PeopleSoft 
+ Configure um grupo de segurança separado para o Application Load Balancer. Esse grupo de segurança deve permitir somente tráfego de HTTPS/HTTP entrada e nenhum tráfego de saída. Isso garante que somente o tráfego pretendido seja permitido e ajuda a proteger seu aplicativo.
+ Use sub-redes privadas para os servidores de aplicativos, servidores web e banco de dados, e use [gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) para tráfego de saída da Internet. Isso garante que os servidores que oferecem suporte ao aplicativo não possam ser acessados publicamente, ao mesmo tempo em que fornece acesso público somente aos servidores que precisam dele.
+ Use diferentes VPCs para executar seus ambientes PeopleSoft de produção e não produção. Use o [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/), o [emparelhamento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) ACLs, a [rede](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) e [os grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) para controlar o fluxo de tráfego entre as [VPCs](https://aws.amazon.com/vpc/) e, se necessário, seu datacenter local.
+ Seguir o princípio do privilégio mínimo Conceda acesso aos recursos da AWS usados pelo PeopleSoft aplicativo somente para usuários que realmente precisam deles. Conceder somente os privilégios mínimos necessários para executar uma tarefa. Para obter mais informações, consulte o [pilar Seguranç](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html) do AWS Well-Architected Framework.
+ Sempre que possível, use o [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) para acessar as instâncias do EC2 que o PeopleSoft aplicativo usa.

**Práticas recomendadas de confiabilidade**
+ Ao usar um Application Load Balancer, registre um único destino para cada zona de disponibilidade ativada. Isso torna o balanceador de carga mais eficaz.
+ Recomendamos que você tenha três endereços distintos URLs para cada ambiente de PeopleSoft produção: um URL para acessar o aplicativo, um para servir ao agente de integração e outro para visualizar relatórios. Se possível, cada URL deve ter seus próprios servidores web e servidores de aplicativos dedicados. Esse design ajuda a tornar seu PeopleSoft aplicativo mais seguro, pois cada URL tem uma funcionalidade distinta e acesso controlado. Também minimiza o escopo do impacto se os serviços subjacentes falharem.
+ Recomendamos que você configure [verificações de integridade nos grupos-alvo do balanceador de carga](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) do seu PeopleSoft aplicativo. As verificações de integridade devem ser realizadas nos servidores web em vez das instâncias do EC2 que executam esses servidores. Isso garante que, se o servidor web falhar ou a instância do EC2 que hospeda o servidor web cair, o Application Load Balancer reflita essas informações com precisão.
+ Para um aplicativo PeopleSoft de produção, recomendamos que você distribua os servidores web em pelo menos três zonas de disponibilidade. Isso garante que o PeopleSoft aplicativo esteja sempre altamente disponível, mesmo que uma das zonas de disponibilidade fique inativa.
+ Para um aplicativo PeopleSoft de produção, habilite jolt pooling (). `joltPooling=true` Isso garante que seu aplicativo passe para outro servidor de aplicativos se um servidor estiver inativo para fins de correção ou devido a uma falha na VM.
+ Para um aplicativo PeopleSoft de produção, `DynamicConfigReload ` defina como 1. Essa configuração é suportada na PeopleTools versão 8.52 e posterior. Ele adiciona novos servidores de aplicativos ao servidor web dinamicamente, sem reiniciar os servidores.
+ Para minimizar o tempo de inatividade ao aplicar PeopleTools patches, use o método de blue/green implantação para as configurações de inicialização do grupo Auto Scaling para os servidores web e de aplicativos. Para obter mais informações, consulte a [visão geral das opções de implantação no whitepaper da AWS](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html).
+ Use o [AWS Backup para fazer backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) do seu PeopleSoft aplicativo na AWS. O AWS Backup é um serviço econômico, totalmente gerenciado e baseado em políticas que simplifica a proteção de dados em grande escala.

**Práticas recomendadas de desempenho**
+ Encerre o SSL no Application Load Balancer para obter o desempenho ideal do ambiente, PeopleSoft a menos que sua empresa exija tráfego criptografado em todo o ambiente.
+ Crie [endpoints VPC de interface para](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) serviços da AWS, como o [Amazon Simple Notification Service (Amazon SNS) [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html), para](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) que o tráfego seja sempre interno. Isso é econômico e ajuda a manter seu aplicativo seguro.

**Melhores práticas de otimização de custos**
+ Marque todos os recursos usados pelo seu PeopleSoft ambiente e ative as [tags de alocação de custos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). Essas tags ajudam você a visualizar e gerenciar seus custos de recursos.
+ Para um aplicativo PeopleSoft de produção, configure grupos de Auto Scaling para os servidores web e os servidores de aplicativos. Isso mantém um número mínimo de servidores web e de aplicativos para dar suporte ao seu aplicativo. Você pode usar [as políticas de grupo do Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) para aumentar e reduzir os servidores conforme necessário.
+ Use [alarmes de cobrança](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) para receber alertas quando os custos excederem um limite de orçamento especificado por você.

**Melhores práticas de sustentabilidade**
+ Use a [infraestrutura como código](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IaC) para manter seus PeopleSoft ambientes. Isso ajuda você a criar ambientes consistentes e manter o controle de mudanças.

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

### Migre seu PeopleSoft banco de dados para o Amazon RDS
<a name="migrate-your-peoplesoft-database-to-amazon-rds"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um grupo de sub-redes de banco de dados. | No [console do Amazon RDS](https://console.aws.amazon.com/rds/), no painel de navegação, escolha **Grupos de sub-redes** e, em seguida, crie um grupo de sub-redes de banco de dados do Amazon RDS com sub-redes em várias zonas de disponibilidade. Isso é necessário para o banco de dados do Amazon RDS ser executado em uma configuração Multi-AZ. | Administrador de nuvem | 
| Criar o banco de dados do Amazon RDS | Crie um banco de dados do Amazon RDS em uma zona de disponibilidade da região da AWS que você selecionou para o ambiente de PeopleSoft HA. Ao criar o banco de dados do Amazon RDS, certifique-se de selecionar a opção Multi-AZ (**Criar uma instância em espera**) e o grupo de sub-rede do banco de dados que você criou na etapa anterior. Para obter mais informações, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | Administrador de nuvem, administrador de banco de dados Oracle | 
| Migre seu PeopleSoft banco de dados para o Amazon RDS. | Migre seu PeopleSoft banco de dados existente para o banco de dados do Amazon RDS usando o AWS Database Migration Service (AWS DMS). Para obter mais informações sobre , consulte [documentação de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) o post do blog da AWS [Migrar bancos de dados do Oracle com tempo de inatividade quase zero usando o DMS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/). | Administrador de nuvem, PeopleSoft DBA | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um sistema de arquivos. | No [console do Amazon EFS](https://console.aws.amazon.com/efs/), crie um sistema de arquivos e monte destinos para cada zona de disponibilidade. Para obter instruções, consulte a [Documentação do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-fs-part1-console). Quando o sistema de arquivos tiver sido criado, anote o nome DNS. Você usará essas informações ao montar o sistema de arquivos. | Administrador de nuvem | 

### Configure seu PeopleSoft aplicativo e sistema de arquivos
<a name="set-up-your-peoplesoft-application-and-file-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma instância do EC2. | Execute uma instância do EC2 para seu PeopleSoft aplicativo. Para obter instruções, consulte a [Documentação do 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/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 
| Instale PeopleSoft na instância. | Instale seu PeopleSoft aplicativo e PeopleTools na instância do EC2 que você criou. Para obter instruções, consulte a [documentação do Oracle](https://docs.oracle.com). | Administrador de nuvem, PeopleSoft administrador | 
| Criar o servidor de aplicativos. | Crie o servidor do aplicativo para o modelo AMI e certifique-se de que ele se conecte com sucesso ao banco de dados do Amazon RDS. | Administrador de nuvem, PeopleSoft administrador | 
| Monte o sistema de arquivos do Amazon EFS. | Faça login na instância do EC2 como usuário raiz e execute os seguintes comandos para montar o sistema de arquivos do Amazon EFS em uma pasta chamada `PSFTMNT` no servidor.<pre>sudo su –<br />mkdir /psftmnt<br />cat /etc/fstab</pre>Adicione a linha a seguir ao arquivo `/etc/fstab`. Use o nome DNS que você anotou ao criar o sistema de arquivos.<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 nuvem, PeopleSoft administrador | 
| Verificar permissões | Certifique-se de que a `PSFTMNT` pasta tenha as permissões adequadas para que o PeopleSoft usuário possa acessá-la adequadamente. | Administrador de nuvem, PeopleSoft administrador | 
| Criar instâncias adicionais. | Repita as etapas anteriores neste épico para criar instâncias de modelo para o agendador de processos, o servidor web e o servidor Elasticsearch. Nomeie essas instâncias `PRCS_TEMPLATE``WEB_TEMPLATE`, `SRCH_TEMPLATE` e. Para o servidor web, `joltPooling=true`**** defina `DynamicConfigReload=1` e. | Administrador de nuvem, PeopleSoft administrador | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um script para instalar o servidor do aplicativo. | Na `APP_TEMPLATE` instância do Amazon EC2, como PeopleSoft usuário, crie o seguinte script. Nomeie `appstart.sh` e coloque no `PS_HOME` diretório. Você usará esse script para abrir o servidor do aplicativo e também registrar o nome do servidor na montagem do 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 | 
| Crie um script para instalar o servidor do agendador de processos. | Na `PRCS_TEMPLATE` instância do Amazon EC2, como PeopleSoft usuário, crie o seguinte script. Nomeie `prcsstart.sh` e coloque no `PS_HOME` diretório. Você usará esse script para abrir o servidor do agendador de processos.<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 | 
| Crie um script para instalar o servidor Elasticsearch. | Na `SRCH_TEMPLATE` instância do Amazon EC2, como usuário do Elasticsearch, crie o seguinte script. Nomeie `srchstart.sh` e coloque no `HOME` diretório.<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 | 
| Criar um script para instalar o servidor web. | Na `WEB_TEMPLATE` instância do Amazon EC2, como usuário do servidor web, crie os seguintes scripts no `HOME` diretório.`renip.sh`: esse script garante que o servidor web tenha o IP correto quando clonado da 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`: esse script garante que o servidor web use o servidor de aplicativos correto IPs que está sendo executado no momento. Ele tenta se conectar a cada servidor de aplicativos na porta de choque e o adiciona ao arquivo de configuração.<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`: esse script executa os dois scripts anteriores e inicia os 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 | 
| Adicione uma entrada crontab. | **Na `WEB_TEMPLATE` instância do Amazon EC2, como usuário do servidor web, adicione a seguinte linha ao crontab.** Mude o tempo e o caminho para refletir os valores de que você precisa. Essa entrada garante que o servidor web sempre tenha as entradas corretas do servidor de aplicativos no `configuration.properties` arquivo.<pre>* * * * * /usr/homes/hcmdemo/psstrsetup.sh</pre> | PeopleSoft administrador | 

### Crie modelos AMIs de grupos com Auto Scaling
<a name="create-amis-and-auto-scaling-group-templates"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma AMI para o modelo do servidor de aplicativos. | No console do Amazon EC2, crie uma imagem AMI da instância do Amazon `APP_TEMPLATE` EC2. Dê um nome à AMI`PSAPPSRV-SCG-VER1`. Para obter instruções, consulte a [Documentação do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html). | Administrador de nuvem, PeopleSoft administrador | 
| Crie AMIs para os outros servidores. | Repita a etapa anterior para criar AMIs para o agendador de processos, o servidor Elasticsearch e o servidor web. | Administrador de nuvem, PeopleSoft administrador | 
| Criar um modelo de execução para um grupo do Auto Scaling do servidor do aplicativo | Criar um modelo de execução para um grupo do Auto Scaling do servidor do aplicativo Nomear o modelo `PSAPPSRV_TEMPLATE.` No modelo, escolha a AMI que você criou para a `APP_TEMPLATE` instância. Para obter instruções, consulte a [Documentação do 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/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 
| Criar um modelo de execução para o grupo do Auto Scaling do servidor do agendador de processos. | Repetir a etapa anterior para criar um modelo de execução para o grupo do Auto Scaling do servidor do agendador de processos. Nomear o modelo `PSPRCS_TEMPLATE`. No modelo, escolha a AMI que você criou para o agendador de processos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 
| Criar um modelo de execução para o grupo do Auto Scaling do servidor Elasticsearch. | Repetir as etapas anteriores para criar um modelo de execução para o grupo do Auto Scaling do servidor Elasticsearch. Nomear o modelo `SRCH_TEMPLATE`. No modelo, escolha a AMI que você criou para o servidor de pesquisa.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 
| Criar um modelo de execução para um grupo do Auto Scaling do servidor web | Repetir as etapas anteriores para criar um modelo de execução para o grupo do Auto Scaling do servidor web. Nomear o modelo `WEB_TEMPLATE`. No modelo, escolha a AMI que você criou para o servidor web.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 

### Criar grupos do Auto Scaling
<a name="create-auto-scaling-groups"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um grupo do Auto Scaling para o servidor de aplicativos. | No console do Amazon EC2, crie um grupo do Auto Scaling chamado `PSAPPSRV_ASG` para o servidor do aplicativo usando o modelo. `PSAPPSRV_TEMPLATE` Para obter instruções, consulte a [Documentação do 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/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem, PeopleSoft administrador | 
| Criar um grupo do Auto Scaling para os outros servidores. | Repita a etapa anterior para criar grupos do Auto Scaling para o agendador de processos, o servidor Elasticsearch e o servidor web. | Administrador de nuvem, PeopleSoft administrador | 

### Criar e configurar grupos de destino
<a name="create-and-configure-target-groups"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um grupo de destino para o servidor web. | No console do Amazon EC2, crie um grupo de destino para o servidor web. Para obter instruções, consulte a [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html). Configure a porta como a porta em que o servidor web está realizando a recepção. | Administrador de nuvem | 
| Configurar verificações de integridade | Confirme se as verificação de integridade têm os valores corretos para refletir suas necessidades comerciais. Para obter mais informações, consulte a [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html). | Administrador de nuvem | 
| Criar um grupo de destino para o servidor Elasticsearch. | Repita as etapas anteriores para criar um grupo-alvo chamado `PSFTSRCH` para o servidor Elasticsearch e defina a porta correta do Elasticsearch. | Administrador de nuvem | 
| Adicionar grupos de destino aos grupos do Auto Scaling | Abra o grupo do Auto Scaling do servidor web chamado `PSPIA_ASG` criado por você anteriormente. Na guia **Load balancing**, escolha **Editar** e adicione o grupo de `PSFTWEB` destino ao grupo do Auto Scaling.Repita essa etapa para que o grupo do Auto Scaling do Elasticsearch `PSSRCH_ASG` para adicionar o grupo de destino`PSFTSRCH` que você criou anteriormente. | Administrador de nuvem | 
| Defina a aderência da sessão. | No grupo-alvo`PSFTWEB`, escolha a guia **Atributos**, escolha **Editar** e defina a aderência da sessão. Para o tipo de aderência, escolha **Cookie gerado pelo balanceador de carga** e defina a duração como 1. Para mais informações, consulte a [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html).Repita as etapas para o grupo de destino `PSFTSRCH`. | Administrador de nuvem | 

### Criar e configurar Application Load Balancers
<a name="create-and-configure-application-load-balancers"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um balanceador de carga para os servidores web. | Crie um Application Load Balancer chamado `PSFTLB` para balancear a carga do tráfego para os servidores web. Para obter instruções, consulte a [documentação do 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/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem | 
| Criar um balanceador de carga para os servidores Elasticsearch. | Crie um Application Load Balancer chamado `PSFTSCH` para balancear a carga do tráfego para os servidores Elasticsearch.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrador de nuvem | 
| Configure o Route 53 | No [console do Amazon Route 53](https://console.aws.amazon.com/route53/), crie um registro na zona hospedada que atenderá o PeopleSoft aplicativo. Para obter instruções, consulte a [Documentação do Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html). Isso garante que todo o tráfego passe pelo balanceador de `PSFTLB` carga. | Administrador de nuvem | 

## Recursos relacionados
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-resources"></a>
+ [ PeopleSoft Site da Oracle](https://www.oracle.com/applications/peoplesoft/)
+ [Documentação da AWS](https://docs.aws.amazon.com/)

# Configure a recuperação de desastres para o Oracle JD Edwards com o EnterpriseOne 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*

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

Desastres desencadeados por catástrofes naturais, falhas de aplicativos ou interrupção de serviços prejudicam a receita e causam tempo de inatividade para aplicativos corporativos. Para reduzir as repercussões de tais eventos, o planejamento da recuperação de desastres (DR) é fundamental para empresas que adotam os sistemas de planejamento de recursos EnterpriseOne corporativos (ERP) da JD Edwards e outros softwares de missão crítica e de negócios. 

Esse padrão explica como as empresas podem usar o AWS Elastic Disaster Recovery como uma opção de DR para seus aplicativos JD Edwards EnterpriseOne . Também descreve as etapas para usar o failover e o failback do Elastic Disaster Recovery para criar uma estratégia de DR entre regiões para bancos de dados hospedados em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) na Nuvem AWS.

**nota**  
Esse padrão exige que as regiões primária e secundária da implementação de DR entre regiões sejam hospedadas na AWS.

[O Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) é uma solução de software ERP integrada para empresas de médio a grande porte em uma ampla variedade de setores.

O AWS Elastic Disaster Recovery minimiza o tempo de inatividade e a perda de dados com a recuperação rápida e confiável de aplicativos locais e baseados na nuvem usando armazenamento acessível, computação e recuperação mínimas. point-in-time

A AWS fornece [quatro padrões principais de arquitetura de DR](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Este documento se concentra na instalação, configuração e otimização usando a [estratégia de piloto leve](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Essa estratégia ajuda você a criar um ambiente de DR de baixo custo em que provisiona inicialmente um servidor de replicação para replicar dados do banco de dados de origem e provisiona o servidor de banco de dados real somente quando inicia uma simulação e uma recuperação de DR. Essa estratégia elimina as despesas de manutenção de um servidor de banco de dados na região de DR. Em vez disso, você paga por uma instância menor do EC2 que serve como servidor de replicação.

## Pré-requisitos e limitações
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um EnterpriseOne aplicativo JD Edwards executado no Oracle Database ou no Microsoft SQL Server com um banco de dados compatível em um estado de execução em uma instância EC2 gerenciada. Esse aplicativo deve incluir todos os componentes EnterpriseOne básicos do JD Edwards (Enterprise Server, HTML Server e Database Server) instalados em uma região da AWS.
+ Um perfil do (IAM) para AWS Identity and Access Management para configurar o serviço do Elastic Disaster Recovery.
+ A rede para executar o Elastic Disaster Recovery configurada de acordo com as [configurações de conectividade](https://docs.aws.amazon.com/drs/latest/userguide/Network-Requirements.html) necessárias.

**Limitações**
+ Você pode usar esse padrão para replicar todos os níveis, a menos que o banco de dados esteja hospedado no Amazon Relational Database Service (Amazon RDS). Nesse caso, recomendamos que você use a [funcionalidade de cópia entre regiões](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) do Amazon RDS.
+ O Elastic Disaster Recovery não é compatível com o CloudEndure Disaster Recovery, mas você pode fazer o upgrade do CloudEndure Disaster Recovery. Para obter mais informações, consulte as [Perguntas frequentes](https://docs.aws.amazon.com/drs/latest/userguide/cedr-to-drs.html) na documentação do Elastic Disaster Recovery.
+ O Amazon Elastic Block Store (Amazon EBS) limita a taxa na qual você pode tirar snapshots. Você pode replicar um número máximo de 300 servidores em uma única conta da AWS usando o Elastic Disaster Recovery. Para replicar mais servidores, você pode usar várias contas da AWS ou várias regiões da AWS de destino. (Você precisará configurar o Elastic Disaster Recovery separadamente para cada conta e região.) Para obter mais informações, consulte [Práticas recomendadas](https://docs.aws.amazon.com/drs/latest/userguide/best_practices_drs.html) na documentação do Elastic Disaster Recovery.
+ As cargas de trabalho de origem (o EnterpriseOne aplicativo e o banco de dados do JD Edwards) devem ser hospedadas em instâncias do EC2. Esse padrão não é compatível com workloads on-premises ou em outros ambientes de nuvem.
+ Esse padrão se concentra nos componentes do JD Edwards EnterpriseOne . Um plano completo de DR e continuidade de negócios (BCP) deve incluir outros serviços essenciais, incluindo:
  + Rede (nuvem privada virtual, sub-redes e grupos de segurança)
  +  Active Directory
  + Amazon WorkSpaces
  + Elastic Load Balancing
  + Um serviço de banco de dados gerenciado, como Amazon Relational Database Service (Amazon RDS)

Para obter informações adicionais sobre pré-requisitos, configurações e limitações, consulte a [documentação do Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html).

**Versões do produto**
+ Oracle JD Edwards EnterpriseOne (versões compatíveis com Oracle e SQL Server com base nos requisitos técnicos mínimos da Oracle)

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

**Pilha de tecnologias de destino**
+ Uma única região e uma única nuvem privada virtual (VPC) para produção e não produção, e uma segunda região para DR
+ Zonas de disponibilidade únicas para garantir baixa latência entre servidores
+ Um Application Load Balancer que distribui o tráfego de rede para melhorar a escalabilidade e a disponibilidade de seus aplicativos em várias zonas de disponibilidade
+ Amazon Route 53 fornecerá a configuração do Sistema de Nomes de Domínio (DNS)
+ Amazon fornecerá WorkSpaces aos usuários uma experiência de desktop na nuvem
+ Use o Amazon Simple Storage Service (Amazon S3) para armazenar backups, arquivos e objetos
+ Amazon CloudWatch para registro, monitoramento e alarmes de aplicativos
+ Amazon Elastic Disaster Recovery para recuperação de desastres

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura de recuperação de desastres entre regiões para a JD Edwards EnterpriseOne usando o Elastic Disaster Recovery.

![\[Arquitetura para DR EnterpriseOne entre regiões do JD Edwards na AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9b0de5f0-f211-4086-a044-321d081604f9/images/978b7219-e54e-4e31-b3ff-4885784e2971.png)


**Procedimento**

Aqui está uma análise de alto nível do processo. Consulte a seção *Épicos * para obter detalhes.
+ A replicação do Elastic Disaster Recovery começa com uma sincronização inicial. Durante a sincronização inicial, o AWS Replication Agent replica todos os dados dos discos de origem para o recurso apropriado na sub-rede da área de armazenamento.
+ A replicação contínua continua indefinidamente após a conclusão da sincronização inicial.
+ Você revisa os parâmetros de execução, que incluem configurações específicas do serviço e um modelo de execução do Amazon EC2, após a instalação do agente e o início da replicação. Quando o servidor de origem é indicado como pronto para recuperação, você pode iniciar as instâncias.
+ Quando o Elastic Disaster Recovery emite uma série de chamadas de API para iniciar a operação de lançamento, a instância de recuperação é iniciada imediatamente na AWS de acordo com suas configurações de execução. O serviço ativa automaticamente um servidor de conversão durante a inicialização.
+ A nova instância é ativada na AWS após a conclusão da conversão e está pronta para uso. O estado do servidor de origem no momento da execução é representado pelos volumes associados à instância executada. O processo de conversão envolve alterações nos drivers, na rede e na licença do sistema operacional para garantir que a instância seja inicializada de forma nativa na AWS.
+ Após o lançamento, os volumes recém-criados não são mais mantidos em sincronia com os servidores de origem. O AWS Replication Agent continua replicando rotineiramente as alterações feitas em seus servidores de origem para os volumes da área de armazenamento, mas as instâncias lançadas não refletem essas alterações.
+ Quando você inicia uma nova instância de simulação ou recuperação, os dados são sempre refletidos no estado mais recente que foi replicado do servidor de origem para a sub-rede da área de simulação.
+ Quando o servidor de origem é marcado como sendo preparado para recuperação, você pode iniciar instâncias.

**nota**  
O processo funciona nos dois sentidos: para failover de uma região da AWS primária para uma região de DR e para retornar ao site primário, quando ele for recuperado. Você pode se preparar para o failback revertendo a direção da replicação de dados da máquina de destino para a máquina de origem de uma forma totalmente orquestrada.

Os benefícios desse processo descritos nesse padrão incluem:
+ Flexibilidade: os servidores de replicação aumentam e reduzem de escala horizontalmente, com base no conjunto de dados e no tempo de replicação, para que você possa realizar testes de DR sem interromper os workload de origem ou a replicação.
+ Confiabilidade: a replicação é robusta, sem interrupções e contínua.
+ Automação: essa solução fornece um processo unificado e automatizado para teste, recuperação e failback.
+ Otimização de custos: você pode replicar somente os volumes necessários e pagar por eles, e pagar pelos recursos computacionais no local de DR somente quando esses recursos forem ativados. Você pode usar uma instância de replicação com custo otimizado (recomendamos que você use um tipo de instância otimizado para computação) para várias fontes ou uma única fonte com um grande volume do EBS.

**Automação e escala**

Quando você executa a recuperação de desastres em grande escala, os EnterpriseOne servidores JD Edwards terão dependências de outros servidores no ambiente. Por exemplo:
+ Os servidores de EnterpriseOne aplicativos JD Edwards que se conectam a um banco de dados EnterpriseOne compatível com o JD Edwards na inicialização têm dependências desse banco de dados.
+  EnterpriseOne Os servidores JD Edwards que exigem autenticação e precisam se conectar a um controlador de domínio na inicialização para iniciar os serviços têm dependências do controlador de domínio.

Por esse motivo, recomendamos que você automatize as tarefas de failover. Por exemplo, você pode usar o AWS Lambda ou o AWS Step Functions para automatizar os scripts de EnterpriseOne inicialização e as alterações do balanceador de carga do JD Edwards para automatizar o processo de failover. end-to-end Para obter mais informações, consulte a publicação [Criação de um plano de recuperação de desastres escalável com o AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/) no blog.

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

**Serviços da AWS**
+ O [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) oferece volumes de armazenamento ao nível do bloco para usar com instâncias do EC2.
+ O [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/products/compute/) oferece capacidade computacional escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [O AWS Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) minimiza o tempo de inatividade e a perda de dados com a recuperação rápida e confiável de aplicativos locais e baseados na nuvem usando armazenamento acessível, computação e recuperação mínimas. point-in-time
+ A [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/) oferece controle total sobre seu ambiente de rede virtual, incluindo posicionamento de recursos, conectividade e segurança.

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

**Práticas recomendadas gerais**
+ Tenha um plano escrito sobre o que fazer no caso de um evento real de recuperação.
+ Depois de configurar o Elastic Disaster Recovery corretamente, crie um CloudFormation modelo da AWS que possa criar a configuração sob demanda, caso seja necessário. Determine a ordem na qual os servidores e aplicativos devem ser iniciados e registre isso no plano de recuperação.
+ Faça uma simulação regular (aplicam-se as tarifas padrão do Amazon EC2).
+ Monitore a integridade da replicação contínua usando o console do Elastic Disaster Recovery ou programaticamente.
+ Proteja os point-in-time instantâneos e confirme antes de encerrar as instâncias.
+ Crie um perfil do IAM para a instalação do AWS Replication Agent.
+ Habilite a proteção contra encerramento para instâncias de recuperação em um cenário real de DR.
+ Não use a ação **Disconnect from AWS** (Desconectar da AWS) no console do Elastic Disaster Recovery para servidores para os quais você lançou instâncias de recuperação, mesmo no caso de um evento real de recuperação. Executar uma desconexão encerra todos os recursos de replicação relacionados a esses servidores de origem, incluindo seus pontos de recuperação point-in-time (PIT).
+ Altere a política do PIT para alterar o número de dias para retenção de instantâneos.
+ Edite o modelo de lançamento nas configurações de execução do Elastic Disaster Recovery para definir a sub-rede, o grupo de segurança e o tipo de instância corretos para seu servidor de destino.
+ Automatize o processo de end-to-end failover usando o Lambda ou o Step Functions para automatizar os scripts de inicialização e as alterações do balanceador de carga do JD Edwards EnterpriseOne .

** EnterpriseOne Otimização e considerações do JD Edwards**
+ Vá **PrintQueue**para o banco de dados.
+ Vá **MediaObjects**para o banco de dados.
+ Exclua os registros em log e a pasta temporária dos servidores lógicos e de lote.
+ Exclua a pasta temporária do Oracle WebLogic.
+ Crie scripts para inicialização após o failover.
+ Exclua o tempdb para o SQL Server.
+ Exclua o arquivo temporário do Oracle.

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

### Execute tarefas e configurações iniciais
<a name="perform-initial-tasks-and-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a rede de replicação.  | Implemente seu EnterpriseOne sistema JD Edwards na região principal da AWS e identifique a região da AWS para DR. Siga as etapas na seção [Requisitos de rede de replicação](https://docs.aws.amazon.com/drs/latest/userguide/preparing-environments.html) da documentação do Elastic Disaster Recovery para planejar e configurar sua rede de replicação e DR. | Administrador da AWS | 
| Determine o RPO e o RTO. | Identifique o objetivo de tempo de recuperação (RTO) e o objetivo de ponto de recuperação (RPO) para seus servidores de aplicativos e seu banco de dados. | Arquiteto de nuvem, arquiteto de DR | 
| Ative a replicação para o Amazon EFS. | Se aplicável, habilite a replicação da região primária da AWS para a região de DR para sistemas de arquivos compartilhados, como o Amazon Elastic File System (Amazon EFS), usando AWS DataSync, **rsync** ou outra ferramenta apropriada. | Administrador de nuvem | 
| Gerencie o DNS em caso de DR. | Identifique o processo para atualizar o Sistema de Nomes de Domínio (DNS) durante a simulação de DR ou uma DR real. | Administrador de nuvem | 
| Crie uma perfil do IAM para configuração. | Siga as instruções na seção [Elastic Disaster Recovery initialization and permissions](https://docs.aws.amazon.com/drs/latest/userguide/getting-started-initializing.html) (inicialização e permissões do Elastic Disaster Recovery) da documentação do Elastic Disaster Recovery para criar um perfil do IAM para inicializar e gerenciar o serviço da AWS. | Administrador de nuvem | 
| Configurar o emparelhamento de VPC. | Certifique-se de que a origem e o destino VPCs estejam emparelhados e acessíveis um ao outro. Para obter instruções de configuração, consulte a [documentação do Amazon VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html). | Administrador da AWS | 

### Defina as configurações de replicação do Elastic Disaster Recovery
<a name="configure-elastic-disaster-recovery-replication-settings"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicializar o Elastic Disaster Recovery. | Abra o [console do Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), selecione a região de destino da AWS (onde você replicará dados e iniciará instâncias de recuperação) e, em seguida, selecione **Definir configurações de replicação padrão**. | Administrador da AWS | 
| Configure os servidores de replicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador da AWS | 
| Configure volumes e grupos de segurança. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador da AWS | 
| Defina configurações adicionais. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrador da AWS | 

### Instale o AWS Replication Agent
<a name="install-the-aws-replication-agent"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um perfil do IAM. | Crie um perfil do IAM que contenha a política `AWSElasticDisasterRecoveryAgentInstallationPolicy`. Na seção **Select AWS access type** (Selecionar tipo de acesso da AWS), habilite o acesso programático. Anote o ID de chave de acesso e a chave de acesso secreta. Você precisará dessas informações durante a instalação do AWS Replication Agent. | Administrador da AWS | 
| Verifique os requisitos. | Verifique e preencha os [pré-requisitos](https://docs.aws.amazon.com/drs/latest/userguide/installation-requiremets.html) na documentação do Elastic Disaster Recovery para instalar o AWS Replication Agent. | Administrador da AWS | 
| Instale o AWS Replication Agent. | Siga as [instruções de instalação](https://docs.aws.amazon.com/drs/latest/userguide/agent-installation-instructions.html) do seu sistema operacional e instale o AWS Replication Agent.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Repita essas etapas para o servidor restante. | Administrador da AWS | 
| Monitore a replicação. | Retorne ao painel **Source servers** (Servidores de origem) do Elastic Disaster Recovery para monitorar o status da replicação. A sincronização inicial levará algum tempo, dependendo do tamanho da transferência de dados.Quando o servidor de origem estiver totalmente sincronizado, o status do servidor será atualizado para **Ready** (Pronto). Isso significa que um servidor de replicação foi criado na área de armazenamento e os volumes do EBS foram replicados do servidor de origem para a área de armazenamento. | Administrador da AWS | 

### Definir as configurações de lançamento
<a name="configure-launch-settings"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Edite as configurações de lançamento. | Para atualizar as configurações de inicialização das instâncias de simulação e recuperação, no [console do Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), selecione o servidor de origem e, em seguida, selecione **Actions** (Ações), **Edit launch settings** (Editar configurações de lançamento). Ou você pode escolher suas máquinas de origem de replicação na página **Source servers** (Servidores de origem) e, em seguida, escolher a guia **Launch Settings** (Configurações de inicialização). Essa guia tem duas seções: **General launch settings** (Configurações gerais de lançamento) e **EC2 launch template** (modelo de lançamento do EC2). | Administrador da AWS | 
| Defina as configurações gerais de lançamento. | Revise as configurações gerais de inicialização de acordo com seus requisitos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obter mais informações, consulte [Configurações gerais de lançamento](https://docs.aws.amazon.com/drs/latest/userguide/launch-general-settings.html) na documentação do Elastic Disaster Recovery. | Administrador da AWS | 
| Configure o modelo de execução do Amazon EC2. | O Elastic Disaster Recovery usa modelos de lançamento do Amazon EC2 para iniciar instâncias de simulação e recuperação para cada servidor de origem. O modelo de lançamento é criado automaticamente para cada servidor de origem que você adiciona ao Elastic Disaster Recovery depois de instalar o AWS Replication Agent.Você deve definir o modelo de execução do Amazon EC2 como padrão se quiser usá-lo com o Elastic Disaster Recovery.Para obter mais informações, consulte [Modelo de lançamento do EC2](https://docs.aws.amazon.com/drs/latest/userguide/ec2-launch.html) na documentação do Elastic Disaster Recovery. | Administrador da AWS | 

### Inicie a simulação de recuperação de desastres e o failover
<a name="initiate-dr-drill-and-failover"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Iniciar simulação | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obter mais informações, consulte [Preparação para um failover](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing.html) na documentação do Elastic Disaster Recovery. | Administrador da AWS | 
| Validar a simulação. | Na etapa anterior, você lançou novas instâncias de destino na região de DR. As instâncias de destino são réplicas dos servidores de origem com base no instantâneo obtido quando você iniciou o lançamento.Neste procedimento, você se conecta às suas máquinas de destino do Amazon EC2 para confirmar se elas estão funcionando conforme o esperado.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) |  | 
| Iniciar um failover. | Um failover é o redirecionamento do tráfego de um sistema primário para um sistema secundário. O Elastic Disaster Recovery ajuda você a realizar um failover lançando instâncias de recuperação na AWS. Quando as instâncias de recuperação são iniciadas, você redireciona o tráfego dos seus sistemas primários para essas instâncias.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obter mais informações, consulte [Execução de um failover](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing-failover.html) na documentação do Elastic Disaster Recovery. | Administrador da AWS | 
| Inicie um failback. | O processo para iniciar um failback é semelhante ao processo para iniciar o failover.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Para obter mais informações, consulte [Execução de um failback](https://docs.aws.amazon.com/drs/latest/userguide/failback-performing-main.html) na documentação do Elastic Disaster Recovery. | Administrador da AWS | 
| Inicie os componentes do JD Edwards. EnterpriseOne  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Você precisará incorporar as alterações no Route 53 e no Application Load Balancer para que o link do JD Edwards funcione EnterpriseOne .Você pode automatizar essas etapas usando Lambda, Step Functions e Systems Manager (Run Command).O Elastic Disaster Recovery executa a replicação em nível de bloco dos volumes EBS da instância do EC2 de origem que hospedam o sistema operacional e os sistemas de arquivos. Os sistemas de arquivos compartilhados que foram criados usando o Amazon EFS não fazem parte dessa replicação. Você pode replicar sistemas de arquivos compartilhados para a região de DR usando a AWS DataSync, conforme observado no primeiro épico, e depois montar esses sistemas de arquivos replicados no sistema de DR. | JD Edwards EnterpriseOne CNC | 

## Solução de problemas
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O status de replicação de dados do servidor de origem está **Paralisado** e a replicação está atrasada. Se você verificar os detalhes, o status da replicação de dados exibirá **Agent not seen** (Agente indisponível). | Verifique se o servidor de origem paralisado está em execução.Se o servidor de origem ficar inativo, o servidor de replicação será encerrado automaticamente.Para obter mais informações sobre problemas de atraso, consulte [Problemas de atraso de replicação](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) na documentação do Elastic Disaster Recovery. | 
| A instalação do AWS Replication Agent na instância do EC2 de origem falha no RHEL 8.2 após a digitalização dos discos. `aws_replication_agent_installer.log` revela que faltam cabeçalhos do kernel. | Antes de instalar o AWS Replication Agent no RHEL 8, CentOS 8 ou Oracle Linux 8, execute:<pre>sudo yum install elfutils-libelf-devel</pre>Para obter mais informações, consulte os [requisitos de instalação do Linux](https://docs.aws.amazon.com/mgn/latest/ug/installation-requirements.html#linux-requirements) na documentação do Elastic Disaster Recovery. | 
| No console do Elastic Disaster Recovery, você vê o servidor de origem como **Ready** (Pronto), com um atraso e o status de replicação de dados como **Stalled** (Parado).Dependendo de quanto tempo o AWS Replication Agent estiver indisponível, o status pode indicar um alto atraso, mas o problema continua o mesmo. | Use um comando do sistema operacional para confirmar se o AWS Replication Agent está sendo executado na instância do EC2 de origem ou confirme se a instância está em execução.Depois de corrigir qualquer problema, o Elastic Disaster Recovery reiniciará o escaneamento. Espere até que todos os dados tenham sido sincronizados e o status da replicação seja **Healthy** (Saudável) antes de iniciar um simulação de recuperação de desastres. | 
| Replicação inicial com alto atraso. No console do Elastic Disaster Recovery, você pode ver que o status de sincronização inicial é extremamente lento para um servidor de origem. | Verifique os problemas de atraso de replicação documentados na seção [Replication lag issues](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) (Problemas de atraso de replicação) na documentação do Elastic Disaster Recovery.O servidor de replicação pode não conseguir lidar com a carga devido às operações computacionais intrínsecas. Nesse caso, tente atualizar o tipo de instância depois de consultar a [equipe do Suporte técnico da 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>
+ [Guia do usuário do AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html)
+ [Criação de um plano escalável de recuperação de desastres com o AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/) (publicação no blog da AWS)
+ [AWS Elastic Disaster Recovery – Uma introdução técnica](https://explore.skillbuilder.aws/learn/course/internal/view/elearning/11123/aws-elastic-disaster-recovery-a-technical-introduction) (curso AWS Skill Builder; requer login)
+ [Guia de início rápido do AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/quick-start-guide-gs.html)

# Configure a detecção de CloudFormation desvios em uma organização multirregional e com várias contas
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization"></a>

*Ram Kandaswamy, Amazon Web Services*

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

Os usuários do Amazon Web Services (AWS) geralmente procuram uma maneira eficiente de detectar incompatibilidades na configuração de recursos, incluindo a variação nas AWS CloudFormation pilhas, e corrigi-las o mais rápido possível. Esse é especialmente o caso quando AWS Control Tower é usado.

Esse padrão fornece uma solução prescritiva que resolve o problema de forma eficiente usando alterações consolidadas na configuração de recursos e agindo de acordo com essas alterações para gerar resultados. A solução foi projetada para cenários em que há várias CloudFormation pilhas criadas em mais de uma Região da AWS, ou em mais de uma conta, ou uma combinação de ambas. Os objetivos da solução são os seguintes:
+ Simplifique o processo de detecção de desvios
+ Configurar notificação e alerta
+ Configurar relatórios consolidados

## Pré-requisitos e limitações
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-prereqs"></a>

**Pré-requisitos **
+ AWS Config ativado em todas as regiões e contas que devem ser monitoradas

**Limitações**
+ O relatório gerado é compatível apenas com os formatos de saída de valores separados por vírgula (CSV) e JSON.

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

O diagrama a seguir mostra a AWS Organizations configuração com várias contas. AWS Config as regras se comunicam entre as contas.  

![\[Processo em cinco etapas para monitorar pilhas em duas contas do AWS Organizations.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/735d0987-b953-47f8-a9bc-b02a88957ee5/images/340cee9a-5a4e-49ea-bd73-d37dcea5e098.png)


 O fluxo de trabalho inclui as seguintes etapas:

1. A AWS Config regra detecta desvios.

1. Os resultados da detecção de desvios encontrados em outras contas são enviados para a conta gerencial.

1. A CloudWatch regra da Amazon chama uma AWS Lambda função.

1. A função Lambda consulta a AWS Config regra para obter resultados agregados.

1. A função do Lambda notifica o Amazon Simple Notification Service (Amazon SNS), que envia um e-mail informando sobre o desvio.

**Automação e escala**

A solução apresentada aqui pode ser dimensionada para regiões e contas adicionais.

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

**Serviços da AWS**
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)fornece uma visão detalhada da configuração dos AWS recursos em seu Conta da AWS. Isso inclui como os recursos estão relacionados um com o outro e como eles foram configurados no passado, de modo que você possa ver como os relacionamentos e as configurações foram alterados ao longo do tempo.
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.

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

### Automatize a detecção de desvios para CloudFormation
<a name="automate-drift-detection-for-cfn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o agregador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Arquiteto de nuvem | 
| Crie uma regra AWS gerenciada. | Adicione a regra `cloudformation-stack-drift-detection-check` AWS**** gerenciada. A regra precisa de um valor de parâmetro: `cloudformationArn`. Insira o nome do recurso da Amazon (ARN) do perfil do IAM que tem permissões para detectar desvio de pilha. A função deve ter uma política de confiança que AWS Config permita assumir a função. | Arquiteto de nuvem | 
| Crie a seção de consulta avançada do agregador. | Para buscar pilhas derivadas de várias fontes, crie a seguinte consulta:<pre>SELECT resourceId, configuration.driftInformation.stackDriftStatus WHERE resourceType = 'AWS::CloudFormation::Stack'  AND configuration.driftInformation.stackDriftStatus IN ('DRIFTED')</pre> | Arquiteto de nuvem, desenvolvedor | 
| Automatize a execução da consulta e publique. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Arquiteto de nuvem, desenvolvedor | 
| Crie uma CloudWatch regra. | Crie uma CloudWatch regra baseada em agendamento para chamar a função Lambda, que é responsável pelos alertas. | Arquiteto de nuvem | 

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

**Recursos**
+ [O que é AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Agregação de dados de várias regiões e várias contas](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html)
+ [Detectar alterações de configuração não gerenciadas em pilhas e recursos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)
+ [IAM: passe uma função do IAM para uma função específica AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html)
+ [O que é o Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

## Mais informações
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-additional"></a>

**Considerações**

Recomendamos usar a solução apresentada nesse padrão em vez de usar soluções personalizadas que envolvam chamadas de API em intervalos específicos para iniciar a detecção de desvios em cada pilha ou conjunto de CloudFormation pilhas. As soluções personalizadas que usam chamadas de API em intervalos específicos podem gerar um grande número de chamadas e afetar a performance. Devido ao número de chamadas de API, pode ocorrer controle de utilização. Outro problema potencial é um atraso na detecção se as alterações de recursos forem identificadas com base somente no cronograma.

Como os conjuntos de pilhas são constituídos por pilhas, você pode usar esta solução. Os detalhes da instância de pilhas também estão disponíveis como parte da solução.

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/735d0987-b953-47f8-a9bc-b02a88957ee5/attachments/attachment.zip)

# Importe com sucesso um bucket do S3 como uma pilha da AWS CloudFormation
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack"></a>

*Ram Kandaswamy, Amazon Web Services*

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

Se você usa recursos da Amazon Web Services (AWS), como buckets do Amazon Simple Storage Service (Amazon S3), e quer usar uma abordagem de infraestrutura como código (IaC), você pode importar seus recursos para a CloudFormation AWS e gerenciá-los como uma pilha.

Esse padrão fornece etapas para importar com sucesso um bucket do S3 como uma CloudFormation pilha da AWS. Ao usar essa abordagem padrão, você pode evitar possíveis erros que possam ocorrer se você importar seu bucket do S3 em uma única ação.

## Pré-requisitos e limitações
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um bucket S3 existente e uma política de bucket S3. Para obter mais informações sobre isso, consulte [Qual política de bucket do S3 devo usar para cumprir a regra s3- do AWS Config bucket-ssl-requests-only no Centro de Conhecimento](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/) da AWS.
+ Uma chave do AWS Key Management Service (AWS KMS) existente e seu alias. Para obter mais informações sobre isso, consulte [Trabalho com aliases](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html) na documentação do AWS KMS.
+ O CloudFormation modelo de amostra `CloudFormation-template-S3-bucket` da AWS (anexado), baixado para seu computador local.

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

![\[Fluxo de trabalho para usar o CloudFormation modelo para criar uma CloudFormation pilha para importar um bucket S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/aea7f6fe-8e67-46c4-8b90-1ab06b879111/images/ee143374-a0a4-42d9-b7ca-16593a597a84.png)


 

O diagrama mostra o seguinte fluxo de trabalho:

1. O usuário cria um modelo da AWS em formato JSON ou YAML. CloudFormation 

1. O modelo cria uma CloudFormation pilha da AWS para importar o bucket do S3.

1. O AWS CloudFormation stack gerencia o bucket S3 que você especificou no modelo.

**Pilha de tecnologia**
+ AWS CloudFormation
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ Amazon S3

 

**Ferramentas**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — CloudFormation A AWS ajuda você a criar e provisionar implantações de infraestrutura da AWS de forma previsível e repetida.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html): o IAM é um serviço web para controlar, com segurança, o acesso a serviços da AWS.
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html): o AWS Key Management Service (AWS KMS) é um serviço de criptografia e gerenciamento de chave com escalabilidade para a nuvem.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html): o Amazon Simple Storage Service (Amazon S3) serve como armazenamento para a internet.

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

### Importe um bucket S3 com criptografia AWS KMS key baseada como uma pilha da AWS CloudFormation
<a name="import-an-s3-bucket-with-kms-key-long--based-encryption-as-an-aws-cloudformation-stack"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um modelo para a importação do bucket do S3 e da chave do KMS. | No seu computador local, crie um modelo para importar o bucket do S3 e a chave do KMS usando o seguinte modelo de amostra:<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 | 
| Crie a pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html) | AWS DevOps | 
| Crie o alias da chave KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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 obter mais informações sobre isso, consulte [as atualizações do AWS CloudFormation Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) na CloudFormation documentação da AWS.  | AWS DevOps | 
| Atualize a pilha para incluir a política de bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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 do S3 conta com uma instrução de negação que restringe chamadas de API que não sejam seguras.  | AWS DevOps | 
| Atualize a política de chaves. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)Para obter mais informações, consulte [Key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) na documentação do AWS KM. | Administrador da AWS | 
| Adicione tags em nível de recurso. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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>
+ [Trazendo recursos existentes para o CloudFormation gerenciamento da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)
+ [AWS re:Invent 2017: aprofundamento na AWS CloudFormation](https://www.youtube.com/watch?v=01hy48R9Kr8) (vídeo)

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/aea7f6fe-8e67-46c4-8b90-1ab06b879111/attachments/attachment.zip)

# Sincronize dados entre sistemas de arquivos Amazon EFS em diferentes regiões da AWS usando a AWS DataSync
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync"></a>

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

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

Esta solução fornece uma estrutura robusta para a sincronização eficiente e segura de dados entre instâncias do Amazon Elastic File System (Amazon EFS) em diferentes regiões da AWS. Esta abordagem é escalável e oferece replicação de dados entre regiões com controle total. Com esta solução, é possível fortalecer suas estratégias de redundância de dados e recuperação de desastres.

Ao usar o AWS Cloud Development Kit (AWS CDK), este padrão adota a abordagem de infraestrutura como código (IaC) para implantar os recursos da solução. O aplicativo AWS CDK implanta os recursos essenciais da AWS, DataSync Amazon EFS, Amazon Virtual Private Cloud (Amazon VPC) e Amazon Elastic Compute Cloud (Amazon). EC2 Esta IaC fornece um processo de implantação repetível e controlado por versão, totalmente alinhado às práticas recomendadas da AWS.

## Pré-requisitos e limitações
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ AWS Command Line Interface (AWS CLI), versão 2.9.11 ou versões posteriores, [instalada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) e [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ AWS CDK, versão 2.114.1 ou versões posteriores, [instalado](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) e [inicializado](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap)
+ NodeJS, versão 20.8.0 ou versões posteriores, [instalado](https://nodejs.org/en/download)

**Limitações**
+ A solução herda limitações do DataSync Amazon EFS, como taxas de transferência de dados, limitações de tamanho e disponibilidade regional. Para obter mais informações, consulte Cotas [da AWS e DataSync cotas](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html) do [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/limits.html).
+ Essa solução é compatível somente com o Amazon EFS. DataSync oferece suporte a [outros serviços da AWS](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html), como Amazon Simple Storage Service (Amazon S3) e FSx Amazon for Lustre. No entanto, a solução precisa ser adaptada para permitir a sincronização de dados com outros serviços da AWS.

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

![\[Diagrama da arquitetura para replicar dados para um sistema de arquivos do EFS em outra região.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e28ba6c2-ab8b-4812-932e-f038106d5496/images/18b35ae9-a22e-43e7-b7a3-30e40321c44e.png)


Esta solução implanta as seguintes pilhas do AWS CDK:
+ **Pilha da Amazon VPC**: esta pilha configura os recursos da nuvem privada virtual (VPC), incluindo sub-redes, um gateway da internet e um gateway NAT, tanto na região da AWS principal quanto na secundária.
+ **Pilha Amazon EFS** — Essa pilha implanta sistemas de arquivos Amazon EFS nas regiões primária e secundária e os conecta às suas respectivas regiões. VPCs
+ **Amazon EC2 stack** — Essa pilha inicia EC2 instâncias nas regiões primária e secundária. Essas instâncias são configuradas para montar o sistema de arquivos do Amazon EFS, garantindo acesso ao armazenamento compartilhado.
+ **DataSync pilha de localização** — Essa pilha usa uma construção personalizada chamada `DataSyncLocationConstruct` para criar recursos de DataSync localização nas regiões primária e secundária. Esses recursos definem os endpoints para a sincronização de dados.
+ **DataSync pilha de tarefas** — Essa pilha usa uma construção personalizada chamada `DataSyncTaskConstruct` para criar uma DataSync tarefa na região primária. Essa tarefa está configurada para sincronizar dados entre as regiões primária e secundária usando os locais de DataSync origem e destino.

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

**Serviços da AWS**
+ O [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura da Nuvem AWS em código.
+  DataSyncA [AWS](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) é um serviço on-line de transferência e descoberta de dados que ajuda você a mover arquivos ou dados de objetos de, para e entre os serviços de armazenamento da AWS.
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.
+ A [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda a iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.

**Repositório de código**

O código desse padrão está disponível no repositório do GitHub [Amazon EFS Cross-Region DataSync Project](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main).

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

Siga as melhores práticas descritas em [Melhores práticas para usar o AWS CDK TypeScript para criar projetos de IaC](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html).

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

### Implantação da aplicação do AWS CDK
<a name="deploy-the-aws-cdk-app"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório do projeto. | Insira o comando a seguir para clonar o repositório do [Amazon EFS Cross-Region DataSync Project](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 as dependências do npm. | Insira o comando da a seguir.<pre>npm ci</pre> | AWS DevOps | 
| Escolha as regiões primária e secundária. | Acesse o repositório clonado e navegue até o diretório `src/infa`. No arquivo `Launcher.ts`, atualize os valores de `PRIMARY_AWS_REGION` e `SECONDARY_AWS_REGION`. Use os [códigos das regiões](https://docs.aws.amazon.com/general/latest/gr/datasync.html#datasync-region) correspondentes.<pre>const primaryRegion = { account: account, region: '<PRIMARY_AWS_REGION>' };<br />const secondaryRegion = { account: account, region: '<SECONDARY_AWS_REGION>' };</pre> | AWS DevOps | 
| Inicialize o ambiente do . | Digite o comando apresentado a seguir para inicializar a conta da AWS e a região da AWS que você deseja usar.<pre>cdk bootstrap <aws_account>/<aws_region></pre>Para obter mais informações, consulte [Inicialização](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) na documentação do AWS CDK. | AWS DevOps | 
| Liste as pilhas do AWS CDK. | Digite o comando apresentado a seguir para visualizar a lista de pilhas do AWS CDK na aplicação.<pre>cdk ls</pre> | AWS DevOps | 
| Sintetize as pilhas do AWS CDK. | Insira o comando a seguir para produzir um CloudFormation modelo da AWS para cada pilha definida no aplicativo AWS CDK.<pre>cdk synth</pre> | AWS DevOps | 
| Implante a aplicação do AWS CDK. | Digite o comando apresentado a seguir para implantar todas as pilhas na conta da AWS, sem precisar de aprovação manual para quaisquer alterações.<pre>cdk deploy --all --require-approval never</pre> | AWS DevOps | 

### Validação da implantação
<a name="validate-the-deployment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça login na EC2 instância na região principal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Criar um arquivo temporário. | Digite o comando apresentado a seguir para criar um arquivo temporário no caminho de montagem do 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 a DataSync tarefa. | Insira o comando a seguir para replicar o arquivo temporário da região primária para a região secundária, onde `<ARN-task>` está o Amazon Resource Name (ARN) da DataSync sua tarefa.<pre>aws datasync start-task-execution \<br />    --task-arn <ARN-task></pre>Este comando fornece o ARN da execução da tarefa no formato abaixo.`arn:aws:datasync:<region>:<account-ID>:task/task-execution/<exec-ID>` | AWS DevOps | 
| Verifique o status da transferência de dados. | Digite o comando a seguir para descrever a tarefa de DataSync execução, onde `<ARN-task-execution>` está o ARN da execução da tarefa.<pre>aws datasync describe-task-execution \<br />    --task-execution-arn <ARN-task-execution></pre>A DataSync tarefa é concluída quando`PrepareStatus`,`TransferStatus`, e `VerifyStatus` todas têm o valor`SUCCESS`. | AWS DevOps | 
| Faça login na EC2 instância na região secundária. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Valide a replicação. | Insira o comando apresentado a seguir para confirmar que o arquivo temporário está presente no sistema de arquivos do 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>

**Documentação da AWS**
+ [Referência da API do AWS CDK](https://docs.aws.amazon.com/cdk/api/v2/python/modules.html)
+ [Configurando DataSync transferências da AWS com o Amazon EFS](https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html)
+ [Solução de problemas com DataSync transferências da AWS](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html)

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

# Teste a AWS infraestrutura usando LocalStack e Terraform Tests
<a name="test-aws-infra-localstack-terraform"></a>

*Ivan Girardi e Ioannis Kalyvas, Amazon Web Services*

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

Esse padrão ajuda você a testar localmente a infraestrutura como código (IaC) AWS no Terraform sem a necessidade de provisionar a infraestrutura em seu AWS ambiente. Ele integra a [estrutura do Terraform Tests](https://developer.hashicorp.com/terraform/language/tests) com. [LocalStack](https://github.com/localstack/localstack) O contêiner LocalStack Docker fornece um ambiente de desenvolvimento local que emula vários. Serviços da AWS Isso permite testar e iterar implantações de infraestrutura sem gerar custos na Nuvem AWS.

Essa solução oferece os seguintes benefícios:
+ **Otimização de custos** — a execução de testes LocalStack elimina a necessidade de uso Serviços da AWS. Isso evita que você incorra em custos associados à criação, operação e modificação desses AWS recursos.
+ **Velocidade e eficiência** — Testar localmente também é normalmente mais rápido do que implantar os AWS recursos. Esse ciclo de feedback rápido acelera o desenvolvimento e a depuração. Como LocalStack é executado localmente, você pode desenvolver e testar seus arquivos de configuração do Terraform sem uma conexão com a Internet. Você pode depurar arquivos de configuração do Terraform localmente e receber feedback imediato, o que agiliza o processo de desenvolvimento.
+ **Consistência e reprodutibilidade** — LocalStack fornece um ambiente consistente para testes. Essa consistência ajuda a garantir que os testes produzam os mesmos resultados, independentemente de AWS alterações externas ou problemas de rede.
+ **Isolamento** — Testar com LocalStack evita que você acidentalmente afete AWS recursos ativos ou ambientes de produção. Esse isolamento permite que você teste e experimente diversas configurações com segurança.
+ **Automação**: a integração com um pipeline de integração e de entrega contínua (CI/CD) possibilita o teste automático de [arquivos de configuração](https://developer.hashicorp.com/terraform/language/files) do Terraform. O pipeline realiza testes rigorosos na IaC antes da implantação.
+ **Flexibilidade** — você pode simular configurações diferentes Regiões da AWS e de serviço para se adequar melhor aos seus ambientes de produção. Contas da AWS

## Pré-requisitos e limitações
<a name="test-aws-infra-localstack-terraform-prereqs"></a>

**Pré-requisitos **
+ [Instalar o Docker](https://docs.docker.com/get-started/get-docker/)
+ [Habilite o acesso](https://docs.docker.com/reference/cli/dockerd/#daemon-socket-option) ao soquete padrão do Docker (`/var/run/docker.sock`). Para obter mais informações, consulte a [documentação do LocalStack ](https://docs.localstack.cloud/user-guide/aws/lambda/#migrating-to-lambda-v2).
+ [Instale](https://docs.docker.com/compose/install/) com o Docker Compose
+ [Instale](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) o Terraform na versão 1.6.0 ou em versões posteriores
+ [Instale](https://developer.hashicorp.com/terraform/cli) a CLI do Terraform
+ [Configurar](https://hashicorp.github.io/terraform-provider-aws/) o Terraform Provider AWS 
+ (Opcional) [Instale](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) o AWS Command Line Interface (AWS CLI). Para ver um exemplo de como usar o AWS CLI with LocalStack, consulte o repositório GitHub [Test AWS infrastructure using LocalStack and Terraform Tests](https://github.com/aws-samples/localstack-terraform-test).

**Limitações**
+ Esse padrão fornece exemplos explícitos para testar os recursos do Amazon Simple Storage Service (Amazon S3),, AWS Lambda e AWS Step Functions do Amazon DynamoDB. No entanto, você pode estender essa solução para incluir AWS recursos adicionais.
+ Esse padrão fornece instruções para executar testes do Terraform localmente, mas você pode integrar os testes em qualquer CI/CD pipeline.
+ Esse padrão fornece instruções para usar a imagem LocalStack da comunidade. Se você estiver usando a imagem LocalStack Pro, consulte a [documentação do LocalStack Pro](https://hub.docker.com/r/localstack/localstack-pro).
+ LocalStack fornece serviços de emulação para diferentes. AWS APIs Para obter uma lista completa, consulte [AWS Service Feature Coverage](https://docs.localstack.cloud/user-guide/aws/feature-coverage/). Alguns recursos avançados podem exigir uma assinatura do LocalStack Pro.

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

O diagrama apresentado a seguir ilustra a arquitetura para esta solução. Os componentes principais são um repositório de código-fonte, um CI/CD pipeline e um contêiner LocalStack Docker. O LocalStack Docker Container hospeda o seguinte Serviços da AWS localmente:
+ Um bucket do Amazon S3 para armazenar arquivos
+ Amazon CloudWatch para monitoramento e registro
+ Uma AWS Lambda função para executar código sem servidor
+ Uma máquina de AWS Step Functions estado para orquestrar fluxos de trabalho em várias etapas
+ Uma tabela do Amazon DynamoDB para armazenar dados NoSQL

![\[Um CI/CD pipeline cria e testa o contêiner LocalStack Docker e os recursos da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/34bfbdbf-14e7-42a0-9022-c85a9c30cdcd/images/dc61fac9-b92c-4841-9132-ff8bb865eed9.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Você adiciona e confirma um arquivo de configuração do Terraform no repositório de código-fonte.

1. O CI/CD pipeline detecta as alterações e inicia um processo de construção para análise estática do código do Terraform. O pipeline cria e executa o contêiner LocalStack Docker. Depois disso, o pipeline dá início à execução dos testes.

1. O pipeline carrega um objeto em um bucket do Amazon S3 que está hospedado no contêiner LocalStack do Docker.

1. O upload do objeto invoca uma função. AWS Lambda 

1. A função Lambda armazena a notificação de eventos do Amazon S3 em um log. CloudWatch 

1. A função Lambda inicia uma máquina de AWS Step Functions estado.

1. A máquina de estado grava o nome do objeto do Amazon S3 em uma tabela do DynamoDB.

1. O processo de teste no CI/CD pipeline verifica se o nome do objeto carregado corresponde à entrada na tabela do DynamoDB. Também verifica se o bucket do S3 foi implantado com o nome especificado e se a AWS Lambda função foi implantada com sucesso.

## Ferramentas
<a name="test-aws-infra-localstack-terraform-tools"></a>

**Serviços da AWS**
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.
+ O [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida, previsível e escalável.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.

**Outras ferramentas**
+ O [Docker](https://www.docker.com/) é um conjunto de produtos de plataforma como serviço (PaaS) que usam a virtualização no nível do sistema operacional para fornecer software em contêineres.
+ O [Docker Compose](https://docs.docker.com/compose/) é uma ferramenta para definir e executar aplicações com diversos contêineres.
+ [LocalStack](https://localstack.cloud)é um emulador de serviços em nuvem executado em um único contêiner. Ao usar LocalStack, você pode executar cargas de trabalho em sua máquina local que usam Serviços da AWS, sem se conectar ao Nuvem AWS.
+ [O Terraform](https://www.terraform.io/) é uma ferramenta de IaC HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.
+ O [Terraform Tests](https://developer.hashicorp.com/terraform/language/tests) auxilia na validação das atualizações na configuração de módulos do Terraform por meio de testes semelhantes a testes de integração ou a testes de unidade.

**Repositório de código**

O código desse padrão está disponível na [AWS infraestrutura de GitHub teste usando LocalStack o repositório Terraform Tests](https://github.com/aws-samples/localstack-terraform-test).

## Práticas recomendadas
<a name="test-aws-infra-localstack-terraform-best-practices"></a>
+ Essa solução testa a AWS infraestrutura especificada nos arquivos de configuração do Terraform e não implanta esses recursos no Nuvem AWS. Se você deseja implantar os recursos, siga o [princípio de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) (documentação do IAM) e [configure corretamente o backend do Terraform](https://developer.hashicorp.com/terraform/language/backend) (documentação do Terraform).
+ Ao fazer a integração LocalStack em um CI/CD pipeline, recomendamos que você não execute o contêiner do LocalStack Docker no modo privilegiado. Para obter mais informações, consulte [Privilégio de tempo de execução e recursos do Linux](https://docs.docker.com/engine/containers/run/#runtime-privilege-and-linux-capabilities) (documentação do Docker) e [Segurança para executores autogerenciados](https://docs.gitlab.com/runner/security/) (documentação). GitLab 

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

### Implante a solução
<a name="deploy-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Em um shell bash, insira o comando a seguir. Isso clona a [AWS infraestrutura de teste usando LocalStack o repositório 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 engenheiro | 
| Execute o LocalStack contêiner. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps engenheiro | 
| Inicializar o Terraform. | Insira o seguinte comando para inicializar o Terraform:<pre>terraform init</pre> | DevOps engenheiro | 
| Execute o Terraform Tests. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps engenheiro | 
| Limpe recursos. | Digite o seguinte comando para destruir o LocalStack contêiner:<pre>docker-compose down</pre> | DevOps engenheiro | 

## Solução de problemas
<a name="test-aws-infra-localstack-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Resultado `Error: reading DynamoDB Table Item (Files\|README.md): empty` retornado durante a execução do comando `terraform test`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | 

## Recursos relacionados
<a name="test-aws-infra-localstack-terraform-resources"></a>
+ [Introdução ao Terraform: orientação AWS CDK e orientação para AWS CloudFormation especialistas](https://docs.aws.amazon.com/prescriptive-guidance/latest/getting-started-terraform/introduction.html) (orientação AWS prescritiva)
+ [Melhores práticas para usar o Terraform AWS Provider](https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html) (orientação AWS prescritiva)
+ [Terraform CI/CD e testes AWS com o novo Terraform Test Framework](https://aws.amazon.com/blogs/devops/terraform-ci-cd-and-testing-on-aws-with-the-new-terraform-test-framework/) (AWS postagem no blog)
+ [Acelerando a entrega de software usando o LocalStack Cloud Emulator de AWS Marketplace](https://aws.amazon.com/blogs/awsmarketplace/accelerating-software-delivery-localstack-cloud-emulator-aws-marketplace/) (AWS postagem no blog)

## Mais informações
<a name="test-aws-infra-localstack-terraform-additional"></a>

**Integração com GitHub ações**

Você pode integrar LocalStack e realizar testes do Terraform em um CI/CD pipeline usando o GitHub Actions. Para obter mais informações, consulte a [documentação de GitHub ações](https://docs.github.com/en/actions). Veja a seguir um exemplo de arquivo de configuração de GitHub ações:

```
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
```

# Atualize os clusters do SAP Pacemaker de para ENSA1 ENSA2
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2"></a>

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

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

Esse padrão explica as etapas e as considerações para atualizar um cluster SAP Pacemaker baseado no Standalone Enqueue Server () para. ENSA1 ENSA2 As informações desse padrão se aplicam aos sistemas operacionais SUSE Linux Enterprise Server (SLES) e Red Hat Enterprise Linux (RHEL).

Os clusters Pacemaker no SAP NetWeaver 7.52 ou S/4HANA 1709 e versões anteriores são executados em uma ENSA1 arquitetura e são configurados especificamente para o. ENSA1 Se você executa suas cargas de trabalho do SAP na Amazon Web Services (AWS) e está interessado em migrar para lá ENSA2, talvez descubra que a documentação do SAP, SUSE e RHEL não fornece informações abrangentes. Esse padrão descreve as etapas técnicas necessárias para reconfigurar os parâmetros do SAP e os clusters do Pacemaker para o upgrade. ENSA1 ENSA2 Ele fornece exemplos de sistemas SUSE, mas o conceito é o mesmo para clusters RHEL.

**nota**  
ENSA1 e ENSA2 são conceitos que dizem respeito somente aos aplicativos SAP, portanto, as informações nesse padrão não se aplicam ao SAP HANA ou a outros tipos de clusters.

**nota**  
Tecnicamente, ENSA2 pode ser usado com ou sem o Enqueue Replicator 2. No entanto, a alta disponibilidade (HA) e a automação de failover (por meio de uma solução de cluster) exigem o Enqueue Replicator 2. Esse padrão usa o termo *ENSA2 clusters* para se referir a clusters com Standalone Enqueue Server 2 e Enqueue Replicator 2.

## Pré-requisitos e limitações
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-prereqs"></a>

**Pré-requisitos **
+ Um cluster funcional ENSA1 que usa Pacemaker e Corosync no SLES ou no RHEL.
+ Pelo menos duas instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em que as instâncias (ABAP) do SAP Central Services (ASCS/SCS) e do Enqueue Replication Server (ERS) estão em execução.
+ Conhecimento de gerenciamento de aplicativos e clusters SAP.
+ Acesso ao ambiente Linux como usuário raiz.

**Limitações**
+ ENSA1clusters baseados oferecem suporte somente a uma arquitetura de dois nós.
+ ENSA2clusters baseados não podem ser implantados em NetWeaver versões do SAP anteriores à 7.52.
+ EC2 instâncias em clusters devem estar em diferentes zonas de disponibilidade da AWS.

**Versões do produto**
+ SAP NetWeaver versão 7.52 ou posterior
+ A partir do S/4HANA 2020, somente clusters são suportados ENSA2 
+ Kernel 7.53 ou posterior, que suporta o Enqueue ENSA2 Replicator 2
+ SLES para aplicativos SAP versão 12 ou superior
+ RHEL para SAP com alta disponibilidade (HA) versão 7.9 ou superior

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

**Pilha de tecnologia de origem**
+ SAP NetWeaver 7.52 com SAP Kernel 7.53 ou posterior
+ Sistema operacional SLES ou RHEL

**Pilha de tecnologias de destino**
+ SAP NetWeaver 7.52 com SAP Kernel 7.53 ou posterior, incluindo S/4HANA 2020 com plataforma ABAP
+ Sistema operacional SLES ou RHEL

**Arquitetura de destino**

O diagrama a seguir mostra uma configuração de HA ASCS/SCS e instâncias ERS com base em um ENSA2 cluster.

![\[Arquitetura HA para instâncias ERS ASCS/SCS e ERS em um ENSA2 cluster\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c32560de-901f-4796-a6b3-c08c109b22c8/images/19501713-0ddf-4242-9ea3-90478200a19e.png)


**Comparação de ENSA2 clusters ENSA1 e clusters**

O SAP foi apresentado ENSA2 como sucessor do. ENSA1 Um cluster ENSA1 baseado oferece suporte a uma arquitetura de dois nós em que a ASCS/SCS instância faz o failover para o ERS quando ocorre um erro. Essa limitação decorre de como a ASCS/SCS instância recupera as informações da tabela de bloqueio da memória compartilhada do nó ERS após o failover. ENSA2clusters baseados com o Enqueue Replicator 2 eliminam essa limitação, porque a ASCS/SCS instância pode coletar as informações de bloqueio da instância ERS pela rede. ENSA2clusters baseados podem ter mais de dois nós, porque a ASCS/SCS instância não precisa mais fazer failover para o nó ERS. (No entanto, em um ambiente de ENSA2 cluster de dois nós, a ASCS/SCS instância ainda fará o failover para o nó ERS porque não há outros nós no cluster para os quais fazer o failover.) ENSA2 é suportado a partir do SAP Kernel 7.50 com algumas limitações. Para a configuração de HA compatível com o Enqueue Replicator 2, o requisito mínimo é NetWeaver 7,52 (consulte a nota 2630416 do [SAP OSS](https://launchpad.support.sap.com/#/notes/2630416)). O S/4HANA 1809 vem com a ENSA2 arquitetura recomendada por padrão, enquanto o S/4HANA oferece suporte somente a partir da versão 2020. ENSA2 

**Automação e escala**

O cluster HA na arquitetura de destino faz com que o ASCS faça o failover para outros nós automaticamente.

**Cenários para migrar para clusters ENSA2 baseados**

Há dois cenários principais para a atualização para clusters ENSA2 baseados: 
+ Cenário 1: Você opta por fazer o upgrade para o SAP ou a conversão S/4HANA ENSA2 sem acompanhamento, supondo que sua versão do SAP e a versão do Kernel sejam compatíveis. ENSA2
+ Cenário 2: Você passa para ENSA2 como parte de uma atualização ou conversão (por exemplo, para S/4HANA 1809 ou posterior) usando SUM.

A seção [Épicos](#upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics) aborda as etapas desses dois cenários. O primeiro cenário exige que você configure manualmente os parâmetros relacionados ao SAP antes de alterar a configuração do cluster para ENSA2. No segundo cenário, os binários e os parâmetros relacionados ao SAP são implantados pelo SUM, e sua única tarefa restante é atualizar a configuração do cluster para HA. Ainda recomendamos que você valide os parâmetros do SAP depois de usar o SUM. Na maioria dos casos, a conversão S/4HANA é o principal motivo para uma atualização do cluster.

## Ferramentas
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-tools"></a>
+ Para gerenciadores de pacotes do sistema operacional, recomendamos as ferramentas Zypper (para SLES) ou YUM (para RHEL).
+ Para gerenciamento de clusters, recomendamos os shells **crm** (para SLES) ou **pcs** (para RHEL).
+ Ferramentas de gerenciamento de instâncias SAP, como SAPControl.
+ (Opcional) Ferramenta SUM para atualização de conversão S/4HANA.

## Práticas recomendadas
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-best-practices"></a>
+ Para obter as melhores práticas de uso de workloads SAP na AWS, consulte o [SAP Lens](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html) para o AWS Well-Architected Framework.
+ Considere o número de nós de cluster (pares ou ímpares) em sua arquitetura de ENSA2 vários nós.
+ Configure o ENSA2 cluster para o SLES 15 em alinhamento com o padrão de certificação SAP S/4-HA-CLU 1.0.
+ Sempre salve ou faça backup do estado atual do cluster e do aplicativo antes de fazer o upgrade para o. ENSA2

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

### Configure os parâmetros do SAP manualmente para ENSA2 (somente cenário 1)
<a name="configure-sap-parameters-manually-for-ensa2-scenario-1-only"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os parâmetros no perfil padrão. | Se você quiser fazer o upgrade para ENSA2 enquanto permanece na mesma versão do SAP ou se a versão de destino for padronizada ENSA1, defina os parâmetros no perfil padrão (arquivo DEFAULT.PFL) com os seguintes 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>onde `sapascsvirt` é o nome do host virtual das instâncias do ASCS e `sapersvirt` é o nome do host virtual das instâncias do ERS. Você pode alterá-los para se adequar ao seu ambiente de destino.Para usar essa opção de upgrade, sua versão do SAP e do Kernel devem suportar o Enqueue ENSA2 Replicator 2. | SAP | 
| Configure o perfil da ASCS/SCS instância. | Se você quiser fazer o upgrade para ENSA2 a mesma versão do SAP ou se a versão de destino for padronizada ENSA1, defina os seguintes parâmetros no perfil da ASCS/SCS instância. A seção do perfil em que ENSA1 está definido se parece com a seguinte.<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 seção para ENSA2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Essa sessão do perfil ficaria com algo semelhante ao seguinte após suas alterações.<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>A opção de reinicialização não deve estar habilitada em `_ENQ`. Se `RestartProgram_01` estiver definido para `_ENQ`, altere-o para `StartProgram_01`. Isso impede que o SAP reinicie o serviço ou interfira nos recursos gerenciados pelo cluster. | SAP | 
| Configure o perfil ERS. | Se você quiser fazer o upgrade para ENSA2 a mesma versão do SAP ou se a versão de destino for padronizada ENSA1, defina os seguintes parâmetros no perfil da instância ERS.Encontre a seção em que o replicador de enqueue está definido. Ele será similar ao seguinte.<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 reconfigurar esta seção para o Enqueue Replicator 2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Essa sessão do perfil deve parecer com algo semelhante ao seguinte após as alterações.<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>A opção de reinicialização não deve estar habilitada em `_ENQR`. Se `RestartProgram_01` estiver definido para `_ENQR`, altere-o para `StartProgram_01`. Isso impede que o SAP reinicie o serviço ou interfira nos serviços gerenciados por cluster. | SAP | 
| Reinicie o SAP Start Services. | Depois de alterar os perfis descritos anteriormente neste épico, reinicie o SAP Start Services para ambos ASCS/SCS e o ERS.`sapcontrol -nr 10 -function RestartService SCT``sapcontrol -nr 11 -function RestartService SCT`onde `SCT` se refere ao ID do sistema SAP e supondo que 10 e 11 sejam os números de instância para instâncias ASCS/SCS e ERS, respectivamente. | SAP | 

### Reconfigure o cluster para ENSA2 (necessário para ambos os cenários)
<a name="reconfigure-the-cluster-for-ensa2-required-for-both-scenarios"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique os números de versão nos agentes de recursos do SAP. | Quando você usa o SUM para atualizar o SAP para o S/4HANA 1809 ou superior, o SUM manipula as alterações de parâmetros nos perfis do SAP. Somente o cluster requer ajuste manual. No entanto, recomendamos que você verifique as configurações dos parâmetros antes de fazer qualquer alteração no cluster.Os exemplos apresentados neste épico assumem que você usa o sistema operacional SUSE. Se você estiver usando o RHEL, precisará usar ferramentas como o YUM e o shell **pcs** em vez do Zypper e do **crm**.Verifique os dois nós na arquitetura para confirmar se o pacote `resource-agents` corresponde à versão mínima recomendada pela SAP. Para SLES, consulte SAP OSS Note 2641019. Para RHEL, consulte SAP OSS Note 2641322. (O SAP Notes exige uma [conta de usuário do 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>Atualize a versão `resource-agents`, se necessário. | Administrador de sistemas AWS | 
| Faça backup da configuração do cluster. | Faça backup da configuração do cluster do CRM da seguinte maneira.`crm configure show > /tmp/cluster_config_backup.txt` | Administrador de sistemas AWS | 
| Definir o modo de manutenção. | Defina o cluster para o modo de manutenção.`crm configure property maintenance-mode="true"` | Administrador de sistemas AWS | 
| Verifique a configuração do cluster. | Verifique a configuração atual do cluster.`crm configure show`Aqui está um trecho da saída completa:<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>onde `sapascsvirt` refere-se ao nome do host virtual para as instâncias ASCS, `sapersvirt` refere-se ao nome do host virtual para as instâncias ERS e `SCT` refere-se à ID do sistema SAP. | Administrador de sistemas AWS | 
| Remova a restrição de colocalização de failover. | No exemplo anterior, a restrição de localização `loc_sap_SCT_failover_to_ers` especifica que o ENSA1 recurso do ASCS deve sempre seguir a instância ERS após o failover. Com ENSA2, o ASCS deve ser capaz de realizar o failover livremente em qualquer nó participante, para que você possa remover essa restrição.`crm configure delete loc_sap_SCT_failover_to_ers` | Administrador de sistemas AWS | 
| Ajuste as primitivas. | Você também precisará fazer pequenas alterações nas SAPInstance primitivas ASCS e ERS.Aqui está um exemplo de uma SAPInstance primitiva ASCS 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 atualizar para ENSA2, altere essa configuração para a seguinte.<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 é um exemplo de uma 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 atualizar para ENSA2, altere essa configuração para a seguinte.<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>Você pode alterar as primitivas de várias maneiras. Por exemplo, você pode revisá-las em um editor como o vi, conforme exemplo a seguir.`crm configure edit rsc_sap_SCT_ERS11` | Administrador de sistemas AWS | 
| Desativar o modo de manutenção. | Desative o modo de manutenção no cluster.`crm configure property maintenance-mode="false"`Quando o cluster está fora do modo de manutenção, ele tenta colocar as instâncias ASCS e ERS on-line com as novas ENSA2 configurações. | Administrador de sistemas AWS | 

### (Opcional) Adicionar nós do cluster
<a name="optional-add-cluster-nodes"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Examine as melhores práticas. | Antes de adicionar mais nós, certifique-se de entender as práticas recomendadas, como usar um número par ou ímpar de nós. | Administrador de sistemas AWS | 
| Adicionar nós. | Adicionar mais nós envolve uma série de tarefas, como atualizar o sistema operacional, instalar pacotes de software que correspondam aos nós existentes e disponibilizar montagens. Você pode usar a opção **Preparar host adicional** no SAP Software Provisioning Manager (SWPM) para criar uma linha de base específica do SAP do host. Para obter mais informações, consulte os guias do SAP listados na próxima sessão. | Administrador de sistemas AWS | 

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

**Referências SAP e SUSE**

Para acessar o SAP Notes, você deve ter uma conta de usuário do SAP ONE Support Launchpad. Para obter mais informações, consulte o [site do suporte do SAP](https://support.sap.com/en/my-support/knowledge-base.html).
+ [SAP Note 2501860 ‒ Documentação do SAP NetWeaver Application Server para ABAP 7.52](https://launchpad.support.sap.com/#/notes/2501860)
+ [SAP Note 2641019 ‒ Instalação ENSA2 e atualização de ENSA1 para ENSA2 no ambiente SUSE HA](https://launchpad.support.sap.com/#/notes/2641019)
+ [SAP Note 2641322 ‒ Instalação ENSA2 e atualização de ENSA1 para ENSA2 ao usar as soluções Red Hat HA para SAP](https://launchpad.support.sap.com/#/notes/2641322)
+ [Nota SAP 2711036 ‒ Uso do Standalone Enqueue Server 2 em um ambiente HA](https://launchpad.support.sap.com/#/notes/2711036)
+ [Standalone Enqueue Server 2](https://help.sap.com/docs/ABAP_PLATFORM/cff8531bc1d9416d91bb6781e628d4e0/902412f09e134f5bb875adb6db585c92.html) (documentação do SAP)
+ [SAP S/4 HANA ‒ Cluster de alta disponibilidade do Enqueue Replication 2 - Guia de configuração](https://documentation.suse.com/sbp/all/html/SAP_S4HA10_SetupGuide-SLE12/index.html) (documentação da SUSE)

**Referências da AWS**
+ [SAP HANA na AWS: guia de configuração de alta disponibilidade para SLES e RHEL](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-ha-configuration.html)
+ [SAP Lens - AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)

# Use zonas de disponibilidade consistentes VPCs em diferentes contas da AWS
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts"></a>

*Adam Spicer, Amazon Web Services*

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

Na nuvem da Amazon Web Services (AWS), uma zona de disponibilidade tem um nome que pode variar entre suas contas da AWS e uma [ID de zona de disponibilidade (AZ ID) ](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)que identifica sua localização. Se você usa CloudFormation a AWS para criar nuvens privadas virtuais (VPCs), você deve especificar o nome ou ID da zona de disponibilidade ao criar as sub-redes. Se você criar VPCs em várias contas, o nome da zona de disponibilidade será aleatório, o que significa que as sub-redes usam zonas de disponibilidade diferentes em cada conta. 

Para usar a mesma zona de disponibilidade em todas as suas contas, você deve mapear o nome da zona de disponibilidade em cada conta para a mesma ID AZ. Por exemplo, o diagrama a seguir mostra que o ID AZ `use1-az6` é nomeado `us-east-1a` na conta A da AWS e `us-east-1c` na conta Z da AWS.

![\[A ID da zona de disponibilidade use1-az6 é chamada de us-east-1a na conta da AWS A e de us-east-1c na conta da AWS Z.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/23c8a37b-2408-4534-a1e0-bccfa4d7fbe3.png)


 

Esse padrão ajuda a garantir a consistência zonal fornecendo uma solução escalável e multicontas para usar as mesmas zonas de disponibilidade em suas sub-redes. A consistência zonal garante que seu tráfego de rede entre contas evite caminhos de rede entre zonas de disponibilidade, o que ajuda a reduzir os custos de transferência de dados e a diminuir a latência de rede entre suas cargas de trabalho.

Esse padrão é uma abordagem alternativa para a CloudFormation [AvailabilityZoneId propriedade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid) da AWS.

## Pré-requisitos e limitações
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-prereqs"></a>

**Pré-requisitos **
+ Pelo menos duas contas ativas da AWS na mesma região da AWS.
+ Avalie quantas zonas de disponibilidade são necessárias para atender aos seus requisitos de VPC na região.
+ Identifique e registre a ID AZ para cada zona de disponibilidade que você precisa suportar. Para obter mais informações sobre isso, consulte [Zona de disponibilidade IDs para seus recursos da AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) na documentação do AWS Resource Access Manager.  
+ Uma lista ordenada e separada por vírgulas do seu AZ. IDs Por exemplo, a primeira zona de disponibilidade em sua lista é mapeada como `az1`, a segunda zona de disponibilidade é mapeada como `az2`, e essa estrutura de mapeamento continua até que sua lista separada por vírgulas esteja totalmente mapeada. Não há um número máximo de AZ IDs que possa ser mapeado. 
+ O `az-mapping.yaml` arquivo do repositório de [mapeamento da Zona de Disponibilidade de GitHub Várias Contas](https://github.com/aws-samples/multi-account-az-mapping/), copiado para sua máquina local

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

O diagrama a seguir mostra a arquitetura que é implantada em uma conta e que cria valores do AWS Systems Manager Parameter Store. Esses valores do Parameter Store são consumidos quando você cria uma VPC na conta.

![\[Fluxo de trabalho para criar valores do Systems Manager Parameter Store para cada ID de zona de disponibilidade (AZ) e armazenar o nome da AZ.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/f1168464-55f8-4efc-9b28-6a0cda668b9e.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. A solução desse padrão é implantada em todas as contas que exigem consistência zonal para uma VPC. 

1. A solução cria valores de armazenamento de parâmetros para cada ID de AZ e armazena o novo nome da zona de disponibilidade. 

1. O CloudFormation modelo da AWS usa o nome da zona de disponibilidade armazenado em cada valor do Parameter Store e isso garante a consistência zonal.

O diagrama a seguir mostra o fluxo de trabalho para criar uma VPC com a solução desse padrão.

 

![\[O fluxo de trabalho envia o CloudFormation modelo para criar uma VPC com o AZ correto. IDs\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/cd859430-ac25-479f-b56a-21da24cddf21.png)


 

O diagrama mostra o seguinte fluxo de trabalho:

1. Envie um modelo para criar uma VPC para a AWS. CloudFormation

1. A AWS CloudFormation resolve os valores do Parameter Store para cada zona de disponibilidade e retorna o nome da zona de disponibilidade para cada ID de AZ.

1. Uma VPC é criada com a AZ correta IDs necessária para a consistência zonal.

Depois de implantar a solução desse padrão, você poderá criar sub-redes que façam referência aos valores do Parameter Store. Se você usa a AWS CloudFormation, pode referenciar os valores dos parâmetros de mapeamento da zona de disponibilidade a partir do seguinte código de amostra formatado em YAML:

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

Esse código de exemplo está contido no `vpc-example.yaml ` arquivo do repositório de [mapeamento da Zona de Disponibilidade de GitHub Várias Contas](https://github.com/aws-samples/multi-account-az-mapping/). Ele mostra como criar uma VPC e sub-redes que se alinham aos valores do Parameter Store para obter consistência zonal.

**Pilha de tecnologia**
+ AWS CloudFormation
+ AWS Lambda
+ AWS Systems Manager Parameter Store

**Automação e escala**

Você pode implantar esse padrão em todas as suas contas da AWS usando a AWS CloudFormation StackSets ou a solução Customizations for AWS Control Tower. Para obter mais informações, consulte Como [trabalhar com a AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) na documentação do AWS Cloudformation e [Personalizações para o AWS Control Tower na Biblioteca de Soluções](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) da AWS. 

Depois de implantar o CloudFormation modelo da AWS, você pode atualizá-lo para usar os valores do Parameter Store e implantá-los VPCs em pipelines ou de acordo com seus requisitos. 

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

**Serviços da AWS**
+  CloudFormationA [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ajuda você a modelar e configurar seus recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida. Você pode usar um modelo para descrever seus recursos e as dependências deles, além de inicializá-los e configurá-los juntos como uma pilha, em vez de gerenciar recursos individualmente. Você pode gerenciar e provisionar pilhas em várias contas e regiões da AWS.
+ O [‭‬AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)‭ é um serviço de computação que permite a execução do código sem provisionar ou gerenciar servidores O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando o código não estiver em execução.
+ [O AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) é um recurso do AWS Systems Manager. Oferece armazenamento hierárquico seguro para gerenciamento de dados de configuração e gerenciamento de segredos.

**Código **

O código desse padrão é fornecido no repositório de [mapeamento da Zona de Disponibilidade de GitHub Várias Contas](https://github.com/aws-samples/multi-account-az-mapping/).

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

### Implante o arquivo az-mapping.yaml
<a name="deploy-the-az-mapping-yaml-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine as zonas de disponibilidade necessárias para a região. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html) | Arquiteto de nuvem | 
| Implante o arquivo az-mapping.yaml | Use o `az-mapping.yaml` arquivo para criar uma CloudFormation pilha da AWS em todas as contas da AWS necessárias. No parâmetro `AZIds`, use a lista separada por vírgulas que você criou anteriormente. Recomendamos que você use a [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) ou a solução [Customizations for AWS Control Tower](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/). | Arquiteto de nuvem | 

### Implemente o VPCs em suas contas
<a name="deploy-the-vpcs-in-your-accounts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Personalize os CloudFormation modelos da AWS. | Ao criar as sub-redes usando a AWS CloudFormation, personalize os modelos para usar os valores do Parameter Store que você criou anteriormente.Para ver um modelo de amostra, consulte o `vpc-example.yaml` arquivo no repositório de [mapeamento da Zona de Disponibilidade de GitHub Várias Contas](https://github.com/aws-samples/multi-account-az-mapping/). | Arquiteto de nuvem | 
| Implemente VPCs o. | Implante os CloudFormation modelos personalizados da AWS em suas contas. Cada VPC na região, então, tem consistência zonal nas zonas de disponibilidade usadas para as sub-redes | Arquiteto de nuvem | 

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

# Use o usuário IDs nas políticas do IAM para controle de acesso e automação
<a name="use-user-ids-iam-policies-access-control-automation"></a>

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

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

Esse padrão explica as possíveis armadilhas do uso de políticas baseadas em nome de usuário no AWS Identity and Access Management (IAM), os benefícios de usar o usuário IDs e como integrar essa abordagem à automação. AWS CloudFormation 

No Nuvem AWS, o serviço IAM ajuda você a gerenciar as identidades dos usuários e o controle de acesso com precisão. No entanto, a dependência de nomes de usuário na criação de políticas do IAM pode resultar em riscos de segurança inesperados e problemas de controle de acesso. Por exemplo, considere este cenário: um novo colaborador, chamado John Doe, começa a trabalhar na sua equipe e você cria uma conta de usuário do IAM com o nome de usuário `j.doe`, concedendo permissões por meio de políticas do IAM que fazem referência a nomes de usuários. Quando John é desligado da empresa, a conta é excluída. O problema começa quando uma nova colaboradora, chamada Jane Doe, entra para a equipe, e o nome de usuário `j.doe` é recriado. As políticas existentes concedem à Jane Doe as mesmas permissões que concediam ao John Doe. Isso pode gerar sérios problemas de segurança e de conformidade.

A atualização manual de cada política para refletir os novos detalhes dos usuários é um processo demorado e propenso a erros, especialmente com o crescimento da organização. A solução consiste em usar uma ID de usuário exclusiva e imutável. Ao criar uma conta de usuário do IAM, AWS atribui ao usuário do IAM um ID de usuário exclusivo (ou ID principal). Você pode usar esses usuários IDs em suas políticas do IAM para garantir um controle de acesso consistente e confiável que não seja afetado pelas alterações ou reutilização do nome de usuário.

Por exemplo, uma política do IAM que usa uma ID de usuário pode ter a seguinte aparência:

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

Os benefícios de usar o usuário IDs nas políticas do IAM incluem:
+ **Exclusividade.** IDs Os usuários são únicos em todos Contas da AWS, portanto, fornecem uma aplicação de permissão correta e consistente.
+ **Imutabilidade.** O usuário IDs não pode ser alterado, portanto, ele fornece um identificador estável para referenciar usuários nas políticas.
+ **Auditoria e conformidade.** Serviços da AWS geralmente incluem o usuário IDs em registros e trilhas de auditoria, o que facilita o rastreamento de ações até usuários específicos.
+ **Automação e integração.** O uso de scripts IDs de AWS APIs entrada SDKs de usuário ou de automação garante que os processos permaneçam inalterados pelas alterações do nome de usuário.
+ **Preparação para o futuro.** Usar o usuário IDs nas políticas desde o início pode evitar possíveis problemas de controle de acesso ou extensas atualizações de políticas.

**Automação**

Quando você usa ferramentas de infraestrutura como código (IaC) AWS CloudFormation, como as armadilhas das políticas de IAM baseadas em nome de usuário, ainda podem causar problemas. O recurso de usuário do IAM retorna o nome de usuário quando você chama a função intrínseca `Ref`. À medida que a infraestrutura da sua organização evolui, o ciclo de criação e exclusão de recursos, incluindo as contas de usuário do IAM, pode gerar problemas de controle de acesso não intencionais, caso você reutilize nomes de usuário.

Para resolver esse problema, recomendamos que você incorpore o usuário IDs em seus CloudFormation modelos. No entanto, obter um usuário IDs para essa finalidade pode ser um desafio. É nesse ponto que os recursos personalizados podem ser úteis. Você pode usar recursos CloudFormation personalizados para ampliar a funcionalidade do serviço por meio da integração com AWS APIs ou de serviços externos. Ao criar um recurso personalizado que busca o ID do usuário de um determinado usuário do IAM, você pode disponibilizar o ID do usuário nos seus CloudFormation modelos. Essa abordagem simplifica o processo de referenciar o usuário IDs e garante que seus fluxos de trabalho de automação permaneçam robustos e preparados para o futuro.

## Pré-requisitos e limitações
<a name="use-user-ids-iam-policies-access-control-automation-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Uma função do IAM para um administrador de nuvem executar o CloudFormation modelo

**Limitações**
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

**Arquitetura de destino**

O diagrama a seguir mostra como CloudFormation usa um recurso personalizado apoiado por AWS Lambda para recuperar o ID de usuário do IAM.

![\[Obter o ID de usuário do IAM usando um recurso CloudFormation personalizado.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/71698647-274e-4911-92f0-549e444b53f6/images/7e507df4-f597-499e-bd5b-6d7a55e64146.png)


**Automação e escala**

Você pode usar o CloudFormation modelo várias vezes para contas diferentes Regiões da AWS . Você precisa executá-lo apenas uma vez em cada região ou conta.

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

**Serviços da AWS**
+ [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) — AWS Identity and Access Management (IAM) é um serviço web que ajuda você a controlar com segurança o acesso aos AWS recursos. Com o IAM, você controla quem pode se autenticar (fazer login) e quem tem autorização (permissões) para acessar os recursos.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)— AWS CloudFormation ajuda você a modelar e configurar seus AWS recursos para que você possa passar menos tempo gerenciando esses recursos e mais tempo se concentrando nos aplicativos que são executados AWS. Você cria um modelo que descreve os AWS recursos que você deseja e CloudFormation se encarrega de provisionar e configurar esses recursos para você.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)— AWS Lambda é um serviço de computação que oferece suporte à execução de código sem provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. 

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

Caso esteja começando do zero ou planejando uma implantação sem dependências anteriores, recomendamos o uso do [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) para o gerenciamento centralizado de usuários. O IAM Identity Center se integra aos seus provedores de identidade existentes (como Active Directory ou Okta) para federar identidades de usuários AWS, o que elimina a necessidade de criar e gerenciar usuários do IAM diretamente. Essa abordagem não apenas garante um controle de acesso consistente, mas também simplifica o gerenciamento do ciclo de vida do usuário e ajuda a aprimorar a segurança e a conformidade em todo o seu ambiente. AWS 

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

### Validação das permissões
<a name="validate-permissions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide sua função Conta da AWS e do IAM. | Confirme se você tem uma função do IAM com permissões para implantar CloudFormation modelos no seu Conta da AWS.Se você planeja usar o AWS CLI em vez do CloudFormation console para implantar o modelo na última etapa desse procedimento, você também deve configurar credenciais temporárias para executar AWS CLI comandos. Para obter instruções, consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli). | Arquiteto de nuvem | 

### Crie um CloudFormation modelo
<a name="build-a-cfnshort-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html) | AWS DevOps, arquiteto de nuvem | 
| Adicione um parâmetro de entrada para o nome de usuário. | Adicione o código a seguir à `Parameters` seção do CloudFormation modelo:<pre>Parameters:<br />  NewIamUserName:<br />    Type: String<br />    Description: Unique username for the new IAM user<br /></pre>Este parâmetro solicita ao usuário o nome de usuário. | AWS DevOps, arquiteto de nuvem | 
| Adicione um recurso personalizado para criar um usuário do IAM. | Adicione o código a seguir à `Resources` seção do CloudFormation modelo:<pre>Resources:<br />  rNewIamUser:<br />    Type: 'AWS::IAM::User'<br />    Properties:<br />      UserName: !Ref NewIamUserName<br /></pre>Esse código adiciona um CloudFormation recurso que cria um usuário do IAM com o nome fornecido pelo `NewIamUserName` parâmetro. | AWS DevOps, arquiteto de nuvem | 
| Adicione um perfil de execução para a função do Lambda. | Nesta etapa, você cria uma função do IAM que concede uma permissão de AWS Lambda função para obter o IAM`UserId`. Especifique as seguintes permissões mínimas necessárias para que o Lambda seja executado:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html)Para obter instruções sobre como criar um perfil de execução, consulte a [documentação do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Este perfil será referenciado na próxima etapa, quando você criar a função do Lambda. | Administrador da AWS, arquiteto de nuvem | 
| Adicione uma função do Lambda para obter a `UserId` exclusiva do IAM. | Nesta etapa, você define uma função do Lambda com runtime do Python para obter a `UserId` exclusiva do IAM. Para fazer isso, adicione o código a seguir à `Resources` seção do CloudFormation modelo. Substitua `<<ROLENAME>>` pelo nome do perfil de execução que você criou na última etapa.<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, arquiteto de nuvem | 
| Adicione um recurso personalizado. | Adicione o código a seguir à `Resources` seção do CloudFormation modelo:<pre>  rCustomGetUniqueUserId:<br />    Type: 'Custom::rCustomGetUniqueUserIdWithLambda'<br />    Properties:<br />      ServiceToken: !GetAtt GetUserLambdaFunction.Arn<br />      NewIamUserName: !Ref NewIamUserName<br /></pre>Este recurso personalizado chama a função do Lambda para obter a `UserID` do IAM. | AWS DevOps, arquiteto de nuvem | 
| Defina as CloudFormation saídas. | Adicione o código a seguir à `Outputs` seção do CloudFormation modelo:<pre>Outputs:<br />  NewIamUserId:<br />    Value: !GetAtt rCustomGetUniqueUserId.NewIamUserId<br /></pre>Isso exibe a `UserID` do IAM para o novo usuário do IAM. | AWS DevOps, arquiteto de nuvem | 
| Salve o modelo. | Salve suas alterações no CloudFormation modelo. | AWS DevOps, arquiteto de nuvem | 

### Implante o CloudFormation modelo
<a name="deploy-the-cfnshort-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o CloudFormation modelo. | Para implantar o `get_unique_user_id.yaml` modelo usando o CloudFormation console, siga as instruções na [CloudFormation documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).Como alternativa, você pode executar o seguinte AWS CLI comando para implantar o modelo:<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, arquiteto de nuvem | 

## Recursos relacionados
<a name="use-user-ids-iam-policies-access-control-automation-resources"></a>
+ [Crie uma pilha a partir do CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentação)
+ [Recursos personalizados apoiados pelo Lambda (documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html)) CloudFormation 
+ [Identificadores exclusivos](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) (documentação do IAM)
+ [Use credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) (documentação do IAM)

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

*Alexandru Pop e Michal Gorniak, Amazon Web Services*

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

Esse padrão mostra como testar localmente o código do HashiCorp Terraform que é gerenciado pelo AWS Control Tower Account Factory for Terraform (AFT). O Terraform é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. O AFT configura um pipeline do Terraform que ajuda você a provisionar e personalizar várias entradas Contas da AWS . AWS Control Tower

Durante o desenvolvimento do código, pode ser útil testar sua infraestrutura como código (IaC) do Terraform localmente, fora do pipeline do AFT. Este padrão mostra como fazer o seguinte:
+ Recupere uma cópia local do código do Terraform que está armazenado nos AWS CodeCommit repositórios da sua conta de gerenciamento do AFT.
+ Simular o pipeline AFT localmente usando o código recuperado.

Esse procedimento também pode ser usado para executar comandos do Terraform que não fazem parte do pipeline AFT normal. Por exemplo, você pode usar esse método para executar comandos como `terraform validate`, `terraform plan`, `terraform destroy` e `terraform import`.

## Pré-requisitos e limitações
<a name="validate-account-factory-for-terraform-aft-code-locally-prereqs"></a>

**Pré-requisitos **
+ Um ambiente ativo AWS de várias contas que usa [AWS Control Tower](https://aws.amazon.com/controltower)
+ Um [ambiente AFT](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) totalmente implantado
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [AWS CLI auxiliar de credencial para AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html), instalado e configurado
+ Python 3.x
+ [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), instalado e configurado em sua máquina local
+ Utilitário `git-remote-commit`, [instalado e configurado](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 e configurado (a versão local do pacote Terraform deve corresponder à versão usada na implantação do AFT)

**Limitações**
+ Esse padrão não abrange as etapas de implantação necessárias para AWS Control Tower o AFT ou qualquer módulo específico do Terraform.
+ A saída gerada localmente durante esse procedimento não é salva nos logs de runtime do pipeline AFT.

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

**Pilha de tecnologias de destino**
+ Infraestrutura AFT implantada em uma AWS Control Tower implantação
+ Terraform
+ Git
+ AWS CLI versão 2

**Automação e escala**

Esse padrão mostra como invocar localmente o código do Terraform para personalizações de contas globais AFT em um único AFT gerenciado. Conta da AWS Depois que seu código do Terraform for validado, você poderá aplicá-lo às contas restantes em seu ambiente de várias contas. Para obter mais informações, consulte [Reinvocar personalizações](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations) na documentação. AWS Control Tower 

Você também pode usar um processo semelhante para executar personalizações de contas do AFT em um terminal local. Para invocar localmente o código do Terraform a partir das personalizações da conta AFT, clone o **aft-account-customizations**repositório em vez do repositório na sua conta de gerenciamento do **aft-global-account-customizations**AFT. CodeCommit 

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

**Serviços da AWS**
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)ajuda você a configurar e administrar um ambiente AWS com várias contas, seguindo as melhores práticas prescritivas.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.

**Outros serviços**
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código.
+ O [Git](https://git-scm.com/docs) é um sistema de controle de versão distribuído e de código aberto.

**Código **

Veja a seguir um exemplo de script bash que pode ser usado para executar localmente o código do Terraform gerenciado pelo AFT. Para usar o script, siga as instruções na seção [Épicos](#validate-account-factory-for-terraform-aft-code-locally-epics) desse padrão.

```
#! /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 "$@"
```

## Épicos
<a name="validate-account-factory-for-terraform-aft-code-locally-epics"></a>

### Salve o código de exemplo como um arquivo local
<a name="save-the-example-code-as-a-local-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Salve o código de exemplo como um arquivo local. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador da AWS | 
| Torne o código de exemplo executável. | Abra uma janela de terminal e autentique-se em sua conta de gerenciamento do AWS AFT fazendo o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)Sua organização também pode ter uma ferramenta personalizada para fornecer credenciais de autenticação ao seu AWS ambiente. | Administrador da AWS | 
| Certifique-se de que você tem acesso à conta gerencial do AFT na Região da AWS correta. | Certifique-se de usar a mesma sessão de terminal com a qual você se autenticou na conta gerencial do AFT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador da AWS | 
| Crie um novo diretório local para armazenar o código do repositório do AFT. | Na mesma sessão de terminal, execute os comandos a seguir:<pre>mkdir my_aft <br />cd my_aft</pre> | Administrador da AWS | 
| Clone o código do repositório do AFT remoto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador da AWS | 

### Crie os arquivos de configuração do Terraform necessários para que o pipeline do AFT seja executado localmente
<a name="create-the-terraform-configuration-files-required-for-the-aft-pipeline-to-run-locally"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Abra um pipeline do AFT executado anteriormente e copie os arquivos de configuração do Terraform em uma pasta local. | Os arquivos de configuração `backend.tf` e `aft-providers.tf` criados neste épico são necessários para que o pipeline do AFT seja executado localmente. Esses arquivos são criados automaticamente no pipeline do AFT baseado em nuvem, mas devem ser criados manualmente para que o pipeline seja executado localmente. Para executar o pipeline do AFT localmente, é necessário um conjunto de arquivos que represente a operação do pipeline em uma única Conta da AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)**Exemplo de instrução backend.tf gerada automaticamente**<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>****Os `aft-providers.tf` arquivos `backend.tf` e estão vinculados a uma implantação e pasta específicas Conta da AWS do AFT. Esses arquivos também são diferentes, dependendo se eles estão no **aft-account-customizations**repositório **aft-global-customizations**e dentro da mesma implantação do AFT. Certifique-se de gerar os dois arquivos a partir da mesma listagem de runtime. | Administrador da AWS | 

### Execute o pipeline do AFT localmente usando o script bash de exemplo
<a name="run-the-aft-pipeline-locally-by-using-the-example-bash-script"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implemente as alterações de configuração do Terraform que você deseja validar. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador da AWS | 
| Execute o script `ct_terraform.sh` e analise a saída. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrador da AWS | 

### Envio por push das alterações de código locais para o repositório do AFT
<a name="push-your-local-code-changes-back-to-the-aft-repository"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione referências aos arquivos `backend.tf` e `aft-providers.tf` em um arquivo `.gitignore`. | Adicione os arquivos `backend.tf`** **e `aft-providers.tf` que você criou a um arquivo `.gitignore` executando os seguintes comandos:<pre>echo backend.tf >> .gitignore<br />echo aft-providers.tf >>.gitignore</pre>A migração dos arquivos ao arquivo** **f`.gitignore` garante que eles não sejam confirmados nem enviados por push para o repositório remoto do AFT. | Administrador da AWS | 
| Confirme e envie suas alterações de código para o repositório do AFT remoto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)As alterações de código que você introduz seguindo esse procedimento até esse ponto são aplicadas Conta da AWS somente a uma. | Administrador da AWS | 

### Implementação das alterações em várias contas
<a name="roll-out-the-changes-to-multiple-accounts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implemente as alterações em todas as suas contas sob gerenciamento do AFT. | Para implementar as alterações em várias Contas da AWS que são gerenciadas pelo AFT, siga as instruções em [Reinvocar personalizações](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations) na documentação. AWS Control Tower  | Administrador da AWS | 

# Mais padrões
<a name="infrastructure-more-patterns-pattern-list"></a>

**Topics**
+ [Adicione HA ao Oracle PeopleSoft no Amazon RDS Custom usando uma réplica de leitura](add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.md)
+ [Audite automaticamente grupos AWS de segurança que permitem acesso a partir de endereços IP públicos](audit-security-groups-access-public-ip.md)
+ [Automatize a criação de contas usando o Landing Zone Accelerator em AWS](automate-account-creation-lza.md)
+ [Automatizar a adição ou atualização de entradas de registro do Windows usando o AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.md)
+ [Automatize a avaliação de recursos da AWS](automate-aws-resource-assessment.md)
+ [Automatize o portfólio e a implantação de produtos do AWS Service Catalog usando o AWS CDK](automate-aws-service-catalog-portfolio-and-product-deployment-by-using-aws-cdk.md)
+ [Automatização do failover e do failback entre regiões usando o DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatize a exclusão de AWS CloudFormation pilhas e recursos associados](automate-deletion-cloudformation-stacks-associated-resources.md)
+ [Automatização da ingestão e da visualização de métricas personalizadas do Amazon MWAA no Amazon Managed Grafana usando o Terraform](automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.md)
+ [Automatize a configuração RabbitMQ no Amazon MQ](automate-rabbitmq-configuration-in-amazon-mq.md)
+ [Automatize a implantação Cadeia de Suprimentos AWS de data lakes em uma configuração de vários repositórios](automate-the-deployment-of-aws-supply-chain-data-lakes.md)
+ [Automatize a replicação de instâncias do Amazon RDS em Contas da AWS](automate-the-replication-of-amazon-rds-instances-across-aws-accounts.md)
+ [Anexe automaticamente uma política gerenciada da AWS para Systems Manager aos perfis de EC2 instância usando o Cloud Custodian e o AWS CDK](automatically-attach-an-aws-managed-policy-for-systems-manager-to-ec2-instance-profiles-using-cloud-custodian-and-aws-cdk.md)
+ [Crie CI/CD pipelines e clusters do Amazon ECS automaticamente para microsserviços usando o AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.md)
+ [Detecte alterações automaticamente e inicie diferentes CodePipeline pipelines para um monorepo em CodeCommit](automatically-detect-changes-and-initiate-different-codepipeline-pipelines-for-a-monorepo-in-codecommit.md)
+ [Crie um pipeline de dados para ingerir, transformar e analisar dados do Google Analytics usando o AWS DataOps Development Kit](build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.md)
+ [Crie um PAC de servidor corporativo da Micro Focus com o Amazon EC2 Auto Scaling e o Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Crie e envie imagens do Docker para o Amazon ECR usando GitHub Actions e Terraform](build-and-push-docker-images-to-amazon-ecr-using-github-actions-and-terraform.md)
+ [Crie uma AWS landing zone que inclua o MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Centralização do gerenciamento das chaves de acesso do IAM no AWS Organizations usando o Terraform](centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.md)
+ [Centralização da distribuição de pacotes de software no AWS Organizations usando o Terraform](centralize-software-package-distribution-in-aws-organizations-by-using-terraform.md)
+ [Configure o registro de invocação de modelo no Amazon Bedrock usando AWS CloudFormation](configure-bedrock-invocation-logging-cloudformation.md)
+ [Configurar o roteamento somente para leitura nos grupos de disponibilidade do Always On no SQL Server em AWS](configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.md)
+ [Crie um portal para microfrontends usando Angular e AWS Amplify Module Federation](create-amplify-micro-frontend-portal.md)
+ [Crie uma estrutura de orquestração de recursos baseada em API usando Actions e Terragrunt GitHub](create-an-api-driven-resource-orchestration-framework-using-github-actions-and-terragrunt.md)
+ [Crie uma EventBridge conexão entre contas da Amazon em uma organização](create-cross-account-amazon-eventbridge-connection-organization.md)
+ [Criar pipelines dinâmicos de CI para projetos Java e Python automaticamente](create-dynamic-ci-pipelines-for-java-and-python-projects-automatically.md)
+ [Implante uma API do Amazon API Gateway em um site interno usando endpoints privados e um Application Load Balancer](deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.md)
+ [Implemente e gerencie AWS Control Tower controles usando AWS CDK e CloudFormation](deploy-and-manage-aws-control-tower-controls-by-using-aws-cdk-and-aws-cloudformation.md)
+ [Implemente e gerencie AWS Control Tower controles usando o Terraform](deploy-and-manage-aws-control-tower-controls-by-using-terraform.md)
+ [Implante canários CloudWatch Synthetics usando o Terraform](deploy-cloudwatch-synthetics-canaries-by-using-terraform.md)
+ [Implemente um cluster CockroachDB no Amazon EKS usando o Terraform](deploy-cockroachdb-on-eks-using-terraform.md)
+ [Implantação de um sistema de arquivos do Lustre para processamento de dados de alta performance usando o Terraform e a DRA](deploy-lustre-file-system-for-high-performance-data-processing-with-terraform-dra.md)
+ [Implemente um caso de uso do RAG AWS usando o Terraform e o Amazon Bedrock](deploy-rag-use-case-on-aws.md)
+ [Implante recursos em uma AWS Wavelength zona usando o Terraform](deploy-resources-wavelength-zone-using-terraform.md)
+ [Implante instâncias de cluster de failover do SQL Server na Amazon EC2 e na Amazon FSx usando o Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Implemente as automações de segurança para a AWS WAF solução usando o Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Detecção de instâncias de banco de dados do Amazon RDS e do Aurora com certificados CA prestes a expirar](detect-rds-instances-expiring-certificates.md)
+ [Documentação do projeto da sua Zona de Pouso da AWS](document-your-aws-landing-zone-design.md)
+ [Exporte relatórios do AWS Backup de toda a organização no AWS Organizations como um arquivo CSV](export-aws-backup-reports-from-across-an-organization-in-aws-organizations-as-a-csv-file.md)
+ [Gere recomendações personalizadas e reclassificadas usando o Amazon Personalize](generate-personalized-and-re-ranked-recommendations-using-amazon-personalize.md)
+ [Governança de conjuntos de permissões para várias contas usando o Account Factory para Terraform](govern-permission-sets-aft.md)
+ [Identifique e alerte quando os recursos do Amazon Data Firehose não estiverem criptografados com uma chave AWS KMS](identify-and-alert-when-amazon-data-firehose-resources-are-not-encrypted-with-an-aws-kms-key.md)
+ [Implementação do Account Factory for Terraform (AFT) usando um pipeline de bootstrap](implement-account-factory-for-terraform-aft-by-using-a-bootstrap-pipeline.md)
+ [Implementação do versionamento de APIs baseado em caminhos usando domínios personalizados no Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.md)
+ [Instale o agente SSM nos nós de trabalho do Amazon EKS usando o Kubernetes DaemonSet](install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset.md)
+ [Instale o agente SSM e o CloudWatch agente nos nós de trabalho do Amazon EKS usando preBootstrapCommands](install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands.md)
+ [Gerencie conjuntos de Centro de Identidade do AWS IAM permissões como código usando AWS CodePipeline](manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.md)
+ [Gerencie conjuntos de AWS permissões dinamicamente usando o Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Gerencie produtos do AWS Service Catalog em várias contas e regiões da AWS](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Gerencie aplicativos de contêineres on-premises configurando o Amazon ECS Anywhere com o AWS CDK](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Gerencie AWS Organizations políticas como código usando o AWS CodePipeline Amazon Bedrock](manage-organizations-policies-as-code.md)
+ [Migre registros de DNS em massa para uma zona hospedada privada do Amazon Route 53](migrate-dns-records-in-bulk-to-an-amazon-route-53-private-hosted-zone.md)
+ [Migre o Oracle PeopleSoft para o Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migre sistemas RHEL BYOL para instâncias com licença incluída da AWS usando o AWS MGN](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Monitore ElastiCache clusters da Amazon para criptografia em repouso](monitor-amazon-elasticache-clusters-for-at-rest-encryption.md)
+ [Monitore a atividade do aplicativo usando o CloudWatch Logs Insights](monitor-application-activity-by-using-cloudwatch-logs-insights.md)
+ [Monitoramento de clusters Pacemaker no RHEL para SAP por meio dos serviços da AWS](monitor-sap-rhel-pacemaker-clusters-by-using-aws-services.md)
+ [Crie uma arquitetura IPAM hierárquica e multirregional usando o Terraform AWS](multi-region-ipam-architecture.md)
+ [Otimize implantações sem servidor de várias contas usando os fluxos de trabalho e Actions AWS CDK GitHub](optimize-multi-account-serverless-deployments.md)
+ [Provisione AWS Service Catalog produtos com base em AWS CloudFormation modelos usando GitHub Ações](provision-aws-service-catalog-products-using-github-actions.md)
+ [Provisione funções do IAM com privilégios mínimos implantando uma solução de máquina de venda automática de funções](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)
+ [Remova EC2 as entradas Contas da AWS da Amazon em frente AWS Managed Microsoft AD usando a AWS Lambda automação](remove-amazon-ec2-entries-across-aws-accounts-from-aws-managed-microsoft-ad.md)
+ [Remova EC2 as entradas da Amazon na mesma forma Conta da AWS AWS Managed Microsoft AD usando a AWS Lambda automação](remove-amazon-ec2-entries-in-the-same-aws-account-from-aws-managed-microsoft-ad.md)
+ [Transferências seguras de arquivos usando Transfer Family, Amazon Cognito e GuardDuty](secure-file-transfers.md)
+ [Enviar uma notificação quando um usuário do IAM for criado](send-a-notification-when-an-iam-user-is-created.md)
+ [Configuração de um roteador celular sem servidor para uma arquitetura baseada em células](serverless-cell-router-architecture.md)
+ [Configure um CI/CD pipeline para cargas de trabalho híbridas no Amazon ECS Anywhere usando o AWS CDK e GitLab](set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.md)
+ [Configure uma HA/DR arquitetura para o Oracle E-Business Suite no Amazon RDS Custom com um banco de dados ativo em espera](set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database.md)
+ [Configure a resolução de DNS para redes híbridas em um ambiente com várias contas AWS](set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.md)
+ [Configure a infraestrutura Multi-AZ para um SQL Server Always On FCI usando a Amazon FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)
+ [Configure a funcionalidade Oracle UTL\$1FILE no Aurora compatível com PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Autenticação simplificada de aplicações com TLS mútua no Amazon ECS usando o Application Load Balancer](simplify-application-authentication-with-mutual-tls-in-amazon-ecs.md)
+ [Simplificar o gerenciamento de certificados privados usando a CA privada da AWS e o AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.md)
+ [Simplifique os fluxos de trabalho de aprendizado de máquina, do desenvolvimento local aos experimentos escaláveis, usando SageMaker IA e Hydra](streamline-machine-learning-workflows-by-using-amazon-sagemaker.md)
+ [Marque anexo do gateway de trânsito automaticamente usando o AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Funções de transição para um PeopleSoft aplicativo Oracle no Amazon RDS Custom for Oracle](transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.md)
+ [Uso do Amazon Q Developer como um assistente de codificação para aumentar a produtividade](use-q-developer-as-coding-assistant-to-increase-productivity.md)