

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á.

# Migração e modernização
<a name="migration-modernization-pattern-list"></a>

**Topics**
+ [Migração](migration-pattern-list.md)
+ [Modernização](modernization-pattern-list.md)
+ [Mainframes](mainframe-pattern-list.md)

# Migração
<a name="migration-pattern-list"></a>

**Topics**
+ [Crie CloudFormation modelos da AWS para tarefas do AWS DMS usando Microsoft Excel e Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Conceitos básicos de descoberta automatizada de portfólio](get-started-with-automated-portfolio-discovery.md)
+ [Migre workloads on-premises da Cloudera para a Cloudera Data Platform na AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Resolva erros de conexão após migrar o Microsoft SQL Server para a Nuvem AWS](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Reinicie o AWS Replication Agent automaticamente sem desativá-lo SELinux após a reinicialização de um servidor de origem RHEL](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Redefinir arquitetura](migration-rearchitect-pattern-list.md)
+ [Redefinir a hospedagem](migration-rehost-pattern-list.md)
+ [Realocar](migration-relocate-pattern-list.md)
+ [Redefinir a plataforma](migration-replatform-pattern-list.md)
+ [Padrões de migração por workload](migration-migration-patterns-by-workload-pattern-list.md)
+ [Mais padrões](migration-more-patterns-pattern-list.md)

# Crie CloudFormation modelos da AWS para tarefas do AWS DMS usando Microsoft Excel e Python
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python"></a>

*Venkata Naveen Koppula, Amazon Web Services*

## Resumo
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-summary"></a>

Esse padrão descreve as etapas para criar automaticamente CloudFormation modelos da AWS para o [AWS Database Migration Service](https://aws.amazon.com/dms/) (AWS DMS) usando Microsoft Excel e Python.

A migração de bancos de dados usando o AWS DMS geralmente envolve a criação de CloudFormation modelos da AWS para provisionar tarefas do AWS DMS. Anteriormente, a criação CloudFormation de modelos da AWS exigia conhecimento da linguagem de programação JSON ou YAML. Com essa ferramenta, você só precisa de conhecimentos básicos do Excel e de como executar um script Python usando um terminal ou janela de comando.

Como entrada, a ferramenta usa uma pasta de trabalho do Excel que inclui os nomes das tabelas a serem migradas, os Amazon Resource Names (ARNs) dos endpoints do AWS DMS e as instâncias de replicação do AWS DMS. Em seguida, a ferramenta gera CloudFormation modelos da AWS para as tarefas necessárias do AWS DMS.

Para obter etapas detalhadas e informações básicas, consulte a postagem do blog [Crie CloudFormation modelos da AWS para tarefas do AWS DMS usando o Microsoft Excel](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/) no blog do banco de dados da AWS.

## Pré-requisitos e limitações
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Microsoft Excel versão 2016 ou superior
+ Python (versão 2.7 ou superior)
+ O módulo **xlrd** Python (instalado em um prompt de comando com o comando: **pip install xlrd**)
+ Endpoints de origem e destino do AWS DMS e instância de replicação do AWS DMS

**Limitações**
+ Os nomes dos esquemas, tabelas e colunas associadas são transformados em caracteres em minúsculas nos endpoints de destino.
+ Essa ferramenta não trata da criação de endpoints e instâncias de replicação do AWS DMS.
+ Atualmente, a ferramenta oferece suporte a apenas um esquema para cada tarefa do AWS DMS.

## Arquitetura
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados on-premises
+ Microsoft Excel

**Pilha de tecnologias de destino**
+  CloudFormation Modelos da AWS
+ Um banco de dados na Nuvem AWS 

**Arquitetura**

![\[Fluxo de trabalho para usar o Excel e o Python para criar automaticamente CloudFormation modelos para o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/778c7c1e-2647-496f-8afd-52ff1ef02489/images/8fe1550d-8966-41aa-a480-5f7bef20629f.png)


## Ferramentas
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-tools"></a>
+ [Pycharm IDE](https://aws.amazon.com/pycharm/) ou qualquer ambiente de desenvolvimento integrado (IDE) que suporte Python versão 3.6
+ Microsoft Office 2016 (para Microsoft Excel)

## Épicos
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-epics"></a>

### Configure a rede, a instância de replicação do AWS DMS e os endpoints
<a name="configure-the-network-aws-dms-replication-instance-and-endpoints"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Se necessário, solicite um aumento da Service Quota. | Solicite um aumento de service quota para as tarefas do AWS DMS, se necessário. | AWS geral | 
| Configure a região da AWS, as nuvens privadas virtuais (VPCs), os intervalos de CIDR, as zonas de disponibilidade e as sub-redes. |  | AWS geral | 
| Configure a instância de replicação do AWS DMS. | A instância de replicação do AWS DMS pode se conectar a bancos de dados on-premises e da AWS. | AWS geral | 
| Configure endpoints do AWS DMS. | Configure endpoints para ambos os bancos de dados, de origem e de destino. | AWS geral | 

### Prepare as planilhas para tarefas e tags do AWS DMS
<a name="prepare-the-worksheets-for-aws-dms-tasks-and-tags"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a lista de tabelas. | Liste todas as tabelas envolvidas na migração. | Banco de dados | 
| Prepare a planilha de tarefas. | Prepare a planilha do Excel usando a lista de tabelas que você configurou. | AWS geral, Microsoft Excel | 
| Prepare a planilha de tags. | Detalhe as tags de recursos da AWS a serem anexadas às tarefas do AWS DMS. | AWS geral, Microsoft Excel | 

### Baixe e execute a ferramenta
<a name="download-and-run-the-tool"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe e extraia a ferramenta de geração de modelos do GitHub repositório. | GitHub repositório:/ https://github.com/aws-samples/dms-cloudformation-templates-generator |  | 
| Execute a ferramenta. | Siga as instruções detalhadas na postagem do blog listada em “Referências e ajuda”. |  | 

## Recursos relacionados
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-resources"></a>
+ [Crie CloudFormation modelos da AWS para tarefas do AWS DMS usando o Microsoft Excel (publicação no blog)](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/)
+ [Gerador de CloudFormation modelos DMS (GitHub repositório)](https://github.com/aws-samples/dms-cloudformation-templates-generator/tree/v1.0)
+ [Documentação do Python](https://www.python.org/)
+ [descrição e download do xlrd](https://pypi.org/project/xlrd/)
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/)
+ [ CloudFormation Documentação da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)

# Conceitos básicos de descoberta automatizada de portfólio
<a name="get-started-with-automated-portfolio-discovery"></a>

*Pratik Chunawala e Rodolfo Jr. Cerrada, Amazon Web Services*

## Resumo
<a name="get-started-with-automated-portfolio-discovery-summary"></a>

Avaliar o portfólio e coletar metadados representam um desafio importante ao migrar aplicações e servidores para a Nuvem Amazon Web Services (AWS), sobretudo em migrações que envolvem mais de 300 servidores. O uso de uma ferramenta automatizada de descoberta de portfólio pode ajudá-lo a coletar informações sobre seus aplicativos, como número de usuários, frequência de uso, dependências e informações sobre a infraestrutura do aplicativo. Essas informações são essenciais ao planejar ondas em migração para que você possa priorizar e agrupar adequadamente aplicativos com características semelhantes. O uso de uma ferramenta de descoberta simplifica a comunicação entre a equipe do portfólio e os proprietários do aplicativo, pois a equipe do portfólio pode validar os resultados da ferramenta de descoberta em vez de coletar manualmente os metadados. Esse padrão discute as principais considerações para selecionar uma ferramenta de descoberta automatizada e informações sobre como implantá-la e testá-la em seu ambiente.

Esse padrão inclui um modelo, que é um ponto de partida para criar sua própria lista de verificação de atividades de alto nível. Ao lado da lista de verificação está o modelo para uma matriz responsável, confiável, consultada e informada (RACI). Você pode usar essa matriz RACI para determinar quem é responsável por cada tarefa em sua lista de verificação.

## Épicos
<a name="get-started-with-automated-portfolio-discovery-epics"></a>

### Selecionar uma ferramenta de descoberta
<a name="select-a-discovery-tool"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determinar se uma ferramenta de descoberta é apropriada para o seu caso de uso. | Uma ferramenta de descoberta pode não ser a melhor solução para seu caso de uso. Considere o tempo necessário para selecionar, adquirir, preparar e implantar uma ferramenta de descoberta. Pode levar de 4 a 8 semanas para configurar o dispositivo de digitalização para uma ferramenta de descoberta sem agente em seu ambiente ou para instalar agentes em todas as workloads dentro do escopo. Depois de implantada, você deve esperar de 4 a 12 semanas para que a ferramenta de descoberta colete metadados examinando as workloads do aplicativo e realizando a análise da pilha de aplicativos. Se você estiver migrando menos de 100 servidores, poderá coletar manualmente os metadados e analisar as dependências mais rápido do que o tempo necessário para implantar e coletar metadados com uma ferramenta de descoberta automatizada.  | Líder de migração, engenheiro de migração | 
| Selecionar uma ferramenta de descoberta. | Revise as **Considerações para selecionar uma ferramenta de descoberta automatizada** na seção [Informações adicionais](#get-started-with-automated-portfolio-discovery-additional). Determine os critérios apropriados para selecionar uma ferramenta de descoberta para seu caso de uso e, em seguida, avalie cada ferramenta em relação a esses critérios. Para obter uma lista abrangente de ferramentas automatizadas de descoberta, consulte [Ferramentas de migração de descoberta, planejamento e recomendação](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/). | Líder de migração, engenheiro de migração | 

### Preparar a instalação
<a name="prepare-for-installation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar a lista de verificação de pré-implantação.  | Crie uma lista de verificação das tarefas que você deve concluir antes de implantar a ferramenta. Por exemplo, consulte a [Lista de verificação de pré-implantação](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_Predeployment.htm) no site de documentação do Flexera. | Líder de compilação, engenheiro de migração, líder de migração, administrador de rede | 
| Preparar os requisitos de rede. | Provisione as portas, protocolos, endereços IP e roteamento necessários para que a ferramenta execute e acesse os servidores de destino. Para obter mais informações, consulte o guia de instalação da sua ferramenta de descoberta. Para obter um exemplo, consulte [Requisitos de implantação](https://docs.flexera.com/foundationcloudscape/help/RCDeployReq.htm) no site de documentação do Flexera. | Engenheiro de migração, administrador de rede, arquiteto de nuvem | 
| Preparar os requisitos de conta e credencial. | Identifique as credenciais necessárias para acessar os servidores de destino e instalar todos os componentes da ferramenta. | Administrador de nuvem, AWS geral, engenheiro de migração, líder de migração, administrador de rede, administrador da AWS | 
| Preparar os dispositivos nos quais você instalará a ferramenta. | Certifique-se de que os dispositivos nos quais você instalará os componentes da ferramenta atendam às especificações e aos requisitos da plataforma da ferramenta. | Engenheiro de migração, líder de migração, administrador de rede | 
| Preparar os pedidos de alteração. | De acordo com o processo de gerenciamento de mudanças em sua organização, prepare todos os pedidos de alteração necessários e garanta que esses pedidos de alteração sejam aprovados. | Líder de criação, líder de migração | 
| Enviar os requisitos às partes interessadas. | Envie a lista de verificação de pré-implantação e os requisitos de rede às partes interessadas. As partes interessadas devem revisar, avaliar e preparar os requisitos necessários antes de prosseguir com a implantação. | Líder de criação, líder de migração | 

### Implantar a ferramenta
<a name="deploy-the-tool"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Fazer download do instalador. | Faça download do instalador ou da imagem da máquina virtual. As imagens de máquinas virtuais geralmente vêm no formato OVF (Open Virtualization Format). | Líder de criação, líder de migração | 
| Extrair os arquivos. | Se você estiver usando um instalador, deverá baixar e executar o instalador em um servidor on-premises. | Líder de criação, líder de migração | 
| Implantar a ferramenta nos servidores. | Implante a ferramenta de descoberta nos servidores on-premises de destino da seguinte forma:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) | Líder de criação, líder de migração, administrador de rede | 
| Iniciar sessão na ferramenta de descoberta. | Siga as mensagens na tela e faça login para começar a usar a ferramenta. | Líder de criação, líder de compilação | 
| Habilitar o produto. | Insira sua chave de licença. | Líder de criação, líder de migração | 
| Configurar a ferramenta. | Insira todas as credenciais necessárias para acessar os servidores de destino, como credenciais para Windows VMware, Simple Network Management Protocol (SNMP) e Secure Shell Protocol (SSH) ou bancos de dados. | Líder de criação, líder de migração | 

### Testar a ferramenta
<a name="test-the-tool"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecionar servidores de teste. | Identifique um pequeno conjunto de sub-redes ou endereços IP que não sejam de produção que você possa usar para testar a ferramenta de descoberta. Isso ajuda você a validar os escaneamentos rapidamente, identificar e solucionar quaisquer erros rapidamente e isolar seus testes dos ambientes de produção. | Líder de criação, líder de migração, administrador de rede | 
| Começar a escanear os servidores de teste selecionados. | Para uma ferramenta de descoberta sem agente, insira as sub-redes ou endereços IP dos servidores de teste selecionados no console da ferramenta de descoberta e inicie a verificação.Para uma ferramenta de descoberta baseada em agente, instale o agente nos servidores de teste selecionados. | Líder de criação, líder de migração, administrador de rede | 
| Revisar os resultados da verificação. | Revisar os resultados da verificação dos servidores de teste. Se algum erro for encontrado, solucione e corrija os erros. Documente os erros e as soluções. Você consultará essas informações no futuro e poderá adicioná-las ao runbook do seu portfólio. | Líder de criação, líder de migração, administrador de rede | 
| Examinar novamente os servidores de teste. | Quando a nova verificação for concluída, repita a verificação até que não haja erros. | Líder de criação, líder de migração, administrador de rede | 

## Recursos relacionados
<a name="get-started-with-automated-portfolio-discovery-resources"></a>

**AWS recursos**
+ [Guia de avaliação do portfólio de aplicativos para Nuvem AWS migração](https://docs.aws.amazon.com/prescriptive-guidance/latest/application-portfolio-assessment-guide/introduction.html)
+ [Ferramentas de migração de descoberta, planejamento e recomendação](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/)

**Guias de implantação para ferramentas de descoberta comumente selecionadas**
+ [Implante o dispositivo virtual RN15 0 (documentação do](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_QSG_DeployRN150.htm) Flexera)
+ [Instalação do Gatherer](https://www.modelizeit.com/documentation/ADC-Gatherer-Install.html) (documentação do ModelizeIt)
+ [Instalação do Analysis Server on-premises](https://www.modelizeit.com/documentation/RejuvenApptor-Install.html) (documentação do ModelizeIt)

## Mais informações
<a name="get-started-with-automated-portfolio-discovery-additional"></a>

**Considerações para selecionar uma ferramenta de descoberta automatizada**

Cada ferramenta de descoberta tem benefícios e limitações. Ao selecionar a ferramenta apropriada para o seu caso de uso, considere o seguinte:
+ Selecione uma ferramenta de descoberta que possa coletar a maioria, se não todos, dos metadados necessários para atingir sua meta de avaliação de portfólio.
+ Identifique os metadados que você precisa coletar manualmente porque a ferramenta não oferece suporte a eles.
+ Forneça os requisitos da ferramenta de descoberta às partes interessadas para que elas possam analisar e avaliar a ferramenta com base em seus requisitos internos de segurança e conformidade, como requisitos de servidor, rede e credencial.
  + A ferramenta exige que você instale um agente na workload dentro do escopo?
  + A ferramenta exige que você configure um dispositivo virtual em seu ambiente?
+ Determine seus requisitos de residência de dados. Algumas organizações não querem armazenar seus dados fora do ambiente. Para resolver isso, talvez seja necessário instalar alguns componentes da ferramenta no ambiente on-premises.
+ Verifique se a ferramenta oferece suporte ao sistema operacional (SO) e à versão do SO da workload dentro do escopo.
+ Determine se seu portfólio inclui servidores mainframe, intermediários e legados. A maioria das ferramentas de descoberta pode detectar essas workloads como dependências, mas algumas ferramentas podem não conseguir obter detalhes do dispositivo, como utilização e dependências do servidor. As ferramentas de descoberta Device42 e ModernizeIT oferecem suporte a servidores de mainframe e de médio porte.

## Anexos
<a name="attachments-8c9d84de-e84a-4b0c-bcaa-389cd90be1f0"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/8c9d84de-e84a-4b0c-bcaa-389cd90be1f0/attachments/attachment.zip)

# Migre workloads on-premises da Cloudera para a Cloudera Data Platform na AWS
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws"></a>

*Battulga Purevragchaa e Nidhi Gupta, Amazon Web Services*

*Nijjwol Lamsal, Cloudera, Inc.*

## Resumo
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-summary"></a>

Esse padrão descreve as etapas de alto nível para migrar suas workloads on-premises do Cloudera Distributed Hadoop (CDH), da Hortonworks Data Platform (HDP) e do Cloudera Data Platform (CDP) para o CDP Public Cloud na AWS. Recomendamos que você faça parceria com o Cloudera Professional Services e um integrador de sistemas (SI) para implementar essas etapas.

Há muitos motivos pelos quais os clientes da Cloudera desejam mover suas workloads on-premises de CDH, HDP e CDP para a nuvem. Alguns motivos típicos incluem:
+ Simplificar a adoção de novos paradigmas de plataforma de dados, como data lakehouse ou data mesh
+ Aumentar a agilidade dos negócios, democratizar o acesso e a inferência sobre os ativos de dados existentes
+ Reduzir o custo total de propriedade (TCO)
+ Melhorar a elasticidade da workload
+ Permitir maior escalabilidade; reduzir drasticamente o tempo de provisionamento de serviços de dados em comparação com a base de instalação legada no on-premises
+ Remover o hardware antigo; reduzir significativamente os ciclos de atualização de hardware
+ Aproveite os pay-as-you-go preços, que são estendidos às cargas de trabalho da Cloudera na AWS com o modelo de licenciamento (CCU) da Cloudera
+ Aproveite a implantação mais rápida e a integração aprimorada com plataformas de integração contínua e entrega contínua (CI/CD)
+ Usar uma única plataforma unificada (CDP) para várias workloads

A Cloudera suporta todas as principais workloads, incluindo Machine Learning, Engenharia de Dados, Data Warehouse, Banco de Dados Operacional, Processamento de Stream (CSP) e segurança e governança de dados. A Cloudera oferece essas workloads on-premises há muitos anos, e você pode migrar essas workloads para a Nuvem AWS usando o CDP Public Cloud com o Workload Manager e o Replication Manager. 

O Cloudera Shared Data Experience (SDX) fornece um catálogo compartilhado de metadados entre essas workloads para facilitar o gerenciamento e as operações consistentes de dados. O SDX também inclui segurança abrangente e granular para proteção contra ameaças e governança unificada para recursos de auditoria e pesquisa para conformidade com padrões como o Payment Card Industry Data Security Standard (PCI DSS) e o GDPR. 

**Visão geral da migração do CDP**


|  |  | 
| --- |--- |
|    Workload | Workload de origem | Nuvem privada CDH, HDP e CDP | 
| --- |--- |--- |
| Ambiente de origem | Windows, LinuxOn-premises, colocalização ou em qualquer ambiente que não seja da AWS | 
| Workload de destino | Nuvem pública CDP na AWS | 
| Ambiente do destino | Modelo de implantação: conta de clienteModelo operacional: plano customer/Cloudera de controle | 
| ** **** ****Migração** | Estratégia de migração (7Rs) | Redefinir a hospedagem, redefinir a plataforma ou refatorar | 
| Isso é um upgrade na versão da workload? | Sim | 
| Duração da migração | Implantação: cerca de uma semana para criar uma conta de cliente, uma nuvem privada virtual (VPC) e um ambiente gerenciado pelo cliente da CDP Public Cloud.Duração da migração: de 1 a 4 meses, dependendo da complexidade e do tamanho da workload. | 
| **Custos** | Custo da execução da workload na AWS | Em um alto nível, o custo de uma migração da workload da CDH para a AWS pressupõe que você estabelecerá um novo ambiente na AWS. Isso inclui a contabilização do tempo e do esforço da equipe, bem como o provisionamento de recursos de computação e software de licenciamento para o novo ambiente.O modelo de preços baseado no consumo de nuvem Cloudera oferece a flexibilidade de aproveitar os recursos de escalabilidade automática e de intermitência. Para obter mais informações, consulte as [taxas de serviço do CDP Public Cloud](https://www.cloudera.com/products/pricing/cdp-public-cloud-service-rates.html) no site da Cloudera.O Cloudera Enterprise [Data Hub](https://www.cloudera.com/products/enterprise-data-hub.html) é baseado no Amazon Elastic Compute Cloud (Amazon EC2) e modela de perto os clusters tradicionais. O Data Hub pode ser [personalizado](https://docs.cloudera.com/data-hub/cloud/create-cluster-aws/topics/mc-creating-a-cluster.html), mas isso afetará os custos.O [CDP Public Cloud Data Warehouse](https://docs.cloudera.com/data-warehouse/cloud/index.html), o [Cloudera Machine Learning](https://docs.cloudera.com/machine-learning/cloud/product/topics/ml-product-overview.html) e o [Cloudera Data Engineering (CDE)](https://docs.cloudera.com/data-engineering/cloud/index.html) são baseados em contêineres e podem ser configurados para escalar automaticamente. | 
| ** **** ****Acordos e estrutura de infraestrutura** | Requisitos do sistema | Consulte a seção [Pré-requisitos](#migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs). | 
| SLA | Consulte o [Acordo de Nível de Serviço da Cloudera para CDP Public Cloud](https://www.cloudera.com/legal/terms-and-conditions/cdp-public-cloud-sla.html). | 
| DR | Consulte [Recuperação de desastres](https://docs.cloudera.com/cdp-reference-architectures/latest/cdp-ra-operations/topics/cdp-ra-abstract.html) na documentação da Cloudera. | 
| Modelo operacional e de licenciamento (para a conta de destino da AWS) | Modelo “Traga a sua própria licença” (BYOL) | 
| ** ****Conformidade** | Requisitos de segurança | Consulte [Visão geral da segurança da Cloudera](https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/security-overview/topics/cm-security-overview.html) na documentação da Cloudera. | 
| [Outras ](https://aws.amazon.com/compliance/programs)certificações de conformidade | Veja as informações no site da Cloudera sobre a conformidade com o [Regulamento Geral de Proteção de Dados (GDPR](https://www.cloudera.com/solutions/lower-business-risks/general-data-protection-regulation.html)) e o [CDP Trust Center](https://www.cloudera.com/products/trust-center.html). | 

## Pré-requisitos e limitações
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs"></a>

**Pré-requisitos **
+ [Requisitos de conta da AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html), incluindo contas, recursos, serviços e permissões, como a configuração de políticas e perfis do (IAM) do AWS Identity and Access Management
+ [Pré-requisitos para implantar o CDP](https://docs.cloudera.com/cdp-public-cloud/cloud/getting-started/topics/cdp-set_up_cdp_prerequisites.html) a partir do site da Cloudera

A migração exige as seguintes funções e conhecimentos:


| 
| 
| Função | Habilidades e responsabilidades | 
| --- |--- |
| Líder de migração | Garante suporte executivo, colaboração em equipe, planejamento, implementação e avaliação | 
| Cloudera PME | Habilidades especializadas em administração de CDH, HDP e CDP, administração de sistemas e arquitetura | 
| Arquiteto da AWS | Habilidades em serviços, redes, segurança e arquiteturas da AWS | 

## Arquitetura
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-architecture"></a>

Desenvolver a arquitetura adequada é uma etapa essencial para garantir que a migração e o desempenho atendam às suas expectativas. Para que seu esforço de migração atenda às suposições desse manual, seu ambiente de dados de destino na Nuvem AWS, seja em instâncias hospedadas em nuvem privada virtual (VPC) ou CDP, deve ser equivalente ao seu ambiente de origem em termos de sistema operacional e versões de software, bem como das principais especificações da máquina.

O diagrama a seguir (reproduzido com permissão da [planilha de dados do Cloudera Shared Data Experience](https://www.cloudera.com/content/dam/www/marketing/resources/datasheets/cloudera-sdx-datasheet.pdf?daqp=true)) mostra os componentes de infraestrutura para o ambiente de CDP e como os níveis ou componentes da infraestrutura interagem. 

![\[Componentes do ambiente CDP\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/91d62277-7fde-4ec6-8e2b-86a446e2f6ee.png)


Essa arquitetura inclui os seguintes componentes CDP:
+ O Data Hub é um serviço para lançar e gerenciar clusters de workload desenvolvido pelo Cloudera Runtime. Você pode usar as definições de cluster no Data Hub para provisionar e acessar clusters de workload para casos de uso personalizados e definir configurações de cluster personalizadas. ,Para obter mais informações, consulte o [site da Cloudera](https://docs.cloudera.com/data-hub/cloud/index.html).
+ O fluxo e o streaming de dados abordam os principais desafios que as empresas enfrentam com os dados em movimento. Ele gerencia o seguinte:
  + Processamento de fluxo de dados em tempo real em alto volume e alta escala
  + Rastreando a proveniência dos dados e a linhagem dos dados de streaming
  + Gerenciando e monitorando aplicativos periféricos e fontes de streaming

  Para obter mais informações, consulte [Cloudera DataFlow](https://www.cloudera.com/products/dataflow.html) e [CSP no site da Cloudera](https://www.cloudera.com/products/stream-processing.html).
+ A engenharia de dados inclui integração de dados, qualidade de dados e governança de dados, que ajudam as organizações a criar e manter fluxos de trabalho e pipelines de dados. ,Para obter mais informações, consulte o [site da Cloudera](https://docs.cloudera.com/data-engineering/cloud/index.html). Saiba mais sobre o [suporte para instâncias spot para facilitar a redução de custos na AWS](https://docs.cloudera.com/data-engineering/cloud/cost-management/topics/cde-spot-instances.html) para workloads de engenharia de dados da Cloudera.
+ O Data Warehouse** **permite que você crie data warehouses e data marts independentes que se escalam automaticamente para atender às demandas de workload. Esse serviço fornece instâncias de computação isoladas e otimização automatizada para cada data warehouse e data mart, além de ajudar você a economizar custos durante as reuniões SLAs. ,Para obter mais informações, consulte o [site da Cloudera](https://docs.cloudera.com/data-warehouse/cloud/index.html). Saiba mais sobre o [gerenciamento de custos](https://docs.cloudera.com/data-warehouse/cloud/planning/topics/dw-manage-cloud-costs.html) e o [ajuste de escala automático](https://docs.cloudera.com/data-warehouse/cloud/auto-scaling/topics/dw-public-cloud-autoscaling-overview.html) do Cloudera Data Warehouse na AWS.
+ O banco de dados operacional no CDP fornece uma base confiável e flexível para aplicativos escaláveis e de alto desempenho. Ele fornece um banco de dados escalável, sempre disponível e em tempo real, que serve dados estruturados tradicionais, juntamente com dados novos e não estruturados, em uma plataforma operacional e de armazenamento unificada. ,Para obter mais informações, consulte o [site da Cloudera](https://www.cloudera.com/products/operational-db.html).
+ O Machine Learning é uma plataforma de machine learning nativa de nuvem que combina recursos de autoatendimento de ciência de dados e engenharia de dados em um único serviço portátil em uma nuvem de dados corporativa. Ele permite a implantação escalável de machine learning e inteligência artificial (IA) em dados em qualquer lugar. ,Para obter mais informações, consulte o [site da Cloudera](https://docs.cloudera.com/machine-learning/cloud/index.html).

**CDP na AWS**

O diagrama a seguir (adaptado com permissão do site da Cloudera) mostra a arquitetura de alto nível do CDP na AWS. O CDP implementa seu [próprio modelo de segurança](https://docs.cloudera.com/runtime/7.1.0/cdp-security-overview/topics/security-management-console-security.html) para gerenciar contas e fluxo de dados. Eles são integrados ao [IAM](https://aws.amazon.com/iam/) por meio do uso de [funções entre contas](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-aws-req-credential.html). 

![\[CDP na arquitetura de alto nível da AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/54420517-38b4-4e82-bd19-9ded50ed009c.png)


O ambiente de gerenciamento do CDP reside em uma conta principal da Cloudera em sua própria VPC. Cada conta de cliente tem sua própria subconta e uma VPC exclusiva. Os perfis do IAM entre contas e as tecnologias SSL direcionam o tráfego de gerenciamento de e para o ambiente de gerenciamento para os serviços ao cliente que residem em sub-redes públicas roteáveis pela Internet dentro de cada VPC do cliente. Na VPC do cliente, a Cloudera Shared Data Experience (SDX) fornece segurança corporativa com governança e conformidade unificadas para que você possa obter insights de seus dados com mais rapidez. A SDX é uma filosofia de design incorporada a todos os produtos da Cloudera. Para obter mais informações sobre [SDX](https://docs.cloudera.com/cdp-public-cloud/cloud/overview/topics/cdp-services.html) e a [arquitetura de rede CDP Public Cloud para AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/aws-refarch/topics/cdp-pc-aws-refarch-overview.html), consulte a documentação da Cloudera.

## Ferramentas
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-tools"></a>

**Serviços 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.
+ O [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) ajuda você a executar o Kubernetes na AWS sem precisar instalar e manter seus próprios nós ou ambiente de gerenciamento do Kubernetes.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ 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 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.

**Automação e ferramentas**
+ Para obter ferramentas adicionais, você pode usar o [Cloudera Backup Data Recovery (BDR)](https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_bdr_tutorials.html), o AWS [Snowball e o [AWS Snowmobile](https://aws.amazon.com/snowmobile/)](https://aws.amazon.com/snowball/) para ajudar a migrar dados da CDH, HDP e CDP on-premises para a CDP hospedada pela AWS.
+ Para novas implantações, recomendamos que você use a [solução de parceiros da AWS para CDP](https://aws.amazon.com/solutions/partners/terraform-modules/cdp-public-cloud/).

## Épicos
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-epics"></a>

### Preparo para a migração
<a name="prepare-for-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envolva a equipe da Cloudera. | A Cloudera busca um modelo padronizado de engajamento com seus clientes e pode trabalhar com seu integrador de sistemas (SI) para promover a mesma abordagem. Entre em contato com a equipe de clientes da Cloudera para que eles possam fornecer orientações e os recursos técnicos necessários para iniciar o projeto. Entrar em contato com a equipe da Cloudera garante que todas as equipes necessárias possam se preparar para a migração à medida que a data se aproxima. Você pode entrar em contato com os Serviços Profissionais da Cloudera para mover sua implantação do Cloudera do piloto para a produção rapidamente, a um custo menor e com desempenho máximo. Para obter uma lista completa de ofertas, consulte o [site da Cloudera](https://www.cloudera.com/about/services-and-support/professional-services.html). | Líder de migração | 
| Crie um ambiente de nuvem pública CDP na AWS para sua VPC. | Trabalhe com o Cloudera Professional Services ou com seu SI para planejar e implantar a nuvem pública CDP em uma VPC na AWS. | Arquiteto de nuvem, Cloudera SME | 
| Priorize e avalie as workloads para migração. | Avalie todas as suas workloads on-premises para determinar as workloads mais fáceis de migrar. Os aplicativos que não são essenciais são os melhores a serem implantados primeiro, pois terão um impacto mínimo em seus clientes. Guarde as workloads essenciais para o final, depois de migrar com sucesso outras workloads.As workloads transitórias (CDP Data Engineering) são mais fáceis de migrar do que workloads persistentes (CDP Data Warehouse). Também é importante considerar o volume e os locais dos dados ao migrar. Os desafios podem incluir a replicação contínua de dados de um ambiente on-premises para a nuvem e a alteração dos canais de ingestão de dados para importar dados diretamente para a nuvem. | Líder de migração | 
| Discuta as atividades de CDH, HDP, CDP e migração de aplicativos legados. | Considere e comece a planejar as seguintes atividades com o Cloudera Workload Manager:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Líder de migração | 
| Preencha os requisitos e recomendações do Cloudera Replication Manager. | Trabalhe com o Cloudera Professional Services e seu SI para se preparar para migrar workloads para seu ambiente de nuvem pública CDP na AWS. Compreender os requisitos e recomendações a seguir pode ajudá-lo a evitar problemas comuns durante e após a instalação do serviço Replication Manager.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Líder de migração | 

### Migre a CDP para a AWS
<a name="migrate-cdp-to-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre a primeira carga de trabalho para dev/test ambientes usando o Cloudera Workload Manager. | Seu SI pode ajudá-lo a migrar sua primeira workload para a nuvem AWS. Esse deve ser um aplicativo que não seja voltado para o cliente nem essencial. Os candidatos ideais para dev/test migração são aplicativos que têm dados que a nuvem pode ingerir facilmente, como cargas de trabalho de engenharia de dados do CDP. Essa é uma workload transitória que geralmente tem menos usuários acessando-a, em comparação com uma workload persistente, como uma workload do CDP Data Warehouse, que pode ter muitos usuários que precisam de acesso ininterrupto. As workloads de engenharia de dados não são persistentes, o que minimiza o impacto nos negócios se algo der errado. No entanto, esses trabalhos podem ser essenciais para a geração de relatórios de produção, portanto, priorize as workloads de engenharia de dados de baixo impacto. | Líder de migração | 
| Repita as etapas de migração conforme necessário. | O Cloudera Workload Manager ajuda a identificar as workloads mais adequadas para a nuvem. Ele fornece métricas como classificações de desempenho da nuvem, sizing/capacity planos para o ambiente de destino e planos de replicação. Os melhores candidatos para migração são workloads sazonais, relatórios ad hoc e trabalhos intermitentes que não consomem muitos recursos.O Cloudera Replication Manager move dados on-premises para a nuvem e da nuvem para on-premises.Otimize proativamente workloads, aplicativos, desempenho e capacidade de infraestrutura para armazenamento de dados, engenharia de dados e machine learning usando o Workload Manager. Para obter um guia completo sobre como modernizar um data warehouse, consulte o site da [Cloudera](https://www.cloudera.com/content/dam/www/marketing/resources/webinars/modern-data-warehouse-fundamentals.png.landing.html). | Cloudera PME | 

## Recursos relacionados
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-resources"></a>

Documentação da Cloudera:
+ [Registrar clusters clássicos com CDP, Cloudera Manager e Replication Manager:](https://docs.cloudera.com/replication-manager/cloud/operations/topics/rm-requirements-for-bdr-cdh-clusters.html)
  + [Console de Gerenciamento](https://docs.cloudera.com/management-console/cloud/overview/topics/mc-management-console.html)
  + [Replicação de hive do Replication Manager](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-replication-of-data-using-hive.html)
+ [Replicação do Sentry](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-policy-replication.html) 
+ [Permissões do Sentry](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-ranger-permissions.html)
+ [Lista de verificação de planejamento de clusters do Data Hub](https://docs.cloudera.com/data-hub/cloud/cluster-planning/topics/dh-cluster-checklist.html)
+ [Arquitetura do Workload Manager](https://docs.cloudera.com/workload-manager/cloud/configuration/topics/wm-public-architecture-wm.html)
+ [Requisitos do Replication Manager](https://docs.cloudera.com/replication-manager/cloud/index.html)
+ [Observabilidade da plataforma de dados Cloudera](https://www.cloudera.com/products/observability.html)
+ [Requisitos do AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html)

Documentação da AWS:
+ [Migração de dados para nuvem](https://aws.amazon.com/cloud-data-migration/)

# Resolva erros de conexão após migrar o Microsoft SQL Server para a Nuvem AWS
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud"></a>

*Premkumar Chelladurai, Amazon Web Services*

## Resumo
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-summary"></a>

Depois de migrar o Microsoft SQL Server executado no Windows Server 2008 R2, 2012 ou 2012 R2 para instâncias do Amazon Elastic Compute Cloud (Amazon EC2) na Amazon Web Services (AWS) Cloud, a conexão com o SQL Server falha e os seguintes erros aparecem: 
+ `[Microsoft][ODBC SQL Server Driver][DBNETLIB] General Network error`
+ `ERROR [08S01] [Microsoft][SQL Native Client]Communication link failure. System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)`
+ `TCP Provider: The semaphore timeout period has expired`

Esse padrão descreve como você pode resolver esses erros desativando os recursos do Windows Scalable Networking Pack (SNP) no nível do sistema operacional (SO) e da interface de rede para o SQL Server executado no Windows Server 2008 R2, 2012 ou 2012 R2.

## Pré-requisitos e limitações
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-prereqs"></a>

**Pré-requisitos **
+ Privilégios de administrador para Windows Server.
+ Se você usou o AWS Application Migration Service como sua ferramenta de migração, precisará de uma das seguintes versões do Windows Server:
  + Windows Server 2008 R2 Service Pack 1, 2012 ou 2012 R2
+ Se você usou a CloudEndure migração como sua ferramenta de migração, precisará de uma das seguintes versões do Windows Server:
  + Windows Server 2003 R2 Service Pack 3, 2008, 2008 R2 Service Pack 1, 2012 ou 2012 R2

## Ferramentas
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-tools"></a>
+ [Amazon EC2](https://docs.aws.amazon.com/ec2/index.html) — A Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável na Nuvem AWS. Você pode usar EC2 a Amazon para lançar quantos servidores virtuais precisar e pode expandir ou aumentar a escala. 
+ [Windows Server](https://docs.microsoft.com/en-us/windows-server/): o Windows Server é uma plataforma para criar uma infraestrutura de aplicativos, redes e serviços web conectados.

## Épicos
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-epics"></a>

### Desative os recursos SNP nos níveis do sistema operacional e da interface de rede elástica
<a name="turn-off-snp-features-at-the-os-and-elastic-network-interface-levels"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desative os recursos SNP no nível do sistema operacional. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Administrador da AWS, administrador de sistemas da AWS, engenheiro de migração, administrador da nuvem | 
| Desative os recursos do SNP no nível da interface de rede elástica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Administrador da AWS, administrador da nuvem, administrador de sistemas da AWS | 

## Recursos relacionados
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-resources"></a>
+ [Como solucionar problemas de atributos avançados de desempenho de rede, como RSS e NetDMA](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/troubleshoot-network-performance-features-rss-netdma)

# Reinicie o AWS Replication Agent automaticamente sem desativá-lo SELinux após a reinicialização de um servidor de origem RHEL
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server"></a>

*Anil Kunapareddy, Venkatramana Chintha e Shanmugam Shanker, da Amazon Web Services*

## Resumo
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-summary"></a>

O AWS Application Migration Service ajuda a simplificar, agilizar e automatizar a migração da sua workload do Red Hat Enterprise Linux (RHEL) para a nuvem da Amazon web Services (AWS). Para adicionar servidores de origem ao Application Migration Service, você instala o AWS Replication Agent nos servidores.

O Application Migration Service fornece replicação em tempo real, assíncrona e em nível de bloco. Isso significa que você pode continuar com as operações normais de TI durante todo o processo de replicação. Essas operações de TI podem exigir que você reinicie ou reinicie o servidor de origem do RHEL durante a migração. Se isso acontecer, o AWS Replication Agent não será reiniciado automaticamente e sua replicação de dados será interrompida. Normalmente, você pode definir o Security-Enhanced Linux (SELinux) para o **modo **desativado** ou permissivo** para reiniciar automaticamente o AWS Replication Agent. No entanto, as políticas de segurança da sua organização podem proibir a desativação SELinux e talvez você também precise [renomear seus arquivos.](https://access.redhat.com/solutions/3176)

Esse padrão descreve como reiniciar automaticamente o AWS Replication Agent sem desligá-lo SELinux quando o servidor de origem do RHEL é reinicializado ou reiniciado durante uma migração. 

## Pré-requisitos e limitações
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload on-premises do RHEL que você deseja migrar para a Nuvem AWS. 
+ Serviço de migração de aplicativos inicializado a partir do console do Application Migration Service. A inicialização é necessária somente na primeira vez que você usa esse serviço. Para obter instruções, consulte a [documentação do Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mandatory-setup.html).
+ Uma [política do IAM do AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) existente para o Application Migration Service. Para saber mais, consulte a [documentação do Serviço de Migração de Aplicativos](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html).

**Versões**
+ RHEL versão 7 ou superior

## Ferramentas
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-tools"></a>

**Serviços da AWS**
+ [O AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) é uma solução altamente automatizada lift-and-shift (rehospedagem) que simplifica, agiliza e reduz o custo da migração de aplicativos para a AWS.

**Comandos Linux**

A tabela a seguir fornece uma lista dos comandos Linux que você executará no seu servidor de origem RHEL. Eles também são descritos nos épicos e nas histórias desse padrão. 


| 
| 
| Command | Description | 
| --- |--- |
| `#systemctl –version` | Identifica a versão do sistema. | 
| `#systemctl list-units --type=service` | Lista todos os serviços ativos que estão disponíveis no servidor RHEL. | 
| `#systemctl list-units --type=service \| grep running` | Lista todos os serviços atualmente em execução no servidor RHEL. | 
| `#systemctl list-units --type=service \| grep failed` | Lista todos os serviços que falharam ao carregar após a reinicialização ou reinicialização do servidor RHEL. | 
| `restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Muda o contexto para `aws-replication-service`. | 
| `yum install policycoreutils*` | Instala os principais utilitários da política necessários para a operação do SELinux sistema. | 
| `ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Pesquisa o registro de auditoria e cria um módulo para políticas. | 
| `semodule -i my-modprobe.pp` | Ativa a política. | 
| `cat my-modprobe.te` | Visualiza o conteúdo do `my-modprobe.te` arquivo. | 
| `semodule -l \| grep my-modprobe` | Verifica se a política foi carregada no SELinux módulo. | 

## Épicos
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-epics"></a>

### Instale o AWS Replication Agent e reinicie o servidor de origem do RHEL
<a name="install-the-aws-replication-agent-and-reboot-the-rhel-source-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um usuário do Application Migration Service com uma chave de acesso e uma chave de acesso secreta.  | Para instalar o AWS Replication Agent, você deve criar um usuário do Application Migration Service com as credenciais necessárias da AWS. Para obter instruções, consulte a [documentação do Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | Engenheiro de migração | 
| Instale o AWS Replication Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.html) | Engenheiro de migração | 
| Reinicie ou reinicialize o servidor de origem do RHEL. | [Reinicie ou reinicie seu servidor de origem RHEL quando o **status de replicação de dados for exibido Parado****no painel** de migração.](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html) | Engenheiro de migração | 
| Verifique o status da replicação de dados. | Aguarde uma hora e verifique novamente o **status da replicação de dados** no painel de migração. Deve estar no estado **saudável**. | Engenheiro de migração | 

### Verifique o status do AWS Replication Agent no servidor de origem do RHEL
<a name="check-aws-replication-agent-status-on-the-rhel-source-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique a versão do sistema. | Abra a interface de linha de comando do seu servidor de origem RHEL e execute o seguinte comando para identificar a versão do sistema:`#systemctl –version` | Engenheiro de migração | 
| Liste todos os serviços ativos. | Para listar todos os serviços ativos disponíveis no servidor RHEL, execute o comando:`#systemctl list-units --type=service` | Engenheiro de migração | 
| Liste todos os serviços em execução. | Para listar todos os serviços atualmente em execução no servidor RHEL, use o comando:`#systemctl list-units --type=service \| grep running` | Engenheiro de migração | 
| Liste todos os serviços que falharam ao carregar. | Para listar todos os serviços que falharam ao carregar após a reinicialização ou reinicialização do servidor RHEL, execute o comando:`#systemctl list-units --type=service \| grep failed` | Engenheiro de migração | 

### Crie e execute o SELinux módulo
<a name="create-and-run-the-selinux-module"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Alterar o contexto de segurança. | Na interface de linha de comando do seu servidor de origem do RHEL, execute o seguinte comando para alterar o contexto de segurança do serviço de replicação da AWS:`restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Engenheiro de migração | 
| Instale os principais utilitários. | Para instalar os principais utilitários necessários para a operação do SELinux sistema e suas políticas, execute o comando:`yum install policycoreutils*` | Engenheiro de migração | 
| Pesquise o registro de auditoria e crie um módulo para políticas. | Execute o comando :`ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Engenheiro de migração | 
| Exiba o conteúdo do my-modprobe-te arquivo.  | O arquivo `my-modprobe.te` é gerado pelo comando **audit2allow**. Ele inclui os SELinux domínios, o diretório de origem da política e os subdiretórios e especifica as regras e transições do vetor de acesso associadas aos domínios. Execute os seguintes comandos para exibir o conteúdo do arquivo.`cat my modprobe.te` | Engenheiro de migração | 
| Ativa a política. | Para inserir o módulo e ativar o pacote de políticas, execute o comando:`semodule -i my-modprobe.pp` | Engenheiro de migração | 
| Verifique se o módulo foi carregado.  | Execute o comando :`semodule -l \| grep my-modprobe`Depois que o SELinux módulo for carregado, você não precisará mais configurar SELinux o modo **desativado** ou **permissivo** durante a migração. | Engenheiro de migração | 
| Reinicialize ou reinicie o servidor de origem do RHEL e verifique o status da replicação de dados. | Abra o console do AWS Migration Service, navegue até o **Andamento da replicação de dados** e, em seguida, reinicie ou reinicie seu servidor de origem RHEL. A replicação de dados agora deve ser retomada automaticamente após a reinicialização do servidor de origem do RHEL. | Engenheiro de migração | 

## Recursos relacionados
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-resources"></a>
+ [Documentação do serviço de migração de aplicativos](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Materiais de treinamento técnico](https://docs.aws.amazon.com/mgn/latest/ug/mgn-training.html)
+ [Solução de problemas do AWS Replication Agent](https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Agent-Issues.html)
+ [Políticas do Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html)

# Redefinir arquitetura
<a name="migration-rearchitect-pattern-list"></a>

**Topics**
+ [Converter VARCHAR2 (1) tipo de dados para Oracle para tipo de dados booleano para Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Crie usuários e funções do aplicativo no Aurora compatível com PostgreSQL](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Emule o Oracle DR usando um banco de dados global Aurora compatível com PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Implemente SHA1 o hashing para dados de PII ao migrar do SQL Server para o PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Migre incrementalmente do Amazon RDS para Oracle para o Amazon RDS para PostgreSQL usando o Oracle SQL Developer e o AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Faça o upload de arquivos BLOB em TEXT usando a codificação de arquivos no Aurora PostgreSQL-Compatible](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Migre o Amazon RDS for Oracle para o Amazon AWS SCT RDS for PostgreSQL com e usando e AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Migre o Amazon RDS para Oracle para o Amazon RDS para PostgreSQL no modo SSL usando o AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrar os pacotes de pragma Oracle SERIALLY\$1REUSABLE para o PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migre tabelas externas da Oracle para a compatibilidade com o Amazon Aurora PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migre índices baseados em funções do Oracle para o PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migre funções nativas do Oracle para o PostgreSQL usando extensões](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migre um banco de dados Db2 da Amazon para o EC2 Aurora MySQL compatível usando o AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migre um banco de dados Microsoft SQL Server da Amazon EC2 para o Amazon DocumentDB usando o AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migre um banco de dados ThoughtSpot Falcon local para o Amazon Redshift](migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift.md)
+ [Migre do banco de dados Oracle para o Amazon RDS for PostgreSQL usando o Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Migre uma tabela particionada do Oracle para o PostgreSQL usando o AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migre do Amazon RDS para Oracle para o Amazon RDS para MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Migre do IBM Db2 na Amazon para o EC2 Aurora compatível com PostgreSQL usando o AWS DMS e o AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Migre do Oracle 8i ou 9i para o Amazon RDS for PostgreSQL usando o AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migre do Oracle 8i ou 9i para o Amazon RDS para PostgreSQL usando visões materializadas e o AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Migre da Oracle no Amazon EC2 para o Amazon RDS para MySQL usando o AWS DMS e o AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for MariaDB usando o AWS DMS e o AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migre um banco de dados Oracle on-premises para o Amazon RDS para MySQL, usando o AWS DMS e o AWS SCT.](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para PostgreSQL usando um Oracle bystander e o AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Migre um banco de dados Oracle para o Amazon Redshift usando o AWS DMS e o AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrar um banco de dados Oracle para o Aurora PostgreSQL usando AWS DMS e AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migrar dados de um banco de dados Oracle on-premises para o Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Migre do SAP ASE para o Amazon RDS para SQL Server usando o AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift utilizando o AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Migre um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift usando agentes de extração de dados da AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Migre aplicativos legados do Oracle Pro\$1C para o ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migre colunas geradas virtualmente do Oracle para o PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Configure a funcionalidade Oracle UTL\$1FILE no Aurora compatível com PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Valide objetos de banco de dados após migrar do Oracle para o Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# Converter VARCHAR2 (1) tipo de dados para Oracle para tipo de dados booleano para Amazon Aurora PostgreSQL
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql"></a>

*Naresh Damera, Amazon Web Services*

## Resumo
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-summary"></a>

Durante uma migração do Amazon Relational Database Service (Amazon RDS) para Oracle para a edição compatível com o Amazon Aurora PostgreSQL, você pode encontrar uma incompatibilidade de dados ao validar a migração em (). AWS Database Migration Service AWS DMS Para evitar essa incompatibilidade, você pode converter o tipo de dados VARCHAR2 (1) em tipo de dados booleano.

VARCHAR2 o tipo de dados armazena cadeias de texto de tamanho variável e VARCHAR2 (1) indica que a sequência tem 1 caractere de comprimento ou 1 byte. Para obter mais informações sobre VARCHAR2, consulte os [tipos de dados integrados](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) da Oracle (documentação da Oracle).

Nesse padrão, na coluna da tabela de dados da fonte de amostra, os dados VARCHAR2 (1) são **Y**, para *Sim*, ou **N**, para *Não*.  Esse padrão inclui instruções para usar AWS DMS e AWS Schema Conversion Tool (AWS SCT) para converter esse tipo de dados dos valores **Y** e **N** em VARCHAR2 (1) para valores **verdadeiros** ou **falsos** em booleano.

**Público-alvo**

Este padrão é recomendado para as pessoas com experiência na migração de bancos de dados da Oracle para o Aurora compatível com PostgreSQL usando o AWS DMS. Ao concluir a migração, siga as recomendações em [Converter Oracle em Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (documentação).AWS SCT 

## Pré-requisitos e limitações
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Confirme se seu ambiente está preparado para o Aurora, incluindo a configuração de credenciais, permissões e um grupo de segurança. Para obter mais informações, consulte [Configuração de seu ambiente para o Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_SettingUp_Aurora.html) (documentação do Aurora).
+ Um banco de dados de origem do Amazon RDS for Oracle que contém uma coluna de tabela VARCHAR2 com (1) dados.
+ Uma instância de banco de dados de destino compatível com o Amazon Aurora PostgreSQL. Para obter mais informações, consulte [Criação de um cluster de banco de dados e conexão a um banco de dados em um cluster de banco de dados Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster) (documentação do Aurora).

**Versões do produto**
+ Amazon RDS para Oracle versão 12.1.0.2 ou superior.
+ AWS DMS versão 3.1.4 ou posterior. Para obter mais informações, consulte [Usando um banco de dados Oracle como fonte AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Usando um banco de dados PostgreSQL como destino AWS DMS para AWS DMS (documentação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e recursos.
+ AWS Schema Conversion Tool (AWS SCT) versão 1.0.632 ou posterior. Recomendamos que você use a versão mais recente do AWS SCT para obter o suporte mais abrangente de versões e recursos.
+ O Aurora é compatível com as versões do PostgreSQL listadas em [Versões do mecanismo do banco de dados para Aurora PostgreSQL-Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) (documentação do Aurora).

## Arquitetura
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-architecture"></a>

**Pilha de tecnologia de origem**

Instância de banco de dados do Amazon RDS para Oracle

**Pilha de tecnologias de destino**

Instância de banco de dados Amazon Aurora PostgreSQL-Compatible

**Arquitetura de origem e destino**

![\[Alterando os tipos de dados de VARCHAR2 (1) para booleano\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5d4dc568-20d8-4883-a942-21c81039d8e6/images/9fd82ae2-56e6-439c-b4cd-9e74fe77b480.png)


## Ferramentas
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com ACID que ajuda você a configurar, operar e escalar implantações do PostgreSQL.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) para Oracle ajuda você a configurar, operar e escalar um banco de dados relacional da Oracle na Nuvem AWS.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de banco de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.

**Outros serviços**
+ O [Oracle SQL Developer](https://docs.oracle.com/en/database/oracle/sql-developer/) é um ambiente de desenvolvimento integrado que simplifica o desenvolvimento e o gerenciamento de bancos de dados Oracle em implantações tradicionais e baseadas em nuvem. Nesse padrão, você usa essa ferramenta para se conectar à instância do banco de dados Amazon RDS para Oracle e consultar os dados.
+ O [pgAdmin](https://www.pgadmin.org/docs/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados. Neste padrão, você usa essa ferramenta para se conectar à instância do banco de dados Aurora e consulta os dados.

## Épicos
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um relatório de migração do banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | DBA, Desenvolvedor | 
| Elimine restrições de chave externa no banco de dados de destino. | No PostgreSQL, as chaves estrangeiras são implementadas usando gatilhos. Durante a fase de carga total, AWS DMS carrega cada tabela uma de cada vez. Recomendamos que você desative as restrições de chave externa durante um carregamento total, usando um dos seguintes métodos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Se não for possível desativar as restrições de chave estrangeira, crie uma tarefa de AWS DMS migração para os dados primários que seja específica da tabela principal e da tabela secundária. | DBA, Desenvolvedor | 
| Coloque chaves primárias e chaves exclusivas no banco de dados de destino. | Usando os comandos a seguir, desative as chaves primárias e as restrições no banco de dados de destino. Isso ajuda a melhorar o desempenho da tarefa de carregamento inicial.<pre>ALTER TABLE <table> DISABLE PRIMARY KEY;</pre><pre>ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;</pre> | DBA, Desenvolvedor | 
| Crie a tarefa de carregamento inicial. | Em AWS DMS, crie a tarefa de migração para a carga inicial. Para obter instruções, consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Para método de migração, escolha **Migrar dados existentes**. Esse método de migração é** **chamado `Full Load` na API. Não inicie essa tarefa ainda. | DBA, Desenvolvedor | 
| Edite as configurações da tarefa de carregamento inicial. | Edite as configurações da tarefa para adicionar a validação de dados. Essas configurações de validação devem ser criadas em um arquivo JSON. Para obter instruções e exemplos, consulte [Especificação das configurações da tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html). Adicione as seguintes validações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Para validar o restante da migração de dados, habilite a validação de dados na tarefa. Para obter mais informações, consulte [Configuração da tarefa de validação de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.html). | Administrador da AWS, DBA | 
| Criar uma tarefa de replicação contínua. | Em AWS DMS, crie a tarefa de migração que mantém o banco de dados de destino sincronizado com o banco de dados de origem. Para obter instruções, consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Em método de migração, escolha **Replicar somente alterações de dados**. Não inicie essa tarefa ainda. | DBA | 

### Teste a tarefa de migração
<a name="test-the-migration-tasks"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie dados de amostra para testes. | No banco de dados de origem, crie uma tabela de amostra com dados para fins de teste. | Desenvolvedor | 
| Confirme se não há atividades conflitantes. | Use `pg_stat_activity` para verificar se há alguma atividade no servidor que possa afetar a migração. Para obter mais informações, consulte [Coletor de estatísticas](https://www.postgresql.org/docs/current/monitoring-stats.html) (documentação do PostgreSQL). | Administrador da AWS | 
| Inicie as tarefas de AWS DMS migração. | No AWS DMS console, na página **Painel**, inicie o carregamento inicial e as tarefas de replicação contínuas que você criou no épico anterior. | Administrador da AWS | 
| Monitore as tarefas e os estados de carregamento da tabela. | Durante a migração, monitore o [status da tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.Status) e os [estados da tabela](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.CustomizingTasks.TableState). Quando a tarefa de carregamento inicial estiver concluída, na guia **Estatísticas da tabela**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | Administrador da AWS | 
| Verifique os resultados da migração. | Usando pgAdmin, consulte a tabela no banco de dados de destino. Uma consulta bem-sucedida indica que os dados foram migrados com êxito. | Desenvolvedor | 
| Adicione as chaves primárias e estrangeiras ao banco de dados de destino. | Crie as chaves primárias e estrangeiras ao banco de dados de destino. Para obter mais informações, consulte [ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html) (site do PostgreSQL). | DBA | 
| Limpe os dados do teste. | Nos bancos de dados de origem e destino, limpe os dados que foram criados para teste de unidade. | Desenvolvedor | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Concluir a migração. | Repita o tópico anterior, *Testar as tarefas de migração*, usando os dados de origem reais. Essa ação migra os dados do banco de dados de origem para o banco de dados de destino. | Desenvolvedor | 
| Valide se os bancos de dados de origem e de destino estão em sincronia. | Valide se os bancos de dados de origem e de destino estão em sincronia. Para obter mais informações e instruções, consulte [AWS DMS data validation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Desenvolvedor | 
| Interrompa o banco de dados de origem. | Interrompa o banco de dados Amazon RDS para Oracle. Para instruções, consulte [Interrupção temporária de uma instância de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html). Quando você interrompe o banco de dados de origem, a carga inicial e as tarefas de replicação em andamento AWS DMS são automaticamente interrompidas. Nenhuma ação adicional é necessária para interromper essas tarefas. | Desenvolvedor | 

## Recursos relacionados
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-resources"></a>

**AWS referências**
+ [Migre um banco de dados Oracle para o Aurora PostgreSQL usando e (orientação AWS DMSAWS SCT prescritiva](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.html))AWS 
+ [Conversão do Oracle para o Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (documentação)AWS SCT 
+ [Como AWS DMS funciona](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.html) (AWS DMS documentação)

**Outras referências**
+ [Tipo de dados booleano](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-boolean/) (documentação do PostgreSQL)
+ [Tipos de dados integrados da Oracle](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (documentação da Oracle)
+ [pgAdmin](https://www.pgadmin.org/) (site do pgAdmin)
+ [SQL Developer](https://www.oracle.com/database/technologies/appdev/sql-developer.html) (site da Oracle)

**Tutoriais e vídeos**
+ [Começando com AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Introduction to AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (vídeo)
+ [Noções básicas sobre o Amazon RDS](https://www.youtube.com/watch?v=eMzCI7S1P9M) (vídeo)

## Mais informações
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-additional"></a>

**Script de validação de dados**

O script de validação de dados a seguir converte **1** em **Y** e **0** **em N.** Isso ajuda a AWS DMS tarefa a ser concluída com êxito e a passar pela validação da tabela.

```
{
"rule-type": "validation",
"rule-id": "5",
"rule-name": "5",
"rule-target": "column",
"object-locator": {
"schema-name": "ADMIN",
"table-name": "TEMP_CHRA_BOOL",
"column-name": "GRADE"
},
"rule-action": "override-validation-function",
"target-function": "case grade when '1' then 'Y' else 'N' end"
        }
```

A instrução `case` no script executa a validação. Se a validação falhar, AWS DMS insere um registro na tabela **public.awsdms\$1validation\$1failures\$1v1** na instância do banco de dados de destino. Esse registro inclui o nome da tabela, o horário do erro e detalhes sobre os valores incompatíveis nas tabelas de origem e de destino.

Se você não adicionar esse script de validação de dados à AWS DMS tarefa e os dados forem inseridos na tabela de destino, a AWS DMS tarefa mostrará o estado de validação como **Registros incompatíveis**.

Durante a AWS SCT conversão, a tarefa de AWS DMS migração altera o tipo de dados do tipo de dados VARCHAR2 (1) para booleano e adiciona uma restrição de chave primária na `"NO"` coluna.

# Crie usuários e funções do aplicativo no Aurora compatível com PostgreSQL
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible"></a>

*Abhishek Verma, Amazon Web Services*

## Resumo
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-summary"></a>

Quando você migra para o Amazon Aurora Edição Compatível com PostgreSQL, os usuários e funções do banco de dados que existem no banco de dados de origem devem ser criados no banco de dados do Aurora compatível com PostgreSQL. Você pode criar usuários e funções no Aurora compatíveis com PostgreSQL usando duas abordagens diferentes:
+ Use usuários e funções semelhantes no banco de dados de destino e no banco de dados de origem. Nessa abordagem, as linguagens de definição de dados (DDLs) são extraídas para usuários e funções do banco de dados de origem. Em seguida, eles são transformados e aplicados ao banco de dados Aurora de destino compatível com PostgreSQL. Por exemplo, a postagem do blog [Use SQL para mapear usuários, funções e concessões do Oracle para o PostgreSQL](https://aws.amazon.com/blogs/database/use-sql-to-map-users-roles-and-grants-from-oracle-to-postgresql) aborda o uso da extração de um mecanismo de banco de dados de origem Oracle.
+ Use usuários e funções padronizados que são comumente usados durante o desenvolvimento, a administração e para realizar outras operações relacionadas no banco de dados. Isso inclui operações somente de leitura, leitura/gravação, desenvolvimento, administração e implantação realizadas pelos respectivos usuários.

Esse padrão contém as concessões necessárias para a criação de usuários e funções no Aurora, compatível com o PostgreSQL, necessárias para a abordagem padronizada de usuários e funções. As etapas de criação do usuário e da função estão alinhadas à política de segurança de conceder privilégio mínimo aos usuários do banco de dados. A tabela a seguir lista os usuários, suas funções correspondentes e seus detalhes no banco de dados.


| 
| 
| Usuários | Perfis | Finalidade | 
| --- |--- |--- |
| `APP_read` | `APP_RO` | Usado para acesso somente de leitura no esquema `APP` | 
| `APP_WRITE` | `APP_RW` | Usado para as operações de gravação e leitura no esquema `APP` | 
| `APP_dev_user` | `APP_DEV` | Usado para fins de desenvolvimento no esquema `APP_DEV`, com acesso somente para leitura no esquema `APP` | 
| `Admin_User` | `rds_superuser` | Usado para realizar operações de administrador no banco de dados | 
| `APP` | `APP_DEP` | Usado para criar os objetos sob o esquema `APP` e para a implantação de objetos no esquema `APP` | 

## Pré-requisitos e limitações
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-prereqs"></a>

**Pré-requisitos **
+ Uma conta ativa da Amazon Web Services (AWS)
+ Um banco de dados PostgreSQL, banco de dados Amazon Aurora Edição Compatível com PostgreSQL ou Amazon Relational Database Service (Amazon RDS) para banco de dados PostgreSQL

**Versões do produto**
+ Todas as versões do PostgreSQL

## Arquitetura
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-architecture"></a>

**Pilha de tecnologia de origem**
+ Qualquer banco de dados

**Pilha de tecnologias de destino**
+ Amazon Aurora compatível com PostgreSQL

**Arquitetura de destino**

O diagrama a seguir mostra as funções do usuário e a arquitetura do esquema no banco de dados do Aurora compatível com PostgreSQL.

![\[Funções de usuário e arquitetura de esquema para o banco de dados do Aurora compatível com PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/80105a81-e3d1-4258-b3c1-77f3a5e78592/images/b95cb9bc-8bf7-47d1-92e7-66cfb37d7ce7.png)


                                                                                                                                    

**Automação e escala**

Esse padrão contém os usuários, as funções e o script de criação do esquema, que você pode executar várias vezes sem afetar os usuários existentes do banco de dados de origem ou de destino.

## Ferramentas
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID, que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.

**Outros serviços**
+ O [psql](https://www.postgresql.org/docs/current/app-psql.html) é uma ferramenta frontend baseada em terminal que é instalada com cada instalação do banco de dados PostgreSQL. Ele tem uma interface da linha de comando para executar comandos SQL, PL-PGSQL e do sistema operacional.
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.

## Épicos
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-epics"></a>

### Criar os usuários e perfis
<a name="create-the-users-and-roles"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o usuário de implantação. | O usuário de implantação `APP` será usado para criar e modificar os objetos do banco de dados durante as implantações. Use os scripts a seguir para criar a função de usuário de implantação `APP_DEP` no esquema `APP`. Valide os direitos de acesso para garantir que esse usuário tenha apenas o privilégio de criar objetos no esquema `APP` necessário.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crie o usuário somente para leitura. | O usuário de somente leitura `APP_read` será usado para realizar a operação somente leitura no esquema. `APP` Use os scripts a seguir para criar o usuário somente para leitura. Valide os direitos de acesso para garantir que esse usuário tenha privilégios somente para ler os objetos no esquema `APP` e para conceder automaticamente acesso de leitura a qualquer novo objeto criado no esquema `APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crie o read/write usuário. | O read/write usuário `APP_WRITE` será usado para realizar operações de leitura e gravação no esquema`APP`. Use os scripts a seguir para criar o read/write usuário e conceder a ele a `APP_RW` função. Valide os direitos de acesso para garantir que esse usuário tenha privilégios de leitura e gravação somente nos objetos do esquema `APP` e para conceder automaticamente acesso de leitura e gravação a qualquer novo objeto criado no esquema `APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) |  | 
| Crie o usuário administrador. | O usuário administrador `Admin_User` será usado para realizar operações administrativas no banco de dados. Exemplos dessas operações são `CREATE ROLE` e `CREATE DATABASE`. O `Admin_User` usa a função integrada `rds_superuser` para realizar operações administrativas no banco de dados. Use os scripts a seguir para criar e testar o privilégio do usuário administrador `Admin_User` no banco de dados.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crie o usuário de desenvolvimento. | O usuário de desenvolvimento `APP_dev_user` terá direitos para criar os objetos em seu esquema local `APP_DEV` e acesso de leitura no esquema `APP`. Use os scripts a seguir para criar e testar os privilégios do usuário `APP_dev_user` no banco de dados.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 

## Recursos relacionados
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-resources"></a>

**Documentação do PostgreSQL**
+ [CRIAR PERFIL](https://www.postgresql.org/docs/9.1/sql-createrole.html)
+ [CRIAR USUÁRIO](https://www.postgresql.org/docs/8.0/sql-createuser.html)
+ [Perfis predefinidos](https://www.postgresql.org/docs/14/predefined-roles.html)

 

## Mais informações
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-additional"></a>

**Aprimoramento do PostgreSQL 14**

O PostgreSQL 14 fornece um conjunto de funções predefinidas que dão acesso a determinadas capacidades e informações privilegiadas comumente necessárias. Os administradores (incluindo funções que têm o privilégio de `CREATE ROLE`) podem conceder essas funções ou outras funções em seu ambiente aos usuários, fornecendo-lhes acesso aos recursos e informações especificados.

Os administradores podem conceder aos usuários acesso a essas funções usando o comando `GRANT`. Por exemplo, para conceder a função `pg_signal_backend` a `Admin_User`, você pode executar o comando a seguir.

```
GRANT pg_signal_backend TO Admin_User;
```

A função `pg_signal_backend` tem como objetivo permitir que os administradores habilitem funções confiáveis e não de superusuário para enviar sinais para outros backends. Para obter mais informações, consulte [Aprimoramentos do PostgreSQL 14](https://www.postgresql.org/docs/14/predefined-roles.html).

**Ajustando o acesso**

Em alguns casos, pode ser necessário fornecer acesso mais granular aos usuários (por exemplo, acesso baseado em tabela ou acesso baseado em colunas). Nesses casos, funções adicionais podem ser criadas para conceder esses privilégios aos usuários. Para obter mais informações, consulte [Concessões do PostgreSQL](https://www.postgresql.org/docs/8.4/sql-grant.html).

# Emule o Oracle DR usando um banco de dados global Aurora compatível com PostgreSQL
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database"></a>

*HariKrishna Boorgadda, Amazon Web Services*

## Resumo
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-summary"></a>

As práticas recomendadas para recuperação de desastres (DR) empresarial consistem basicamente em projetar e implementar sistemas de hardware e software tolerantes a falhas que possam sobreviver a um desastre (*continuidade dos negócios*) e retomar as operações normais (*retomada dos negócios*), com intervenção mínima e, idealmente, sem perda de dados. Criar ambientes tolerantes a falhas para satisfazer os objetivos corporativos de DR pode ser caro e demorado, além de exigir um forte comprometimento da empresa.

O Oracle Database fornece três abordagens diferentes para DR que fornecem o mais alto nível de proteção e disponibilidade de dados em comparação com qualquer outra abordagem para proteger dados do Oracle.
+ Dispositivo Oracle Zero Data Loss Recovery
+ Oracle Active Data Guard
+ Oráculo GoldenGate

Esse padrão fornece uma forma de emular o Oracle GoldenGate DR usando um banco de dados global Amazon Aurora. A arquitetura de referência usa o Oracle GoldenGate para DR em três regiões da AWS. O padrão percorre a redefinição da plataforma de origem para o banco de dados global Aurora nativo de nuvem, baseado na edição do Amazon Aurora compatível com PostgreSQL.

O banco de dados global Aurora foi criado para aplicações com uma presença mundial. Um único banco de dados Aurora abrange várias regiões da AWS com até cinco regiões secundárias. Os bancos de dados globais do Aurora fornecem os seguintes atributos:
+ Replicação física em nível de armazenamento
+ Leituras globais de baixa latência
+ Recuperação de desastres rápida após interrupções em toda a região
+ Migrações rápidas entre regiões
+ Baixo atraso de replicação em todas as regiões
+ Little-to-no impacto no desempenho do seu banco de dados

Para obter mais informações sobre os atributos e vantagens do banco de dados global Aurora, consulte [Usar o Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-overview). Para obter mais informações sobre failovers não planejados e gerenciados, consulte [Uso de failover em um Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover).

## Pré-requisitos e limitações
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Um driver PostgreSQL Java Database Connectivity (JDBC) para conectividade de aplicativos
+ Um banco de dados global do Aurora baseado no Amazon Aurora Edição Compatível com PostgreSQL
+ Um banco de dados do Oracle Real Application Clusters (RAC) migrou para o banco de dados global Aurora baseado em compatibilidade com o Aurora PostgreSQL

**Limitações dos bancos de dados globais do Aurora **
+ Os bancos de dados globais Aurora não estão disponíveis em todas as regiões da AWS. Para obter uma lista de regiões compatíveis, consulte [Bancos de dados globais do Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.apg).
+ Para obter informações sobre atributos que não são compatíveis e outras limitações dos bancos de dados globais do Aurora, consulte as [Limitações do Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**Versões do produto**
+ Edição do Amazon Aurora compatível com PostgreSQL versão 10.14 ou superior

## Arquitetura
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-architecture"></a>

**Pilha de tecnologia de origem**** **
+ Banco de dados de quatro nós do Oracle RAC
+ Oráculo GoldenGate

**Arquitetura de origem**** ** 

O diagrama a seguir mostra três clusters com Oracle RAC de quatro nós em diferentes regiões da AWS replicados usando o Oracle. GoldenGate 

![\[Oracle RAC em uma região primária e duas regiões secundárias.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/9fc740fc-d339-422e-beaf-1f65690c9d14.png)


**Pilha de tecnologias de destino**
+ Um Amazon Aurora Global Database de três clusters baseado no Aurora PostgreSQL, compatível com um cluster na região primária e dois clusters em diferentes regiões secundárias

**Arquitetura de destino**

![\[Amazon Aurora operando em uma região primária e duas regiões secundárias.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/8e3deca9-03f2-437c-9341-795ac17e2b42.png)


## Ferramentas
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com ACID que ajuda você a configurar, operar e escalar implantações do PostgreSQL.
+ Os [Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) abrangem várias regiões da AWS, fornecendo leituras globais de baixa latência e recuperação rápida de interrupções raras que podem afetar uma região inteira da AWS.

## Épicos
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-epics"></a>

### Adicionar regiões com instâncias de banco de dados de leitor
<a name="add-regions-with-reader-db-instances"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Conecte um ou mais clusters secundários do Aurora. | No menu Console de Gerenciamento da AWS, selecione Amazon Aurora. Selecione o cluster primário, selecione **Actions** e **Adicionar região** na lista suspensa. | DBA | 
| Selecione a classe da instância. | Você pode alterar a classe da instância do cluster secundário. No entanto, recomendamos mantê-la igual à classe de instância do cluster primário. | DBA | 
| Adicione a terceira região. | Repita as etapas desse épico para adicionar um cluster na terceira região. | DBA | 

### Fazer failover do banco de dados global Aurora
<a name="fail-over-the-aurora-global-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remova o cluster primário do banco de dados Aurora global. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.html) | DBA | 
| Reconfigure o aplicativo a fim de desviar o tráfego de gravação para o cluster recém-promovido. | Modifique o endpoint no aplicativo usando o do cluster recém-promovido. | DBA | 
| Pare de emitir qualquer operação de gravação para o cluster indisponível. | Interrompa o aplicativo e qualquer atividade de data manipulation language (DML – linguagem de manipulação de dados) no cluster que você removeu. | DBA | 
| Crie um novo banco de dados global Aurora. | Agora você pode criar um banco de dados Aurora global com o cluster recém-promovido como cluster primário. | DBA | 

### Inicie o cluster primário
<a name="start-the-primary-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione o cluster primário a ser iniciado a partir do banco de dados global. | No console do Amazon Aurora, selecione o cluster primário na configuração do banco de dados global. | DBA | 
| Inicie o cluster. | **Na lista suspensa **Ações**, selecione Iniciar.** Esse processo pode levar algum tempo. Atualize a tela para ver o status ou verifique na coluna **Status** o estado atual do cluster após a conclusão da operação. | DBA | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua os clusters secundários restantes. | Após a conclusão do piloto de failover, remova os clusters secundários do banco de dados global. | DBA | 
| Exclua o cluster primário. | Remova o cluster. | DBA | 

## Recursos relacionados
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-resources"></a>
+ [Usar o Amazon Aurora Global Database](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-detaching)
+ [Soluções de recuperação de desastres do Aurora PostgreSQL usando o Amazon Aurora Global Database](https://aws.amazon.com/blogs/database/aurora-postgresql-disaster-recovery-solutions-using-amazon-aurora-global-database/) (publicação do blog)

# Implemente SHA1 o hashing para dados de PII ao migrar do SQL Server para o PostgreSQL
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql"></a>

*Rajkumar Raghuwanshi e Jagadish Kantubugata, Amazon Web Services*

## Resumo
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-summary"></a>

Esse padrão descreve como implementar o hashing do Secure Hash Algorithm 1 (SHA1) para endereços de e-mail ao migrar do SQL Server para o Amazon RDS for PostgreSQL ou compatível com o Amazon Aurora PostgreSQL. Um endereço de e-mail consiste em um exemplo de *informações de identificação pessoal* (PII). A categoria de PII consiste em informações que, se analisadas diretamente ou em conjunto com informações correlatas, podem servir para identificar, de maneira razoável, um indivíduo. 

Este padrão aborda os desafios de manter os valores de hash consistentes em diferentes agrupamentos e codificações de caracteres de banco de dados, além de fornecer uma solução usando funções e acionadores do PostgreSQL. Embora esse padrão se concentre no SHA1 hashing, ele pode ser adaptado para outros algoritmos de hash suportados pelo módulo do PostgreSQL. `pgcrypto` Sempre considere as implicações de segurança da sua estratégia de hash e consulte especialistas em segurança ao lidar com dados sensíveis.

## Pré-requisitos e limitações
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Banco de dados de origem do SQL Server
+ Banco de dados de destino do PostgreSQL (Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL)
+ Experiência em codificação PL/pgSQL

**Limitações**
+ Para este padrão, são necessárias alterações de agrupamento no nível do banco de dados conforme os casos de uso.
+ O impacto na performance em grandes conjuntos de dados ainda não foi avaliado.
+ 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 [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ Microsoft SQL Server 2012 ou posterior

## Arquitetura
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-architecture"></a>

**Pilha de tecnologia de origem**
+ SQL Server
+ NET Framework

**Pilha de tecnologias de destino**
+ PostgreSQL
+ Extensão para `pgcrypto`

**Automação e escala**
+ Considere implementar a função de hash como um procedimento armazenado para facilitar a manutenção.
+ Para grandes conjuntos de dados, avalie a performance e considere a realização de processamento em lotes ou o uso de estratégias de indexação.

## Ferramentas
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado, compatível com ACID, que auxilia na configuração, na operação e na escalabilidade de implantações do PostgreSQL.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local.
+ O [Amazon Relational Database Service (Amazon RDS) para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ajuda você a configurar, operar e escalar um banco de dados relacional do PostgreSQL na Nuvem AWS.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de banco de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.

**Outras ferramentas**
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.
+ O [SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms) consiste em um ambiente integrado para o gerenciamento de qualquer infraestrutura do SQL.

## Práticas recomendadas
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-best-practices"></a>
+ Use configurações de agrupamento apropriadas para lidar com caracteres especiais no banco de dados de destino.
+ Realize testes extensivos com uma variedade de endereços de e-mail, incluindo endereços que contêm caracteres fora do padrão ASCII.
+ Mantenha consistência no tratamento de maiúsculas e minúsculas entre as camadas da aplicação e do banco de dados.
+ Conduza avaliações comparativas da performance das consultas usando valores com hash.

## Épicos
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-epics"></a>

### Análise da implementação do hash na origem
<a name="analyze-source-hashing-implementation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise o código do SQL Server. | Para revisar o código do SQL Server que gera SHA1 hashes, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Engenheiro de dados, DBA e desenvolvedor de aplicações | 
| Documente informações sobre o algoritmo de hash e as transformações de dados. | Para documentar o algoritmo de hash específico e as transformações de dados, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 

### Criação de uma função de hash no PostgreSQL
<a name="create-postgresql-hashing-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a extensão `pgcrypto`. | Para criar a extensão `pgcrypto`, use `pgAdmin/psql` para executar o seguinte comando:<pre>CREATE EXTENSION pgcrypto;</pre> | DBA, engenheiro de dados | 
| Implemente uma função no PostgreSQL. | Implemente a função apresentada a seguir no PostgreSQL para replicar a lógica de hash do SQL Server. De forma geral, esta função conta com as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html)<pre>CREATE OR REPLACE FUNCTION utility.hex_to_bigint ( <br />     par_val character varying, <br />     par_upper character varying DEFAULT 'lower'::character varying) <br />RETURNS bigint <br />LANGUAGE 'plpgsql' <br />AS $BODY$ <br />DECLARE <br />    retnumber bigint; <br />    digest_bytes bytea;<br />BEGIN <br />    if lower(par_upper) = 'upper' <br />    then <br />        digest_bytes := digest(upper(par_val), 'sha1');<br />    else <br />        digest_bytes := digest((par_val), 'sha1');<br />    end if; <br />    retnumber := ('x' || encode(substring(digest_bytes, length(digest_bytes)-10+1), 'hex'))::bit(64)::bigint; <br />    RETURN retnumber; <br />END; <br />$BODY$;</pre> | Engenheiro de dados, DBA e desenvolvedor de aplicações | 
| Testar a função. | Para testar a função, use os dados de amostra do SQL Server para verificar se os valores de hash coincidem. Execute este comando: .<pre>select 'alejandro_rosalez@example.com' as Email, utility.hex_to_bigint('alejandro_rosalez@example.com','upper') as HashValue;<br /><br />--OUTPUT<br />/*<br />email 	        hashvalue<br />"alejandro_rosalez@example.com"	451397011176045063<br />*/<br /></pre> | Desenvolvedor de aplicações, DBA e engenheiro de dados | 

### Implementação de acionadores para hash automático
<a name="implement-triggers-for-automatic-hashing"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie acionadores nas tabelas relevantes. | Para criar acionadores nas tabelas relevantes que gerem automaticamente valores de hash em operações de inserção ou atualização, execute o seguinte comando:<pre>CREATE OR REPLACE FUNCTION update_email_hash() <br />RETURNS TRIGGER <br />AS $$ <br />BEGIN <br />    NEW.email_hash = utility.hex_to_bigint(NEW.email, 'upper'); <br />    RETURN NEW; <br />END; <br />$$ LANGUAGE plpgsql;</pre><pre>CREATE TRIGGER email_hash_trigger BEFORE INSERT OR UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_email_hash();</pre> | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 

### Migração dos dados existentes
<a name="migrate-existing-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desenvolva ou use um script de migração AWS DMS.  | Desenvolva um script de migração ou use AWS DMS para preencher valores de hash para dados existentes (incluindo valores de hash armazenados como `BIGINT` no sistema de origem). Complete as seguintes tarefas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicações, engenheiro de dados e DBA | 
| Use a nova função de hash do PostgreSQL. | Para usar a nova função de hash do PostgreSQL e garantir consistência, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicativos, DBA, engenheiro DevOps  | 

### Atualização das consultas da aplicação
<a name="update-application-queries"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique as consultas da aplicação. | Para identificar as consultas da aplicação que usam os valores de hash, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicações, DBA e engenheiro de dados | 
| Modifique as consultas. | Se necessário, modifique as consultas para usar a nova função de hash do PostgreSQL. Faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicações, DBA e engenheiro de dados | 

### Teste e validação
<a name="test-and-validate"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Realize testes. | Para conduzir testes completos com um subconjunto dos dados de produção, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 
| Valide a correspondência dos valores de hash. | Para validar que os valores de hash correspondem entre SQL Server e PostgreSQL, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 
| Verifique a funcionalidade da aplicação. | Para verificar a funcionalidade da aplicação usando os dados migrados e a nova implementação de hash, execute as etapas abaixo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Desenvolvedor de aplicações, DBA e engenheiro de dados | 

## Solução de problemas
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Os valores de hash não correspondem. | Verifique as codificações de caracteres e os agrupamentos entre a origem e o destino. Para obter mais informações, consulte [Gerenciar alterações de agrupamento no PostgreSQL no Amazon Aurora e no Amazon RDS (Blog](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)).AWS  | 

## Recursos relacionados
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-resources"></a>

**AWS Blogs**
+ [Manage collation changes in PostgreSQL on Amazon Aurora and Amazon RDS](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)
+ [Migrate SQL Server to Amazon Aurora PostgreSQL using best practices and lessons learned from the field](https://aws.amazon.com/blogs/database/migrate-sql-server-to-amazon-aurora-postgresql-using-best-practices-and-lessons-learned-from-the-field/)

**Outros recursos**
+ [PostgreSQL pgcrypto module](https://www.postgresql.org/docs/current/pgcrypto.html) (documentação do PostgreSQL)
+ [PostgreSQL trigger functions](https://www.postgresql.org/docs/current/plpgsql-trigger.html) (documentação do PostgreSQL)
+ [SQL Server HASHBYTES function](https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql) (documentação da Microsoft)

# Migre incrementalmente do Amazon RDS para Oracle para o Amazon RDS para PostgreSQL usando o Oracle SQL Developer e o AWS SCT
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-summary"></a>

Muitas estratégias e abordagens de migração são executadas em várias fases, que podem durar de algumas semanas a vários meses. Durante esse período, você pode enfrentar atrasos devido a patches ou atualizações nas instâncias de banco de dados Oracle de origem que você deseja migrar para instâncias de banco de dados PostgreSQL. Para evitar essa situação, recomendamos que você migre incrementalmente o código restante do banco de dados Oracle para o código do banco de dados PostgreSQL.

Esse padrão fornece uma estratégia de migração incremental sem tempo de inatividade para uma instância de banco de dados Oracle de vários terabytes que tem um grande número de transações realizadas após a migração inicial e que deve ser migrada para um banco de dados PostgreSQL. Você pode usar essa step-by-step abordagem padrão para migrar incrementalmente uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) para Oracle para uma instância de banco de dados Amazon RDS for PostgreSQL sem entrar no console de gerenciamento da Amazon Web Services (AWS).

O padrão usa o [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) para encontrar as diferenças entre dois esquemas no banco de dados Oracle de origem. Em seguida, você usa a AWS Schema Conversion Tool (AWS SCT) para converter os objetos do esquema do banco de dados do Amazon RDS para Oracle em objetos do esquema do banco de dados Amazon RDS para PostgreSQL. Então, você pode executar um script Python no prompt de comando do Windows para criar objetos do AWS SCT para as alterações incrementais nos objetos do banco de dados de origem.

**nota**  
Antes de migrar as workloads do ambiente de produção, recomendamos executar uma prova de conceito (PoC, na sigla em inglês) da abordagem apresentada neste padrão em um ambiente de teste ou não destinado à produção.

## Pré-requisitos e limitações
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Instância de banco de dados existente Amazon RDS para Oracle. 
+ Uma instância existente de banco de dados do Amazon RDS para PostgreSQL.
+ AWS SCT, instalada e configurada com drivers JDBC para mecanismos de banco de dados Oracle e PostgreSQL. Para obter mais informações sobre isso, consulte [Instalação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) e [Instalação dos drivers de banco de dados necessários](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers) na documentação da AWS SCT. 
+ Oracle SQL Developer, instalado e configurado. Para obter mais informações sobre isso, consulte a documentação do [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html). 
+ O arquivo `incremental-migration-sct-sql.zip` (anexado), baixado no seu computador local.

**Limitações**
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para Oracle de origem são:
  + Oracle versões 10.2 e posteriores (para versões 10.x), 11g (versões 11.2.0.3.v1 e posteriores) e até 12.2 e 18c para as edições Enterprise, Standard, Standard One e Standard Two
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para PostgreSQL de origem são:  
  + PostgreSQL versões 9.4 e posterior (para versões 9.x), 10.x e 11.x
+ Esse padrão usa o Oracle SQL Developer. Seus resultados podem variar se você usar outras ferramentas para encontrar e exportar diferenças de esquema.
+ Os [scripts SQL](https://docs.oracle.com/database/121/AEUTL/sql_rep.htm#AEUTL191) gerados pelo Oracle SQL Developer podem gerar erros de transformação, o que significa que você precisa realizar uma migração manual.
+ Se as conexões de teste de origem e destino do AWS SCT falharem, certifique-se de configurar as versões do driver JDBC e as regras de entrada para que o grupo de segurança da nuvem privada virtual (VPC) aceite o tráfego de entrada.

**Versões do produto**
+ Instância do banco de dados Amazon RDS para Oracle versão 12.1.0.2 (versão 10.2 e posteriores)
+ Instância do banco de dados Amazon RDS para PostgreSQL versão 11.5 (versão 9.4 e posteriores)
+ Oracle SQL Developer versão 19.1 e posteriores
+ AWS SCT versão 1.0.632 e posteriores

## Arquitetura
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**
+ Instância do banco de dados Amazon RDS para Oracle

**Pilha de tecnologias de destino**
+ instância do banco de dados Amazon RDS para PostgreSQL

**Arquitetura de origem e destino**

O diagrama a seguir mostra a migração de uma instância de banco de dados Amazon RDS para Oracle para uma instância de banco de dados Amazon RDS para PostgreSQL.

![\[Fluxo de migração do Amazon RDS para Oracle para o Amazon RDS para PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c7eed517-e496-4e8e-a520-c1e43397419e/images/bfbbed5e-db13-4a22-99aa-1a17f00f5faf.png)


O diagrama mostra o seguinte fluxo de trabalho de migração:

1. Abra o Oracle SQL Developer e conecte-se aos bancos de dados de origem e destino.

1. Gere um [relatório de diferença](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) e, em seguida, gere o arquivo de scripts SQL para os objetos de diferença do esquema. Para obter mais informações sobre relatórios de diferença, consulte [Relatórios de diferença detalhados](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) na documentação da Oracle.

1. Configure o AWS SCT e execute o código Python.

1. O arquivo de scripts SQL é convertido do Oracle para o PostgreSQL.

1. Execute o arquivo de scripts SQL na instância do banco de dados PostgreSQL de destino. 

**Automação e escala**

Você pode automatizar esta migração incluindo parâmetros adicionais e alterações relacionadas à segurança para várias funcionalidades em um único programa ao seu script do Python.

## Ferramentas
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-tools"></a>
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html): o AWS Schema Conversion Tool (AWS SCT) converte seu esquema de banco de dados existente de um mecanismo de banco de dados para outro.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html): o Oracle SQL Developer é um ambiente de desenvolvimento integrado (IDE) que simplifica o desenvolvimento e o gerenciamento de bancos de dados Oracle em implantações tradicionais e baseadas em nuvem.

**Código **

O arquivo `incremental-migration-sct-sql.zip` (anexo) contém o código-fonte completo para esse padrão.

## Épicos
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-epics"></a>

### Crie o arquivo de scripts SQL para as diferenças do esquema do banco de dados de origem
<a name="create-the-sql-scripts-file-for-the-source-database-schema-differences"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute Database Diff no Oracle SQL Developer.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
| Gere o arquivo de scripts SQL. | Escolha **Gerar script** para gerar as diferenças nos arquivos SQL. Isso gera o arquivo de scripts SQL que o AWS SCT usa para converter seu banco de dados do Oracle para o PostgreSQL. | DBA | 

### Use o script Python para criar os objetos de banco de dados de destino no AWS SCT
<a name="use-the-python-script-to-create-the-target-db-objects-in-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS SCT com o prompt de comando do Windows.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html)<pre>#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port<br /><br />ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432</pre>4. Modifique os parâmetros de configuração do AWS SCT de acordo com seus requisitos e, em seguida, copie o arquivo de scripts SQL em seu diretório de trabalho no subdiretório `input`. | DBA | 
| Execute o script em Python .  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
|  Crie os objetos no Amazon RDS para PostgreSQL | Execute os arquivos SQL e crie objetos na sua instância do banco de dados Amazon RDS para PostgreSQL. | DBA | 

## Recursos relacionados
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-resources"></a>
+ [Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [PostgreSQL no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Usar a interface de usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Usar Oracle como origem para AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

## Anexos
<a name="attachments-c7eed517-e496-4e8e-a520-c1e43397419e"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/c7eed517-e496-4e8e-a520-c1e43397419e/attachments/attachment.zip)

# Faça o upload de arquivos BLOB em TEXT usando a codificação de arquivos no Aurora PostgreSQL-Compatible
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible"></a>

*Bhanu Ganesh Gudivada e Jeevan Shetty, Amazon Web Services*

## Resumo
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-summary"></a>

Muitas vezes, durante a migração, há casos em que você precisa processar dados estruturados e não estruturados que são carregados a partir de arquivos disponíveis em um sistema local. Os dados também podem estar em um conjunto de caracteres diferente do conjunto de caracteres do banco de dados.

Esses arquivos contêm os seguintes tipos de dados:
+ **Metadados**: esses dados descrevem a estrutura do arquivo.
+ **Dados semiestruturados**: são strings de texto em um formato específico, como JSON ou XML. Talvez você possa fazer afirmações sobre esses dados, como “sempre começará com '<'” ou “não contém nenhum caractere de nova linha”.
+ **Texto completo**: esses dados geralmente contêm todos os tipos de caracteres, incluindo caracteres de nova linha e aspas. Também pode consistir em caracteres de vários bytes em UTF-8.
+ **Dados binários** — esses dados podem conter bytes ou combinações de bytes, incluindo nulos e end-of-file marcadores.

Carregar uma mistura desses tipos de dados pode ser um desafio.

O padrão pode ser usado com bancos de dados Oracle locais, bancos de dados Oracle que estão em instâncias do Amazon Elastic Compute Cloud EC2 (Amazon) na Amazon Web Services (AWS) Cloud e Amazon Relational Database Service (Amazon RDS) para bancos de dados Oracle. Para fins de ilustração, esse padrão está usando o Amazon Aurora Edição Compatível com PostgreSQL.

No banco de dados Oracle, com a ajuda de um ponteiro `BFILE` (arquivo binário), do pacote `DBMS_LOB` e das funções do sistema Oracle, você pode carregar a partir do arquivo e convertê-lo em CLOB com codificação de caracteres. Como o PostgreSQL não fornece suporte para o tipo de dados BLOB ao migrar para um banco de dados Amazon Aurora Edição Compatível com PostgreSQL, essas funções devem ser convertidas em scripts compatíveis com o PostgreSQL.

Esse padrão fornece duas abordagens para carregar um arquivo em uma única coluna de um banco de dados Amazon Aurora compatível com PostgreSQL:
+ Abordagem 1 – Você importa dados do bucket do Amazon Simple Storage Service (Amazon S3) usando a função `table_import_from_s3` da extensão `aws_s3` com a opção de codificação.
+ Abordagem 2 – Você codifica em hexadecimal fora do banco de dados e, em seguida, decodifica para visualizar `TEXT` dentro do banco de dados.

Recomendamos usar a Abordagem 1 porque o Aurora compatível com PostgreSQL tem integração direta com a extensão `aws_s3`.

Esse padrão usa o exemplo de carregamento de um arquivo simples que contém um modelo de e-mail, caracteres de vários bytes e formatação distinta, em um banco de dados Amazon Aurora compatível com PostgreSQL.

## Pré-requisitos e limitações
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Amazon RDS ou uma instância do Aurora compatível com PostgreSQL
+ Uma compreensão básica do SQL e do sistema de gerenciamento de banco de dados relacional (RDBMS)
+ Um bucket do Amazon Simple Storage Service (Amazon S3).
+ Conhecimento das funções do sistema em Oracle e PostgreSQL
+ Pacote RPM HexDump -XXD-0.1.1 (incluído no Amazon Linux 2)
**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/).

**Limitações**
+ Para o tipo de dados `TEXT`, o string de caracteres mais longo possível que pode ser armazenado é de cerca de 1 GB.

**Versões do produto**
+ [O Aurora oferece suporte às versões do PostgreSQL listadas nas atualizações do Amazon Aurora PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)

## Arquitetura
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-architecture"></a>

**Pilha de tecnologias de destino**
+ Aurora compatível com PostgreSQL

**Arquitetura de destino**

*Abordagem 1 – Usar aws\$1s3.table\$1import\$1from\$1s3 *

A partir de um servidor on-premises, um arquivo contendo um modelo de e-mail com caracteres de vários bytes e formatação personalizada é transferido para o Amazon S3. A função de banco de dados personalizada fornecida por esse padrão usa a função `aws_s3.table_import_from_s3` com `file_encoding` para carregar arquivos no banco de dados e retornar os resultados da consulta  como o tipo de dados `TEXT`.

![\[Processo em quatro etapas, desde o servidor on-premises até a saída TEXT, proveniente do banco de dados do Aurora.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/9c46b385-e8a0-4e50-b856-d522c44d79e3.png)


1. Os arquivos são transferidos para o bucket do S3 de preparação.

1. Os arquivos são carregados para o banco de dados Amazon Aurora PostgreSQL-Compatible.

1. Usando o cliente pGAdmin, a função personalizada `load_file_into_clob` é implantada no banco de dados Aurora.

1. A função personalizada usa `table_import_from_s3` internamente com file\$1encoding. O resultado da função é obtido usando `array_to_string` e `array_agg` como o resultado `TEXT`.

*Abordagem 2 – Codificação em hexadecimal fora do banco de dados e, em seguida, decodifica para visualizar TEXT dentro do banco de dados*

Um arquivo de um servidor on-premises ou de um sistema de arquivos local é convertido em um hex dump. Em seguida, o arquivo é importado para o PostgreSQL como um campo `TEXT`.

![\[Processo em três etapas usando o despejo hexadecimal.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/563038ca-f890-4874-85df-d0f82d99800a.png)


1. Converta o arquivo em um hex dump na linha de comando usando a opção `xxd -p`.

1. Faça upload dos arquivos hex dump no Aurora PostgreSQL-Compatible usando a opção `\copy` e, em seguida, decodifique os arquivos hex dump em binário.

1. Codifique os dados binários para que sejam retornados como `TEXT`.

## Ferramentas
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ A [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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.

**Outras ferramentas**
+ O [pgAdmin4](https://www.pgadmin.org/) é uma plataforma de administração e desenvolvimento de código aberto para o PostgreSQL. O pgAdmin4 pode ser usado em Linux, Unix, mac OS e Windows para gerenciar o PostgreSQL.  

## Épicos
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-epics"></a>

### Abordagem 1: importar dados do Amazon S3 para o Aurora PostgreSQL-Compatible
<a name="approach-1-import-data-from-amazon-s3-to-aurora-postgresql-compatible"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma EC2 instância. | Para obter instruções sobre como iniciar uma instância, consulte [Executar sua instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | DBA | 
| Instale a ferramenta pgAdmin do cliente PostgreSQL. | Baixe e instale [pgAdmin](https://www.pgadmin.org/download/). | DBA | 
| Crie uma política do IAM. | Crie uma política do AWS Identity and Access Management (IAM) chamada `aurora-s3-access-pol` que concede acesso ao bucket do S3 onde os arquivos serão armazenados. Use o código a seguir, `<bucket-name>` para substituir pelo nome do bucket do S3.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:DeleteObject",<br />                "s3:ListMultipartUploadParts",<br />                "s3:PutObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<bucket-name>/*",<br />                "arn:aws:s3:::<bucket-name>"<br />            ]<br />        }<br />    ]<br />}</pre> | DBA | 
| Crie um perfil do IAM para importação de objetos do Amazon S3 para o Aurora PostgreSQL-Compatible. | Use o código a seguir para criar uma função do IAM chamada `aurora-s3-import-role` com a relação de [AssumeRole](https://docs.amazonaws.cn/en_us/STS/latest/APIReference/API_AssumeRole.html)confiança. `AssumeRole`permite que a Aurora acesse outros serviços da AWS em seu nome.<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow","Principal": {<br />        "Service": "rds.amazonaws.com"<br />      },"Action": "sts:AssumeRole"<br />    }<br />  ]<br />}<br /></pre> | DBA | 
| Associe o perfil do IAM ao cluster. | Para associar o perfil do IAM ao cluster do banco de dados Aurora PostgreSQL-Compatible, execute o comando da AWS CLI a seguir. Altere `<Account-ID>` para o ID da conta da AWS que hospeda o banco de dados Aurora PostgreSQL-Compatible. Isso permite que o banco de dados Aurora PostgreSQL-Compatible acesse o bucket do S3.<pre>aws rds add-role-to-db-cluster --db-cluster-identifier aurora-postgres-cl<br />--feature-name s3Import --role-arn arn:aws:iam::<Account-ID>:role/aurora-s3-import-role</pre> | DBA | 
| Faça o upload do exemplo para o Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA, proprietário do aplicativo | 
| Implante a função personalizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | Proprietário do aplicativo, DBA | 
| Execute a função personalizada para importar os dados para o banco de dados. | Execute o comando SQL a seguir, substituindo os itens entre parênteses angulares pelos valores apropriados.<pre>select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Substitua os itens entre parênteses angulares pelos valores apropriados, conforme mostrado no exemplo a seguir, antes de executar o comando.<pre>Select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>O comando carrega o arquivo do Amazon S3 e retorna o resultado como `TEXT`. | Proprietário do aplicativo, DBA | 

### Abordagem 2: converter o arquivo de modelo em um hex dump em um sistema Linux local
<a name="approach-2-convert-the-template-file-into-a-hex-dump-in-a-local-linux-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Converta o arquivo do modelo em um hex dump. | O utilitário Hexdump exibe o conteúdo dos arquivos binários em hexadecimal, decimal, octal ou ASCII. O comando `hexdump` faz parte do pacote `util-linux` e vem pré-instalado nas distribuições Linux. O pacote Hexdump RPM também faz parte do Amazon Linux 2. (: O suporte do Amazon Linux 2 está chegando ao fim. Para obter mais informações, consulte o [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).)Para converter o conteúdo do arquivo em um hex dump, execute o seguinte comando shell.<pre>xxd -p </path/file.vm> | tr -d '\n' > </path/file.hex></pre>Substitua o caminho e o arquivo pelos valores apropriados, conforme mostrado no exemplo a seguir.<pre>xxd -p employee.salary.event.notification.email.vm | tr -d '\n' > employee.salary.event.notification.email.vm.hex</pre> | DBA | 
| Carregue o arquivo hexdump no esquema do banco de dados. | Use os comandos a seguir para carregar o arquivo hexdump no banco de dados Aurora PostgreSQL-Compatible.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA | 

## Recursos relacionados
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-resources"></a>

**Referências**
+ [Uso do banco de dados PostgreSQL como origem para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Manual de migração do Oracle Database 19c para o Amazon Aurora com compatibilidade com PostgreSQL (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)
+ [Associar um perfil do IAM a um cluster de banco de dados do Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html)
+ [pgAdmin](https://www.pgadmin.org/)

**Tutoriais**
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Migre do Oracle para o Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

## Mais informações
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-additional"></a>

**função personalizada load\$1file\$1into\$1clob**

```
CREATE OR REPLACE FUNCTION load_file_into_clob(
    s3_bucket_name text,
    s3_bucket_region text,
    file_name text,
    file_delimiter character DEFAULT '&'::bpchar,
    file_encoding text DEFAULT 'UTF8'::text)
    RETURNS text
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
    blob_data BYTEA;
    clob_data TEXT;
    l_table_name CHARACTER VARYING(50) := 'file_upload_hex';
    l_column_name CHARACTER VARYING(50) := 'template';
    l_return_text TEXT;
    l_option_text CHARACTER VARYING(150);
    l_sql_stmt CHARACTER VARYING(500);
        
BEGIN
    
    EXECUTE format ('CREATE TEMPORARY TABLE %I (%I text, id_serial serial)', l_table_name, l_column_name);
    
    l_sql_stmt := 'select ''(format text, delimiter ''''' || file_delimiter || ''''', encoding ''''' || file_encoding ||  ''''')'' ';
    
    EXECUTE FORMAT(l_sql_stmt)
    INTO l_option_text;
    
    EXECUTE FORMAT('SELECT aws_s3.table_import_from_s3($1,$2,$6, aws_commons.create_s3_uri($3,$4,$5))')
    INTO l_return_text
    USING l_table_name, l_column_name, s3_bucket_name, file_name,s3_bucket_region,l_option_text;
    
    EXECUTE format('select array_to_string(array_agg(%I order by id_serial),E''\n'') from %I', l_column_name, l_table_name)
    INTO clob_data;
    
    drop table file_upload_hex;
    
    RETURN clob_data;
END;
$BODY$;
```

**Modelo de e-mail**

```
######################################################################################
##                                                                                    ##
##    johndoe Template Type: email                                                    ##
##    File: johndoe.salary.event.notification.email.vm                                ##
##    Author: Aimée Étienne    Date 1/10/2021                                                ##
##  Purpose: Email template used by EmplmanagerEJB to inform a johndoe they         ##
##        have been given access to a salary event                                    ##
##    Template Attributes:                                                             ##
##        invitedUser - PersonDetails object for the invited user                        ##
##        salaryEvent - OfferDetails object for the event the user was given access    ##
##        buyercollege - CompDetails object for the college owning the salary event    ##
##        salaryCoordinator - PersonDetails of the salary coordinator for the event    ##
##        idp - Identity Provider of the email recipient                                ##
##        httpWebRoot - HTTP address of the server                                    ##
##                                                                                    ##
######################################################################################

$!invitedUser.firstname $!invitedUser.lastname,

Ce courriel confirme que vous avez ete invite par $!salaryCoordinator.firstname $!salaryCoordinator.lastname de $buyercollege.collegeName a participer a l'evenement "$salaryEvent.offeringtitle" sur johndoeMaster Sourcing Intelligence.

Votre nom d'utilisateur est $!invitedUser.username

Veuillez suivre le lien ci-dessous pour acceder a l'evenement.

${httpWebRoot}/myDashboard.do?idp=$!{idp}

Si vous avez oublie votre mot de passe, utilisez le lien "Mot de passe oublie" situe sur l'ecran de connexion et entrez votre nom d'utilisateur ci-dessus.

Si vous avez des questions ou des preoccupations, nous vous invitons a communiquer avec le coordonnateur de l'evenement $!salaryCoordinator.firstname $!salaryCoordinator.lastname au ${salaryCoordinator.workphone}.

*******

johndoeMaster Sourcing Intelligence est une plateforme de soumission en ligne pour les equipements, les materiaux et les services.

Si vous avez des difficultes ou des questions, envoyez un courriel a support@johndoeMaster.com pour obtenir de l'aide.
```

# Migre o Amazon RDS for Oracle para o Amazon AWS SCT RDS for PostgreSQL com e usando e AWS DMS AWS CLI CloudFormation
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-summary"></a>

Esse padrão mostra como migrar uma instância de banco de dados Amazon [Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) for Oracle de vários terabytes para uma instância de banco de dados [Amazon RDS for PostgreSQL usando](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) o (). AWS Command Line Interface AWS CLI A abordagem fornece tempo de inatividade mínimo e não requer login no Console de gerenciamento da AWS.

Esse padrão ajuda a evitar configurações manuais e migrações individuais usando os consoles AWS Schema Conversion Tool (AWS SCT) e AWS Database Migration Service (AWS DMS). A solução configura uma configuração única para vários bancos de dados e executa as migrações usando AWS SCT e AWS DMS no. AWS CLI

O padrão é usado AWS SCT para converter objetos do esquema de banco de dados do Amazon RDS para Oracle para o Amazon RDS for PostgreSQL e, em seguida, é usado para migrar os dados. AWS DMS Usando scripts Python em AWS CLI, você cria AWS SCT objetos e AWS DMS tarefas com um CloudFormation modelo.

## Pré-requisitos e limitações
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Instância de banco de dados existente Amazon RDS para Oracle.
+ Uma instância existente de banco de dados do Amazon RDS para PostgreSQL. 
+ Uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou máquina local com sistema operacional Windows ou Linux para execução de scripts.
+ Uma compreensão dos seguintes tipos de tarefas de AWS DMS migração:`full-load`,`cdc`,`full-load-and-cdc`.  Para obter mais informações, consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) na AWS DMS documentação. 
+ O AWS SCT instalado e configurado com drivers Java Database Connectivity (JDBC) para os mecanismos de banco de dados da Oracle e do PostgreSQL. Para obter mais informações, consulte [Instalação e configuração AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) na AWS SCT documentação. 
+ O `AWSSchemaConversionToolBatch.jar` arquivo da AWS SCT pasta instalada, copiado para o seu diretório de trabalho.
+ O arquivo `cli-sct-dms-cft.zip` (anexo), baixado e extraído em seu diretório de trabalho.
+ A versão mais recente do mecanismo AWS DMS de instância de replicação. Para obter mais informações, consulte [Como faço para criar uma instância de AWS DMS replicação](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) na AWS Support documentação e nas [notas de AWS DMS versão](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html). 
+ AWS CLI versão 2, instalada e configurada com seu ID de chave de acesso, chave de acesso secreta e Região da AWS nome padrão para a EC2 instância ou sistema operacional em que os scripts são executados. Para obter mais informações, consulte [Instalando ou atualizando para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [Definindo as configurações do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) na AWS CLI documentação. 
+ Familiaridade com CloudFormation modelos. Para obter mais informações, consulte [Como CloudFormation funciona](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html) na CloudFormation documentação. 
+ Python versão 3, instalado e configurado na EC2 instância ou no sistema operacional em que os scripts são executados. Para obter mais informações, consulte a [documentação do Python](https://docs.python.org/3/). 

**Limitações**
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para Oracle de origem são: 
  + As versões da Oracle 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0) e 19c (19.0.0.0) são compatíveis com as edições Enterprise, Standard, Standard One e Standard Two.
  + Embora o Amazon RDS ofereça suporte ao Oracle 18c (18.0.0.0), essa versão está em um caminho de descontinuação porque a Oracle não fornece mais patches para 18c após a data. end-of-support Para obter mais informações, consulte o [Amazon RDS para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.Deprecate.11204) na documentação do Amazon RDS.
  + O Amazon RDS para Oracle 11g não é mais compatível.
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para PostgreSQL de origem são: 
  + As versões do PostgreSQL incluem 9 (9.5 e 9.6), 10.x, 11.x, 12.x e 13.x.

**Versões do produto**
+ Instância do banco de dados Amazon RDS para Oracle versão 12.1.0.2 e posteriores
+ Instância do banco de dados Amazon RDS para PostgreSQL versão 11.5 e posteriores
+ AWS CLI versão 2 
+ A versão mais recente do AWS SCT
+ A versão mais recente do Python 3

## Arquitetura
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-architecture"></a>

**Pilha de tecnologia de origem**
+ Amazon RDS para Oracle

**Pilha de tecnologias de destino**
+ Amazon RDS para PostgreSQL

**Arquitetura de origem e destino **

O diagrama a seguir mostra a migração de uma instância de banco de dados Amazon RDS for Oracle para uma instância de banco de dados Amazon RDS for PostgreSQL AWS DMS usando scripts Python.

![\[Migração de uma instância de banco de dados do RDS para Oracle para uma instância de banco de dados do RDS para PostgreSQL usando o AWS DMS e o Python.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5e041494-2e64-4f09-b6ec-0e0cba3a4972/images/77022e13-46fb-4aa8-ab49-85b0ca4c317a.png)


 

O diagrama mostra o seguinte fluxo de trabalho de migração:

1. O script Python é usado AWS SCT para se conectar às instâncias de banco de dados de origem e de destino.

1. O usuário começa AWS SCT com o script Python, converte o código Oracle em código PostgreSQL e o executa na instância de banco de dados de destino.

1. O script Python cria tarefas de AWS DMS replicação para as instâncias de banco de dados de origem e de destino.

1. O usuário implanta scripts Python para iniciar as tarefas e, em seguida, interrompe AWS DMS as tarefas após a conclusão da migração de dados.

**Automação e escala**

É possível automatizar esta migração adicionando parâmetros e alterações relacionadas à segurança ao script em Python a fim de fornecer funcionalidades adicionais. 

## Ferramentas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-tools"></a>
+ [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.
+ [CloudFormation](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 em todo o seu ciclo de vida em todas Contas da AWS as regiões. Este padrão converte o arquivo de entrada `.csv` em um arquivo de entrada `.json` usando um script em Python. O `.json` arquivo é usado em AWS CLI comandos para criar uma CloudFormation pilha que cria várias tarefas de AWS DMS replicação com Amazon Resource Names (ARNs), tipos de migração, configurações de tarefas e mapeamentos de tabelas.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local. Esse padrão é usado AWS DMS para criar, iniciar e interromper tarefas com um script Python executado na linha de comando e para criar o CloudFormation modelo.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. Esse padrão requer o `AWSSchemaConversionToolBatch.jar` arquivo do AWS SCT diretório instalado.

**Código **

O arquivo `cli-sct-dms-cft.zip` (anexo) contém o código-fonte completo para esse padrão.

## Épicos
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-epics"></a>

### Configure AWS SCT e crie objetos de banco de dados no AWS CLI
<a name="configure-awssct-and-create-database-objects-in-the-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure AWS SCT para ser executado a partir do AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Execute o script em Python `run_aws_sct.py`. | Execute o script `run_aws_sct.py` do Python usando o comando a seguir:`$ python run_aws_sct.py database_migration.txt`O script do Python converte os objetos do banco de dados do Oracle para o PostgreSQL e cria arquivos SQL no formato PostgreSQL. O script também gera o arquivo em PDF `Database migration assessment report`, que fornece recomendações detalhadas e estatísticas de conversão para os objetos de banco de dados. | DBA | 
| Crie objetos no Amazon RDS para PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 

### Configure e crie AWS DMS tarefas usando o AWS CLI e CloudFormation
<a name="configure-and-create-dms-tasks-by-using-the-cli-and-cfn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de AWS DMS replicação. | Faça login no Console de gerenciamento da AWS, abra o [AWS DMS console](https://console.aws.amazon.com/dms/v2/) e crie uma instância de replicação configurada de acordo com seus requisitos.Para obter mais informações, consulte [Criação de uma instância de replicação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) na AWS DMS documentação e [Como faço para criar uma instância de AWS DMS replicação](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) na AWS Support documentação. | DBA | 
| Crie um endpoint de origem. | No AWS DMS console, escolha **Endpoints** e, em seguida, crie um endpoint de origem para o banco de dados Oracle de acordo com seus requisitos. O atributo de conexão extra deve ser `numberDataTypeScale` com um valor `-2`.Para obter mais informações, consulte [Criação de endpoints de origem e destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) na AWS DMS documentação. | DBA | 
| Crie um endpoint de destino. | No AWS DMS console, escolha **Endpoints** e, em seguida, crie um endpoint de destino para o banco de dados PostgreSQL de acordo com seus requisitos.  Para obter mais informações, consulte [Criação de endpoints de origem e destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) na AWS DMS documentação. | DevOps engenheiro | 
| Configure os detalhes da AWS DMS replicação para serem executados a partir do AWS CLI. | Configure os endpoints de AWS DMS origem e de destino e os detalhes da replicação no `dms-arn-list.txt` arquivo com o ARN do endpoint de origem, o ARN do endpoint de destino e o ARN da instância de replicação usando o seguinte formato:<pre>#sourceARN,targetARN,repARN<br />arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ<br />arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5<br />arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G</pre> | DBA | 
| Execute o script `dms-create-task.py` Python para criar as AWS DMS tarefas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Verifique se as AWS DMS tarefas estão prontas. | No AWS DMS console, verifique se suas AWS DMS tarefas estão em `Ready` status na seção **Status**. | DBA | 

### Inicie e interrompa as AWS DMS tarefas usando o AWS CLI
<a name="start-and-stop-the-dms-tasks-by-using-the-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie as AWS DMS tarefas. | Execute o script `dms-start-task.py` do Python usando o comando a seguir:<pre>$ python dms-start-task.py start '<cdc-start-datetime>'</pre>A data e o horário de início devem estar no formato `'DD-MON-YYYY'` ou `'YYYY-MM-DDTHH:MI:SS'` (por exemplo, `'01-Dec-2019'` ou `'2018-03-08T12:12:12'`).Você pode revisar o status da AWS DMS tarefa na guia **Estatísticas da tabela** na página **Tarefas** do AWS DMS console. | DBA | 
| Valide os dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html)Para obter mais informações, consulte a [validação de AWS DMS dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) na AWS DMS documentação. | DBA | 
| Pare as AWS DMS tarefas. | Execute o script do Python usando o comando a seguir:<pre>$ python dms-start-task.py stop</pre>AWS DMS as tarefas podem parar com um `failed` status, dependendo do status de validação. Para obter mais informações, consulte a próxima seção. | DBA | 

## Solução de problemas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| AWS SCT as conexões de teste de origem e destino falham. | Configure as versões do driver JDBC e as regras de entrada do grupo de segurança da VPC para aceitar o tráfego de entrada. | 
| A execução do teste de endpoint de origem ou de destino falha. | Verifique se as configurações do endpoint e a instância de replicação estão com status `Available`. Verifique se o status da conexão do endpoint é `Successful`. Para obter mais informações, consulte [Como soluciono falhas de conectividade de endpoints do AWS DMS na documentação](https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/). AWS Support  | 
| A execução de carga máxima falha. | Verifique se os bancos de dados de origem e de destino têm tipos e tamanhos de dados correspondentes. Para obter mais informações, consulte [Solução de problemas de tarefas de migração AWS DMS na](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html) AWS DMS documentação. | 
| Você encontra erros na execução de validação. | Verifique se a tabela tem uma chave primária porque as tabelas de chave não primária não estão validadas.Se a tabela tiver uma chave primária, mas retornar erros, verifique o atributo de conexão extra no endpoint de origem tem `numberDataTypeScale=-2`.Para obter mais informações, consulte [Configurações do endpoint ao usar o Oracle como fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) e [Solução de problemas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting) na AWS DMS documentação. AWS DMS[OracleSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_OracleSettings.html) | 

## Recursos relacionados
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-resources"></a>
+ [Instalando e configurando AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)
+ [Introduction to AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (vídeo)
+ [Exemplos de comandos de operação de CloudFormation pilha para e AWS CLI PowerShell](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html)
+ [Navegando pela interface do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Usando um banco de dados Oracle como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Conectando-se aos bancos de dados Oracle com AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ [Usando um banco de dados PostgreSQL como alvo para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Origens para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Destinos para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [cloudformation (documentação](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html))AWS CLI 
+ [create-stack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html) (documentação)AWS CLI  
+ [dms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/index.html) (AWS CLI documentação) 

## Anexos
<a name="attachments-5e041494-2e64-4f09-b6ec-0e0cba3a4972"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/5e041494-2e64-4f09-b6ec-0e0cba3a4972/attachments/attachment.zip)

# Migre o Amazon RDS para Oracle para o Amazon RDS para PostgreSQL no modo SSL usando o AWS DMS
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-summary"></a>

Este padrão fornece orientação para migração de uma instância do banco de dados Amazon Relational Database Service (Amazon RDS) para Oracle para um banco de dados do Amazon RDS para PostgreSQL na nuvem da Amazon Web Services (AWS). Para criptografar conexões entre os bancos de dados, o padrão usa autoridade de certificação (CA) e modo SSL no Amazon RDS e no AWS Database Migration Service (AWS DMS).

O padrão descreve uma estratégia de migração on-line com pouco ou nenhum tempo de inatividade para um banco de dados de origem Oracle de vários terabytes com um grande número de transações. Visando à segurança dos dados, o padrão usa SSL ao transferir os dados.

Esse padrão usa o AWS Schema Conversion Tool (AWS SCT) para converter o esquema de banco de dados Amazon RDS para Oracle em um esquema do Amazon RDS para PostgreSQL. Em seguida, o padrão usa o AWS DMS para migrar dados do banco de dados Amazon RDS para Oracle para o banco de dados Amazon RDS para PostgreSQL.

## Pré-requisitos e limitações
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Autoridade de certificação (CA) do banco de dados Amazon RDS configurada somente com ***rds-ca-rsa2048-g1*** 
  + O certificado ***rds-ca-2019*** expirou em agosto de 2024.
  + O certificado ***rds-ca-2015*** expirou em 5 de março de 2020.
+ AWS SCT
+ AWS DMS
+ pgAdmin
+ Ferramentas SQL (por exemplo, SQL Developer ou SQL\$1Plus)

**Limitações**
+ Banco de dados Amazon RDS para Oracle: o requisito mínimo é para as versões 19c da Oracle para as edições Enterprise e Standard Two.
+ Banco de dados Amazon RDS para PostgreSQL: o requisito mínimo é para o PostgreSQL versão 12 e posterior (para versões 9.x e posteriores).

**Versões do produto**
+ Instância do banco de dados Amazon RDS para Oracle versão 12.1.0.2
+ Instância do banco de dados Amazon RDS para PostgreSQL versão 11.5

## Arquitetura
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Instância de banco de dados Amazon RDS para Oracle versão 12.1.0.2.v18.

**Pilha de tecnologias de destino**
+ AWS DMS
+ Instância de banco de dados Amazon RDS para PostgreSQL versão 11.5.

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura da arquitetura de migração de dados entre os bancos de dados Oracle (origem) e PostgreSQL (destino). A arquitetura inclui o seguinte:
+ Uma nuvem privada virtual (VPC)
+ Uma zona de disponibilidade
+ Uma sub-rede privada
+ Um banco de dados Amazon RDS para Oracle
+ Uma instância de replicação do AWS DMS
+ Um banco de dados RDS para PostgreSQL

Para criptografar conexões para bancos de dados de origem e destino, os modos CA e SSL devem estar habilitados no Amazon RDS e no AWS DMS.

![\[Movimento dos dados entre RDS para Oracle e o AWS DMS, bem como entre o AWS DMS e o RDS para PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7098e2a3-b456-4e14-8881-c97145aef483/images/55b50ff7-1e6a-4ff0-9bcd-2fd419d5316a.png)


## Ferramentas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-tools"></a>

**Serviços da AWS**
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ O [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ajuda você a configurar, operar e escalar um banco de dados relacional Oracle na Nuvem AWS.
+ O [Amazon Relational Database Service (Amazon RDS) para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ajuda você a configurar, operar e escalar um banco de dados relacional PostgreSQL na Nuvem AWS.
+ O [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.

**Outros serviços**
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.

## Práticas recomendadas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-best-practices"></a>

O Amazon RDS fornece novos certificados CA como uma prática recomendada de segurança daAWS. Para obter informações sobre os novos certificados e as regiões compatíveis da AWS, consulte Como [usar SSL/TLS para criptografar uma conexão com uma instância de banco de dados ou cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html).

Se sua instância do RDS estiver atualmente no certificado CA `rds-ca-2019` e você quiser fazer o upgrade para `rds-ca-rsa2048-g1`, siga as instruções em [Atualizar seu certificado de CA modificando sua instância de banco de dados ou cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating) ou [Atualizar seu certificado de CA aplicando manutenção](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update).

## Épicos
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-epics"></a>

### Configurar a instância do Amazon RDS para Oracle
<a name="configure-the-amazon-rds-for-oracle-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a instância do banco de dados Oracle. | Faça login em sua conta AWS, abra o Console de Gerenciamento da AWS e navegue até o console do Amazon RDS. No console, escolha **Criar banco de dados** e, em seguida, **Oracle**. | AWS, DBA geral | 
| Configurar grupos de segurança. | Configurar grupos de segurança de entrada e saída. | AWS geral | 
| Crie um grupo de opções. | Crie um grupo de opções na mesma VPC e no mesmo grupo de segurança do banco de dados Amazon RDS para Oracle. Em **Opção**, escolha **SSL**. Em **Porta**, escolha **2484** (para conexões SSL). | AWS geral | 
| Defina as configurações da opção. | Use as seguintes configurações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Modifique a instância do banco de dados RDS para Oracle. | Defina o certificado CA como **rds-ca-rsa2048-g1**. Em **Grupo de opções**, anexe o grupo de opções criado anteriormente. | AWS, DBA geral | 
| Confirme se a instância do banco de dados RDS para Oracle está disponível. | Certifique-se de que a instância do banco de dados Amazon RDS para Oracle esteja em execução e que o esquema do banco de dados esteja acessível.Para se conectar ao banco de dados RDS para Oracle, use o comando `sqlplus` da linha de comando.<pre>$ sqlplus orcl/****@myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com:1521/ORCL<br />SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 18:11:07 2019<br />Copyright (c) 1982, 2016, Oracle.  All rights reserved.<br />Last Successful login time: Mon Dec 16 2019 23:17:31 +05:30<br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production<br />With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options<br />SQL></pre> | DBA | 
| Crie objetos e dados no banco de dados RDS para Oracle. | Crie objetos e insira dados no esquema. | DBA | 

### Configure a instância do Amazon RDS para PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados RDS para PostgreSQL. | Na página **Criar banco de dados** do console do Amazon RDS, escolha **PostgreSQL** para criar uma instância do banco de dados Amazon RDS para PostgreSQL. | AWS, DBA geral | 
| Configurar grupos de segurança. | Configurar grupos de segurança de entrada e saída. | AWS geral | 
| Criar um grupo de parâmetros. | Se você estiver usando a versão 11.x do PostgreSQL, crie um grupo de parâmetros para definir os parâmetros SSL. Na versão 12 do PostgreSQL, o grupo de parâmetros SSL é ativado por padrão. | AWS geral | 
| Edite os parâmetros. | Altere o parâmetro `rds.force_ssl` para `1` (ativado).Por padrão, o parâmetro `ssl` é `1` (ativado). Ao definir o parâmetro `rds.force_ssl` como `1`, você força todas as conexões a se conectarem somente pelo modo SSL. | AWS geral | 
| Modifique a instância de banco de dados do RDS para PostgreSQL. | Defina o certificado CA como **rds-ca-rsa2048-g1**. Anexe o grupo de parâmetros padrão ou o grupo de parâmetros criado anteriormente, dependendo da sua versão do PostgreSQL. | AWS, DBA geral | 
| Confirme se a instância do banco de dados RDS para Oracle está disponível. | Certifique-se de que o banco de dados Amazon RDS para PostgreSQL esteja em execução.O comando `psql` estabelece uma conexão SSL com `sslmode` definido na linha de comando.Uma opção é definir `sslmode=1` no grupo de parâmetros e usar uma conexão `psql` sem incluir o parâmetro `sslmode` no comando.O resultado a seguir mostra que a conexão SSL foi estabelecida.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser"<br />Password for user pguser:<br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre>Uma segunda opção é definir `sslmode=1` no grupo de parâmetros e incluir o parâmetro `sslmode` no comando `psql`.O resultado a seguir mostra que a conexão SSL foi estabelecida.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser sslmode=require"<br />Password for user pguser: <br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre> | DBA | 

### Configurar e executar o AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS SCT. | Instale a versão mais recente do aplicativo AWS SCT. | AWS geral | 
| Configure o AWS SCT com drivers JDBC. | Baixe os drivers Java Database Connectivity (JDBC) para Oracle ([ojdbc8.jar](https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc8.jar)) e PostgreSQL ([postgresql-42.2.5.jar](https://jdbc.postgresql.org/download/postgresql-42.2.19.jar)).Para configurar os drivers no AWS SCT, escolha **Configurações**, **Configurações globais** e **Drivers**. | AWS geral | 
| Crie um projeto AWS SCT. | Crie o projeto e o relatório do AWS SCT usando o Oracle como o mecanismo de banco de dados de origem e o Amazon RDS para PostgreSQL como o mecanismo de banco de dados de destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Valide objetos do banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS, DBA geral | 

### Configurar e executar o AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criação de uma instância de replicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Importar o certificado. | Baixe o [pacote de certificados (PEM)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions) para sua região da AWS.O pacote contém os certificados intermediário e raiz do `rds-ca-2019`. O pacote também contém os certificados CA raiz do `rds-ca-rsa2048-g1`, do `rds-ca-rsa4096-g1` e do `rds-ca-ecc384-g1`. O repositório confiável da aplicação precisa registrar somente o certificado CA raiz. | AWS geral | 
| Crie um endpoint de origem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Para obter mais informações, consulte [Uso de um banco de dados do Oracle como origem do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | AWS geral | 
| Crie um endpoint de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Para obter mais informações, consulte [Uso de um banco de dados do PostgreSQL como destino do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html). | AWS geral | 
| Testar os endpoints. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Criar tarefas de migração. | Para criar uma tarefa de migração para carga total e captura de dados de alteração (CDC) ou para validação de dados, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Planeje a execução da produção. | Confirme o tempo de inatividade com as partes interessadas, como proprietários de aplicativos, para executar o AWS DMS em sistemas de produção. | Líder de migração | 
| Pare a tarefa de migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Valide os dados. | Analise os resultados e os dados da tarefa de migração nos bancos de dados Oracle de origem e PostgreSQL de destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA | 
| Pare a tarefa de migração. | Depois de concluir com êxito a validação dos dados, interrompa a tarefa de migração. | AWS geral | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua as tarefas do AWS DMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Exclua os endpoints do AWS DMS. | Selecione os endpoints de origem e de destino que você criou, escolha **Ações** e, em seguida, **Excluir**. | AWS geral | 
| Exclua a instância de replicação do AWS DMS. | Escolha a instância de replicação, **Ações** e, em seguida, escolha **Excluir**. | AWS geral | 
| Exclua o banco de dados PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | AWS geral | 
| Exclua o banco de dados Oracle. | No console do Amazon RDS, selecione a instância do banco de dados Oracle, escolha **Ações** e, em seguida, **Excluir**. | AWS geral | 

## Solução de problemas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| As conexões de teste de origem e de destino do AWS SCT estão falhando. | Configure as versões do driver JDBC e as regras de entrada do grupo de segurança da VPC para aceitar o tráfego de entrada. | 
| A execução do teste do endpoint de origem Oracle falha. | Verifique as configurações do endpoint e se a instância de replicação está disponível. | 
| A execução de carga total da tarefa do AWS DMS falha. | Verifique se os bancos de dados de origem e de destino têm tipos e tamanhos de dados correspondentes. | 
| A tarefa de migração de validação do AWS DMS retorna erros. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | 

## Recursos relacionados
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-resources"></a>

**Bancos de dados**
+ [Amazon RDS para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)

**Conexões de bancos de dados SSL**
+ [Usando SSL/TLS para criptografar uma conexão com uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
  + [Usar SSL com um RDS para uma instância de banco de dados Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.SSL.html)
  + [Proteger conexões com o RDS para PostgreSQL com SSL/TLS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.Security.html)
  + [Download de pacotes de certificados para regiões da AWS específicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions)
    + [Baixe o certificado-raiz CA-2019](https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem) (expirou em agosto de 2024)
+ [Trabalhar com grupos de opções](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html)
  + [Adição de opções a instâncias de banco de dados Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html)
  + [Oracle Secure Sockets Layer](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.SSL.html)
+ [Trabalhar com grupos de parâmetros](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)
+ [Parâmetro de conexão sslmode do PostgreSQL](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)
+ [Usar SSL do JDBC](https://jdbc.postgresql.org/documentation/ssl/)
+ [Rotação do seu certificado SSL/TLS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html)
  + [Atualizando seu certificado CA modificando sua instância de banco de dados ou cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating)
  + [Atualizando seu certificado CA aplicando a manutenção](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update)

**AWS SCT**
+ [AWS Schema Conversion Tool](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Guia do usuário do AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Usar a interface de usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Usar um banco de dados Oracle como origem do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Guia do usuário do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
  + [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
  + [Usar um banco de dados PostgreSQL como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Usar o SSL com o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.SSL.html)
+ [Migração de aplicativos que executam bancos de dados relacionais para a AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

## Mais informações
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-additional"></a>

Os certificados `rds-ca-2019` da autoridade de certificação do Amazon RDS expiraram em agosto de 2024. Se você usa ou planeja usar SSL ou TLS com verificação de certificado para se conectar às suas instâncias de banco de dados do RDS ou clusters de banco de dados Multi-AZ, considere usar um dos novos certificados de CA: `rds-ca-rsa2048-g1`, `rds-ca-rsa4096-g1` ou `rds-ca-ecc384-g1`.

# Migrar os pacotes de pragma Oracle SERIALLY\$1REUSABLE para o PostgreSQL
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql"></a>

*Vinay Paladi, Amazon Web Services*

## Resumo
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-summary"></a>

Esse padrão fornece uma step-by-step abordagem para migrar pacotes Oracle definidos como pragma SERIALLY\$1REUSABLE para o PostgreSQL na Amazon Web Services (AWS). Essa abordagem mantém a funcionalidade do pragma SERIALLY\$1REUSABLE.

O PostgreSQL não suporta o conceito de pacotes e o pragma SERIALLY\$1REUSABLE. Para obter uma funcionalidade semelhante no PostgreSQL, você pode criar esquemas para pacotes e implantar todos os objetos relacionados (como funções, procedimentos e tipos) dentro dos esquemas. Para aplicar essas variáveis, o exemplo de script de função wrapper fornecido nesse padrão usa um [pacote de extensão do AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html).

Para obter mais informações, consulte o [Pragma SERIALLY\$1REUSABLE](https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems046.htm) na documentação da Oracle.

## Pré-requisitos e limitações
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ A versão mais recente do AWS SCT e os drivers necessários
+ Um banco de dados Amazon Aurora Edição Compatível com PostgreSQL ou Amazon Relational Database Service (Amazon RDS) para banco de dados PostgreSQL 

**Versões do produto**
+ Banco de dados Oracle versão 10g e posterior

## Arquitetura
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados Oracle on-premises

**Pilha de tecnologias de destino**
+ [Compatível com Aurora PostgreSQL ou Amazon RDS para PostgreSQL](https://aws.amazon.com/rds/aurora/details/postgresql-details/)
+ AWS SCT

**Arquitetura de migração**

![\[Dados do banco de dados da Oracle on-premises são migrados para a AWS usando o AWS SCT, os arquivos .sql e a conversão manual para PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/fe3c45d2-6ea4-43b5-adb1-18f068f126b9/images/2dc90708-e300-4251-9d12-de97b6588b72.png)


## Ferramentas
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-tools"></a>

**Serviços da AWS**
+ O [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ [O Amazon Relational Database Service (Amazon RDS) para PostgreSQL ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)ajuda você a configurar, operar e escalar um banco de dados relacional PostgreSQL na Nuvem AWS.

**Outras ferramentas**
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.

## Épicos
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-epics"></a>

### Migrar o pacote Oracle usando o AWS SCT
<a name="migrate-the-oracle-package-by-using-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar o AWS SCT. | Configurar a conectividade do AWS SCT com o banco de dados de origem. Para obter mais informações, consulte [Uso de banco de dados Oracle como origem para o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html). | DBA, Desenvolvedor | 
| Converter o script. | Use o AWS SCT para converter o pacote Oracle selecionando o banco de dados de destino como compatível com o Aurora PostgreSQL. | DBA, Desenvolvedor | 
| Salve os arquivos .sql. | Antes de salvar o arquivo .sql, modifique a opção **Configurações do projeto** no AWS SCT para **Arquivo único por estágio**. O AWS SCT deverá separar o arquivo .sql em vários arquivos .sql com base no tipo de objeto. | DBA, Desenvolvedor | 
| Alterar o código. | Abra a função `init` gerada pelo AWS SCT e altere-a conforme mostrado no exemplo na seção *Informações adicionais*. Ele adicionará uma variável para obter a funcionalidade `pg_serialize = 0`. | DBA, Desenvolvedor | 
| Teste a conversão. | Implante a função `init` no banco de dados compatível com PostgreSQL do Aurora e teste os resultados. | DBA, Desenvolvedor | 

## Recursos relacionados
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-resources"></a>
+ [AWS Schema Conversion Tool](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Características do Amazon Aurora](https://aws.amazon.com/rds/aurora/postgresql-features/)
+ [Pragma SERIALLY\$1REUSABLE](https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/seriallyreusable_pragma.htm#LNPLS01346)

## Mais informações
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-additional"></a>

```
Source Oracle Code:

CREATE OR REPLACE PACKAGE test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
PROCEDURE function_1
 (test_id number);
PROCEDURE function_2
 (test_id number
 );
END;

CREATE OR REPLACE PACKAGE BODY test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
v_char VARCHAR2(20) := 'shared.airline';
v_num number := 123;

PROCEDURE function_1(test_id number)
IS
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
v_char:='test1';
function_2(0);
END;

PROCEDURE function_2(test_id number)
is
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
END;
END test_pkg_var;

Calling the above functions

set serveroutput on


EXEC test_pkg_var.function_1(1);


EXEC test_pkg_var.function_2(1);


Target Postgresql Code:


CREATE SCHEMA test_pkg_var;

CREATE OR REPLACE FUNCTION test_pkg_var.init(pg_serialize IN INTEGER DEFAULT 0)

RETURNS void
AS
$BODY$

DECLARE

BEGIN

if aws_oracle_ext.is_package_initialized( 'test_pkg_var' ) AND pg_serialize = 0

then

return;

end if;

PERFORM aws_oracle_ext.set_package_initialized( 'test_pkg_var' );

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'shared.airline.basecurrency'::CHARACTER

VARYING(100));

PERFORM aws_oracle_ext.set_package_variable('test_pkg_var', 'v_num', 123::integer);

END;

$BODY$

LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_1(pg_serialize int default 1)

RETURNS void
AS

$BODY$
DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'test1'::varchar);

PERFORM test_pkg_var.function_2(0);
END;

$BODY$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_2(IN pg_serialize integer default 1)

RETURNS void

AS

$BODY$

DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

END;
$BODY$
LANGUAGE plpgsql;


Calling the above functions

select test_pkg_var.function_1()

 select test_pkg_var.function_2()
```

# Migre tabelas externas da Oracle para a compatibilidade com o Amazon Aurora PostgreSQL
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible"></a>

*Anuradha Chintha e Rakesh Raghav, Amazon Web Services*

## Resumo
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-summary"></a>

As tabelas externas dão à Oracle a capacidade de consultar dados armazenados fora do banco de dados em arquivos simples. Você pode usar o driver ORACLE\$1LOADER para acessar qualquer dado armazenado em qualquer formato que possa ser carregado pelo utilitário SQL\$1Loader. Você não pode usar a Linguagem de Manipulação de Dados (DML) em tabelas externas, mas pode usar tabelas externas para operações de consulta, junção e classificação.

Amazon Aurora Edição Compatível com PostgreSQL não fornece funcionalidades semelhantes às tabelas externas da Oracle. Em vez disso, você deve usar a modernização para desenvolver uma solução escalável que atenda aos requisitos funcionais e seja econômica.

Esse padrão fornece etapas para migrar diferentes tipos de tabelas externas da Oracle para Aurora edição compatível com PostgreSQL na nuvem da Amazon Web Services (AWS) usando a extensão `aws_s3`.

Recomendamos testar minuciosamente essa solução antes de implementá-la em um ambiente de produção.

## Pré-requisitos e limitações
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ AWS Command Line Interface (AWS CLI)
+ Uma instância de banco de dados Aurora compatível com o PostgreSQL disponível.
+ Um banco de dados da Oracle on-premises com uma tabela externa
+ API pg.Client
+ Arquivos de dados 

**Limitações**
+ Esse padrão não fornece a funcionalidade para atuar como um substituto para tabelas externas da Oracle. No entanto, as etapas e o código de amostra podem ser aprimorados ainda mais para atingir suas metas de modernização do banco de dados.
+ Os arquivos não devem conter o caractere que está sendo passado como delimitador nas funções de exportação e importação `aws_s3`.

**Versões do produto**
+ Para importar do Amazon S3 para o RDS para PostgreSQL, o banco de dados deve estar executando o PostgreSQL versão 10.7 ou superior.

## Arquitetura
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-architecture"></a>

**Pilha de tecnologia de origem**
+ Oracle

**Arquitetura de origem**

![\[Diagrama dos arquivos de dados que vão para um diretório e uma tabela no banco de dados Oracle on-premises.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/3fbc507d-b0fa-4e05-b999-043dc7327ed7.png)


**Pilha de tecnologias de destino**
+ Amazon Aurora compatível com PostgreSQL
+ Amazon CloudWatch
+ AWS Lambda
+ AWS Secrets Manager
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)

**Arquitetura de destino**

O diagrama a seguir mostra uma representação de alto nível da solução.

![\[A descrição está após o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/5421540e-d2e3-4361-89cc-d8415fcb21fd.png)


1. Os arquivos são enviados para o bucket do S3.

1. A função do Lambda é iniciada.

1. A função do Lambda inicia a chamada da função de banco de dados.

1. O Secrets Manager fornece as credenciais para acesso ao banco de dados.

1. Dependendo da função de banco de dados, um alarme SNS é criado.

**Automação e escala**

Qualquer adição ou alteração nas tabelas externas pode ser tratada com a manutenção de metadados.

## Ferramentas
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-tools"></a>
+ [Amazon Aurora compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html): o Amazon Aurora Edição Compatível com PostgreSQL é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com o PostgreSQL e compatível com ACID, que combina a velocidade e a confiabilidade de bancos de dados comerciais de ponta com a economia de bancos de dados de código aberto.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html): o AWS Command Line Interface (AWS CLI) é uma ferramenta unificada para gerenciar os serviços da AWS. Com apenas uma ferramenta para fazer o download e configurar, você poderá controlar vários serviços da AWS pela linha de comando e automatizá-los usando scripts.
+ [Amazon CloudWatch — A](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) Amazon CloudWatch monitora os recursos e a utilização do Amazon S3.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): o AWS Lambda é um serviço de computação com tecnologia sem servidor que oferece suporte à execução de código sem provisionar ou gerenciar servidores, criar uma lógica de escalabilidade de cluster com reconhecimento de workload, manter integrações de eventos ou gerenciar runtimes. Nesse padrão, o Lambda executa a função de banco de dados sempre que um arquivo é carregado no Amazon S3.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html): o AWS Secrets Manager é um serviço para armazenamento e recuperação de credenciais. O Secrets Manager permite a substituição de credenciais codificadas no seu código, incluindo senhas, por uma chamada de API para o Secrets Manager para recuperar o segredo de forma programática.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html): o Amazon Simple Storage Service (Amazon S3) fornece uma camada de armazenamento para receber e armazenar arquivos para consumo e transmissão de e para o cluster do Aurora compatível com PostgreSQL.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3): a extensão `aws_s3` integra o Amazon S3 e o Aurora compatível com PostgreSQL.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html): o Amazon Simple Notiﬁcation Service (Amazon SNS) coordena e gerencia a entrega ou envio de mensagens entre publicadores e clientes. Nesse padrão, o Amazon SNS é usado para enviar notificações.

**Código **

Sempre que um arquivo é colocado no bucket do S3, uma função de banco de dados deve ser criada e chamada a partir do aplicativo de processamento ou da função do Lambda. Para obter detalhes, consulte o código (em anexo).

## Épicos
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-epics"></a>

### Criar um arquivo externo
<a name="create-an-external-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione um arquivo externo ao banco de dados de origem. | Crie um arquivo externo e mova-o para o diretório `oracle`. | DBA | 

### Configurar o destino (Aurora compatível com PostgreSQL)
<a name="configure-the-target-aurora-postgresql-compatible"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um banco de dados Aurora PostgreSQL. | Crie uma instância de banco de dados em seu cluster Amazon Aurora compatível com PostgreSQL. | DBA | 
| Crie um esquema, uma extensão aws\$1s3 e tabelas. | Use o código em `ext_tbl_scripts` na seção *Informações adicionais*. As tabelas incluem tabelas reais, tabelas intermediárias, tabelas de erros e logs e uma metatabela. | DBA, Desenvolvedor | 
| Criar a função de banco de dados. | Para criar a função de banco de dados (DB), use o código na função `load_external_table_latest` da seção *Informações adicionais*. | DBA, Desenvolvedor | 

### Criar e configurar a função do Lambda
<a name="create-and-configure-the-lambda-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma função. | Crie uma função com permissões para acessar o Amazon S3 e Amazon Relational Database Service (Amazon RDS). Essa função será atribuída ao Lambda para executar o padrão. | DBA | 
| Criar a função do Lambda. | Crie uma função do Lambda que leia o nome do arquivo do Amazon S3 (por exemplo `file_key = info.get('object', {}).get('key')`,) e chame a função de banco de dados (por exemplo, `curs.callproc("load_external_tables", [file_key])`) com o nome do arquivo como parâmetro de entrada.Dependendo do resultado da chamada de função, uma notificação do SNS será iniciada (por exemplo, `client.publish(TopicArn='arn:',Message='fileloadsuccess',Subject='fileloadsuccess')`).Com base nas necessidades da sua empresa, você pode criar uma função do Lambda com código extra, se necessário. Para obter mais informações, consulte a [documentação do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html). | DBA | 
| Configurar um gatilho do evento do bucket do S3. | Configure um mecanismo para chamar a função do Lambda para todos os eventos de criação de objetos no bucket do S3. | DBA | 
| Criar um segredo. | Crie um nome secreto para as credenciais do banco de dados usando o Secrets Manager. Passe o segredo na função do Lambda. | DBA | 
| Faça upload dos arquivos de suporte do Lambda. | Faça upload de um arquivo .zip que contenha os pacotes de suporte do Lambda e o script Python anexado para conexão com o Aurora compatível com PostgreSQL. O código Python chama a função que você criou no banco de dados. | DBA | 
| Criar um tópico do SNS. | Crie um tópico do SNS para enviar e-mails sobre o sucesso ou a falha do carregamento de dados. | DBA | 

### Adicionar integração com o Amazon S3
<a name="add-integration-with-amazon-s3"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | No console do Amazon S3, você criará um bucket do S3 com um nome exclusivo que não contenha barras iniciais. Um nome de bucket do S3 é globalmente exclusivo, e o namespace é compartilhado por todas as contas da AWS. | DBA | 
| Criar políticas do IAM. | Para criar políticas do AWS Identity and Access Management (IAM), use o código em `s3bucketpolicy_for_import` na seção *Informações adicionais*. | DBA | 
| Criar funções. | Crie duas funções para o Aurora compatível com PostgreSQL, uma função para Importar e outra para Exportar. Atribua as políticas correspondentes às funções. | DBA | 
| Anexe as funções ao cluster Aurora compatível com o PostgreSQL. | Em **Gerenciar funções**, anexe as funções de importação e exportação ao cluster do Aurora PostgreSQL. | DBA | 
| Crie objetos de suporte para o Aurora compatível com PostgreSQL. | Para os scripts de tabela, use o código em `ext_tbl_scripts` na seção *Informações adicionais*.Para a função personalizada, use o código em `load_external_Table_latest` na seção *Informações adicionais*. | DBA | 

### Processar um arquivo de teste
<a name="process-a-test-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça upload de um arquivo no bucket do S3. | Para fazer upload de um arquivo de teste no bucket do S3, use o console ou o comando a seguir na AWS CLI. <pre>aws s3 cp /Users/Desktop/ukpost/exttbl/"testing files"/aps s3://s3importtest/inputext/aps</pre>Assim que o arquivo é carregado, um evento de bucket inicia a função do Lambda, que executa função do Aurora compatível com PostgreSQL. | DBA | 
| Verifique os dados e os arquivos de log e erro. | A função compatível com o Aurora PostgreSQL carrega os arquivos na tabela principal e cria arquivos `.log` e `.bad` no bucket do S3. | DBA | 
| Monitore a solução. | No CloudWatch console da Amazon, monitore a função Lambda. | DBA | 

## Recursos relacionados
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-resources"></a>
+ [Integração do Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Trabalhar com o Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)
+ [Configurar notificações do Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)

## Mais informações
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-additional"></a>

**ext\$1table\$1scripts**

```
CREATE EXTENSION aws_s3 CASCADE;
CREATE TABLE IF NOT EXISTS meta_EXTERNAL_TABLE
(
    table_name_stg character varying(100) ,
    table_name character varying(100)  ,
    col_list character varying(1000)  ,
    data_type character varying(100)  ,
    col_order numeric,
    start_pos numeric,
    end_pos numeric,
    no_position character varying(100)  ,
    date_mask character varying(100)  ,
    delimeter character(1)  ,
    directory character varying(100)  ,
    file_name character varying(100)  ,
    header_exist character varying(5)
);
CREATE TABLE IF NOT EXISTS ext_tbl_stg
(
    col1 text
);
CREATE TABLE IF NOT EXISTS error_table
(
    error_details text,
    file_name character varying(100),
    processed_time timestamp without time zone
);
CREATE TABLE IF NOT EXISTS log_table
(
    file_name character varying(50) COLLATE pg_catalog."default",
    processed_date timestamp without time zone,
    tot_rec_count numeric,
    proc_rec_count numeric,
    error_rec_count numeric
);
sample insert scripts of meta data:
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'source_filename', 'character varying', 2, 8, 27, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'record_type_identifier', 'character varying', 3, 28, 30, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'fad_code', 'numeric', 4, 31, 36, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'session_sequence_number', 'numeric', 5, 37, 42, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'transaction_sequence_number', 'numeric', 6, 43, 48, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
```

**s3bucketpolicy\$1for import**

```
---Import role policy
--Create an IAM policy to allow, Get,  and list actions on S3 bucket
 {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3import",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest",
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
--Export Role policy
--Create an IAM policy to allow, put,  and list actions on S3 bucket
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3export",
            "Action": [
                "S3:PutObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
```

**Exemplo de função de banco de dados load\$1external\$1tables\$1latest**

```
CREATE OR REPLACE FUNCTION public.load_external_tables(pi_filename text)
 RETURNS character varying
 LANGUAGE plpgsql
AS $function$
/* Loading data from S3 bucket into a APG table */
DECLARE
 v_final_sql TEXT;
 pi_ext_table TEXT;
 r refCURSOR;
 v_sqlerrm text;
 v_chunk numeric;
 i integer;
 v_col_list TEXT;
 v_postion_list CHARACTER VARYING(1000);
 v_len  integer;
 v_delim varchar;
 v_file_name CHARACTER VARYING(1000);
 v_directory CHARACTER VARYING(1000);
 v_table_name_stg CHARACTER VARYING(1000);
 v_sql_col TEXT;
 v_sql TEXT;
 v_sql1 TEXT;
 v_sql2 TEXT;
 v_sql3 TEXT;
 v_cnt integer;
 v_sql_dynamic TEXT;
 v_sql_ins TEXT;
 proc_rec_COUNT integer;
 error_rec_COUNT integer;
 tot_rec_COUNT integer;
 v_rec_val integer;
 rec record;
 v_col_cnt integer;
 kv record;
 v_val text;
 v_header text;
 j integer;
 ERCODE VARCHAR(5);
 v_region text;
 cr CURSOR FOR
 SELECT distinct DELIMETER,
   FILE_NAME,
   DIRECTORY
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
   AND DELIMETER IS NOT NULL;


 cr1 CURSOR FOR
   SELECT   col_list,
   data_type,
   start_pos,
   END_pos,
   concat_ws('',' ',TABLE_NAME_STG) as TABLE_NAME_STG,
   no_position,date_mask
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
 order by col_order asc;
cr2 cursor FOR
SELECT  distinct table_name,table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);


BEGIN
 -- PERFORM utl_file_utility.init();
   v_region := 'us-east-1';
   /* find tab details from file name */


   --DELETE FROM  ERROR_TABLE WHERE file_name= pi_filename;
  -- DELETE FROM  log_table WHERE file_name= pi_filename;


 BEGIN


   SELECT distinct table_name,table_name_stg INTO strict pi_ext_table,v_table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
    raise notice 'error 1,%',sqlerrm;
    pi_ext_table := null;
    v_table_name_stg := null;
      RAISE USING errcode = 'NTFIP' ;
    when others then
        raise notice 'error others,%',sqlerrm;
 END;
 j :=1 ;
  
for rec in  cr2
 LOOP




  pi_ext_table     := rec.table_name;
  v_table_name_stg := rec.table_name_stg;
  v_col_list := null;


 IF pi_ext_table IS NOT NULL
  THEN
    --EXECUTE concat_ws('','truncate table  ' ,pi_ext_table) ;
   EXECUTE concat_ws('','truncate table  ' ,v_table_name_stg) ;




       SELECT distinct DELIMETER INTO STRICT v_delim
       FROM  meta_EXTERNAL_TABLE
       WHERE table_name = pi_ext_table;


       IF v_delim IS NOT NULL THEN
     SELECT distinct DELIMETER,
       FILE_NAME,
       DIRECTORY ,
       concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
     INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table
       AND DELIMETER IS NOT NULL;


     IF    upper(v_delim) = 'CSV'
     THEN
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3 ( ''',
       v_table_name_stg,''','''',
       ''DELIMITER '''','''' CSV HEADER QUOTE ''''"'''''', aws_commons.create_s3_uri ( ''',
       v_directory,''',''',v_file_name,''', ''',v_region,'''))');
       ELSE
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
           v_table_name_stg, ''','''', ''DELIMITER AS ''''^''''',''',','
          aws_commons.create_s3_uri
           ( ''',v_directory, ''',''',
           v_file_name, ''',',
            '''',v_region,''')
          )');
          raise notice 'v_sql , %',v_sql;
       begin
        EXECUTE  v_sql;
       EXCEPTION
         WHEN OTHERS THEN
           raise notice 'error 1';
         RAISE USING errcode = 'S3IMP' ;
       END;


       select count(col_list) INTO v_col_cnt
       from  meta_EXTERNAL_TABLE where table_name = pi_ext_table;






        -- raise notice 'v_sql 2, %',concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');


       execute concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');




       i :=1;
       FOR rec in cr1
       loop
       v_sql1 := concat_ws('',v_sql1,'split_part(col1,''',v_delim,''',', i,')',' as ',rec.col_list,',');
       v_sql2 := concat_ws('',v_sql2,rec.col_list,',');
   --    v_sql3 := concat_ws('',v_sql3,'rec.',rec.col_list,'::',rec.data_type,',');


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 coalesce((trim(split_part(col1,''',v_delim,''',', i,')))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask =  'MM/DD/YYYY hh24:mi:ss'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''01/01/9999 0024:00:00''),''MM/DD/YYYY hh24:mi:ss'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                  coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


       i :=i+1;
       end loop;


         -- raise notice 'v_sql 3, %',v_sql3;


       SELECT trim(trailing ' ' FROM v_sql1) INTO v_sql1;
       SELECT trim(trailing ',' FROM v_sql1) INTO v_sql1;


       SELECT trim(trailing ' ' FROM v_sql2) INTO v_sql2;
       SELECT trim(trailing ',' FROM v_sql2) INTO v_sql2;


       SELECT trim(trailing ' ' FROM v_sql3) INTO v_sql3;
       SELECT trim(trailing ',' FROM v_sql3) INTO v_sql3;


       END IF;
      raise notice 'v_delim , %',v_delim;


     EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)  INTO v_cnt;


    raise notice 'stg cnt , %',v_cnt;


    /* if upper(v_delim) = 'CSV' then
       v_sql_ins := concat_ws('', ' SELECT * from ' ,v_table_name_stg );
     else
      -- v_sql_ins := concat_ws('',' SELECT ',v_sql1,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       END IF;*/


v_chunk := v_cnt/100;




for i in 1..101
loop
     BEGIN
    -- raise notice 'v_sql , %',v_sql;
       -- raise notice 'Chunk number , %',i;
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ' offset ',v_chunk*(i-1), ' limit ',v_chunk,') sub ');


     v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
     -- raise notice 'select statement , %',v_sql_ins;
          -- v_sql := null;
     -- EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins, 'offset ',v_chunk*(i-1), ' limit ',v_chunk );
     --v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins );


     -- raise notice 'insert statement , %',v_sql;


    raise NOTICE 'CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'CHUNK END %',v_chunk;


     EXECUTE v_sql;


  EXCEPTION
       WHEN OTHERS THEN
       -- v_sql_ins := concat_ws('',' SELECT ',v_sql1, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');
         -- raise notice 'Chunk number for cursor , %',i;


    raise NOTICE 'Cursor - CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'Cursor -  CHUNK END %',v_chunk;
         v_sql_ins := concat_ws('',' SELECT ',v_sql3, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');


         v_final_sql := REPLACE (v_sql_ins, ''''::text, ''''''::text);
        -- raise notice 'v_final_sql %',v_final_sql;
         v_sql :=concat_ws('','do $a$ declare  r refcursor;v_sql text; i numeric;v_conname text;  v_typ  ',pi_ext_table,'[]; v_rec  ','record',';
           begin






           open r for execute ''select col1 from ',v_table_name_stg ,'  offset ',v_chunk*(i-1), ' limit ',v_chunk,''';
           loop
           begin
           fetch r into v_rec;
           EXIT WHEN NOT FOUND;




           v_sql := concat_ws('''',''insert into  ',pi_ext_table,' SELECT ',REPLACE (v_sql3, ''''::text, ''''''::text) , '  from ( select '''''',v_rec.col1,'''''' as col1) v'');
            execute v_sql;


           exception
            when others then
          v_sql := ''INSERT INTO  ERROR_TABLE VALUES (concat_ws('''''''',''''Error Name: '''',$$''||SQLERRM||''$$,''''Error State: '''',''''''||SQLSTATE||'''''',''''record : '''',$$''||v_rec.col1||''$$),'''''||pi_filename||''''',now())'';


               execute v_sql;
             continue;
           end ;
           end loop;
           close r;
           exception
           when others then
         raise;
           end ; $a$');
      -- raise notice ' inside excp v_sql %',v_sql;
          execute v_sql;
      --  raise notice 'v_sql %',v_sql;
       END;
  END LOOP;
     ELSE


     SELECT distinct DELIMETER,FILE_NAME,DIRECTORY ,concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
       INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table                  ;
     v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
       v_table_name_stg, ''','''', ''DELIMITER AS ''''#'''' ',v_header,' '',','
      aws_commons.create_s3_uri
       ( ''',v_directory, ''',''',
       v_file_name, ''',',
        '''',v_region,''')
      )');
         EXECUTE  v_sql;


     FOR rec in cr1
     LOOP


      IF rec.start_pos IS NULL AND rec.END_pos IS NULL AND rec.no_position = 'recnum'
      THEN
        v_rec_val := 1;
      ELSE


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1)))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDDHH24MISS'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''9999010100240000''),''YYYYMMDDHH24MISS'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                  coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


      END IF;
      v_col_list := concat_ws('',v_col_list ,v_sql1);
     END LOOP;




           SELECT trim(trailing ' ' FROM v_col_list) INTO v_col_list;
           SELECT trim(trailing ',' FROM v_col_list) INTO v_col_list;


           v_sql_col   :=  concat_ws('',trim(trailing ',' FROM v_col_list) , ' FROM  ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 ');




           v_sql_dynamic := v_sql_col;


           EXECUTE  concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg) INTO v_cnt;




         IF v_rec_val = 1 THEN
             v_sql_ins := concat_ws('',' select row_number() over(order by ctid) as line_number ,' ,v_sql_dynamic) ;


         ELSE
               v_sql_ins := concat_ws('',' SELECT' ,v_sql_dynamic) ;
           END IF;


     BEGIN
       EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
           EXCEPTION
              WHEN OTHERS THEN
          IF v_rec_val = 1 THEN
                  v_final_sql := ' select row_number() over(order by ctid) as line_number ,col1 from ';
                ELSE
                 v_final_sql := ' SELECT col1 from';
               END IF;
       v_sql :=concat_ws('','do $a$ declare  r refcursor;v_rec_val numeric := ',coalesce(v_rec_val,0),';line_number numeric; col1 text; v_typ  ',pi_ext_table,'[]; v_rec  ',pi_ext_table,';
             begin
             open r for execute ''',v_final_sql, ' ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 '' ;
             loop
             begin
             if   v_rec_val = 1 then
             fetch r into line_number,col1;
             else
             fetch r into col1;
             end if;


             EXIT WHEN NOT FOUND;
              if v_rec_val = 1 then
              select line_number,',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              else
                select ',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              end if;


             insert into  ',pi_ext_table,' select v_rec.*;
              exception
              when others then
               INSERT INTO  ERROR_TABLE VALUES (concat_ws('''',''Error Name: '',SQLERRM,''Error State: '',SQLSTATE,''record : '',v_rec),''',pi_filename,''',now());
               continue;
              end ;
               end loop;
             close r;
              exception
              when others then
              raise;
              end ; $a$');
         execute v_sql;


     END;


         END IF;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  ' ,pi_ext_table)   INTO proc_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  error_table WHERE file_name =''',pi_filename,''' and processed_time::date = clock_timestamp()::date')  INTO error_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)   INTO tot_rec_COUNT;


   INSERT INTO  log_table values(pi_filename,now(),tot_rec_COUNT,proc_rec_COUNT, error_rec_COUNT);


   raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT replace(trim(substring(error_details,position(''('' in error_details)+1),'')''),'','','';''),file_name,processed_time FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );


raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  log_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.log', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );




   END IF;
 j := j+1;
 END LOOP;


       RETURN 'OK';
EXCEPTION
    WHEN  OTHERS THEN
  raise notice 'error %',sqlerrm;
   ERCODE=SQLSTATE;
   IF ERCODE = 'NTFIP' THEN
     v_sqlerrm := concat_Ws('',sqlerrm,'No data for the filename');
   ELSIF ERCODE = 'S3IMP' THEN
    v_sqlerrm := concat_Ws('',sqlerrm,'Error While exporting the file from S3');
   ELSE
      v_sqlerrm := sqlerrm;
   END IF;


 select distinct directory into v_directory from  meta_EXTERNAL_TABLE;




 raise notice 'exc v_directory, %',v_directory;


   raise notice 'exc pi_filename, %',pi_filename;


   raise notice 'exc v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );
    RETURN null;
END;
$function$
```

# Migre índices baseados em funções do Oracle para o PostgreSQL
<a name="migrate-function-based-indexes-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi e Navakanth Talluri, Amazon Web Services*

## Resumo
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-summary"></a>

Os índices são uma forma comum de aprimorar o desempenho do banco de dados. Um índice permite que o servidor do banco de dados encontre e recupere linhas específicas com muito mais rapidez do que poderia sem um índice. Mas os índices também adicionam sobrecarga ao sistema de banco de dados como um todo, portanto, devem ser usados com sensatez. Índices baseados em funções, baseados em uma função ou expressão, podem envolver várias colunas e expressões matemáticas. Um índice baseado em funções melhora o desempenho das consultas que usam a expressão de índice. 

Nativamente, o PostgreSQL não suporta a criação de índices baseados em funções usando funções que têm volatilidade definida como estável. No entanto, você pode criar funções semelhantes com volatilidade `IMMUTABLE` e usá-las na criação de índices.

Uma função `IMMUTABLE` não pode modificar o banco de dados e é garantido que retornará os mesmos resultados com os mesmos argumentos para sempre. Essa categoria permite que o otimizador pré-avalie a função quando uma consulta a chama com argumentos constantes. 

Esse padrão ajuda na migração dos índices baseados em funções do Oracle quando usados com funções como `to_char`, `to_date` e `to_number` para o equivalente do PostgreSQL.

## Pré-requisitos e limitações
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta ativa da Amazon Web Services (AWS)
+ Uma instância de banco de dados do Oracle de origem com o serviço de receptor configurado e em execução
+ Familiaridade com bancos de dados PostgreSQL

**Limitações**
+ O limite de tamanho do banco de dados é 64 TB.
+ As funções usadas na criação do índice devem ser IMUTÁVEIS.

**Versões do produto**
+ Todas as edições do banco de dados do Oracle para versões 11g (versões 11.2.0.3.v1 e posteriores) e até 12.2 e 18c
+ PostgreSQL, versões 9.6 e superiores

## Arquitetura
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Oracle no local ou em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou uma instância de banco de dados Amazon RDS for Oracle

**Pilha de tecnologias de destino**
+ Qualquer mecanismo do PostgreSQL

## Ferramentas
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-tools"></a>
+ O **pgAdmin 4** é uma ferramenta de gerenciamento de código aberto para o Postgres. A ferramenta pgAdmin 4 fornece uma interface gráfica para criar, manter e usar objetos de banco de dados.
+ O **Oracle SQL Developer** é um ambiente de desenvolvimento integrado (IDE) para desenvolver e gerenciar o Oracle Database em implantações tradicionais e na nuvem.

## Épicos
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-epics"></a>

### Crie um índice baseado em funções usando uma função padrão
<a name="create-a-function-based-index-using-a-default-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um índice baseado em função em uma coluna usando a função to\$1char. | Use o código a seguir para criar o índice baseado em função.<pre>postgres=# create table funcindex( col1 timestamp without time zone);<br />CREATE TABLE<br />postgres=# insert into funcindex values (now());<br />INSERT 0 1<br />postgres=# select * from funcindex;<br />            col1<br />----------------------------<br /> 2022-08-09 16:00:57.77414<br />(1 rows)<br /> <br />postgres=# create index funcindex_idx on funcindex(to_char(col1,'DD-MM-YYYY HH24:MI:SS'));<br />ERROR:  functions in index expression must be marked IMMUTABLE</pre> O PostgreSQL não permite a criação de um índice baseado em função sem a cláusula `IMMUTABLE`. | DBA, desenvolvedor de aplicativos | 
| Verifique a volatilidade da função. | Para verificar a volatilidade da função, use o código na seção *Informações adicionais*.   | DBA | 

### Crie índices baseados em funções usando uma função de encapsulamento
<a name="create-function-based-indexes-using-a-wrapper-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma função de encapsulamento. | Para criar uma função de encapsulamento, use o código na seção *Informações adicionais*. | Desenvolvedor do PostgreSQL | 
| Crie um índice usando a função de encapsulamento. | Use o código na seção *Informações adicionais* para criar uma função definida pelo usuário com a palavra-chave `IMMUTABLE` no mesmo esquema do aplicativo e faça referência a ela no script de criação de índice.Se uma função definida pelo usuário for criada em um esquema comum (do exemplo anterior), atualize o `search_path` conforme mostrado.<pre>ALTER ROLE <ROLENAME> set search_path=$user, COMMON;</pre> | DBA, desenvolvedor do PostgreSQL | 

### Validar a criação de um índice
<a name="validate-index-creation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a criação de um índice. | Valide se o índice precisa ser criado, com base nos padrões de acesso à consulta. | DBA | 
| Valide se o índice pode ser usado. | Para verificar se o índice baseado em função é captado pelo PostgreSQL Optimizer, execute uma instrução SQL usando explain (explicar) ou explain analyze (explicar e analizar). Use o código na seção *Informações adicionais*. Se possível, reúna também as estatísticas da tabela.Se você analisar o plano de explicabilidade, o otimizador do PostgreSQL selecionou um índice baseado em função em razão da condição do predicado. | DBA | 

## Recursos relacionados
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-resources"></a>
+ [Índices baseados em funções](https://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_indexes.htm#ADFNS00505) (documentação da Oracle)
+ [Índices em expressões](https://www.postgresql.org/docs/9.4/indexes-expressional.html) (documentação do PostgreSQL)
+ [Volatilidade do PostgreSQL](https://www.postgresql.org/docs/current/xfunc-volatility.html) (documentação do PostgreSQL)
+ [PostgreSQL search\$1path](https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH) (documentação do PostgreSQL)
+ [Manual de migração do Oracle Database 19c para o PostgreSQL do Amazon Aurora](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html) 

## Mais informações
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-additional"></a>

**Crie uma função de encapsulamento**

```
CREATE OR REPLACE FUNCTION myschema.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
```

**Crie um índice usando a função encapsulamento**

```
postgres=# create function common.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
CREATE FUNCTION
postgres=# create index funcindex_idx on funcindex(common.to_char(col1,'DD-MM-YYYY HH24:MI:SS'));
CREATE INDEX
```

**Verifique a volatilidade da função**

```
SELECT DISTINCT p.proname as "Name",p.provolatile as "volatility" FROM pg_catalog.pg_proc p
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
 LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang
 WHERE n.nspname OPERATOR(pg_catalog.~) '^(pg_catalog)$' COLLATE pg_catalog.default AND p.proname='to_char'GROUP BY p.proname,p.provolatile
ORDER BY 1;
```

**Valide se o índice pode ser usado**

```
explain analyze <SQL>
 
 
postgres=# explain select col1 from funcindex where common.to_char(col1,'DD-MM-YYYY HH24:MI:SS') = '09-08-2022 16:00:57';
                                                       QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
 Index Scan using funcindex_idx on funcindex  (cost=0.42..8.44 rows=1 width=8)
   Index Cond: ((common.to_char(col1, 'DD-MM-YYYY HH24:MI:SS'::character varying))::text = '09-08-2022 16:00:57'::text)
(2 rows)
```

# Migre funções nativas do Oracle para o PostgreSQL usando extensões
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-summary"></a>

Esse padrão de migração fornece step-by-step orientação para migrar uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) para Oracle para um banco de dados Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL compatível com o Amazon Aurora PostgreSQL, modificando as extensões e o código incorporado nativo do PostgreSQL (). `aws_oracle_ext` `orafce` `psql` Isso economizará tempo de processamento.

O padrão descreve uma estratégia de migração manual offline sem qualquer tempo de inatividade para um banco de dados de origem Oracle de vários terabytes com um grande número de transações.

O processo de migração usa o AWS Schema Conversion Tool (AWS SCT) com as extensões `aws_oracle_ext` e `orafce` para converter um esquema de banco de dados do Amazon RDS para Oracle em um esquema de banco de dados do Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL. Em seguida, o código é alterado manualmente para código nativo incorporado `psql` compatível com PostgreSQL. Isso ocorre porque as chamadas de extensão afetam o processamento do código no servidor de banco de dados PostgreSQL, e nem todo o código da extensão é totalmente compatível ou compatível com o código PostgreSQL.

Esse padrão se concentra principalmente na migração manual de códigos SQL usando a AWS SCT e as extensões `aws_oracle_ext` e `orafce`. Você converte as extensões já usadas em incorporações nativas do PostgreSQL (`psql`). Em seguida, você remove todas as referências às extensões e converte os códigos de acordo.

## Pré-requisitos e limitações
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Sistema operacional (Windows ou Mac) ou EC2 instância da Amazon (em funcionamento) 
+ Orafce

**Limitações**

Nem todas as funções que usam extensões `aws_oracle_ext` ou `orafce` do Oracle podem ser convertidas em funções nativas do PostgreSQL. Pode ser necessário retrabalho manual para compilá-lo com as bibliotecas do PostgreSQL.

Uma desvantagem de usar extensões da AWS SCT é seu baixo desempenho na execução e na obtenção dos resultados. O custo pode ser compreendido a partir de um [plano EXPLAIN simples](https://www.postgresql.org/docs/current/sql-explain.html) do PostgreSQL, que consiste em um plano de execução de uma instrução, na migração da função `SYSDATE` da Oracle para a função `NOW()` do PostgreSQL entre todos os três códigos (`aws_oracle_ext`, `orafce` e `psql` padrão), conforme explicado na seção *Verificação de comparação de performance* do documento anexo.

**Versões do produto**
+ **Origem: ** banco de dados Amazon RDS para Oracle 10.2 e posterior (para 10.x), 11g (11.2.0.3.v1 e posterior) e até 12.2, 18c e 19c (e posterior) para Enterprise Edition, Standard Edition, Standard Edition 1 e Standard Edition 2
+ **Destino **: Amazon RDS para PostgreSQL ou banco de dados Aurora compatível com PostgreSQL 9.4 e posterior (para 9.x), 10.x, 11.x, 12.x, 13.x e 14.x (e versões posteriores)
+ **AWS SCT**: versão mais recente (esse padrão foi testado com 1.0.632)
+ **Oracle**: versão mais recente (esse padrão foi testado com 3.9.0)

## Arquitetura
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-architecture"></a>

**Pilha de tecnologia de origem**
+ Uma instância do banco de dados Amazon RDS para Oracle com a versão 12.1.0.2.v18

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados do Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL com a versão 11.5

**Arquitetura de migração de banco de dados**

O diagrama a seguir representa a arquitetura de migração de banco de dados entre os bancos de dados Oracle de origem e PostgreSQL de destino. A arquitetura envolve a Nuvem AWS, uma nuvem privada virtual (VPC), zonas de disponibilidade, uma sub-rede privada, um banco de dados Amazon RDS para Oracle, AWS SCT, um banco de dados Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL, extensões para Oracle (`aws_oracle_ext` e `orafce`) e arquivos de linguagem de consulta estruturada (SQL).

![\[O processo é explicado na lista a seguir.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Inicie a instância de banco de dados Amazon RDS para Oracle (banco de dados de origem).

1. Use a AWS SCT com os pacotes de extensão `aws_oracle_ext` e `orafce` para converter o código-fonte do Oracle para o PostresQL.

1. A conversão produz arquivos .sql migrados compatíveis com o PostgreSQL.

1. Converta manualmente os códigos de extensão Oracle não convertidos em códigos PostgreSQL (`psql`).

1. A conversão manual produz arquivos .sql convertidos compatíveis com o PostgreSQL.

1. Execute esses arquivos .sql na instância do banco de dados Amazon RDS para PostgreSQL (banco de dados de destino).

## Ferramentas
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Ferramentas**

*Serviços da AWS*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html): a AWS Schema Conversion Tool (AWS SCT) converte seu esquema de banco de dados existente de um mecanismo de banco de dados para outro. Você pode converter o esquema Online Transactional Processing (OLTP) relacional ou o esquema de data warehouse. Seu esquema convertido é adequado para uma instância de banco de dados Amazon RDS para MySQL, um cluster de banco de dados Amazon Aurora, uma instância de banco de dados Amazon RDS para PostgreSQL ou um cluster do Amazon Redshift. O esquema convertido também pode ser usado com um banco de dados em uma EC2 instância da Amazon ou armazenado como dados em um bucket do Amazon S3.

  A AWS SCT oferece uma interface de usuário baseada em projeto que permite converter automaticamente o esquema do banco de dados de origem em um formato que seja compatível com a instância do Amazon RDS de destino. 

  Você pode usar a AWS SCT para fazer a migração de um banco de dados de origem Oracle para qualquer um dos destinos listados anteriormente. Usando a AWS SCT, você pode exportar as definições de objetos do banco de dados de origem, como esquema, visualizações, procedimentos armazenados e funções. 

  Você pode usar a AWS SCT para convertes dados do Oracle para Amazon RDS para PostgreSQL ou Amazon Aurora Edição Compatível com PostgreSQL. 

  Nesse padrão, você usa a AWS SCT para converter e migrar o código Oracle para o PostgreSQL usando as extensões `aws_oracle_ext` e `orafce` migrando manualmente os códigos de extensão para o código `psql` padrão ou nativo incorporado.
+ O pacote de extensões da [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) é um módulo complementar que emula funções presentes no banco de dados de origem e necessárias ao converter objetos para o banco de dados de destino. Antes de poder instalar o pacote de extensões da AWS SCT, você precisa converter seu esquema de banco de dados.

  Quando você converte seu banco de dados ou esquema de data warehouse, a AWS SCT adiciona mais um esquema ao seu banco de dados de destino. Esse esquema implementa as funções de sistema SQL do banco de dados de origem necessárias para gravar o esquema convertido no banco de dados de destino. Esse esquema adicional é chamado de esquema do pacote de extensões.

  O esquema do pacote de extensões para bancos de dados OLTP é nomeado de acordo com o banco de dados de origem. Para bancos de dados Oracle, o esquema do pacote de extensão é `AWS_ORACLE_EXT`.

*Outras ferramentas*
+ [Orafce](https://github.com/orafce/orafce): o Orafce é um módulo que implementa funções, tipos de dados e pacotes compatíveis com Oracle. É uma ferramenta de código aberto com uma licença Berkeley Source Distribution (BSD) para que qualquer pessoa possa usá-la. O módulo `orafce` é útil para migrar do Oracle para o PostgreSQL porque tem muitas funções Oracle implementadas no PostgreSQL.

 

**Código **

Para obter uma lista de todos os códigos comumente usados e migrados do Oracle para o PostgreSQL para evitar o uso do código de extensão da AWS SCT, consulte o documento em anexo.

## Épicos
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-epics"></a>

### Configurar o banco de dados de origem do Amazon RDS para Oracle
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a instância do banco de dados Oracle. | Crie uma instância de banco de dados do Amazon RDS para Oracle ou Aurora compatível com PostgreSQL a partir do console do Amazon RDS. | AWS geral, DBA | 
| Configurar os grupos de segurança.  | Configurar grupos de segurança de entrada e saída. | AWS geral | 
| Criar o banco de dados. | Crie o banco de dados Oracle com os usuários e esquemas necessários. | AWS geral, DBA | 
| Criar os objetos. | Crie objetos e insira dados no esquema. | DBA | 

### Configurar o banco de dados de destino do Amazon RDS para PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a instância do banco de dados para PostgreSQL. | Crie uma instância do banco de dados Amazon RDS para PostgreSQL ou Amazon Aurora PostgreSQL a partir do console do Amazon RDS. | AWS geral, DBA | 
| Configurar os grupos de segurança.  | Configurar grupos de segurança de entrada e saída. | AWS geral | 
| Criar o banco de dados. | Crie o banco de dados PostgreSQL com os usuários e esquemas necessários. | AWS geral, DBA | 
| Validar as extensões. | Verifique se `aws_oracle_ext` e `orafce` estão instalados e configurados corretamente no banco de dados PostgreSQL. | DBA | 
| Verifique se o banco de dados PostgreSQL está disponível. | Certifique-se de que o banco de dados PostgreSQL esteja ativo e funcionando. | DBA | 

### Migre o esquema Oracle para o PostgreSQL usando a AWS SCT e as extensões
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS SCT. | Instalar a versão mais recente da AWS SCT. | DBA | 
| Configure a AWS SCT. | Configure o AWS SCT com drivers Java Database Connectivity (JDBC) para Oracle (`ojdbc8.jar`) e PostgreSQL (`postgresql-42.2.5.jar`). | DBA | 
| Habilite o pacote de extensão ou modelo da AWS SCT. | Em **Configurações do projeto** da AWS SCT, habilite a implementação de funções incorporadas com as extensões `aws_oracle_ext` e `orafce` para o esquema do banco de dados Oracle. | DBA | 
| Converta o esquema.  | Na AWS SCT, escolha **Converter esquema** para converter o esquema do Oracle para o PostgreSQL e gerar os arquivos .sql. | DBA | 

### Converta o código de extensão da AWS SCT em código psql
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Converta manualmente o código. | Converta manualmente cada linha de código compatível com a extensão em código incorporado padrão `psql`, conforme detalhado no documento anexo. Por exemplo, altere `AWS_ORACLE_EXT.SYSDATE()` ou `ORACLE.SYSDATE()` para `NOW()`. | DBA | 
| Valide o código | (Opcional) Valide cada linha de código executando-o temporariamente no banco de dados PostgreSQL. | DBA | 
| Crie objetos no banco de dados PostgreSQL. | Para criar objetos no banco de dados PostgreSQL, execute os arquivos .sql que foram gerados pela AWS SCT e modificados nas duas etapas anteriores. | DBA | 

## Recursos relacionados
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Banco de dados
  + [Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Trabalho com Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [Plano PostgreSQL EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Visão geral do AWS Schema Conversion Tool](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [Guia do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Usar a interface de usuário da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Usar um banco de dados Oracle como origem para AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Extensões para AWS SCT
  + [Usar o pacote de extensões da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Funcionalidade Oracle (en)](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [orafce do PGXN](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Mais informações
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Para obter mais informações, siga os comandos detalhados, com sintaxe e exemplos, para converter manualmente o código no documento anexo.

## Anexos
<a name="attachments-158847bb-27ef-4915-a9ca-7d87073792c1"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)

# Migre um banco de dados Db2 da Amazon para o EC2 Aurora MySQL compatível usando o AWS DMS
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-summary"></a>

Depois de migrar seu banco de dados [IBM Db2 for LUW para](https://www.ibm.com/docs/en/db2/11.5?topic=federation) o Amazon [Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/), considere rearquitetar o banco de dados migrando para um banco de dados nativo em nuvem da Amazon Web Services (AWS). Esse padrão abrange a migração de um banco de dados IBM [Db2](https://www.ibm.com/docs/en/db2/11.5) for LUW executado em uma EC2 instância da Amazon para um banco de dados [Amazon](https://docs.aws.amazon.com/ec2/) Aurora MySQL compatível com o [Amazon Aurora MySQL Edition na AWS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html).  

O padrão descreve uma estratégia de migração on-line com tempo de inatividade mínimo para um banco de dados de origem Db2 de vários terabytes com um grande número de transações. 

Esse padrão usa o [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) para converter o esquema do banco de dados Db2 em um esquema do Aurora MySQL-Compatible. Em seguida, o padrão usa o [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) para migrar dados do banco de dados Db2 para o banco de dados Aurora MySQL-Compatible. Serão necessárias conversões manuais para o código que não foi convertido pelo AWS SCT.

## Pré-requisitos e limitações
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa com uma nuvem privada virtual (VPC)
+ AWS SCT
+ AWS DMS

**Versões do produto**
+ Versão mais recente do AWS SCT
+ Db2 para Linux versão 11.1.4.4 e posterior

## Arquitetura
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ DB2/Linux x86-64 bits montado em uma instância EC2  

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados do Amazon Aurora Edição Compatível com MySQL

**Arquitetura de origem e destino**

O diagrama a seguir mostra a arquitetura de migração de dados entre os bancos de dados Db2 de origem e Aurora MySQL-Compatible de destino. A arquitetura na Nuvem AWS inclui uma nuvem privada virtual (VPC), uma zona de disponibilidade, uma sub-rede pública para a instância do Db2 e a instância de replicação do AWS DMS, além de uma sub-rede privada para o banco de dados Aurora MySQL-Compatible.

![\[Arquitetura da migração de dados entre o Db2 de origem e os bancos de dados do Aurora compatíveis com MySQL de destino.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5abfccc4-148c-4794-8d80-e3c122679125/images/f30664f8-2d6a-4448-8d5c-cff3988a52c7.png)


## Ferramentas
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) é um mecanismo de banco de dados relacional totalmente gerenciado criado para a nuvem e compatível com o MySQL e o PostgreSQL.
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ [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.
+ O [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. O AWS SCT é compatível como uma origem IBM Db2 para Linux versões 9.1, 9.5, 9.7, 10.1, 10.5, 11,1 e 11.5.

## Práticas recomendadas
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-best-practices"></a>

Para obter informações, consulte [Melhores práticas do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html).

## Épicos
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-epics"></a>

### Configurar o banco de dados IBM Db2 de origem
<a name="configure-the-source-ibm-db2-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados IBM Db2 na Amazon EC2. | Você pode criar um banco de dados IBM Db2 em uma EC2 instância usando uma Amazon Machine Image (AMI) do AWS Marketplace ou instalando o software Db2 em uma EC2 instância.Inicie uma EC2 instância selecionando uma AMI para IBM Db2 (por exemplo, [IBM Db2 v11.5.7 RHEL 7.9](https://aws.amazon.com/marketplace/pp/prodview-aclrjj4hq2ols?sr=0-1&ref_=beagle&applicationId=AWS-EC2-Console)), que é semelhante a um banco de dados local. | AWS, DBA geral | 
| Configurar grupos de segurança. | Configure as regras de entrada do grupo de segurança da VPC para SSH (Secure Shell) e TCP com as portas 22 e 50000, respectivamente. | AWS geral | 
| Criar uma instância de banco de dados. | Crie uma nova instância (usuário) e banco de dados (esquema) ou use a instância `db2inst1` padrão e o banco de dados de amostra.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Verifique se a instância de banco de dados Db2 está disponível. | Para confirmar se a instância do banco de dados Db2 está em execução, use o comando `Db2pd -`. | DBA | 

### Configurar o banco de dados Aurora MySQL-Compatible de destino
<a name="configure-the-target-aurora-mysql-compatible-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados Aurora MySQL-Compatible. | Crie um banco de dados Amazon Aurora com compatibilidade com MySQL a partir do serviço AWS RDS[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS, DBA geral | 
| Configurar grupos de segurança. | Configure as regras de entrada do grupo de segurança da VPC para conexões SSH e TCP. | AWS geral | 
| Confirme se o banco de dados Aurora está disponível. | Para garantir que o banco de dados Aurora MySQL-Compatible esteja em execução, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 

### Configurar e executar o AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS SCT. | Baixe e instale a versão mais recente do [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) (a versão mais recente atual 1.0.628). | AWS geral | 
| Configure a AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS geral | 
| Crie um projeto AWS SCT. | Crie um projeto e um relatório do AWS SCT que use o Db2 para LUW como o mecanismo de banco de dados de origem e o Aurora MySQL-Compatible para o mecanismo de banco de dados de destino.Para identificar os privilégios necessários para se conectar a um banco de dados Db2 para LUW, consulte [Uso do Db2 para LUW como origem para o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html). | AWS geral | 
| Valide os objetos. | Escolha **Carregar esquema** e valide os objetos. Atualize qualquer objeto incorreto no banco de dados de destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS, DBA geral | 

### Configurar e executar o AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criação de uma instância de replicação. | Faça login no Console de Gerenciamento da AWS, navegue até o serviço do AWS DMS e crie uma instância de replicação com configurações válidas para o grupo de segurança da VPC que você configurou para os bancos de dados de origem e destino. | AWS geral | 
| Criar endpoints. | Crie o endpoint de origem para o banco de dados Db2 e crie o endpoint de destino para o banco de dados Aurora MySQL-Compatible:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS geral | 
| Criar tarefas de migração. | Crie uma única tarefa de migração ou várias tarefas de migração para carga total e CDC ou validação de dados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS geral | 
| Planeje a execução da produção. | Confirme o tempo de inatividade com as partes interessadas, como proprietários de aplicativos, para executar o AWS DMS em sistemas de produção. | Líder de migração | 
| Execute as tarefas de migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | AWS geral | 
| Valide os dados. | Analise os resultados e os dados da tarefa de migração nos bancos de dados Db2 de origem e MySQL de destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Pare as tarefas de migração. | Depois de concluir com êxito a validação dos dados, interrompa as tarefas de validação de migração. | AWS geral | 

## Solução de problemas
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| As conexões de teste de origem e de destino do AWS SCT estão falhando. | Configure as versões do driver JDBC e as regras de entrada do grupo de segurança da VPC para aceitar o tráfego de entrada. | 
| A execução do teste do endpoint de origem Db2 falha. | Defina a configuração de conexão extra `CurrentLSN=<scan>;`. | 
| A AWSDMS tarefa falha ao se conectar à origem do Db2 e o erro a seguir é retornado.`database is recoverable if either or both of the database configuration parameters LOGARCHMETH1 and LOGARCHMETH2 are set to ON` | Para evitar o erro, execute os comandos a seguir:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | 

## Recursos relacionados
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-resources"></a>

**Amazon EC2**
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Guias EC2 do usuário da Amazon](https://docs.aws.amazon.com/ec2/)

**Bancos de dados**
+ [Banco de dados IBM Db2](https://www.ibm.com/products/db2-database)
+ [Amazon Aurora](https://aws.amazon.com/rds/aurora/)
+ [Como trabalhar com o Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)

**AWS SCT**
+ [AWS DMS Schema Conversion](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Guia do usuário do AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Usar a interface de usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Usar o IBM Db2 LUW como origem para o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Guia do usuário do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Origens para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Destinos para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [O AWS Database Migration Service e o AWS Schema Conversion Tool agora oferecem suporte ao IBM Db2 LUW como origem](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-aws-schema-conversion-tool-now-support-ibm-db2-as-a-source/) (publicação do blog)
+ [Migração de aplicativos que executam bancos de dados relacionais para a AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

# Migre um banco de dados Microsoft SQL Server da Amazon EC2 para o Amazon DocumentDB usando o AWS DMS
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms"></a>

*Umamaheswara Nooka, Amazon Web Services*

## Resumo
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-summary"></a>

Esse padrão descreve como usar o AWS Database Migration Service (AWS DMS) para migrar um banco de dados Microsoft SQL Server hospedado em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para um banco de dados Amazon DocumentDB (com compatibilidade com o MongoDB).

A tarefa de replicação do AWS DMS lê a estrutura da tabela do banco de dados SQL Server, cria a coleção correspondente no Amazon DocumentDB e executa uma migração de carga completa.

Você também pode usar esse padrão para migrar uma instância de banco de dados SQL Server on-premises ou Amazon Relational Database Service (Amazon RDS) para SQL Server para o Amazon DocumentDB. Para obter mais informações, consulte o guia [Migração de bancos de dados do Microsoft SQL Server para a nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/welcome.html) no site Recomendações da AWS.

## Pré-requisitos e limitações
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados SQL Server existente em uma EC2 instância.
+ Função fixa do banco de dados (**db\$1owner**) atribuída ao AWS DMS no banco de dados do SQL Server. Para obter mais informações, consulte [Funções em nível de banco de dados](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15) na documentação do SQL Server. 
+ Familiaridade com o uso dos utilitários `mongodump`, `mongorestore`, `mongoexport` e `mongoimport` para [mover dados para dentro e para fora de um cluster do Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html).
+ [Microsoft SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15), instalado e configurado.

**Limitações**
+ O limite de tamanho do cluster no Amazon DocumentDB é 64 TB. Para obter mais informações, consulte [Limites de cluster](https://docs.aws.amazon.com/documentdb/latest/developerguide/limits.html#limits-cluster) na documentação do Amazon DocumentDB. 
+ O AWS DMS não oferece suporte à mesclagem de várias tabelas de origem em uma única coleção do Amazon DocumentDB.
+ Se o AWS DMS processar qualquer alteração de uma tabela de origem sem uma chave primária, ele ignorará as colunas de objetos grandes (LOB) na tabela de origem.

## Arquitetura
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Amazon EC2

**Pilha de tecnologias de destino**
+ Amazon DocumentDB

**Arquitetura de destino**

![\[Nuvem AWS architecture showing VPC with private DB subnet and components for SQL Server and DocumentDB.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f186220b-5a94-48b2-840d-f04aedf51651/images/00962b85-8b71-49df-b84a-3adcbc9ad3a3.png)


## Ferramentas
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html): o AWS Database Migration Service (AWS DMS) ajuda você a migrar bancos de dados com facilidade e segurança.
+ [Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html): o Amazon DocumentDB (compatível com MongoDB) é um serviço de banco de dados rápido, confiável e totalmente gerenciado.
+ [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) — A Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável na Nuvem AWS.
+ [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15): o SQL Server é um sistema de gerenciamento de banco de dados relacional.
+ [SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15): o SSMS é uma ferramenta para gerenciar o SQL Server, incluindo acesso, configuração e administração de componentes do SQL Server.

## Épicos
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-epics"></a>

### Criar e configurar uma VPC
<a name="create-and-configure-a-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma VPC. | Faça login no Console de Gerenciamento da AWS e abra o console do Amazon VPC. Crie uma nuvem privada virtual (VPC) com um intervalo de blocos IPv4 CIDR. | Administrador de sistema | 
| Crie grupos de segurança e rede ACLs. | No console da Amazon VPC, crie grupos de segurança e listas de controle de acesso à rede (rede ACLs) para sua VPC, de acordo com seus requisitos. Você também pode usar as configurações padrão para essas configurações. Para obter mais informações sobre esta e outras histórias, consulte a seção “Recursos relacionados”. | Administrador de sistema | 

### Criar e configurar o cluster do Amazon DocumentDB
<a name="create-and-configure-the-amazon-documentdb-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Crie um cluster do Amazon DocumentDB. | Abra o console do Amazon DocumentDB e selecione “Clusters”. Escolha “Criar” e crie um cluster do Amazon DocumentDB com uma instância. Importante: certifique-se de configurar esse cluster com os grupos de segurança da sua VPC. | Administrador de sistema  | 
|  Instale o shell do mongo. | O shell do Mongo é um utilitário de linha de comando que você usa para se conectar e consultar seu cluster do Amazon DocumentDB. Para instalá-lo, execute o comando “/etc/yum.repos.d/mongodb-org-3.6.repo” para criar o arquivo do repositório. Execute o comando “sudo yum install -y mongodb-org-shell” para instalar o shell mongo. Para criptografar dados em trânsito, faça download da chave pública do Amazon DocumentDB e conecte-se à sua instância do Amazon DocumentDB. Para obter mais informações sobre estas etapas, consulte a seção “Recursos relacionados”. | Administrador de sistema  | 
| Crie um banco de dados no cluster do Amazon DocumentDB.  | Execute o comando “use” com o nome do seu banco de dados para criar um banco de dados em seu cluster Amazon DocumentDB. | Administrador de sistema  | 

### Criar e configurar a instância de replicação do AWS DMS
<a name="create-and-configure-the-aws-dms-replication-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de replicação do AWS DMS. | Abra o console do AWS DMS e selecione “Criar instância de replicação”. Insira um nome e uma descrição para sua tarefa de replicação. Escolha a classe da instância, a versão do mecanismo, o armazenamento, a VPC, o Multi-AZ e torne-a acessível ao público. Selecione a guia “Avançado” para definir as configurações de rede e de criptografia. Especifique as configurações de manutenção e, em seguida, selecione “Criar instância de replicação”. | Administrador de sistema  | 
| Configurar o banco de dados do SQL Server.  | Faça login no Microsoft SQL Server e adicione uma regra de entrada para comunicação entre o endpoint de origem e a instância de replicação do AWS DMS. Use o endereço IP privado da instância de replicação como origem. Importante: a instância de replicação e o endpoint de destino devem estar na mesma VPC. Use uma fonte alternativa no grupo de segurança se elas VPCs forem diferentes para as instâncias de origem e replicação. | Administrador de sistema  | 

### Crie e teste os endpoints de origem e destino no AWS DMS
<a name="create-and-test-the-source-and-target-endpoints-in-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie endpoints para os bancos de dados de origem e destino. | Abra o console do AWS DMS e selecione “Conectar os endpoints do banco de dados de origem e de destino”. Especifique as informações de conexão para os bancos de dados de origem e de destino. Se necessário, escolha a guia “Avançado” para configurar os valores de “Atributos de conexão adicionais”. Baixe e use o pacote de certificados na configuração do seu endpoint. | Administrador de sistema  | 
| Teste as conexões do endpoint.  | Selecione “Executar teste” para realizar o teste da conexão. Solucione qualquer mensagem de erro verificando as configurações do grupo de segurança e as conexões com a instância de replicação do AWS DMS das instâncias de banco de dados de origem e de destino. | Administrador de sistema  | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a tarefa de migração do AWS DMS.  | No console do AWS DMS, selecione “Tarefas” e, depois, “Criar tarefa”. Especifique as opções de tarefas, incluindo os nomes dos endpoints de origem e destino e os nomes das instâncias de replicação. Em “Tipo de migração”, escolha “Migrar dados existentes” e “Replicar somente alterações de dados”. Escolha “Iniciar tarefa”. | Administrador de sistema  | 
| Execute a tarefa de migração do AWS DMS. | Em “Configurações de tarefas”, especifique as configurações para o modo de preparação da tabela, como “Não executar nenhuma ação”, “Abandonar tabelas no destino”, “Truncar” e “Incluir colunas LOB na replicação”. Configure o tamanho máximo de LOB permitido pelo AWS DMS e selecione “Habilitar registro em log”. Mantenha as “Configurações avançadas” nos valores padrão e escolha “Criar tarefa”. | Administrador de sistema  | 
| Monitorar a migração. | No console do AWS DMS, escolha “Tarefas” e selecione a tarefa de migração. Escolha “Monitoramento de tarefas” para monitorar a execução da sua tarefa. A tarefa para por conta própria quando a migração de carga total é concluída e as alterações em cache são aplicadas. | Administrador de sistema  | 

### Testar e verificar a migração
<a name="test-and-verify-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Conecte-se ao cluster Amazon DocumentDB usando o shell do mongo. | Abra o console do Amazon DocumentDB e selecione o seu cluster em “Clusters”. Na guia “Conectividade e segurança”, selecione “Conectar-se a este cluster com o shell do Mongo”. | Administrador de sistema  | 
| Verifique os resultados da sua migração. | Execute o comando “use” com o nome do seu banco de dados e, em seguida, execute o comando “show collections”. Execute o comando “db. .count();” com o nome do seu banco de dados. Se os resultados corresponderem ao seu banco de dados de origem, sua migração foi bem-sucedida. | Administrador de sistema  | 

## Recursos relacionados
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-resources"></a>

**Criar e configurar uma VPC **
+ [Crie um grupo de segurança para a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ [Criar uma ACL de rede](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

** **

**Criar e configurar o cluster do Amazon DocumentDB**
+ [Criar um cluster do Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-cluster)
+ [Instale o shell do mongo para o Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-mongoshell)
+ [Conectar ao cluster do Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-connectcluster)

** **

**Criar e configurar a instância de replicação do AWS DMS **
+ [Use instâncias de replicação públicas e privadas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate)

** **

**Crie e teste os endpoints de origem e destino no AWS DMS**
+ [Use o Amazon DocumentDB como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/target.docdb.html)
+ [Use um banco de dados SQL Server como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Use endpoints do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)

** **

**Migrar dados **
+ [Migre para o Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-migration.html)

** **

**Outros recursos**
+ [Limitações de uso do SQL Server como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.Limitations) 
+ [Como usar o Amazon DocumentDB para criar e gerenciar aplicativos em grande escala](https://aws.amazon.com/blogs/database/how-to-use-amazon-documentdb-with-mongodb-compatibility-to-build-and-manage-applications-at-scale/)

# Migre um banco de dados ThoughtSpot Falcon local para o Amazon Redshift
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift"></a>

*Battulga Purevragchaa e Antony Prasad Thevaraj, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-summary"></a>

Os data warehouses on-premises exigem tempo e recursos administrativos significativos, especialmente para grandes conjuntos de dados. O custo financeiro de construir, manter e cultivar esses armazéns também é muito alto. Para ajudar a gerenciar custos, manter baixa a complexidade de extração, transformação e carregamento (ETL) e oferecer desempenho à medida que seus dados crescem, você deve escolher constantemente quais dados carregar e quais arquivar.

Ao migrar seus [bancos de dados ThoughtSpot Falcon](https://docs.thoughtspot.com/software/latest/data-caching) locais para a nuvem da Amazon Web Services (AWS), você pode acessar data lakes e data warehouses baseados na nuvem que aumentam a agilidade, a segurança e a confiabilidade dos aplicativos de sua empresa, além de reduzir os custos gerais de infraestrutura. O Amazon Redshift ajuda a reduzir significativamente o custo e a sobrecarga operacional de um data warehouse. Você também pode usar o Amazon Redshift Spectrum para analisar grandes quantidades de dados em seu formato nativo sem carregar dados.

Esse padrão descreve as etapas e o processo para migrar um banco de dados ThoughtSpot Falcon de um datacenter local para um banco de dados do Amazon Redshift na nuvem da AWS.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados ThoughtSpot Falcon hospedado em um data center local

**Versões do produto**
+ ThoughtSpot versão 7.0.1 

## Arquitetura
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-architecture"></a>

![\[Migração de um banco de dados ThoughtSpot Falcon de um datacenter local para o Amazon Redshift.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/b0ca29f4-b269-4b57-b386-738693a6b334/images/2b483990-1f30-439c-ba13-dc0cb0650360.png)


 

O diagrama mostra o seguinte fluxo de trabalho:

1. Os dados são hospedados em um banco de dados relacional on-premises.

1. O AWS Schema Conversion Tool (AWS SCT) converte a linguagem de definição de dados (DDL) compatível com o Amazon Redshift.

1. Depois de criar as tabelas, você pode migrar dados usando o AWS Database Migration Service (AWS DMS).

1. Os dados são carregados no Amazon Redshift.

1. Os dados são armazenados no Amazon Simple Storage Service (Amazon S3) se você usa Redshift Spectrum ou já hospeda dados no Amazon S3.

## Ferramentas
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html): o AWS Data Migration Service (AWS DMS) ajuda você a migrar bancos de dados para a AWS de forma rápida e segura.
+ O [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html): o Amazon Redshift é um serviço de data warehouse rápido, totalmente gerenciado e em escala de petabytes que torna simples e econômica a análise eficiente de todos os seus dados usando as ferramentas de business intelligence existentes.
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html): o AWS Schema Conversion Tool (AWS SCT) converte seu esquema de banco de dados existente de um mecanismo de banco de dados para outro.

## Épicos
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique a configuração apropriada do Amazon Redshift. | Identifique a configuração apropriada do cluster do Amazon Redshift com base em seus requisitos e volume de dados. Para obter mais informações, consulte [Clusters do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) na documentação do Amazon Redshift. | DBA | 
| Pesquisar o Amazon Redshift para avaliar se ele atende aos seus requisitos. | Use o [Amazon Redshift FAQs](https://aws.amazon.com/redshift/faqs/) para entender e avaliar se o Amazon Redshift atende aos seus requisitos. | DBA | 

### Preparar o cluster de destino do Amazon Redshift
<a name="prepare-the-target-amazon-redshift-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um cluster do Amazon Redshift. | Faça login no Console de gerenciamento da AWS, abra o console do Amazon Redshift e crie um cluster do Amazon Redshift em uma nuvem privada virtual (VPC). Para obter mais informações, consulte [Criar um cluster em uma VPC](https://docs.aws.amazon.com/redshift/latest/mgmt/getting-started-cluster-in-vpc.html) na documentação do Amazon Redshift. | DBA | 
| Conduzir uma PoC para o design do seu banco de dados do Amazon Redshift. | Siga as práticas recomendadas do Amazon Redshift conduzindo uma prova de conceito (PoC) para o design do seu banco de dados. Para obter mais informações, consulte [Condução de uma prova de conceito do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/proof-of-concept-playbook.html) na documentação do Amazon Redshift. | DBA | 
| Criar usuários do banco de dados. | Crie os usuários em seu banco de dados do Amazon Redshift e conceda os perfis apropriados para acesso ao esquema e às tabelas.  Para obter mais informações, consulte [Conceção de privilégios de acesso para um usuário ou grupo de usuários](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) na documentação do Amazon Redshift. | DBA | 
| Aplicar as configurações ao banco de dados de destino. | Aplique configurações ao banco de dados do Amazon Redshift de acordo com seus requisitos. Para obter mais informações sobre como habilitar parâmetros em nível de banco de dados, sessão e servidor, consulte a [Referência de configuração](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) na documentação do Amazon Redshift. | DBA | 

### Criar objetos no cluster do Amazon Redshift
<a name="create-objects-in-the-amazon-redshift-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie tabelas manualmente com DDL no Amazon Redshift. | (Opcional) Se você usa o AWS SCT, as tabelas são criadas automaticamente. No entanto, se houver falhas na replicação DDLs, você precisará criar manualmente as tabelas | DBA | 
| Crie tabelas externas para Redshift Spectrum. | Crie uma tabela externa com um esquema externo para o Amazon Redshift Spectrum. Para criar tabelas externas, você deve ser o proprietário do esquema externo ou um [superusuário do banco de dados](https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html). Para obter mais informações, consulte [Criar tabelas externas para o Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html) na documentação do Amazon Redshift. | DBA | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use o AWS DMS para migrar os dados. | Depois de criar o DDL das tabelas no banco de dados do Amazon Redshift, migre seus dados para o Amazon Redshift usando o AWS DMS.Para obter etapas e instruções detalhadas, consulte [Uso de um banco de dados do Amazon Redshift como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) na documentação do AWS DMS. | DBA | 
| Usar um comando COPY para carregar dados. | Use o comando `COPY` do Amazon Redshift para carregar dados do Amazon S3 para o Amazon Redshift.Para obter mais informações, consulte [Uso do comando COPY para carregar do Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html) na documentação do Amazon Redshift. | DBA | 

### Validar o cluster do Amazon Redshift
<a name="validate-the-amazon-redshift-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide os registros de origem e de destino.  | Valide a contagem de tabelas para os registros de origem e destino que foram carregados do seu sistema de origem. | DBA | 
| Implementar as práticas recomendadas do Amazon Redshift para ajuste de desempenho. | Práticas recomendadas do Amazon Redshift para projetar tabelas. Para obter mais informações, consulte a publicação [As 10 melhores técnicas de ajuste de desempenho do Amazon Redshift](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-techniques-for-amazon-redshift/) no blog. | DBA | 
| Otimize o desempenho da consulta. | O Amazon Redshift usa consultas baseadas em SQL para interagir com dados e objetos no sistema. A linguagem de manipulação de dados (DML) é um subconjunto da SQL que pode ser usado para ver, adicionar, alterar e excluir dados. DDL é um subconjunto de SQL usado para adicionar, alterar excluir objetos do banco de dados, como tabelas e visualizações.Para obter mais informações, consulte [Ajuste do desempenho da consulta](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html) na documentação do Amazon Redshift. | DBA | 
| Implementar o WLM.  | Você pode usar o gerenciamento de workload (WLM) para definir diversas filas de consultas e rotear consultas para filas apropriadas no runtime.Para obter mais informações, consulte [Implementação do gerenciamento do workload](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) na documentação do Amazon Redshift. | DBA | 
| Trabalhe com escalonamento de simultaneidade. | Ao usar o atributo de escalabilidade de simultaneidade, você pode oferecer suporte a usuários simultâneos e consultas simultâneas praticamente ilimitadas, com desempenho de consulta consistentemente rápido.Para obter mais informações, consulte [Trabalho com escalabilidade simultânea](https://docs.aws.amazon.com/redshift/latest/dg/concurrency-scaling.html) na documentação do Amazon Redshift. | DBA | 
| Use as práticas recomendadas do Amazon Redshift para design de tabelas. | Ao planejar seu banco de dados, certas decisões importantes de design de tabela podem influenciar fortemente o desempenho geral da consulta.Para obter mais informações sobre como escolher a opções de design de tabelas mais adequada, consulte [Práticas recomendadas do Amazon Redshift para projetar tabelas](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) na documentação do Amazon Redshift. | DBA | 
| Crie visões materializadas no Amazon Redshift. | Uma visão materializada contém um conjunto de resultados pré-computados, com base em uma consulta SQL a uma ou mais tabelas base. É possível emitir instruções `SELECT` para consultar uma visão materializada, da mesma maneira como você pode consultar outras tabelas ou visualizações no banco de dados.Para obter mais informações, consulte [Criar visões materializadas no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html) na documentação do Amazon Redshift. | DBA | 
| Definir as junções entre as tabelas. | Para pesquisar mais de uma tabela ao mesmo tempo ThoughtSpot, você deve definir junções entre as tabelas especificando colunas que contêm dados correspondentes em duas tabelas. Essas colunas representam a extremidade `primary key` da junção `foreign key`.Você pode defini-las usando o `ALTER TABLE` comando no Amazon Redshift ou. ThoughtSpot Para obter mais informações, consulte [ALTER TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html) na documentação do Amazon Redshift. | DBA | 

### Configurar a ThoughtSpot conexão com o Amazon Redshift
<a name="set-up-thoughtspot-connection-to-amazon-redshift"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Adicione uma conexão do Amazon Redshift. | Adicione uma conexão do Amazon Redshift ao seu banco de dados Falcon local ThoughtSpot .Para obter mais informações, consulte [Adicionar uma conexão com o Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-add-connection.html) na ThoughtSpot documentação. | DBA | 
| Editar a conexão do Amazon Redshift. | Você pode editar a conexão do Amazon Redshift para adicionar tabelas e colunas.Para obter mais informações, consulte [Editar uma conexão do Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-edit-connection.html) na ThoughtSpot documentação. | DBA | 
| Remapear a conexão do Amazon Redshift. | Modifique os parâmetros de conexão editando o arquivo .yaml de mapeamento de origem que foi criado quando você adicionou a conexão do Amazon Redshift. Por exemplo, você pode remapear a tabela ou coluna existente para uma tabela ou coluna diferente em uma conexão de banco de dados existente. ThoughtSpot recomenda que você verifique as dependências antes e depois de remapear uma tabela ou coluna em uma conexão para garantir que elas sejam exibidas conforme necessário.Para obter mais informações, consulte [Remapear uma conexão do Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-remap-connection.html) na ThoughtSpot documentação. | DBA | 
| Excluir uma tabela da conexão do Amazon Redshift.  | (Opcional) Se você tentar remover uma tabela em uma conexão do Amazon Redshift, ThoughtSpot verifica as dependências e mostra uma lista de objetos dependentes. Você pode escolher os objetos listados para excluí-los ou remover a dependência. Em seguida, você pode remover a tabela.Para obter mais informações, consulte [Excluir uma tabela de uma conexão do Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table.html) na ThoughtSpot documentação. | DBA | 
|  Exclua uma tabela com objetos dependentes de uma conexão do Amazon Redshift. | (Opcional) Se você tentar excluir uma tabela com objetos dependentes, a operação será bloqueada. Uma janela `Cannot delete` é exibida, com uma lista de links para objetos dependentes. Quando todas as dependências forem removidas, você poderá excluir a tabelaPara obter mais informações, consulte [Excluir uma tabela com objetos dependentes de uma conexão do Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table-dependencies.html) na ThoughtSpot documentação. | DBA | 
| Excluir uma conexão do Amazon Redshift. | (Opcional) Como uma conexão pode ser usada em várias fontes de dados ou visualizações, você deve excluir todas as fontes e tarefas que usam essa conexão antes de excluir a conexão do Amazon Redshift.Para obter mais informações, consulte [Excluir uma conexão do Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-connection.html) na ThoughtSpot documentação. | DBA | 
|  Verificar a referência de conexão do Amazon Redshift. | Certifique-se de fornecer as informações necessárias para sua conexão com o Amazon Redshift usando a [referência de conexão](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-connection-reference.html) na ThoughtSpot documentação. | DBA | 

## Mais informações
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-additional"></a>
+ [Análise orientada por IA em qualquer escala com o Amazon ThoughtSpot Redshift](https://aws.amazon.com/blogs/apn/ai-driven-analytics-at-any-scale-with-thoughtspot-and-amazon-redshift/)
+ [Preços do Amazon Redshift](https://aws.amazon.com/redshift/pricing/)
+ [Conceitos básicos do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html) 
+ [Conceitos básicos do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Uso de agentes de extração de dados](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Chick-fil-A melhora a velocidade de obtenção de insights com ThoughtSpot a AWS](https://www.thoughtspot.com/sites/default/files/pdf/ThoughtSpot-Chick-fil-A-AWS-Case-Study.pdf) 

# Migre do banco de dados Oracle para o Amazon RDS for PostgreSQL usando o Oracle GoldenGate
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate"></a>

*Dhairya Jindani, Sindhusha Paturu e Rajeshkumar Sabankar, Amazon Web Services*

## Resumo
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-summary"></a>

Esse padrão mostra como migrar um banco de dados Oracle para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL usando o Oracle Cloud Infrastructure (OCI). GoldenGate

Usando o Oracle GoldenGate, você pode replicar dados entre seu banco de dados de origem e um ou mais bancos de dados de destino com o mínimo de tempo de inatividade.

**nota**  
O banco de dados Oracle de origem pode estar no local ou em uma instância do Amazon Elastic Compute Cloud EC2 (Amazon). Você pode usar um procedimento semelhante ao usar ferramentas de replicação on-premises.

## Pré-requisitos e limitações
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma GoldenGate licença Oracle
+ Java Database Connectivity driver JDBC para conectar ao banco de dados PostgreSQL
+ Esquema e tabelas criados com a [AWS Schema Conversion Tool (AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)) no banco de dados Amazon RDS para PostgreSQL de destino

**Limitações**
+ O Oracle GoldenGate só pode replicar dados de tabelas existentes (carga inicial) e alterações em andamento (captura de dados de alteração)

**Versões do produto**
+ Oracle Database Enterprise Edition 10g, ou versões mais recentes 
+ Oracle GoldenGate 12.2.0.1.1 para Oracle ou versões mais recentes
+ Oracle GoldenGate 12.2.0.1.1 para PostgreSQL ou versões mais recentes

## Arquitetura
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-architecture"></a>

O diagrama a seguir mostra um exemplo de fluxo de trabalho para migrar um banco de dados Oracle para o Amazon RDS for PostgreSQL usando o Oracle: GoldenGate

![\[Fluxo de trabalho de migração do banco de dados da Oracle on-premises para o Amazon RDS para PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/384f0eaf-8582-474a-a7f4-ec1048a4feb3/images/de541887-0d5f-4a9a-b136-ce2599355cb8.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O [processo Oracle GoldenGate Extract](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-6419F3A9-71EC-4D14-9C41-3BAA1E3CA19C) é executado no banco de dados de origem para extrair dados.

1. O [processo Oracle GoldenGate Replicat](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-5EF0326C-9058-4C40-8925-98A223388C95) entrega os dados extraídos ao banco de dados Amazon RDS for PostgreSQL de destino.

## Ferramentas
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-tools"></a>
+  GoldenGateA [Oracle](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) ajuda você a projetar, executar, orquestrar e monitorar suas soluções de replicação de dados e streaming de processamento de dados na Oracle Cloud Infrastructure.
+ O [Amazon Relational Database Service (Amazon RDS) para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ajuda você a configurar, operar e escalar um banco de dados relacional PostgreSQL na Nuvem AWS.

## Épicos
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-epics"></a>

### Baixe e instale o Oracle GoldenGate
<a name="download-and-install-oracle-goldengate"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o Oracle GoldenGate. | Faça o download das seguintes versões do Oracle GoldenGate:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html)Para baixar o software, consulte [Oracle GoldenGate Downloads](https://www.oracle.com/middleware/technologies/goldengate-downloads.html) no site da Oracle. | DBA | 
| Instale o Oracle GoldenGate for Oracle no servidor de banco de dados Oracle de origem. | Para obter instruções, consulte a [ GoldenGate documentação da Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 
| Instale o banco de dados Oracle GoldenGate para PostgreSQL na instância da Amazon. EC2  | Para obter instruções, consulte a [ GoldenGate documentação da Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 

### Configurar o Oracle GoldenGate nos bancos de dados de origem e destino
<a name="configure-oracle-goldengate-on-the-source-and-target-databases"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Oracle GoldenGate for Oracle Database no banco de dados de origem. | Para obter instruções, consulte a [ GoldenGate documentação da Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm).Certifique-se de configurar o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 
| Configure o Oracle GoldenGate para PostgreSQL no banco de dados de destino. | Para obter instruções, consulte a [Parte VI Usando o Oracle GoldenGate para PostgreSQL](https://docs.oracle.com/en/middleware/goldengate/core/19.1/gghdb/using-oracle-goldengate-postgresql.html) no site da Oracle.Certifique-se de configurar o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 

### Configure a captura de dados
<a name="configure-the-data-capture"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o processo de Extração no banco de dados de origem. | No banco de dados Oracle de origem, crie um arquivo de extração para extrair dados.Para obter instruções, consulte [ADICIONAR EXTRACT](https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands006.htm#GWURF122) na documentação da Oracle.O arquivo de extração inclui a criação do arquivo de parâmetros de extração e do diretório de arquivos de trilha. | DBA | 
| Configure uma bomba de dados para transferir o arquivo de trilha do banco de dados de origem para o de destino. | Crie um arquivo de parâmetros EXTRACT e um diretório de arquivos de trilha seguindo as instruções em [PARFILE](https://docs.oracle.com/database/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm#SUTIL859) em *Utilitários de banco de dados* no site da Oracle.Para obter mais informações, consulte [O que é uma trilha?](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-88674F53-1E07-4C00-9868-598F82D7113C) no *Fusion Middleware Understanding Oracle GoldenGate* no site da Oracle. | DBA | 
| Configure a replicação na EC2 instância da Amazon. | Crie um arquivo de parâmetros de replicação e um diretório de arquivos de trilha.Para obter mais informações sobre como criar arquivos de parâmetros de replicação, consulte a seção [3.5 Validando um arquivo de parâmetros](https://docs.oracle.com/en/middleware/goldengate/core/21.3/admin/using-oracle-goldengate-parameter-files.html#GUID-1E32A9AD-25DB-4243-93CD-E643E7116215) na documentação do Oracle Database.Para obter mais informações sobre a criação de um diretório de arquivos de trilha, consulte [Criar uma trilha](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/creating-trail.html) na documentação do Oracle Cloud.Certifique-se de adicionar uma entrada de tabela como ponto de verificação no arquivo GLOBALS no destino.Para obter mais informações, consulte [O que é uma réplica](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GGCON-GUID-5EF0326C-9058-4C40-8925-98A223388C95)? no *Fusion Middleware Understanding Oracle GoldenGate* no site da Oracle. | DBA | 

### Configure a replicação de dados
<a name="configure-the-data-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| No banco de dados de origem, crie um arquivo de parâmetros para extrair dados para o carregamento inicial. | Siga as instruções em [Como criar um arquivo de parâmetros no GGSCI](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) na documentação do Oracle Cloud.Certifique-se de que o Manager esteja em execução no destino. | DBA | 
| No banco de dados de destino, crie um arquivo de parâmetros para replicar dados para o carregamento inicial. | Siga as instruções em [Como criar um arquivo de parâmetros no GGSCI](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) na documentação do Oracle Cloud.Certifique-se de adicionar e iniciar o processo Replicat. | DBA | 

### Vá para o banco de dados do Amazon RDS para PostgreSQL
<a name="cut-over-to-the-amazon-rds-for-postgresql-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Pare o processo de Replicação e certifique-se que os bancos de dados de origem e de destino estejam sincronizados. | Compare as contagens de linhas entre os bancos de dados de origem e de destino para garantir que a replicação dos dados tenha sido bem-sucedida. | DBA | 
| Configure o suporte DDL (Linguagem de definição de dados). | Execute o script DDL para criar acionadores, sequência, sinônimos e chaves referenciais no PostgreSQL.É possível usar qualquer aplicação cliente em SQL padrão para estabelecer conexão com um banco de dados no cluster de banco de dados. Por exemplo, você pode usar o [pgAgmin](https://www.pgadmin.org/) para se conectar à sua instância de banco de dados. | DBA | 

## Recursos relacionados
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-resources"></a>
+ [Amazon RDS para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) (*Guia do usuário do Amazon RDS*)
+ [ EC2 Documentação da Amazon](https://docs.aws.amazon.com/ec2/)
+ [Métodos de processamento e bancos de dados GoldenGate suportados](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD112) pela Oracle (documentação da Oracle)

# Migre uma tabela particionada do Oracle para o PostgreSQL usando o AWS DMS
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms"></a>

*Saurav Mishra e Eduardo Valentim, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-summary"></a>

Esse padrão descreve como acelerar o carregamento de uma tabela particionada do Oracle para o PostgreSQL usando o AWS Database Migration Service (AWS DMS), que não oferece suporte ao particionamento nativo. O banco de dados PostgreSQL de destino pode ser instalado no Amazon Elastic Compute Cloud (Amazon) ou pode ser uma instância de banco de dados EC2 Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora PostgreSQL Compatible Edition. 

O upload de uma tabela particionada inclui as seguintes etapas:

1. Crie uma tabela principal semelhante à tabela de partições do Oracle, mas não inclua nenhuma partição.

1. Crie tabelas secundárias que herdarão da tabela principal que você criou na etapa 1.

1. Crie uma função de procedimento e um gatilho para lidar com as inserções na tabela principal.

No entanto, como o gatilho é acionado para cada inserção, a carga inicial usando o AWS DMS pode ser muito lenta.

Para acelerar os carregamentos iniciais do Oracle para o PostgreSQL 9.0, esse padrão cria uma tarefa separada do AWS DMS para cada partição e carrega as tabelas secundárias correspondentes. Em seguida, você cria um gatilho durante a substituição. 

O PostgreSQL versão 10 suporta particionamento nativo. No entanto, você pode decidir usar o particionamento herdado em alguns casos. Para obter mais informações, consulte a seção [Informações adicionais](#migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional).

## Pré-requisitos e limitações
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados do Oracle de origem com uma tabela particionada
+ Um banco de dados do PostgreSQL na AWS

**Versões do produto**
+ PostgreSQL 9.0

## Arquitetura
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Uma tabela particionada no Oracle

**Pilha de tecnologias de destino**
+ Uma tabela particionada no PostgreSQL (na EC2 Amazon, Amazon RDS for PostgreSQL ou Aurora PostgreSQL)

**Arquitetura de destino**

![\[Dados de tabelas particionadas na Oracle sendo migrados para uma tarefa do AWS DMS para cada partição e, em seguida, para o PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)


## Ferramentas
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.

## Épicos
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-epics"></a>

### Configurar o AWS DMS
<a name="set-up-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie as tabelas no PostgreSQL. | Crie as tabelas principal e secundária correspondentes no PostgreSQL com as condições de verificação necessárias para partições. | DBA | 
| Crie a tarefa do AWS DMS para cada partição. | Inclua a condição do filtro da partição na tarefa do AWS DMS. Mapeie as partições para as tabelas secundárias correspondentes do PostgreSQL. | DBA | 
| Execute as tarefas do AWS DMS usando carga total e captura de dados alterados (CDC). | Verifique se o parâmetro `StopTaskCachedChangesApplied` está definido como `true` e se o parâmetro `StopTaskCachedChangesNotApplied` está definido como `false`. | DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Interrompe as tarefas de replicação. | Antes de interromper as tarefas, confirme se a origem e o destino estão sincronizados. | DBA | 
| Crie um gatilho na tabela principal. | Como a tabela principal receberá todos os comandos de inserção e atualização, crie um gatilho que roteará esses comandos para as respectivas tabelas secundárias com base na condição de particionamento. | DBA | 

## Recursos relacionados
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Particionamento de tabelas (documentação do PostgreSQL)](https://www.postgresql.org/docs/10/ddl-partitioning.html)

## Mais informações
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional"></a>

Embora a versão 10 do PostgreSQL ofereça suporte ao particionamento nativo, você pode decidir usar o particionamento herdado para os seguintes casos de uso:
+ O particionamento impõe uma regra de que todas as partições devem ter o mesmo conjunto de colunas que a principal, mas a herança de tabelas permite que os filhos tenham colunas extras.
+ A herança de tabelas oferece suporte a várias heranças.
+ O particionamento declarativo oferece suporte somente ao particionamento de listas e intervalos. Com a herança de tabelas, você pode dividir os dados como quiser. No entanto, se a exclusão da restrição não puder remover partições de forma eficaz, o desempenho da consulta será prejudicado.
+ Algumas operações precisam de um bloqueio mais forte ao usar o particionamento declarativo do que ao usar a herança de tabelas. Por exemplo, adicionar ou remover uma partição de ou para uma tabela particionada exige um bloqueio `ACCESS EXCLUSIVE` na tabela principal, enquanto um bloqueio `SHARE UPDATE EXCLUSIVE` é suficiente para a herança regular.

Ao usar partições de trabalho separadas, você também pode recarregar partições se houver algum problema de validação do AWS DMS. Para melhorar o desempenho e o controle da replicação, execute tarefas em instâncias de replicação separadas.

# Migre do Amazon RDS para Oracle para o Amazon RDS para MySQL
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql"></a>

*Jitender Kumar, Srini Ramaswamy e Neha Sharma, Amazon Web Services*

## Resumo
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-summary"></a>

Este padrão fornece orientações para a migração de uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para Oracle para uma instância do Amazon RDS para MySQL na Amazon Web Services (AWS). O padrão usa o AWS Database Migration Service (AWS DMS) e o AWS Schema Conversion Tool (AWS SCT). 

O padrão apresenta as práticas recomendadas para conduzir a migração de procedimentos armazenados. Além disso, ele aborda as alterações de código necessárias para fornecer suporte à camada de aplicação. 

## Pré-requisitos e limitações
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Banco de dados de origem do Amazon RDS para Oracle.
+ Banco de dados de destino do Amazon RDS para MySQL. Os bancos de dados de origem e de destino devem estar na mesma nuvem privada virtual (VPC). Se você estiver usando vários VPCs, ou precisar ter as permissões de acesso necessárias.
+ Grupos de segurança que permitem a conectividade entre os bancos de dados de origem e de destino, o AWS SCT, o servidor de aplicativos e o AWS DMS.
+ Uma conta de usuário com o privilégio necessário para executar o AWS SCT no banco de dados de origem.
+ Registro em log suplementar habilitado para a execução do AWS DMS no banco de dados de origem.

**Limitações**
+ O limite de tamanho do banco de dados Amazon RDS de origem e destino é 64 TB. Para obter informações sobre o tamanho do Amazon RDS, consulte a [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).
+ O Oracle não diferencia maiúsculas de minúsculas para objetos de banco de dados, mas o MySQL não. O AWS SCT pode lidar com esse problema durante a criação de um objeto. No entanto, algumas intervenções manuais são exigidas para que haja completa insensibilidade a maiúsculas e minúsculas.
+ Essa migração não usa extensões do MySQL para habilitar funções nativas da Oracle. O AWS SCT processa a maior parte da conversão, mas é necessário algum trabalho para alterar o código manualmente.
+ Alterações do driver Java Database Connectivity (driver JDBC) são necessárias no aplicativo.

**Versões do produto**
+ Amazon RDS para Oracle 12.2.0.1 e versões posteriores. Para obter informações sobre as versões do RDS para Oracle com suporte atualmente, consulte a [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.database-versions.html).
+ Amazon RDS para MySQL 8.0.15 e versões posteriores. Para obter informações sobre as versões do RDS para MySQL com suporte atualmente, consulte a [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html).
+ AWS DMS, versão 3.3.0 e versões posteriores. Consulte a documentação da AWS para obter mais informações sobre os [endpoints de origem](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html) e os [endpoints de destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) compatíveis com o AWS DMS.
+ AWS SCT, versão 1.0.628 e versões posteriores.  Consulte a [matriz de compatibilidade para endpoints de origem e de destino do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) na documentação da AWS.

## Arquitetura
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-architecture"></a>

**Pilha de tecnologia de origem**
+ Amazon RDS para Oracle. Para obter mais informações, consulte [Using an Oracle database as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). 

**Pilha de tecnologias de destino**
+ Amazon RDS para MySQL. Para obter mais informações, consulte [Uso de um banco de dados compatível com MySQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html).

**Arquitetura de migração**

No diagrama apresentado a seguir, o AWS SCT copia e converte os objetos de esquema do banco de dados de origem do Amazon RDS para Oracle e envia esses objetos para o banco de dados de destino do Amazon RDS para MySQL. O AWS DMS replica os dados do banco de dados de origem e os envia para a instância do Amazon RDS para MySQL.

![\[AWS SCT, AWS DMS e Amazon RDS implantados em uma sub-rede privada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e1efa7c2-47c1-4677-80bc-6b19250fc0d6/images/b54a8442-9ab9-4074-b8f6-a08f87fa2f52.jpeg)


## Ferramentas
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-tools"></a>
+ O [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) facilita a migração de armazenamentos de dados para a Nuvem AWS ou entre configurações híbridas de nuvem e ambientes on-premises.
+ 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. Esse padrão usa o [Amazon RDS para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) e o [Amazon RDS para MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html).
+ O [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.

## Épicos
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-epics"></a>

### Preparo para a migração
<a name="prepare-for-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar versões e mecanismos do banco de dados de origem e de destino. |  | DBA | 
|  Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, SysAdmin | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Escolha o tipo de instância adequado (capacidade, atributos de armazenamento e atributos de rede). |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin  | 
| Escolha uma estratégia de migração de aplicativos. | Considere se você quer tempo de inatividade total ou parcial para atividades de substituição. | DBA SysAdmin, proprietário do aplicativo | 

### Configurar a infraestrutura
<a name="configure-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma VPC e sub-redes. |  | SysAdmin | 
| Crie grupos de segurança e listas de controle de acesso à rede (ACLs). |  | SysAdmin | 
| Configure e inicie a instância do Amazon RDS para Oracle. |  | DBA, SysAdmin | 
| Configure e inicie a instância do Amazon RDS para MySQL.  |  | DBA, SysAdmin | 
| Prepare um caso de teste para validação da conversão de código. | Isso ajudará no teste de unidade do código convertido. | DBA, Desenvolvedor | 
| Configure a instância do AWS DMS. |  |  | 
| Configure endpoints de origem e destino no AWS DMS. |  |  | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere o script do banco de dados de destino usando o AWS SCT. | Verifique a precisão do código que foi convertido pelo AWS SCT. Será necessário algum trabalho manual. | DBA, Desenvolvedor | 
| No AWS SCT, escolha a configuração “Sem distinção entre maiúsculas e minúsculas”. | No AWS SCT, escolha Configurações do projeto, Diferenciação entre maiúsculas e minúsculas e maiúsculas e minúsculas. | DBA, Desenvolvedor | 
| No AWS SCT, escolha não usar a função nativa da Oracle. | Em Configurações do projeto, verifique as funções TO\$1 CHAR/TO\$1NUMBER/TO \$1DATE. | DBA, Desenvolvedor | 
| Faça alterações no código “sql%notfound”. | Talvez seja necessário converter o código manualmente. |  | 
| Consulte tabelas e objetos em procedimentos armazenados (use consultas em minúsculas). |  | DBA, Desenvolvedor | 
| Crie o script primário depois que todas as alterações forem feitas e, em seguida, implante o script primário no banco de dados de destino. |  | DBA, Desenvolvedor | 
| Teste de unidade os procedimentos armazenados e as chamadas de aplicativos usando dados de amostra.  |  |  | 
| Limpe os dados que foram criados durante o teste de unidade. |  | DBA, Desenvolvedor | 
| Elimine restrições de chave no banco de dados de destino. | Essa etapa é necessária para carregar dados iniciais. Se você não quiser eliminar as restrições de chave estrangeira, deverá criar uma tarefa de migração para dados específicos das tabelas primária e secundária. | DBA, Desenvolvedor | 
| Coloque chaves primárias e chaves exclusivas no banco de dados de destino. | Essa etapa resulta em melhor desempenho para a carga inicial. | DBA, Desenvolvedor | 
| Habilite o log suplementar no banco de dados de origem.  |  | DBA | 
| Crie uma tarefa de migração para a carga inicial no AWS DMS e, em seguida, execute-a. | Selecionar a opção Migrar dados existentes. | DBA | 
| Adicione as chaves primárias e estrangeiras ao banco de dados de destino. | Restrições precisam ser adicionadas após a carga inicial. | DBA, Desenvolvedor | 
| Crie uma tarefa de migração para a replicação contínua. | A replicação contínua mantém o banco de dados de destino sincronizado com o banco de dados de origem. | DBA | 

### Migrar aplicativos
<a name="migrate-applications"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Substitua as funções nativas do Oracle pelas funções nativas do MySQL. |  | Proprietário do App | 
| Certifique-se de que somente nomes em minúsculas sejam usados para objetos de banco de dados em consultas SQL. |  | DBA SysAdmin, proprietário do aplicativo | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre o servidor do aplicativo. |  | Proprietário do App | 
| Valide se os bancos de dados de origem e de destino estão em sincronia. |  | DBA, proprietário do aplicativo | 
| Encerre a instância de banco de dados do Amazon RDS para Oracle. |  | DBA | 
| Pare a tarefa de migração. | Isso será interrompido automaticamente depois que você concluir a etapa anterior. | DBA | 
| Altere a conexão JDBC do Oracle para o MySQL. |  | Proprietário do aplicativo, DBA | 
| Inicie o aplicativo. |  | DBA SysAdmin, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise e valide os documentos do projeto. |  | DBA, SysAdmin | 
| Reúna métricas sobre o tempo de migração, porcentagem de tarefas manuais versus tarefas de ferramentas, economia de custos, etc. |  | DBA, SysAdmin | 
| Pare e exclua instâncias do AWS DMS. |  | DBA | 
| Remova os endpoints de origem e de destino. |  | DBA | 
| Remova as tarefas de migração. |  | DBA | 
| Faça uma instância de banco de dados do Amazon RDS para Oracle. |  | DBA | 
| Exclua a instância de banco de dados do Amazon RDS para Oracle. |  | DBA | 
| Encerre e exclua quaisquer outros recursos temporários da AWS que você usou. |  | DBA, SysAdmin | 
| Feche o projeto e forneça feedback, se houver. |  | DBA | 

## Recursos relacionados
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migre do IBM Db2 na Amazon para o EC2 Aurora compatível com PostgreSQL usando o AWS DMS e o AWS SCT
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct"></a>

*Sirsendu Halder e Abhimanyu Chhabra, Amazon Web Services*

## Resumo
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão fornece orientação para migrar um banco de dados IBM Db2 em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para uma instância de banco de dados Amazon Aurora PostgreSQL compatível com o PostgreSQL. Este padrão usa o AWS Database Migration Service (AWS DMS) e a AWS Schema Conversion Tool (AWS SCT) para migração de dados e conversão de esquemas.

O padrão visa uma estratégia de migração on-line com pouco ou nenhum tempo de inatividade para um banco de dados IBM Db2 de vários terabytes que tem um grande número de transações. Recomendamos que você converta as colunas em chaves primárias (PKs) e chaves estrangeiras (FKs) com o tipo de dados `NUMERIC` para `INT` ou `BIGINT` no PostgreSQL para melhorar o desempenho. 

## Pré-requisitos e limitações
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Um banco de dados IBM Db2 de origem em uma instância EC2 

**Versões do produto**
+ DB2/LINUXX8664 versão 11.1.4.4 e posterior

## Arquitetura
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-architecture"></a>

** ****Pilha de tecnologia de origem**
+ Um banco de dados Db2 em uma instância EC2  

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados compatível com o Aurora compatível com PostgreSQL versão 10.18 ou superior

**Arquitetura de migração de banco de dados******

![\[Usando o AWS DMS para migrar do IMB Db2 na Amazon EC2 para o Aurora compatível com PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5e737fab-3e04-4887-9fb0-d1c88503b57d/images/789fabcc-8052-40d5-a746-986d799576e9.png)


## Ferramentas
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar banco de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises. O banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem do banco de dados. Você pode usar o AWS DMS para migrar seus dados de e para os bancos de dados comerciais e de código aberto mais usados no mercado. O AWS DMS é compatível com migrações heterogêneas entre diferentes plataformas de banco de dados, como IBM Db2 para Aurora compatível com PostgreSQL, versão 10.18 ou superior. Para obter detalhes, consulte [Origens para migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) e [Destinos para migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) na documentação do AWS DMS.
+ A[ AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) facilita as migrações heterogêneas de banco de dados convertendo automaticamente o esquema do banco de dados de origem e a maioria dos objetos de código do banco de dados, incluindo exibições, procedimentos armazenados e funções, em um formato compatível com o banco de dados de destino. Todos os objetos que não são convertidos automaticamente são claramente marcados para que possam ser convertidos manualmente para concluir a migração. O AWS SCT também pode digitalizar o código-fonte do aplicativo em busca de instruções SQL incorporadas e convertê-las. 

## Épicos
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-epics"></a>

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de banco de dados do Aurora compatível com o PostgreSQL. | Para criar a instância do banco de dados, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). Para Tipo de mecanismo, escolha **Amazon Aurora**. Em Edição, escolha **Amazon Aurora Edição compatível com PostgreSQL**.A instância de banco de dados do Aurora compatível com o PostgreSQL versão 10.18 ou superior deve estar na mesma nuvem privada virtual (VPC) que o banco de dados IBM Db2 de origem. | Amazon RDS | 

### Converta o esquema do banco de dados
<a name="convert-your-database-schema"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale e verifique o AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Administrador da AWS, DBA, engenheiro de migração | 
| Inicie o AWS SCT e crie um projeto. | Para iniciar a ferramenta AWS SCT e criar um novo projeto para executar um relatório de avaliação da migração do banco de dados, siga as instruções na [documentação do AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Launching) | Engenheiro de migração | 
| Adicione servidores de banco de dados e crie uma regra de mapeamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Engenheiro de migração | 
| Crie um relatório de avaliação de migração do banco de dados.  | Crie o relatório de avaliação da migração do banco de dados seguindo as etapas na [documentação do AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) | Engenheiro de migração | 
| Visualizar o relatório de avaliação. | Use a guia **Resumo** do relatório de avaliação da migração do banco de dados para visualizar o relatório e analisar os dados. Essa análise ajudará você a determinar a complexidade da migração. Para obter mais informações, consulte a [documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html). | Engenheiro de migração | 
| Converta o esquema.  | Para converter seus esquemas de banco de dados de origem:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Para obter mais informações, consulte a [documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Converting). | Engenheiro de migração | 
| Para aplicar o esquema de banco de dados convertido à instância de banco de dados de destino | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Para obter mais informações, consulte a [documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.ApplyingConversion). | Engenheiro de migração | 

### Migre seus dados
<a name="migrate-your-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure grupos de parâmetros de VPC e banco de dados.  | Configure grupos de parâmetros de VPC e banco de dados e configure as regras e os parâmetros de entrada necessários para a migração. Para obter instruções, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Prerequisites.html).Para o grupo de segurança da VPC, selecione a instância do Db2 e a EC2 instância de banco de dados compatível com o Aurora PostgreSQL. Essa instância de replicação deve estar na mesma VPC das instâncias de banco de dados de origem e de destino. | Engenheiro de migração | 
| Prepare instâncias de banco de dados de origem e destino. | Prepare as instâncias de banco de dados de origem e destino para a migração. Em um ambiente de produção, o banco de dados de origem já existirá.Para o banco de dados de origem, o nome do servidor deve ser o Sistema de Nomes de Domínio (DNS) público da EC2 instância em que o Db2 está sendo executado. Para nome de usuário, você pode usar `db2inst1` seguido pela porta, que será 5000 para IBM Db2.  | Engenheiro de migração | 
| Crie um EC2 cliente e endpoints da Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Engenheiro de migração | 
| Crie uma instância de replicação. | Crie uma instância de replicação usando o console do AWS DMS e especifique os endpoints de origem e destino. A instância de replicação realiza a migração de dados entre os endpoints. Para obter mais informações, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html).  | Engenheiro de migração | 
| Crie uma tarefa do AWS DMS para migrar os dados. | Crie uma tarefa para carregar as tabelas de origem do IBM Db2 na instância de banco de dados PostgreSQL de destino seguindo as etapas na [documentação do AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Engenheiro de migração | 

## Recursos relacionados
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-resources"></a>

**Referências**
+ [Documentação do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)
+ [Documentação do FDW (wrapper de dados estrangeiros) do PostgreSQL](https://www.postgresql.org/docs/10/postgres-fdw.html) 
+ [Documentação IMPORTAR ESQUEMA ESTRANGEIROS do PostgreSQL](https://www.postgresql.org/docs/10/sql-importforeignschema.html) 
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/index.html)  
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 

**Tutoriais e vídeos**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/) (passo a passo)
+ [Introdução à Amazon EC2 — Elastic Cloud Server e hospedagem com AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (vídeo)

# Migre do Oracle 8i ou 9i para o Amazon RDS for PostgreSQL usando o AWS DMS SharePlex
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms"></a>

*Kumar Babu P G, Amazon Web Services*

## Resumo
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-summary"></a>

Esse padrão descreve como migrar um banco de dados Oracle 8i ou 9i on-premises para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora PostgreSQL. O AWS Database Migration Service (AWS DMS) não oferece suporte ao Oracle 8i ou 9i como fonte, então a Quest SharePlex replica dados de um banco de dados 8i ou 9i local para um banco de dados Oracle intermediário (Oracle 10g ou 11g), que é compatível com o AWS DMS.

Da instância intermediária da Oracle, o esquema e os dados são migrados para o banco de dados PostgreSQL na AWS usando o AWS Schema Conversion Tool (AWS SCT) e o AWS DMS. Esse método ajuda a obter streaming contínuo de dados do banco de dados Oracle de origem para a instância de banco de dados PostgreSQL de destino, com atraso mínimo de replicação. Nessa implementação, o tempo de inatividade é limitado ao tempo necessário para criar ou validar todas as chaves estrangeiras, acionadores e sequências no banco de dados PostgreSQL de destino.

A migração usa uma instância do Amazon Elastic Compute Cloud (Amazon EC2) com o Oracle 10g ou 11g instalado para hospedar as alterações do banco de dados Oracle de origem. O AWS DMS usa essa instância Oracle intermediária como origem para transmitir os dados para o Amazon RDS para PostgreSQL ou Aurora PostgreSQL. A replicação de dados pode ser pausada e retomada do banco de dados Oracle on-premises para a instância intermediária da Oracle. Também pode ser pausada e retomada da instância intermediária do Oracle para o banco de dados PostgreSQL de destino para que você possa validar os dados usando a validação de dados do AWS DMS ou uma ferramenta de validação de dados personalizada.

## Pré-requisitos e limitações
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle 8i ou 9i de origem em um datacenter on-premises 
+ AWS Direct Connect configurado entre o datacenter on-premises e a AWS 
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT instalados em uma máquina local ou na instância em que o AWS SCT EC2 está instalado
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ Familiaridade com a replicação de SharePlex dados da Quest

 

**Limitações**
+ O limite de tamanho do banco de dados é 64 TB.
+ O banco de dados Oracle on-premises deve ser Enterprise Edition

 

**Versões do produto**
+ Oracle 8i ou 9i para o banco de dados de origem
+ Oracle 10g ou 11g para o banco de dados intermediário 
+ PostgreSQL 9.6 ou mais recente

## Arquitetura
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados do Oracle 8i ou 9i 
+ Missão SharePlex 

 

**Pilha de tecnologias de destino**
+ Amazon RDS para PostgreSQL ou Amazon PostgreSQL 

** **

**Arquitetura de origem e destino**

![\[Architecture diagram showing migration from on-premises Oracle database to AWS cloud using various services.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/b6c30668-fc2e-4293-a59a-e01fd151f4bb/images/25082670-0bf3-4b20-8c80-99c6633b046f.png)


## Ferramentas
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-tools"></a>
+ **AWS DMS**: o [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (AWS DMS) ajuda você a migrar bancos de dados com rapidez e segurança. O banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem do banco de dados. O AWS DMS pode migrar seus dados dos/para os bancos de dados comerciais e de código aberto mais usados no mercado. 
+ **AWS SCT**: o [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) torna as migrações heterogêneas de banco de dados previsíveis ao converter automaticamente o esquema do banco de dados de origem e a maioria do código personalizado, incluindo exibições, procedimentos armazenados e funções, para um formato compatível com o banco de dados de destino. Os objetos que não são convertidos automaticamente são claramente marcados para que possam ser convertidos manualmente para concluir a migração. O AWS SCT também pode examinar o código-fonte do seu aplicativo em busca de instruções SQL incorporadas e convertê-las como parte de um projeto de conversão de esquema de banco de dados. Durante esse processo, o AWS SCT executa a otimização de código nativo de nuvem convertendo funções legadas do Oracle e do SQL Server em seus equivalentes da AWS, para ajudar você a modernizar seus aplicativos enquanto migra seus bancos de dados. Quando a conversão do esquema estiver concluída, o AWS SCT pode ajudar a migrar dados de uma variedade de data warehouses para o Amazon Redshift usando agentes de migração de dados integrados.
+ **Quest SharePlex** — SharePlex A [Quest](https://www.quest.com/register/120420/?gclid=Cj0KCQiA6IHwBRCJARIsALNjViVSt9fHqAsf9XbWkoCwKKyQqollR_5kSxNhBagh9s3spQT4IQCaVy0aAmCnEALw_wcB) é uma ferramenta de replicação de Oracle-to-Oracle dados para mover dados com o mínimo de tempo de inatividade e sem perda de dados.

## Épicos
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-epics"></a>

### Crie a EC2 instância e instale o Oracle
<a name="create-the-ec2-instance-and-install-oracle"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a rede para a Amazon EC2. | Crie a nuvem privada virtual (VPC), sub-redes, gateway da Internet, tabelas de rotas e grupos de segurança. | AWS SysAdmin | 
| Crie a nova EC2 instância. | Selecione a Amazon Machine Image (AMI) para a EC2 instância. Escolha o tamanho da instância e configure os detalhes da instância: o número de instâncias (1), a VPC e a sub-rede da etapa anterior, atribuição automática de IP público e outras opções. Adicione armazenamento, configure grupos de segurança e execute a instância. Quando solicitado, crie e salve um par de chaves para a próxima etapa. | AWS SysAdmin | 
| Instale o Oracle na EC2 instância. | Adquira as licenças e os binários Oracle necessários e instale o Oracle 10g ou 11g na instância. EC2  | DBA | 

### Configurar SharePlex em uma EC2 instância e configurar a replicação de dados
<a name="set-up-shareplex-on-an-ec2-instance-and-configure-data-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar SharePlex. | Crie uma EC2 instância da Amazon e instale os SharePlex binários compatíveis com o Oracle 8i ou 9i. | AWS SysAdmin, DBA | 
| Configure a replicação de dados. | Siga as SharePlex melhores práticas para configurar a replicação de dados de um banco de dados Oracle 8i/9i local para uma instância Oracle 10g/11g. | DBA | 

### Converta o esquema do banco de dados Oracle em PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS SCT. | Crie um novo relatório e, em seguida, conecte-se ao Oracle como origem e ao PostgreSQL como destino. Nas configurações do projeto, abra a guia SQL Scripting e altere o script SQL de destino para Vários arquivos. | DBA | 
| Converta o esquema do banco de dados Oracle. | Na guia Ação, escolha Gerar relatório, Converter esquema e, depois, Salvar como SQL. | DBA | 
| Modifique os scripts SQL gerados pelo AWS SCT. |  | DBA | 

### Crie e configure a instância de banco de dados do Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a instância de banco de dados do Amazon RDS | No console do Amazon RDS, crie uma nova instância de banco de dados PostgreSQL. | AWS SysAdmin, DBA | 
| Configure a instância de banco de dados. | Especifique a versão do mecanismo de banco de dados, a classe da instância de banco de dados, a implantação Multi-AZ, o tipo de armazenamento e o armazenamento alocado. Insira o identificador da instância de banco de dados, um nome de usuário principal e uma senha mestra. | AWS SysAdmin, DBA | 
| Configure rede e segurança. | Especifique a VPC, o grupo de sub-redes, a acessibilidade pública, a preferência da zona de disponibilidade e os grupos de segurança. | AWS SysAdmin, DBA | 
| Configure as opções do banco de dados. | Especifique o nome do banco de dados, a porta, o grupo de parâmetros, a criptografia e a chave mestra. | AWS SysAdmin, DBA | 
| Configure os backups. | Especifique o período de retenção do backup, a janela do backup, a hora de início, a duração e se as tags devem ser copiadas para instantâneos. | AWS SysAdmin, DBA | 
| Configure opções de monitoramento. | Habilite ou desabilite insights de monitoramento e desempenho avançados. | AWS SysAdmin, DBA | 
| Configure opções de manutenção. | Especifique a atualização automática da versão secundária, a janela de manutenção e o dia, a hora e a duração de início. | AWS SysAdmin, DBA | 
| Execute os scripts de pré-migração do AWS SCT. | Na instância do Amazon RDS, execute esses scripts: create\$1database.sql, create\$1sequence.sql, create\$1table.sql, create\$1view.sql, and create\$1function.sql. | AWS SysAdmin, DBA | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação no AWS DMS. | Preencha os campos para nome, classe da instância, VPC (igual à EC2 instância), Multi-AZ e acessibilidade pública. Na seção de configuração avançada, especifique o armazenamento alocado, o grupo de sub-rede, a zona de disponibilidade, os grupos de segurança da VPC e a chave raiz do AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de origem. | Especifique o nome do endpoint, tipo, mecanismo de origem (Oracle), nome do servidor (nome DNS EC2 privado da Amazon), porta, modo SSL, nome de usuário, senha, SID, VPC (especifique a VPC que tem a instância de replicação) e instância de replicação. Para testar a conexão, escolha Executar teste e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: maxFileSize e numberDataType Escala. | AWS SysAdmin, DBA | 
| Crie a tarefa de replicação do AWS DMS. | Especifique o nome da tarefa, a instância de replicação, os endpoints de origem e destino e a instância de replicação. Para tipo de migração escolha “Migrar dados existentes e replicar alterações contínuas”. Desmarque a caixa de seleção “Iniciar tarefa ao criar”. | AWS SysAdmin, DBA | 
| Defina as configurações da tarefa de replicação do AWS DMS. | Para o modo de preparação da tabela de destino, escolha “Não fazer nada”. Pare a tarefa após a conclusão da carga completa para criar chaves primárias. Especifique o modo LOB limitado ou completo e ative as tabelas de controle. Opcionalmente, você pode definir a configuração CommitRate avançada. | DBA | 
| Configure os mapeamentos da tabela. | Na seção mapeamentos de tabela, crie uma regra de inclusão para todas as tabelas em todos os esquemas incluídos na migração e, em seguida, crie uma regra de exclusão. Adicione três regras de transformação para converter os nomes do esquema, da tabela e da coluna para letra minúscula e adicione quaisquer outras regras necessárias para essa migração específica. | DBA | 
| Iniciar a tarefa. | Iniciar a tarefa de replicação. Verifique se a carga total está em execução. Execute ALTER SYSTEM SWITCH LOGFILE no banco de dados Oracle primário para iniciar a tarefa. | DBA | 
| Execute os scripts de meio da migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute esses scripts: create\$1index.sql e create\$1constraint.sql. | DBA | 
| Reinicie a tarefa para continuar a captura de dados de alteração (CDC). | Na instância de banco de dados Amazon RDS para PostgreSQL, execute VACUUM e reinicie a tarefa do AWS DMS para aplicar as alterações do CDC em cache. | DBA | 

### Substitua para o banco de dados PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique os registros de log e as tabelas de metadados do AWS DMS. | Valide todos os erros e corrija, se necessário. | DBA | 
| Interrompa todas as dependências do Oracle. | Desligue os receptores no banco de dados Oracle e execute ALTER SYSTEM SWITCH LOGFILE. Interrompa a tarefa do AWS DMS quando ele não mostrar nenhuma atividade. | DBA | 
| Execute os scripts de pós-migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute esses scripts: create\$1foreign\$1key\$1constraint.sql e create\$1triggers.sql. | DBA | 
| Conclua qualquer etapa adicional do Amazon RDS para PostgreSQL. | Incremente as sequências para corresponder ao Oracle, se necessário; execute VACUUM e ANALYZE e tire um instantâneo para fins de conformidade. | DBA | 
| Escolha conectar ao Amazon RDS para PostgreSQL. | Remova os grupos de segurança do AWS DMS do Amazon RDS para PostgreSQL, adicione grupos de segurança de produção e direcione seus aplicativos para o novo banco de dados. | DBA | 
| Limpe os recursos AWS DMS. | Remova os endpoints, as tarefas de replicação, as instâncias de replicação e a instância. EC2  | SysAdmin, DBA | 

## Recursos relacionados
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-resources"></a>
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Definição de preço para o Amazon RDS para PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Uso de um banco de dados PostgreSQL como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [ SharePlex Documentação da Quest](https://support.quest.com/shareplex/9.0.2/technical-documents)

# Migre do Oracle 8i ou 9i para o Amazon RDS para PostgreSQL usando visões materializadas e o AWS DMS
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms"></a>

*Kumar Babu P G e Pragnesh Patel, Amazon Web Services*

## Resumo
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-summary"></a>

Esse padrão descreve como migrar um banco de dados Oracle legado 8i ou 9i on-premises para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora Edição Compatível com PostgreSQL. 

O AWS Database Migration Service (AWS DMS) não é compatível com o Oracle 8i ou 9i como fonte, então esse padrão usa uma instância intermediária de banco de dados Oracle compatível com o AWS DMS, como Oracle 10g ou 11g. Ele também usa o atributo de visões materializadas para migrar dados da instância Oracle 8i/9i de origem para a instância intermediária do Oracle 10g/11g.

O AWS Schema Conversion Tool (AWS SCT) converte o esquema do banco de dados e o AWS DMS migra os dados para o banco de dados PostgreSQL de destino. 

Esse padrão ajuda os usuários que desejam migrar de um bancos de dados Oracle legados com o mínimo de tempo de inatividade do banco de dados. Nessa implementação, o tempo de inatividade seria limitado ao tempo necessário para criar ou validar todas as chaves estrangeiras, acionadores e sequências no banco de dados de destino. 

O padrão usa instâncias do Amazon Elastic Compute Cloud (Amazon EC2) com um banco de dados Oracle 10g/11g instalado para ajudar o AWS DMS a transmitir os dados. Você pode pausar temporariamente a replicação de streaming do banco de dados Oracle on-premises para a instância intermediária da Oracle para permitir que o AWS DMS atualize a validação de dados ou use outra ferramenta de validação de dados. A instância de banco de dados PostgreSQL e o banco de dados Oracle intermediário terão os mesmos dados quando o AWS DMS terminar de migrar as alterações atuais.

## Pré-requisitos e limitações
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle 8i ou 9i de origem em um datacenter on-premises 
+ AWS Direct Connect configurado entre o datacenter on-premises e a AWS
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT instalados em uma máquina local ou na instância em que o AWS SCT EC2 está instalado
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Limitações**
+ O limite de tamanho do banco de dados é 64 TB.

**Versões do produto**
+ Oracle 8i ou 9i para o banco de dados de origem
+ Oracle 10g ou 11g para o banco de dados intermediário
+ PostgreSQL 10.17 ou superior

## Arquitetura
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados do Oracle 8i ou 9i 

**Pilha de tecnologias de destino**
+  Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL

**Arquitetura de destino**

![\[Arquitetura para migração de um banco de dados Oracle legado para o Amazon RDS ou Aurora\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/8add9b21-1b62-46a2-bb8e-0350f36a924a/images/f34f9b0f-f1da-4c27-a385-71b12d16c375.png)


## Ferramentas
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-tools"></a>
+ O [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) ajuda a migrar bancos de dados com rapidez e de forma segura. O banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem do banco de dados. O AWS DMS pode migrar seus dados dos/para os bancos de dados comerciais e de código aberto mais usados no mercado. 
+ O [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) converte automaticamente o esquema e uma maioria dos objetos do código do banco de dados, incluindo visualizações, procedimentos armazenados e funções para um formato compatível com o banco de dados de destino. Os objetos que não são convertidos automaticamente são claramente marcados para que possam ser convertidos manualmente para concluir a migração. O AWS SCT também pode examinar o código-fonte do seu aplicativo em busca de instruções SQL incorporadas e convertê-las como parte de um projeto de conversão de esquema de banco de dados. Durante esse processo, o AWS SCT executa a otimização de código nativo de nuvem convertendo funções legadas do Oracle e do SQL Server em seus equivalentes da AWS, para ajudar você a modernizar seus aplicativos enquanto migra seus bancos de dados. Quando a conversão do esquema estiver concluída, o AWS SCT pode ajudar a migrar dados de uma variedade de data warehouses para o Amazon Redshift usando agentes de migração de dados integrados.  

## Práticas recomendadas
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-best-practices"></a>

Para obter as práticas recomendadas para atualizar visões materializadas, consulte a seguinte documentação da Oracle:
+ [Atualizar visões materializadas](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG-GUID-64068234-BDB0-4C12-AE70-75571046A586)
+ [Atualização rápida para visões materializadas](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8361)

## Épicos
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-epics"></a>

### Instale o Oracle em uma EC2 instância e crie visualizações materializadas
<a name="install-oracle-on-an-ec2-instance-and-create-materialized-views"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a rede para a EC2 instância. | Crie a nuvem privada virtual (VPC), sub-redes, gateway da Internet, tabelas de rotas e grupos de segurança. | AWS SysAdmin | 
| Crie a EC2 instância. | Selecione a Amazon Machine Image (AMI) para a EC2 instância. Escolha o tamanho da instância e configure os detalhes da instância: o número de instâncias (1), a VPC e a sub-rede da etapa anterior, atribuição automática de IP público e outras opções. Adicione armazenamento, configure grupos de segurança e execute a instância. Quando solicitado, crie e salve um par de chaves para a próxima etapa. | AWS SysAdmin | 
| Instale o Oracle na EC2 instância. | Adquira as licenças e os binários Oracle necessários e instale o Oracle 10g ou 11g na instância. EC2  | DBA | 
| Configure a rede Oracle. | Modifique ou adicione entradas em `listener.ora` para se conectar ao banco de dados Oracle 8i/9i de origem on-premises e, em seguida, crie os links do banco de dados. | DBA | 
| Criar visão materializada | Identifique os objetos do banco de dados a serem replicados no banco de dados Oracle 8i/9i de origem e, em seguida, crie visões materializadas para todos os objetos usando o link do banco de dados. | DBA | 
| Implante scripts para atualizar as visões materializadas nos intervalos necessários. | Desenvolva e implante scripts para atualizar visualizações materializadas nos intervalos necessários na instância Amazon EC2 Oracle 10g/11g. Use a opção de atualização incremental para atualizar visões materializadas. | DBA | 

### Converta o esquema do banco de dados Oracle em PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS SCT. | Crie um novo relatório e, em seguida, conecte-se ao Oracle como origem e ao PostgreSQL como destino. Nas configurações do projeto, abrir a guia **SQL Scripting**. Altere o script SQL de destino para **Vários arquivos**. (O AWS SCT não é compatível com bancos de dados Oracle 8i/9i, então você precisa restaurar o despejo somente do esquema na instância intermediária do Oracle 10g/11g e usá-lo como fonte para o AWS SCT.) | DBA | 
| Converta o esquema do banco de dados Oracle. | Na guia **Ação**, escolha **Gerar relatório**, **Converter esquema** e depois, **Salvar como SQL**. | DBA | 
| Modifique os scripts SQL. | Faça modificações com base nas práticas recomendadas. Por exemplo, mude para tipos de dados adequados e desenvolva equivalentes do PostgreSQL para funções específicas do Oracle. | DBA, DevDBA | 

### Crie e configure a instância de banco de dados do Amazon RDS para hospedar o banco de dados convertido
<a name="create-and-configure-the-amazon-rds-db-instance-to-host-the-converted-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a instância de banco de dados do Amazon RDS | No console do Amazon RDS, crie uma nova instância de banco de dados PostgreSQL. | AWS SysAdmin, DBA | 
| Configure a instância de banco de dados. | Especifique a versão do mecanismo de banco de dados, a classe da instância de banco de dados, a implantação Multi-AZ, o tipo de armazenamento e o armazenamento alocado. Insira o identificador da instância de banco de dados, um nome de usuário principal e uma senha mestra. | AWS SysAdmin, DBA | 
| Configure rede e segurança. | Especifique a VPC, o grupo de sub-redes, a acessibilidade pública, a preferência da zona de disponibilidade e os grupos de segurança. | DBA, SysAdmin | 
| Configure as opções do banco de dados. | Especifique o nome do banco de dados, a porta, o grupo de parâmetros, a criptografia e a chave mestra. | DBA, AWS SysAdmin | 
| Configure os backups. | Especifique o período de retenção do backup, a janela do backup, a hora de início, a duração e se as tags devem ser copiadas para instantâneos. | AWS SysAdmin, DBA | 
| Configure opções de monitoramento. | Habilite ou desabilite insights de monitoramento e desempenho avançados. | AWS SysAdmin, DBA | 
| Configure opções de manutenção. | Especifique a atualização automática da versão secundária, a janela de manutenção e o dia, a hora e a duração de início. | AWS SysAdmin, DBA | 
| Execute os scripts de pré-migração do AWS SCT. | Na instância de destino do Amazon RDS para PostgreSQL, crie o esquema do banco de dados usando os scripts SQL do AWS SCT com outras modificações. Isso pode incluir a execução de vários scripts e a criação de usuários, criação de banco de dados, criação de esquemas, tabelas, visualizações, perfis e outros objetos de código. | AWS SysAdmin, DBA | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação no AWS DMS. | Preencha os campos para nome, classe da instância, VPC (igual à EC2 instância), Multi-AZ e acessibilidade pública. Na seção de configuração avançada, especificar o armazenamento alocado, o grupo de sub-rede, a Zona de disponibilidade, os Grupos de segurança da VPC e a chave do AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de origem. | Especifique o nome do endpoint, o tipo, o mecanismo de origem (Oracle), o nome do servidor (o nome DNS privado da EC2 instância), a porta, o modo SSL, o nome de usuário, a senha, o SID, a VPC (especifique a VPC que tem a instância de replicação) e a instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize**e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Conecte o AWS DMS ao Amazon RDS para PostgreSQL. | Crie um grupo de segurança de migração para conexões entre VPCs, se seu banco de dados PostgreSQL estiver em outra VPC. | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de destino. | Especifique o nome do endpoint, o tipo, o mecanismo de origem (PostgreSQL), o nome do servidor (endpoint do Amazon RDS), a porta, o modo SSL, o nome do usuário, a senha, o nome do banco de dados, a VPC (especificar a VPC que tem a instância de replicação) e a instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize**e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Crie a tarefa de replicação do AWS DMS. | Especifique o nome da tarefa, a instância de replicação, os endpoints de origem e destino e a instância de replicação. Para tipo de migração, escolha **Migrar dados existentes e replicar alterações contínuas**. Desmarque a caixa de seleção **Iniciar tarefa ao criar**. | AWS SysAdmin, DBA | 
| Defina as configurações da tarefa de replicação do AWS DMS. | Para o modo de preparação da tabela de destino, escolha **Não fazer nada**. Interrompa a tarefa após a conclusão do carregamento total (para criar chaves primárias). Especifique o modo LOB limitado ou completo e ative as tabelas de controle. Opcionalmente, você pode definir a configuração **CommitRate**avançada. | DBA | 
| Configure os mapeamentos da tabela. | Na seção **Mapeamentos de tabela**, crie uma regra de inclusão para todas as tabelas em todos os esquemas incluídos na migração e, em seguida, crie uma regra de exclusão. Adicione três regras de transformação para converter os nomes do esquema, da tabela e da coluna para letra minúscula e adicione quaisquer outras regras que você precise para essa migração específica. | DBA | 
| Iniciar a tarefa. | Iniciar a tarefa de replicação. Verifique se a carga total está em execução. Execute `ALTER SYSTEM SWITCH LOGFILE` no banco de dados Oracle primário para iniciar a tarefa. | DBA | 
| Execute os scripts de meio da migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute os seguintes scripts: `create_index.sql` e `create_constraint.sql` (se o esquema completo não tiver sido criado inicialmente). | DBA | 
| Reinicie a tarefa para continuar a captura de dados de alteração (CDC). | Execute `VACUUM` na instância de banco de dados Amazon RDS para PostgreSQL e reinicie a tarefa do AWS DMS para aplicar as alterações do CDC em cache. | DBA | 

### Substitua para o banco de dados PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique os logs e as tabelas de validação do AWS DMS. | Verifique e corrija quaisquer erros de replicação ou validação. | DBA | 
| Pare de usar o banco de dados Oracle no on-premises e suas dependências. | Interrompa todas as dependências do Oracle, desligue os receptores no banco de dados Oracle e execute `ALTER SYSTEM SWITCH LOGFILE`. Interrompa a tarefa do AWS DMS quando ele não mostrar nenhuma atividade. | DBA | 
| Execute os scripts de pós-migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute esses scripts: `create_foreign_key_constraint.sql and create_triggers.sql`. Certifique-se de que as sequências estejam atualizadas. | DBA | 
| Conclua etapas adicionais do Amazon RDS para PostgreSQL. | Incremente as sequências para corresponder ao Oracle, se necessário; execute `VACUUM` e `ANALYZE` e tire um snapshot para fins de conformidade. | DBA | 
| Escolha conectar ao Amazon RDS para PostgreSQL. | Remova os grupos de segurança do AWS DMS do Amazon RDS para PostgreSQL, adicione grupos de segurança de produção e direcione seus aplicativos para o novo banco de dados. | DBA | 
| Limpe os objetos do AWS DMS. | Remova os endpoints, as tarefas de replicação, as instâncias de replicação e a instância. EC2  | SysAdmin, DBA | 

## Recursos relacionados
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-resources"></a>
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Definição de preço para o Amazon RDS para PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Uso de um banco de dados PostgreSQL como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

# Migre da Oracle no Amazon EC2 para o Amazon RDS para MySQL usando o AWS DMS e o AWS SCT
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Anil Kunapareddy, Amazon Web Services*

*Harshad Gohil, sem afiliação*

## Resumo
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

O gerenciamento de bancos de dados do Oracle em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) requer recursos e pode ser caro. Mover esses bancos de dados para uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para MySQL facilitará seu trabalho ao otimizar o orçamento geral de TI. O Amazon RDS para MySQL também fornece atributos como Multi-AZ, escalabilidade e backups automáticos. 

Esse padrão orienta você na migração de um banco de dados do Oracle de origem no Amazon EC2 para uma instância de banco de dados do Amazon RDS para MySQL de destino. Ele usa o AWS Database Migration Service (AWS DMS) para migrar os dados e o AWS Schema Conversion Tool (AWS SCT) para converter o esquema e os objetos do banco de dados de origem em um formato compatível com o Amazon RDS para MySQL. 

## Pré-requisitos e limitações
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem com serviços de instância e receptor em execução, no modo ARCHIVELOG
+ Um banco de dados do Amazon RDS para MySQL de destino, com armazenamento suficiente para migração de dados

**Limitações**
+ O AWS DMS não cria um esquema no banco de dados de destino; você precisa fazer isso. O nome do esquema já deve existir para o destino. As tabelas do esquema de origem são importadas para o usuário/esquema, que o AWS DMS usa para se conectar à instância de destino. Você deverá criar várias tarefas de replicação se tiver que migrar vários schemas. 

**Versões do produto**
+ Todas as edições do banco de dados do Oracle para versões 10.2 e posteriores, 11g e até 12.2 e 18c. Para obter a lista mais recente de versões compatíveis, consulte [Uso de um banco de dados do Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Uso de um banco de dados compatível com MySQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados do Oracle suportadas pelo AWS SCT, consulte a [documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html).
+ O AWS DMS oferece suporte às versões 5.5, 5.6 e 5.7 do MySQL. 

## Arquitetura
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados do Oracle em uma instância do EC2  

**Pilha de tecnologias de destino**
+ Instância do banco de dados do Amazon RDS para MySQL

**Arquitetura de migração de dados**

![\[Como usar o AWS DMS para migrar um banco da Oracle hospedado no Amazon EC2 para o Amazon RDS para MySQL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/c00f908c-f348-41dd-a31c-3931b990777a.png)


**Arquitetura de origem e destino**

![\[Como usar o AWS DMS e o AWS SCT para migrar um banco da Oracle hospedado no Amazon EC2 para o Amazon RDS para MySQL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/e7ba7ac0-3094-4142-b355-fb192e242432.png)


## Ferramentas
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS**: o [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) é um serviço web que você pode usar para migrar dados do seu banco de dados on-premises, em uma instância de banco de dados do Amazon RDS ou em um banco de dados em uma instância do EC2, para um banco de dados em um serviço da AWS, como o Amazon RDS para MySQL ou um Instância do EC2. Você também pode migrar um banco de dados de um serviço da AWS para um banco de dados on-premises. Você pode migrar dados entre mecanismos de banco de dados heterogêneos ou homogêneos.
+ **AWS SCT**: o [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) torna as migrações heterogêneas de banco de dados previsíveis ao converter automaticamente o esquema do banco de dados de origem e a maioria do código personalizado, incluindo exibições, procedimentos armazenados e funções, para um formato compatível com o banco de dados de destino. Depois de converter seu esquema de banco de dados e objetos de código usando o AWS SCT, você pode usar o AWS DMS para migrar dados do banco de dados de origem para o banco de dados de destino para concluir seus projetos de migração.

## Épicos
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identificar as versões e mecanismos dos bancos de dados de origem e de destino. |  | DBA/Desenvolvedor | 
| Identificar a instância de replicação do DMS. |  | DBA/Desenvolvedor | 
| Identifique os requisitos de armazenamento, como tipo e capacidade de armazenamento. |  | DBA/Desenvolvedor | 
| Identifique os requisitos de rede, como latência e largura de banda. |  |  DBA/Desenvolvedor | 
| Identifique os requisitos de hardware para as instâncias do servidor de origem e de destino (com base na lista de compatibilidade e nos requisitos de capacidade da Oracle). |  | DBA/Desenvolvedor | 
| Identifique os requisitos de segurança de acesso à rede para bancos de dados de origem e de destino. |  | DBA/Desenvolvedor | 
| Instale os drivers AWS SCT e Oracle. |  | DBA/Desenvolvedor | 
| Determine uma estratégia de backup. |  | DBA/Desenvolvedor | 
| Determine os requisitos de disponibilidade. |  | DBA/Desenvolvedor | 
| Identifique a migração de aplicativos e a estratégia de transição. |  | DBA/Desenvolvedor | 
| Selecione o tipo de instância de banco de dados adequado com base nos atributos de capacidade, armazenamento e rede. |  | DBA/Desenvolvedor | 

### Configure o ambiente.
<a name="configure-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). A origem, o destino e a instância de replicação devem estar na mesma VPC. Também é bom tê-los em uma mesma zona de disponibilidade. |  | Desenvolvedor | 
| Crie os grupos de segurança necessários para acesso ao banco de dados. |  |  Desenvolvedor | 
| Gere e configure um par de chaves. |  | Desenvolvedor | 
| Configure sub-redes, zonas de disponibilidade e blocos CIDR. |  | Desenvolvedor | 

### Configure a fonte: banco de dados do Oracle na instância do EC2
<a name="configure-the-source-oracle-database-on-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Oracle Database no Amazon EC2 com os usuários e perfis necessários. |  | DBA | 
|  Execute as três etapas na próxima coluna para acessar o Oracle de fora da instância do EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.html) | DBA | 
| Quando o Amazon EC2 é reiniciado, o DNS público muda. Certifique-se de atualizar o DNS público do Amazon EC2 em ‘tnsnames’ e ‘receptor’ ou use um endereço IP elástico. |  | DBA/Desenvolvedor | 
| Configure o grupo de segurança da instância do EC2 para que a instância de replicação e os clientes necessários possam acessar o banco de dados de origem. |  | DBA/Desenvolvedor | 

### Configurar o destino: Amazon RDS para MySQL
<a name="configure-the-target-amazon-rds-for-mysql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure e inicie a instância de banco de dados do Amazon RDS para MySQL. |  | Desenvolvedor | 
| Crie o espaço de tabela necessário na instância de banco de dados do Amazon RDS para MySQL. |  | DBA | 
| Configure o grupo de segurança para que a instância de replicação e os clientes necessários possam acessar o banco de dados de destino. |  | Desenvolvedor | 

### Configure o AWS SCT e crie um esquema no banco de dados de destino
<a name="configure-aws-sct-and-create-a-schema-in-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale os drivers AWS SCT e Oracle. |  | Desenvolvedor | 
| Insira os parâmetros apropriados e conecte-se à origem e ao destino. |  | Desenvolvedor | 
| Gere um relatório de conversão de esquema. |  | Desenvolvedor | 
| Corrija o código e o esquema conforme necessário, especialmente espaços de tabela e aspas, e execute no banco de dados de destino. |  |  Desenvolvedor | 
| Valide o esquema na origem x no destino antes de migrar os dados. |  | Desenvolvedor | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Para carga total e captura de dados alterados (CDC) ou apenas CDC, deve-se configurar um atributo de conexão extra. |  | Desenvolvedor | 
| O usuário especificado nas definições do banco de dados do Oracle do AWS DMS de origem deve receber todos os privilégios necessários. Para obter uma lista completa, consulte https://docs.aws.amazon.com/dms/ latest/userguide/CHAP \$1source.oracle.html \$1CHAP\$1Source .Oracle.Self-Managed. |  | DBA/Desenvolvedor | 
| Habilite o log suplementar no banco de dados de origem. |  | DBA/Desenvolvedor | 
| Para carga total e captura de dados de alteração (CDC) ou apenas CDC, ative o modo ARCHIVELOG no banco de dados de origem. |  | DBA | 
| Crie endpoints de origem e destino e teste as conexões. |  | Desenvolvedor | 
| Quando os endpoints forem conectados com êxito, crie uma tarefa de replicação. |  | Desenvolvedor | 
| Selecione somente CDC (ou) carga total mais CDC na tarefa para capturar alterações somente para replicação contínua (ou) carga total mais alterações em andamento, respectivamente. |  | Desenvolvedor | 
| Execute a tarefa de replicação e monitore CloudWatch os logs da Amazon. |  |  Desenvolvedor | 
| Valide os dados nos bancos de dados de origem e de destino. |  | Desenvolvedor | 

### Migre seu aplicativo e substitua
<a name="migrate-your-application-and-cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga as etapas da sua estratégia de migração de aplicativos. |  | DBA, desenvolvedor, proprietário do aplicativo | 
| Siga as etapas da sua estratégia de substituição/troca de aplicativos. |  | DBA, desenvolvedor, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide o esquema e os dados nos bancos de dados de origem x de destino. |  | DBA/Desenvolvedor | 
| Reúna métricas sobre o tempo de migração, porcentagem de manual x ferramenta, economia de custos etc. |  |  DBA/Developer/AppOwner | 
| Revise os documentos e artefatos do projeto. |  | DBA/Developer/AppOwner | 
| Encerre os recursos temporários da AWS. |  | DBA/Desenvolvedor | 
| Feche o projeto e forneça feedback. |  | DBA/Developer/AppOwner | 

## Recursos relacionados
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-resources"></a>
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 
+ [Site do AWS DMS](https://aws.amazon.com/dms/)
+ [Publicações no blog do AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/) 
+ [Estratégias para migrar o Oracle Database para a AWS](https://d1.awsstatic.com/whitepapers/strategies-for-migrating-oracle-database-to-aws.pdf) 
+ [Amazon RDS para Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/) 
+ [Perguntas frequentes sobre a Oracle](https://aws.amazon.com/oracle/faq/) 
+ [Amazon EC2](https://aws.amazon.com/ec2/) 
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Licenciamento do software Oracle no ambiente de computação em nuvem](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

# Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for MariaDB usando o AWS DMS e o AWS SCT
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct"></a>

*Veeranjaneyulu Grandhi e Vinod Kumar, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão orienta você pelas etapas de migração de um banco de dados Oracle em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) para MariaDB. O padrão usa o AWS Database Migration Service (AWS DMS) e a AWS Schema Conversion Tool (AWS SCT) para conversão de esquemas. 

Gerenciar bancos de dados Oracle em EC2 instâncias requer mais recursos e é mais caro do que usar um banco de dados no Amazon RDS. O Amazon RDS facilita a configuração, a operação e a escalabilidade de um banco de dados relacional na nuvem. O Amazon RDS fornece capacidade econômica e redimensionável enquanto automatiza tarefas administrativas, como provisionamento de hardware, configuração de banco de dados, aplicação de patches e backups.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem com serviços de instância e de receptor em execução. Esse banco de dados deve estar no modo ARCHIVELOG.
+ Familiaridade com [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [Uso de Oracle como origem para o AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB 

**Versões do produto**
+ Todas as edições do banco de dados do Oracle para versões 10.2 e posteriores, 11g e até 12.2 e 18c. Para obter a lista mais recente de versões compatíveis, consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e a [tabela de versão AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) na documentação da AWS.
+ O Amazon RDS é compatível com o MariaDB Server Community Server versões 10.3, 10.4, 10.5 e 10.6. Para obter a lista mais recente de versões compatíveis, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html).

## Arquitetura
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Oracle em uma EC2 instância

**Pilha de tecnologias de destino**
+ Amazon RDS para MariaDB

**Arquitetura de migração de dados**

![\[Uso do AWS DMS para a migração.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/ed191145-e5c2-4d61-8827-31f081450c03.png)


**Arquitetura de destino**

![\[Uso do AWS SCT para a migração.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/0171f548-37dd-4110-851c-7e74dfff3732.png)


## Ferramentas
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-tools"></a>
+ O [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) torna as migrações heterogêneas de banco de dados previsíveis ao converter automaticamente o esquema do banco de dados de origem e a maioria do código personalizado, incluindo exibições, procedimentos armazenados e perfis, para um formato compatível com o banco de dados de destino. Depois de converter seu esquema de banco de dados e objetos de código usando o AWS SCT, você pode usar o AWS DMS para migrar dados do banco de dados de origem para o banco de dados de destino para concluir seus projetos de migração. Para obter mais informações, consulte [Uso do Redis como destino para o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) na documentação do AWS SCT.
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda a migrar bancos de dados para a AWS de forma rápida e segura. O banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem do banco de dados. O AWS DMS pode migrar seus dados dos/para os bancos de dados comerciais e de código aberto mais usados no mercado. O AWS DMS oferece suporte a migrações homogêneas, como de Oracle para Oracle, além de migrações heterogêneas entre diferentes plataformas de banco de dados, como de Oracle ou Microsoft SQL Server para Amazon Aurora. Para obter mais informações sobre como migrar bancos de dados Oracle, consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) na documentação da AWS DMS.

## Épicos
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-epics"></a>

### Planeje para a migração
<a name="plan-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identificar versões e mecanismos de banco de dados. | Identificar as versões e mecanismos dos bancos de dados de origem e de destino. | DBA, Desenvolvedor | 
| Identificar a instância de replicação. | Identificar a instância de replicação AWS DMS. | DBA, Desenvolvedor | 
| Identificar os requisitos de armazenamento. | Identificar o tipo e a capacidade de armazenamento. | DBA, Desenvolvedor | 
| Identificar os requisitos de rede. | Identificar a latência e a largura de banda da rede. | DBA, Desenvolvedor | 
| Identificar os requisitos de hardware. | Identificar os requisitos de hardware para as instâncias do servidor de origem e de destino (com base na lista de compatibilidade e nos requisitos de capacidade da Oracle). | DBA, Desenvolvedor | 
| Identificar os requisitos de segurança. | Identificar os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. | DBA, Desenvolvedor | 
| Instalar drivers. | Instale os drivers AWS SCT e Oracle mais recentes. | DBA, Desenvolvedor | 
| Determine uma estratégia de backup. |  | DBA, Desenvolvedor | 
| Determine os requisitos de disponibilidade. |  | DBA, Desenvolvedor | 
| Escolha uma migration/switchover estratégia de aplicação. |  | DBA, Desenvolvedor | 
| Selecione o tipo de instância do . | Selecione o tipo de instância adequado com base nos atributos de capacidade, armazenamento e rede. | DBA, Desenvolvedor | 

### Configure o ambiente.
<a name="configure-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC).  | As instâncias de origem, destino e replicação devem estar na mesma VPC e na mesma Zona de disponibilidade (recomendado). | Desenvolvedor | 
| Criar grupos de segurança. | Crie os grupos de segurança necessários para acesso ao banco de dados. | Desenvolvedor | 
| Gere um par de chaves. | Gere e configure um par de chaves. | Desenvolvedor | 
| Configure outros recursos. | Configure sub-redes, zonas de disponibilidade e blocos CIDR. | Desenvolvedor | 

### Configure a origem
<a name="configure-the-source"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a EC2 instância. | Para obter instruções, consulte a [ EC2 documentação da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | Desenvolvedor | 
| Instale o banco de dados Oracle. | Instale o banco de dados Oracle na EC2 instância, com os usuários e funções necessários. | DBA | 
| Siga as etapas na descrição da tarefa para acessar o Oracle de fora da EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.html) | DBA | 
| Atualize o DNS EC2 público da Amazon. | Depois que a EC2 instância é reiniciada, o DNS público muda. Certifique-se de atualizar o DNS EC2 público da Amazon em `tnsnames` e `listener` ou usar um endereço IP elástico. | DBA, Desenvolvedor | 
| Configure o grupo de segurança da EC2 instância. | Configure o grupo de segurança da EC2 instância para que a instância de replicação e os clientes necessários possam acessar o banco de dados de origem. | DBA, Desenvolvedor | 

### Configure o ambiente do Amazon RDS para MariaDB
<a name="configure-the-target-amazon-rds-for-mariadb-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a instância de banco de dados RDS. | Configure e inicie a instância de banco de dados do Amazon RDS para MariaDB. | Desenvolvedor | 
| Criar tablespaces. | Crie todos os tablespaces necessários no banco de dados MariaDB do Amazon RDS. | DBA | 
| Configurar um grupo de segurança | Configure um grupo de segurança para que a instância de replicação e os clientes necessários possam acessar o banco de dados de destino. | Desenvolvedor | 

### Configure o AWS SCT
<a name="configure-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instalar drivers. | Instale os drivers AWS SCT e Oracle mais recentes. | Desenvolvedor | 
| Conecte-se. | Insira os parâmetros apropriados e conecte-se à origem e ao destino. | Desenvolvedor | 
| Gere um relatório de conversão de esquema. | Gere um relatório de conversão de esquema AWS SCT. | Desenvolvedor | 
| Corrija o código e o esquema conforme necessário. | Faça as correções necessárias no código e no esquema (especialmente nos espaços de tabela e aspas). | DBA, Desenvolvedor | 
| Valide o esquema. | Valide o esquema na origem versus no destino antes de carregar os dados. | Desenvolvedor | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Defina um atributo de conexão. | Para carga total e captura de dados alterados (CDC) ou apenas CDC, configure um atributo de conexão extra. Para obter mais informações, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html). | Desenvolvedor | 
| Habilite o registro em log complementar. | Habilite o log suplementar no banco de dados de origem. | DBA, Desenvolvedor | 
| Ativar o modo log de arquivo. | Para carga total e CDC (ou apenas CDC), habilite o modo log de arquivo no banco de dados de origem. | DBA | 
| Crie e teste endpoints. | Crie endpoints de origem e destino e teste as conexões. Para obter mais informações, consulte a [documentação do Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | Desenvolvedor | 
| Criar uma tarefa de replicação. | Quando os endpoints forem conectados com êxito, crie uma tarefa de replicação. Para obter mais informações, consulte a [documentação do Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html). | Desenvolvedor | 
| Escolha o tipo de replicação. | Escolha **somente CDC** ou **Carga total mais CDC** na tarefa para capturar alterações somente para replicação contínua ou para carga total mais alterações em andamento, respectivamente. | Desenvolvedor | 
| Inicie e monitore a tarefa. | Inicie a tarefa de replicação e monitore CloudWatch os registros da Amazon. Para obter mais informações, consulte a [documentação do Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Desenvolvedor | 
| Valide os dados. | Valide os dados nos bancos de dados de origem e de destino. | Desenvolvedor | 

### Migre aplicativos e substitua para o banco de dados de destino
<a name="migrate-applications-and-cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos escolhida. |  | DBA, proprietário do aplicativo, desenvolvedor | 
| Siga a cutover/switchover estratégia de aplicação escolhida. |  | DBA, proprietário do aplicativo, desenvolvedor | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide o esquema e os dados. | Certifique-se de que o esquema e os dados sejam validados com sucesso na origem em comparação ao destino antes do encerramento do projeto. | DBA, Desenvolvedor | 
| Colete métricas. | Reúna métricas de tempo de migração, porcentagem de uso manual em comparação com as tarefas da ferramenta, economia de custos e dados similares. | DBA, proprietário do aplicativo, desenvolvedor | 
| Revise a documentação. | Revise os documentos e artefatos do projeto. | DBA, proprietário do aplicativo, desenvolvedor | 
| Desligar recursos. | Encerre os recursos temporários da AWS. | DBA, Desenvolvedor | 
| Fechar o projeto. | Feche o projeto de migração e forneça qualquer feedback. | DBA, proprietário do aplicativo, desenvolvedor | 

## Recursos relacionados
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-resources"></a>
+ [Visão geral do MariaDB do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)
+ [Detalhes de produto do Amazon RDS para MariaDB](https://aws.amazon.com/rds/mariadb/features)
+ [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Estratégias para migrar bancos de dados Oracle para a AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html)
+ [Licenciamento do software Oracle no ambiente de computação em nuvem](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)
+ [Amazon RDS para Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/)
+ [Visão geral do AWS DMS](https://aws.amazon.com/dms/)
+ [Publicações no blog do AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/)
+ [ EC2 Visão geral da Amazon](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)

# Migre um banco de dados Oracle on-premises para o Amazon RDS para MySQL, usando o AWS DMS e o AWS SCT.
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Sergey Dmitriev e Naresh Damera, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão orienta você na migração de um banco de dados Oracle on-premises para uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) para MySQL. Ele usa o AWS Database Migration Service (AWS DMS) para migrar os dados e o AWS Schema Conversion Tool (AWS SCT) para converter o esquema e os objetos do banco de dados de origem em um formato compatível com o Amazon RDS para MySQL. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem em um datacenter on-premises 

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ Todas as edições do banco de dados Oracle para as versões 11g (versões 11.2.0.3.v1 e mais recente) e até 12.2 e 18c. Para obter a lista mais recente de versões compatíveis, consulte [Usar um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados Oracle suportadas pelo AWS SCT, consulte a documentação do [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ O AWS DMS é compatível com as versões 5.5, 5.6 e 5.7 do MySQL. Para obter a lista mais recente de versões compatíveis, consulte [Usar um banco de dados compatível com MySQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) na documentação da AWS. 

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados on-premises da Oracle

**Pilha de tecnologias de destino**
+ Instância do banco de dados do Amazon RDS para MySQL

**Arquitetura de migração de dados**

![\[Nuvem AWS architecture showing data migration from on-premises to RDS via VPC, Internet Gateway, and AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0385e5ad-a1ca-4c29-945b-592321d95f9d/images/c872e033-b13a-4436-b503-0632b5d437ae.png)


 

## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS**: o [AWS Database Migration Services](https://docs.aws.amazon.com/dms/latest/userguide/) (AWS DMS) ajuda a migrar bancos de dados relacionais, data warehouses, bancos de dados NoSQL e outros tipos de armazenamentos de dados. É possível usar o AWS DMS para migrar seus dados para a Nuvem AWS, entre instâncias on-premises (por meio de uma configuração da Nuvem AWS) ou entre combinações de nuvem e configurações locais.
+ **AWS SCT**: a [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) é usada para converter seu esquema de banco de dados de um mecanismo de banco de dados para outro. O código personalizado que a ferramenta converte inclui visualizações, procedimentos armazenados e funções. Qualquer código que não possa ser convertido automaticamente pela ferramenta será marcado em destaque para que você mesmo possa convertê-lo.

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a versão e o mecanismo dos bancos de dados de origem e de destino. |  | DBA | 
|  Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, SysAdmin | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Escolher o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin  | 
| Identifique a estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC) e sub-redes. |  | SysAdmin | 
| Crie os grupos de segurança e as listas de controle de acesso à rede (ACLs). |  | SysAdmin | 
| Configure e inicie uma instância de banco de dados do Amazon RDS. |  | DBA, SysAdmin | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre o esquema do banco de dados usando o AWS SCT. |  | DBA | 
| Migrar dados usando o AWS DMS. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use o AWS SCT para analisar e converter o código SQL dentro do código do aplicativo. | Para obter mais informações, consulte https://docs.aws.amazon.com/SchemaConversionTool/ latest/userguide/CHAP \$1Converting.app.html. | Proprietário do App | 
| Siga a estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA SysAdmin, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, SysAdmin | 
| Revise e valide os documentos do projeto. |  | DBA, SysAdmin | 
| Reúna métricas sobre o tempo de migração, % de manual x ferramenta, economia de custos etc. |  | DBA, SysAdmin | 
| Feche o projeto e forneça feedback. |  |  | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-related-resources"></a>

**Referências**
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutoriais e vídeos**
+ [Conceitos básicos da AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (vídeo)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (vídeo)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Migrar um banco de dados Oracle on-premises para o Amazon RDS para PostgreSQL usando um Oracle bystander e o AWS DMS
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms"></a>

*Cady Motyka, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-summary"></a>

Este padrão descreve como você pode migrar um banco de dados Oracle on-premises para qualquer um dos seguintes serviços de banco de dados da AWS compatíveis com PostgreSQL com o mínimo de tempo de inatividade:
+ Amazon Relational Database Service (Amazon RDS) para PostgreSQL
+ Amazon Aurora Edição Compatível com PostgreSQL

A solução usa o AWS Database Migration Service (AWS DMS) para migrar os dados, o AWS Schema Conversion Tool (AWS SCT) para converter o esquema do banco de dados e um banco de dados da Oracle bystander para ajudar a gerenciar a migração. Nessa implementação, o tempo de inatividade é restrito ao tempo necessário para criar ou validar todas as chaves estrangeiras no banco de dados. 

A solução também usa instâncias do Amazon Elastic Compute Cloud (Amazon EC2) com um banco de dados de espectadores Oracle para ajudar a controlar o fluxo de dados por meio do AWS DMS. Você pode pausar temporariamente a replicação de transmissão do banco de dados on-premises da Oracle para a Oracle bystander para ativar o AWS DMS para acompanhar a validação de dados ou usar outra ferramenta de validação de dados. A instância de banco de dados Amazon RDS para PostgreSQL ou a instância de banco de dados compatível com o Aurora PostgreSQL e o banco de dados de bystander terão os mesmos dados quando o AWS DMS terminar de migrar as alterações atuais. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem Oracle em um datacenter on-premises com um banco de dados Active Data Guard configurado em espera
+ AWS Direct Connect configurado entre o datacenter on-premises e o AWS Secrets Manager para armazenar os segredos do banco de dados
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT, instalados em uma máquina local ou na instância em que o AWS SCT EC2 está instalado
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ O AWS DMS oferece suporte a todas as edições do banco de dados Oracle para as versões 10.2 e versões posteriores (para versões 10.x), 11g e até 12.2, 18c e 19c. Para obter a lista mais recente de versões compatíveis, consulte [Usar um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados Oracle suportadas pelo AWS SCT, consulte a [documentação do AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ O AWS DMS é compatível com o PostgreSQL versão 9.4 e posterior (para versões 9.x), 10.x, 11.x, 12.x e 13x. Para obter as informações mais recentes, consulte [Uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) na documentação da AWS.

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Oracle on-premises
+ Uma EC2 instância que contém um espectador do banco de dados Oracle

**Pilha de tecnologias de destino**
+ Instância do Amazon RDS para PostgreSQL ou Aurora PostgreSQL, PostgreSQL 9.3 e versões posteriores

**Arquitetura de destino**

O diagrama a seguir mostra um exemplo de fluxo de trabalho para migrar um banco de dados Oracle para um banco de dados AWS compatível com PostgreSQL usando o AWS DMS e um bystander Oracle:

![\[Migração de um banco de dados Oracle local para o PostgreSQL na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ A [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
+ 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.

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-epics"></a>

### Converta o esquema do banco de dados Oracle em PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS SCT. | Crie um novo relatório e conecte-se ao Oracle como origem e ao PostgreSQL como destino. Em **Configurações do projeto**, vá até a guia **SQL Scripting**. Altere o **script SQL de destino** para **vários arquivos**. Esses arquivos serão usados posteriormente e nomeados da seguinte forma:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Converta o esquema do banco de dados Oracle. | Na guia **Ação**, escolha **Gerar relatório**. Em seguida, escolha **Converter esquema** e escolha **Salvar como SQL**. | DBA | 
| Modifique os scripts. | Por exemplo, talvez você queira modificar o script se um número no esquema de origem tiver sido convertido para o formato numérico no PostgreSQL, mas você precise usar o **BIGINT** em vez disso para melhorar o desempenho. | DBA | 

### Crie e configure a instância de banco de dados do Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a instância de banco de dados do Amazon RDS | Na região da AWS correta, crie uma nova instância de banco de dados PostgreSQL. Para obter mais informações, consulte [Criar uma instância de banco de dados PostgreSQL e conectar a um banco de dados em uma instância de banco de dados PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) na documentação do Amazon RDS. | AWS SysAdmin, DBA | 
| Configure as especificações da instância de banco de dados. | Especifique a versão do mecanismo de banco de dados, a classe da instância de banco de dados, a implantação Multi-AZ, o tipo de armazenamento e o armazenamento alocado. Insira o identificador da instância de banco de dados, um nome de usuário primária e uma senha primária. | AWS SysAdmin, DBA | 
| Configure rede e segurança. | Especifique a nuvem privada virtual (VPC), o grupo de sub-rede, a acessibilidade pública, a preferência da zona de disponibilidade e os grupos de segurança. | DBA, SysAdmin | 
| Configure as opções do banco de dados. | Especifique o nome do banco de dados, a porta, o grupo de parâmetros, a criptografia e a chave KMS. | AWS SysAdmin, DBA | 
| Configure os backups. | Especifique o período de retenção do backup, a janela do backup, a hora de início, a duração e se as tags devem ser copiadas para instantâneos. | AWS SysAdmin, DBA | 
| Configure opções de monitoramento. | Ative ou desative insights aprimorados de monitoramento e desempenho. | AWS SysAdmin, DBA | 
| Configure opções de manutenção. | Especifique a atualização automática da versão secundária, a janela de manutenção e o dia, a hora e a duração de início. | AWS SysAdmin, DBA | 
| Execute os scripts de pré-migração do AWS SCT. | Na instância do Amazon RDS, execute os seguintes scripts gerados pelo AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | AWS SysAdmin, DBA | 

### Configurar o Oracle bystander na Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a rede para a Amazon EC2. | Crie a nova VPC, sub-redes, gateway da Internet, tabelas de rotas e grupos de segurança. | AWS SysAdmin | 
| Crie a EC2 instância. | Na região apropriada da AWS, crie uma nova EC2 instância. Selecione a imagem de máquina da Amazon (AMI), escolha o tamanho da instância e configure os detalhes da instância: número de instâncias (1), a VPC e a sub-rede que você criou na tarefa anterior, atribuição automática de IP público e outras opções. Adicione armazenamento, configure grupos de segurança e inicie. Quando solicitado, crie e salve um par de chaves para a próxima etapa. | AWS SysAdmin | 
| Conecte o banco de dados de origem Oracle à EC2 instância. | Copie o endereço IP IPv4 público e o DNS em um arquivo de texto e conecte-se usando SSH da seguinte forma: **ssh -i “your\$1file.pem” EC2-user@<your-IP** - -DNS>. address-or-public | AWS SysAdmin | 
| Configure o host inicial para um espectador na Amazon. EC2 | Configure chaves SSH, perfil bash, ORATAB e links simbólicos. Crie diretórios Oracle. | AWS SysAdmin, administrador de Linux | 
| Configure a cópia do banco de dados para um espectador na Amazon EC2 | Use o RMAN para criar uma cópia do banco de dados, ativar o registro suplementar e criar o arquivo de controle em espera. Depois que a cópia estiver concluída, coloque o banco de dados no modo de recuperação. | AWS SysAdmin, DBA | 
| Configure o Oracle Data Guard. | Modifique seu arquivo **listener.ora** e inicie o receptor. Configure um novo destino de arquivamento. Coloque o espectador no modo de recuperação, substitua os arquivos temporários para evitar corrupção futura, instale um crontab, se necessário, para evitar que o diretório de arquivamento fique sem espaço e edite o **manage-trclog-files-oraclearquivo.cfg** para a origem e o modo de espera. | AWS SysAdmin, DBA | 
| Prepare o banco de dados Oracle para sincronizar o envio. | Adicione os arquivos de log em espera e altere o modo de recuperação. Altere o envio do log para **SYNC AFFIRM** na fonte primária e na fonte em espera. Ative os registros primários, confirme por meio do registro de alerta do EC2 espectador da Amazon que você está usando os arquivos de log em espera e confirme se o fluxo de redo está fluindo no SYNC. | AWS SysAdmin, DBA | 

### Migre dados com o AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação no AWS DMS. | Preencha os campos para nome, classe da instância, VPC (igual à EC2 instância da Amazon), Multi-AZ e acessibilidade pública. Em **Avançado**, especifique o armazenamento alocado, o grupo de sub-rede, a zona de disponibilidade, os grupos de segurança da VPC e a chave do AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de origem. | Especifique o nome do endpoint, tipo, mecanismo de origem (Oracle), nome do servidor (nome DNS EC2 privado da Amazon), porta, modo SSL, nome de usuário, senha, SID, VPC (especifique a VPC que tem a instância de replicação) e instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize**e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Conecte o AWS DMS ao Amazon RDS para PostgreSQL. | Crie um grupo de segurança de migração para conexões entre VPCs. | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de destino. | Especifique o nome do endpoint, o tipo, o mecanismo de origem (PostgreSQL), o nome do servidor (endpoint do Amazon RDS), a porta, o modo SSL, o nome do usuário, a senha, o nome do banco de dados, a VPC (especificar a VPC que tem a instância de replicação) e a instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize **e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Crie a tarefa de replicação do AWS DMS. | Especifique o nome da tarefa, a instância de replicação, os endpoints de origem e destino e a instância de replicação. Para tipo de migração, escolha **Migrar dados existentes e replicar alterações contínuas**. Desmarque a caixa de seleção **Iniciar tarefa ao criar**. | AWS SysAdmin, DBA | 
| Defina as configurações da tarefa de replicação do AWS DMS. | Para o modo de preparação da tabela de destino, escolha **Não fazer nada**. Interrompa a tarefa após a conclusão do carregamento total (para criar chaves primárias). Especifique o modo LOB limitado ou completo e ative as tabelas de controle. Opcionalmente, você pode definir a configuração **CommitRate**avançada. | DBA | 
| Configure mapeamentos de tabelas. | Na seção **Mapeamentos de tabela**, crie uma regra de **inclusão** para todas as tabelas em todos os esquemas incluídos na migração e, em seguida, crie uma regra de **exclusão**. Adicione três regras de transformação para converter os nomes do esquema, da tabela e da coluna para letra minúscula e adicione quaisquer outras regras necessárias para essa migração específica. | DBA | 
| Iniciar a tarefa. | Iniciar a tarefa de replicação. Verifique se a carga total está em execução. Execute **ALTER SYSTEM SWITCH LOGFILE** no banco de dados Oracle primário para iniciar a tarefa. | DBA | 
| Execute os scripts de meio da migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Reinicie a tarefa para continuar a captura de dados de alteração (CDC). | Execute **VACUUM** na instância de banco de dados Amazon RDS para PostgreSQL e reinicie a tarefa do AWS DMS para aplicar as alterações do CDC em cache. | DBA | 

### Substitua para o banco de dados PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique se há erros nos registros e nas tabelas de validação do AWS DMS. | Verifique e corrija quaisquer erros de replicação ou validação. | DBA | 
| Interrompa todas as dependências do Oracle. | Interrompa todas as dependências do Oracle, desligue os receptores no banco de dados Oracle e execute **ALTER SYSTEM SWITCH LOGFILE**. Interrompa a tarefa do AWS DMS quando ele não mostrar nenhuma atividade. | DBA | 
| Execute os scripts de pós-migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Conclua etapas adicionais do Amazon RDS para PostgreSQL. | Incremente as sequências para corresponder ao Oracle, se necessário; execute **VACUUM** e **ANALYZE** e tire um instantâneo para fins de conformidade. | DBA | 
| Escolha conectar ao Amazon RDS para PostgreSQL. | Remova os grupos de segurança do AWS DMS do Amazon RDS para PostgreSQL, adicione grupos de segurança de produção e direcione seus aplicativos para o novo banco de dados. | DBA | 
| Limpe objetos do AWS DMS. | Remova os endpoints, as tarefas de replicação, as instâncias de replicação e a instância. EC2  | SysAdmin, DBA | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Preço do Amazon RDS para PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 

# Migre um banco de dados Oracle para o Amazon Redshift usando o AWS DMS e o AWS SCT
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct"></a>

*Piyush Goyal e Brian Motzer, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão fornece orientação para migrar bancos de dados Oracle para um data warehouse em nuvem do Amazon Redshift na nuvem da Amazon Web Services (AWS) usando o AWS Database Migration Service (AWS DMS) e a AWS Schema Conversion Tool (AWS SCT). O padrão abrange bancos de dados Oracle de origem que estão no local ou instalados em uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Também abrange o Amazon Relational Database Service (Amazon RDS) para bancos de dados Oracle.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Um banco de dados Oracle que está sendo executado em um datacenter on-premises ou na Nuvem AWS
+ Uma conta AWS ativa
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados do Amazon Redshift como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ Conhecimento do Amazon RDS, do Amazon Redshift, das tecnologias de banco de dados aplicáveis e do SQL
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT, onde o AWS SCT está instalado

**Versões do produto**
+ No caso de bancos de dados Oracle autogerenciados, o DMS da AWS é compatível com todas as edições de banco de dados Oracle para as versões 10.2 e superiores (para versões 10.*x*), 11g e até 12.2, 18c e 19c. No caso de bancos de dados do Amazon RDS para Oracle, o DMS da AWS é compatível com todas as edições de banco de dados Oracle para as versões 11g (versões 11.2.0.4 e superiores) e até 12.2, 18c e 19c. Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos.

## Arquitetura
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**

Um dos seguintes:
+ Um banco de dados Oracle on-premises
+ Um banco de dados Oracle em uma EC2 instância
+ Instância de banco de dados do Amazon RDS para Oracle

**Pilha de tecnologias de destino**
+ banco de dados de origem

**Arquitetura de destino**

*De um banco de dados Oracle em execução na Nuvem AWS para o Amazon Redshift:*

![\[Migração de um banco de dados da Oracle na Nuvem AWS para um data warehouse do Amazon Redshift.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/7140e819-81d6-45c4-805b-8e10828076a7.png)


*De um banco de dados Oracle em execução em um datacenter on-premises para o Amazon Redshift:*

![\[Migração de um banco de dados da Oracle on-premises para um data warehouse do Amazon Redshift.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/d6654b48-0e1b-4b01-a261-5a640be01fd7.png)


## Ferramentas
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html): o AWS Data Migration Service (AWS DMS) ajuda você a migrar bancos de dados para a AWS de forma rápida e segura. O banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem do banco de dados. O AWS DMS pode migrar seus dados dos/para os bancos de dados comerciais e de código aberto mais usados no mercado. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html): a AWS Schema Conversion Tool (AWS SCT) pode ser usada para converter seu esquema de banco de dados existente de um mecanismo de banco de dados para outro. Ele oferece suporte a vários mecanismos de banco de dados, incluindo Oracle, SQL Server e PostgresSQL, como fontes.

## Épicos
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões do banco de dados. | Valide as versões de origem e destino do banco de dados e certifique-se de que elas sejam suportadas pelo AWS DMS. Para obter informações sobre as versões compatíveis do Oracle Database, consulte [Usando um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Para obter informações sobre o uso do Amazon Redshift como destino, consulte [Usar um banco de dados do Amazon Redshift como destino do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html). | DBA | 
| Criar um grupo de segurança e de VPC. | Crie uma nuvem privada virtual (VPC) na conta da AWS, caso ela ainda não exista. Crie um grupo de segurança para tráfego de saída para bancos de dados de origem e destino. Para obter mais informações, consulte a [documentação do Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Administrador de sistemas | 
| Instale a AWS SCT. | Faça download e instale a versão mais recente do AWS SCT e seus drivers correspondentes. Para obter mais informações, consulte [Instalação, verificação e atualização do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html). | DBA | 
| Criar um usuário para a tarefa do AWS DMS. | Crie um usuário do AWS DMS no banco de dados de origem e conceda a ele privilégios READ. Esse usuário será usado tanto pelo AWS SCT quanto pelo AWS DMS. | DBA | 
| Testar a conectividade do banco de dados. | Teste a conectividade à instância de banco de dados do Oracle. | DBA | 
| Crie de um novo projeto no AWS SCT. | Abra a ferramenta AWS SCT e crie um novo projeto. | DBA | 
| Analise o esquema Oracle a ser migrado. | Use o AWS SCT para analisar o esquema a ser migrado e gerar um relatório de avaliação da migração do banco de dados. Para obter mais informações, consulte [Criação de um relatório de avaliação de migração de banco de dados](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.Create.html) na documentação do AWS SCT. | DBA | 
| Analisar o relatório de avaliação. | Analise o relatório para verificar a viabilidade da migração. Alguns objetos de banco de dados podem exigir conversão manual. Para obter mais informações sobre o relatório, consulte [Visualização do relatório de avaliação](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html) na documentação do AWS SCT. | DBA | 

### Preparar o banco de dados de destino
<a name="prepare-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um cluster do Amazon Redshift. | Crie um cluster do Amazon Redshift dentro da VPC que você criou anteriormente. Para obter mais informações, consulte [Clusters do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) na documentação do Amazon Redshift. | DBA | 
| Criar usuários do banco de dados. | Extraia a lista de usuários, funções e concessões do banco de dados de origem da Oracle. Crie usuários no banco de dados de destino do Amazon Redshift e aplique as funções da etapa anterior. | DBA | 
| Avaliar parâmetros do banco de dados. | Analise as opções, os parâmetros, os arquivos de rede e os links do banco de dados de origem Oracle e avalie sua aplicabilidade ao destino.             | DBA | 
| Aplique todas as configurações relevantes ao destino.  | Para obter mais informações sobre essa etapa, consulte [Referência de configuração](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) na documentação do Amazon Redshift. | DBA | 

### Criar objetos no banco de dados de destino
<a name="create-objects-in-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um usuário do AWS DMS no banco de dados de destino. | Crie um usuário do AWS DMS no banco de dados de destino e conceda a ele privilégios de leitura e gravação. Valide a conectividade do AWS SCT. | DBA | 
| Converta o esquema, revise o relatório SQL e salve quaisquer erros ou avisos. | Para obter mais informações, consulte [Conversão de esquemas de banco de dados usando o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) na documentação do AWS SCT. | DBA | 
| Aplique as alterações do esquema ao banco de dados de destino ou salve-as como um arquivo .sql. | Para obter instruções, consulte [Salvar e aplicar seu esquema convertido no AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.DW.html#CHAP_Converting.DW.SaveAndApply) na documentação do AWS SCT. | DBA | 
| Valide os objetos no banco de dados de destino. | Valide os objetos que foram criados na etapa anterior no banco de dados de destino. Reescreva ou redesenhe qualquer objeto que não tenha sido convertido com sucesso. | DBA | 
| Desative chaves e gatilhos externos. | Desative qualquer chave e gatilhos externos. Isso pode causar problemas de carregamento de dados durante o processo de carregamento completo ao executar o AWS DMS. | DBA | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de replicação do AWS DMS. | Faça login no console de gerenciamento da AWS e abra o console do AWS DMS. No painel de navegação, escolha **Instâncias de replicação**, **Criar instância de replicação**. Para obter instruções detalhadas, consulte a [etapa 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance) em *Introdução ao AWS DMS* na documentação do AWS DMS. | DBA | 
| Criar endpoints de origem e de destino. | Crie endpoints de origem e destino, teste a conexão da instância de replicação com os endpoints de origem e de destino. Para obter instruções detalhadas, consulte a [etapa 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints) em *Introdução ao AWS DMS* na documentação do AWS DMS. | DBA | 
| Criar uma tarefa de replicação. | Crie uma tarefa de replicação e selecione o método de migração apropriado. Para obter instruções detalhadas, consulte a [etapa 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) em *Introdução ao AWS DMS* na documentação do AWS DMS. | DBA | 
| Iniciar a replicação dos dados. | Inicie a tarefa de replicação e monitore os logs em busca de erros. | DBA | 

### Migrar seu aplicativo
<a name="migrate-your-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie servidores de aplicações. | Crie os novos servidores de aplicativos na AWS. | Proprietário do aplicativo | 
| Migre o código do aplicativo. | Migre o código do aplicativo para os novos servidores. | Proprietário do aplicativo | 
| Configure o servidor de aplicações. | Configure o servidor do aplicativo para o banco de dados e os drivers de destino. | Proprietário do aplicativo | 
| Otimize o código do aplicativo. | Otimize o código do aplicativo para o mecanismo de destino. | Proprietário do aplicativo | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide os usuários. | No banco de dados de destino do Amazon Redshift, valide os usuários e conceda a eles funções e privilégios. | DBA | 
| Valide se o aplicativo está bloqueado. | Verifique se o aplicativo está bloqueado para evitar mais alterações. | Proprietário do aplicativo | 
| Valide os dados. | Valide os dados no banco de dados de destino do Amazon Redshift. | DBA | 
| Ative chaves e gatilhos externos. | Ative chaves e gatilhos externos no banco de dados de destino do Amazon Redshift. | DBA | 
| Conecte-se ao novo banco de dados. | Configure o aplicativo para se conectar ao novo banco de dados do Amazon Redshift. | Proprietário do aplicativo | 
| Execute as verificações finais. | Faça uma verificação final e abrangente do sistema antes de entrar em operação. | DBA, proprietário do aplicativo | 
| Acesse. | Acesse o banco de dados de destino do Amazon Redshift. | DBA | 

### Feche o projeto de migração
<a name="close-the-migration-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. | Encerre recursos temporários da AWS, como a instância de replicação do AWS DMS e a EC2 instância usada para o AWS SCT.  | DBA, administrador de sistemas | 
| Analise documentos.  | Revise e valide os documentos do projeto de migração.     | DBA, administrador de sistemas | 
| Colete métricas. | Colete informações sobre o projeto de migração, como o tempo de migração, a porcentagem de tarefas manuais versus tarefas de ferramentas e a economia total de custos.  | DBA, administrador de sistemas | 
| Encerre o projeto. | Feche o projeto e forneça feedback. | DBA, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-resources"></a>

**Referências**
+ [Guia do usuário do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Guia do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Bem-vindo ao Guia de conceitos básicos do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

**Tutoriais e vídeos**
+ [Mergulhe profundamente no AWS SCT e no AWS DMS](https://www.youtube.com/watch?v=kJs9U4ys5FE) (apresentação do AWS re:Invent 2019)
+ [Introdução ao AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)

# Migrar um banco de dados Oracle para o Aurora PostgreSQL usando AWS DMS e AWS SCT
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct"></a>

*Senthil Ramasamy, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão descreve como migrar um banco de dados Oracle para o Amazon Aurora Edição Compatível com PostgreSQL usando o AWS Data Migration Service (AWS DMS) e o AWS Schema Conversion Tool (AWS SCT). 

O padrão abrange bancos de dados Oracle de origem que estão no local, bancos de dados Oracle instalados em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) e Amazon Relational Database Service (Amazon RDS) para bancos de dados Oracle. O padrão converte esses bancos de dados em compatíveis com o Aurora PostgreSQL.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle em um datacenter on-premises ou na Nuvem AWS.
+ Clientes SQL instalados em uma máquina local ou em uma EC2 instância.
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT, instalados em uma máquina local ou em uma instância em que o AWS SCT EC2 está instalado. 

**Limitações**
+ Limite de tamanho do banco de dados: 128 TB 
+ Se o banco de dados de origem suportar um aplicativo comercial off-the-shelf (COTS) ou for específico do fornecedor, talvez você não consiga convertê-lo em outro mecanismo de banco de dados. Antes de usar esse padrão, confirme se o aplicativo é compatível com o Aurora PostgreSQL.  

**Versões do produto**
+ No caso de bancos de dados Oracle autogerenciados, o DMS da AWS é compatível com todas as edições de banco de dados Oracle para as versões 10.2 e posteriores (para versões 10.x), 11g e até 12.2, 18c e 19c. Para obter a lista mais recente das versões compatíveis do banco de dados Oracle (tanto autogerenciadas quanto do Amazon RDS para Oracle), [consulte Usando um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Usando um banco de dados PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) como destino para o AWS DMS. 
+ Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados Oracle suportadas pelo AWS SCT, consulte a documentação do [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 
+ [O Aurora oferece suporte às versões do PostgreSQL listadas nas versões de mecanismo e versões do Amazon Aurora PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)

## Arquitetura
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**

Um dos seguintes:
+ Um banco de dados Oracle on-premises
+ Um banco de dados Oracle em uma EC2 instância  
+ Instância de banco de dados do Amazon RDS para Oracle

**Pilha de tecnologias de destino**
+ Aurora compatível com PostgreSQL 

**Arquitetura de destino**

![\[Arquitetura de destino para migrar bancos de dados Oracle para o Aurora compatível com PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/68beb634-926e-4908-97b1-edcd23e06a2b.png)


**Arquitetura de migração de dados**
+ De um banco de dados Oracle que executa na Nuvem AWS   
![\[Arquitetura de migração de dados para um banco de dados Oracle na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/7fc32019-3db1-485b-93e5-6d5539be048c.png)

   
+ De um banco de dados Oracle que executa em um datacenter on-premises  
![\[Arquitetura de migração de dados para um banco de dados Oracle em um datacenter on-premises.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/c70d8774-aef7-4414-9766-ce8f25757c4b.png)

## Ferramentas
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ O [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) é compatível com as migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maioria do código personalizado em um formato compatível com o banco de dados de destino.

## Épicos
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar o banco de dados de origem. | Para preparar o banco de dados de origem, consulte [Como usar o banco de dados Oracle como origem para o AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) na documentação do AWS SCT. | DBA | 
| Crie uma EC2 instância para o AWS SCT. | Crie e configure uma EC2 instância para o AWS SCT, se necessário. | DBA | 
| Baixe o AWS SCT. | Faça download da versão mais recente do AWS SCT e dos drivers associados. Para obter mais informações, consulte [Instalação, verificação e atualização do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) na documentação do AWS SCT. | DBA | 
| Adicione usuários e permissões do IAM. | Adicione e valide os pré-requisitos de usuários e permissões no banco de dados de origem. | DBA | 
| Crie um projeto AWS SCT. | Crie um projeto AWS SCT para o workload e conecte-se ao banco de dados de origem. Para obter instruções, consulte [Como criar um projeto do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Project) e [Adicionar servidores de banco de dados](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers) na documentação do AWS SCT. | DBA | 
| Avaliar a viabilidade. | Gere um relatório de avaliação, que resume os itens de ação para esquemas que não podem ser convertidos automaticamente e fornece estimativas para esforços de conversão manual. Para obter mais informações, consulte [Criação e revisão do relatório de avaliação da migração do banco](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) de dados na documentação do AWS SCT. | DBA | 

### Preparar o banco de dados de destino
<a name="prepare-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de banco de dados do Amazon RDS. | Crie uma instância de banco de dados Amazon RDS de destino, usando o Amazon Aurora como mecanismo de banco de dados. Para obter instruções, consulte [Criação de uma instância de banco de dados Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) na documentação do Amazon RDS. | DBA | 
| Extraia usuários, funções e permissões. | Extraia a lista de usuários, funções e permissões do banco de dados de origem. | DBA | 
| Usuários do mapa. | Mapeie os usuários do banco de dados existentes para os novos usuários do banco de dados. | Proprietário do App | 
| Crie usuários.  | Criar usuários no banco de dados de destino. | DBA, proprietário do aplicativo | 
| Aplique funções. | Aplique funções da etapa anterior ao banco de dados de destino. | DBA | 
| Verifique as opções, os parâmetros, os arquivos de rede e os links do banco de dados. | Examine o banco de dados de origem em busca de opções, parâmetros, arquivos de rede e links de banco de dados e, em seguida, avalie sua aplicabilidade ao banco de dados de destino. | DBA | 
| Configurações de aplicação. | Aplique todas as configurações relevantes ao banco de dados de destino. | DBA | 

### Transferir objetos
<a name="transfer-objects"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a conectividade do AWS SCT. | Configure a conectividade do AWS SCT com o banco de dados de destino. | DBA | 
| Converta o esquema usando o AWS SCT. | O AWS SCT converte automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. Qualquer código que não possa ser convertido automaticamente pela ferramenta será marcado em destaque para que seja convertido manualmente. | DBA | 
| Analise o relatório. | Revise o relatório SQL gerado e salve quaisquer erros e avisos. | DBA | 
| Aplique alterações automatizadas no esquema. | Aplique alterações automatizadas de esquema ao banco de dados de destino ou salve-as como um arquivo .sql. | DBA | 
| Valide objetos. | Valide se o AWS SCT criou os objetos no destino.  | DBA | 
| Gerencie itens que não foram convertidos. | Reescreva, rejeite ou redesenhe manualmente todos os itens que falharam na conversão automática. | DBA, proprietário do aplicativo | 
| Aplicar permissões de funções e permissões de usuário. | Aplique a função gerada e as permissões do usuário e analise todas as exceções. | DBA | 

### Migre os dados
<a name="migrate-the-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine o método. | Determine o método de migração de dados. | DBA | 
| Criação de uma instância de replicação. | Crie uma instância de replicação do console do AWS DMS. Para obter mais informações, consulte [Trabalho com uma instância de replicação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) na documentação do AWS DMS. | DBA | 
| Criação de endpoints de origem e de destino. | Para criar endpoints, siga as instruções em [Criação de endpoints de origem e destino na documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | DBA | 
| Criar uma tarefa de replicação. | Para criar uma tarefa, consulte [Trabalho com tarefas do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) na documentação do AWS DMS. | DBA | 
| Inicie a tarefa de replicação e monitore os logs. | Para obter mais informações sobre essa etapa, consulte [Monitoramento de tarefas do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html) na documentação do AWS DMS. | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise e converta itens SQL no código do aplicativo. | Use o AWS SCT para analisar e converter os itens SQL no código do aplicativo. Ao converter o esquema do seu banco de dados de um mecanismo para outro, é preciso também atualizar o código SQL nos seus aplicativos, a fim de interagir com o novo mecanismo de banco de dados, em vez do antigo. Você pode visualizar, analisar, editar e salvar o código SQL convertido. | Proprietário do App | 
| Crie servidores de aplicações. | Crie os novos servidores de aplicativos na AWS. | Proprietário do App | 
| Migre o código do aplicativo. | Migre o código do aplicativo para os novos servidores. | Proprietário do App | 
| Configure os servidores dos aplicativos. | Configure os servidores de aplicativos para o banco de dados e os drivers de destino. | Proprietário do App | 
| Corrija o código. | Corrija qualquer código específico do mecanismo de banco de dados de origem em seu aplicativo. | Proprietário do App | 
| Otimize o código. | Otimize o código do seu aplicativo para o mecanismo de banco de dados de destino. | Proprietário do App | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Vá para o banco de dados de destino. | Execute a substituição para o novo banco de dados. | DBA | 
| Bloqueie o aplicativo. | Bloqueie o aplicativo de quaisquer outras alterações. | Proprietário do App | 
| Validar alterações. | Validar se todas as alterações foram propagadas para o banco de dados de destino. | DBA | 
| Redirecione para banco de dados de destino. | Aponte os novos servidores de aplicativos para o banco de dados de destino. | Proprietário do App | 
| Confira tudo. | Execute uma verificação final e abrangente do sistema. | Proprietário do App | 
| Acesse. | Conclua as tarefas finais de substituição. | Proprietário do App | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários. | Encerre os recursos temporários da AWS, como a instância de replicação do AWS DMS e a EC2 instância usada para o AWS SCT. | DBA, proprietário do aplicativo | 
| Feedback de atualização. | Atualize o feedback sobre o processo do AWS DMS para as equipes internas. | DBA, proprietário do aplicativo | 
| Revise o processo e os modelos. | Revise o processo do AWS DMS e melhore o modelo, se necessário. | DBA, proprietário do aplicativo | 
| Valide os documentos. | Revise e valide os documentos do projeto. | DBA, proprietário do aplicativo | 
| Colete métricas. | Reúna métricas para avaliar o tempo de migração, a porcentagem de economia de custos manuais versus ferramentas e assim por diante. | DBA, proprietário do aplicativo | 
| Fechar o projeto. | Encerre o projeto de migração e forneça feedback às partes interessadas. | DBA, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-resources"></a>

**Referências**
+ [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Uso do banco de dados PostgreSQL como destino para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Manual de migração do Oracle Database 11g/12c para Amazon Aurora com compatibilidade com PostgreSQL (9.6.x)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Manual de migração do Oracle Database 19c para o Amazon Aurora com compatibilidade com PostgreSQL (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Migrar um banco de dados do Amazon RDS para Oracle para o Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/dms/latest/sbs/chap-oracle-postgresql.html)
+ [AWS Data Migration Service](https://aws.amazon.com/dms/)
+ [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Migre da Oracle para o Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutoriais e vídeos**
+ [Passo a Step-by-Step passo da migração de banco de dados](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS Database Migration Service (vídeo)](https://www.youtube.com/watch?v=zb4GcjEdl8U)
+ [Migração de um banco de dados do Oracle para PostgreSQL](https://www.youtube.com/watch?v=ibtNkChGFkw) (vídeo)

## Mais informações
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-additional"></a>

.

# Migrar dados de um banco de dados Oracle on-premises para o Aurora PostgreSQL
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql"></a>

*Michelle Deng e Shunan Xiang, Amazon Web Services*

## Resumo
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-summary"></a>

Esse padrão fornece orientação para a migração de dados de um banco de dados Oracle on-premises para a edição compatível com Amazon Aurora PostgreSQL. Aborda uma estratégia de migração de dados on-line com um mínimo de tempo de inatividade para bancos de dados Oracle de vários terabytes que contêm grandes tabelas com atividades de alta linguagem de manipulação de dados (DML). Um banco de dados standby Oracle Active Data Guard é usado como fonte para descarregar a migração de dados do banco de dados principal. A replicação do banco de dados principal Oracle para o modo de espera pode ser suspensa durante a carga total para evitar erros do ORA-01555. 

Colunas de tabela em chaves primárias (PKs) ou chaves estrangeiras (FKs), com o tipo de dados NUMBER, são comumente usadas para armazenar números inteiros no Oracle. Recomendamos que você os converta em INT ou BIGINT no PostgreSQL para melhorar o desempenho. Você pode usar a AWS Schema Conversion Tool (AWS SCT) para alterar o mapeamento de tipos de dados padrão para as colunas PK e FK. (Para obter mais informações, consulte a postagem do AWS blog [Converter o tipo de dados NUMBER do Oracle para o PostgreSQL](https://aws.amazon.com/blogs/database/convert-the-number-data-type-from-oracle-to-postgresql-part-2/).) A migração de dados nesse padrão usa o AWS Database Migration Service (AWS DMS) para carga total e captura de dados alterados (CDC).

Você também pode usar esse padrão para migrar um banco de dados Oracle local para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou um banco de dados Oracle hospedado no Amazon Elastic Compute Cloud (Amazon) para o Amazon EC2 RDS for PostgreSQL ou compatível com o Aurora PostgreSQL.

## Pré-requisitos e limitações
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem Oracle em um datacenter on-premises com o Active Data Guard configurado em espera 
+ AWS Direct Connect configurado entre o datacenter on-premises e a Nuvem AWS
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Limitações**
+ Os clusters de banco de dados Amazon Aurora podem ser criados com até 128 TiB de armazenamento. As instâncias de banco de dados do Amazon RDS para PostgreSQL podem ser criadas com até 64 TiB de armazenamento. Para obter as informações de armazenamento mais recentes, consulte [Armazenamento e confiabilidade do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html) e [armazenamento de instâncias de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) na documentação da AWS.

**Versões do produto**
+ O AWS DMS oferece suporte a todas as edições do banco de dados Oracle para as versões 10.2 e versões posteriores (para versões 10.x), 11g e até 12.2, 18c e 19c. Para obter a lista mais recente de versões compatíveis, consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) na documentação da AWS. 

## Arquitetura
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-architecture"></a>

**Pilha de tecnologia de origem**
+ Bancos de dados Oracle on-premises com o Oracle Active Data Guard configurado em espera 

**Pilha de tecnologias de destino**
+ Aurora compatível com PostgreSQL 

**Arquitetura de migração de dados**

![\[Migração de um banco de dados do Oracle para Aurora compatível com PostgreSQL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/49f9b03e-6d33-4ac0-94ad-d3e6d02e6d63/images/0038a36b-fb7d-4f2d-8376-8d38290b0736.png)


## Ferramentas
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-tools"></a>
+ **AWS DMS**: o [AWS Database Migration Service](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) oferece suporte a vários bancos de dados de origem e destino. Consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) na documentação do AWS DMS para obter uma lista das versões e edições dos bancos de dados Oracle de origem e destino compatíveis. Se o banco de dados de origem não for suportado pelo AWS DMS, você deverá selecionar outro método para migrar os dados na Fase 6 (na seção *Epics*). **Observação importante:** como essa é uma migração heterogênea, você deve primeiro verificar se o banco de dados oferece suporte a um aplicativo comercial off-the-shelf (COTS). Se o aplicativo for COTS, consulte o fornecedor para confirmar se o é compatível com o Aurora PostgreSQL antes de continuar. Para obter mais informações, consulte [as instruções de Step-by-Step migração do AWS DMS na documentação](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) da AWS.
+ **AWS SCT**: a [AWS Schema Conversion](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.htm) Tool (AWS SCT) facilita migrações heterogêneas de bancos de dados ao converter automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. O código personalizado que a ferramenta converte inclui visualizações, procedimentos armazenados e funções. Qualquer código que não possa ser convertido automaticamente pela ferramenta será marcado em destaque para que você mesmo possa convertê-lo. 

## Épicos
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões dos bancos de dados de origem e de destino. |  | DBA | 
| Instale o AWS SCT e os drivers. |  | DBA | 
| Adicione e valide os usuários pré-requisitos do AWS SCT e o banco de dados de fontes concessões. |  | DBA | 
| Crie um projeto AWS SCT para o workload e conecte-se ao banco de dados de origem. |  | DBA | 
| Gere um relatório de avaliação e avalie a viabilidade. |  | DBA, proprietário do aplicativo | 

### Preparar o banco de dados de destino
<a name="prepare-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um banco de dados de destino compatível com o Aurora PostgreSQL. |  | DBA | 
| Extraia a lista de usuários, funções e concessões do banco de dados de origem. |  | DBA | 
| Mapeie os usuários do banco de dados existentes para os novos usuários do banco de dados. |  | Proprietário do App | 
| Criar usuários no banco de dados de destino. |  | DBA | 
| Aplique as funções da etapa anterior ao banco de dados de destino compatível com o Aurora PostgreSQL. |  | DBA | 
| Analise as opções, os parâmetros, os arquivos de rede e os links do banco de dados de origem e avalie sua aplicabilidade ao banco de dados de destino. |  | DBA, proprietário do aplicativo | 
| Aplique todas as configurações relevantes ao banco de dados de destino. |  | DBA | 

### Prepare-se para a conversão de objetos de códigos do banco de dados
<a name="prepare-for-database-object-code-conversion"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a conectividade do AWS SCT com o banco de dados de destino. |  | DBA | 
| Converta o esquema no AWS SCT e salve o código convertido como um arquivo .sql. |  | DBA, proprietário do aplicativo | 
| Converta manualmente qualquer objeto de banco de dados que falhou na conversão automática. |  | DBA, proprietário do aplicativo | 
| Otimize a conversão do código do banco de dados. |  | DBA, proprietário do aplicativo | 
| Separe o arquivo .sql em vários arquivos .sql com base no tipo de objeto. |  | DBA, proprietário do aplicativo | 
| Valide os scripts SQL no banco de dados de destino. |  | DBA, proprietário do aplicativo | 

### Prepare a migração de dados
<a name="prepare-for-data-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de replicação do AWS DMS. |  | DBA | 
| Criação de endpoints de origem e de destino.  | Se o tipo de dados do PKs e FKs for convertido de NUMBER no Oracle para BIGINT no PostgreSQL, considere especificar o `numberDataTypeScale=-2` atributo de conexão ao criar o endpoint de origem. | DBA | 

### Migrar dados – carga total
<a name="migrate-data-ndash-full-load"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o esquema e as tabelas no banco de dados de destino. |  | DBA | 
|  Crie tarefas de carga completa do AWS DMS agrupando tabelas ou dividindo uma tabela grande com base no tamanho da tabela. |  | DBA | 
| Interrompa os aplicativos nos bancos de dados Oracle de origem por um curto período. |  | Proprietário do App | 
| Verifique se o banco de dados stand-by Oracle está sincronizado com o banco de dados principal e interrompa a replicação do banco de dados principal para o banco de dados stand-by. |  | DBA, proprietário do aplicativo | 
| Inicie os aplicativos no banco de dados Oracle de origem. |  | Proprietário do App | 
| Inicie as tarefas de carga total do AWS DMS em paralelo, do banco de dados em espera da Oracle ao banco de dados compatível com o Aurora PostgreSQL. |  | DBA | 
| Crie PKs índices secundários após a conclusão da carga completa. |  | DBA | 
| Valide os dados. |  | DBA | 

### Migrar dados – CDC
<a name="migrate-data-ndash-cdc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie tarefas de replicação contínuas do AWS DMS especificando um horário de início personalizado do CDC ou um número de alteração do sistema (SCN) quando o Oracle standby foi sincronizado com o banco de dados principal e antes de os aplicativos serem reiniciados na tarefa anterior. |  | DBA | 
| Inicie as tarefas do AWS DMS em paralelo para replicar as mudanças contínuas do banco de dados em espera da Oracle para o banco de dados compatível com o Aurora PostgreSQL. |  | DBA | 
| Restabeleça a replicação do banco de dados principal Oracle para o banco de dados standby. |  | DBA | 
| Monitore os registros e interrompa os aplicativos no banco de dados Oracle quando o banco de dados de destino compatível com o Aurora PostgreSQL estiver quase sincronizado com o banco de dados Oracle de origem. |  | DBA, proprietário do aplicativo | 
| Interrompa as tarefas do AWS DMS quando o destino estiver totalmente sincronizado com o banco de dados Oracle de origem. |  | DBA | 
| Crie FKs e valide os dados no banco de dados de destino. |  | DBA | 
| Crie funções, visualizações, acionadores, sequências e outros tipos de objetos no banco de dados de destino. |  | DBA | 
| Aplique concessões de funções no banco de dados de destino. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use o AWS SCT para analisar e converter as instruções SQL dentro do código do aplicativo. |  | Proprietário do App | 
| Crie novos servidores de aplicativos na AWS. |  | Proprietário do App | 
| Migre o código do aplicativo para os novos servidores. |  | Proprietário do App | 
| Configure o servidor do aplicativo para o banco de dados e os drivers de destino. |  | Proprietário do App | 
| Corrija qualquer código específico do mecanismo de banco de dados de origem no aplicativo. |  | Proprietário do App | 
| Otimize o código do aplicativo para o banco de dados de destino. |  | Proprietário do App | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Direcione o novo aplicativo para o novo banco de dados de destino. |  | DBA, proprietário do aplicativo | 
| Realize testes de sanidade. |  | DBA, proprietário do aplicativo | 
| Acesse. |  | DBA, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, administrador de sistemas | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo | 
| Reúna métricas de tempo de migração, porcentagem de uso manual em comparação com o uso de ferramentas, economia de custos e dados similares. |  | DBA, proprietário do aplicativo | 
| Feche o projeto e forneça feedback. |  | DBA, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-resources"></a>

**Referências**
+ [Banco de dados Oracle para banco de dados compatível com Aurora PostgreSQL: Manual de migração](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Migração de um banco de dados Amazon RDS para Oracle pra um banco de dados Amazon Aurora MySQL](https://docs.aws.amazon.com/dms/latest/sbs/chap-rdsoracle2aurora.html)
+ [Site do AWS DMS](https://aws.amazon.com/dms/)
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Site do AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Migre do Oracle para o Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

**Tutoriais**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/) 
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Instruções passo a Step-by-Step passo do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/dms-sbs-welcome.html)

# Migre do SAP ASE para o Amazon RDS para SQL Server usando o AWS DMS
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms"></a>

*Amit Kumar, Amazon Web Services*

## Resumo
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-summary"></a>

Esse padrão fornece orientações para migrar um banco de dados do SAP Adaptive Server Enterprise (ASE) para uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) que executa o Microsoft SQL Server. O banco de dados de origem pode estar localizado em um data center local ou em uma instância do Amazon Elastic Compute Cloud EC2 (Amazon). O padrão usa o AWS Database Migration Service (AWS DMS) para migrar dados e (opcionalmente) ferramentas de engenharia de software assistida por computador (CASE) para converter o esquema do banco de dados. 

## Pré-requisitos e limitações
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados SAP ASE em um data center local ou em uma instância EC2 
+ Um banco de dados de destino do Amazon RDS para SQL Server que está ativo e funcionando

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ Somente SAP ASE versão 15.7 ou 16.x. Para obter as informações mais recentes, consulte [Como usar um banco de dados do SAP como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html).
+ Para bancos de dados de destino do Amazon RDS, o AWS DMS oferece suporte às [versões do Microsoft SQL Server no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) para as edições Enterprise, Standard, Web e Express. Para obter as informações mais recentes sobre as versões compatíveis, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos.  

## Arquitetura
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados SAP ASE que está no local ou em uma EC2 instância da Amazon

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados do Amazon RDS para SQL Server

**Arquitetura de origem e destino**

*De um banco de dados SAP ASE na Amazon EC2 para uma instância de banco de dados Amazon RDS for SQL Server:*

![\[Arquitetura de destino do SAP ASE na Amazon EC2 para o Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/957bdcf0-ab58-4b6d-a71a-d0ecbc31822c.png)


*De um banco de dados SAP ASE on-premises a uma instância de banco de dados do Amazon RDS para SQL Server:*

![\[Arquitetura de destino do SAP ASE on-premises para o Amazon RDS para SQL Server\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/65aab2f5-0e63-4c34-97e2-cd4ac23751a4.png)


## Ferramentas
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-tools"></a>
+ O [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) é um serviço web que você pode usar para migrar dados do seu banco de dados local, em uma instância de banco de dados Amazon RDS ou em um banco de dados em uma EC2 instância, para um banco de dados em um serviço da AWS, como Amazon RDS for SQL Server ou uma instância. EC2 Você também pode migrar um banco de dados de um serviço da AWS para um banco de dados on-premises. Você pode migrar dados entre mecanismos de banco de dados heterogêneos ou homogêneos.
+ [Para conversões de esquema, você pode, opcionalmente, usar o [erwin Data](https://erwin.com/products/erwin-data-modeler/) Modeler ou o SAP. PowerDesigner](https://www.sap.com/products/technology-platform/powerdesigner-data-modeling-tools.html)

## Épicos
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Escolher o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin | 
| Identifique a estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC) e sub-redes. |  | SysAdmin | 
| Crie grupos de segurança e listas de controle de acesso à rede (ACLs). |  | SysAdmin | 
| Configure e inicie uma instância de banco de dados do Amazon RDS. |  | SysAdmin | 

### Migrar dados - opção 1
<a name="migrate-data---option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre o esquema do banco de dados manualmente ou use uma ferramenta CASE, como o erwin Data Modeler ou o SAP. PowerDesigner |  | DBA | 

### Migrar dados - opção 2
<a name="migrate-data---option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados usando o AWS DMS. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA SysAdmin, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, SysAdmin | 
| Revise e valide os documentos do projeto. |  | DBA SysAdmin, proprietário do aplicativo | 
| Reúna métricas como tempo para migrar, porcentagem de tarefas manuais versus automatizadas e economia de custos. |  | DBA SysAdmin, proprietário do aplicativo | 
| Feche o projeto e forneça feedback. |  | DBA SysAdmin, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-resources"></a>

**Referências**
+ [Site do AWS DMS](https://aws.amazon.com/dms/)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Uso de um banco de dados SAP ASE como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)
+ [Limitações do RDS Custom for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html)

**Tutoriais e vídeos**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (vídeo)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (vídeo)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift utilizando o AWS DMS
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms"></a>

*Marcelo Fernandes, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-summary"></a>

Esse padrão fornece orientações para migrar um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift utilizando o AWS Data Migration Service (AWS DMS). 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Microsoft SQL Server de origem em um datacenter on-premises
+ Pré-requisitos preenchidos para usar um banco de dados do Amazon Redshift como destino para o AWS DMS, conforme discutido na [AWS DMS documentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html#CHAP_Target.Redshift.Prerequisites).

**Versões do produto**
+ SQL Server 2005-2019, edições Enterprise, Standard, Workgroup, Developer e Web. Para obter a lista mais recente de versões compatíveis, consulte [Usar um banco de dados Microsoft SQL Server como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) na documentação da AWS. 

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Microsoft SQL Server on-premises 

**Pilha de tecnologias de destino**
+ banco de dados de origem

**Arquitetura de migração de dados**

 

![\[Arquitetura para migrar um banco de dados SQL Server on-premises para o Amazon Redshift usando o AWS DMS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/65b2be1b-740e-4d4d-99a8-f77c4ea6553d/images/3a094bf2-be31-4d83-8dd2-9dc078321055.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-tools"></a>
+ O [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) é um serviço de migração de dados que oferece suporte a vários tipos de bancos de dados de origem e destino. Para obter informações sobre as versões e edições do banco de dados do SQL Server compatíveis com o AWS DMS, consulte [Usar um banco de dados do Microsoft SQL Server como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) na documentação do AWS DMS. Se o AWS DMS não for compatível com o banco de dados de origem, você deve selecionar um método alterativo para migrar os dados.

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a versão e o mecanismo dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, administrador de sistemas | 
| Escolha o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. |  | DBA, administrador de sistemas | 
| Identifique a estratégia de migração de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). | Para obter mais informações, consulte [Trabalhar com uma instância de banco de dados em uma VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) na documentação da AWS. | Administrador de sistemas | 
| Criar grupos de segurança. |  | Administrador de sistemas | 
| Configurar e iniciar um cluster do Amazon Redshift. | Para obter mais informações sobre isso, consulte [Criar um exemplo de cluster do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html) na documentação do Amazon Redshift. | DBA, administrador de sistemas | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migrar os dados do banco de dados Microsoft SQL Server usando o AWS DMS. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários. |  | DBA, administrador de sistemas | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Reúna métricas como tempo para migrar, porcentagem de tarefas manuais versus automatizadas e economia de custos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Feche o projeto e forneça feedback. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-resources"></a>

**Referências**
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/index.html)
+ [Documentação do Amazon Redshift](https://docs.aws.amazon.com/redshift/)
+ [Preços do Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutoriais e vídeos**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Uso do banco de dados Amazon Redshift como destino para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ [AWS DMS (vídeo)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 

# Migre um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift usando agentes de extração de dados da AWS SCT
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents"></a>

*Neha Thakur, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-summary"></a>

Esse padrão descreve as etapas para migrar um banco de dados de origem on-premises do Microsoft SQL Server para um banco de dados de destino do Amazon Redshift usando agentes de extração de dados da AWS Schema Conversion Tool (AWS SCT). Um agente é um programa externo integrado à AWS SCT, mas executa a transformação de dados em outro local e interage com outros serviços da AWS em seu nome.   

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-prereqs"></a>

**Pré-requisitos **
+ Um banco de dados de origem Microsoft SQL Server usado para o workload do data warehouse em um datacenter on-premises
+ Uma conta AWS ativa

**Versões do produto**
+ Microsoft SQL Server versão 2008 ou mais recente. Para obter a lista mais recente de versões compatíveis, consulte a [documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-architecture"></a>

**pilha de tecnologia****Origem**
+ Um banco de dados Microsoft SQL Server on-premises

**pilha de tecnologia****Destino**
+ banco de dados de origem

**Arquitetura de migração de dados**

![\[Migração de um banco de dados do SQL Server para o Amazon Redshift por meio dos agentes de extração de dados do AWS SCT.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6975f67a-0705-47b4-a1b8-90aaa2597a04/images/dbff958b-7601-442e-9e23-4d07edd0ccfd.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-tools"></a>
+ A [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) facilita as migrações heterogêneas de banco de dados convertendo automaticamente o schema do banco de dados de origem e a maioria do código personalizado para um formato compatível com o banco de dados de destino. Quando os bancos de dados de origem e de destino são muito diferentes, você pode usar um agente do AWS SCT para realizar transformações adicionais de dados. Para obter mais informações, consulte [Migrar dados de um data warehouse on-premises para o Amazon Redshift](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.dw.html) na documentação da AWS

## Práticas recomendadas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-best-practices"></a>
+ [Melhores práticas para AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_BestPractices.html)
+ [Práticas recomendadas do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/best-practices.html)

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-epics"></a>

### Preparo para a migração
<a name="prepare-for-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar versões e mecanismos do banco de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, SysAdmin | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Escolha o tipo de instância adequado (capacidade, atributos de armazenamento e atributos de rede). |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin | 
| Escolha uma estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Configurar a infraestrutura
<a name="configure-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC) e sub-redes. |  | SysAdmin | 
| Criar grupos de segurança. |  | SysAdmin | 
| Configure e inicie o cluster do Amazon Redshift. |  | SysAdmin | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre os dados usando os agentes de extração de dados da AWS SCT. |  | DBA | 

### Migrar aplicativos
<a name="migrate-applications"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos escolhida. |  | DBA SysAdmin, proprietário do aplicativo | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA SysAdmin, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, SysAdmin | 
| Revise e valide os documentos do projeto. |  | DBA SysAdmin, proprietário do aplicativo | 
| Reúna métricas como tempo para migrar, porcentagem de tarefas manuais versus automatizadas e economia de custos. |  | DBA SysAdmin, proprietário do aplicativo | 
| Feche o projeto e forneça feedback, se houver. |  | DBA SysAdmin, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-resources"></a>

**Referências**
+ [Guia do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Uso de agentes de extração de dados](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Preços do Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutoriais e vídeos**
+ [Conceitos básicos da AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)
+ [Conceitos básicos do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

# Migre aplicativos legados do Oracle Pro\$1C para o ECPG
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg"></a>

*Sai Parthasaradhi e Mahesh Balumuri, Amazon Web Services*

## Resumo
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-summary"></a>

A maioria dos aplicativos legados que têm código SQL incorporado usa o pré-compilador do Oracle Pro\$1C para acessar o banco de dados. Ao migrar esses bancos de dados do Oracle para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora Edição Compatível com PostgreSQL, você precisa converter o código do aplicativo em um formato compatível com o pré-compilador no PostgreSQL, chamado ECPG. Esse padrão descreve como converter o código do Oracle Pro\$1C em seu equivalente no PostgreSQL ECPG. 

Para obter mais informações sobre o Pro\$1C, consulte a [documentação do Oracle](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415). Para obter uma breve introdução ao ECPG, consulte a seção [Informações adicionais](#migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional).

## Pré-requisitos e limitações
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados compatível com Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL
+ Um banco de dados do Oracle em execução on-premises

## Ferramentas
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-tools"></a>
+ Os pacotes do PostgreSQL listados na seção seguinte.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html): o AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto para interagir com serviços da AWS por meio de comandos em seu shell de linha de comando. Com configuração mínima, você pode executar comandos da AWS CLI que implementam funcionalidade equivalente àquela fornecida pelo Console de Gerenciamento da AWS baseado em navegador a partir de um prompt de comando.

## Épicos
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-epics"></a>

### Defina o ambiente de construção no CentOS ou RHEL
<a name="set-the-build-environment-on-centos-or-rhel"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale pacotes do PostgreSQL. | Instale os pacotes PostgreSQL necessários usando os comandos a seguir.<pre>yum update -y<br />yum install -y yum-utils<br />rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm<br />dnf -qy module disable postgresql</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Instale os arquivos de cabeçalho e as bibliotecas. | Instale o pacote `postgresql12-devel`, que contém arquivos de cabeçalho e bibliotecas, usando os comandos a seguir. Instale o pacote nos ambientes de desenvolvimento e de runtime para evitar erros no ambiente de execução.<pre>dnf -y install postgresql12-devel<br />yum install ncompress zip ghostscript jq unzip wget git -y</pre>Somente para o ambiente de desenvolvimento, execute também os comandos a seguir.<pre>yum install zlib-devel make -y<br />ln -s /usr/pgsql-12/bin/ecpg /usr/bin/</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Configure a variável do caminho do ambiente. | Defina o caminho do ambiente para as bibliotecas de cliente do PostgreSQL.<pre>export PATH=$PATH:/usr/pgsql-12/bin</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Instale software adicional conforme necessário. | Se necessário, instale o **pgLoader** como substituto do **SQL\$1Loader** no Oracle.<pre>wget -O /etc/yum.repos.d/pgloader-ccl.repo https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/el/7.repo<br />yum install pgloader-ccl -y<br />ln -s /opt/pgloader-ccl/bin/pgloader /usr/bin/</pre>Se você estiver chamando qualquer aplicativo Java dos módulos Pro\$1C, instale o Java.<pre>yum install java -y</pre>Instale o **ant** para compilar o código Java.<pre>yum install ant -y</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Instale a AWS CLI. | Instale a AWS CLI para executar comandos para interagir com os Serviços da AWS, como o AWS Secrets Manager e o Amazon Simple Storage Service (Amazon S3) a partir de seus aplicativos.<pre>cd /tmp/<br />curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />./aws/install -i /usr/local/aws-cli -b /usr/local/bin --update</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Identifique os programas a serem convertidos. | Identifique os aplicativos que você deseja converter do Pro\$1C para ECPG. | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Converta o código Pro\$1C para ECPG
<a name="convert-pro-c-code-to-ecpg"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remova os cabeçalhos indesejados. | Remova os cabeçalhos `include ` que não são necessários no PostgreSQL, como `oci.h`, `oratypes` e `sqlda`. | Proprietário do aplicativo, desenvolvedor do aplicativo | 
| Atualize as declarações de variáveis. | Adicione instruções `EXEC SQL` para todas as declarações de variáveis usadas como variáveis do host.Remova as declarações `EXEC SQL VAR`, como as seguintes, do seu aplicativo.<pre>EXEC SQL VAR query IS STRING(2048);</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Atualize a funcionalidade ROWNUM. | A função `ROWNUM` não está disponível no PostgreSQL. Substitua isso pela função de janela `ROW_NUMBER` nas consultas SQL.Código Pro\$1C:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME <br />FROM  DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%' <br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM;</pre>Código ECPG:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME , ROW_NUMBER() OVER (ORDER BY FILE_NAME DESC) AS ROWNUM<br />FROM  demo_schema.DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%'<br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM; </pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Atualize os parâmetros da função para usar variáveis de alias. | No PostgreSQL, os parâmetros da função não podem ser usados como variáveis do host. Substitua-os usando uma variável de alias.Código Pro\$1C:<pre>int processData(int referenceId){<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre>Código ECPG:<pre>int processData(int referenceIdParam){<br />  EXEC SQL int referenceId = referenceIdParam;<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Atualize os tipos de estrutura. | Defina os tipos `struct` em `EXEC SQL BEGIN` e blocos `END` com `typedef` se as variáveis ​​de tipo `struct` forem usadas como variáveis ​​de host. Se os tipos `struct` forem definidos em arquivos header (`.h`), inclua os arquivos com instruções include (incluir) `EXEC SQL`.Código Pro\$1C:Arquivo de cabeçalho (`demo.h`)<pre>struct s_partition_ranges<br />{<br /> char   sc_table_group[31];<br /> char   sc_table_name[31];<br /> char   sc_range_value[10];<br />}; <br />struct s_partition_ranges_ind<br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />}; </pre>Código ECPG:Arquivo de cabeçalho (`demo.h`)<pre>EXEC SQL BEGIN DECLARE SECTION;<br />typedef struct <br />{<br />  char   sc_table_group[31];<br />  char   sc_table_name[31];<br />  char   sc_range_value[10];<br />} s_partition_ranges; <br />typedef struct <br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />} s_partition_ranges_ind; <br />EXEC SQL END DECLARE SECTION;</pre>Arquivo Pro\$1C (`demo.pc`)<pre>#include "demo.h"<br />struct s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />struct s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;</pre>Arquivo ECPG (`demo.pc`)<pre>exec sql include "demo.h"<br />EXEC SQL BEGIN DECLARE SECTION;<br />s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;<br />EXEC SQL END DECLARE SECTION;</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Modifique a lógica para fazer buscas nos cursores. | Para buscar várias linhas nos cursores usando variáveis de matriz, altere o código a ser usado `FETCH FORWARD`.Código Pro\$1C:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL FETCH filename_cursor into :aPoeFiles;</pre>Código ECPG:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL int fetchSize = MAX_FILES;<br />EXEC SQL FETCH FORWARD :fetchSize filename_cursor into :aPoeFiles;</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Modifique as chamadas de pacotes que não têm valores de retorno. | As funções do pacote Oracle que não têm valores de retorno devem ser chamadas com uma variável indicadora. Se seu aplicativo incluir várias funções com o mesmo nome ou se as funções de tipo desconhecido gerarem erros de runtime, converta os valores para os tipos de dados.Código Pro\$1C:<pre>void ProcessData (char *data , int id)<br />{        <br />        EXEC SQL EXECUTE<br />               BEGIN<br />                  pkg_demo.process_data (:data, :id);                                                                                    <br />               END;<br />       END-EXEC;<br />}</pre>Código ECPG:<pre>void ProcessData (char *dataParam, int idParam )<br />{<br />        EXEC SQL char *data = dataParam;<br />        EXEC SQL int id = idParam;<br />        EXEC SQL short rowInd;<br />        EXEC SQL short rowInd = 0;<br />        EXEC SQL SELECT pkg_demo.process_data (<br />                       inp_data => :data::text,<br />                       inp_id => :id<br />               ) INTO :rowInd;<br />}</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Reescreva as variáveis SQL\$1CURSOR. | Reescreva a variável `SQL_CURSOR` e sua implementação.Código Pro\$1C:<pre>/* SQL Cursor */<br />SQL_CURSOR      demo_cursor;<br />EXEC SQL ALLOCATE :demo_cursor;<br />EXEC SQL EXECUTE<br />  BEGIN<br />      pkg_demo.get_cursor(     <br />        demo_cur=>:demo_cursor<br />      );<br />  END;<br />END-EXEC;</pre>Código ECPG:<pre>EXEC SQL DECLARE demo_cursor CURSOR FOR SELECT<br />         * from<br />    pkg_demo.open_filename_rc(<br />            demo_cur=>refcursor<br />          ) ;<br />EXEC SQL char open_filename_rcInd[100]; <br /># As the below function returns cursor_name as <br /># return we need to use char[] type as indicator. <br />EXEC SQL SELECT pkg_demo.get_cursor (<br />        demo_cur=>'demo_cursor'<br />    ) INTO :open_filename_rcInd;</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Aplique padrões comuns de migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-legacy-applications-from-oracle-pro-c-to-ecpg.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Ative a depuração, se necessário.  | Para executar o programa ECPG no modo de depuração, adicione o seguinte comando dentro do bloco de funções principal.<pre>ECPGdebug(1, stderr); </pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Compile programas ECPG
<a name="compile-ecpg-programs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um arquivo executável para o ECPG. | Se você tiver um arquivo de origem SQL C incorporado chamado `prog1.pgc`, poderá criar um programa executável usando a seguinte sequência de comandos.<pre>ecpg prog1.pgc<br />cc -I/usr/local/pgsql/include -c prog1.c<br />cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Crie um arquivo make para compilação. | Criar um arquivo make para compilar o programa ECPG, conforme mostrado no arquivo de exemplo a seguir.<pre>CFLAGS ::= $(CFLAGS) -I/usr/pgsql-12/include -g -Wall<br />LDFLAGS ::= $(LDFLAGS) -L/usr/pgsql-12/lib -Wl,-rpath,/usr/pgsql-12/lib<br />LDLIBS ::= $(LDLIBS) -lecpg<br />PROGRAMS = test <br />.PHONY: all clean<br />%.c: %.pgc<br />      ecpg $<<br />all: $(PROGRAMS)<br />clean:<br />    rm -f $(PROGRAMS) $(PROGRAMS:%=%.c) $(PROGRAMS:%=%.o)</pre> | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o código. | Teste o código do aplicativo convertido para verificar se ele funciona corretamente. | Desenvolvedor de aplicativos, proprietário do aplicativo, engenheiro de teste | 

## Recursos relacionados
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-resources"></a>
+ [ECPG: SQL incorporado em C](https://www.postgresql.org/docs/current/static/ecpg.html) (documentação do PostgreSQL)
+ [Tratamento de erros](https://www.postgresql.org/docs/12/ecpg-errors.html) (documentação do PostgreSQL)
+ [Por que usar o pré-compilador do Oracle Pro\$1C/C\$1\$1](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) (documentação do Oracle)

## Mais informações
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional"></a>

O PostgreSQL tem um pré-compilador SQL incorporado, o ECPG, que é equivalente ao pré-compilador do Oracle Pro\$1C. O ECPG converte programas C que têm instruções SQL incorporadas em código C padrão, substituindo as chamadas SQL por chamadas de funções especiais. Os arquivos de saída podem então ser processados com qualquer cadeia de ferramentas do compilador C.

**Arquivos de entrada e saída**

O ECPG converte cada arquivo de entrada especificado na linha de comando no arquivo de saída C correspondente. Se um nome de arquivo de entrada não tiver uma extensão de arquivo, será assumido o formato .pgc. A extensão do arquivo é substituída por `.c` para estruturar o nome do arquivo de saída. No entanto, você pode substituir o nome padrão do arquivo de saída usando a opção `-o`.

Se você usar um traço (`-`) como nome do arquivo de entrada, o ECPG lerá o programa da entrada padrão e gravará na saída padrão, a menos que você substitua isso usando a opção `-o`.

**Arquivos de cabeçalho**

Quando o compilador do PostgreSQL compila os arquivos de código C pré-processados, ele procura os arquivos de cabeçalho ECPG no diretório `include` do PostgreSQL. Portanto, talvez seja necessário usar a opção `-I` de apontar o compilador para o diretório correto (por exemplo,`-I/usr/local/pgsql/include`).

**Bibliotecas**

Os programas que usam código C com SQL incorporado precisam ser vinculados à biblioteca `libecpg`. Por exemplo, você pode usar as opções ` -L/usr/local/pgsql/lib -lecpg` do vinculador.

Os aplicativos ECPG convertidos chamam funções na `libpq` biblioteca por meio da biblioteca SQL incorporada (`ecpglib`) e se comunicam com o servidor PostgreSQL usando o protocolo padrão. frontend/backend 

# Migre colunas geradas virtualmente do Oracle para o PostgreSQL
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi, Rajesh Madiwale e Ramesh Pathuri, Amazon Web Services*

## Resumo
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-summary"></a>

Na versão 11 e nas anteriores, o PostgreSQL não fornece um atributo que seja diretamente equivalente a uma coluna virtual Oracle. Lidar com colunas geradas virtualmente durante a migração do banco de dados Oracle para o PostgreSQL versão 11 ou anterior é difícil por dois motivos: 
+ As colunas virtuais não são visíveis durante a migração.
+ O PostgreSQL não suporta a expressão `generate` em versões anteriores à versão 12.

No entanto, existem soluções alternativas para emular funcionalidades semelhantes. Ao usar o AWS Database Migration Service (AWS DMS) para migrar dados do banco de dados do Oracle para PostgreSQL versão 11 ou anterior, você pode usar funções de gatilho para preencher os valores em colunas geradas virtualmente. Esse padrão fornece exemplos do banco de dados Oracle e do código PostgreSQL que você pode usar para essa finalidade. Na AWS, você pode usar o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora Edição Compatível com PostgreSQL para o seu banco de dados PostgreSQL.

A partir da versão 12 do PostgreSQL, as colunas geradas são suportadas. As colunas geradas podem ser calculadas a partir de outros valores de coluna em tempo real ou calculadas e armazenadas. As [colunas geradas do PostgreSQL](https://www.postgresql.org/docs/12/ddl-generated-columns.html) são semelhantes às colunas virtuais do Oracle.

## Pré-requisitos e limitações
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem 
+ Bancos de dados PostgreSQL de destino (no Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL)
+ Experiência em codificação [PL/pgSQL](https://www.postgresql.org/docs/current/plpgsql.html)

**Limitações**
+ Aplica-se somente às versões do PostgreSQL anteriores à versão 12. 
+ Aplica-se ao Oracle Database versão 11g ou superior.
+ As colunas virtuais não são suportadas nas ferramentas de migração de dados.
+ Aplica-se somente às colunas definidas na mesma tabela.
+ Se uma coluna virtual gerada se referir a uma função determinística definida pelo usuário, ela não poderá ser usada como uma coluna principal de particionamento.
+ A saída da expressão deve ser um valor escalar. Ele não pode retornar um tipo de dados fornecido pelo Oracle, um tipo definido pelo usuário, `LOB` ou `LONG RAW`.
+ Os índices definidos em colunas virtuais são equivalentes aos índices baseados em funções no PostgreSQL.
+ As estatísticas da tabela devem ser coletadas.

## Ferramentas
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-tools"></a>
+ O [pgAdmin 4](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Essa ferramenta fornece uma interface gráfica que simplifica a criação, manutenção e uso de objetos de banco de dados.
+ O [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/) é um ambiente de desenvolvimento gratuito e integrado para trabalhar com SQL em bancos de dados Oracle em implantações tradicionais e em nuvem. 

## Épicos
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-epics"></a>

### Crie tabelas de banco de dados de origem e destino
<a name="create-source-and-target-database-tables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tabela de origem do Oracle Database. | No Oracle Database, crie uma tabela com colunas geradas virtuais usando a instrução a seguir.<pre>CREATE TABLE test.generated_column<br />( CODE NUMBER,<br />STATUS VARCHAR2(12) DEFAULT 'PreOpen',<br />FLAG CHAR(1) GENERATED ALWAYS AS (CASE UPPER(STATUS) WHEN 'OPEN' THEN 'N' ELSE 'Y' END) VIRTUAL VISIBLE<br />);</pre>Nessa tabela de origem, os dados na coluna `STATUS` são migrados pelo AWS DMS para o banco de dados de destino. No entanto, a coluna `FLAG` é preenchida usando a funcionalidade `generate by`, portanto, essa coluna não fica visível para o AWS DMS durante a migração. Para implementar a funcionalidade de `generated by`, você deve usar gatilhos e funções no banco de dados de destino para preencher os valores na coluna `FLAG`, conforme mostrado no próximo épico. | DBA, desenvolvedor de aplicativos | 
| Crie uma tabela PostgreSQL de destino na AWS. | Crie uma tabela PostgreSQL na AWS usando a instrução a seguir.<pre>CREATE TABLE test.generated_column<br />(<br />    code integer not null,<br />    status character varying(12) not null ,<br />    flag character(1)<br />);</pre>Nessa tabela, a coluna `status` é uma coluna padrão. A coluna `flag` será uma coluna gerada com base nos dados da coluna `status`. | DBA, desenvolvedor de aplicativos | 

### Crie uma função de gatilho para lidar com a coluna virtual no PostgreSQL
<a name="create-a-trigger-function-to-handle-the-virtual-column-in-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um gatilho do PostgreSQL. | No PostgreSQL, crie um gatilho.<pre>CREATE TRIGGER tgr_gen_column<br />AFTER INSERT OR UPDATE OF status ON test.generated_column<br />FOR EACH ROW <br />EXECUTE FUNCTION test.tgf_gen_column();</pre> | DBA, desenvolvedor de aplicativos | 
| Crie uma função de gatilho do PostgreSQL. | No PostgreSQL, crie uma função para o gatilho. Essa função preenche uma coluna virtual que é inserida ou atualizada pelo aplicativo ou pelo AWS DMS e valida os dados.<pre>CREATE OR REPLACE FUNCTION test.tgf_gen_column() RETURNS trigger AS $VIRTUAL_COL$<br />BEGIN<br />IF (TG_OP = 'INSERT') THEN<br />IF (NEW.flag IS NOT NULL) THEN<br />RAISE EXCEPTION 'ERROR: cannot insert into column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF (TG_OP = 'UPDATE') THEN<br />IF (NEW.flag::VARCHAR != OLD.flag::varchar) THEN<br />RAISE EXCEPTION 'ERROR: cannot update column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF TG_OP IN ('INSERT','UPDATE') THEN<br />IF (old.flag is NULL) OR (coalesce(old.status,'') != coalesce(new.status,'')) THEN<br />UPDATE test.generated_column<br />SET flag = (CASE UPPER(status) WHEN 'OPEN' THEN 'N' ELSE 'Y' END)<br />WHERE code = new.code;<br />END IF;<br />END IF;<br />RETURN NEW;<br />END<br />$VIRTUAL_COL$ LANGUAGE plpgsql;</pre> | DBA, desenvolvedor de aplicativos | 

### Teste a migração de dados usando o AWS DMS
<a name="test-data-migration-by-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação. | Para criar uma instância de replicação, siga as [instruções](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) na documentação do AWS DMS. A instância de replicação deve estar na mesma nuvem privada virtual (VPC) que os bancos de dados de origem e de destino. | DBA, desenvolvedor de aplicativos | 
| Criar endpoints de origem e de destino. | Para criar endpoints, siga as [instruções](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) na documentação do AWS DMS. | DBA, desenvolvedor de aplicativos | 
| Testar as conexões do endpoint. | Você pode testar as conexões do endpoint especificando a VPC e a instância de replicação e escolhendo **Executar teste**. | DBA, desenvolvedor de aplicativos | 
| Crie e inicie uma tarefa de carga completa. | Para obter instruções, consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) e [Configurações de tarefa de carga completa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.html) na documentação do AWS DMS. | DBA, desenvolvedor de aplicativos | 
| Valide os dados da coluna virtual. | Compare os dados na coluna virtual nos bancos de dados de origem e de destino. Você pode validar os dados manualmente ou escrever um script para essa etapa. | DBA, desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-resources"></a>
+ [Introdução ao AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (documentação do AWS DMS)
+ [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) (documentação do AWS DMS)
+ [Uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) (documentação do AWS DMS)
+ [Colunas geradas no PostgreSQL](https://www.postgresql.org/docs/12/ddl-generated-columns.html) (documentação do PostgreSQL)
+ [Funções de gatilho](https://www.postgresql.org/docs/12/plpgsql-trigger.html) (documentação do PostgreSQL)
+ [Colunas virtuais](https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402) no banco de dados Oracle (documentação do Oracle)

# Configure a funcionalidade Oracle UTL\$1FILE no Aurora compatível com PostgreSQL
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible"></a>

*Rakesh Raghav e Anuradha Chintha, Amazon Web Services*

## Resumo
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-summary"></a>

Como parte de sua jornada de migração da Oracle para Amazon Aurora Edição Compatível com PostgreSQL na nuvem da Amazon Web Services (AWS), você pode encontrar vários desafios. Por exemplo, migrar código que depende do utilitário `UTL_FILE` do Oracle é sempre um desafio. No Oracle PL/SQL, o pacote `UTL_FILE` é usado para operações de arquivo, como leitura e gravação, em conjunto com o sistema operacional subjacente. O utilitário `UTL_FILE` funciona tanto para sistemas de servidores quanto para máquinas clientes. 

O Amazon Aurora compatível com PostgreSQL é uma oferta de banco de dados gerenciado. Por causa disso, não é possível acessar arquivos no servidor do banco de dados. Esse padrão orienta você na integração do Amazon Simple Storage Service (Amazon S3) e o Amazon Aurora compatível com PostgreSQL para obter um subconjunto da funcionalidade `UTL_FILE`. Usando essa integração, podemos criar e consumir arquivos sem usar ferramentas ou serviços de extração, transformação e carregamento (ETL) de terceiros.

Opcionalmente, você pode configurar o CloudWatch monitoramento da Amazon e as notificações do Amazon SNS.

Recomendamos testar minuciosamente essa solução antes de implementá-la em um ambiente de produção.

## Pré-requisitos e limitações
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ AWS Database Migration Service (AWS DMS)
+ Experiência em PL/pgSQL codificação
+ Um cluster Amazon Aurora compatível com PostgreSQL
+ Um bucket do S3

**Limitações **

Esse padrão não fornece a funcionalidade para atuar como um substituto para o utilitário `UTL_FILE` do Oracle. No entanto, as etapas e o código de amostra podem ser aprimorados ainda mais para atingir suas metas de modernização do banco de dados.

**Versões do produto**
+ Amazon Aurora compatível com PostgreSQL Edição 11.9

## Arquitetura
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-architecture"></a>

**Pilha de tecnologias de destino**
+ Amazon Aurora compatível com PostgreSQL
+ Amazon CloudWatch
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon S3

**Arquitetura de destino**

O diagrama a seguir mostra uma representação de alto nível da solução.

![\[Os arquivos de dados são enviados para um bucket do S3, processados usando a extensão aws_s3 e enviados para a instância do Aurora.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/3aeecd46-1f87-41f9-a9cd-f8181f92e83f/images/4a6c5f5c-58fb-4355-b243-d09a15c1cec6.png)


1. Os arquivos são enviados do aplicativo para o bucket do S3.

1. A extensão `aws_s3` acessa os dados, usando PL/pgSQL, e carrega os dados para o Aurora compatível com PostgreSQL.

## Ferramentas
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-tools"></a>
+ [Amazon Aurora compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html): Amazon Aurora Edição Compatível com PostgreSQL é um mecanismo de banco de dados relacional totalmente gerenciado, compatível com PostgreSQL e compatível com ACID. Ele combina a velocidade e a confiabilidade dos bancos de dados comerciais de ponta com a relação custo-benefício dos bancos de dados de código aberto.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html): o AWS Command Line Interface (AWS CLI) é uma ferramenta unificada para gerenciar os serviços da AWS. Com apenas uma ferramenta para fazer o download e configurar, você poderá controlar vários serviços da AWS pela linha de comando e automatizá-los usando scripts.
+ [Amazon CloudWatch — A](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) Amazon CloudWatch monitora os recursos e o uso do Amazon S3.
+ [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. Nesse padrão, o Amazon S3 fornece uma camada de armazenamento para receber e armazenar arquivos para consumo e transmissão de e para o cluster compatível com o Aurora PostgreSQL.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3): a extensão `aws_s3` integra o Amazon S3 e o Aurora compatível com PostgreSQL.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html): o Amazon Simple Notiﬁcation Service (Amazon SNS) coordena e gerencia a entrega ou envio de mensagens entre publicadores e clientes. Nesse padrão, o Amazon SNS é usado para enviar notificações.
+ [pgAdmin](https://www.pgadmin.org/docs/): o pgAdmin é uma ferramenta de gerenciamento de código aberto para o Postgres. O pgAdmin 4 fornece uma interface gráfica para criar, manter e usar objetos de banco de dados.

**Código **

Para obter a funcionalidade necessária, o padrão cria várias funções com nomenclatura semelhante a `UTL_FILE`. A seção *Informações adicionais* contém a base de código para essas funções.

No código, substitua `testaurorabucket` pelo nome do bucket do S3 de teste. Substitua `us-east-1` pela região da AWS em que está localizado o bucket do S3 de teste.

## Épicos
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-epics"></a>

### Integre o Amazon S3 e o Aurora compatível com PostgreSQL
<a name="integrate-amazon-s3-and-aurora-postgresql-compatible"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar políticas do IAM. | Crie políticas do AWS Identity and Access Management (IAM) que concedam acesso ao bucket S3 e aos objetos nele contidos. Para obter o código, consulte a seção *Informações adicionais*. | Administrador da AWS, DBA | 
| Adicione perfis de acesso do Amazon S3 ao Aurora PostgreSQL. | Crie dois perfis do IAM: um para leitura e outro para acesso de gravação ao Amazon S3. Anexe os dois perfis ao cluster compatível com o Aurora PostgreSQL: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.html)Para obter mais informações, consulte a documentação do Aurora compatível com PostgreSQL sobre [importação](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html) e [exportação](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html) de dados para o Amazon S3. | Administrador da AWS, DBA | 

### Configure as extensões no Aurora compatível com PostgreSQL
<a name="set-up-the-extensions-in-aurora-postgresql-compatible"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a extensão aws\$1commons. | A extensão `aws_commons` é uma dependência da extensão `aws_s3`. | DBA, Desenvolvedor | 
| Crie a extensão aws\$1s3. | A extensão `aws_s3` interage com o Amazon S3. | DBA, Desenvolvedor | 

### Valide a integração do Amazon S3 e do Aurora compatível com PostgreSQL
<a name="validate-amazon-s3-and-aurora-postgresql-compatible-integration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a importação de arquivos do Amazon S3 para o Aurora PostgreSQL. | Para testar a importação de arquivos para o Aurora compatível com PostgreSQL, crie um arquivo CSV de amostra e carregue-o no bucket do S3. Crie uma definição de tabela com base no arquivo CSV e carregue o arquivo na tabela usando a função `aws_s3.table_import_from_s3`. | DBA, Desenvolvedor | 
| Teste a exportação de arquivos do Aurora PostgreSQL para o Amazon S3. | Para testar a exportação de arquivos do Aurora compatível com PostgreSQL, crie uma tabela de teste, preencha-a com dados e, em seguida, exporte os dados usando a função `aws_s3.query_export_to_s3`. | DBA, Desenvolvedor | 

### Para imitar o utilitário UTL\$1FILE, crie funções de encapsulamento
<a name="to-mimic-the-utl_file-utility-create-wrapper-functions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o esquema utl\$1file\$1utility. | O esquema mantém as funções de encapsulamento juntas. Para criar o esquema, execute o seguinte comando.<pre>CREATE SCHEMA utl_file_utility;</pre> | DBA, Desenvolvedor | 
| Crie o tipo file\$1type. | Para criar o tipo `file_type`, use o código a seguir.<pre>CREATE TYPE utl_file_utility.file_type AS (<br />    p_path character varying(30),<br />    p_file_name character varying<br />);<br /><br /><br /></pre> | DBA/Desenvolvedor | 
| Crie a função init. | A função `init` inicializa uma variável comum, como `bucket` ou `region`. Para obter o código, consulte a seção *Informações adicionais*. | DBA/Desenvolvedor | 
| Crie as funções de encapsulamento. | Crie as funções de encapsulamento `fopen`, `put_line` e `fclose`. Para obter o código, consulte a seção *Informações adicionais*. | DBA, Desenvolvedor | 

### Teste as funções de encapsulamento
<a name="test-the-wrapper-functions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste as funções de encapsulamento no modo de gravação. | Para testar as funções de encapsulamento no modo de gravação, use o código fornecido na seção *Informações adicionais*. | DBA, Desenvolvedor | 
| Teste as funções de encapsulamento no modo de acréscimo. | Para testar as funções de encapsulamento no modo de acréscimo, use o código fornecido na seção *Informações adicionais*. | DBA, Desenvolvedor | 

## Recursos relacionados
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-resources"></a>
+ [Integração do Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Aurora](https://aws.amazon.com/rds/aurora/?nc2=h_ql_prod_db_aa&aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [Amazon SNS](https://aws.amazon.com/sns/?nc2=h_ql_prod_ap_sns&whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc)

## Mais informações
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-additional"></a>

**Configurar políticas do IAM**

Crie as políticas a seguir.


| 
| 
| Nome da política | JSON | 
| --- |--- |
| S3 IntRead | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />         "arn:aws:s3:::testaurorabucket/*",<br />         "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 
| S3 IntWrite | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",                <br />                "s3:ListBucket"<br />            ],<br />            "Resource": [                "arn:aws:s3:::testaurorabucket/*",                "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 

**Crie a função init**

Para inicializar variáveis comuns, como `bucket` ou `region`, crie a função `init` usando o código a seguir.

```
CREATE OR REPLACE FUNCTION utl_file_utility.init(
    )
    RETURNS void
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
BEGIN
      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 'region' )
      , 'us-east-1'::text
      , false );

      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 's3bucket' )
      , 'testaurorabucket'::text
      , false );
END;
$BODY$;
```

**Criar as funções de encapsulamento**

Crie as funções `fopen`, `put_line` e `fclose` de encapsulamento 

*fopen*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fopen(
    p_file_name character varying,
    p_path character varying,
    p_mode character DEFAULT 'W'::bpchar,
    OUT p_file_type utl_file_utility.file_type)
    RETURNS utl_file_utility.file_type
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
declare
    v_sql character varying;
    v_cnt_stat integer;
    v_cnt integer;
    v_tabname character varying;
    v_filewithpath character varying;
    v_region character varying;
    v_bucket character varying;

BEGIN
    /*initialize common variable */
    PERFORM utl_file_utility.init();
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
    
    /* set tabname*/
    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;
    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region;
    
    /* APPEND MODE HANDLING; RETURN EXISTING FILE DETAILS IF PRESENT ELSE CREATE AN EMPTY FILE */
    IF p_mode = 'A' THEN
        v_sql := concat_ws('','create temp table if not exists ', v_tabname,' (col1 text)');
        execute v_sql;

        begin
        PERFORM aws_s3.table_import_from_s3 
            ( v_tabname, 
            '',  
            'DELIMITER AS ''#''', 
            aws_commons.create_s3_uri 
            (     v_bucket, 
                v_filewithpath ,
                v_region)
            );
        exception
            when others then
             raise notice 'File load issue ,%',sqlerrm;
             raise;
        end;
        execute concat_ws('','select count(*) from ',v_tabname) into v_cnt;

        IF v_cnt > 0 
        then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
        else         
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );

            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;        
        end if;
        v_sql := concat_ws('','drop table ', v_tabname);        
        execute v_sql;            
    ELSEIF p_mode = 'W' THEN
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
    END IF;    
    
EXCEPTION
        when others then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
            raise notice 'fopenerror,%',sqlerrm;
            raise;
END;
$BODY$;
```

*put\$1line*

```
CREATE OR REPLACE FUNCTION utl_file_utility.put_line(
    p_file_name character varying,
    p_path character varying,
    p_line text,
    p_flag character DEFAULT 'W'::bpchar)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
/**************************************************************************
* Write line, p_line in windows format to file, p_fp - with carriage return
* added before new line.
**************************************************************************/
declare
    v_sql varchar;
    v_ins_sql varchar;
    v_cnt INTEGER;
    v_filewithpath character varying;
    v_tabname  character varying;
    v_bucket character varying;
    v_region character varying;    

BEGIN
 PERFORM utl_file_utility.init();

/* check if temp table already exist */

 v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );

 v_sql := concat_ws('','select count(1) FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace where n.nspname like ''pg_temp_%''' 
                         ,' AND pg_catalog.pg_table_is_visible(c.oid) AND Upper(relname) = Upper( '''
                         ,  v_tabname ,''' ) ');
  
 execute v_sql into v_cnt;
  
  IF v_cnt = 0 THEN
         v_sql := concat_ws('','create temp table ',v_tabname,' (col text)');
        execute v_sql;
        /* CHECK IF APPEND MODE */
        IF upper(p_flag) = 'A' THEN
            PERFORM utl_file_utility.init();                        
            v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
            v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
            
            /* set tabname*/            
            v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;            
            
            begin
               PERFORM aws_s3.table_import_from_s3 
                     ( v_tabname, 
                          '',  
                       'DELIMITER AS ''#''', 
                        aws_commons.create_s3_uri 
                           ( v_bucket, 
                               v_filewithpath, 
                               v_region    )
                    );
            exception
                when others then
                    raise notice  'Error Message : %',sqlerrm;
                    raise;
            end;    
        END IF;    
    END IF;
    /* INSERT INTO TEMP TABLE */              
    v_ins_sql := concat_ws('','insert into ',v_tabname,' values(''',p_line,''')');
    execute v_ins_sql;
    RETURN TRUE;
    exception
            when others then
                raise notice  'Error Message : %',sqlerrm;
                raise;
END;
$BODY$;
```

*fclose*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fclose(
    p_file_name character varying,
    p_path character varying)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
DECLARE
    v_filewithpath character varying;
    v_bucket character varying;
    v_region character varying;
    v_tabname character varying;
    v_sql character varying;
BEGIN
      PERFORM utl_file_utility.init();
  
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );

    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;

    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region ;
    
    /* exporting to s3 */
    perform aws_s3.query_export_to_s3
        (concat_ws('','select * from ',v_tabname,'  order by ctid asc'), 
            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)
        );
    v_sql := concat_ws('','drop table ', v_tabname);
    execute v_sql;    
    RETURN TRUE;
EXCEPTION 
       when others then
     raise notice 'error fclose %',sqlerrm;
     RAISE;
END;
$BODY$;
```

**Teste suas funções de configuração e encapsulamento**

Use os seguintes blocos de código anônimo para testar sua configuração.

*Teste o modo de gravação*

O código a seguir grava um arquivo chamado `s3inttest` no bucket do S3.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'W';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

*Teste o modo de acréscimo*

O código a seguir acrescenta linhas ao arquivo `s3inttest` que foi criado no teste anterior.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'A';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;


select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose : append 1', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket : for test purpose : append 2', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

**Notificações do Amazon SNS**

Opcionalmente, você pode configurar o CloudWatch monitoramento da Amazon e as notificações do Amazon SNS no bucket do S3. Para obter mais informações, consulte [Monitoramento do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html) e [Configuração das notificações do Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

# Valide objetos de banco de dados após migrar do Oracle para o Amazon Aurora PostgreSQL
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql"></a>

*Venkatramana Chintha e Eduardo Valentim, Amazon Web Services*

## Resumo
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-summary"></a>

Esse padrão descreve uma step-by-step abordagem para validar objetos após a migração de um banco de dados Oracle para a edição compatível com o Amazon Aurora PostgreSQL.

Este padrão descreve cenários de uso e etapas para validação de objetos de banco de dados; para informações mais detalhadas, consulte [Validar objetos de banco de dados após a migração usando o AWS SCT e o AWS DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/) no [blog do AWS Database.](https://aws.amazon.com/blogs/)

## Pré-requisitos e limitações
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle on-premises que foi migrado para um banco de dados Aurora compatível com PostgreSQL. 
+ Credenciais de login que tenham a RDSData FullAccess política da [Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) aplicada para o banco de dados compatível com o Aurora PostgreSQL. 
+ Este padrão usa o [editor de consultas para clusters de banco de dados do Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), que está disponível no console do Amazon Relational Database Service (Amazon RDS). No entanto, você pode usar esse padrão com qualquer outro editor de consultas. 

**Limitações**
+ Os objetos SYNONYM do Oracle não estão disponíveis no PostgreSQL, mas podem ser parcialmente validados por meio de **visualizações** ou consultas SET search\$1path.
+ O editor de consultas do Amazon RDS está disponível somente em [determinadas regiões da AWS e para determinadas versões do MySQL e do PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html).

## Arquitetura
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-architecture"></a>

 

![\[Database migration workflow showing on-premises Oracle to AWSAurora PostgreSQL via client program and validation scripts.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7c028960-6dea-46ad-894d-e42cefd50c03/images/be5f8ae3-f5af-4c5e-9440-09ab410beaa1.png)


 

## Ferramentas
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-tools"></a>

**Ferramentas**
+ [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html): o Aurora compatível com PostgreSQL é um mecanismo de banco de dados relacional totalmente gerenciado, compatível com o PostgreSQL e em conformidade com ACID, que combina a velocidade e a confiabilidade de bancos de dados comerciais de ponta com a simplicidade e a economia de bancos de dados de código aberto.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html): o Amazon Relational Database Service (Amazon RDS) facilita a configuração, a operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional padrão do setor e gerencia tarefas comuns de administração de banco de dados.
+ [Editor de consultas para Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html): o editor de consultas ajuda você a executar consultas SQL no console do Amazon RDS. Execute qualquer instrução SQL válida no cluster de banco de dados do Aurora Serverless, inclusive instruções de manipulação e definição de dados.

Para realizar a validação dos objetos, use os scripts integrais presentes no arquivo “Scripts de validação de objetos”, localizado na seção “Anexos”. Use a tabela a seguir como referência.


| 
| 
| Objeto Oracle | Script a ser usado | 
| --- |--- |
| Pacotes | Consulta 1 | 
| Tabelas | Consulta 3 | 
| Visualizações | Consulta 5 | 
| Sequências | Consulta 7 | 
| Acionadores |  Consulta 9 | 
| Chaves primárias | Consulta 11 | 
| Índices | Consulta 13 | 
| Restrições de verificação | Consulta 15 | 
| Chaves externas  | Consulta 17  | 


| 
| 
| Objeto PostgreSQL | Script a ser usado | 
| --- |--- |
| Pacotes | Consulta 2 | 
| Tabelas | Consulta 4 | 
| Visualizações | Consulta 6 | 
| Sequências | Consulta 8 | 
| Acionadores | Consulta 10 | 
| Chaves primárias | Consulta 12 | 
| Índices | Consulta 14 | 
| Restrições de verificação | Consulta 16 | 
| Chaves externas | Consulta 18 | 

## Épicos
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-epics"></a>

### Validar objetos no banco de dados Oracle de origem
<a name="validate-objects-in-the-source-oracle-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma consulta de validação para “pacotes” no banco de dados de origem da Oracle.  | Realize o download e abra o arquivo “Scripts de validação de objetos”, localizado na seção “Anexos” Conecte-se ao banco de dados Oracle de origem por meio de seu programa cliente. Execute o script de validação “Consulta 1” do arquivo “Scripts de validação de objetos”. Importante: substitua “your\$1schema” pelo seu nome de usuário da Oracle nas consultas. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “tabelas”.  | Execute o script “Consulta 3” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “visualizações”.  | Execute o script “Consulta 5” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a validação de contagem para as “sequências”.  | Execute o script “Consulta 7” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “acionadores”.  | Execute o script “Consulta 9” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “chaves primárias”.  | Execute o script “Consulta 11” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “índices”.  | Execute o script de validação “Consulta 13” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “restrições de verificação”.  | Execute o script “Consulta 15” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “chaves estrangeiras”.  | Execute o script de validação “Consulta 17” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 

### Valide objetos no banco de dados Aurora de destino compatível com PostgreSQL
<a name="validate-objects-in-the-target-aurora-postgresql-compatible-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Conecte-se ao banco de dados Aurora de destino compatível com PostgreSQL usando o editor de consultas. | Faça login no Console de Gerenciamento da AWS e abra o console do Amazon RDS. No canto superior direito, escolha a região da AWS em que o banco de dados Aurora compatível com PostgreSQL foi criado. No painel de navegação, escolha “Bancos de dados” e selecione o banco de dados de destino do Aurora compatível com PostgreSQL. Em “Ações”, escolha “Consulta”. Importante: se esta for sua primeira conexão com o banco de dados, a página “Conectar-se ao banco de dados” será aberta. Em seguida, você precisa inserir as informações do banco de dados, como nome de usuário e senha. | Desenvolvedor, DBA | 
| Execute a consulta de validação “pacotes”. | Execute o script “Consulta 2” do arquivo “Scripts de validação de objetos” na seção “Anexos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “tabelas”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 4” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “visualizações”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 6” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a validação de contagem para as “sequências”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 8” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “acionadores”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 10” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “chaves primárias”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 12” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “índices”.  | Retorne ao editor de consultas do banco de dados do Aurora compatível com PostgreSQL e execute o script “Consulta 14” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “restrições de verificação”.  | Execute o script “Consulta 16” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 
| Execute a consulta de validação “chaves estrangeiras”.  | Execute o script de validação “Consulta 18” do arquivo “Scripts de validação de objetos”. Certifique-se de registrar seus resultados da consulta. | Desenvolvedor, DBA | 

### Compare os registros de validação do banco de dados de origem e destino
<a name="compare-source-and-target-database-validation-records"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Compare e valide ambos os resultados da consulta.  | Compare os resultados da consulta dos bancos de dados Oracle e Aurora compatíveis com PostgreSQL para validar todos os objetos. Se todos corresponderem, todos os objetos foram validados com sucesso. | Desenvolvedor, DBA | 

## Recursos relacionados
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-resources"></a>
+ [Validar objetos de banco de dados após uma migração usando o AWS SCT e o AWS DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/)
+ [Atributos do Amazon Aurora: Edição compatível com PostgreSQL](https://aws.amazon.com/rds/aurora/postgresql-features/)

## Anexos
<a name="attachments-7c028960-6dea-46ad-894d-e42cefd50c03"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/7c028960-6dea-46ad-894d-e42cefd50c03/attachments/attachment.zip)

# Redefinir a hospedagem
<a name="migration-rehost-pattern-list"></a>

**Topics**
+ [Aceleração da descoberta e da migração de workloads da Microsoft para a AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Crie um processo de aprovação para solicitações de firewall durante uma migração de rehospedagem para AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)
+ [Ingira e migre instâncias EC2 do Windows para uma conta do AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Migrar um banco de dados do Couchbase Server para a Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Migre o Db2 for LUW para a Amazon EC2 usando o envio de registros para reduzir o tempo de interrupção](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migre o Db2 for LUW para o Amazon EC2 com recuperação de desastres de alta disponibilidade](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Migre aplicativos hospedados no IIS para a Amazon EC2 usando o appcmd.exe](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2 usando o Application Migration Service](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migre uma carga de trabalho F5 BIG-IP para F5 BIG-IP VE no Nuvem AWS](migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud.md)
+ [Migrar um aplicativo web do Go on-premises para AWS Elastic Beanstalk usando o método binário](migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.md)
+ [Migrar um servidor SFTP local para usar AWS AWS Transfer for SFTP](migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp.md)
+ [Migre uma VM local para a Amazon EC2 usando o AWS Application Migration Service](migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.md)
+ [Migre pequenos conjuntos de dados do local para o Amazon S3 usando AWS SFTP](migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp.md)
+ [Migre um banco de dados Oracle local para o Oracle na Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Migre um banco de dados Oracle local para a Amazon EC2 usando o Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.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)
+ [Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Redefinir a hospedagem de workloads on-premises na Nuvem AWS: lista de verificação de migração](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.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)
+ [Use as consultas do BMC Discovery para extrair dados de migração para o planejamento da migração](use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning.md)

# Aceleração da descoberta e da migração de workloads da Microsoft para a AWS
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws"></a>

*Ali Alzand, Amazon Web Services*

## Resumo
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-summary"></a>

Esse padrão mostra como usar o [ PowerShell módulo Migration Validator Toolkit](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads) para descobrir e migrar suas cargas de trabalho da Microsoft para a AWS. O módulo funciona executando várias verificações e validações para tarefas comuns associadas a qualquer workload da Microsoft. Por exemplo, o módulo realiza verificações em instâncias que podem ter múltiplos discos conectados ou que usam vários endereços IP. Para obter uma lista completa das verificações que o módulo pode realizar, consulte a seção [Verificações](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads#checks) na GitHub página do módulo.

O PowerShell módulo Migration Validator Toolkit pode ajudar sua organização a reduzir o tempo e o esforço envolvidos na descoberta de quais aplicativos e serviços estão sendo executados em suas cargas de trabalho da Microsoft. O módulo também pode ajudar a identificar as configurações de suas workloads para que você possa descobrir se há suporte para suas configurações na AWS. O módulo também fornece recomendações para as próximas etapas e ações de mitigação, para que você possa evitar configurações incorretas antes, durante ou depois da migração.

## Pré-requisitos e limitações
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-prereqs"></a>

**Pré-requisitos **
+ Conta de administrador local
+ PowerShell 4.0

**Limitações**
+ Funciona somente no Microsoft Windows Server 2012 R2 ou posterior

## Ferramentas
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-tools"></a>

**Ferramentas**
+ PowerShell 4.0

**Repositório de código**

O PowerShell módulo Migration Validator Toolkit para esse padrão está disponível no repositório GitHub [migration-validator-toolkit-for-microsoft-workloads](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads).

## Épicos
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-epics"></a>

### Execute o PowerShell módulo Migration Validator Toolkit em um único destino
<a name="run-the-migration-validator-toolkit-powershell-module-on-a-single-target"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe, extraia, importe e invoque o módulo. | Escolha um dos métodos a seguir para baixar e implantar o módulo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Execute o PowerShell script**Em PowerShell, execute o seguinte código de exemplo:<pre>#MigrationValidatorToolkit<br />$uri = 'https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads/archive/refs/heads/main.zip'<br />$destination = (Get-Location).Path<br />if ((Test-Path -Path "$destination\MigrationValidatorToolkit.zip" -PathType Leaf) -or (Test-Path -Path "$destination\MigrationValidatorToolkit")) {<br />    write-host "File $destination\MigrationValidatorToolkit.zip or folder $destination\MigrationValidatorToolkit found, exiting"<br />}else {<br />    Write-host "Enable TLS 1.2 for this PowerShell session only."<br />    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12<br />    $webClient = New-Object System.Net.WebClient<br />    Write-host "Downloading MigrationValidatorToolkit.zip"<br />    $webClient.DownloadFile($uri, "$destination\MigrationValidatorToolkit.zip")<br />    Write-host "MigrationValidatorToolkit.zip download successfully"<br />    Add-Type -Assembly "system.io.compression.filesystem"<br />    [System.IO.Compression.ZipFile]::ExtractToDirectory("$destination\MigrationValidatorToolkit.zip","$destination\MigrationValidatorToolkit")<br />    Write-host "Extracting MigrationValidatorToolkit.zip complete successfully"<br />    Import-Module "$destination\MigrationValidatorToolkit\migration-validator-toolkit-for-microsoft-workloads-main\MigrationValidatorToolkit.psm1"; Invoke-MigrationValidatorToolkit<br />}</pre>O código baixa o módulo de um arquivo.zip. Em seguida, o código extrai, importa e invoca o módulo.**Baixe e extraia o arquivo.zip**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Clone o repositório GitHub **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Administrador de sistema | 
| Invoque o módulo manualmente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)[Formato - Formato da tabela](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-table?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit</pre>[Formato da lista de formatos](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-list?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -List</pre>[GridViewFormato externo:](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-gridview?view=powershell-7.3)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -GridView</pre>[ConvertTo-Formato CSV:](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.3)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -csv</pre> | Administrador de sistema | 

### Execute o PowerShell módulo Migration Validator Toolkit em vários destinos
<a name="run-the-migration-validator-toolkit-powershell-module-on-multiple-targets"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o arquivo.zip ou clone o GitHub repositório. | Escolha uma das seguintes opções:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git</pre> | Administrador de sistema | 
| Atualize a lista server.csv. | Se você baixou o arquivo.zip, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Administrador de sistema | 
| Invoque o módulo. | Você pode usar qualquer computador dentro do domínio que use um usuário de domínio que tenha acesso de administrador aos computadores de destino.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers</pre>O arquivo.csv de saída é salvo `MigrationValidatorToolkit\Outputs\folder` com o nome do prefixo. `DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS` | Administrador de sistema | 

## Solução de problemas
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| `MigrationValidatorToolkit`grava informações sobre execuções, comandos e erros nos arquivos de log no host em execução. | Você pode visualizar os arquivos de log manualmente no seguinte local:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | 

## Recursos relacionados
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-resources"></a>
+ [Opções, ferramentas e melhores práticas para migrar cargas de trabalho da Microsoft para a AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-microsoft-workloads-aws/introduction.html) Guidance)
+ [Padrões de migração da Microsoft](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-migration-patterns-by-workload-microsoft-pattern-list.html) (AWS Prescriptive Guidance)
+ [Serviços gratuitos de migração para a nuvem na AWS](https://aws.amazon.com/free/migration/) (documentação da AWS)
+ [Ações predefinidas de pós-lançamento (documentação](https://docs.aws.amazon.com/mgn/latest/ug/predefined-post-launch-actions.html) de marketing de aplicativos)

## Mais informações
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-additional"></a>

**Perguntas frequentes**

*Onde posso executar o módulo Migration Validator Toolkit PowerShell ?*

Você pode executar o módulo no Microsoft Windows Server 2012 R2 ou posterior.

*Quando eu executo esse módulo?*

Recomendamos que você execute o módulo durante a [fase de avaliação](https://aws.amazon.com/cloud-migration/how-to-migrate/) da jornada de migração.

*O módulo modifica meus servidores existentes?*

Não. Todas as ações neste módulo são somente para leitura.

*Quanto tempo é necessário para executar o módulo?*

Normalmente, a execução do módulo leva de 1 a 5 minutos, mas isso depende da alocação de recursos do seu servidor.

*Quais permissões o módulo precisa para ser executado?*

Você deve executar o módulo a partir de uma conta de administrador local.

*Posso executar o módulo em servidores físicos?*

Sim, desde que o sistema operacional seja o Microsoft Windows Server 2012 R2 ou posterior.

*Como faço para executar o módulo em grande escala para vários servidores?*

Para executar o módulo em vários computadores associados a um domínio em grande escala, siga as etapas do * PowerShell módulo Executar o kit de ferramentas do Migration Validator em vários destinos*, épico deste guia. Para computadores não associados a um domínio, use uma invocação remota ou execute o módulo localmente seguindo as etapas do módulo Executar o *kit de ferramentas do Migration Validator em um único épico de PowerShell destino* deste guia.

# Crie um processo de aprovação para solicitações de firewall durante uma migração de rehospedagem para AWS
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Resumo
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-summary"></a>

Se você quiser usar [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)o [Cloud Migration Factory ativado AWS](https://aws.amazon.com/solutions/implementations/cloud-migration-factory-on-aws/) para rehospedar a migração para o Nuvem AWS, um dos pré-requisitos é manter as portas TCP 443 e 1500 abertas. Normalmente, a abertura dessas portas de firewall requer a aprovação da equipe de segurança da informação (InfoSec).

Esse padrão descreve o processo para obter a aprovação de uma solicitação de firewall de uma InfoSec equipe durante uma migração de rehospedagem para o. Nuvem AWS Você pode usar esse processo para evitar rejeições de sua solicitação de firewall pela InfoSec equipe, o que pode se tornar caro e demorado. O processo de solicitação de firewall tem duas etapas de revisão e aprovação entre consultores de AWS migração e líderes que trabalham com você InfoSec e com as equipes de aplicativos para abrir as portas do firewall.

Esse padrão pressupõe que você esteja planejando uma migração de rehospedagem com AWS consultores ou especialistas em migração da sua organização. Você pode usar esse padrão se sua organização não tiver um processo de aprovação de firewall ou um formulário de aprovação geral de solicitação de firewall. Para obter mais informações sobre isso, consulte a seção *Limitações* desse padrão. Para obter mais informações sobre os requisitos de rede do Application Migration Service, consulte [Requisitos de rede](https://docs.aws.amazon.com/mgn/latest/ug/Network-Requirements.html) na documentação do Application Migration Service.

## Pré-requisitos e limitações
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-prereqs"></a>

**Pré-requisitos **
+ Uma migração planejada de rehospedagem com AWS consultores ou especialistas em migração de sua organização
+ As informações de porta e IP necessárias para migrar a pilha
+ Diagramas de arquitetura de estado existentes e futuros
+ Informações de firewall sobre a infraestrutura local e de destino, portas e zone-to-zone fluxo de tráfego
+ Uma lista de verificação de revisão de solicitações de firewall (anexada)
+ Um documento de solicitação de firewall, configurado de acordo com os requisitos da sua organização
+ Uma lista de contatos para os revisores e aprovadores do firewall, incluindo as seguintes funções:
  + **Remetente da solicitação de firewall — especialista ou consultor** em AWS migração. O remetente da solicitação de firewall também pode ser um especialista em migração da sua organização.
  + **Revisor de solicitações de firewall** — Normalmente, esse é o ponto único de contato (SPOC) de. AWS
  + **Aprovador da solicitação de firewall** — Um membro InfoSec da equipe.

**Limitações**
+ Esse padrão descreve um processo genérico de aprovação de solicitações de firewall. Os requisitos podem variar para organizações individuais.
+ Certifique-se de monitorar as alterações em seu documento de solicitação de firewall.

A tabela a seguir mostra os casos de uso desse padrão.


| 
| 
| Sua organização tem um processo de aprovação de firewall existente? | Sua organização tem um formulário de solicitação de firewall existente?  | Ação sugerida | 
| --- |--- |--- |
| Sim | Sim | Colabore com AWS consultores ou especialistas em migração para implementar o processo de sua organização. | 
| Não | Sim | Use o processo de aprovação do firewall desse padrão. Use um AWS consultor ou um especialista em migração da sua organização para enviar o formulário de aprovação geral de solicitação de firewall. | 
| Não | Não | Use o processo de aprovação do firewall desse padrão. Use um AWS consultor ou um especialista em migração da sua organização para enviar o formulário de aprovação geral de solicitação de firewall. | 

## Arquitetura
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-architecture"></a>

O diagrama a seguir mostra as etapas do processo de aprovação da solicitação do firewall.

![\[Processo para aprovação de solicitação de firewall de uma InfoSec equipe durante uma migração de rehospedagem para a Nuvem AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cf9b58ad-ab6f-43d3-92da-968529c8d042/images/c672f7ce-6e9f-4dbc-bf2c-4272a6c4432b.png)


## Ferramentas
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-tools"></a>

Você pode usar ferramentas de scanner, como a [Palo Alto Networks](https://www.paloaltonetworks.com/), ou [SolarWinds](https://www.solarwinds.com/)para analisar e validar firewalls e endereços IP.

## Épicos
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-epics"></a>

### Analise a solicitação de firewall
<a name="analyze-the-firewall-request"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise as portas e os endereços IP. | O remetente da solicitação de firewall conclui uma análise inicial para entender as portas de firewall e os endereços IP necessários. Depois que isso for concluído, eles solicitam que sua InfoSec equipe abra as portas necessárias e mapeie os endereços IP. | Engenheiro de nuvem AWS, especialista em migração | 

### Valide a solicitação de firewall
<a name="validate-the-firewall-request"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as informações do firewall. | O Nuvem AWS engenheiro agenda uma reunião com sua InfoSec equipe. Durante essa reunião, o engenheiro examina e valida as informações da solicitação do firewall.Normalmente, o remetente da solicitação de firewall é a mesma pessoa que o solicitante do firewall. Essa fase de validação pode se tornar iterativa com base no feedback dado pelo aprovador, caso algo seja observado ou recomendado. | Engenheiro de nuvem AWS, especialista em migração | 
| Atualize o documento de solicitação do firewall. | Depois que a InfoSec equipe compartilha seus comentários, o documento de solicitação do firewall é editado, salvo e reenviado. Este documento é atualizado após cada iteração.Recomendamos que você armazene esse documento em uma pasta de armazenamento com controle de versão. Isso significa que todas as alterações são rastreadas e aplicadas corretamente. | Engenheiro de nuvem AWS, especialista em migração | 

### Envie a solicitação de firewall
<a name="submit-the-firewall-request"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a solicitação de firewall. | Depois que o aprovador da solicitação de firewall aprova a solicitação de aprovação geral do firewall, o Nuvem AWS engenheiro envia a solicitação de firewall. A solicitação especifica as portas que devem ser abertas e os endereços IP que precisam ser mapeados e atualizados na Conta da AWS.Você pode fazer sugestões ou fornecer feedback após o envio da solicitação do firewall. Recomendamos que você automatize esse processo de feedback e envie qualquer edição por meio de um mecanismo de fluxo de trabalho definido.  | Engenheiro de nuvem AWS, especialista em migração | 

## Anexos
<a name="attachments-cf9b58ad-ab6f-43d3-92da-968529c8d042"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/cf9b58ad-ab6f-43d3-92da-968529c8d042/attachments/attachment.zip)

# Ingira e migre instâncias EC2 do Windows para uma conta do AWS Managed Services
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account"></a>

*Anil Kunapareddy e Venkatramana Chintha, Amazon Web Services*

## Resumo
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-summary"></a>

Esse padrão explica o step-by-step processo de migração e ingestão de instâncias Windows do Amazon Elastic Compute Cloud (Amazon EC2) em uma conta do Amazon Web Services (AWS) Managed Services (AMS). O AMS pode ajudar você a gerenciar a instância com mais eficiência e segurança. O AMS fornece flexibilidade operacional, aprimora a segurança e a conformidade, além de ajudar a otimizar a capacidade e reduzir custos.

Esse padrão começa com uma instância EC2 do Windows que você migrou para uma sub-rede de teste na sua conta do AMS. Vários serviços e ferramentas de migração estão disponíveis para realizar essa tarefa, como o AWS Application Migration Service.

Para fazer uma alteração em seu ambiente gerenciado pelo AMS, você cria e envia uma solicitação de alteração (RFC) para uma operação ou ação específica. Usando uma RFC de ingestão de workload (WIGS) do AMS, você ingere a instância na conta do AMS e cria uma imagem de máquina da Amazon (AMI) personalizada. Em seguida, você cria a EC2 instância gerenciada pelo AMS enviando outra RFC para criar uma pilha. EC2 Para obter mais informações, consulte [Ingestão de workload AMS](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html) na documentação do AMS.

## Pré-requisitos e limitações
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-prereqs"></a>

**Pré-requisitos **
+ Uma conta da AWS ativa e gerenciada pelo AMS
+ Uma zona de pouso existente
+ Permissões para fazer alterações na VPC gerenciada pelo AMS
+ Uma instância EC2 do Amazon Windows em uma sub-rede de teste em sua conta AMS
+ Conclusão dos [pré-requisitos gerais](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-instance-prereqs.html) para migrar workloads usando a WIGS do AMS
+ Conclusão dos [pré-requisitos do Windows](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-prereqs-win.html) para migrar workloads usando a WIGS do AMS

**Limitações**
+ Esse padrão é para EC2 instâncias que operam o Windows Server. Este padrão não se aplica a instâncias que executam outros sistemas operacionais, como Linux.

## Arquitetura
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-architecture"></a>

**Pilha de tecnologia de origem**

Instância EC2 do Amazon Windows em uma sub-rede de teste em sua conta AMS

**Pilha de tecnologias de destino**

Instância EC2 do Amazon Windows gerenciada pelo AWS Managed Services (AMS)

**Arquitetura de destino**

![\[Processo para migrar e ingerir instâncias EC2 do Amazon Windows em uma conta do AWS Managed Services.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/393c21cb-b6c6-4446-b597-b62e29fdb7f8/images/0b2fa855-7460-49f8-9e7f-3485e6ce1745.png)


## Ferramentas
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-tools"></a>

**Serviços da AWS**
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html) fornece capacidade de computação escalável na Nuvem AWS. Você pode usar EC2 a Amazon para lançar quantos servidores virtuais precisar e pode expandir ou aumentar a escala.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Managed Services (AMS)](https://docs.aws.amazon.com/managedservices/?id=docs_gateway) ajuda você a operar com mais eficiência e segurança ao fornecer gerenciamento contínuo da sua infraestrutura da AWS, incluindo monitoramento, gerenciamento de incidentes, orientação de segurança, suporte a patches e backup para workloads da AWS.

**Outros serviços**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)é um programa de gerenciamento de automação e configuração da Microsoft executado em Windows, Linux e macOS.

## Épicos
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-epics"></a>

### Definir configurações na instância
<a name="configure-settings-on-the-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Altere as configurações do Cliente DNS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 
| Altere as configurações do Windows Update. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 
| Ativar o firewall. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 

### Prepare a instância para o WIGS do AMS
<a name="prepare-the-instance-for-ams-wigs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpe e prepare a instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 
| Repare o arquivo sppnp.dll. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 
| Execute o script de validação pré-WIG. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 
| Crie a AMI à prova de falhas. | Depois que a validação pré-WIG for aprovada, crie uma AMI de pré-ingestão da seguinte forma:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html)Para obter mais informações, consulte [AMI \$1 Criar](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-ami-create.html) na documentação do AMS. | Engenheiro de migração | 

### Ingerir e validar a instância
<a name="ingest-and-validate-the-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a RFC para criar a pilha de ingestão de workload. | Envie uma solicitação de alteração (RFC) para iniciar a WIGS do AMS. Para obter instruções, consulte [Pilha de ingestão de workload: criação](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-workload-ingest-col.html) na documentação do AMS. Isso inicia a ingestão da carga de trabalho e instala todo o software exigido pelo AMS, incluindo ferramentas de backup, software de EC2 gerenciamento da Amazon e software antivírus. | Engenheiro de migração | 
| Valide a migração bem-sucedida. | Depois que a ingestão de workload for concluída, você poderá ver a instância gerenciada pelo AMS e a AMI ingerida pelo AMS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 

### Executar a instância na conta da AMS de destino
<a name="launch-the-instance-in-the-target-ams-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie o RFC para criar uma EC2 pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Engenheiro de migração | 

## Recursos relacionados
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-resources"></a>

**Recomendações da AWS**
+ [Automatize as atividades de pré-ingestão de workload para o AWS Managed Services no Windows](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automate-pre-workload-ingestion-activities-for-aws-managed-services-on-windows.html)
+ [Crie automaticamente uma RFC no AMS usando Python](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automatically-create-an-rfc-in-ams-using-python.html?did=pg_card&trk=pg_card)

**Documentação do AMS**
+ [Ingestão de workload do AMS](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html)
+ [Como a migração altera seu recurso](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-changes.html)
+ [Migração de workloads: processo padrão](https://docs.aws.amazon.com/managedservices/latest/appguide/mp-migrate-stack-process.html)

**Recursos de marketing**
+ [AWS Managed Services](https://aws.amazon.com/managed-services/)
+ [AWS Managed Services FAQs](https://aws.amazon.com/managed-services/faqs/)
+ [Recursos do AWS Managed Services](https://aws.amazon.com/managed-services/resources/)
+ [Atributos do AWS Managed Services](https://aws.amazon.com/managed-services/features/)

# Migrar um banco de dados do Couchbase Server para a Amazon EC2
<a name="migrate-couchbase-server-ec2"></a>

*Subhani Shaik, Amazon Web Services*

## Resumo
<a name="migrate-couchbase-server-ec2-summary"></a>

Esse padrão descreve como você pode migrar o Couchbase Server de um ambiente local para o Amazon Elastic Compute Cloud (Amazon) em. EC2 AWS

O Couchbase Server é um banco de dados NoSQL distribuído (com documentos JSON) que fornece funcionalidades de bancos de dados relacionais. A migração de um banco de dados do Couchbase Server AWS pode fornecer maior escalabilidade, melhor desempenho, eficiência de custos, segurança aprimorada, gerenciamento simplificado e alcance global, o que pode beneficiar aplicativos que exigem alta disponibilidade e acesso a dados de baixa latência. Você também obtém acesso a recursos avançados por meio de serviços AWS gerenciados. 

O Couchbase Server on AWS fornece os seguintes recursos principais: 
+ Arquitetura que prioriza a memória
+ Alta disponibilidade, recuperação de desastres e balanceamento de carga
+ Implantação em vários mestres e em diversas regiões para performance otimizada

Para obter mais informações sobre os principais benefícios, consulte a seção [Informações adicionais](#migrate-couchbase-server-ec2-additional) e o [site da Couchbase](https://www.couchbase.com/partners/amazon/).

## Pré-requisitos e limitações
<a name="migrate-couchbase-server-ec2-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS com uma nuvem privada virtual (VPC), duas zonas de disponibilidade, sub-redes privadas e um grupo de segurança. Para obter instruções, consulte [Crie uma VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) na documentação da Amazon Virtual Private Cloud (Amazon VPC).
+ Conectividade habilitada entre os ambientes de origem e de destino. Para obter informações sobre as portas TCX usadas pelo Couchbase Server, consulte a [documentação da Couchbase](https://docs.couchbase.com/server/current/install/install-ports.html).

## Arquitetura
<a name="migrate-couchbase-server-ec2-architecture"></a>

O diagrama a seguir mostra a arquitetura de alto nível para a migração do Couchbase Server para o. AWS

![\[Arquitetura de migração para redefinir a hospedagem do Couchbase Server na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4cedced2-3528-4f12-b19e-7d389e820cc1/images/ac22133a-895f-4999-b1e1-57f69e83a326.png)


Os dados do cluster do Couchbase on-premises transitam por um gateway do cliente usando o [AWS Direct Connect](https://aws.amazon.com/directconnect/). Os dados passam por um roteador e uma Direct Connect rota e chegam à VPC por meio de um gateway [AWS Virtual Private Network (Site-to-Site VPN)](https://aws.amazon.com/vpn/). A VPC contém uma EC2 instância que está executando o Couchbase Server. A AWS infraestrutura também inclui [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) para controle de acesso, [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) para criptografia de dados, [Amazon Elastic Block Store (Amazon EBS) para armazenamento em blocos e Amazon](https://aws.amazon.com/ebs/) [Simple Storage Service (Amazon S3) para armazenamento de dados](https://aws.amazon.com/s3/).

## Ferramentas
<a name="migrate-couchbase-server-ec2-tools"></a>

**Serviços da AWS**
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)conecta sua rede interna a um Direct Connect local por meio de um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para o público, Serviços da AWS ignorando os provedores de serviços de Internet em seu caminho de rede.

## Práticas recomendadas
<a name="migrate-couchbase-server-ec2-best-practices"></a>
+ [Instalação e configuração do Couchbase](https://docs.couchbase.com/server/current/install/install-intro.html) em diferentes plataformas de operação
+ [Melhores práticas](https://docs.couchbase.com/server/current/cloud/couchbase-cloud-deployment.html#aws-best-practices) para implantar o Couchbase Server em AWS
+ [Criação de um cluster do Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/create-cluster.html)
+ [Práticas recomendadas de performance](https://docs.couchbase.com/dotnet-sdk/current/project-docs/performance.html) para aplicações do Couchbase
+ [Práticas recomendadas de segurança](https://docs.couchbase.com/server/current/learn/security/security-overview.html) para o Couchbase Server
+ [Práticas recomendadas de armazenamento](https://www.couchbase.com/forums/t/what-is-the-best-document-storage-strategy-in-couchbase/1573) para bancos de dados do Couchbase Server

## Épicos
<a name="migrate-couchbase-server-ec2-epics"></a>

### Implemente uma EC2 instância da Amazon para o Couchbase Server
<a name="deploy-an-ec2-instance-for-couchbase-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Abra o EC2 console da Amazon. | Faça login no [Console de gerenciamento da AWS](https://console.aws.amazon.com/)e abra o [ EC2 console da Amazon](https://console.aws.amazon.com/ec2/). | DevOps engenheiro, administrador do Couchbase | 
| Implante uma EC2 instância da Amazon. | Execute uma EC2 instância que corresponda às configurações locais do Couchbase Server. Para obter mais informações sobre como implantar uma EC2 instância, consulte [Iniciar uma EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) na EC2 documentação da Amazon. | DevOps engenheiro, administrador do Couchbase | 

### Instale e configure o Couchbase Server na Amazon EC2
<a name="install-and-configure-couchbase-server-on-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale um cluster do Couchbase. | Revise as [diretrizes de implantação do Couchbase Server](https://docs.couchbase.com/server/current/install/install-production-deployment.html) antes de instalar o Couchbase Server na Amazon. EC2Para instalar o Couchbase Server, consulte a [documentação do Couchbase Server](https://docs.couchbase.com/server/current/install/install-intro.html). | Administrador do Couchbase | 
| Configure o cluster. | Para configurar o cluster, consulte a seção [Cluster Configuration Options](https://docs.couchbase.com/cloud/clusters/databases.html#cluster-configuration-options) na documentação do Couchbase. | Administrador do Couchbase | 

### Adição de um nó e balanceamento do cluster do Couchbase
<a name="add-a-new-node-and-rebalance-the-couchbase-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione um nó para a EC2 instância. | Adicione a EC2 instância recém-implantada que tem o Couchbase instalado no cluster local existente. Para obter instruções, consulte [Add a Node and Rebalance](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) na documentação do Couchbase Server. | Administrador do Couchbase | 
| Balanceie o cluster novamente. | O processo de rebalanceamento torna o nó recém-adicionado com a EC2 instância um membro ativo do cluster Couchbase. Para obter instruções, consulte [Add a Node and Rebalance](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) na documentação do Couchbase Server. | Administrador do Couchbase | 

### Reconfiguração de conexões
<a name="reconfigure-connections"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remova os nós on-premises e balanceie novamente. | Agora, você pode remover os nós on-premises do cluster. Após a remoção dos nós, siga o processo de rebalanceamento para redistribuir dados, índices, processamento de eventos e processamento de consultas entre os nós disponíveis no cluster. Para obter instruções, consulte [Remove a Node and Rebalance](https://docs.couchbase.com/server/current/manage/manage-nodes/remove-node-and-rebalance.html) na documentação do Couchbase Server. | Administrador do Couchbase | 
| Atualize os parâmetros de conexão. | Atualize os parâmetros de conexão do seu aplicativo para usar o novo endereço EC2 IP da Amazon, para que seu aplicativo possa se conectar ao novo nó. | Desenvolvedor de aplicações do Couchbase | 

## Recursos relacionados
<a name="migrate-couchbase-server-ec2-resources"></a>
+ [Couchbase Server Services](https://docs.couchbase.com/server/current/learn/services-and-indexes/services/services.html)
+ [Implemente o Couchbase Server usando AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html)
+ [Connect to Couchbase Server](https://docs.couchbase.com/server/current/guides/connect.html)
+ [Gerenciar buckets](https://docs.couchbase.com/server/current/manage/manage-buckets/bucket-management-overview.html)
+ [Cross Data Center Replication (XDCR)](https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-overview.html)
+ [Couchbase Inc. License Agreement](https://www.couchbase.com/LA20190115/)

## Mais informações
<a name="migrate-couchbase-server-ec2-additional"></a>

**Benefícios principais**

A migração do seu banco de dados Couchbase AWS oferece as seguintes vantagens:

**Escalabilidade**. Você pode escalar seu cluster Couchbase para cima ou para baixo com base na demanda, sem precisar gerenciar hardware físico, para acomodar facilmente volumes de dados flutuantes e uso de aplicativos. AWS fornece:
+ Opções de escalabilidade horizontal e vertical
+ Funcionalidades de [implantação global](https://aws.amazon.com/about-aws/global-infrastructure/)
+ Balanceamento de carga em todo Regiões da AWS
+ [Soluções de escalabilidade para banco de dados](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/)
+ Otimização da [entrega de conteúdo](https://aws.amazon.com/solutions/content-delivery/)

**Otimização do desempenho**. AWS fornece uma infraestrutura de rede de alto desempenho e [tipos de instância otimizados](https://aws.amazon.com/ec2/instance-types/) para garantir acesso rápido aos dados e baixa latência para seu banco de dados Couchbase.
+ Opções de [computação de alta performance (HPC)](https://aws.amazon.com/hpc/)
+ Entrega global de conteúdo pela [Amazon CloudFront](https://aws.amazon.com/cloudfront/)
+ Diversas [opções de armazenamento](https://aws.amazon.com/products/storage/)
+ [Serviços avançados de banco de dados](https://aws.amazon.com/products/databases/), incluindo o Amazon Relational Database Service (Amazon RDS) e o Amazon DynamoDB
+ Conexões de baixa latência com o [Direct Connect](https://aws.amazon.com/directconnect/)

**Otimização de custo.** Selecione o tipo de instância e a configuração adequados para equilibrar a performance e o custo com base na sua workload. Pague apenas pelos recursos que utilizar. Isso pode reduzir potencialmente seus custos operacionais, eliminando a necessidade de gerenciar hardware local e aproveitando Nuvem AWS as economias de escala.
+ As [instâncias reservadas](https://aws.amazon.com/ec2/pricing/reserved-instances/) podem ajudar você a se planejar e reduzir significativamente os custos ao usar o Couchbase na AWS.
+ A [escalabilidade automática](https://aws.amazon.com/autoscaling/) evita provisionamento excessivo e ajuda a otimizar a utilização e a eficiência de custo.

**Segurança reforçada**. Beneficie-se dos recursos de segurança robustos AWS, como criptografia de dados, controles de acesso e grupos de segurança, para ajudar a proteger os dados confidenciais que você armazena no Couchbase. Benefícios adicionais:
+ O [Modelo de Responsabilidade AWS Compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) diferencia claramente entre a segurança *da* nuvem (AWS responsabilidade) e a segurança *na* nuvem (responsabilidade do cliente).
+ [AWS a conformidade](https://aws.amazon.com/compliance/) suporta os principais padrões de segurança.
+ AWS fornece opções avançadas [de criptografia](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/welcome.html).
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) ajuda você a gerenciar o acesso seguro aos seus recursos.

**Gerenciamento simplificado**. AWS fornece serviços gerenciados para o Couchbase, para que você possa se concentrar no desenvolvimento de aplicativos em vez de gerenciar a infraestrutura subjacente.

**Alcance global**. Você pode implantar seu cluster Couchbase em vários Regiões da AWS para obter baixa latência para usuários em todo o mundo. É possível implantar os bancos de dados totalmente na nuvem ou em um ambiente híbrido. Você pode proteger seus dados com segurança corporativa integrada e sincronização bidirecional rápida e eficiente entre a borda e a nuvem. Além disso, o desenvolvimento é simplificado por meio de um modelo de programação consistente para aplicações web e móveis.

**Continuidade de negócios**:
+ **Backup e recuperação de dados**. Se ocorrer algum incidente, o [AWS Backup](https://aws.amazon.com/backup/) pode ser usado para assegurar a resiliência dos dados e facilitar a recuperação. Para obter opções de recuperação de desastres, consulte a [documentação do AWS Well-Architected Framework](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).
+ **Implantação multirregional do Couchbase**: Para implantar um banco de dados do Couchbase em um AWS ambiente multirregional, você pode assinar o Couchbase Server em, usar [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)modelos para criar clusters separados do Couchbase em cada região e [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-zy5g2wqmqdyzw), em seguida, configurar a replicação entre regiões para sincronizar dados entre regiões. Essa configuração garante alta disponibilidade e redundância geográfica em várias regiões. Para obter mais informações, consulte [Deploy Couchbase Server Using AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html) na documentação do Couchbase.

**Agilidade da infraestrutura**:
+ [Provisionamento e desprovisionamento de recursos](https://aws.amazon.com/products/management-and-governance/use-cases/provisioning-and-orchestration/) com rapidez
+ Alcance [global da infraestrutura](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Escalabilidade automática](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) baseada na demanda
+ [Infraestrutura como código (IaC)](https://aws.amazon.com/what-is/iac/) para implantações consistentes
+ Vários [tipos de instância](https://aws.amazon.com/ec2/instance-types/) otimizados para diferentes workloads

**Fomento à inovação**:
+ Acesso às tecnologias mais recentes, incluindo [IA/ML](https://aws.amazon.com/ai/generative-ai/), [IoT](https://aws.amazon.com/iot/) e [analytics](https://aws.amazon.com/big-data/datalakes-and-analytics/)
+ [Serviços gerenciados](https://aws.amazon.com/blogs/architecture/reduce-operational-load-using-aws-managed-services-for-your-data-solutions/), que reduzem a sobrecarga operacional
+ Práticas para o desenvolvimento de [aplicações modernas](https://aws.amazon.com/modern-apps/)
+ Opções de computação com [tecnologia sem servidor](https://aws.amazon.com/serverless/)

**Excelência operacional**:
+ [Monitoramento e registro em log centralizados](https://docs.aws.amazon.com/prescriptive-guidance/latest/designing-control-tower-landing-zone/logging-monitoring.html)
+ [Gerenciamento automatizado de recursos](https://aws.amazon.com/systems-manager/)
+ Funcionalidades de [manutenção preditiva](https://aws.amazon.com/what-is/predictive-maintenance/)
+ [Visibilidade aprimorada](https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-cloudwatch-provides-centralized-visibility-telemetry-configurations/) do uso de recursos
+ [Processos de implantação simplificados](https://aws.amazon.com/blogs/mt/streamline-change-processes-and-improve-governance-with-aws-well-architected/)

**Oportunidades de modernização**:
+ Arquitetura de [microsserviços](https://aws.amazon.com/microservices/)
+ [DevOps](https://aws.amazon.com/devops/)implementação de práticas
+ Desenvolvimento de aplicações [nativas da nuvem](https://aws.amazon.com/what-is/cloud-native/)
+ [Modernização de aplicações legadas](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-modernizing-applications/welcome.html)

**Vantagens competitivas**:
+ [Maior rapidez no lançamento de produtos](https://aws.amazon.com/blogs/smb/accelerate-time-to-market-and-business-growth-with-an-automated-software-as-a-service-platform/)
+ [Experiência do cliente](https://aws.amazon.com/blogs/publicsector/improving-customer-experience-for-the-public-sector-using-aws-services/) aprimorada
+ Tomada de decisão [orientada por dados](https://aws.amazon.com/data/data-driven-decision-making/)
+ [Business intelligence](https://aws.amazon.com/what-is/business-intelligence/) aprimorada

# Migre o Db2 for LUW para a Amazon EC2 usando o envio de registros para reduzir o tempo de interrupção
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar e Saurabh Sharma, Amazon Web Services*

## Resumo
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Quando os clientes migram suas cargas de trabalho do IBM Db2 for LUW (Linux, UNIX e Windows) para a Amazon Web Services (AWS), usar o Amazon Elastic Compute Cloud (Amazon) com o modelo Bring Your Own License (BYOL EC2) é a maneira mais rápida. No entanto, migrar grandes volumes de dados do Db2 on-premises para a AWS pode ser um desafio, especialmente quando a janela de indisponibilidade é curta. Muitos clientes tentam definir a janela de interrupção para menos de 30 minutos, o que deixa pouco tempo para o banco de dados em si.

Esse padrão aborda como realizar uma migração do Db2 com uma pequena janela de interrupção usando o envio do log de transações. Essa abordagem se aplica ao Db2 em uma plataforma Linux little-endian.

## Pré-requisitos e limitações
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Db2 em execução em uma EC2 instância que corresponde aos layouts do sistema de arquivos local
+ Um bucket do Amazon Simple Storage Service (Amazon S3) acessível à instância EC2 
+ Uma política e um perfil do AWS Identity and Access Management (IAM) para realizar chamadas programáticas ao Amazon S3
+ Fuso horário e relógios do sistema sincronizados na Amazon EC2 e no servidor local
+ A rede local conectada à AWS por meio do AWS [ Site-to-SiteVPN ou do AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

**Limitações**
+ A instância local do Db2 e a Amazon EC2 devem estar na mesma família de [plataformas](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ O workload on-premises do Db2 deve ser registrado. Defina `blocknonlogged=yes` na configuração do banco de dados para bloquear qualquer transação não registrada.

**Versões do produto**
+ Db2 for LUW versão 11.5.9 e posterior

## Arquitetura
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Pilha de tecnologia de origem**
+ Db2 em Linux** **x86\$164

**Pilha de tecnologias de destino**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN ou Direct Connect

**Arquitetura de destino**

O diagrama a seguir mostra uma instância do Db2 em execução local com uma conexão de rede privada virtual (VPN) com o Db2 na Amazon. EC2 As linhas pontilhadas representam o túnel VPN entre seu datacenter e a nuvem AWS.

![\[Fluxo de trabalho para realizar a migração do Db2 em uma janela de indisponibilidade curta usando o envio de logs de transação.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Ferramentas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Serviços da AWS**
+ A ‭[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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ 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 Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ [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.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ 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.
+ [O AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

**Outras ferramentas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) é o comando da CLI interativa do Db2.

## Práticas recomendadas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ No banco de dados de destino, use [endpoints de gateway para o Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 para acessar a imagem de backup do banco de dados e os arquivos de log no Amazon S3.
+ No banco de dados de origem, use a [AWS PrivateLink para o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) para enviar a imagem de backup do banco de dados e os arquivos de log para o Amazon S3.

## Épicos
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Definição de variáveis de ambiente
<a name="set-environment-variables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Definição de variáveis de ambiente. | Seu nome usa o padrão a seguir.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Você pode alterá-los para se adequarem ao seu ambiente. | DBA | 

### Configurar o servidor Db2 on-premises
<a name="configure-the-on-premises-db2-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a CLI da AWS. | Para realizar o download e instalar a versão mais recente da AWS CLI, execute os seguintes comandos:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrador do Linux | 
| Configure um destino local para os logs de arquivamento do Db2. | Para manter o banco de dados de destino EC2 na Amazon sincronizado com o banco de dados de origem local, os registros de transações mais recentes precisam ser recuperados da fonte.Nesta configuração, `/db2logs` é definido por `LOGARCHMETH2` na fonte como uma área de preparação. Os registros arquivados nesse diretório serão sincronizados com o Amazon S3 e acessados pelo Db2 na Amazon. EC2 O padrão é usado `LOGARCHMETH2` porque `LOGARCHMETH1` pode ter sido configurado para usar uma ferramenta de um fornecedor terceirizado que o comando da AWS CLI não pode acessar. Para recuperar os logs, execute o seguinte comando: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Execute um backup de banco de dados on-line. | Execute um backup on-line do banco de dados e salve-o no sistema de arquivos de backup local: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configurar o bucket do S3 e a política do IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Crie um bucket S3 para o servidor on-premises para enviar as imagens de backup do Db2 e os arquivos de log para a AWS. O bucket também será acessado pela Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Administrador de sistemas AWS | 
|  Crie uma política do IAM. | O arquivo `db2bucket.json` contém a política do IAM para acessar o bucket do Amazon S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Para criar a política, use o seguinte comando da AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> A saída em JSON apresenta o nome do recurso da Amazon (ARN) da política, em que `aws_account_id` representa a ID da sua conta:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Administrador da AWS, administrador de sistemas da AWS | 
| Anexe a política do IAM à função do IAM usada pela EC2 instância. | Na maioria dos ambientes da AWS, uma EC2 instância em execução tem uma função do IAM definida pelo administrador do sistema. Se a função do IAM não estiver definida, crie a função e escolha **Modificar função do IAM** no EC2 console para associar a função à EC2 instância que hospeda o banco de dados Db2. Anexe a política do IAM ao perfil do IAM usando o ARN da política:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Depois que a política for anexada, qualquer EC2 instância associada à função do IAM poderá acessar o bucket do S3. | Administrador da AWS, administrador de sistemas da AWS | 

### Envie a imagem de backup e os arquivos de log do banco de dados de origem para o Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a AWS CLI no servidor do Db2 on-premises. | Configure a AWS CLI com os valores `Access Key ID` e `Secret Access Key` gerados na etapa anterior:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | Administrador da AWS, administrador de sistemas da AWS | 
| Envie a imagem de backup para o Amazon S3. | Anteriormente, um backup de banco de dados on-line foi salvo no diretório local `/backup`. Para enviar essa imagem de backup para o bucket do S3, execute o seguinte comando:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Administrador da AWS, engenheiro de migração | 
| Envie os logs do Db2 para o Amazon S3. | Sincronize os registros do arquivamento local do Db2 com o bucket do S3 que pode ser acessado pela instância do Db2 de destino na Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Execute esse comando periodicamente usando o cron ou outras ferramentas de agendamento. A frequência depende da frequência com que o banco de dados de origem arquiva os arquivos de log de transações.  | Administrador da AWS, engenheiro de migração | 

### Conecte o Db2 na Amazon EC2 ao Amazon S3 e inicie a sincronização do banco de dados
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um armazenamento de PKCS12 chaves. | O Db2 usa um repositório de chaves de criptografia de chave pública (PKCS) para manter a chave de acesso da AWS segura. Crie um keystore e configure a instância de origem do Db2 para usá-lo:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Crie o alias de acesso ao armazenamento do Db2. | Para criar o [alias de acesso ao armazenamento](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), use a seguinte sintaxe de script:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Por exemplo, o seu script poderia ter a seguinte aparência: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Defina a área de espera. | Por padrão, o Db2 usa `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` como área de preparação para carregar e baixar arquivos de e para o Amazon S3. O caminho padrão está `sqllib/tmp/RemoteStorage.xxxx` no diretório inicial da instância, com `xxxx` referência ao número da partição Db2. Observe que a área de preparação deve ter capacidade suficiente para armazenar as imagens de backup e os arquivos de log. Você pode usar o registro para apontar a área de preparação para um diretório diferente.Além disso, recomendamos usar `DB2_ENABLE_COS_SDK=ON`, `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore` e o link para a biblioteca `awssdk` para ignorar a área de preparação do Amazon S3 no backup e na restauração do banco de dados:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | DBA | 
| Restaure o banco de dados a partir da imagem de backup. | Restaure o banco de dados de destino na Amazon a EC2 partir da imagem de backup no bucket do S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Avance o banco de dados. | Depois que a restauração for concluída, o banco de dados de destino será colocado no estado pendente de rollforward. Configure `LOGARCHMETH1` e `LOGARCHMETH2` para que o Db2 consiga localizar os arquivos do log de transação:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Inicie o processo de rollforward do banco de dados:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Esse comando processa todos os arquivos de log que foram transferidos para o bucket do S3. Execute-o periodicamente com base na frequência do `s3 sync` comando nos servidores Db2 on-premises. Por exemplo, se for `s3 sync` executado a cada hora e levar 10 minutos para sincronizar todos os arquivos de log, defina o comando para ser executado 10 minutos após cada hora.  | DBA | 

### Coloque o Db2 na Amazon EC2 on-line durante a janela de transição
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Coloque o banco de dados de destino on-line. | Na janela de substituição, siga um destes procedimentos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Depois que o último log de transações for sincronizado com o Amazon S3, execute o comando `ROLLFORWARD` pela última vez:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Coloque o banco de dados de destino on-line e direcione as conexões do aplicativo para o Db2 na Amazon EC2. | DBA | 

## Solução de problemas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Se vários bancos de dados tiverem o mesmo nome de instância e nome de banco de dados em hosts diferentes (DEV, QA, PROD), os backups e os logs poderão ir para o mesmo subdiretório. | Use buckets do S3 diferentes para DEV, QA e PROD, e adicione o nome do host como prefixo de subdiretório para evitar confusão. | 
| Se houver múltiplas imagens de backup no mesmo local, você receberá o seguinte erro durante a restauração:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | No comando `restore`, adicione o carimbo de data/hora do backup:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Recursos relacionados
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operações de backup e restauração do Db2 entre diferentes sistemas operacionais e plataformas de hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configurar Db2 STORAGE ACCESS ALIAS e REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Comando Db2 ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Método de arquivamento de log secundário do Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)

# Migre o Db2 for LUW para o Amazon EC2 com recuperação de desastres de alta disponibilidade
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery"></a>

*Feng Cai, Aruna Gangireddy e Venkatesan Govindan, Amazon Web Services*

## Resumo
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-summary"></a>

Quando os clientes migram a workload do Db2 da IBM para LUW (Linux, UNIX e Windows) para a Amazon Web Services (AWS), usar o Amazon Elastic Compute Cloud (Amazon EC2) com o modelo traga a sua própria licença (BYOL) é a forma mais rápida. No entanto, migrar grandes volumes de dados do Db2 on-premises para a AWS pode ser um desafio, especialmente quando a janela de indisponibilidade é curta. Muitos clientes tentam definir a janela de interrupção para menos de 30 minutos, o que deixa pouco tempo para o banco de dados em si.

Esse padrão aborda como realizar uma migração do Db2 com uma pequena janela de interrupção usando a recuperação de desastres de alta disponibilidade (HADR) do Db2. Essa abordagem se aplica aos bancos de dados Db2 que estão na plataforma Linux little-endian e não estão usando o Atributo de Particionamento de Dados (DPF - Data Partitioning Feature).

## Pré-requisitos e limitações
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Db2 em execução em uma instância do Amazon EC2 que corresponde aos layouts do sistema de arquivos on-premises
+ Um bucket do Amazon Simple Storage Service (Amazon S3) acessível à instância do EC2
+ Uma política e um perfil do AWS Identity and Access Management (IAM) para realizar chamadas programáticas ao Amazon S3
+ Fuso horário e relógios do sistema sincronizados no Amazon EC2 e no servidor on-premises
+ A rede local conectada à AWS por meio do AWS [ Site-to-SiteVPN ou do AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect
+ Comunicação entre o servidor on-premises e o Amazon EC2 em portas HADR

**Limitações**
+ [A instância on-premises do Db2 e o Amazon EC2 deve estar na mesma família de plataformas](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ O HADR não é suportado em um ambiente de banco de dados particionado.
+ O HADR não suporta o uso de dados brutos I/O (acesso direto ao disco) para arquivos de log do banco de dados.
+ O HADR não é compatível com registro infinito.
+ `LOGINDEXBUILD` deve ser definido como `YES`, o que aumentará o uso do log para reconstruir o índice.
+ O workload on-premises do Db2 deve ser registrado. Defina `blocknonlogged=yes` na configuração do banco de dados para bloquear qualquer transação não registrada.

**Versões do produto**
+ Db2 for LUW versão 11.5.9 e posterior

## Arquitetura
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-architecture"></a>

**Pilha de tecnologia de origem**
+ Db2 em Linux** **x86\$164

**Pilha de tecnologias de destino**
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+  Site-to-SiteVPN AWS

**Arquitetura de destino**

No diagrama a seguir, o Db2 on-premises está sendo executado em `db2-server1` como principal. Ele tem dois alvos de espera do HADR. Um alvo em espera está on-premises e é opcional. O outro alvo em espera, `db2-ec2`, está no Amazon EC2. Após a migração do banco de dados para a AWS, `db2-ec2` se torna o principal.

![\[Fluxo de trabalho para migrar um Db2 on-premises com uma janela curta de indisponibilidade usando o Db2 HADR.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2db43e4b-f0ea-4a92-96da-4cafb7d3368b/images/5295420e-3cd8-4127-9a18-ade971c36339.png)


1. Os registros são transmitidos do banco de dados on-premises primário para o banco de dados on-premises em espera.

1. Usando o Db2 HADR, os logs são transmitidos do banco de dados local principal por meio de Site-to-Site VPN para o Db2 no Amazon EC2.

1. Os registros de backup e arquivamento do Db2 são enviados do banco de dados on-premises principal para o bucket do S3 na AWS.

## Ferramentas
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-tools"></a>

**Serviços da AWS**
+ A ‭[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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ 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 [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) oferece capacidade computacional escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ 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.
+ [O AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

**Outras ferramentas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) é o comando da CLI interativa do Db2.

## Práticas recomendadas
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-best-practices"></a>
+ No banco de dados de destino, use [endpoints de gateway para o Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 para acessar a imagem de backup do banco de dados e os arquivos de log no Amazon S3.
+ No banco de dados de origem, use a [AWS PrivateLink para o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) para enviar a imagem de backup do banco de dados e os arquivos de log para o Amazon S3.

## Épicos
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-epics"></a>

### Definição de variáveis de ambiente
<a name="set-environment-variables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Definição de variáveis de ambiente. | Esse padrão usa os seguintes nomes e portas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)Você pode alterá-los para se adequarem ao seu ambiente. | DBA | 

### Configurar o servidor Db2 on-premises
<a name="configure-the-on-premises-db2-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar a AWS CLI | Para realizar o download e instalar a versão mais recente da AWS CLI, execute os seguintes comandos:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrador do Linux | 
| Configure um destino local para os logs de arquivamento do Db2. | Condições como trabalhos pesados de atualização em lote e lentidão na rede podem fazer com que o servidor em espera do HADR tenha um atraso. Para se atualizar, o servidor em espera precisa dos registros de transações do servidor primário. A sequência de locais para solicitar registros é a seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)Nesta configuração, `/db2logs` é definido por `LOGARCHMETH2` na fonte como uma área de preparação. Os logs arquivados nesse diretório serão sincronizados com o Amazon S3 e acessados pelo Db2 no Amazon EC2. O padrão usar `LOGARCHMETH2` porque `LOGARCHMETH1` pode ter sido configurado para usar uma ferramenta de fornecedor terceirizado que o comando da AWS CLI não consegue acessar:<pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Execute um backup de banco de dados on-line. | Execute um backup on-line do banco de dados e salve-o no sistema de arquivos de backup local:<pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configurar o bucket do S3 e a política do IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Crie um bucket S3 para o servidor on-premises para enviar as imagens de backup do Db2 e os arquivos de log para a AWS. O Amazon EC2 terá acesso ao bucket:<pre>aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1 </pre> | Administrador da AWS | 
| Crie uma política do IAM. | O arquivo `db2bucket.json` contém a política do IAM para acesso ao bucket S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::hadrmig-db2/*",<br />                "arn:aws:s3:::hadrmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Para criar a política, use o seguinte comando da AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3hapolicy \<br />      --policy-document file://db2bucket.json </pre>A saída em JSON apresenta o nome do recurso da Amazon (ARN) da política, em que `aws_account_id` representa a ID da sua conta:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"</pre> | Administrador da AWS, administrador de sistemas da AWS | 
| Anexe a política do IAM ao perfil do IAM. | Geralmente, a instância do EC2 com o Db2 em execução teria um perfil do IAM atribuído pelo administrador de sistemas. Se nenhum perfil do IAM estiver atribuído, você pode escolher **Modificar perfil do IAM** no console do Amazon EC2.Anexe a política do IAM ao perfil do IAM associado à instância do EC2. Após a política ser anexada, a instância do EC2 poderá acessar o bucket do S3:<pre>aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole   </pre> |  | 

### Envie a imagem de backup e os arquivos de log do banco de dados de origem para o Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a AWS CLI no servidor Db2 on-premises. | Configure a AWS CLI com os valores `Access Key ID` e `Secret Access Key` que você gerou anteriormente:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre> | Administrador da AWS, administrador de sistemas da AWS | 
| Envie a imagem de backup para o Amazon S3. | Anteriormente, um backup de banco de dados on-line foi salvo no diretório local `/backup`. Para enviar essa imagem de backup para o bucket do S3, execute o seguinte comando:<pre>aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup</pre> | Administrador da AWS, administrador de sistemas da AWS | 
| Envie os logs do Db2 para o Amazon S3. | Sincronize os logs de arquivamento do Db2 on-premises com o bucket do Amazon S3, que pode ser acessado pela instância do Db2 de destino no Amazon EC2:<pre>aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS</pre>Execute esse comando periodicamente usando o cron ou outras ferramentas de agendamento. A frequência depende da frequência com que o banco de dados de origem arquiva os arquivos de log de transações. |  | 

### Conecte o Db2 no Amazon EC2 ao Amazon S3 e inicie a sincronização inicial do banco de dados
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-initial-database-sync"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um repositório de PKCS12 chaves. | O Db2 usa um repositório de chaves de criptografia de chave pública (PKCS) para manter a chave de acesso da AWS segura. Crie um keystore e configure o Db2 de origem para usá-lo:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Crie o alias de acesso ao armazenamento do Db2. | O Db2 usa um alias de acesso ao armazenamento para acessar o Amazon S3 diretamente com os comandos `INGEST`, `LOAD`, `BACKUP DATABASE`, ou `RESTORE DATABASE`. Como você atribuiu um perfil do IAM à instância do EC2, `USER` e `PASSWORD` não são necessários:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Por exemplo, o seu script poderia ter a seguinte aparência: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'" ` | DBA | 
| Defina a área de espera. | Recomendamos usar `DB2_ENABLE_COS_SDK=ON`, `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore` e o link para a biblioteca `awssdk` para ignorar a área de preparação do Amazon S3 no backup e na restauração do banco de dados:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2stop<br />db2start</pre> | DBA | 
| Restaure o banco de dados a partir da imagem de backup. | Faça a restauração do banco de dados de destino no Amazon EC2 usando a imagem de backup presente no bucket do S3:<pre>db2 create db sample on /data1<br />db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing</pre> | DBA | 

### Configure o HADR sem o HADR on-premises
<a name="set-up-hadr-with-no-hadr-on-premises"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o servidor Db2 on-premises como principal. | Atualize as configurações do banco de dados para HADR on `db2-server1` (a fonte on-premises) como principal. Defina `HADR_SYNCMODE` para o modo `SUPERASYNC`, que oferece o menor tempo de resposta por transação:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully`Alguns atrasos de rede entre o datacenter on-premises e a AWS são esperados. (É possível definir um valor `HADR_SYNCMODE` diferente com base na confiabilidade da rede. Para obter mais informações, consulte a seção [Recursos relacionados](#migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources)). | DBA | 
| Altere o destino do arquivamento do log do banco de dados de destino. | Altere o destino do arquivo de log do banco de dados de destino para corresponder ao ambiente do Amazon EC2:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF<br />DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully</pre> | DBA | 
| Configure o HADR para Db2 no servidor Amazon EC2. | Atualize a configuração do banco de dados para HADR no `db2-ec2` como “em espera”:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully` | DBA | 
| Verifique a configuração do HADR. | Verifique os parâmetros do HADR nos servidores Db2 de origem e de destino.Para verificar a configuração no `db2-server1`, execute o seguinte comando:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-ec2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50012<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre> Para verificar a configuração no `db2-ec2`, execute o seguinte comando:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Os parâmetros `HADR_LOCAL_HOST`, `HADR_LOCAL_SVC`, `HADR_REMOTE_HOST`, e `HADR_REMOTE_SVC` indicam uma configuração de HADR primária e uma de espera. | DBA | 
| Inicie a instância Db2 HADR. | Inicie primeiro a instância do Db2 HADR no servidor `db2-ec2` em espera:<pre>db2 start hadr on db sample as standby<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Inicie o Db2 HADR no servidor primário (de origem), que é o `db2-server1`:<pre>db2 start hadr on db sample as primary<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>A conexão HADR entre o Db2 on-premises e no Amazon EC2 agora foi estabelecida com sucesso. O servidor primário do Db2 `db2-server1` começa a transmitir os registros do log de transações `db2-ec2` em tempo real. | DBA | 

### Configure o HADR quando o HADR existir on-premises
<a name="set-up-hadr-when-hadr-exists-on-premises"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione o Db2 no Amazon EC2 como um modo de espera auxiliar. | Se o HADR estiver em execução na instância do Db2 on-premises, é possível adicionar o Db2 na Amazon EC2 como um servidor auxiliar em espera usando `HADR_TARGET_LIST` ao executar os seguintes comandos no `db2-ec2`:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-server2:50011" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | DBA | 
| Adicione as informações auxiliares de espera aos servidores on-premises. | Atualização de `HADR_TARGET_LIST` nos dois servidores on-premises (primário e em espera).No `db2-server1`, execute o seguinte código:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.`No `db2-server2`, execute o seguinte código:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.` | DBA | 
| Verifique a configuração do HADR. | Verifique os parâmetros do HADR nos servidores Db2 de origem e de destino.No `db2-server1`, execute o seguinte código:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50011<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>No `db2-server2`, execute o seguinte código:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50011<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>No `db2-ec2`, execute o seguinte código:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Os parâmetros `HADR_LOCAL_HOST`, `HADR_LOCAL_SVC`, `HADR_REMOTE_HOST`, `HADR_REMOTE_SVC`, e `HADR_TARGET_LIST` indicam a configuração de um HADR primário e dois em espera. |  | 
| Pare e inicie o Db2 HADR. | `HADR_TARGET_LIST` agora está configurado em todos os três servidores. Cada servidor Db2 está ciente dos outros dois. Pare e reinicie o HADR (breve interrupção) para aproveitar a nova configuração.No `db2-server1`, execute os seguintes comandos:<pre>db2 stop hadr on db sample<br />db2 deactivate db sample<br />db2 activate db sample</pre>No `db2-server2`, execute os seguintes comandos:<pre>db2 deactivate db sample<br />db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>No `db2-ec2`, execute os seguintes comandos:<pre>db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>No `db2-server1`, execute os seguintes comandos:<pre>db2 start hadr on db sample as primary<br />SQL1766W  The command completed successfully</pre>A conexão HADR entre o Db2 on-premises e no Amazon EC2 agora foi estabelecida com sucesso. O servidor primário do Db2 `db2-server1` começa a transmitir registros de log de transações para `db2-server2` e `db2-ec2` em tempo real.  | DBA | 

### Torne o Db2 no Amazon EC2 como principal durante a janela de substituição
<a name="make-db2-on-amazon-ec2-as-primary-during-the-cutover-window"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Garanta que não haja atraso de HADR no servidor em espera. | Verifique o status do HADR no servidor primário `db2-server1`. Não se assuste quando `HADR_STATE` estiver no status`REMOTE_CATCHUP`, o que é normal quando `HADR_SYNCMODE` está definido como `SUPERASYNC`. O `PRIMARY_LOG_TIME` e o `STANDBY_REPLAY_LOG_TIME` indicam que eles estão sincronizados:<pre>db2pd -hadr -db sample<br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL<br />                        HADR_SYNCMODE = SUPERASYNC<br />                           STANDBY_ID = 2<br />                        LOG_STREAM_ID = 0<br />                           HADR_STATE = REMOTE_CATCHUP<br />.....<br />                     PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />                     STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />              STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)</pre> | DBA | 
| Execute a aquisição da HADR. | Para concluir a migração, torne `db2-ec2` o banco de dados primário executando o comando HADR takeover. Use o comando `db2pd` para verificar o valor de `HADR_ROLE`:<pre>db2 TAKEOVER HADR ON DATABASE sample<br />DB20000I  The TAKEOVER HADR ON DATABASE command completed successfully.<br /><br />db2pd -hadr -db sample<br />Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988<br /><br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL</pre>Para concluir a migração para a AWS, aponte as conexões do aplicativo para o Db2 no Amazon EC2. |  | 

## Solução de problemas
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Se você usa o NAT por motivos de firewall e segurança, o host pode ter dois endereços IP (um interno e outro externo), o que pode causar uma falha na verificação do endereço IP do HADR. O comando `START HADR ON DATABASE` retornará a seguinte mensagem:`HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.` | Para [oferecer suporte ao HADR em um ambiente NAT,](https://www.ibm.com/docs/en/db2/11.5?topic=support-hadr-nat) você pode configurar `HADR_LOCAL_HOST` com o endereço interno e externo. Por exemplo, se o servidor Db2 tiver o nome interno `host1` e o nome externo`host1E`, `HADR_LOCAL_HOST` pode ser `HADR_LOCAL_HOST: "host1 \| host1E"`. | 

## Recursos relacionados
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources"></a>
+ [Operações de backup e restauração do Db2 entre diferentes sistemas operacionais e plataformas de hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configurar Db2 STORAGE ACCESS ALIAS e REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Recuperação de desastres de alta disponibilidade do Db2](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)
+ [hadr\$1syncmode – Modo de sincronização HADR para gravações de log no parâmetro de configuração de estado de mesmo nível](https://www.ibm.com/docs/en/db2/11.5?topic=dcp-hadr-syncmode-hadr-synchronization-mode-log-writes-in-peer-state)

# Migre aplicativos hospedados no IIS para a Amazon EC2 usando o appcmd.exe
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd"></a>

*Deepak Kumar, Amazon Web Services*

## Resumo
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-summary"></a>

Ao migrar aplicativos hospedados no Internet Information Services (IIS) para instâncias do Amazon Elastic Compute Cloud (Amazon EC2), você precisa enfrentar vários desafios de autenticação. Esses desafios incluem a necessidade de introduzir novamente as credenciais do domínio para as identidades dos grupos de aplicações e, possivelmente, gerar novamente as chaves de máquina para o funcionamento correto do site. Você pode usar AWS Directory Service para estabelecer relações de confiança com seu Active Directory local ou criar um novo Active Directory gerenciado no AWS. Esse padrão descreve uma abordagem de migração limpa que usa a funcionalidade de backup e restauração do IIS nas EC2 instâncias da Amazon. A abordagem usa o appcmd.exe para desinstalar e reinstalar o IIS nas EC2 instâncias de destino, permitindo a migração bem-sucedida de sites hospedados no IIS, identidades de grupos de aplicativos e chaves de máquina. 

## Pré-requisitos e limitações
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS para o servidor de destino.
+ Um servidor de IIS de origem funcional, com sites hospedados.
+ Compreensão dos princípios de funcionamento do IIS, como administração e configuração.
+ Acesso de administrador do sistema em ambos os servidores de origem e de destino.
+ Migração concluída do servidor IIS de origem para o destino Conta da AWS. Você pode usar ferramentas de migração AWS Application Migration Service, como uma abordagem baseada em snapshots da Amazon Machine Image (AMI) ou outras ferramentas de migração.

**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 [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ IIS 8.5 ou IIS 10.0

## Arquitetura
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-architecture"></a>

**Pilha de tecnologia de origem**
+ Windows Server com o IIS 8.5 ou o IIS 10.0 instalado

**Pilha de tecnologias de destino**
+ Windows Server com o IIS 8.5 ou o IIS 10.0 instalado
+ Application Migration Service

**Arquitetura de destino**

O diagrama a seguir mostra o fluxo de trabalho e os componentes da arquitetura desse padrão.

![\[Fluxo de trabalho para migrar aplicativos hospedados pelo IIS para a Amazon. EC2\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2f9f7757-b2bc-4077-b51a-700de521424c/images/36aa9b7a-d0aa-4fa4-be47-9fee43b53c22.png)


A solução contempla as seguintes etapas:

1. [Instale](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) e configure o Agente AWS de Replicação no servidor IIS de origem em seu data center corporativo. Esse agente inicia o processo de replicação e gerencia a transferência de dados para o. AWS

1. O Agente AWS de Replicação estabelece uma [conexão segura com](https://docs.aws.amazon.com/mgn/latest/ug/Agent-Related-FAQ.html#How-Communication-Secured) o Serviço de Migração de Aplicativos e começa a replicar os dados do servidor de origem, incluindo configurações do IIS, sites e arquivos de aplicativos.

1. O Serviço de Migração de Aplicativos inicia EC2 instâncias na sub-rede do aplicativo com os dados replicados. A EC2 instância de destino executa o IIS e contém os aplicativos migrados com seus volumes associados do Amazon Elastic Block Store (Amazon EBS). Após a replicação inicial, o Application Migration Service prossegue com a sincronização das alterações até que você esteja [com tudo pronto para realizar a substituição](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html#ready-for-cutover1) para o novo ambiente.

## Ferramentas
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-tools"></a>

**Serviços da AWS**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)ajuda você a rehospedar (*elevar e deslocar*) aplicativos Nuvem AWS sem alterações e com o mínimo de tempo de inatividade.
+ [O Amazon Elastic Block Store (Amazon EBS) fornece volumes de armazenamento em nível de bloco para uso com instâncias da Amazon](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html). EC2 
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.

**Outras ferramentas**
+ O [Internet Information Services (IIS)](https://www.iis.net/overview) para Windows Server é um servidor da web com arquitetura escalável e de código aberto, capaz de hospedar qualquer conteúdo na web. O IIS fornece um conjunto de ferramentas de administração, incluindo ferramentas de administração e linha de comando (por exemplo, appcmd.exe), código e scripts APIs gerenciados e PowerShell suporte ao Windows.

## Épicos
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-epics"></a>

### Backup do IIS no servidor de origem antes da migração
<a name="back-up-iis-at-source-prior-to-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie backups de sites hospedados no IIS, da chave de configuração e da chave `WAS`. | Para criar backups dos sites hospedados no IIS, da chave de configuração (`iisConfigurationKey`) e da chave `WAS` `iisWasKey`(), use o appcmd.exe no servidor de origem. Use as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html)Para exportar a chave de configuração e a chave `WAS`, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrador do IIS | 

### Desinstalação e reinstalação do IIS no servidor de destino
<a name="uninstall-and-reinstall-iis-on-the-target-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desinstale o IIS no servidor de destino. | Para desinstalar o IIS no servidor de destino, siga as seguintes etapas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrador do IIS | 
| Instale o IIS no servidor de destino. | Para instalar o IIS no servidor de destino, siga as seguintes etapas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrador do IIS | 

### Restauração dos sites e das configurações do IIS usando os backups
<a name="restore-iis-websites-and-configuration-from-the-backups"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Restaure os sites e a configuração do IIS. | Para restaurar os backups do IIS que você criou no servidor de origem para o servidor de destino, siga as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Administrador do IIS | 

## Recursos relacionados
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-resources"></a>

**AWS documentação**
+ [Instalando o Agente AWS de Replicação](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) (AWS Application Migration Service documentação)

**AWS Orientação prescritiva**
+ [Migre uma VM local para a Amazon usando EC2 AWS Application Migration Service](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)
+ [Usando AMIs nossos snapshots do Amazon EBS para backups](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/ec2-backup.html#amis-snapshots)

**Recursos da Microsoft**
+ [Application pool identities](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/was-service-svchost-process-operation/understanding-identities#application-pool-identities)
+ [IIS documentation](https://learn.microsoft.com/en-us/iis/)
+ [IIS 8 appcmd.exe documentation](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635852(v=ws.11))
+ [IIS 10 appcmd.exe documentation](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/new-features-introduced-in-iis-10)
+ [Powerful Admin Tools](https://learn.microsoft.com/en-us/iis/overview/powerful-admin-tools)

# Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2 usando o Application Migration Service
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn"></a>

*Senthil Ramasamy, Amazon Web Services*

## Resumo
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-summary"></a>

Esse padrão descreve as etapas para migrar um banco de dados Microsoft SQL Server de um data center local para uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Ele usa o AWS Application Migration Service (AWS MGN) para rehospedar seu banco de dados usando uma migração automatizada lift-and-shift. AWS O MGN executa a replicação em nível de bloco do seu servidor de banco de dados de origem.

## Pré-requisitos e limitações
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Um banco de dados Microsoft SQL Server de origem em um datacenter on-premises

**Limitações**
+ A largura de banda da rede pode ser limitada entre o data center on-premises e a AWS.
+ AWS O MGN está limitado a bancos de dados hospedados em servidores autônomos com armazenamento dedicado. O serviço não fornece suporte à migração de sistemas de banco de dados em cluster nem de sistemas de banco de dados cujo volume de alterações exceda a capacidade de throughput da rede.
+ 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://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ Todas as versões do banco de dados Microsoft SQL Server
+ Sistemas operacionais Windows e Linux que [suportam AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)

## Arquitetura
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-architecture"></a>

**Pilha de tecnologia de origem**

Um banco de dados Microsoft SQL Server on-premises

**Pilha de tecnologias de destino**

Um banco de dados Microsoft SQL Server em uma EC2 instância da Amazon

**Arquitetura de destino**

![\[Replicação de dados de um data center corporativo on-premises para a AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/a459eaef-c256-4691-a7ec-2304f634228c/images/d8d6cee7-f42c-4686-bf92-6e6d39adfb17.png)


Essa arquitetura usa o AWS MGN para replicar dados de um data center corporativo local para. AWS O diagrama ilustra o processo de replicação de dados, as comunicações via API e as fases de teste e de substituição.

1. Replicação de dados:
   + AWS A MGN replica dados do data center corporativo local AWS e inicia a replicação contínua das alterações.
   + Os servidores de replicação na sub-rede de preparação recebem e processam esses dados.

1. Comunicação via API:
   + Os servidores de replicação se conectam aos AWS endpoints da API MGN EC2, Amazon e Amazon Simple Storage Service (Amazon S3) por meio da porta TCP 443.
   + AWS A MGN gerencia a migração.
   + A Amazon EC2 gerencia as operações da instância.

1. Teste e substituição:
   + As instâncias de teste são iniciadas na sub-rede operacional usando os dados replicados.
   + Após o teste bem-sucedido, o AWS MGN cria instâncias de transição para a migração final.

## Ferramentas
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-tools"></a>
+ [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ajuda você a rehospedar (*elevar e deslocar*) aplicativos Nuvem AWS sem alterações e com o mínimo de tempo de inatividade.
+ O [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) estabelece uma conexão entre sua rede interna e um ponto do Direct Connect usando um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para AWS serviços públicos, ignorando os provedores de serviços de Internet em seu caminho de rede.
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ 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.

## Práticas recomendadas
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-best-practices"></a>
+ Configure endpoints regionais de API para AWS MGN EC2, Amazon e Amazon S3 na nuvem privada virtual (VPC) para proibir o acesso público da Internet.
+ Defina as configurações de inicialização do AWS MGN para iniciar servidores de banco de dados de destino em uma sub-rede privada.
+ Permita somente as portas essenciais nos grupos de segurança do banco de dados.
+ 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 [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [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="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-epics"></a>

### Configuração do AWS MGN
<a name="set-up-aws-mgn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS MGN. | Pesquise o AWS Application Migration Service no Console de gerenciamento da AWS e inicie o processo de configuração. Isso criará um modelo de replicação e redirecionará você para a página **Servidores de origem** do console do MGN. Ao configurar o serviço do MGN, escolha um perfil de serviço na lista gerada. | DBA, Engenheiro de migração | 
| Adicione o servidor de origem. | Adicione os detalhes do seu servidor de banco de dados on-premises e, em seguida, inclua o servidor. | DBA, Engenheiro de migração | 
| Instale o agente do AWS MGN no servidor de origem. | Baixe o instalador do agente AWS MGN em seu sistema local e transfira o instalador para seu servidor de banco de dados de origem. Para validar o hash do instalador, consulte [Validating the downloaded AWS Replication Agent installer for Windows 2012](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html#installer-hash-table-2012). | DBA, Engenheiro de migração | 

### Instalação do agente do AWS MGN nas máquinas de origem
<a name="install-aws-mgn-agent-on-source-machines"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere credenciais do IAM para o cliente. | Antes de instalar o agente AWS MGN, gere AWS credenciais criando um novo usuário do IAM com as permissões apropriadas.Para obter mais informações, consulte [as políticas gerenciadas pela AWS AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html) e [a geração das AWS credenciais necessárias](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | DBA, Engenheiro de migração | 
| Instale o agente no servidor de origem. | Instale o agente na máquina de origem que hospeda o banco de dados Microsoft SQL Server. Para obter mais informações, consulte [Instalando o Agente AWS de Replicação em servidores Windows](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html).Forneça as seguintes credenciais da AWS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Suas AWS credenciais exclusivas permitem que o agente da AWS MGN autentique e execute tarefas de migração. | Proprietário da aplicação, DBA e engenheiro de migração | 
| Escolha os discos a serem replicados. | Depois de inserir suas AWS credenciais, o instalador verifica se o servidor atende aos requisitos mínimos para a instalação do agente (por exemplo, se o servidor tem espaço em disco suficiente para instalar o agente AWS MGN). O instalador exibe os rótulos dos volumes e os detalhes de armazenamento.Para replicar seu banco de dados usando o serviço AWS MGN, selecione os discos aplicáveis em seu servidor de origem. Informe o caminho de cada disco, separando-os por vírgulas. Para replicar todos os discos, deixe o campo destinado ao caminho em branco. Após confirmar os discos selecionados, a instalação prossegue. | DBA, Engenheiro de migração | 
| Monitore o progresso da sincronização. | AWS O Agente de Replicação inicia o processo de sincronização tirando primeiro um instantâneo dos discos selecionados e depois replicando os dados.Você pode monitorar o progresso da sincronização na página do **servidor de origem** no console do AWS MGN. Para obter mais informações, consulte [Monitor the server in the migration lifecycle](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html). | DBA, Engenheiro de migração | 

### Replicação usando o AWS MGN
<a name="replication-using-aws-mgn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gerencie o progresso da replicação. | Depois de iniciar a sincronização inicial, seu servidor de origem aparece no console do AWS MGN, onde você pode gerenciar e monitorar a migração. O console mostra o tempo estimado para a replicação completa, com base no tamanho total dos discos selecionados e na largura de banda da rede disponível. | DBA, Engenheiro de migração | 
| Verifique a sincronização. | Após os discos do servidor de origem estarem totalmente sincronizados, verifique se todos os discos selecionados estão listados como totalmente sincronizados e se nenhum erro é exibido no console.O console AWS MGN então fará a transição automática do status do ciclo de vida da migração para **Pronto para teste**, indicando que o ambiente replicado AWS está preparado para testes de desempenho e funcionalidade. | Proprietário da aplicação, DBA e engenheiro de migração | 

### Teste e substituição
<a name="test-and-cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Defina as configurações de inicialização. | Escolha o servidor de origem no console do AWS MGN e atualize as configurações de execução da instância de teste de destino. Na página **Detalhes do servidor** de origem, acesse a guia **Configurações de execução** para configurar a instância de teste.Selecione um tipo de instância econômico e um tipo de volume do Amazon Elastic Block Store (Amazon EBS), e, em seguida, configure os grupos de segurança e os requisitos de rede. Para obter mais informações, consulte [Launch settings](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | DBA, Engenheiro de migração | 
| Execute a instância de teste de destino. | Navegue até o console AWS MGN da sua máquina de origem sincronizada e inicie uma instância de teste de destino escolhendo Testar **e recortar e, em seguida, Iniciar instâncias** **de teste**.Com isso, é criado um trabalho de execução que implanta a instância de teste de acordo com as suas configurações. A instância é executada Nuvem AWS e replica o ambiente do servidor de banco de dados de origem. Acompanhe o progresso da execução na página **Histórico de execução**, em que você pode monitorar a criação da instância e resolver quaisquer problemas. | DBA, Engenheiro de migração | 
| Valide a instância de teste de destino. | Valide o servidor de EC2 banco de dados da Amazon:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Realize testes de validação para garantir que o banco de dados funcione conforme o esperado. | DBA, Engenheiro de migração | 
| Altere o nome do servidor. | AWS A migração do MGN envolve uma cópia em nível de armazenamento do seu servidor de origem local. Sua EC2 instância do SQL Server contém somente os detalhes do servidor de origem original em seus binários, portanto, atualize as informações binárias para refletir o nome do novo servidor.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | DBA, Engenheiro de migração | 
| Execute a instância de substituição. | No console AWS MGN, na página **Servidores de origem**, confirme se o status do ciclo de vida da migração do servidor está **Pronto para** transferência. Defina as configurações de execução da instância de substituição, garantindo que reflitam o ambiente on-premises.Antes de iniciar a substituição, encerre o banco de dados on-premises, garantindo que o seguinte ocorra:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Inicie a instância de transferência no console MGN. AWS Quando a instância de substituição estiver funcionando, faça login na instância e realize os seguintes testes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | Proprietário da aplicação, DBA, engenheiro de migração e líder de migração | 

## Solução de problemas
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| A sincronização inicial não é concluída devido a falha na autenticação. | Este é um problema relacionado à conectividade da rede. O servidor de replicação não consegue se conectar ao AWS MGN. | 

## Recursos relacionados
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-resources"></a>

**Documentação da AWS**
+ [Começando com AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/getting-started.html)
+ [Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html)
+ [O que é o Microsoft SQL Server na Amazon EC2?](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-overview.html)

**Vídeos**
+ [Performing a Lift and Shift Migration with AWS Application Migration Service](https://www.youtube.com/watch?v=tB0sAR3aCb4) (vídeo)

# Migre uma carga de trabalho F5 BIG-IP para F5 BIG-IP VE no Nuvem AWS
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud"></a>

*Deepak Kumar, Amazon Web Services*

## Resumo
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-summary"></a>

As organizações estão procurando migrar para o Nuvem AWS para aumentar sua agilidade e resiliência. Depois de migrar suas soluções de gerenciamento de tráfego e segurança [F5 BIG-IP](https://www.f5.com/products/big-ip-services) para o Nuvem AWS, você pode se concentrar na agilidade e na adoção de modelos operacionais de alto valor em toda a arquitetura corporativa.

Este padrão descreve como migrar uma workload do F5 BIG-IP para uma [workload do F5 BIG-IP Virtual Edition (VE)](https://www.f5.com/products/big-ip-services/virtual-editions) na Nuvem AWS. A workload será migrada ao redefinir a hospedagem do ambiente existente e ao implementar elementos para redefinir a plataforma, como a descoberta de serviços e as integrações de API. Os [modelos do AWS CloudFormation](https://github.com/F5Networks/f5-aws-cloudformation) aceleram a migração da sua workload para a Nuvem AWS.

Esse padrão é destinado às equipes técnicas de engenharia e arquitetura que estão migrando soluções de gerenciamento de tráfego e segurança da F5 e acompanha o guia [Migrando do F5 BIG-IP para o F5 BIG-IP VE no site da Orientação Prescritiva](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html). Nuvem AWS AWS 

## Pré-requisitos e limitações
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-prereqs"></a>

**Pré-requisitos **
+ Uma workload F5 BIG-IP existente on-premises.
+ Licenças F5 existentes para versões do BIG-IP VE.
+ Um ativo Conta da AWS.
+ Uma nuvem privada virtual (VPC) existente configurada com uma saída por meio de um gateway NAT ou endereço IP elástico e configurada com acesso aos seguintes endpoints: Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), () e Amazon. AWS Security Token Service AWS STS CloudWatch Você também pode modificar o Início rápido da [arquitetura VPC modular e escalável](https://aws.amazon.com/quickstart/architecture/vpc/) como um alicerce para suas implantações. 
+ Uma ou duas zonas de disponibilidade existentes, dependendo de suas necessidades. 
+ Três sub-redes privadas existentes em cada zona de disponibilidade.
+ AWS CloudFormation modelos, [disponíveis no GitHub repositório F5](https://github.com/F5Networks/f5-aws-cloudformation/blob/master/template-index.md). 

Durante a migração, você também pode usar o seguinte, dependendo de seus requisitos:
+ Uma [extensão de failover de nuvem F5](https://clouddocs.f5.com/products/extensions/f5-cloud-failover/latest/) para gerenciar mapeamento de endereços IP elásticos, mapeamento de IP secundário e alterações na tabela de rotas. 
+ Se você usar várias zonas de disponibilidade, precisará usar as extensões de failover de nuvem F5 para lidar com o mapeamento de IP elástico para servidores virtuais.
+ Você deve considerar o uso de [F5 Application Services 3 (AS3)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/), [F5 Application Services Templates (FAST)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-templates/latest/) ou outro modelo de infraestrutura como código (IaC) para gerenciar as configurações. Preparar as configurações em um modelo de IaC e usar repositórios de código ajudará na migração e em seus esforços contínuos de gerenciamento.

**Experiência**
+ Esse padrão exige familiaridade com a forma como um ou mais VPCs podem ser conectados aos data centers existentes. Para obter mais informações sobre isso, consulte as [opções de conectividade da Network-to-Amazon VPC na documentação](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) da Amazon VPC. 
+ [Também é necessária familiaridade com os produtos e módulos da F5, incluindo [Sistema Operacional de Gerenciamento de Tráfego (TMOS)](https://www.f5.com/services/resources/white-papers/tmos-redefining-the-solution), [Gerenciador de Tráfego Local (LTM)](https://www.f5.com/products/big-ip-services/local-traffic-manager), [Gerenciador de Tráfego Global (GTM)](https://techdocs.f5.com/kb/en-us/products/big-ip_gtm/manuals/product/gtm-concepts-11-5-0/1.html#unique_9842886), [Gerenciador de Política de Acesso (APM)](https://www.f5.com/products/security/access-policy-manager), [Gerenciador de Segurança de Aplicativos (ASM)](https://www.f5.com/pdf/products/big-ip-application-security-manager-overview.pdf), [Gerenciador de Firewall Avançado (AFM)(AFM)](https://www.f5.com/products/security/advanced-firewall-manager), e BIG-IQ](https://www.f5.com/products/automation-and-orchestration/big-iq).

**Versões do produto**
+ [Recomendamos que você use F5 BIG-IP [versão 13.1](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-ve-13-1-0.html) ou superior, embora o padrão suporte F5 BIG-IP versão 12.1](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-12-1-4.html) ou superior.

## Arquitetura
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-architecture"></a>

**Pilha de tecnologia de origem**
+ Workload F5 BIG-IP

**Pilha de tecnologias de destino**
+ Amazon CloudFront
+ CloudWatch
+ Amazon EC2
+ Amazon S3
+ Amazon VPC
+ AWS Global Accelerator
+ AWS STS
+ AWS Transit Gateway
+ F5 BIG-IP VE

**Arquitetura de destino**

![\[Arquitetura para migrar uma carga de trabalho F5 BIG-IP para uma carga de trabalho F5 BIG-IP VE.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/586fe806-fac1-48d3-9eb1-45a6c86430dc/images/16d7fc09-1ffe-4721-b503-d971db84cbae.png)


## Ferramentas
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-tools"></a>
+ [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 durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
+ [A Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) acelera a distribuição do seu conteúdo da web entregando-o por meio de uma rede mundial de data centers, o que reduz a latência e melhora o desempenho.   
+  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 Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/)) fornece capacidade de computação escalável no Nuvem AWS Você pode iniciar quantos servidores virtuais precisar e escalá-los rapidamente para cima ou para baixo.
+ [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 [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 Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) ajuda você a solicitar credenciais temporárias com privilégios limitados para os usuários.
+ [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 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.

## Épicos
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-epics"></a>

### Descoberta e avaliação
<a name="discovery-and-assessment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Avalie o desempenho do F5 BIG-IP. | Colete e registre as métricas de desempenho dos aplicativos no servidor virtual e as métricas dos sistemas que serão migrados. Isso ajudará a dimensionar corretamente a AWS infraestrutura de destino para uma melhor otimização de custos. | Arquiteto F5, engenheiro e arquiteto de rede, engenheiro | 
| Avalie o sistema operacional e a configuração do F5 BIG-IP. | Avalie quais objetos serão migrados e se uma estrutura de rede precisa ser mantida, como VLANs. | Arquiteto F5, engenheiro | 
| Avalie as opções de licença F5. | Avalie qual licença e modelo de consumo você precisará. Essa avaliação deve ser baseada em sua avaliação do sistema operacional e da configuração do F5 BIG-IP. | Arquiteto F5, engenheiro | 
| Avalie os aplicativos públicos. | Determine quais aplicativos exigirão endereços IP públicos. Alinhe esses aplicativos às instâncias e clusters necessários para atender aos requisitos de desempenho e Acordo de Serviço (SLA). | Arquiteto F5, arquiteto de nuvem, arquiteto de rede, engenheiro, equipes de aplicativos | 
| Avalie os aplicativos internos. | Avalie quais aplicativos serão usados pelos usuários internos. Certifique-se de saber em qual local esses usuários internos estão localizados na organização e como esses ambientes se conectam à Nuvem AWS. Você também deve garantir que esses aplicativos possam usar o sistema de nomes de domínio (DNS) como parte do domínio padrão. | Arquiteto F5, arquiteto de nuvem, arquiteto de rede, engenheiro, equipes de aplicativos | 
| Finalize a AMI. | Nem todas as versões F5 BIG-IP são criadas como Amazon Machine Images (). AMIs Você pode usar a ferramenta de geração de imagens F5 BIG-IP se tiver versões específicas de engenharia de correção rápida (QFE) necessárias. Para obter mais informações sobre essa ferramenta, consulte a seção “Recursos relacionados”. | Arquiteto F5, arquiteto de nuvem, engenheiro | 
| Finalize os tipos e a arquitetura da instância. | Decida sobre os tipos de instância, a arquitetura VPC e a arquitetura interconectada. | Arquiteto F5, arquiteto de nuvem, arquiteto de rede, engenheiro | 

### Atividades completas relacionadas à segurança e conformidade
<a name="complete-security-and-compliance-related-activities"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Documente as políticas de segurança F5 existentes. | Colete e documente as políticas de segurança F5 existentes. Certifique-se de criar uma cópia deles em um repositório de código seguro. | Arquiteto F5, engenheiro | 
| Criptografe a AMI. | (Opcional) Sua organização pode exigir criptografia de dados em repouso. Para obter mais informações sobre como criar uma imagem personalizada traga a sua própria licença (BYOL), consulte a seção “Recursos relacionados”. | Arquiteto F5, engenheiro, arquiteto de nuvem, engenheiro | 
| Conclua os dispositivos. | Isso ajudará a proteger contra possíveis vulnerabilidades. | Arquiteto F5, engenheiro | 

### Configure seu novo AWS ambiente
<a name="configure-your-new-aws-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie contas periféricas e de segurança. | Faça login no Console de gerenciamento da AWS e crie o Contas da AWS que fornecerá e operará os serviços de ponta e segurança. Essas contas podem ser diferentes das contas que operam VPCs para serviços e aplicativos compartilhados. Essa etapa pode ser concluída como parte de uma zona de pouso. | Arquiteto de nuvem, engenheiro | 
| Implemente a vantagem e a segurança VPCs. | Configure e configure o VPCs necessário para fornecer serviços de ponta e segurança. | Arquiteto de nuvem, engenheiro | 
| Conecte-se ao datacenter de origem. | Conecte-se ao datacenter de origem que hospeda sua workload F5 BIG-IP. | Arquiteto de nuvem, arquiteto de rede, engenheiro | 
| Implante as conexões VPC. | Conecte o serviço de borda e segurança VPCs ao aplicativo VPCs. | Arquiteto de rede, engenheiro | 
| Implante as instâncias. | Implante as instâncias usando os CloudFormation modelos da seção “Recursos relacionados”. | Arquiteto F5, engenheiro | 
| Teste e configure o failover da instância. | Certifique-se de que o modelo AWS Advanced HA iApp ou o F5 Cloud Failover Extension estejam configurados e operando corretamente. | Arquiteto F5, engenheiro | 

### Configurar redes
<a name="configure-networking"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare a topologia da VPC. | Abra o console da Amazon VPC e certifique-se de que sua VPC tenha todas as sub-redes e proteções necessárias para a implantação do F5 BIG-IP VE. | Arquiteto de rede, arquiteto F5, arquiteto de nuvem, engenheiro | 
| Prepare seus endpoints de VPC. | Prepare os endpoints VPC para Amazon EC2, Amazon S3 AWS STS e se uma carga de trabalho F5 BIG-IP não tiver acesso a um gateway NAT ou endereço IP elástico em uma interface TMM. | Arquiteto de nuvem, engenheiro | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre a configuração. | Realize a migração da configuração do F5 BIG-IP para o F5 BIG-IP VE na Nuvem AWS. | Arquiteto F5, engenheiro | 
| Associe o secundário IPs. | Os endereços IP do servidor virtual têm uma relação com os endereços IP secundários atribuídos às instâncias. Atribua endereços IP secundários e certifique-se de que a opção “Permitir remapeamento/reatribuição” esteja selecionada. | Arquiteto F5, engenheiro | 

### Testar as configurações
<a name="test-configurations"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as configurações do servidor virtual. | Teste os servidores virtuais. | Arquiteto F5, equipes de aplicativos | 

### Finalize as operações
<a name="finalize-operations"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a estratégia de backup. | Os sistemas devem ser desligados para criar um instantâneo completo. Para obter mais informações, consulte “Atualizar uma máquina virtual F5 BIG-IP” na seção “Recursos relacionados”. | Arquiteto F5, arquiteto de nuvem, engenheiro | 
| Crie o runbook de execução de failover do cluster. | Certifique-se de que o processo do runbook de failover esteja concluído. | Arquiteto F5, engenheiro | 
| Configure e valide o registro em log. | Configure o F5 Telemetry Streaming para enviar registros para os destinos necessários. | Arquiteto F5, engenheiro | 

### Concluir a substituição
<a name="complete-the-cutover"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Passe para a nova implantação. |  | Arquiteto F5, arquiteto de nuvem, arquiteto de rede, engenheiro, AppTeams | 

## Recursos relacionados
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-resources"></a>

**Guia de migração**
+ [Migrando do F5 BIG-IP para o F5 BIG-IP VE no Nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html)

**Recursos do F5**
+ [CloudFormation modelos no repositório F5 GitHub ](https://github.com/F5Networks/f5-aws-cloudformation)
+ [Entrada F5 AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=74d946f0-fa54-4d9f-99e8-ff3bd8eb2745)
+ [Visão geral do F5 BIG-IP VE](https://www.f5.com/products/big-ip-services/virtual-editions) 
+ [Exemplo de início rápido - Edição virtual BIG-IP com WAF (LTM \$1 ASM)](https://github.com/F5Networks/f5-aws-cloudformation-v2/tree/main/examples/quickstart)
+ [F5 Serviços de aplicativos ativados AWS: uma visão geral (vídeo)](https://www.youtube.com/watch?v=kutVjRHOAXo)
+ [Guia do usuário sobre extensão dos serviços de aplicativos F5](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/)
+ [Documentação da nuvem F5](https://clouddocs.f5.com/training/community/public-cloud/html/intro.html)
+ [Wiki REST do iControl F5](https://clouddocs.f5.com/api/icontrol-rest/)
+ [Visão geral de arquivos de configuração únicos F5 (11.x - 15.x)](https://support.f5.com/csp/article/K13408)
+ [Documentos técnicos da F5](https://www.f5.com/services/resources/white-papers)
+ [Ferramenta de geração de imagens F5 BIG-IP](https://clouddocs.f5.com/cloud/public/v1/ve-image-gen_index.html)
+ [Atualizando uma máquina virtual F5 BIG-IP VE](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ve-setup-vmware-esxi-11-5-0/3.html)
+ [Visão geral da opção “migração de plataforma” do arquivo UCS](https://support.f5.com/csp/article/K82540512)

# Migrar um aplicativo web do Go on-premises para AWS Elastic Beanstalk usando o método binário
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method"></a>

*Suhas Basavaraj e Shumaz Mukhtar Kazi, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-summary"></a>

Esse padrão descreve como migrar um aplicativo web do Go on-premises para o AWS Elastic Beanstalk. Depois que o aplicativo é migrado, o Elastic Beanstalk cria o binário para o pacote de origem e o implanta em uma instância do Amazon Elastic Compute Cloud (Amazon). EC2

Como estratégia de migração para redefinir a hospedagem, a abordagem desse padrão é rápida e não requer alterações no-code, o que significa menos tempo de teste e migração. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um aplicativo web do Go on-premises
+ Um GitHub repositório que contém o código-fonte do seu aplicativo Go. Se você não usa GitHub, há outras maneiras de [criar um pacote de origem de aplicativos para o Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html).

**Versões do produto**
+ A versão do Go mais recente compatível com o Elastic Beanstalk. Para obter mais informações, consulte a [Documentação do Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go).

## Arquitetura
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-architecture"></a>

**Pilha de tecnologia de origem**
+ Um aplicativo web do Go on-premises 

**Pilha de tecnologias de destino**
+ AWS Elastic Beanstalk
+ Amazon CloudWatch

**Arquitetura de destino*** *

![\[Arquitetura para migrar um aplicativo do Go para o Elastic Beanstalk\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cd8d660d-5621-4ea7-8f97-7a1e321c57d3/images/1df543d9-7073-43d8-abd3-f1f7e57278eb.png)


## Ferramentas
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-tools"></a>
+ Com o [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html), é possível implantar e gerenciar rapidamente aplicativos na Nuvem AWS sem que os usuários tenham que se preocupar com a infraestrutura que os executa. O Elastic Beanstalk reduz a complexidade de gerenciamento sem restringir as escolhas nem o controle.
+ [GitHub](https://github.com/)é um sistema de controle de versão distribuído de código aberto.

## Épicos
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-epics"></a>

### Crie o arquivo .zip do pacote de origem do aplicativo web do Go
<a name="create-the-go-web-application-source-bundle-zip-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o pacote de origem do aplicativo web do Go  | Abra o GitHub repositório que contém o código-fonte do seu aplicativo Go e prepare o pacote de origem. O pacote de origem contém um arquivo de origem `application.go` no diretório raiz, que hospeda o pacote principal do seu aplicativo Go. Se você não usa GitHub, consulte a seção *Pré-requisitos* anteriormente neste padrão para ver outras formas de criar seu pacote de origem do aplicativo. | Administrador do sistema, desenvolvedor de aplicativos | 
| Criar um arquivo de configuração. | Crie uma pasta `.ebextensions` em seu pacote de origem e, em seguida, crie um arquivo `options.config` dentro dessa pasta. Para obter mais informações, consulte a [Documentação do Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html). | Administrador do sistema, desenvolvedor de aplicativos | 
|  Crie o arquivo .zip do pacote de origem. | Execute o comando a seguir.<pre>git archive -o ../godemoapp.zip HEAD</pre>Isso cria o arquivo .zip do pacote de origem. Baixe e salve o arquivo .zip como um arquivo local. O arquivo .zip deve ter, no máximo, 512 MB e não deve incluir uma pasta principal ou um diretório de nível superior. | Administrador do sistema, desenvolvedor de aplicativos | 

### Migrar um aplicativo web do Go para o Elastic Beanstalk
<a name="migrate-the-go-web-application-to-elastic-beanstalk"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione o aplicativo do Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html)Para obter instruções sobre como criar um aplicativo do Elastic Beanstalk, consulte a [documentação do Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html). | Administrador do sistema, desenvolvedor de aplicativos | 
| Inicie o ambiente de servidor web do Elastic Beanstalk.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Administrador do sistema, desenvolvedor de aplicativos | 
| Faça upload do arquivo .zip do pacote de origem no Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Administrador do sistema, desenvolvedor de aplicativos | 
| Teste o aplicativo web do Go implantado. | Você será redirecionado para a página de visão geral do aplicativo do Elastic Beanstalk. Na parte superior da visão geral, ao lado de **ID do ambiente**, escolha a URL que termina em `elasticbeanstalk.com` com para navegar até seu aplicativo. Seu aplicativo deve usar esse nome em seu arquivo de configuração como uma variável de ambiente e exibi-lo na página web. | Administrador do sistema, desenvolvedor de aplicativos | 

## Solução de problemas
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Não é possível acessar o aplicativo por meio de um Application Load Balancer. | Verifique o grupo de destino que contém o aplicativo do Elastic Beanstalk. Se não estiver íntegro, faça login na sua instância do Elastic Beanstalk e verifique a configuração do arquivo `nginx.conf` para verificar se ele é roteado para a URL correta do status de integridade. Você pode precisar alterar a URL de verificação de integridade do grupo de destino. | 

## Recursos relacionados
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-resources"></a>
+ [Versões da plataforma Go compatíveis com o Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go)
+ [Usando arquivos de configuração com o Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)
+ [Criação de um aplicativo de exemplo no Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) 

# Migrar um servidor SFTP local para usar AWS AWS Transfer for SFTP
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp"></a>

*Akash Kumar, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-summary"></a>

Esse padrão descreve como migrar uma solução de transferência de arquivos local que usa o protocolo de transferência de arquivos (SFTP) do Secure Shell (SSH) para o Nuvem AWS usando o serviço. AWS Transfer for SFTP Os usuários geralmente se conectam a um servidor SFTP por meio de seu nome de domínio ou por IP fixo. Esse padrão abrange os dois casos.

AWS Transfer for SFTP é membro do AWS Transfer Family. É um serviço de transferência seguro que você pode usar para transferir arquivos para dentro e para fora dos serviços de AWS armazenamento via SFTP. Você pode usar AWS Transfer for SFTP com o Amazon Simple Storage Service (Amazon S3) ou o Amazon Elastic File System (Amazon EFS). Esse padrão usa o Amazon S3 para armazenamento.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Um nome de domínio SFTP existente ou IP fixo do SFTP.

**Limitações**
+ O maior objeto que você pode transferir em uma solicitação atualmente é de 5 GiB. Para arquivos maiores que 100 MiB, considere usar o [upload de várias partes do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html).

## Arquitetura
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-architecture"></a>

**Pilha de tecnologia de origem**
+ Arquivos simples on-premises ou arquivos de despejo de banco de dados.

**Pilha de tecnologias de destino**
+ AWS Transfer for SFTP
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS Identity and Access Management Funções e políticas (IAM)
+ Endereços IP elásticos
+ Grupos de segurança
+ Amazon CloudWatch Logs (opcional)

**Arquitetura de destino**

![\[Uso do AWS Transfer for SFTP para migrar um servidor SFTP on-premises para a Nuvem AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/ec0a905c-edef-48ba-9b5e-ea4a4040d320/images/f42aa711-bfe0-4ac6-9f66-5c18a1dd1c7a.png)


**Automação e escala**

Para automatizar a arquitetura de destino desse padrão, use os CloudFormation modelos anexados:
+ `amazon-vpc-subnets.yml` provisiona uma nuvem privada virtual (VPC) com duas sub-redes públicas e duas privadas.
+ `amazon-sftp-server.yml` provisiona o servidor SFTP.
+ `amazon-sftp-customer.yml` adiciona usuários.

## Ferramentas
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-tools"></a>

**Serviços da AWS**
+ O [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.
+ [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 [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. Esse padrão usa o Amazon S3 como sistema de armazenamento para transferências de arquivos.
+ [AWS Transfer for SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)ajuda você a transferir arquivos para dentro e para fora dos serviços de AWS armazenamento pelo protocolo SFTP.
+ [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.

## Épicos
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-epics"></a>

### Crie uma VPC
<a name="create-a-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma VPC com sub-redes. | Abra o [console da Amazon VPC](https://console.aws.amazon.com/vpc/). Criar uma nuvem privada virtual (VPC) com duas sub-redes públicas. (A segunda sub-rede fornece alta disponibilidade.)—ou—Você pode implantar o CloudFormation modelo em anexo`amazon-vpc-subnets.yml`,, no [CloudFormation console](https://console.aws.amazon.com/cloudformation) para automatizar as tarefas neste épico. | Desenvolvedor, administrador de sistemas | 
| Um gateway da internet. | Forneça um gateway da Internet e anexe-o à VPC. | Desenvolvedor, administrador de sistemas | 
| Migre um IP existente. | Anexe um IP existente ao endereço IP elástico. É possível criar um endereço IP elástico de seu grupo de endereços e usá-lo. | Desenvolvedor, administrador de sistemas | 

### Provisione um servidor SFTP.
<a name="provision-an-sftp-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um servidor SFTP. | Abra o [console do AWS Transfer Family](https://console.aws.amazon.com/transfer/). Siga as instruções em [Criar um endpoint voltado para a Internet para seu servidor na AWS Transfer Family documentação para criar um servidor](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint) SFTP com um endpoint voltado para a Internet. Em **Tipo de endpoint**, selecione **VPC hospedada**. Em **Acesso**, escolha **Voltado para internet**. Para **VPC**, escolha a VPC que você criou no épico anterior.—ou—Você pode implantar o CloudFormation modelo em anexo`amazon-sftp-server.yml`,, no [CloudFormation console](https://console.aws.amazon.com/cloudformation) para automatizar as tarefas neste épico. | Desenvolvedor, administrador de sistemas | 
| Migre o nome do domínio. | Anexe o nome de domínio existente ao nome de host personalizado. Se você estiver usando um novo nome de domínio, use o alias do **DNS do Amazon Route 53**. Para um nome de domínio existente, escolha **Outro DNS**. Para obter mais informações, consulte Como [trabalhar com nomes de host personalizados](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html) na AWS Transfer Family documentação. | Desenvolvedor, administrador de sistemas | 
| Adicione uma função de CloudWatch registro. | (Opcional) se você quiser ativar o CloudWatch registro, crie um `Transfer` papel com as operações da API CloudWatch Logs `logs:CreateLogGroup` `logs:CreateLogStream`` logs:DescribeLogStreams`,, `logs:PutLogEvents` e. Para obter mais informações, consulte [Registrar atividades CloudWatch](https://docs.aws.amazon.com/transfer/latest/userguide/monitoring.html#monitoring-enabling) na AWS Transfer Family documentação. | Desenvolvedor e administrador de sistemas | 
| Salve e envie. | Escolha **Salvar**. Em **Ações**, escolha **Iniciar** e aguarde até que o servidor SFTP seja criado com o status **Online**. | Desenvolvedor, administrador de sistemas | 

### Mapeie endereços IP elásticos para o servidor SFTP
<a name="map-elastic-ip-addresses-to-the-sftp-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Pare o servidor para que você possa modificar as configurações. | No [console do AWS Transfer Family](https://console.aws.amazon.com/transfer/), escolha **Servidores** e, em seguida, selecione o servidor SFTP que você criou. Em **Ações**, escolha **Interromper**. Quando o servidor estiver off-line, escolha **Editar** para modificar suas configurações. | Desenvolvedor e administrador de sistemas | 
| Escolha zonas de disponibilidade e sub-redes. | Na seção **Zonas de disponibilidade**, escolha suas Zonas de Disponibilidade e sub-redes para sua VPC. | Desenvolvedor, administrador de sistemas | 
| Adicionar endereços IP elásticos. | Em **IPv4 Endereços**, escolha um endereço IP elástico para cada sub-rede e escolha **Salvar**. | Desenvolvedor, administrador de sistemas | 

### Adição de usuários
<a name="add-users"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um perfil do IAM para que os usuários acessem o bucket do S3. | Crie um perfil do IAM para `Transfer`** **e adicione ` s3:ListBucket`,` s3:GetBucketLocation` e `s3:PutObject` com o nome do bucket do S3 como recurso. Para obter mais informações, consulte [Criar uma função e uma política do IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html) na AWS Transfer Family documentação.—ou—Você pode implantar o CloudFormation modelo em anexo`amazon-sftp-customer.yml`,, no [CloudFormation console](https://console.aws.amazon.com/cloudformation) para automatizar as tarefas neste épico. | Desenvolvedor, administrador de sistemas | 
| Criar um bucket do S3. | Crie um bucket do S3 para o aplicativo. | Desenvolvedor, administrador de sistemas | 
| Crie uma pasta opcional. | (Opcional) Se você quiser armazenar arquivos para usuários separadamente, em pastas específicas do Amazon S3, adicione pastas conforme apropriado. | Desenvolvedor, administrador de sistemas | 
| Crie uma chave pública SSH. | Para criar um par de chaves SSH, consulte [Gerar chaves SSH](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#sshkeygen) na AWS Transfer Family documentação. | Desenvolvedor, administrador de sistemas | 
| Adicionar usuários. | No [console do AWS Transfer Family](https://console.aws.amazon.com/transfer/), escolha **Servidores**, selecione o servidor SFTP que você criou e, em seguida, clique em **Adicionar usuário**. Para **Diretório inicial**, escolha o bucket S3 que você criou. Em **chave pública SSH**, especifique a parte da chave pública SSH do par de chaves SSH. Adicione usuários ao servidor SFTP e escolha **Adicionar**. | Desenvolvedor, administrador de sistemas | 

### Teste o servidor SFTP.
<a name="test-the-sftp-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualizar o grupo de segurança | Na seção **Grupo de segurança** do seu servidor SFTP, adicione o IP da sua máquina de teste para obter acesso ao SFTP. | Desenvolvedor | 
| Use um utilitário de cliente SFTP para testar o servidor. | Teste as transferências de arquivos usando qualquer utilitário de cliente SFTP. Para obter uma lista de clientes e instruções, consulte [Transferência de arquivos usando um cliente](https://docs.aws.amazon.com/transfer/latest/userguide/transfer-file.html) na AWS Transfer Family documentação. | Desenvolvedor | 

## Recursos relacionados
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-resources"></a>
+ [AWS Transfer Family Guia do usuário](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [Guia do usuário do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [Endereços IP elásticos](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) na EC2 documentação da Amazon

## Anexos
<a name="attachments-ec0a905c-edef-48ba-9b5e-ea4a4040d320"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/ec0a905c-edef-48ba-9b5e-ea4a4040d320/attachments/attachment.zip)

# Migre uma VM local para a Amazon EC2 usando o AWS Application Migration Service
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service"></a>

*Thanh Nguyen, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-summary"></a>

Quando se trata de migração de aplicativos, as organizações podem adotar abordagens diferentes para redefinir a hospedagem (mover sem alterações (lift-and-shift)) os servidores do aplicativo do ambiente on-premises para a Nuvem da Amazon Web Services (AWS). Uma forma é provisionar novas instâncias do Amazon Elastic Compute Cloud (Amazon EC2) e, em seguida, instalar e configurar o aplicativo do zero. Outra abordagem é usar serviços de migração de terceiros ou nativos da AWS para migrar vários servidores ao mesmo tempo.

Esse padrão descreve as etapas para migrar uma máquina virtual (VM) compatível para uma EC2 instância da Amazon na nuvem da AWS usando o AWS Application Migration Service. Você pode usar a abordagem deste padrão para migrar uma ou várias máquinas virtuais manualmente, uma por uma ou automaticamente ao criar scripts de automação apropriados com base nas etapas descritas. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-prereqs"></a>

**Pré-requisitos **
+ Uma conta ativa da AWS em uma das regiões da AWS compatíveis com o Serviço de migração de aplicativos
+ Conectividade de rede entre o servidor de origem e o EC2 servidor de destino por meio de uma rede privada usando o AWS Direct Connect ou uma rede privada virtual (VPN), ou pela Internet

**Limitações**
+ Para obter a lista mais recente das regiões aceitas, consulte as [Regiões da AWS compatíveis](https://docs.aws.amazon.com/mgn/latest/ug/supported-regions.html).
+ Para obter uma lista dos sistemas operacionais compatíveis, consulte a seção [Sistemas operacionais compatíveis](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html) e a seção *Geral* da [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

## Arquitetura
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-architecture"></a>

**Pilha de tecnologia de origem**
+ Um servidor físico, virtual ou hospedado na nuvem executando um sistema operacional suportado pela Amazon EC2

**Pilha de tecnologias de destino**
+ Uma EC2 instância da Amazon executando o mesmo sistema operacional da VM de origem
+ Amazon Elastic Block Store (Amazon EBS)

**Arquitetura de origem e destino**

O diagrama a seguir mostra a arquitetura de alto nível e os principais componentes da solução. No datacenter on-premises, há máquinas virtuais com discos on-premises. Na AWS, há uma área de preparação com servidores de replicação e uma área de recursos migrados com EC2 instâncias para teste e transferência. As duas sub-redes contêm volumes do EBS.

![\[Principais componentes para migrar uma VM compatível para uma EC2 instância da Amazon na nuvem da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/f8396fad-7ee9-4f75-800f-e819f509e151.png)


1. Inicializar o Serviço de migração de aplicativos da AWS.

1. Configure a configuração e os relatórios do servidor da área de preparação, incluindo os recursos da área de preparação.

1. Instale agentes nos servidores de origem e use a replicação contínua de dados em nível de bloco (compactada e criptografada).

1. Automatize a orquestração e a conversão do sistema para reduzir a janela de substituição.

**Arquitetura de rede**

O diagrama a seguir mostra a arquitetura de alto nível e os principais componentes da solução do ponto de vista da rede, incluindo protocolos e portas necessários para comunicação entre os componentes principais no datacenter on-premises e na AWS.

![\[Componentes de rede, incluindo protocolos e portas, para a comunicação entre o data center e a AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/2f594daa-ddba-4841-8785-6067e8d83c2f.png)


## Ferramentas
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-tools"></a>
+ O [Serviço de migração de aplicativos da AWS](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ajuda você a redefinir a hospedagem (*mover sem alterações (lift-and-shift)) aplicativos na nuvem da Nuvem AWS sem alterações e com o mínimo de* tempo de inatividade.

## Práticas recomendadas
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-best-practices"></a>
+ Não coloque o servidor de origem off-line nem execute uma reinicialização até que a transição para a EC2 instância de destino seja concluída.
+ Ofereça ampla oportunidade para que os usuários realizem testes de aceitação do usuário (UAT) no servidor de destino para identificar e resolver quaisquer problemas. Preferencialmente, os testes devem ter início pelo menos duas semanas antes da substituição.
+ Monitore com frequência o status de replicação do servidor no console do Serviço de migração de aplicativos para identificar problemas logo no início.
+ Use credenciais temporárias do AWS Identity and Access Management (IAM) para instalação do agente, em vez das credenciais permanentes do usuário do IAM.

## Épicos
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-epics"></a>

### Gerar credenciais de AWS
<a name="generate-aws-credentials"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o perfil do IAM do AWS Replication Agent. | Faça login com permissões administrativas para a Conta AWS.No [console](https://console.aws.amazon.com/iam/) do AWS Identity and Access Management (IAM), crie um perfil do IAM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html) | Administrador da AWS, engenheiro de migração | 
| Gerar credenciais de segurança temporárias | Em uma máquina com AWS Command Line Interface (AWS CLI) instalada, faça login com permissões administrativas. Ou, alternativamente (dentro de uma região da AWS compatível), no Console de Gerenciamento da AWS, faça login com permissões administrativas na conta da AWS e abra a AWS CloudShell.Gere credenciais temporárias com o comando a seguir, substituindo `<account-id>` pelo ID da conta da AWS.`aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/MGN_Agent_Installation_Role --role-session-name mgn_installation_session_role`Na saída do comando, copie os valores para `AccessKeyId`,** **`SecretAccessKey`, e** **`SessionToken`.** **Armazene-os em um local seguro para uso posterior.Essas credenciais temporárias expirarão após uma hora. Se você precisar de credenciais após uma hora, repita as etapas anteriores. | Administrador da AWS, engenheiro de migração | 

### Inicialize o Serviço de migração de aplicativos e crie o modelo de Configurações de replicação
<a name="initialize-application-migration-service-and-create-the-replication-settings-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicialize o serviço. | No console, faça login com permissões administrativas para a Conta AWS.Escolha **Serviço de migração de aplicativos** e, em seguida, escolha **Começar**. | Administrador da AWS, engenheiro de migração | 
| Crie e configure o modelo de Configurações de replicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)O Serviço de migração de aplicativos criará automaticamente todos os perfis do IAM necessários para facilitar a replicação de dados e a inicialização de servidores migrados. | Administrador da AWS, engenheiro de migração | 

### Instale AWS Replication Agents nas máquinas de origem
<a name="install-aws-replication-agents-on-source-machines"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Tenha as credenciais exigidas da AWS prontas. | Ao executar o arquivo do instalador em um servidor de origem, você precisará inserir as credenciais temporárias geradas anteriormente, incluindo `AccessKeyId`, `SecretAccessKey`, e `SessionToken`. | Engenheiro de migração, administrador da AWS | 
| Para servidores Linux, instale o agente. | Copie o comando do instalador, faça login nos servidores de origem e execute o instalador. Para obter instruções detalhadas, consulte a [Documentação da AWS](https://docs.aws.amazon.com/mgn/latest/ug/linux-agent.html). | Administrador da AWS, engenheiro de migração | 
| Para servidores Windows, instale o agente. | Baixe o arquivo do instalador para cada servidor e, em seguida, execute o comando do instalador. Para obter instruções detalhadas, consulte a [Documentação da AWS](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html). | Administrador da AWS, engenheiro de migração | 
| Aguarde até que a replicação inicial dos dados seja concluída. | Quando o agente for instalado, o servidor de origem aparecerá no console do Serviço de migração de aplicativos, na seção **Servidores de origem**. Aguarde enquanto o servidor passa pela replicação inicial dos dados. | Administrador da AWS, engenheiro de migração | 

### Define as configurações de inicialização
<a name="configure-launch-settings"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Especificar os detalhes do servidor. | No console do Serviço de migração de aplicativos, escolha a seção **Servidores de origem** e, em seguida, escolha um nome de servidor na lista para acessar os detalhes do servidor. | Administrador da AWS, engenheiro de migração | 
| Define as configurações de inicialização.  | Escolha a guia **Configurações de inicialização**. Você pode definir uma variedade de configurações, incluindo configurações gerais de lançamento e configurações do modelo de EC2 lançamento. Para obter instruções detalhadas, consulte a [Documentação da AWS](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | Administrador da AWS, engenheiro de migração | 

### Realize um teste
<a name="perform-a-test"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste os servidores de origem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Os servidores serão inicializados. | Administrador da AWS, engenheiro de migração | 
| Verifique se o teste teve êxito. | Depois que os servidores de teste forem completamente iniciados, o status de **Alertas** na página mostrará **Iniciado** para cada servidor. | Administrador da AWS, engenheiro de migração | 
| Teste o servidor. | Execute testes no servidor de teste para garantir que ele funcione conforme o esperado. | Administrador da AWS, engenheiro de migração | 

### Agende e realize uma substituição
<a name="schedule-and-perform-a-cutover"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Agende uma janela de substituição. | Agende uma agenda de substituição adequado com as equipes relevantes. | Administrador da AWS, engenheiro de migração | 
| Execute a substituição. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)O **ciclo de vida da migração** do servidor de origem mudará para **Substituição em andamento**. | Administrador da AWS, engenheiro de migração | 
| Verifique se a substituição foi concluída com êxito. | Depois que os servidores de substituição forem completamente iniciados, o status de **alertas** na página **Servidores de origem** mostrará **Inicializado** para cada servidor. | Administrador da AWS, engenheiro de migração | 
| Teste o servidor. | Execute testes no servidor de substituição para garantir que ele funcione conforme o esperado. | Administrador da AWS, engenheiro de migração | 
| Finalize a substituição. | Escolha **Teste e Substituição** e, em seguida, selecione **Finalizar substituição** para finalizar o processo de migração. | Administrador da AWS, engenheiro de migração | 

## Recursos relacionados
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-resources"></a>
+ [Serviço de migração de aplicativos da AWS](https://aws.amazon.com/application-migration-service/)
+ [Guia do usuário do serviço de migração de aplicativos da AWS](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)

# Migre pequenos conjuntos de dados do local para o Amazon S3 usando AWS SFTP
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp"></a>

*Charles Gibson e Sergiy Shevchenko, Amazon Web Services*

## Resumo
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-summary"></a>

Esse padrão descreve como migrar pequenos conjuntos de dados (5 TB ou menos) de datacenters locais para o Amazon Simple Storage Service (Amazon S3) usando (). AWS Transfer for SFTP AWS SFTP Os dados podem ser despejos de banco de dados ou arquivos simples.

## Pré-requisitos e limitações
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Um AWS Direct Connect link estabelecido entre seu data center e AWS

**Limitações**
+ Os arquivos de dados devem ter menos de 5 TB. Para arquivos acima de 5 TB, você pode realizar um upload de várias partes para o Amazon S3 ou escolher outro método de transferência de dados. 

## Arquitetura
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-architecture"></a>

**Pilha de tecnologia de origem**
+ Arquivos simples on-premises ou despejos de banco de dados

**Pilha de tecnologias de destino**
+ Amazon S3

**Arquitetura de origem e destino**

![\[Diagram showing data flow from on-premises servers to Nuvem AWS services via Direct Connect and VPN.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/a9c016ff-3e68-4714-ac51-46cb4727397a/images/5c5bb9ea-d552-44e8-8d0d-df341f84f55d.png)


## Ferramentas
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-tools"></a>
+ [AWS SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)— Permite a transferência de arquivos diretamente para dentro e para fora do Amazon S3 usando o Secure File Transfer Protocol (SFTP).
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)— Estabelece uma conexão de rede dedicada de seus data centers locais para o. AWS
+ [VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) — permitem que você conecte de forma privada uma VPC a serviços de endpoint de VPC compatíveis Serviços da AWS e fornecidos sem um gateway de internet, dispositivo de tradução AWS PrivateLink de endereços de rede (NAT), conexão VPN ou conexão. Direct Connect As instâncias na VPC não exigem que endereços IP públicos se comuniquem com recursos no serviço.

## Épicos
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Documente os requisitos atuais do SFTP. |  | Proprietário do aplicativo e SA | 
| Identifique os requisitos de autenticação. | Os requisitos podem incluir autenticação baseada em chave, nome de usuário ou senha ou provedor de identidades (IdP). | Proprietário do aplicativo e SA | 
| Identifique os requisitos de integração do aplicativo. |  | Proprietário do aplicativo | 
| Identifique os usuários que precisam do serviço. |  | Proprietário do aplicativo | 
| Determine o nome DNS do endpoint do servidor SFTP. |  | Redes | 
| Determine a estratégia de backup. |  | SA, DBA (se os dados forem transferidos)  | 
| Identifique a migração do aplicativo ou a estratégia de substituição. |  | Proprietário do aplicativo, SA e DBA | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma ou mais nuvens privadas virtuais (VPCs) e sub-redes no seu. Conta da AWS |  | Proprietário do aplicativo e AMS | 
| Criar grupos de segurança e lista de controle de acesso (ACL) de rede. |  | Segurança, redes e AMS | 
| Crie o bucket do Amazon S3. |  | Proprietário do aplicativo e AMS | 
| Crie a função AWS Identity and Access Management (IAM). | Crie uma política do IAM que inclua as permissões para permitir o acesso AWS SFTP ao seu bucket do Amazon S3. Essa política do IAM determina o nível de acesso que você fornece aos usuários do SFTP. Crie outra política do IAM com a qual estabelecer uma relação de confiança AWS SFTP. | Segurança e AMS | 
| Associe um domínio registrado (opcional). | Se você tiver seu próprio domínio registrado, poderá associá-lo ao servidor SFTP. Você pode rotear o tráfego do SFTP para o seu endpoint de servidor SFTP de um domínio ou de um subdomínio. | Redes e AMS | 
| Crie um servidor SFTP. | Especifique o tipo de provedor de identidade usado pelo serviço para autenticar seus usuários. | Proprietário do aplicativo e AMS | 
| Abra um cliente SFTP. | Abra um cliente SFTP e configure a conexão para usar o host do endpoint SFTP. AWS SFTP suporta qualquer cliente SFTP padrão. Os clientes SFTP comumente usados incluem OpenSSH, WinSCP, Cyberduck e. FileZilla Você pode obter o nome do host do servidor SFTP no AWS SFTP console. | Proprietário do aplicativo e AMS | 

### Planejar e testar
<a name="plan-and-test"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Planeje a migração do aplicativo. | Planeje todas as alterações necessárias na configuração do aplicativo, defina a data da migração e determine o cronograma de testes. | Proprietário do aplicativo e AMS | 
| Teste a infraestrutura. | Teste em um ambiente que não seja de produção. | Proprietário do aplicativo e AMS | 

## Recursos relacionados
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-resources"></a>

**Referências**
+ [AWS Transfer for SFTP Guia do usuário](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS Direct Connect recursos](https://aws.amazon.com/directconnect/resources/) 
+ [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)

**Tutoriais e vídeos**
+ [AWS Transfer for SFTP (vídeo)](https://www.youtube.com/watch?v=wcnGez5PP1E)
+ [AWS Transfer for SFTP guia do usuário](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS SA Whiteboard - Direct Connect (vídeo)](https://www.youtube.com/watch?v=uP68iqyuqTg)

# Migre um banco de dados Oracle local para o Oracle na Amazon EC2
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2"></a>

*Baji Shaik e Pankaj Choudhary, da Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-summary"></a>

Esse padrão orienta você pelas etapas de migração de um banco de dados Oracle local para a Oracle em uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Ele descreve duas opções de migração: usar o AWS Data Migration Service (AWS DMS) ou usar ferramentas nativas da Oracle, como RMAN, importação/exportação do Data Pump, espaços de tabela transportáveis e Oracle. GoldenGate 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem em um datacenter on-premises

**Limitações**
+ O sistema operacional (SO) de destino deve ser suportado pela Amazon EC2. Para obter uma lista completa dos sistemas compatíveis, consulte [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

**Versões do produto**
+ Oracle versões 10.2 e posterior (para versões 10.x), 11g e até 12.2 e 18c para as edições Enterprise, Standard, Standard One e Standard Two. Para obter a lista mais recente de versões suportadas pelo AWS DMS, consulte “Bancos de dados de EC2 instâncias locais e da Amazon” em [Fontes para migração de dados na documentação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) do AWS DMS.  

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Oracle on-premises

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados Oracle na Amazon EC2

**Arquitetura de destino**

![\[Configurando a replicação para um banco de dados Oracle na Amazon EC2.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/386d5b14-8633-4ecc-98fb-59872de99d41.png)


**Arquitetura de migração de dados**

*Uso do AWS DMS:*

![\[Migração de um banco de dados Oracle local para a Amazon com o EC2 AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/14954066-d22b-486a-a432-265296752878.png)


*Uso de ferramentas nativas da Oracle:*

![\[Migração de um banco de dados Oracle local para a Amazon EC2 com ferramentas da Oracle.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/82ba5fcb-8640-45fa-b432-2702dedc0774.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-tools"></a>
+ **AWS DMS: ** o [AWS Database Migration Services](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) oferece suporte a vários bancos de dados de origem e destino. Para obter informações sobre as versões e edições do banco de dados compatíveis, consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos.  
+ **Ferramentas nativas da Oracle -** RMAN, importação/exportação de Data Pump, espaços de tabela transportáveis, Oracle GoldenGate                                                         

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Valide as versões dos bancos de dados de origem e de destino. |  | DBA | 
|  Identifique a versão do sistema operacional de destino. |  | DBA, SysAdmin | 
| Identificar os requisitos de hardware para a instância do servidor de destino com base na lista de compatibilidade da Oracle e nos requisitos de capacidade. |  | DBA, SysAdmin | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Identifique os requisitos de rede (latência e largura de banda). |  | DBA, SysAdmin | 
| Escolher o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança de network/host acesso para bancos de dados de origem e destino. |  | DBA, SysAdmin | 
| Identifique uma lista de usuários do sistema operacional necessários para a instalação do software Oracle. |  | DBA, SysAdmin | 
| Faça o download da AWS Schema Conversion Tool (AWS SCT) e dos drivers. |  | DBA | 
| Crie um projeto AWS SCT para o workload e conecte-se ao banco de dados de origem. |  | DBA | 
| Gere arquivos SQL para a criação de objetos (tabelas, índices, sequências etc.). |  | DBA | 
| Determine uma estratégia de backup. |  | DBA, SysAdmin  | 
| Determine os requisitos de disponibilidade. |  | DBA | 
| Identifique a migração de aplicativos / a estratégia de transição. |  | DBA SysAdmin, proprietário do aplicativo | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nuvem privada virtual (VPC) e sub-redes na sua conta da AWS. |  | SysAdmin | 
| Crie grupos de segurança e listas de controle de acesso à rede (ACLs). |  | SysAdmin | 
| Configure e inicie a EC2 instância. |  | SysAdmin | 

### Instalar o software Oracle
<a name="install-the-oracle-software"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie os usuários e grupos do sistema operacional necessários para o software Oracle. |  | DBA, SysAdmin | 
| Baixe a versão necessária do software Oracle. |  |  | 
| Instale o software Oracle na EC2 instância. |  | DBA, SysAdmin | 
| Crie objetos como tabelas, chaves primárias, visualizações e sequências usando os scripts gerados pelo AWS SCT. |  | DBA | 

### Migrar dados - opção 1
<a name="migrate-data---option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas da Oracle ou ferramentas de terceiros para migrar dados e objetos do banco de ados. | As ferramentas da Oracle incluem importação/exportação do Data Pump, RMAN, espaços de tabela transportáveis e. GoldenGate | DBA | 

### Migrar dados - opção 2
<a name="migrate-data---option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine o método de migração. |  | DBA | 
| Crie uma instância de replicação no console do AWS DMS. |  | DBA | 
| Crie endpoints de origem e de destino. |  | DBA | 
| Criar uma tarefa de replicação. |  | DBA | 
| Habilite a captura de dados de alteração (CDC) para capturar alterações para uma replicação contínua. |  | DBA | 
| Execute a tarefa de replicação e monitore os logs. |  | DBA | 
| Crie objetos secundários, como índices e chaves estrangeiras, quando o carregamento completo estiver concluído. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. |  | DBA SysAdmin, proprietário do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de substituição/transição de aplicativo. |  | DBA SysAdmin, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários do AWS Secrets Manager. |  | DBA, SysAdmin | 
| Revise e valide os documentos do projeto. |  | DBA SysAdmin, proprietário do aplicativo | 
| Reúna métricas sobre o tempo de migração, % de manual x ferramenta, economia de custos etc. |  | DBA SysAdmin, proprietário do aplicativo | 
| Feche o projeto e forneça feedback. |  |  | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-resources"></a>

**Referências**
+ [Estratégias para migrar bancos de dados Oracle para a AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html) 
+ [Migrar bancos de dados Oracle para a Nuvem AWS ](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/)
+ [ EC2 Site da Amazon](https://aws.amazon.com/ec2/)
+ [Site do AWS DMS](https://aws.amazon.com/dms/)
+ [Publicações no blog do AWS DMS](https://aws.amazon.com/blogs/database/category/dms/)
+ [ EC2 Preços da Amazon](https://aws.amazon.com/ec2/pricing/)
+ [Licenciamento do software Oracle no ambiente de computação em nuvem](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

**Tutoriais e vídeos**
+ [Começando com a Amazon EC2](https://aws.amazon.com/ec2/getting-started/)
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Introdução à Amazon EC2 — Elastic Cloud Server e hospedagem com AWS (vídeo)](https://www.youtube.com/watch?v=TsRBftzZsQo) 

# Migre um banco de dados Oracle local para a Amazon EC2 usando o Oracle Data Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Navakanth Talluri, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

Ao migrar bancos de dados, você deve considerar fatores como os mecanismos e as versões do banco de dados de origem e de destino, ferramentas e serviços de migração e períodos de inatividade aceitáveis. Se você estiver migrando um banco de dados Oracle local para o Amazon Elastic Compute Cloud (Amazon EC2), você pode usar ferramentas da Oracle, como o Oracle Data Pump e o Oracle Recovery Manager (RMAN). Para obter mais informações sobre estratégias, consulte [Migração de bancos de dados Oracle para a nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html).

O Oracle Data Pump ajuda você a extrair o backup lógico e consistente do banco de dados e restaurá-lo na EC2 instância de destino. Esse padrão descreve como migrar um banco de dados Oracle local para uma EC2 instância usando o Oracle Data Pump e o `NETWORK_LINK` parâmetro, com o mínimo de tempo de inatividade. O `NETWORK_LINK` parâmetro inicia uma importação por meio de um link de banco de dados. O cliente Oracle Data Pump Import (impdp) na EC2 instância de destino se conecta ao banco de dados de origem, recupera dados dele e grava os dados diretamente no banco de dados na instância de destino. Não há arquivos de backup ou de *despejo* usados nessa solução.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados da Oracle no on-premises que:
  + Não é um banco de dados Oracle Real Application Clusters (RAC)
  + Não é um banco de dados Oracle Automatic Storage Management (Oracle ASM)
  + Está no modo leitura/gravação.
+ Você criou um link do AWS Direct Connect entre o datacenter on-premises e a AWS. Para obter mais informações, consulte [Criar uma conexão](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (documentação do Direct Connect).

**Versões do produto**
+ Oracle Database 10g Versão 1 (10.1) e posteriores

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**Pilha de tecnologia de origem**
+ Um servidor de banco de dados Oracle autônomo (não RAC e não ASM) em um datacenter on-premises

**Pilha de tecnologias de destino**
+ Um banco de dados Oracle em execução na Amazon EC2

**Arquitetura de destino**

O [pilar de confiabilidade](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) do AWS Well-Architected Framework recomenda a criação de backups de dados para ajudar a fornecer alta disponibilidade e resiliência. Para obter mais informações, consulte [Arquitetura para alta disponibilidade](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2) em *Melhores práticas para execução do banco de dados Oracle na AWS*. Esse padrão configura bancos de dados primários e standby em EC2 instâncias usando o Oracle Active Data Guard. Para alta disponibilidade, as EC2 instâncias devem estar em zonas de disponibilidade diferentes. No entanto, as zonas de disponibilidade podem estar na mesma região da AWS ou em regiões da AWS diferentes.

O Active Data Guard fornece acesso somente de leitura a um banco de dados físico em espera e aplica alterações de redo continuamente a partir do banco de dados principal. Com base no objetivo de ponto de recuperação (RPO) e no objetivo de tempo de recuperação (RTO) da, você pode escolher entre as opções de transporte de redo síncrono e assíncrono.

A imagem a seguir mostra a arquitetura de destino se as EC2 instâncias primária e de espera estiverem em diferentes regiões da AWS.

![\[Aplicativo conectado ao novo banco de dados na EC2 instância primária\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**Arquitetura de migração de dados**

Depois de concluir a configuração da arquitetura de destino, você usa o Oracle Data Pump para migrar os dados e esquemas locais para a instância primária. EC2 Durante a substituição, os aplicativos não podem acessar o banco de dados on-premises ou o banco de dados de destino. Você desliga esses aplicativos até que eles possam ser conectados ao novo banco de dados de destino na EC2 instância primária.

A imagem a seguir mostra a arquitetura durante a migração de dados. Neste exemplo de arquitetura, as EC2 instâncias primária e em espera estão em diferentes regiões da AWS.

![\[O banco de dados de origem se conecta ao banco de dados de destino. Os aplicativos estão desconectados da origem e do destino DBs\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**Serviços da AWS**
+ O [AWS Direct Connect](https://aws.amazon.com/directconnect/) 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.
+ [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.

**Outras ferramentas e serviços**
+ O [Oracle Active Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7) ajuda você a criar, manter, gerenciar e monitorar bancos de dados em espera.
+ O [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html) ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade.

## Práticas recomendadas
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [Melhores práticas para execução do Oracle Database na AWS](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [Importação de dados usando NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### Configure as EC2 instâncias na AWS
<a name="set-up-the-ec2-instances-on-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique a configuração do hardware de origem para o host on-premises e os parâmetros do kernel. | Valide a configuração local, incluindo tamanho do armazenamento, input/output operações por segundo (IOPS) e CPU. Isso é importante para o licenciamento da Oracle, que é baseado em núcleos de CPU. | DBA, SysAdmin | 
| Crie a infraestrutura na AWS. | Crie nuvens privadas virtuais (VPCs), sub-redes privadas, grupos de segurança, listas de controle de acesso à rede (ACLs), tabelas de rotas e gateway de internet. Para obter mais informações, consulte o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, administrador de sistemas da AWS | 
| Configure as EC2 instâncias usando o Active Data Guard. | Configure EC2 instâncias da AWS usando uma configuração do Active Data Guard, conforme descrito no [AWS Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html) Framework. A versão do Oracle Database na EC2 instância pode ser diferente da versão local porque esse padrão usa backups lógicos. Observe o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)Para obter mais informações, consulte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, administrador de sistemas da AWS | 

### Migre o banco de dados para a Amazon EC2
<a name="migrate-the-database-to-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um dblink para o banco de dados local a partir da instância. EC2  | Crie um link de banco de dados (dblink) entre o banco de dados Oracle na EC2 instância e o banco de dados Oracle local. Para obter mais informações, consulte [Usando a importação de link de rede para mover dados](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806) (documentação da Oracle). | DBA | 
| Verifique a conexão entre a EC2 instância e o host local. | Use o dblink para confirmar se a conexão entre a EC2 instância e o banco de dados local está funcionando. Para obter instruções, consulte [CREATE DATABASE LINK](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm) (documentação da Oracle). | DBA | 
| Pare todos os aplicativos conectados ao banco de dados on-premises. | Depois que o tempo de inatividade do banco de dados for aprovado, encerre todos os aplicativos e trabalhos dependentes conectados ao seu banco de dados on-premises. Você pode fazer isso diretamente do aplicativo ou do banco de dados usando o cron. Para obter mais informações, consulte [Usar o utilitário Crontab para agendar tarefas no Oracle Linux](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html). | DBA, desenvolvedor de aplicativos | 
| Agende o trabalho de migração de dados.  | No host de destino, use o comando `impdb` para agendar a importação do Data Pump. Isso conecta o banco de dados de destino ao host on-premises e inicia a migração de dados. Para obter mais informações, consulte [Data Pump Import](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) e [NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919) (documentação da Oracle). | DBA | 
| Valide a migração de dados. | A validação de dados é uma etapa crucial. Para validação de dados, você pode usar ferramentas personalizadas ou ferramentas Oracle, como uma combinação de consultas dblink e SQL. | DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Colocar o banco de dados de origem em um modo somente leitura. | Confirme se o aplicativo foi encerrado e se nenhuma alteração está sendo feita no banco de dados de origem. Abra o banco de dados de origem no modo somente leitura. Isso ajuda você a evitar transações abertas. Para ter mais informações, consulte `ALTER DATABASE`em [SQL Statements](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540) (documentação da Oracle). | DBA, DevOps engenheiro, desenvolvedor de aplicativos | 
| Valide a contagem de objetos e os dados. | Para validar os dados e o objeto, use ferramentas personalizadas ou ferramentas Oracle, como uma combinação de consultas dblink e SQL. | DBA, desenvolvedor de aplicativos | 
| Conecte os aplicativos ao banco de dados na EC2 instância primária. | Altere o atributo de conexão do aplicativo para apontar para o novo banco de dados que você criou na EC2 instância primária. | DBA, desenvolvedor de aplicativos | 
| Valide o desempenho do aplicativo. | Iniciar o aplicativo Valide a funcionalidade e o desempenho do aplicativo usando o [Automated Workload Repository](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (documentação da Oracle). | Desenvolvedor de aplicativos, DevOps engenheiro, DBA | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**Referências da AWS**
+ [Migrar bancos de dados Oracle para a Nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Amazon EC2 para Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [Migração de bancos de dados Oracle volumosos para a AWS para ambientes multiplataforma](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPCs e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [Tutorial: criar uma VPC para uso com uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Referências da Oracle**
+ [Configurações do Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-AB9DF863-2C7E-4767-81F2-56AD0FA30B49)
+ [Importação da bomba de dados](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)

# Migre sistemas RHEL BYOL para instâncias com licença incluída da AWS usando o AWS MGN
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn"></a>

*Mike Kuznetsov, Amazon Web Services*

## Resumo
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-summary"></a>

Ao migrar suas workloads para a AWS usando o AWS Application Migration Service (AWS MGN), talvez você precise mover sem alterações (lift-and-shift) (redefinir a hospedagem) as suas instâncias do Red Hat Enterprise Linux (RHEL) e alterar a licença do modelo padrão traga a sua própria licença (BYOL) para um modelo AWS License Included (LI) durante a migração. O AWS MGN oferece suporte a uma abordagem escalável que usa os IDs de Imagem de máquina da Amazon (AMI). Esse padrão descreve como realizar a alteração da licença nos servidores RHEL durante a migração de redefinição de hospedagem em grande escala. Também explica como alterar a licença de um sistema RHEL que já esteja em execução no Amazon Elastic Compute Cloud (Amazon EC2).

## Pré-requisitos e limitações
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-prereqs"></a>

**Pré-requisitos **
+ Acesso à conta de destino da AWS
+ O AWS MGN foi inicializado na conta e região da AWS de destino para a migração (não é necessário se você já tiver migrado do seu sistema on-premises para a AWS)
+ Um servidor RHEL de origem com uma licença RHEL válida

## Arquitetura
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-architecture"></a>

Esse padrão abrange dois cenários:
+ Migração de um sistema on-premises diretamente para uma instância do AWS LI usando o AWS MGN. Para esse cenário, siga as instruções no primeiro épico (*Migrar para a instância de LI - opção 1*) e no terceiro épico.
+ Alteração do modelo de licenciamento de BYOL para LI para um sistema RHEL migrado anteriormente que já está em execução no Amazon EC2. Para esse cenário, siga as instruções no segundo épico (*Migrar para a instância de LI* - *opção 2*) e no terceiro épico.

**nota**  
O terceiro épico envolve a reconfiguração da nova instância do RHEL para usar os servidores Red Hat Update Infrastructure (RHUI) fornecidos pela AWS. Esse processo é o mesmo para os dois cenários.

## Ferramentas
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-tools"></a>

**Serviços da AWS**
+ O [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ajuda você a redefinir a hospedagem aplicativos (mover sem alterações (lift-and-shift)) na nuvem AWS sem alterações e com o mínimo de tempo de inatividade.

## Épicos
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-epics"></a>

### Migrar para a instância LI - opção 1 (para um sistema RHEL on-premises)
<a name="migrate-to-li-instance---option-1-for-an-on-premises-rhel-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encontre o ID da AMI da instância RHEL AWS LI na região de destino. | Visite o [AWS Marketplace](https://aws.amazon.com/marketplace) ou use o [console do Amazon EC2](https://console.aws.amazon.com/ec2/) para encontrar a ID da AMI RHEL que corresponde à versão do sistema de origem do RHEL (por exemplo, RHEL-7.7) e anote o ID da AMI. No console do Amazon EC2, você pode filtrar o AMIs usando um dos seguintes termos de pesquisa:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrador de nuvem | 
| Defina as configurações de lançamento do AWS MGN.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)Agora, o AWS MGN usará essa versão do modelo de lançamento para iniciar instâncias de teste ou de substituição. Para obter mais informações, consulte a [documentação do AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/ec2-launch.html). | Administrador de nuvem | 
| Valide as configurações. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrador de nuvem | 
| Inicie a nova instância de LI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrador de nuvem | 

### Migrar para a instância LI - opção 2 (para uma instância RHEL BYOL EC2)
<a name="migrate-to-li-instance---option-2-for-a-rhel-byol-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre a instância do RHEL BYOL EC2 para uma instância do AWS LI. | Você pode alternar os sistemas RHEL que você migrou anteriormente para a AWS como BYOL para instâncias do AWS LI movendo seus discos (volumes do Amazon Elastic Block Store) e anexando-os a uma nova instância de LI. Para fazer essa troca, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrador de nuvem | 

### Reconfigure o sistema operacional RHEL para usar o RHUI fornecido pela AWS – ambas as opções
<a name="reconfigure-rhel-os-to-use-aws-provided-rhui-ndash-both-options"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Cancele o registro do sistema operacional da assinatura e da licença da Red Hat. | Após a migração e a substituição bem-sucedida, o sistema RHEL precisa ser removido da assinatura da Red Hat para parar de consumir a licença da Red Hat e evitar a cobrança dupla.Para remover o sistema operacional do RHEL da assinatura Red Hat, consulte e siga o processo descrito na [documentação do Red Hat Subscription Management (RHSM)](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/installation_guide/chap-subscription-management-unregistering). Use o comando de CLI de :  <pre>subscription-manager unregister</pre>Você também pode desativar o plug-in do gerenciador de assinaturas para parar de verificar o status da assinatura em cada chamada do **yum**. Para fazer isso, edite o arquivo de configuração `/etc/yum/pluginconf.d/subscription-manager.conf` e altere o parâmetro `enabled=1` para `enabled=0`. | Administrador do Linux ou do sistema | 
| Substitua a configuração de atualização antiga (RHUI, rede Red Hat Satellite, repositórios yum) pela RHUI fornecida pela AWS. | Você deve reconfigurar o sistema RHEL migrado para usar os servidores RHUI fornecidos pela AWS. Isso lhe dá acesso aos servidores RHUI nas regiões da AWS sem exigir a infraestrutura de atualização externa. O processo inclui as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)Aqui estão as etapas e comandos detalhados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Administrador do Linux ou do sistema | 
| Valide a configuração. | Na instância migrada de destino, verifique se a nova configuração está correta:<pre>sudo yum clean all <br />sudo yum repolist </pre> | Administrador do Linux ou do sistema | 

## Recursos relacionados
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-resources"></a>
+ [Guia do usuário do AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Obtenha suporte para um pacote de cliente AWS RHUI IMDSv2](https://access.redhat.com/solutions/5009491) (artigo da Red Hat Knowledgebase)
+ [Modelos de lançamento do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) (documentação do Amazon EC2)

# Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2"></a>

*Senthil Ramasamy, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-summary"></a>

Esse padrão descreve como migrar um banco de dados local do Microsoft SQL Server para o Microsoft SQL Server em uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Ele abrange duas opções de migração: usar AWS Database Migration Service (AWS DMS) ou usar ferramentas nativas do Microsoft SQL Server, como backup e restauração, Copy Database Wizard ou copiar e anexar banco de dados. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-prereqs"></a>

**Pré-requisitos **
+ Uma AWS conta ativa
+ Um sistema operacional suportado pela Amazon EC2 (para obter uma lista completa das versões suportadas do sistema operacional, consulte [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/))
+ Um banco de dados de origem do Microsoft SQL Server em um datacenter on-premises

**Versões do produto**
+ Para bancos de dados locais e de EC2 instâncias da Amazon, AWS DMS oferece suporte a: 
  + SQL Server nas versões 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 e 2019 
  + As eições Enterprise, Standard, Workgroup, Developer e Web
+ Para obter a lista mais atual de versões com suporte, consulte [Como usar um banco de dados do Microsoft SQL Server como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html).   

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados Microsoft SQL Server on-premises

**Pilha de tecnologias de destino**
+ Banco de dados Microsoft SQL Server em uma EC2 instância

**Arquitetura de destino**

![\[Instâncias primárias e em espera do Microsoft SQL Server em EC2 instâncias em duas zonas de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/53e2c27d-ceb4-4d88-a022-93dd0b343eaf.png)


**Arquitetura de migração de dados**
+ Usando AWS DMS

![\[Migração de dados locais do SQL Server para uma EC2 instância usando o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/1cbe32ea-e285-4cac-9153-4428bad9b229.png)

+ Usando ferramentas nativas do SQL Server 

![\[Migração de dados locais do SQL Server para uma EC2 instância usando ferramentas nativas do SQL Server.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/ad2caf54-7399-4038-91a3-acba9fa7da29.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) ajuda você a migrar seus dados de e para bancos de dados comerciais e de código aberto amplamente usados, incluindo Oracle, SQL Server, MySQL e PostgreSQL. Você pode usar AWS DMS para migrar seus dados para o Nuvem AWS, entre instâncias locais (por meio de uma Nuvem AWS configuração) ou entre combinações de configurações na nuvem e no local.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de banco de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
+ As ferramentas nativas do Microsoft SQL Server incluem o backup e a restauração, o Copy Database Wizard e a cópia e a anexação de banco de dados.

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique a versão do sistema operacional de destino. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de hardware para a instância do servidor de destino com base na lista de compatibilidade e nos requisitos de capacidade do Microsoft SQL Server. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento para tipo e capacidade. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de rede, incluindo latência e largura de banda. |  | DBA, administrador de sistemas | 
| Escolha o tipo de EC2 instância com base na capacidade, nos recursos de armazenamento e nos recursos de rede. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança de acesso à rede e host para os bancos de dados de origem e de destino. |  | DBA, administrador de sistemas | 
| Identifique uma lista de usuários necessários para a instalação do software Microsoft SQL Server. |  | DBA, administrador de sistemas | 
| Determine a estratégia de backup. |  | DBA | 
| Determine os requisitos de disponibilidade. |  | DBA | 
| Identifique a estratégia de migração e substituição de aplicativos. |  | DBA, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC) e sub-redes. |  | Administrador de sistemas | 
| Criar grupos de segurança e lista de controle de acesso (ACL) de rede. |  | Administrador de sistemas | 
| Configure e inicie uma EC2 instância. |  | Administrador de sistemas | 

### Instale o software
<a name="install-the-software"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie os usuários e grupos necessários para o software Microsoft SQL Server. |  | DBA, administrador de sistemas | 
| Faça o download do software Microsoft SQL Server. |  | DBA, administrador de sistemas | 
| Instale o software Microsoft SQL Server na EC2 instância e configure o servidor. |  | DBA, administrador de sistemas | 

### Migrar os dados - opção 1
<a name="migrate-the-data---option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas do Microsoft SQL Server ou ferramentas de terceiros para migrar os objetos e dados do banco de dados. | As ferramentas incluem backup e restauração, Copy Database Wizard e cópia e anexação de banco de dados. Para obter mais informações, consulte o guia [Migrar bancos de dados do Microsoft SQL Server para a Nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/). | DBA | 

### Migrar os dados - opção 2
<a name="migrate-the-data---option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre os dados usando o AWS DMS. | Para obter mais informações sobre o uso AWS DMS, consulte os links na seção [Recursos relacionados](#migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources). | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. | Use AWS Schema Conversion Tool (AWS SCT) para analisar e modificar o código SQL incorporado ao código-fonte do aplicativo. | DBA, proprietário do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de troca de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desligue todos os AWS recursos temporários. | Os recursos temporários incluem a instância AWS DMS de replicação e a EC2 instância para AWS SCT. | DBA, administrador de sistemas | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Reúna métricas sobre a hora de migrar, porcentagem de economia de custos manuais versus ferramentas e assim por diante. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Feche o projeto e forneça feedback. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources"></a>

**Referências**
+ [Migrando bancos de dados Microsoft SQL Server para o Nuvem AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/)
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [ EC2 Preços da Amazon](https://aws.amazon.com/ec2/pricing/)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Produtos Microsoft em AWS](https://aws.amazon.com/windows/products/)
+ [Licenciamento da Microsoft em AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server em AWS](https://aws.amazon.com/windows/products/sql/)

**Tutoriais e vídeos**
+ [Começando com a](https://aws.amazon.com/ec2/getting-started/) Amazon EC2
+ [Conceitos básicos do ](https://aws.amazon.com/dms/getting-started/)AWS Database Migration Service
+ [Associe uma EC2 instância da Amazon ao seu Simple AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_join_instance.html)
+ [Associe uma EC2 instância da Amazon ao seu AWS Managed Microsoft AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (vídeo)
+ [Introdução à Amazon EC2 — Elastic Cloud Server e hospedagem com AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (vídeo)

# Redefinir a hospedagem de workloads on-premises na Nuvem AWS: lista de verificação de migração
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Resumo
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-summary"></a>

A redefinição da hospedagem de workloads on-premises na Nuvem da Amazon Web Services (AWS) envolve as seguintes fases de migração: planejamento, pré-descoberta, descoberta, compilação, teste e substituição. Esse padrão descreve as fases e as tarefas relacionadas. As tarefas são descritas em alto nível e são compatíveis com cerca de 75% de todas as workloads de aplicativos. Você pode implementar essas tarefas em duas a três semanas em um ciclo de sprint ágil.

Você deve analisar e examinar essas tarefas com sua equipe de migração e consultores. Após a análise, você pode coletar as informações, eliminar ou reavaliar tarefas conforme necessário para atender aos seus requisitos e modificar outras tarefas para serem compatíveis com pelo menos 75% das workloads de aplicativos em seu portfólio. Em seguida, você pode usar uma ferramenta de gerenciamento de projetos ágil, como Atlassian Jira ou Rally Software, para importar as tarefas, atribuí-las aos recursos e rastrear suas atividades de migração. 

O padrão pressupõe que você esteja usando o [AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html) para redefinir a hospedagem de suas workloads, mas é possível usar a ferramenta de migração de sua escolha.

O Amazon Macie pode ajudar a identificar dados sensíveis em suas bases de conhecimento, armazenados como fontes de dados, logs de invocação de modelos e armazenamentos de prompts em buckets do Amazon Simple Storage Service (Amazon S3). Para obter mais informações, consulte a [documentação do Macie](https://docs.aws.amazon.com/macie/latest/user/data-classification.html).

## Pré-requisitos e limitações
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-prereqs"></a>

**Pré-requisitos **
+ Ferramenta de gerenciamento de projetos para rastrear tarefas de migração (por exemplo, Atlassian Jira ou Rally Software)
+ Ferramenta de migração para redefinir a hospedagem suas workloads na AWS (por exemplo, [Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html))

## Arquitetura
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-architecture"></a>

**Plataforma de origem  **
+ Pilha de origem on-premises (incluindo tecnologias, aplicativos, bancos de dados e infraestrutura)  

**Plataforma de destino**
+ Pilha de destinos da Nuvem AWS (incluindo tecnologias, aplicativos, bancos de dados e infraestrutura) 

**Arquitetura**

O diagrama a seguir ilustra a redefinição da hospedagem (descobrindo e migrando servidores de um ambiente de origem on-premises para a AWS) usando o Cloud Migration Factory e o AWS Application Migration Service.

![\[Redefinição da hospedagem de servidores na AWS usando o Cloud Migration Factory e o Application Migration Service\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/images/735ad65b-2646-4803-82c9-f7f93369b3a5.png)


## Ferramentas
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-tools"></a>
+ Você pode usar uma ferramenta de migração e gerenciamento de projetos de sua escolha.

## Épicos
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-epics"></a>

### Fase de planejamento
<a name="planning-phase"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpe a pendência de pré-descoberta. | Conduza a sessão de trabalho de limpeza da pendência de pré-descoberta com líderes de departamento e proprietários de aplicativos.  | Gerente de projetos, líder de scrum ágil | 
|  Conduza a sessão de trabalho de planejamento do sprint. | Como exercício de definição de escopo, distribua os aplicativos que você deseja migrar entre sprints e ondas. | Gerente de projetos, líder de scrum ágil | 

### Fase pré-descoberta
<a name="pre-discovery-phase"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Confirme o conhecimento do aplicativo. | Confirme e documente o proprietário do aplicativo e conhecimento dele sobre o aplicativo. Determine se há outra pessoa responsável para questões técnicas. | Especialista em migração (entrevistador) | 
| Determine os requisitos de conformidade do aplicativo. | Confirme com o proprietário do aplicativo que o aplicativo não precisa estar em conformidade com os requisitos do Padrão de segurança de dados do Setor de cartões de pagamento (PCI DSS), da Lei Sarbanes-Oxley (SOX), das informações de identificação pessoal (PII) ou de outros padrões. Se existirem requisitos de conformidade, as equipes devem concluir as verificações de conformidade nos servidores que serão migrados. | Especialista em migração (entrevistador) | 
| Confirme os requisitos da versão de produção.  | Confirme os requisitos para liberar o aplicativo migrado para produção (como data de lançamento e duração do tempo de inatividade) com o proprietário do aplicativo ou com o contato técnico. | Especialista em migração (entrevistador) | 
| Obtenha a lista de servidores. | Obtenha a lista de servidores associados ao aplicativo de destino. | Especialista em migração (entrevistador) | 
| Obtenha o diagrama lógico que mostra o estado atual. | Obtenha o diagrama do estado atual do aplicativo a partir do arquiteto corporativo ou do proprietário do aplicativo. | Especialista em migração (entrevistador) | 
| Crie um diagrama lógico que mostre o estado de destino. | Crie um diagrama lógico do aplicativo que mostre a arquitetura de destino na AWS. Esse diagrama deve ilustrar os servidores, a conectividade e os fatores de mapeamento. | Arquiteto corporativo, Proprietário da empresa | 
| Obtenha informações sobre o servidor. | Colete informações sobre os servidores associados ao aplicativo, incluindo detalhes de configuração. | Especialista em migração (entrevistador) | 
| Adicione informações do servidor ao modelo de descoberta. | Adicione informações detalhadas do servidor ao modelo de descoberta de aplicativos (consulte `mobilize-application-questionnaire.xlsx` no anexo para esse padrão). Esse modelo inclui todos os detalhes de segurança, infraestrutura, sistema operacional e rede relacionados ao aplicativo. | Especialista em migração (entrevistador) | 
| Publique o modelo de descoberta de aplicativos. | Compartilhe o modelo de descoberta do aplicativo com o proprietário do aplicativo e a equipe de migração para acesso e uso comuns. | Especialista em migração (entrevistador) | 

### Fase de descoberta
<a name="discovery-phase"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Confirme a lista de servidores. | Confirme a lista de servidores e a finalidade de cada servidor com o proprietário do aplicativo ou o líder técnico. | Especialista em migração | 
| Identifique e adicione grupos de servidores. | Identifique grupos de servidores, como servidores web ou servidores de aplicativos, e adicione essas informações ao modelo de descoberta de aplicativos. Selecione a camada do aplicativo (web, aplicativo, banco de dados) à qual cada servidor deve pertencer. | Especialista em migração | 
| Preencha o modelo de descoberta do aplicativo. | Preencha os detalhes do modelo de descoberta de aplicativos com a ajuda da equipe de migração, da equipe de aplicativos e da AWS. | Especialista em migração | 
| Adicione detalhes ausentes do servidor (equipes de middleware e SO). | Peça às equipes de middleware e sistema operacional (SO) que analisem o modelo de descoberta de aplicativos e adicionem todos os detalhes ausentes do servidor, incluindo informações do banco de dados. | Especialista em migração | 
| Obtenha regras inbound/outbound de trânsito (equipe de rede). | Peça à equipe de rede que obtenha as regras de inbound/outbound tráfego para os servidores de origem e destino. A equipe de rede também deve adicionar regras de firewall existentes, exportá-las para um formato de grupo de segurança e adicionar balanceadores de carga existentes ao modelo de descoberta de aplicativos. | Especialista em migração | 
| Identifique a marcação necessária. | Determine os requisitos de marcação para o aplicativo. | Especialista em migração | 
| Crie detalhes de solicitação de firewall. | Capture e filtre as regras de firewall necessárias para se comunicar com o aplicativo.  | Especialista em migração, arquiteto de soluções, líder de rede  | 
| Atualize o tipo de EC2 instância. | Atualize o tipo de instância do Amazon Elastic Compute Cloud (Amazon EC2) a ser usado no ambiente de destino, com base nos requisitos de infraestrutura e servidor.  | Especialista em migração, arquiteto de soluções, líder de rede | 
| Identifique o diagrama do estado atual. | Identifique ou crie o diagrama que mostra o estado atual do aplicativo. Esse diagrama será usado na solicitação de segurança da informação (InfoSec).  | Especialista em migração, arquiteto de soluções | 
| Finalize o diagrama de estados futuros. | Finalize o diagrama que mostra o estado futuro (destino) do aplicativo. Esse diagrama também será usado na InfoSec solicitação.   | Especialista em migração, arquiteto de soluções | 
| Crie solicitações de serviço de firewall ou grupo de segurança. | Crie solicitações de serviço de firewall ou grupo de segurança (para desenvolvimento/controle de qualidade, pré-produção e produção). Se você estiver usando o Cloud Migration Factory, inclua portas específicas de replicação, caso elas ainda não estejam abertas.  | Especialista em migração, arquiteto de soluções, líder de rede | 
| Analise as solicitações de firewall ou grupo de segurança (InfoSec equipe). | Nessa etapa, a InfoSec equipe analisa e aprova as solicitações do firewall ou do grupo de segurança que foram criadas na etapa anterior.  | InfoSec engenheiro, especialista em migração | 
| Implemente solicitações do grupo de segurança de firewall (equipe de rede). | Depois que a InfoSec equipe aprova as solicitações de firewall, a equipe de rede implementa as regras de inbound/outbound firewall necessárias.  | Especialista em migração, arquiteto de soluções, líder de rede | 

### Fase de compilação (repetição para ambientes de desenvolvimento/QA, pré-produção e produção)
<a name="build-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Importe os dados do aplicativo e do servidor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.html)Se você não estiver usando o Cloud Migration Factory, siga as instruções para configurar sua ferramenta de migração. | Especialista em migração, administrador em nuvem | 
| Verifique os pré-requisitos dos servidores de origem. | Conecte-se aos servidores de origem dentro do escopo para verificar os pré-requisitos, como porta TCP 1500, porta TCP 443, espaço livre do volume raiz, versão do .NET Framework e outros parâmetros. Eles são necessários para a replicação. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#prerequisites-2). | Especialista em migração, administrador em nuvem | 
| Crie uma solicitação de serviço para instalar agentes de replicação.  | Crie uma solicitação de serviço para instalar agentes de replicação nos servidores dentro do escopo para desenvolvimento/controle de qualidade, pré-produção ou produção. | Especialista em migração, administrador em nuvem | 
| Instale os agentes de replicação. | Instale os agentes de replicação nos servidores de origem dentro do escopo nas máquinas de desenvolvimento/controle de qualidade, pré-produção ou produção. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#install-the-replication-agents). | Especialista em migração, administrador em nuvem | 
| Envie os scripts de pós-inicialização. | O Application Migration Service oferece suporte a scripts de pós-inicialização para ajudar você a automatizar atividades a nível do sistema operacional, como instalar ou desinstalar software após a inicialização das instâncias de destino. Essa etapa envia os scripts de pós-inicialização para máquinas Windows ou Linux, dependendo dos servidores identificados para migração. Para obter instruções, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#push-the-post-launch-scripts). | Especialista em migração, administrador em nuvem | 
| Verifique o status da replicação | Confirme automaticamente o status da replicação dos servidores de origem dentro do escopo usando o script fornecido. O script se repete a cada cinco minutos até que o status de todos os servidores de origem em determinada onda mude para **Integridade**. Para obter instruções, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#verify-the-replication-status). | Especialista em migração, administrador em nuvem | 
| Crie o usuário administrador. | Talvez seja necessário um administrador local ou usuário sudo nas máquinas de origem para solucionar quaisquer problemas após a substituição da migração, indo dos servidores de origem dentro do escopo para a AWS. A equipe de migração usa esse usuário para fazer login no servidor de destino quando o servidor de autenticação (por exemplo, o servidor DC ou LDAP) não está acessível. Para obter instruções para esta etapa, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/step4.html#add-a-user-to-the-admin-group). | Especialista em migração, administrador em nuvem | 
| Valide o modelo de inicialização. | Valide os metadados do servidor para garantir que funcionem com êxito e não tenham dados inválidos. Essa etapa valida os metadados de teste e de substituição. Para obter instruções, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#validate-launch-template-1). | Especialista em migração, administrador em nuvem | 

### Fase de teste (repetição para ambientes de desenvolvimento/QA, pré-produção e produção)
<a name="test-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma solicitação de serviço. | Crie uma solicitação de serviço para que a equipe de infraestrutura e outras equipes realizem a substituição de aplicativos para instâncias de desenvolvimento/controle de qualidade, pré-produção ou produção.  | Especialista em migração, administrador em nuvem | 
| Defina um balanceador de carga (opcional). | Defina os balanceadores de carga necessários, como um [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) ou um [balanceador de carga F5](https://www.f5.com/resources/white-papers/load-balancing-101-nuts-and-bolts) com iRules. | Especialista em migração, administrador em nuvem | 
| Inicialize instâncias para testes. | Inicialize todas as máquinas de destino para uma determinada onda no Application Migration Service no modo de teste. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-testing). | Especialista em migração, administrador em nuvem | 
| Verifique o status da instância de destino. | Verifique o status da instância de destino verificando o processo de inicialização de todos os servidores de origem dentro do escopo na mesma onda. A inicialização das instâncias de destino pode levar até 30 minutos. Você pode verificar o status manualmente fazendo login no EC2 console da Amazon, pesquisando o nome do servidor de origem e revisando a coluna **Verificação de status**. O status **verificações 2/2 aprovadas** indicam que a instância está íntegra do ponto de vista da infraestrutura. | Especialista em migração, administrador em nuvem | 
| Modifique as entradas de DNS. | Modifique as entradas de Sistema de Nomes de Domínio (DNS) (Use `resolv.conf` ou `host.conf` para um ambiente Microsoft Windows.) Configure cada EC2 instância para apontar para o novo endereço IP desse host.Certifique-se de que não haja conflitos de DNS entre servidores on-premises e na Nuvem AWS. Essa etapa e as etapas a seguir são opcionais, dependendo do ambiente em que o servidor está hospedado. | Especialista em migração, administrador em nuvem | 
| Teste a conectividade com hosts de back-end a partir de EC2 instâncias. | Verifique os logins usando as credenciais de domínio dos servidores migrados. | Especialista em migração, administrador em nuvem | 
| Atualize o registro DNS A. | Atualize o registro DNS A de cada host para apontar para o novo endereço IP EC2 privado da Amazon. | Especialista em migração, administrador em nuvem | 
| Atualize o registro DNS CNAME. | Atualize o registro DNS CNAME para servidores virtuais IPs (nomes de balanceadores de carga) para apontar para o cluster para servidores web e de aplicativos. | Especialista em migração, administrador em nuvem | 
| Teste o aplicativo em ambientes aplicáveis. | Faça login na nova EC2 instância e teste o aplicativo nos ambientes de desenvolvimento/controle de qualidade, pré-produção e produção. | Especialista em migração, administrador em nuvem | 
| Marque como pronto para a substituição. | Quando o teste estiver concluído, altere o status do servidor de origem para indicar que ele está pronto para a substituição, para que os usuários possam inicializar uma instância de substituição. Para obter instruções, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#mark-as-ready-for-cutover). | Especialista em migração, administrador em nuvem | 

### Fase de substituição
<a name="cutover-phase"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um plano de implantação de produção. | Crie um plano de implantação de produção (incluindo um plano de retrocesso). | Especialista em migração, administrador em nuvem | 
| Notifique a equipe de operações sobre o tempo de inatividade. | Notifique a equipe de operações sobre a agenda de inatividade dos servidores. Algumas equipes podem exigir um tíquete de solicitação de mudança ou de solicitação de serviço (CR/SR) para essa notificação. | Especialista em migração, administrador em nuvem | 
| Replique as máquinas de produção. | Replique as máquinas de produção usando o Application Migration Service ou outra ferramenta de migração. | Especialista em migração, administrador em nuvem | 
| Desligue os servidores de origem dentro do escopo. | Depois de verificar o status de replicação dos servidores de origem, você pode desligar os servidores de origem para interromper as operações dos aplicativos de clientes para os servidores. Você pode desligar os servidores de origem na janela de substituição. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#shut-down-the-in-scope-source-servers). | Administrador de nuvem | 
| Inicialize instâncias para substituição. | Inicialize todas as máquinas de destino para uma determinada onda no Application Migration Service no modo de substituição. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-cutover). | Especialista em migração, administrador em nuvem | 
| Recupere a instância IPs de destino. | Recupere as quatro instâncias IPs de destino. Se a atualização do DNS for um processo manual em seu ambiente, você precisará obter os novos endereços IP para todas as instâncias de destino. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#retrieve-the-target-instance-ip). | Especialista em migração, administrador em nuvem | 
| Verifique as conexões do servidor de destino. | Depois de atualizar os registros DNS, conecte-se às instâncias de destino com o nome do host para verificar as conexões. Para obter mais informações, consulte [Guia de implementação do Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#verify-the-target-server-connections). | Especialista em migração, administrador em nuvem | 

## Recursos relacionados
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-resources"></a>
+ [Como migrar](https://aws.amazon.com/migrate-modernize-build/cloud-migration/how-to-migrate/)
+ [Guia de implementação do AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html)
+ [Automatizar migrações de servidores em grande escala com o Cloud Migration Factory](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-factory-cloudendure/welcome.html)
+ [Guia do usuário do serviço de migração de aplicativos da AWS](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Programa de Aceleração da Migração da AWS](https://aws.amazon.com/migration-acceleration-program/) 

## Anexos
<a name="attachments-8e2d2d72-30cc-4e98-8abd-ac2ef95e599b"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/attachments/attachment.zip)

# Configure a infraestrutura Multi-AZ para um SQL Server Always On FCI usando a Amazon FSx
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx"></a>

*Manish Garg, T.V.R.L.Phani Kumar Dadi, Nishad Mankar e Rajneesh Tyagi, Amazon Web Services*

## Resumo
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-summary"></a>

Se você precisar migrar rapidamente um grande número de instâncias de cluster de failover Always On do Microsoft SQL Server (FCIs), esse padrão pode ajudá-lo a minimizar o tempo de provisionamento. Ao usar a automação e o Amazon FSx for Windows File Server, ele reduz os esforços manuais, os erros cometidos pelo homem e o tempo necessário para implantar um grande número de clusters.

Esse padrão configura a infraestrutura do SQL Server FCIs em uma implantação de Zona de Multidisponibilidade (Multi-AZ) na Amazon Web Services (AWS). O provisionamento dos serviços da AWS necessários para essa infraestrutura é automatizado usando modelos da [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html). A instalação do SQL Server e a criação de nós de cluster em uma instância do [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) são realizadas usando PowerShell comandos.

Essa solução usa um sistema de arquivos [Amazon FSx para Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) Multi-AZ altamente disponível como testemunha compartilhada para armazenar os arquivos do banco de dados do SQL Server. O sistema de FSx arquivos da Amazon e as instâncias EC2 do Windows que hospedam o SQL Server são unidos ao mesmo domínio do AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD).

## Pré-requisitos e limitações
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um usuário da AWS com permissões suficientes para provisionar recursos usando CloudFormation modelos da AWS
+ AWS Directory Service para Microsoft Active Directory
+ Credenciais no AWS Secrets Manager para autenticação no AWS Managed Microsoft AD em um par de valores-chave:
  + `ADDomainName`: <Nome do domínio>
  + `ADDomainJoinUserName`: <Nome de usuário do domínio>
  + `ADDomainJoinPassword`: <Senha do usuário do domínio>
  + `TargetOU`: <Valor OU Alvo>
**nota**  
Você usará o mesmo nome de chave no AWS Systems Manager Automation para a atividade de junção no AWS Managed Microsoft AD.
+ Arquivos de mídia do SQL Server para instalação do SQL Server e contas de serviço ou domínio do Windows criadas, que serão usados durante a criação do cluster
+ Uma nuvem privada virtual (VPC), com duas sub-redes públicas em zonas de disponibilidade separadas, duas sub-redes privadas nas zonas de disponibilidade, um gateway da internet, gateways NAT, associações de tabelas de rotas e um servidor de salto

**Versões do produto**
+ Windows Server 2012 R2 e Microsoft SQL Server 2016

## Arquitetura
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-architecture"></a>

**Pilha de tecnologia de origem**
+ SQL Server local com o FCIs uso de um drive compartilhado

**Pilha de tecnologias de destino**
+  EC2 Instâncias da AWS
+ Servidor FSx de arquivos Amazon para Windows
+ Runbook do AWS Systems Manager Automation
+ Configurações de rede (VPC, sub-redes, gateway da internet, gateways NAT, servidor de salto, grupos de segurança)
+ AWS Secrets Manager
+ AWS Managed Microsoft AD
+ Amazon EventBridge
+ AWS Identity and Access Management (IAM)

**Arquitetura de destino**

O diagrama a seguir mostra uma conta da AWS em uma única região da AWS, com uma VPC que inclui duas zonas de disponibilidade, duas sub-redes públicas com gateways NAT, um servidor de salto na primeira sub-rede pública, duas sub-redes privadas, cada uma com uma EC2 instância para um nó do SQL Server em um grupo de segurança de nós e um sistema de FSx arquivos da Amazon conectado a cada um dos nós do SQL Server. AWS Directory Service, Amazon EventBridge, AWS Secrets Manager e AWS Systems Manager também estão incluídos.

![\[Arquitetura multi-AZ com recursos em sub-redes públicas e privadas, utilizando grupos de segurança de nós.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f09c0164-be2d-4665-a574-7ec29fd25082/images/543829a9-e130-4542-9c4e-7518c6cbe967.png)


**Automação e escala**
+ Você pode usar o AWS Systems Manager para se juntar ao AWS Managed Microsoft AD e realizar a instalação do SQL Server.

## Ferramentas
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-tools"></a>

**Serviços da AWS**
+  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 [AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) fornece várias maneiras de usar o Microsoft Active Directory (AD) com outros serviços da AWS, como Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) para SQL Server e FSx Amazon para Windows File Server.
+ [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.
+  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. Por exemplo, funções do Lambda, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras contas da AWS.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente.
+ O [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ajuda você a gerenciar seus aplicativos e infraestrutura em execução na nuvem AWS. Isso simplifica o gerenciamento de aplicações e recursos, diminui o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus recursos da AWS de modo seguro e em grande escala.

**Outras ferramentas**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)é um programa de gerenciamento de automação e configuração da Microsoft executado em Windows, Linux e macOS. Esse padrão usa PowerShell scripts.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [aws-windows-failover-cluster-automation](https://github.com/aws-samples/aws-windows-failover-cluster-automation).

## Práticas recomendadas
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-best-practices"></a>
+ Os perfis do IAM usados para implantar essa solução devem seguir o princípio do privilégio mínimo. Para ter mais informações, consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Siga as [ CloudFormation melhores práticas da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html).

## Épicos
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-epics"></a>

### Implante a infraestrutura
<a name="deploy-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante a CloudFormation pilha do Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps engenheiro | 
| Implante a pilha de infraestrutura. | Após a implantação bem-sucedida da pilha do Systems Manager, crie a `infra` pilha, que inclui nós de EC2 instância, grupos de segurança, o sistema de arquivos Amazon FSx for Windows File Server e a função do IAM.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps engenheiro | 

### Configurar o Windows SQL Server Always On FCI
<a name="set-up-the-windows-sql-server-always-on-fci"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale as ferramentas do Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps engenheiro, DBA | 
| Pré-configure os objetos do computador do cluster nos serviços de domínio do Active Directory. | Para pré-configurar o objeto de nome de cluster (CNO) nos serviços de domínio do Active Directory (AD DS) e pré-configurar um objeto de computador virtual (VCO) para um perfil em cluster, siga as instruções na [documentação do Windows Server](https://learn.microsoft.com/en-us/windows-server/failover-clustering/prestage-cluster-adds). | AWS DevOps, DBA, engenheiro DevOps  | 
| Crie o WSFC. | Para criar o cluster do Windows Server Failover Clustering (WSFC), faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DBA, engenheiro DevOps  | 
| Instale o cluster de failover do SQL Server. | Depois que o cluster do WSFC estiver configurado, instale o cluster do SQL Server na instância primária (node1).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)<pre>D:\setup.exe /Q  `<br />/ACTION=InstallFailoverCluster `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/FEATURES="SQL,IS,BC,Conn"  `<br />/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"  `<br />/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"  `<br />/RSINSTALLMODE="FilesOnlyMode"  `<br />/INSTANCEID="MSSQLSERVER" `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)"  `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node1>;Cluster Network 1;<subnet mask>"  `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>"  `<br />/INSTANCEDIR="C:\Program Files\Microsoft SQL Server"  `<br />/ENU="True"  `<br />/ERRORREPORTING=0  `<br />/SQMREPORTING=0  `<br />/SAPWD="<Domain User password>" `<br />/SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"  `<br />/SQLSYSADMINACCOUNTS="<domain\username>" `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="<domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/ISSVCACCOUNT="<domain\username>" /ISSVCPASSWORD="<Domain User password>"  `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher"  `<br />/INSTALLSQLDATADIR="\\<FSX DNS name>\share\Program Files\Microsoft SQL Server"  `<br />/SQLUSERDBDIR="\\<FSX DNS name>\share\data"  `<br />/SQLUSERDBLOGDIR="\\<FSX DNS name>\share\log" `<br />/SQLTEMPDBDIR="T:\tempdb"  `<br />/SQLTEMPDBLOGDIR="T:\log"  `<br />/SQLBACKUPDIR="\\<FSX DNS name>\share\SQLBackup" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, engenheiro DevOps  | 
| Adicione um nó secundário ao cluster. | Para adicionar o SQL Server ao nó secundário (nó 2), execute o PowerShell comando a seguir.<pre>D:\setup.exe /Q  `<br />/ACTION=AddNode `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)" `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node2>;Cluster Network 2;<subnet mask>" `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>" `<br />/CONFIRMIPDEPENDENCYCHANGE=1 `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, engenheiro DevOps  | 
| Teste a FCI do SQL Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | DBA, engenheiro DevOps  | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpar os recursos | Para limpar os recursos, use o processo de exclusão de CloudFormation pilhas da AWS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)Após a conclusão da exclusão da pilha, as pilhas estarão no estado `DELETE_COMPLETE`. As pilhas no `DELETE_COMPLETE` estado não são exibidas no CloudFormation console por padrão. Para exibir as pilhas excluídas, você deve alterar o filtro de visualização da pilha conforme descrito em [Visualização das pilhas excluídas no console da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-deleted-stacks.html). CloudFormation Se houver falha na exclusão, uma pilha estará no estado `DELETE_FAILED`. Para obter soluções, consulte Falhas na [exclusão da pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) na CloudFormation documentação. | AWS DevOps, DBA, engenheiro DevOps  | 

## Solução de problemas
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Falha no CloudFormation modelo da AWS | Se o CloudFormation modelo falhar durante a implantação, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 
| Falha na junção do AWS Managed Microsoft AD | Para solucionar os problemas de junção, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 

## Recursos relacionados
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-resources"></a>
+ [Simplifique suas implantações de alta disponibilidade do Microsoft SQL Server usando o Amazon FSx para Windows File Server](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/)
+ [Usando FSx o Windows File Server com o Microsoft SQL Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html)

# Use as consultas do BMC Discovery para extrair dados de migração para o planejamento da migração
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning"></a>

*Ben Tailor-Hamblin, Emma Baldry, Simon Cunningham e Shabnam Khan, Amazon Web Services*

## Resumo
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-summary"></a>

Este guia fornece exemplos de consultas e etapas para ajudá-lo a extrair dados de sua infraestrutura e aplicativos on-premises usando o BMC Discovery. O padrão mostra como usar as consultas do BMC Discovery para escanear sua infraestrutura e extrair informações de software, serviços e dependências. Os dados extraídos são necessários para as fases avaliar e mobilizar de uma migração em grande escala para a nuvem da Amazon Web Services (AWS). Você poderá usar esses dados para tomar decisões críticas sobre quais aplicativos migrar juntos como parte do seu plano de migração.

## Pré-requisitos e limitações
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-prereqs"></a>

**Pré-requisitos **
+ Uma licença para o BMC Discovery (antigo BMC ADDM) ou a versão de software como serviço (SaaS) do BMC Helix Discovery
+ Versão on-premises ou de SaaS do BMC Discovery, [instalada](https://docs.bmc.com/docs/discovery/221/installing-1050933835.html) 
**nota**  
Para versões on-premises do BMC Discovery, é necessário instalar a aplicação em uma rede do cliente com acesso a todos os dispositivos de rede e servidores que estão no escopo de uma migração entre vários data centers. O acesso à rede do cliente deve ser concedido conforme as instruções de instalação da aplicação. Se for necessário realizar a verificação das informações do Windows Server, você deve configurar um dispositivo de gerenciamento de proxy do Windows na rede.
+ [Acesso à rede](https://docs.bmc.com/docs/discovery/221/network-ports-used-for-discovery-communications-1050933821.html) para permitir que o aplicativo escaneie dispositivos em datacenters, se você estiver usando o BMC Helix Discovery

**Versões do produto**
+ BMC Discovery 22.2 (12.5)
+ BMC Discovery 22.1 (12.4)
+ BMC Discovery 21.3 (12.3)
+ BMC Discovery 21.05 (12.2)
+ BMC Discovery 20.08 (12.1)
+ BMC Discovery 20.02 (12.0)
+ BMC Discovery 11.3
+ BMC Discovery 11.2
+ BMC Discovery 11.1
+ BMC Discovery 11.0
+ BMC Atrium Discovery 10.2
+ BMC Atrium Discovery 10.1
+ BMC Atrium Discovery 10.0

## Arquitetura
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-architecture"></a>

O diagrama a seguir mostra como os gerentes de ativos poderão usar as consultas do BMC Discovery para escanear aplicativos modelados pelo BMC em ambientes SaaS e on-premises.

![\[Arquitetura que usa o BMC Discovery para extrair informações de software, serviços e dependências.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5e549882-8deb-4459-8891-e39bbf80e320/images/0ebb3e68-5828-45aa-86f4-c741c7b6cd94.jpeg)


O diagrama mostra o seguinte fluxo de trabalho: um gerenciador de ativos usa o BMC Discovery ou o BMC Helix Discovery para verificar instâncias de banco de dados e software em execução em servidores virtuais hospedados em vários servidores físicos. A ferramenta poderá modelar aplicativos com componentes que abrangem vários servidores virtuais e físicos.

**Pilha de tecnologia**
+ BMC Discovery
+ BMC Helix Discovery

## Ferramentas
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-tools"></a>
+ O [BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) é uma ferramenta de descoberta de datacenter que ajuda você a descobrir automaticamente seu datacenter.
+ O [BMC Helix Discovery](https://www.bmc.com/it-solutions/bmc-helix-discovery.html) é um sistema de modelagem de dependências e descoberta baseado em SaaS que ajuda você a modelar dinamicamente seus ativos de dados e suas dependências.

## Práticas recomendadas
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-best-practices"></a>

É uma prática recomendada para mapear dados de aplicativos, dependências e infraestrutura ao migrar para a nuvem. O mapeamento ajuda a entender a complexidade do ambiente atual e as dependências entre vários componentes.

As informações sobre ativos que essas consultas fornecem são importantes por vários motivos:

1. **Planejamento**: compreender as dependências entre os componentes ajuda a planejar o processo de migração com mais eficácia. Por exemplo, talvez seja necessário migrar alguns componentes primeiro para garantir que outros possam ser migrados com êxito.

1. **Avaliação de riscos**: o mapeamento das dependências entre os componentes poderá ajudá-lo a identificar possíveis riscos ou problemas que possam surgir durante o processo de migração. Por exemplo, você poderá descobrir que certos componentes dependem de tecnologias desatualizadas ou sem suporte que poderão causar problemas na nuvem.

1. **Arquitetura de nuvem**: mapear seus dados de aplicativo e infraestrutura também poderá ajudá-lo a projetar uma arquitetura de nuvem adequada que atenda às suas necessidades organizacionais. Por exemplo, talvez seja necessário projetar uma arquitetura de várias camadas para oferecer suporte aos requisitos de alta disponibilidade ou escalabilidade.

No geral, mapear dados de aplicativos, dependências e infraestrutura é uma etapa crucial no processo de migração para a nuvem. O exercício de mapeamento poderá ajudá-lo a entender melhor seu ambiente atual, identificar possíveis problemas ou riscos e projetar uma arquitetura de nuvem adequada.

## Épicos
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-epics"></a>

### Identificar e avaliar as ferramentas de descoberta
<a name="identify-and-evaluate-discovery-tooling"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique os proprietários do ITSM. | Identifique os proprietários do Gerenciamento de Serviços de TI (ITSM) (geralmente, entrando em contato com as equipes de suporte operacional). | Líder de migração | 
| Verificar o CMDB.  | Identifique o número de bancos de dados de gerenciamento de configuração (CMDBs) que contêm informações sobre ativos e, em seguida, identifique as fontes dessas informações. | Líder de migração | 
| Identifique as ferramentas de descoberta e verifique o uso do BMC Discovery. | Se sua organização estiver usando o BMC Discovery para enviar dados sobre seu ambiente para a ferramenta CMDB, verifique o escopo e a cobertura de seus escaneamentos. Por exemplo, verifique se o BMC Discovery está examinando todos os data centers e se os servidores de acesso estão localizados em zonas perimetrais. | Líder de migração | 
| Verifique o nível de modelagem do aplicativo. | Verifique se os aplicativos foram modelados no BMC Discovery. Caso contrário, recomende o uso da ferramenta BMC Discovery para modelar quais instâncias de software em execução fornecem um aplicativo e um serviço comercial. | Engenheiro de migração, líder de migração | 

### Extrair dados da infraestrutura
<a name="extract-infrastructure-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Extraia dados em servidores físicos e virtuais. | Para extrair dados nos servidores físicos e virtuais examinados pelo BMC Discovery, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search Host show key as 'Serverid', virtual, name as 'HOSTNAME', os_type as 'osName', os_version as 'OS Version', num_logical_processors as 'Logical Processor Counts', cores_per_processor as 'Cores per Processor', logical_ram as 'Logical RAM', #Consumer:StorageUse:Provider:DiskDrive.size as 'Size'</pre>É possível usar os dados extraídos para determinar os tamanhos de instância mais adequados para a migração. | Engenheiro de migração, líder de migração | 
| Extraia dados em aplicativos modelados. | Se seus aplicativos forem modelados no BMC Discovery, você poderá extrair dados sobre os servidores que executam o software do aplicativo. Para obter os nomes dos servidores, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search SoftwareInstance show key as 'ApplicationID', #RunningSoftware:HostedSoftware:Host:Host.key as 'ReferenceID', type, name</pre>As aplicações são modeladas no BMC Discovery por meio de uma coleção de instâncias de software em execução. O aplicativo depende de todos os servidores que executam o software do aplicativo. | Proprietário do aplicativo BMC Discovery | 
| Extraia dados em bancos de dados. | Para obter uma lista de todos os bancos de dados escaneados e dos servidores em que esses bancos de dados estão sendo executados, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search Database show key as 'Key', name, type as 'Source Engine Type', #Detail:Detail:ElementWithDetail:SoftwareInstance.name as 'Software Instance', #Detail:Detail:ElementWithDetail:SoftwareInstance.product_version as 'Product Version', #Detail:Detail:ElementWithDetail:SoftwareInstance.edition as 'Edition', #Detail:Detail:ElementWithDetail:SoftwareInstance.#RunningSoftware:HostedSoftware:Host:Host.key as 'ServerID'</pre> | Proprietário do App | 
| Extraia dados na comunicação com o servidor. | Para obter informações sobre todas as comunicações de rede entre servidores coletadas pelo BMC Discovery a partir de registros históricos de comunicações de rede, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search Host<br /> TRAVERSE InferredElement:Inference:Associate:DiscoveryAccess<br /> TRAVERSE DiscoveryAccess:DiscoveryAccessResult:DiscoveryResult:NetworkConnectionList<br /> TRAVERSE List:List:Member:DiscoveredNetworkConnection<br /> PROCESS WITH networkConnectionInfo</pre> | Proprietário do aplicativo BMC Discovery | 
| Extraia dados sobre a descoberta de aplicativos. | Para obter informações sobre dependências do aplicativo, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search SoftwareInstance show key as 'SRC App ID', #Dependant:Dependency:DependedUpon:SoftwareInstance.key as 'DEST App ID'</pre> | Proprietário do aplicativo BMC Discovery | 
| Extraia dados sobre serviços comerciais. | Para extrair dados sobre serviços comerciais fornecidos por hosts, use o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) para executar a seguinte consulta:<pre>search Host show name, #Host:HostedSoftware:AggregateSoftware:BusinessService.name as 'Name'</pre> | Proprietário do aplicativo BMC Discovery | 

## Solução de problemas
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| A consulta falha ao ser executada ou contém colunas não preenchidas. | Analise os registros de ativos no BMC Discovery e determine quais campos você precisa. Em seguida, substitua esses campos na consulta usando o [Criador de consultas](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html). | 
| Os detalhes de um ativo dependente não serão preenchidos. | Isso provavelmente se deve às permissões de acesso ou à conectividade de rede. A ferramenta de descoberta poderá não ter as permissões necessárias para acessar determinados ativos, especialmente se eles estiverem em redes ou ambientes diferentes.Recomendamos que você trabalhe em estreita colaboração com especialistas no assunto de descoberta para garantir que todos os ativos pertinentes sejam identificados. | 

## Recursos relacionados
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-resources"></a>

**Referências**
+ [Direito ao licenciamento BMC Discovery](https://docs.bmc.com/docs/discovery/bmc-discovery-licensing-entitlement-531336348.html) (Documentação da BMC)
+ [Recursos e componentes do BMC Discovery](https://docs.bmc.com/docs/discovery/221/bmc-discovery-features-and-components-1052418000.html) (Documentação do BMC)
+ [Guia do usuário do BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) (Documentação da BMC)
+ [Pesquisando dados (no BMC Discovery)](https://docs.bmc.com/docs/discovery/120/searching-for-data-911457232.html) (Documentação da BMC)
+ [Descoberta e análise de portfólio para migração](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-portfolio-discovery/welcome.html) (Recomendações da AWS)

**Tutoriais e vídeos**
+ [BMC Discovery: Webinar - Melhores práticas de consulta de relatórios (Parte 1) ()](https://www.youtube.com/watch?v=iwXy6x40kO8) YouTube

# Realocar
<a name="migration-relocate-pattern-list"></a>

**Topics**
+ [Migre um banco de dados Amazon RDS for Oracle para Conta da AWS outro Região da AWS e AWS DMS use-o para replicação contínua](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Migrar uma instância do banco de dados Amazon RDS para outra VPC ou outra conta](migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.md)
+ [Migre um cluster do Amazon Redshift para uma região da AWS na China](migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china.md)
+ [Transporte bancos de dados PostgreSQL entre duas instâncias de banco de dados Amazon RDS usando pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)

# Migre um banco de dados Amazon RDS for Oracle para Conta da AWS outro Região da AWS e AWS DMS use-o para replicação contínua
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication"></a>

*Durga Prasad Cheepuri e Eduardo Valentim, Amazon Web Services*

## Resumo
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-summary"></a>


| 
| 
| Avsio: os usuários do IAM têm credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários. | 
| --- |

Esse padrão orienta você pelas etapas de migração de um banco de dados de origem do Amazon Relational Database Service (Amazon RDS) para Oracle para um banco de dados de origem diferente e. Conta da AWS Região da AWS O padrão usa um DB snapshot para uma única carga de dados completa e habilita AWS Database Migration Service (AWS DMS) para replicação contínua.

## Pré-requisitos e limitações
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS que contém o banco de dados Amazon RDS for Oracle de origem, que foi criptografado usando uma chave AWS Key Management Service não padrão AWS KMS()
+ Um ativo Conta da AWS em um banco de dados Região da AWS diferente do de origem, para usar no banco de dados Amazon RDS for Oracle de destino
+ Emparelhamento de nuvem privada virtual (VPC) entre a origem e o destino VPCs
+ Familiaridade com [o uso de um banco de dados Oracle como fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) para AWS DMS
+ Familiaridade com [o uso de um banco de dados Oracle como alvo](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) para AWS DMS 

**Versões do produto**
+ Oracle para as versões 11g (versões 11.2.0.3.v1 e posteriores) até 12.2 e 18c. Para obter a lista mais recente de versões e edições suportadas, consulte [Usando um banco de dados Oracle como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e com [o uso de um banco de dados Oracle como destino AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) na AWS documentação. Para versões do Oracle compatíveis com o Amazon RDS, consulte [Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html). 

## Arquitetura
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-architecture"></a>

**Pilhas de tecnologia de origem e de destino**
+ Instância do banco de dados Amazon RDS para Oracle

![\[Conta da AWS de origem conectando-se à conta da AWS de destino, que contém as regiões de origem e de destino.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/e17fa7fe-d924-4f35-9707-b93572fa1227.png)


**Arquitetura de replicação contínua**

![\[Banco de dados em uma EC2 instância conectada por meio de emparelhamento VPC a uma instância de replicação e ao Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/b60b3500-5d29-487a-bbab-0ae9f3f386aa.png)


## Ferramentas
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-tools"></a>

**Ferramentas usadas para carregamento completo de dados de uma só vez**
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) cria um snapshot do volume de armazenamento da instância de banco de dados, fazendo backup de toda a instância e não apenas de bancos de dados individuais. Ao criar um snapshot de banco de dados, você precisa identificar de qual instância de banco de dados deseja fazer backup e, em seguida, dar um nome para a sua instância de banco de dados para que você possa restaurar a partir dela depois. O tempo necessário para criar um snapshot varia com o tamanho dos bancos de dados. Como o snapshot inclui todo o volume de armazenamento, o tamanho de arquivos, como arquivos temporários, também afeta o tempo necessário para criar o snapshot. Para obter mais informações para usar snapshots de banco de dados, consulte [Criar um snapshot do banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) na documentação do Amazon RDS. 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) cria uma**** chave para a**** criptografia**** do Amazon RDS. Ao criar uma instância de banco de dados criptografada, você também pode fornecer o [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)identificador da chave de criptografia. Se você não especificar um identificador de chave do [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html), o Amazon RDS usará a chave de criptografia padrão para sua nova instância de banco de dados. O [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) cria a chave de criptografia padrão para sua Conta da AWS. Conta da AWS A sua tem uma chave de criptografia padrão diferente para cada uma Região da AWS. Para este padrão, a instância de banco de dados do Amazon RDS deve ser criptografada usando uma chave do [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) que não seja a chave padrão. Para obter mais informações sobre o uso de chaves do [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) para criptografia do Amazon RDS, consulte [Criptografar recursos do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) na documentação do Amazon RDS.

**Ferramentas usadas para replicação contínua**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) é usado para replicar mudanças contínuas e manter os bancos de dados de origem e destino sincronizados. Para obter mais informações sobre o uso AWS DMS para replicação contínua, consulte Como [trabalhar com uma instância de AWS DMS replicação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) na AWS DMS documentação. 

## Épicos
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-epics"></a>

### Configure sua fonte Conta da AWS
<a name="configure-your-source-aws-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar a instância de origem do banco de dados Oracle. | Deixe a instância do banco de dados Amazon RDS para Oracle ser executada no modo ARCHIVELOG e defina o período de retenção. Para obter detalhes, consulte [Trabalhando com um banco de dados Oracle AWS gerenciado como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed). | DBA | 
| Defina o log complementar para a instância do banco de dados Oracle de origem. | Configure o registro em log complementar em nível de banco de dados e em nível de tabela para a instância Amazon RDS para Oracle. Para obter detalhes, consulte [Trabalhando com um banco de dados Oracle AWS gerenciado como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed). | DBA | 
| Atualize a política de AWS KMS chaves na conta de origem. | Atualize a política de AWS KMS chaves na origem Conta da AWS para permitir que o destino use Conta da AWS a AWS KMS chave criptografada do Amazon RDS. Para obter detalhes, consulte a [documentação do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts). | SysAdmin | 
| Crie um snapshot manual do banco de dados do Amazon RDS da instância do banco de dados de origem. |  | Usuário do IAM AWS | 
| Compartilhe o snapshot manual criptografado do Amazon RDS com a Conta da AWS de destino. | Para obter detalhes, consulte [Compartilhar um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html). | Usuário do IAM AWS | 

### Configure seu alvo Conta da AWS
<a name="configure-your-target-aws-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Associar política. | No destino Conta da AWS, anexe uma política AWS Identity and Access Management (IAM) ao usuário raiz do IAM, para permitir que o usuário do IAM copie um DB snapshot criptografado usando a AWS KMS chave compartilhada. | SysAdmin | 
| Altere para a Região da AWS de origem. |  | Usuário do IAM AWS | 
| Copie o snapshot compartilhado. | No console do Amazon RDS, no painel **Snapshots**, escolha **Compartilhados comigo** e selecione o snapshot compartilhado. Copie o snapshot para o Região da AWS mesmo banco de dados de origem usando o Amazon Resource Name (ARN) para AWS KMS a chave usada pelo banco de dados de origem. Para obter detalhes, consulte [Copiar um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html). | Usuário do IAM AWS | 
| Mude para o destino Região da AWS e crie uma nova AWS KMS chave. |  | Usuário do IAM AWS | 
| Copie o snapshot. | Altere para a Região da AWS de origem. No console do Amazon RDS, no painel **Snapshots**, escolha **De minha propriedade** e selecione o snapshot copiado. Copie o instantâneo para o destino Região da AWS usando a AWS KMS chave para o novo destino Região da AWS. | Usuário do IAM AWS | 
| Restaure o snapshot. | Mude para o alvo Região da AWS. No console do Amazon RDS, no painel **Snapshots**, escolha **De minha propriedade**. Selecione o snapshot copiado e restaure-o para uma instância do banco de dados Amazon RDS para Oracle. Para obter detalhes, consulte [Restauração a partir de um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Usuário do IAM AWS | 

### Prepare seu banco de dados de origem para replicação contínua
<a name="prepare-your-source-database-for-ongoing-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um usuário da Oracle com as permissões apropriadas. | Crie um usuário da Oracle com as permissões necessárias para usar a Oracle como origem para o AWS DMS. Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | DBA | 
| Configure o banco de dados de origem para Oracle LogMiner ou Oracle Binary Reader. |  | DBA | 

### Prepare seu banco de dados de origem para replicação contínua
<a name="prepare-your-target-database-for-ongoing-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um usuário da Oracle com as permissões apropriadas. | Crie um usuário da Oracle com as permissões necessárias para usar a Oracle como destino para o AWS DMS. Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.Privileges). | DBA | 

### Crie AWS DMS componentes
<a name="create-dms-components"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação no destino. Região da AWS | Crie uma instância de replicação na VPC do destino. Região da AWS Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance). | Usuário do IAM AWS | 
| Crie endpoints de origem e destino com as conexões necessárias de criptografia e teste. | Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints). | DBA | 
| Criar tarefas de replicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.html)Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks). | IAM user (Usuário do IAM) | 
| Inicie e monitore as tarefas. | Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Usuário do IAM AWS | 
| Habilite a validação da tarefa, se necessário. | Observe que habilitar a validação tem um impacto no desempenho da replicação. Para obter detalhes, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Usuário do IAM AWS | 

## Recursos relacionados
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-resources"></a>
+ [Alterando uma política fundamental](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)
+ [Criação de um snapshot manual de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)
+ [Criação de um snapshot manual de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)
+ [Copiar um snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) 
+ [Restaurar um snapshot de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) 
+ [Começando com AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) 
+ [Usando um banco de dados Oracle como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) 
+ [Usando um banco de dados Oracle como alvo para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 
+ [AWS DMS configuração usando emparelhamento de VPC](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer) 
+ [Como compartilho snapshots manuais de banco de dados do Amazon RDS ou snapshots de cluster de banco de dados do Aurora com outra Conta da AWS?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Artigo do Centro de Conhecimentos da AWS) 

# Migrar uma instância do banco de dados Amazon RDS para outra VPC ou outra conta
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account"></a>

*Dhrubajyoti Mukherjee, Amazon Web Services*

## Resumo
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-summary"></a>

Este padrão fornece orientação sobre como migrar uma instância do banco de dados Amazon Relational Database Service (Amazon RDS) de uma nuvem privada virtual (VPC) para outra na mesma conta da AWS ou de uma conta da AWS para outra conta da AWS.

Esse padrão é útil se você quiser migrar suas instâncias de banco de dados do Amazon RDS para outra VPC ou conta por motivos de separação ou segurança (por exemplo, quando quiser colocar a pilha de aplicativos e o banco de dados em lugares diferentes). VPCs 

A migração de uma instância de banco de dados para outra conta da AWS envolve etapas como obter um snapshot manual, compartilhá-lo e restaurá-lo na conta de destino. Esse processo pode ser demorado, dependendo das alterações do banco de dados e das taxas de transação. Também acarreta tempo de inatividade do banco de dados, portanto, planeje a migração com antecedência. Considere uma estratégia de blue/green implantação para minimizar o tempo de inatividade. Como alternativa, você pode avaliar o AWS Data Migration Service (AWS DMS) para minimizar o tempo de inatividade devido à alteração. No entanto, esse padrão não cobre essa opção. Para saber mais, consulte a [documentação do AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

## Pré-requisitos e limitações
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Permissões do AWS Identity and Access Management (IAM) necessárias para VPC, sub-redes e console do Amazon RDS

**Limitações**
+ Alterações em uma VPC acarretam a reinicialização do banco de dados, resultando em interrupções no aplicativo. Recomendamos migrar em horários fora de pico.
+ Limitações ao migrar o Amazon RDS para outra VPC:
  + A instância de banco de dados que você está migrando deve ser uma única instância sem espera. Ela não deve ser membro de um cluster.
  + O Amazon RDS não deve estar em diversas zonas de disponibilidade.
  + O Amazon RDS não deve ter nenhuma réplica de leitura.
  + O grupo de sub-redes criado na VPC de destino deve ter sub-redes da zona de disponibilidade em que o banco de dados de origem está sendo executado.
+ Limitações ao migrar o Amazon RDS para outra conta da AWS:
  + Atualmente, não há compatibilidade para o compartilhamento de snapshots criptografados com a chave de serviço padrão do Amazon RDS.

## Arquitetura
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-architecture"></a>

**Migração para uma VPC na mesma conta da AWS**

O diagrama a seguir mostra o fluxo de trabalho para migrar uma instância do banco de dados Amazon RDS para uma VPC diferente na mesma conta da AWS.

![\[Fluxo de trabalho para migrar uma instância do banco de dados Amazon RDS para uma VPC diferente na mesma conta da AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/73e16544-6276-4f03-9ae2-42b8c7c20315.png)


Consiste das etapas a seguir. Para obter instruções detalhadas, consulte a seção [Tópicos](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics).

1. Crie um grupo de sub-redes de banco de dados na VPC de destino. Um grupo de sub-redes de banco de dados é uma coleção de sub-redes que você pode usar para especificar uma VPC específica ao criar instâncias de banco de dados.

1. Configure a instância do banco de dados Amazon RDS na VPC de origem para usar o novo grupo de sub-redes de banco de dados.

1. Aplique as alterações para migrar o banco de dados do Amazon RDS para a VPC de destino.

**Migrar para uma conta da AWS diferente**

O diagrama a seguir mostra o fluxo de trabalho para migrar uma instância do banco de dados Amazon RDS para uma conta diferente da AWS.

![\[Fluxo de trabalho para migrar uma instância do banco de dados Amazon RDS para uma conta diferente da AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/5536e69e-3965-4ca2-8a0b-2573659b5f8f.png)


Consiste das etapas a seguir. Para obter instruções detalhadas, consulte a seção [Tópicos](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics).

1. Acesse a instância do banco de dados Amazon RDS na conta de origem da AWS.

1. Crie um snapshot do Amazon RDS na conta de origem da AWS.

1. Compartilhe o snapshot do Amazon RDS com a conta de destino da AWS.

1. Acesse o snapshot do Amazon RDS n conta de destino da AWS.

1. Crie uma instância do banco de dados do Amazon RDS na conta de destino da AWS.

## Ferramentas
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-tools"></a>

**Serviços da 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.
+ 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.

## Práticas recomendadas
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-best-practices"></a>
+ Se o tempo de inatividade do banco de dados for uma preocupação ao migrar uma instância do banco de dados Amazon RDS para outra conta, recomendamos que você use o [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html). Esse serviço fornece replicação de dados, o que acarreta menos de cinco minutos de interrupção.

## Épicos
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics"></a>

### Migrar para uma VPC diferente na mesma conta da AWS
<a name="migrate-to-a-different-vpc-in-the-same-aws-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nova VPC. | No [console da Amazon VPC](https://console.aws.amazon.com/vpc/), crie uma nova VPC e sub-redes com as propriedades e os intervalos de endereços IP desejados. Para obter instruções detalhadas, consulte a [Documentação do Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html). | Administrador | 
| Criar um grupo de sub-redes de banco de dados. | No [console do Amazon RDS](https://console.aws.amazon.com/rds/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Para obter mais informações, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.CreateDBSubnetGroup). | Administrador | 
| Modifique a instância do banco de dados Amazon RDS para usar o novo grupo de sub-redes. | No console do Amazon RDS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Quando a migração para a VPC de destino é concluída, o grupo de segurança padrão da VPC de destino é atribuído à instância do banco de dados Amazon RDS. Você pode configurar um novo grupo de segurança para essa VPC com as regras de entrada e de saída necessárias para a instância do seu banco de dados.Como alternativa, use a AWS Command Line Interface (AWS CLI) para realizar a migração para a VPC de destino fornecendo explicitamente o novo ID do grupo de segurança da VPC. Por exemplo:<pre>aws rds modify-db-instance \<br />    --db-instance-identifier testrds \<br />    --db-subnet-group-name new-vpc-subnet-group \<br />    --vpc-security-group-ids sg-idxxxx \<br />    --apply-immediately</pre> | Administrador | 

### Migrar para uma conta diferente da AWS
<a name="migrate-to-a-different-aws-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nova VPC e um novo grupo de sub-redes na conta de destino da AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrador | 
| Compartilhe um snapshot manual do banco de dados com a conta de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrador | 
| Iniciar uma instância nova de banco de dados do Amazon RDS. | Iniciar uma instância nova do banco de dados do Amazon RDS a partir do snapshot na conta de destino da AWS. Para obter instruções, consulte a [Documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Administrador | 

## Recursos relacionados
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-resources"></a>
+ [Documentação da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)
+ [Documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)
+ [Como altero a VPC para uma instância de banco de dados do Amazon RDS?](https://aws.amazon.com/premiumsupport/knowledge-center/change-vpc-rds-db-instance/) (Artigo do AWS ref:Post)
+ [Como faço para transferir a propriedade dos recursos do Amazon RDS para uma conta diferente da AWS?](https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-rds/) (Artigo do AWS ref:Post)
+ [Como faço para compartilhar snapshots manuais de banco de dados do Amazon RDS ou snapshots de cluster de banco de dados do Aurora?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Artigo do AWS ref:Post)
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

# Migre um cluster do Amazon Redshift para uma região da AWS na China
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china"></a>

*Jing Yan, Amazon Web Services*

## Resumo
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-summary"></a>

Esse padrão fornece uma step-by-step abordagem para migrar um cluster do Amazon Redshift de outra região da AWS para uma região da AWS na China.

Este padrão usa comandos SQL para recriar todos os objetos do banco de dados, além do comando UNLOAD para mover esses dados do Amazon Redshift para um bucket do Amazon Simple Storage Service (Amazon S3) na região de origem. Em seguida, os dados são migrados para um bucket do S3 na região da AWS na China. O comando COPY é usado para carregar dados do bucket do S3 e transferi-los para o cluster de destino do Amazon Redshift.

Atualmente, o Amazon Redshift não é compatível com os recursos entre regiões, como cópia de snapshots para regiões da AWS na China. Este padrão fornece uma maneira de contornar essa limitação. Você também pode reverter as etapas deste padrão para migrar dados de uma região da AWS na China para outra região da AWS.

## Pré-requisitos e limitações
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-prereqs"></a>

*Pré-requisitos *
+ Contas ativas da AWS em uma região da China e em uma região da AWS fora da China
+ Clusters existentes do Amazon Redshift em uma região da China e em uma região da AWS fora da China

*Limitações*
+ Essa é uma migração off-line, o que significa que o cluster de origem do Amazon Redshift não pode realizar operações de gravação durante a migração.

## Arquitetura
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-architecture"></a>

**Pilha de tecnologia de origem**
+ Migre um cluster do Amazon Redshift para uma região da AWS na China

**Pilha de tecnologias de destino**
+ Migre um cluster do Amazon Redshift para uma região da AWS na China

**Arquitetura de destino**

![\[Migração dos dados do cluster do Amazon Redshift armazenados em um bucket do S3 em uma região da AWS para um bucket em uma região da China.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f7d241d9-b700-406b-95a0-3e47e7f0fa60/images/b6016e3d-76db-4176-8f99-f804da94d3f2.png)


## Ferramentas
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-tools"></a>

**Ferramentas**
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html): o Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade líder do setor, disponibilidade de dados, segurança e performance. Você pode usar o Amazon S3 para armazenar dados do Amazon Redshift e copiar dados de um bucket do S3 para o Amazon Redshift.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html): o Amazon Redshift é um serviço de data warehouse em escala de petabytes totalmente gerenciado na nuvem. 
+ [psql](https://www.postgresql.org/docs/8.4/app-psql.html): o psql é um frontend baseado em terminal para o PostgreSQL. 

## Épicos
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-epics"></a>

### Prepare-se para a migração na região de origem
<a name="prepare-for-migration-in-the-source-region"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie e configure uma EC2 instância na região de origem. | Faça login no AWS Management Console e abra o console Amazon Elastic Compute Cloud (Amazon EC2). Na barra de navegação na parte superior da tela, a região atual é exibida. Essa região não pode ser uma região da AWS na China. No painel do EC2 console da Amazon, escolha “Launch instance” e crie e configure uma EC2 instância. Importante: garanta que seus grupos de EC2 segurança para regras de entrada permitam acesso irrestrito à porta TCP 22 de sua máquina de origem. Para obter instruções sobre como iniciar e configurar uma EC2 instância, consulte a seção “Recursos relacionados”. | DBA, Desenvolvedor | 
| Instale a ferramenta psql. | Baixe e instale o PostgreSQL. O Amazon Redshift não fornece a ferramenta psql; ele é instalado com PostgreSQL. Para obter mais informações sobre como usar o psql e instalar as ferramentas do PostgreSQL, consulte a seção “Recursos relacionados”. | DBA | 
| Registre os detalhes do cluster do Amazon Redshift.  | Abra o console do Amazon Redshift e escolha “Clusters” no painel de navegação. Em seguida, escolha o nome do cluster do Amazon Redshift na lista. Na guia “Propriedades”, na seção “Configurações do banco de dados”, registre o “Nome do banco de dados” e a “Porta”. Abra a seção “Detalhes da conexão” e registre o “Endpoint”, que está no formato “endpoint:<port>/<databasename>”. Importante: garanta que seus grupos de segurança do Amazon Redshift para regras de entrada permitam acesso irrestrito à porta TCP 5439 de sua instância. EC2  | DBA | 
| Conecte o psql ao cluster do Amazon Redshift.  | Em um prompt de comando, especifique as informações de conexão executando o comando “psql -h <endpoint> -U <userid> -d <databasename> -p <port>”. No prompt de senha do psql, insira a senha do usuário “<userid>”. Assim você está conectado ao cluster do Amazon Redshift e pode inserir os comandos interativamente. | DBA | 
| Criar um bucket do S3.  | Abra o console do Amazon S3 e crie um bucket do S3 para armazenar os arquivos exportados do Amazon Redshift. Para obter instruções sobre como criar um bucket do S3, consulte a seção “Recursos relacionados”. | DBA, AWS geral | 
| Crie uma política do IAM que forneça suporte ao descarregamento de dados. | Abra o console do AWS Identity and Access Management (IAM) e escolha “Políticas”. Escolha “Criar política” e selecione a guia “JSON”. Copie e cole a política do IAM para descarregar dados da seção “Informações adicionais”. Importante: substitua “s3\$1bucket\$1name” pelo nome do seu bucket do S3. Escolha “Analisar política” e insira um nome e uma descrição para a política. Escolha “Criar política”. | DBA | 
| Crie um perfil do IAM para permitir a operação UNLOAD no Amazon Redshift. | Abra o console do IAM e selecione “Perfis”. Escolha “Criar perfil” e selecione “Serviço da AWS” em “Selecionar tipo de entidade confiável”. Escolha “Redshift” para o serviço, selecione “Redshift – Personalizável” e, em seguida, clique em “Próximo”. Escolha a política “Descarregar” que você criou anteriormente e selecione “Próximo”. Insira um “Nome do perfil” e selecione “Criar perfil”. | DBA | 
| Associe um perfil do IAM ao cluster do Amazon Redshift.  | Abra o console do Amazon Redshift e escolha “Gerenciar perfis IAM”. Escolha “Perfis disponíveis” no menu suspenso e selecione o perfil que você criou anteriormente. Selecione “Aplicar alterações”. Quando o “Status” do perfil do IAM na seção “Gerenciar perfis do IAM” aparecer como “Em sincronização”, você poderá executar o comando UNLOAD. | DBA | 
| Pare as operações de gravação no cluster do Amazon Redshift. | Você deve se lembrar de interromper todas as operações de gravação no cluster de origem do Amazon Redshift até que a migração seja concluída. | DBA | 

### Prepare para a migração na região de destino
<a name="prepare-for-migration-in-the-target-region"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie e configure uma EC2 instância na região de destino. | Faça login no Console de Gerenciamento da AWS de uma região na China, seja Pequim ou Ningxia. No EC2 console da Amazon, escolha “Launch instance” e crie e configure uma EC2 instância. Importante: certifique-se de que seus grupos EC2 de segurança da Amazon para regras de entrada permitam acesso irrestrito à porta TCP 22 de sua máquina de origem. Para obter mais instruções sobre como iniciar e configurar uma EC2 instância, consulte a seção “Recursos relacionados”. | DBA | 
| Registre os detalhes do cluster do Amazon Redshift.  | Abra o console do Amazon Redshift e escolha “Clusters” no painel de navegação. Em seguida, escolha o nome do cluster do Amazon Redshift na lista. Na guia “Propriedades”, na seção “Configurações do banco de dados”, registre o “Nome do banco de dados” e a “Porta”. Abra a seção “Detalhes da conexão” e registre o “Endpoint”, que está no formato “endpoint:<port>/<databasename>”. Importante: certifique-se de que seus grupos de segurança do Amazon Redshift para regras de entrada permitam acesso irrestrito à porta TCP 5439 da sua instância. EC2  | DBA | 
| Conecte o psql ao cluster do Amazon Redshift.  | Em um prompt de comando, especifique as informações de conexão executando o comando “psql -h <endpoint> -U <userid> -d <databasename> -p <port>”. No prompt de senha do psql, insira a senha do usuário “<userid>”. Assim você está conectado ao cluster do Amazon Redshift e pode inserir os comandos interativamente. | DBA | 
| Criar um bucket do S3.  | Abra o console do Amazon S3 e crie um bucket do S3 para armazenar os arquivos exportados do Amazon Redshift. Para obter ajuda com esta e outras histórias, consulte a seção “Recursos relacionados”. | DBA | 
| Crie uma política do IAM que seja compatível com cópia de dados. | Abra o console do IAM e selecione “Políticas”. Escolha “Criar política” e selecione a guia “JSON”. Copie e cole a política do IAM para copiar dados da seção “Informações adicionais”. Importante: substitua “s3\$1bucket\$1name” pelo nome do seu bucket do S3. Escolha “Analisar política” e insira um nome e uma descrição para a política. Escolha “Criar política”. | DBA | 
| Crie um perfil do IAM para permitir a operação COPY no Amazon Redshift. | Abra o console do IAM e selecione “Perfis”. Escolha “Criar perfil” e selecione “Serviço da AWS” em “Selecionar tipo de entidade confiável”. Escolha “Redshift” para o serviço, selecione “Redshift – Personalizável” e, em seguida, clique em “Próximo”. Escolha a política “Copiar” que você criou anteriormente e selecione “Próximo”. Insira um “Nome do perfil” e selecione “Criar perfil”. | DBA | 
| Associe um perfil do IAM ao cluster do Amazon Redshift.  | Abra o console do Amazon Redshift e escolha “Gerenciar perfis IAM”. Escolha “Perfis disponíveis” no menu suspenso e selecione o perfil que você criou anteriormente. Selecione “Aplicar alterações”. Quando o “Status” do perfil do IAM na seção “Gerenciar perfis do IAM” aparecer como “Em sincronização”, você poderá executar o comando COPY. | DBA | 

### Verifique os dados de origem e as informações do objeto antes de iniciar a migração
<a name="verify-source-data-and-object-information-before-beginning-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique as linhas nas tabelas de origem do Amazon Redshift. | Use os scripts apresentados na seção “Informações adicionais” para verificar e registrar o número de linhas nas tabelas de origem do Amazon Redshift. Lembre-se de dividir os dados uniformemente para os scripts UNLOAD e COPY. Isso melhorará a eficiência do descarregamento e carregamento dos dados, pois a quantidade de dados abrangida por cada script será equilibrada. | DBA | 
| Verifique o número de objetos de banco de dados no cluster de origem do Amazon Redshift. | Use os scripts na seção “Informações adicionais” para verificar e registrar o número de bancos de dados, usuários, esquemas, tabelas, visualizações e funções definidas pelo usuário (UDFs) em seu cluster de origem do Amazon Redshift. | DBA | 
| Verifique os resultados da instrução SQL antes da migração. | Algumas instruções SQL para validação de dados devem ser classificadas de acordo com as situações reais de negócios e dados. Isso serve para verificar os dados importados a fim de garantir que sejam consistentes e exibidos corretamente. | DBA | 

### Migrar dados e objetos para a região de destino
<a name="migrate-data-and-objects-to-the-target-region"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere scripts DDL do Amazon Redshift.  | Gere scripts de linguagem de definição de dados (DDL, na sigla em inglês) usando os links da seção “Instruções SQL para consultar o Amazon Redshift” na seção “Informações adicionais”. Esses scripts de DDL devem incluir as consultas “criar usuário”, “criar esquema”, “privilégios sobre o esquema para usuário”, “criar tabela/visualização”, “privilégios sobre objetos para usuário” e “criar função”. | DBA | 
| Crie objetos no cluster do Amazon Redshift para a região de destino. | Execute os scripts DDL usando a AWS Command Line Interface (AWS CLI) na região da AWS na China. Crie objetos no cluster do Amazon Redshift para a região de destino. | DBA | 
| Descarregue os dados de origem do cluster do Amazon Redshift no bucket do S3. | Execute o comando UNLOAD para descarregar dados do cluster do Amazon Redshift na região de origem para o bucket do S3. | DBA, Desenvolvedor  | 
| Transfira os dados do bucket do S3 da região de origem para o bucket do S3 da região de destino. | Transfira os dados de origem do bucket da região S3 para o bucket da região S3 de destino. Como não é possível usar o comando “\$1 aws s3 sync”, garanta que você empregue o processo descrito no artigo “Transferring Amazon S3 data from AWS Regions to AWS Regions in China”, disponibilizado na seção “Recursos relacionados”. | Desenvolvedor | 
|  Carregue dados no cluster de destino do Amazon Redshift.  | Na ferramenta psql da sua região de destino, execute o comando COPY para carregar dados do bucket do S3 para o cluster de destino do Amazon Redshift. | DBA | 

### Verifique os dados nas regiões de origem e de destino após a migração
<a name="verify-the-data-in-the-source-and-target-regions-after-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique e compare o número de linhas nas tabelas de origem e de destino. | Verifique e compare o número de linhas nas tabelas de origem e de destino. | DBA | 
| Verifique e compare o número de linhas nas tabelas de origem e de destino. | Verifique e compare o número de linhas nas tabelas de origem e de destino. | DBA | 
| Verifique e compare os resultados do script SQL nas regiões de origem e de destino. | Execute os scripts SQL preparados antes da migração. Verifique e compare os dados para garantir que os resultados do SQL estejam corretos. | DBA | 
| Redefina as senhas de todos os usuários no cluster de destino do Amazon Redshift.  | Depois que a migração for concluída e todos os dados forem verificados, você deverá redefinir todas as senhas de usuário do cluster do Amazon Redshift na região da AWS na China. | DBA | 

## Recursos relacionados
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-resources"></a>
+ [Transferência de dados do Amazon S3 de regiões da AWS para regiões da AWS na China](https://aws.amazon.com/cn/blogs/storage/transferring-amazon-s3-data-from-aws-regions-to-aws-regions-in-china/)
+ [Criar um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Redefinição de uma senha de usuário do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html)
+ [Documentação do JDBC](https://www.postgresql.org/docs/8.4/static/app-psql.html)

## Mais informações
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-additional"></a>

*Política do IAM para descarregar dados*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*Política do IAM para copiar dados*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*Instruções SQL para consultar o Amazon Redshift*

```
##Database

select * from pg_database where datdba>1;

##User

select * from pg_user where usesysid>1;

##Schema

SELECT n.nspname AS "Name",

  pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"

FROM pg_catalog.pg_namespace n

WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'

ORDER BY 1;

##Table

select count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema');

select schemaname,count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema') group by schemaname order by 1;

##View

SELECT 

    n.nspname AS schemaname,c.relname AS viewname,pg_catalog.pg_get_userbyid(c.relowner) as "Owner"

FROM 

    pg_catalog.pg_class AS c

INNER JOIN

    pg_catalog.pg_namespace AS n

    ON c.relnamespace = n.oid

WHERE relkind = 'v' and n.nspname not in ('information_schema','pg_catalog');

##UDF

SELECT 

   n.nspname AS schemaname,

   p.proname AS proname,

   pg_catalog.pg_get_userbyid(p.proowner) as "Owner"

FROM pg_proc p

LEFT JOIN pg_namespace n on n.oid = p.pronamespace

WHERE p.proowner != 1;
```

*Scripts SQL para gerar instruções DDL*
+ [Script Get\$1schema\$1priv\$1by\$1user](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_get_schema_priv_by_user.sql)
+ [Script Generate\$1tbl\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_tbl_ddl.sql)
+ [Generate\$1view\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_view_ddl.sql)
+ [Generate\$1user\$1grant\$1revoke\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_user_grant_revoke_ddl.sql)
+ [Generate\$1udf\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_udf_ddl.sql)

# Transporte bancos de dados PostgreSQL entre duas instâncias de banco de dados Amazon RDS usando pg\$1transport
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport"></a>

*Raunak Rishabh e Jitender Kumar, Amazon Web Services*

## Resumo
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

Esse padrão descreve as etapas para migrar bancos de dados extremamente grandes entre duas instâncias de banco de dados Amazon Relational Database Service (Amazon RDS) para PostgreSQL usando a extensão **pg\$1transport**. Esta extensão fornece um mecanismo de transporte físico para mover cada banco de dados. Ao fazer streaming dos arquivos do banco de dados com o mínimo de processamento, ele fornece um método extremamente rápido para migrar grandes bancos de dados entre instâncias de banco de dados com o mínimo de tempo de inatividade. Essa extensão usa um modelo pull, em que a instância do banco de dados de destino importa o banco de dados da instância de banco de dados de origem.

## Pré-requisitos e limitações
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Pré-requisitos **
+ Ambas as instâncias de banco de dados devem executar a mesma versão principal do PostgreSQL.
+ O banco de dados não deve existir no destino. Caso contrário, ocorrerá uma falha no transporte.
+ Nenhuma extensão diferente de **pg\$1transport** deve ser habilitada no banco de dados de origem.
+ Todos os objetos do banco de dados de origem devem estar no espaço de tabela padrão **pg\$1default**.
+ O grupo de segurança da instância de banco de dados de origem deveria permitir tráfego da instância de banco de dados de destino.
+ Instale um cliente PostgreSQL, [como](https://www.postgresql.org/docs/11/app-psql.html) o psql, [PgAdmin](https://www.pgadmin.org/)ou para trabalhar com a instância de banco de dados PostgreSQL do Amazon RDS. Você pode instalar o cliente em seu sistema local ou usar uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Nesse padrão, usamos psql em uma EC2 instância.

**Limitações**
+ Você não pode transportar bancos de dados entre diferentes versões principais do Amazon RDS para PostgreSQL.
+ Os privilégios de acesso e a propriedade do banco de dados de origem não são transferidos para o banco de dados de destino.
+ Não é possível transportar bancos de dados em réplicas de leitura nem em instâncias pai de réplicas de leitura.
+ Não é possível usar os tipos de dados **reg** em nenhuma tabela de banco de dados que você planeja transportar com esse método.
+ É possível executar até 32 transportes totais ao mesmo tempo (inclusive importações e exportações) em uma instância de banco de dados.
+ Você não pode renomear nossas include/exclude tabelas. Tudo é migrado como está.

**Cuidado**
+ Faça backups antes de remover a extensão, pois a remoção da extensão também remove objetos dependentes e alguns dados essenciais para a operação do banco de dados.
+ Considere a classe da instância e os processos em execução em outros bancos de dados na instância de origem ao determinar o número de operadores e os valores `work_mem` para **pg\$1transport**.
+ Quando o transporte é iniciado, todas as conexões no banco de dados de origem são encerradas e o banco de dados é colocado no modo somente leitura.

**nota**  
Quando o transporte está em execução em um banco de dados, ele não afeta os outros bancos de dados no mesmo servidor.** **

**Versões do produto**
+ Amazon RDS para PostgreSQL 10.10 e posterior e Amazon RDS para PostgreSQL 11.5 e posterior. Para obter as informações sobre a versão mais recente, consulte [Transporte de bancos de dados PostgreSQL entre instâncias de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) na documentação do Amazon RDS.

## Arquitetura
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Transporte de bancos de dados PostgreSQL entre instâncias de banco de dados Amazon RDS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Ferramentas
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport** fornece um mecanismo de transporte físico para mover cada banco de dados. Ao fazer streaming dos arquivos do banco de dados com o mínimo de processamento, o transporte físico move os dados muito mais rapidamente que os processos tradicionais de despejo e carregamento e leva um tempo de inatividade mínimo. Os bancos de dados PostgreSQL transportáveis usam um modelo pull, em que a instância do banco de dados de destino importa o banco de dados da instância de banco de dados de origem. Você instala essa extensão em suas instâncias de banco de dados ao preparar os ambientes de origem e de destino, conforme explicado nesse padrão.
+ O [psql](https://www.postgresql.org/docs/11/app-psql.html) permite que você se conecte e trabalhe com suas instâncias de banco de dados PostgreSQL. Para instalar o **psql** em seu sistema, consulte a página de downloads do [PostgreSQL.](https://www.postgresql.org/download/)

## Épicos
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Crie o grupo de parâmetros de destino
<a name="create-the-target-parameter-group"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um grupo de parâmetros para o sistema de destino. | Especifique um nome de grupo que o identifique como um grupo de parâmetros de destino; por exemplo, `pgtarget-param-group`. Para obter instruções, consulte a documentação do [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificar os parâmetros no grupo de parâmetros. | Defina os seguintes parâmetros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Para obter mais informações sobre estes parâmetros, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Criar o grupo de parâmetros de origem
<a name="create-the-source-parameter-group"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um grupo de parâmetros para o sistema de origem. | Especifique um nome de grupo que o identifique como um grupo de parâmetros de origem; por exemplo, `pgsource-param-group`. Para obter instruções, consulte a documentação do [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificar os parâmetros no grupo de parâmetros. | Defina os seguintes parâmetros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Para obter mais informações sobre estes parâmetros, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Prepare o ambiente de destino
<a name="prepare-the-target-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nova instância de banco de dados Amazon RDS para PostgreSQL para a qual transportar seu banco de dados de origem. | Determine a classe da instância e a versão do PostgreSQL com base nos requisitos da sua empresa. | DBA, administrador de sistemas, arquiteto de banco de dados | 
| Modifique o grupo de segurança do destino para permitir conexões na porta da instância de banco de dados a partir da EC2 instância. | A porta padrão para a instância PostgreSQL é 5432. Se você estiver usando outra porta, as conexões com essa porta devem estar abertas para a EC2 instância. | DBA, administrador de sistemas | 
| Modifique a instância e atribua o novo grupo de parâmetros de destino. | Por exemplo, .`pgtarget-param-group` | DBA | 
| Reiniciar a instância de banco de dados do Amazon RDS.  | Os parâmetros `shared_preload_libraries` e `max_worker_processes` são parâmetros estáticos e exigem a reinicialização da instância. | DBA, administrador de sistemas | 
| Conecte-se ao banco de dados a partir da EC2 instância usando psql. | Use o comando: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crie a extensão pg\$1transport. | Execute a consulta a seguir como usuário com a função `rds_superuser`:<pre>create extension pg_transport;</pre> | DBA | 

### Prepare o ambiente de destino
<a name="prepare-the-source-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Modifique o grupo de segurança da origem para permitir conexões na porta da instância de banco de dados da instância Amazon e da EC2 instância de banco de dados de destino | A porta padrão para a instância PostgreSQL é 5432. Se você estiver usando outra porta, as conexões com essa porta devem estar abertas para a EC2 instância. | DBA, administrador de sistemas | 
| Modifique a instância e atribua o novo grupo de parâmetros de origem. | Por exemplo, .`pgsource-param-group` | DBA | 
| Reinicie a origem de banco de dados do Amazon RDS.  | Os parâmetros `shared_preload_libraries` e `max_worker_processes` são parâmetros estáticos e exigem a reinicialização da instância. | DBA | 
| Conecte-se ao banco de dados a partir da EC2 instância usando psql. | Use o comando: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crie a extensão pg\$1transport e remova todas as outras extensões dos bancos de dados a serem transportados. | O transporte falhará se houver alguma extensão diferente de **pg\$1transport** instalada no banco de dados de origem. Esse comando deve ser executado por um usuário com a função `rds_superuser`. | DBA | 

### Execute o transporte
<a name="perform-the-transport"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma simulação. | Use a função `transport.import_from_server` para executar uma simulação primeiro:<pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', 'true');</pre>O último parâmetro dessa função (determinado como `true`) define a operação a seco. Essa função exibe todos os erros que você veria ao executar o transporte principal. Resolva os erros antes de executar o transporte principal.  | DBA | 
| Se a execução a seco for bem-sucedida, inicie o transporte do banco de dados. | Execute a função `transport.import_from_server` para realizar o transporte. Ele se conecta à fonte e importa os dados. <pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);</pre>O último parâmetro dessa função (definido como `false`) indica que isso não é um ensaio. | DBA | 
| Execute as etapas pós-transporte. | Depois que o transporte do banco de dados estiver concluído:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Recursos relacionados
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Documentação do Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [documentação pg\$1transport](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migração de bancos de dados usando bancos de dados transportáveis PostgreSQL do RDS](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/) (postagem do blog)
+ [Downloads do PostgreSQL](https://www.postgresql.org/download/linux/redhat/)
+ [utilitário psql](https://www.postgresql.org/docs/11/app-psql.html)
+ [Criação de um parameter group de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Modificar parâmetros em um grupo de parâmetros de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [Downloads do PostgreSQL](https://www.postgresql.org/download/)

# Redefinir a plataforma
<a name="migration-replatform-pattern-list"></a>

**Topics**
+ [Exportar um banco de dados do Microsoft SQL Server para o Amazon S3 usando o AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Migrar valores do Oracle CLOB para linhas individuais no PostgreSQL na AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migre o Oracle PeopleSoft para o Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migre a funcionalidade Oracle ROWID para o PostgreSQL na AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migre códigos de erro do banco de dados Oracle para um banco de dados compatível com Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migre o SAP ASE na Amazon EC2 para o Amazon Aurora compatível com PostgreSQL usando o AWS SCT e o AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)
+ [Migrar certificados SSL do Windows para um Application Load Balancer usando o ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Migrar uma fila de mensagens do Microsoft Azure Service Bus para o Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Migre um banco de dados Oracle JD Edwards EnterpriseOne para a AWS usando o Oracle Data Pump e o AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migre um PeopleSoft banco de dados Oracle para a AWS usando o AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Migrar um banco de dados MySQL on-premises para o Amazon RDS para MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Migre dados do Microsoft Azure Blob para o Amazon S3 usando o Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migre do Couchbase Server para o Couchbase Capella na AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)
+ [Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Migre uma aplicação .NET do Microsoft Azure App Service para o AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Migre do Oracle WebLogic para o Apache Tomcat (TomEE) no Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for Oracle usando o AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migre um banco de dados Oracle local para o Amazon OpenSearch Service usando o Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando o Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Migre do PostgreSQL na Amazon para o EC2 Amazon RDS for PostgreSQL usando pglogical](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Migrar um banco de dados PostgreSQL on-premises para o Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Migre um banco de dados local do Microsoft SQL Server para o Microsoft SQL Server na Amazon executando Linux EC2](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando servidores vinculados](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Saiba como migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando backup e restauração nativos.](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Migre um banco de dados Microsoft SQL Server para o Aurora MySQL usando o AWS DMS e o AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migre um banco de dados MariaDB on-premises para o Amazon RDS para MariaDB usando ferramentas nativas](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Migrar um banco de dados MySQL on-premises para o Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Migre bancos de dados MySQL locais para o Aurora MySQL usando XtraBackup Percona, Amazon EFS e Amazon S3](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migrar aplicações Java on-premises para a AWS usando o App2Container da AWS](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migre sistemas de arquivos compartilhados em uma AWS grande migração](migrate-shared-file-systems-in-an-aws-large-migration.md)
+ [Migre um banco de dados Oracle para o Amazon RDS for Oracle usando adaptadores de arquivo simples GoldenGate Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Altere os aplicativos Python e Perl para oferecer suporte à migração do banco de dados do Microsoft SQL Server para o Amazon Aurora Edição Compatível com PostgreSQL](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)

# Exportar um banco de dados do Microsoft SQL Server para o Amazon S3 usando o AWS DMS
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms"></a>

*Sweta Krishna, Amazon Web Services*

## Resumo
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-summary"></a>

Muitas vezes, as organizações precisam copiar bancos de dados para o Amazon Simple Storage Service (Amazon S3) para migração de banco de dados, backup e restauração, arquivamento de dados e análise de dados. Esse padrão descreve como você pode exportar um banco de dados Microsoft SQL Server para o Amazon S3. O banco de dados de origem pode ser hospedado localmente ou no Amazon Elastic Compute Cloud (Amazon EC2) ou no Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server na Amazon Web Services (AWS) Cloud.

Os dados são exportados usando o AWS Database Migration Service (AWS DMS). Por padrão, o AWS DMS grava dados completos de captura de dados de alteração e carga (CDC) no formato de valores separados por vírgula (.csv). Para um armazenamento mais compacto e opções de consulta mais rápidas, esse padrão usa a opção de formato Apache Parquet (.parquet).

## Pré-requisitos e limitações
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um perfil do AWS Identity and Access Management (IAM) para a conta com acesso de gravação, exclusão e tag ao bucket do S3 de destino, e o AWS DMS (`dms.amazonaws.com`) adicionado como uma entidade confiável a esse perfil do IAM
+ Um banco de dados Microsoft SQL Server local (ou Microsoft SQL Server em uma EC2 instância ou um banco de dados Amazon RDS for SQL Server)
+ Conectividade de rede entre a nuvem privada virtual (VPC) na AWS e a rede on-premises fornecida pelo AWS Direct Connect ou uma rede privada virtual (VPN)

**Limitações**
+ Atualmente, um bucket do S3 habilitado para VPC (gateway VPC) não é compatível com as versões do AWS DMS anteriores à 3.4.7.
+ As alterações na estrutura da tabela de origem durante a carga máxima não são compatíveis.
+ O modo completo do Large Binary Object (LOB) do AWS DMS não é compatível.

**Versões do produto**
+ Versões do Microsoft SQL Server 2005 ou superior para as edições Enterprise, Standard, Workgroup e Developer.
+ O suporte para o Microsoft SQL Server versão 2019 como origem está disponível no AWS DMS versões 3.3.2 e posterior.

## Arquitetura
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Microsoft SQL Server local (ou Microsoft SQL Server em uma EC2 instância ou um banco de dados Amazon RDS for SQL Server)**** 

**Pilha de tecnologias de destino**
+ AWS Direct Connect
+ AWS DMS
+ Amazon S3

**Arquitetura de destino**

![\[A migração de dados do banco de dados do SQL Server ocorre por meio do Direct Connect para o AWS DMS e, posteriormente, para o bucket do S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/75b8b20f-a1a8-4633-9816-1b370cc7e92c/images/85bd433c-4a0a-4825-8661-e53f53265191.png)


## Ferramentas
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ O [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) vincula a rede interna a um local do Direct Connect por meio de um cabo de fibra ótica 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 [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.

## Épicos
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar a versão do banco de dados. | Valide a versão do banco de dados de origem e certifique-se de que ela seja compatível com o AWS DMS. Para obter informações sobre as versões compatíveis do banco de dados do SQL Server, consulte [Usar um banco de dados do Microsoft SQL Server como fonte para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). | DBA | 
| Criar um grupo de segurança e de VPC. | Na sua conta da AWS, crie uma VPC e um grupo de segurança. Para obter mais informações, consulte a [documentação da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Administrador de sistema | 
| Criar um usuário para a tarefa do AWS DMS. | Crie um usuário do AWS DMS no banco de dados de origem e conceda a ele permissões READ. Esse usuário será usado pelo AWS DMS. | DBA | 
| Testar a conectividade do banco de dados. | Teste a conectividade do usuário do AWS DMS com a instância de banco de dados do SQL Server. | DBA | 
| Criar um bucket do S3. | Crie o bucket do S3 de destino. Esse bucket conterá os dados da tabela migrada. | Administrador de sistemas | 
| Criar uma política e um perfil do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.html) | Administrador de sistemas | 

### Migrar dados usando o AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de replicação do AWS DMS. | Faça login no console de gerenciamento da AWS e abra o console do AWS DMS. No painel de navegação, escolha **Instâncias de replicação**, **Criar instância de replicação**. Para obter instruções, consulte a [etapa 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.ReplicationInstance) na documentação do AWS DMS. | DBA | 
| Criar endpoints de origem e de destino. | Criar endpoints de origem e de destino. Teste a conexão da instância de replicação aos endpoints de origem e de destino. Para obter instruções, consulte a [etapa 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Endpoints) na documentação do AWS DMS. | DBA | 
| Criar uma tarefa de replicação. | Crie uma tarefa de replicação e selecione carga total ou carga total com captura de dados de alteração (CDC) para migrar dados do SQL Server para o bucket do S3. Para obter instruções, consulte a [etapa 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks) na documentação do AWS DMS. | DBA | 
| Iniciar a replicação dos dados.  | Inicie a tarefa de replicação e monitore os logs em busca de erros. | DBA | 

### Validar os dados
<a name="validate-the-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar os dados migrados. | No console, navegue até o seu bucket do S3 de destino. Abra a subpasta com nome idêntico ao do banco de dados de origem. Confirme se a pasta contém todas as tabelas que foram migradas do banco de dados de origem. | DBA | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerrar e excluir os recursos temporários da AWS. | Encerre os recursos temporários da AWS que você criou para a migração de dados, como a instância de replicação do AWS DMS, e exclua-os depois de validar a exportação. | DBA | 

## Recursos relacionados
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-resources"></a>
+ [Guia do usuário do AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Usar um banco de dados do Microsoft SQL Server como origem para o DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Usar o Amazon S3 como destino para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html)
+ [Usar um bucket do S3 como destino do AWS DMS](https://repost.aws/knowledge-center/s3-bucket-dms-target) (AWS ref: Post)

## Mais informações
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-additional"></a>

Use o código a seguir para adicionar uma política do IAM com permissões de bucket do S3 para a função do AWS DMS. Substitua `bucketname` pelo nome do seu bucket.

```
{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:DeleteObject"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         },
         {
             "Effect": "Allow",
             "Action": [
                 "s3:ListBucket"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         }
     ]
 }
```

# Migrar valores do Oracle CLOB para linhas individuais no PostgreSQL na AWS
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws"></a>

*Sai Krishna Namburu e Sindhusha Paturu, Amazon Web Services*

## Resumo
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-summary"></a>

Este padrão descreve como dividir os valores do Oracle Character Large Object (CLOB) em linhas individuais no Amazon Aurora Edição Compatível com PostgreSQL e no Amazon Relational Database Service (Amazon RDS) para o PostgreSQL. O PostgreSQL não dá suporte ao tipo de dados CLOB. 

As tabelas com partições de intervalo são identificadas no banco de dados Oracle de origem, e o nome da tabela, o tipo de partição, o intervalo da partição e outros metadados são capturados e carregados no banco de dados de destino. Você pode carregar dados CLOB com menos de 1 GB em tabelas de destino como texto usando o AWS Database Migration Service (AWS DMS) ou pode exportar os dados no formato CSV, carregá-los em um bucket do Amazon Simple Storage Service (Amazon S3) e migrá-los para o banco de dados PostgreSQL de destino.

Após a migração, você pode usar o código PostgreSQL personalizado fornecido com esse padrão para dividir os dados CLOB em linhas individuais com base no novo identificador de caracteres de linha (`CHR(10)`) e preencher a tabela** de **destino. 

## Pré-requisitos e limitações
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-prereqs"></a>

**Pré-requisitos **
+ Uma tabela de banco de dados Oracle que tem partições de intervalo e registros com um tipo de dados CLOB.
+ Um banco de dados compatível com o Aurora PostgreSQL ou Amazon RDS para PostgreSQL que tem uma estrutura de tabela semelhante à tabela de origem (mesmas colunas e tipos de dados).

**Limitações**
+ O valor do CLOB não pode exceder 1 GB.
+ Cada linha na tabela de destino deve ter um novo identificador de caractere de linha.

**Versões do produto**
+ Oracle 12c
+ Aurora Postgres 11.6

## Arquitetura
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-architecture"></a>

O diagrama a seguir mostra uma tabela Oracle de origem com dados CLOB e a tabela PostgreSQL equivalente na versão 11.6 compatível com o Aurora PostgreSQL.

![\[Tabela CLOB de origem e tabela PostgreSQL de destino equivalente.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/55806ee7-6a9f-4058-9a47-a07de68223ca/images/79b9d4b9-6f20-4db5-8ca8-2a599769a498.png)


## Ferramentas
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID, que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ O [Amazon Relational Database Service (Amazon RDS) para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ajuda você a configurar, operar e escalar um banco de dados relacional PostgreSQL na Nuvem AWS.
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ 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.

**Outras ferramentas**

Você pode usar as seguintes ferramentas de cliente para se conectar, acessar e gerenciar seus bancos de dados compatíveis com o Aurora PostgreSQL e o Amazon RDS para PostgreSQL. (Essas ferramentas não são usadas nesse padrão).
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.
+ [DBeaver](https://dbeaver.io/)é uma ferramenta de banco de dados de código aberto para desenvolvedores e administradores de banco de dados. Você pode usar a ferramenta para manipular, monitorar, analisar, administrar e migrar seus dados.

## Práticas recomendadas
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-best-practices"></a>

Para obter as práticas recomendadas para migrar seu banco de dados do Oracle para o PostgreSQL, consulte a [Publicação de blog da AWS práticas recomendadas para migrar um banco de dados Oracle para o Amazon RDS PostgreSQL ou o Amazon Aurora PostgreSQL: considerações sobre o processo de migração e a infraestrutura](https://aws.amazon.com/blogs/database/best-practices-for-migrating-an-oracle-database-to-amazon-rds-postgresql-or-amazon-aurora-postgresql-migration-process-and-infrastructure-considerations/).

Para obter as melhores práticas de configuração da tarefa do AWS DMS para migrar objetos binários grandes, consulte [Migração de objetos binários grandes () LOBs na](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html#CHAP_BestPractices.LOBS) documentação do AWS DMS.

## Épicos
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-epics"></a>

### Identificar os dados do CLOB
<a name="identify-the-clob-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analisar os dados do CLOB. | No banco de dados Oracle de origem, analise os dados CLOB para ver se eles contêm cabeçalhos de coluna, para que você possa determinar o método para carregar os dados na tabela de destino. Para analisar os dados de entrada, use a consulta a seguir.`SELECT * FROM clobdata_or;  ` | Desenvolvedor | 
| Carregar os dados do CLOB no banco de dados de destino. | Migre a tabela que tem dados CLOB para uma tabela provisória (de teste) no banco de dados de destino do Aurora ou do Amazon RDS. Você pode usar o AWS DMS ou carregar os dados como um arquivo CSV em um bucket do Amazon S3.Para obter informações sobre o uso do AWS DMS para essa tarefa, consulte [Usar um banco de dados Oracle como fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Usar um banco de dados PostgreSQL como destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) na documentação do AWS DMS.Para obter informações sobre o uso do Amazon S3 para essa tarefa, consulte [Usar o Amazon S3 como destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html) na documentação do AWS DMS. | Engenheiro de migração, DBA | 
| Validar a tabela PostgreSQL de destino. | Valide os dados de destino, incluindo cabeçalhos, em relação aos dados de origem usando as seguintes consultas no banco de dados de destino.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre>Compare os resultados com os resultados da consulta do banco de dados de origem (da primeira etapa). | Desenvolvedor | 
| Dividir os dados do CLOB em linhas separadas. | Execute o código PostgreSQL personalizado fornecido na seção [Informações adicionais](#migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional) para dividir os dados CLOB e inseri-los em linhas separadas na tabela PostgreSQL de destino. | Desenvolvedor | 

### Valide os dados.
<a name="validate-the-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar os dados na tabela de destino. | Valide os dados inseridos na tabela de destino usando as seguintes consultas.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre> | Desenvolvedor | 

## Recursos relacionados
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-resources"></a>
+ [Tipo de dados CLOB](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021) (documentação da Oracle)
+ [Tipos de dados](https://www.postgresql.org/docs/11/datatype.html) (documentação do PostgreSQL)

## Mais informações
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional"></a>

**Função PostgreSQL para dividir dados CLOB**

```
do
$$
declare
totalstr varchar;
str1 varchar;
str2 varchar;
pos1 integer := 1;
pos2 integer ;
len integer;


begin
        select rawdata||chr(10) into totalstr from clobdata_pg;
        len :=  length(totalstr) ;
        raise notice 'Total length : %',len;
        raise notice 'totalstr : %',totalstr;
        raise notice 'Before while loop';


        while pos1 < len  loop


                  select position (chr(10) in totalstr) into pos2;
                 raise notice '1st position of new line : %',pos2;


                str1 := substring (totalstr,pos1,pos2-1);
                raise notice 'str1 : %',str1;


                   insert into clobdatatarget(data) values (str1);
                   totalstr := substring(totalstr,pos2+1,len);
                   raise notice 'new totalstr :%',totalstr;
                len :=  length(totalstr) ;


        end loop;
end
$$
LANGUAGE 'plpgsql' ;
```

**Exemplos de entrada e saída**

Você pode usar os exemplos a seguir para testar o código PostgreSQL antes de migrar seus dados.

Crie um banco de dados Oracle com três linhas de entrada.

```
CREATE TABLE clobdata_or (
id INTEGER GENERATED ALWAYS AS IDENTITY,
rawdata clob  );


insert into clobdata_or(rawdata) values (to_clob('test line 1') || chr(10) || to_clob('test line 2') || chr(10) || to_clob('test line 3') || chr(10));
COMMIT;


SELECT * FROM clobdata_or;
```

Ele exibe a seguinte saída.


|  |  | 
| --- |--- |
| id | dados brutos | 
| 1 | linha de teste 1 linha de teste 2 linha de teste 3 | 

Carregue os dados de origem em uma tabela de preparação do PostgreSQL (`clobdata_pg`) para processamento.

```
SELECT * FROM clobdata_pg;

CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR );

<Run the code in the additional information section.>

SELECT * FROM clobdatatarget;
```

Ele exibe a seguinte saída.


|  |  | 
| --- |--- |
| id1 | dados | 
| 1 | linha de teste 1 | 
| 2 | linha de teste 2 | 
| 3 | linha de teste 3 | 

# Migre o Oracle PeopleSoft para o Amazon RDS Custom
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom"></a>

*Gaurav Gupta, Amazon Web Services*

## Resumo
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-summary"></a>

 PeopleSoftO [Oracle](https://www.oracle.com/applications/peoplesoft/) é uma solução de planejamento de recursos corporativos (ERP) para processos em toda a empresa. PeopleSoft tem uma arquitetura de três camadas: cliente, aplicativo e banco de dados. PeopleSoft pode ser executado no [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)). Agora, você também pode executar PeopleSoft no [Amazon RDS Custom](https://aws.amazon.com/rds/custom/), que fornece acesso ao sistema operacional subjacente.

O [Amazon RDS Custom para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) é um serviço de banco de dados gerenciado para aplicações herdadas, personalizadas e em pacote que exigem acesso ao sistema operacional subjacente e ao ambiente de banco de dados. Quando você migra seu banco de dados Oracle para o Amazon RDS Custom, o Amazon Web Services (AWS) pode gerenciar tarefas de backup e alta disponibilidade, enquanto você pode se concentrar na manutenção de seu PeopleSoft aplicativo e funcionalidade. Para ver os principais fatores a considerar em uma migração, consulte as [Estratégias de migração do banco de dados Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) no Recomendações da AWS.

Esse padrão se concentra nas etapas para migrar um PeopleSoft banco de dados no Amazon Elastic Compute Cloud (Amazon EC2) para o Amazon RDS Custom usando um backup do Oracle Recovery Manager (RMAN). Ele usa um sistema de arquivos compartilhado [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) entre a instância EC2 e o Amazon RDS Custom, embora você também possa usar o Amazon FSx ou qualquer drive compartilhado. O padrão usa um backup completo do RMAN (às vezes chamado de backup de nível 0). 

## Pré-requisitos e limitações
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-prereqs"></a>

**Pré-requisitos **
+ Um banco de dados de origem Oracle versão 19C que está sendo executado no Amazon EC2 com Oracle Linux 7, Oracle Linux 8, Red Hat Enterprise Linux (RHEL) 7 ou RHEL 8. Nos exemplos desse padrão, o nome do banco de dados de origem é `FSDMO92`, mas isso não é um requisito.
**nota**  
Você também pode usar esse padrão com bancos de dados de origem Oracle on-premises. É necessário ter a conectividade de rede adequada entre a rede on-premises e uma nuvem privada virtual (VPC).
+ Uma instância de demonstração PeopleSoft 9.2.
+ Um único nível PeopleSoft de aplicativo. No entanto, você pode adaptar esse padrão para trabalhar com vários níveis de aplicativos.
+ Amazon RDS Custom configurado com pelo menos 8 GB de espaço de troca.

**Limitações**

Esse padrão não é compatível com as seguintes configurações:
+ Definindo o parâmetro `ARCHIVE_LAG_TARGET` do banco de dados para um valor fora do intervalo de 60 a 7200
+ Desabilitando o modo de log da instância de banco de dados (`NOARCHIVELOG`)
+ A desativação do atributo otimizado Amazon Elastic Block Store (Amazon EBS) da instância do EC2
+ Modificando os volumes originais do EBS anexados à instância do EC2
+ Adicionar novos volumes do EBS ou alterar o tipo de volume de gp2 para gp3
+ Alterar o formato da extensão para o parâmetro `LOG_ARCHIVE_FORMAT` (obrigatório `*.arc`)
+ Multiplexar ou alterar a localização e o nome do arquivo de controle (tem que ser `/rdsdbdata/db/*DBNAME*/controlfile/control-01.ctl`)

Para obter informações adicionais sobre essas e outras configurações não suportadas, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-troubleshooting.html#custom-troubleshooting.fix-unsupported).

**Versões do produto**

Para versões do banco de dados Oracle e classes de instância suportadas pelo Amazon RDS Custom, consulte [Requisitos e limitações do Amazon RDS Custom for Oracle](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html).

## Arquitetura
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-architecture"></a>

**Pilha de tecnologias de destino**
+ Application Load Balancer
+ Amazon EFS
+ Amazon RDS Custom para Oracle
+ AWS Secrets Manager
+ Amazon Simple Storage Service (Amazon S3)

**Arquitetura de destino**

O diagrama de arquitetura a seguir representa um PeopleSoft sistema em execução em uma única [zona de disponibilidade](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) na AWS. Não é possível acessar o aplicativo por meio de um [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). Tanto o aplicativo quanto os bancos de dados estão em sub-redes privadas, e a instância de banco de dados Amazon RDS Custom e Amazon EC2 usam um sistema de arquivos compartilhado Amazon EFS para armazenar e acessar os arquivos de backup do RMAN. O Amazon S3 é usado para criar o mecanismo Oracle RDS personalizado e para armazenar os metadados de logs redo.

![\[Servidores web, servidores de aplicações, Amazon RDS Custom, uma instância de banco de dados EC2 e Amazon EFS em sub-redes privadas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bd423dfe-f3c8-42d9-ac84-bf3d093c52bc/images/0e9a6431-e6c7-4047-ae6c-85311938041f.jpeg)


## Ferramentas
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-tools"></a>

**Ferramentas**

*Serviços da AWS*
+ O [Amazon RDS Custom para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) é um serviço de banco de dados gerenciado para aplicações herdadas, personalizadas e em pacote que exigem acesso ao sistema operacional subjacente e ao ambiente de banco de dados. Ele automatiza as tarefas de administração do banco de dados, como backups e alta disponibilidade. 
+ 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. Esse padrão usa um sistema de arquivos compartilhado Amazon EFS para armazenar e acessar os arquivos de backup do RMAN.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente. Nesse padrão, você recupera as senhas de usuário do banco de dados do Secrets Manager para criar os usuários `RDSADMIN` e `ADMIN`, e alterar as senhas `sys` e `system`.
+ 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.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, é possível distribuir o tráfego entre instâncias, contêineres e endereços IP do Amazon Elastic Compute Cloud (Amazon EC2) em uma ou mais Zonas de disponibilidade. Este padrão usa um Application Load Balancer.

*Outras ferramentas*
+ O Oracle Recovery Manager (RMAN) fornece suporte de backup e recuperação para bancos de dados Oracle. Esse padrão usa o RMAN para realizar um backup dinâmico do banco de dados Oracle de origem no Amazon EC2, que é restaurado no Amazon RDS Custom.

## Práticas recomendadas
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-best-practices"></a>
+ Para parâmetros de inicialização do banco de dados, personalize o perfil padrão fornecido pela instância de banco de dados personalizada do Amazon RDS PeopleSoft em vez de usar o spfile do banco de dados de origem da Oracle. Isso ocorre porque espaços em branco e comentários causam problemas ao criar réplicas de leitura no Amazon RDS Custom. Para obter mais informações sobre os parâmetros de inicialização do banco de dados, consulte a Observação de Suporte Oracle 1100831.1 (requer uma conta do [Oracle Support](https://support.oracle.com/portal/)).
+ O Amazon RDS Custom usa o gerenciamento automático de memória Oracle por padrão. Se quiser usar o kernel Hugemem, você pode configurar o Amazon RDS Custom para usar o gerenciamento automático de memória compartilhada em vez disso.
+ Deixe o `memory_max_target` parâmetro habilitado por padrão. A estrutura usa isso em segundo plano para criar réplicas de leitura.
+ Ative o banco de dados Oracle Flashback. Esse atributo é útil ao restabelecer o modo de espera em cenários de teste de failover (não transição).

## Épicos
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-epics"></a>

### Configurar a instância de banco de dados e o sistema de arquivos
<a name="set-up-the-db-instance-and-file-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a instância de banco de dados. | No console do Amazon RDS, crie uma instância de banco de dados Amazon RDS Custom for Oracle com um nome de banco de dados chamado FSDMO92 (ou o nome do seu banco de dados de origem).Para obter instruções, consulte [Como trabalhar com o Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html) na documentação da AWS e a postagem do blog [Amazon RDS Custom for Oracle: New Control Capabilities in Database Environment](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/). Isso garante que o nome do banco de dados seja definido com o mesmo nome do banco de dados de origem. (Se mantido em branco, a instância do EC2 e o nome do banco de dados serão definidos como `ORCL`.) | DBA | 

### Execute um backup completo do RMAN do banco de dados de origem Amazon EC2
<a name="perform-an-rman-full-backup-of-the-source-amazon-ec2-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um script de backup. | Crie um script de backup RMAN para fazer backup do banco de dados no sistema de arquivos Amazon EFS que você montou (`/efs`no exemplo a seguir). Você pode usar o código de exemplo ou executar um dos scripts RMAN existentes.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/u01/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />SQL "ALTER SYSTEM SWITCH LOGFILE";<br />SQL "ALTER SESSION SET NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"";<br />RUN<br />{<br />  ALLOCATE CHANNEL ch11 TYPE DISK MAXPIECESIZE 5G;<br />  ALLOCATE CHANNEL ch12 TYPE DISK MAXPIECESIZE 5G;<br />  BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_FULL' ;<br />  SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";<br />  BACKUP FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_ARCHIVE' ARCHIVELOG ALL DELETE ALL INPUT ;<br />  BACKUP CURRENT CONTROLFILE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_CONTROL';<br />}<br />EXIT;<br />EOF<br />  </pre> | DBA | 
| Execute o script de backup. | Para executar o script de backup do RMAN, faça login como Oracle Home User e execute o script.<pre>$  chmod a+x rman_backup.sh<br />$ ./rman_backup.sh &</pre> | DBA | 
| Verifique se há erros e anote o nome do arquivo de backup. | Verifique se há erros no arquivo de log RMAN. Se tudo estiver bem, liste o backup do arquivo de controle executando o comando a seguir.<pre>RMAN> list backup of controlfile;<br /><br />using target database control file instead of recovery catalog<br /></pre>Anote o nome do arquivo de saída.<pre>List of Backup Sets<br />===================<br /><br />BS Key  Type LV Size       Device Type Elapsed Time Completion Time<br />------- ---- -- ---------- ----------- ------------ ---------------<br />12      Full    21.58M     DISK        00:00:01     13-JUL-22<br />        BP Key: 12   Status: AVAILABLE  Compressed: NO  Tag: TAG20220713T150155<br />        Piece Name: /efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL<br /> Control File Included: Ckp SCN: 16559159985898   Ckp time: 13-JUL-22<br /></pre>Você usará o arquivo de controle de backup `/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL` ao restaurar o banco de dados no Amazon RDS Custom. | DBA | 

### Encerre o nível do aplicativo de origem
<a name="shut-down-the-source-application-tier"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Feche o aplicativo.  | Para desligar a camada do aplicativo de origem, use o utilitário `psadmin` ou o utilitário de linha de comando `psadmin`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA, administrador PeopleSoft  | 

### Configurar o banco de dados do Amazon RDS Custom de destino
<a name="configure-the-target-amazon-rds-custom-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o pacote rpm nfs-utils. | Para instalar o pacote `nfs-utils rpm`, execute o seguinte comando.<pre>$ yum install -y nfs-utils<br /></pre> | DBA | 
| Monte o armazenamento EFS. | Obtenha o comando de montagem do Amazon EFS na página do console do Amazon EFS. Monte o sistema de arquivos EFS na instância do Amazon RDS usando um cliente de Sistema de arquivos de rede (NFS).<pre>sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs<br />sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs</pre> | DBA | 

### Elimine o banco de dados inicial e crie os diretórios para armazenar os arquivos do banco de dados
<a name="drop-the-starter-database-and-create-the-directories-to-store-the-database-files"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Pausar o modo de automação. | Você precisa pausar o [modo de automação](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing) em sua instância de banco de dados do Amazon RDS Custom antes de prosseguir com as próximas etapas, para garantir que a automação não interfira na atividade de restauração do RMAN.É possível pausar a automação usando o console da AWS ou o comando AWS Command Line Interface (AWS CLI) (AWS CLI) (certifique-se de configurar a [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) primeiro).<pre>aws rds modify-db-instance \<br />--db-instance-identifier peoplesoft-fscm-92 \<br />--automation-mode all-paused \<br />--resume-full-automation-mode-minute 360 \<br />--region eu-west-1<br /></pre>Ao especificar a duração da pausa, certifique-se de deixar tempo suficiente para a restauração do RMAN. Isso depende do tamanho do banco de dados de origem, portanto modifique o valor 360 devidamente.Além disso, certifique-se de que o tempo total da automação pausada não se sobreponha à janela de backup ou manutenção do banco de dados. | DBA | 
| Crie e modifique o arquivo de parâmetros para PeopleSoft | Para criar e modificar o pfile para PeopleSoft, use o pfile padrão criado com a instância de banco de dados personalizada do Amazon RDS. Adicione os parâmetros de que você precisa PeopleSoft.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Remova o banco de dados inicial. | Para remover o banco de dados Amazon RDS Custom existente, use o código a seguir.<pre>$ sqlplus / as sysdba<br />SQL> shutdown immediate;<br />SQL> startup mount exclusive restrict;<br />SQL> drop database;<br />SQL> exit</pre> |  | 
| Restaure o banco de dados do Amazon RDS Custom a partir do backup. | Restaure o banco de dados usando o script a seguir. O script primeiro restaurará o arquivo de controle e, em seguida, restaurará todo o banco de dados a partir das partes de backup armazenadas na montagem do EFS.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/rdsdbdata/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />restore controlfile from "/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL";<br />alter database mount;<br />run<br />{<br />set newname for database to '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />SET NEWNAME FOR TEMPFILE 1 TO '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />RESTORE DATABASE;<br />SWITCH DATAFILE ALL;<br />SWITCH TEMPFILE ALL;<br />RECOVER DATABASE;<br />}<br />EOF<br />sqlplus / as sysdba >> $LOGPATH/rman-${ORACLE_SID}-$Dt<<-EOF<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo01.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo01.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo02.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo02.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo03.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo03.log';<br />alter database clear unarchived logfile group 1;<br />alter database clear unarchived logfile group 2;<br />alter database clear unarchived logfile group 3;<br />alter database open resetlogs;<br />EXIT<br />EOF<br /></pre> | DBA | 

### Recupere as senhas do Secrets Manager, crie usuários e altere senhas
<a name="retrieve-passwords-from-secrets-manager-create-users-and-change-passwords"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Recupere a senha do Secrets Manager. | É possível executar esta etapa usando o console da AWS ou a CLI da AWS. As etapas a seguir mostram instruções para o console.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Crie o usuário RDSADMIN. | `RDSADMIN` é o usuário do banco de dados para monitorar e orquestrar a instância de banco de dados do Amazon RDS Custom. Como o banco de dados inicial foi descartado e o banco de dados de destino foi restaurado da origem usando o RMAN, você deverá recriar esse usuário após a operação de restauração para garantir que o monitoramento do Amazon RDS Custom funcione conforme o esperado. Você também precisa criar um perfil e um espaço de tabela separados para o usuário `RDSADMIN`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Crie o usuário mestre. | Como o banco de dados inicial foi descartado e o banco de dados de destino foi restaurado da origem usando o RMAN, você deverá recriar o usuário mestre. Neste exemplo, o nome do usuário mestre é `admin`.<pre>SQL> create user admin identified by <password>;<br />SQL> grant dba to admin</pre> | DBA | 
| Alterar as senhas do sistema. | Altere as senhas do sistema usando a senha que você recuperou do Secrets Manager.<pre>SQL> alter user sys identified by xxxxxxxxxxx;<br />SQL> alter user system identified by xxxxxxxxxx;</pre>Se você não alterar essas senhas, o Amazon RDS Custom exibirá a mensagem de erro “O usuário de monitoramento do banco de dados ou as credenciais do usuário foram alteradas”. | DBA | 

### Configure as entradas de TNS para Amazon RDS Custom e PeopleSoft
<a name="configure-the-tns-entries-for-amazon-rds-custom-and-peoplesoft"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o arquivo tnsnames. | Para se conectar ao banco de dados a partir da camada do aplicativo, configure o arquivo `tnsnames.ora` para que você possa se conectar ao banco de dados a partir da camada do aplicativo. No exemplo a seguir, você pode ver que há um link virtual para o `tnsnames.ora` arquivo, mas o arquivo está vazio por padrão. <pre>$ cd /rdsdbbin/oracle/network/admin<br />$ ls -ltr<br />-rw-r--r-- 1 rdsdb database 1536 Feb 14  2018 shrept.lst<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 listener.ora -> /rdsdbdata/config/listener.ora<br />lrwxrwxrwx 1 rdsdb database   28 Apr  5 13:19 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Crie o softlink spfile
<a name="create-the-spfile-softlink"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o softlink spfile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Execute etapas de pós-migração
<a name="perform-post-migration-steps"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide o esquema, as conexões e as tarefas de manutenção. | Para finalizar a migração, realize as tarefas a seguir.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

## Recursos relacionados
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-resources"></a>
+ [Trabalhar com o Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html)
+ [Amazon RDS Custom para Oracle: novos recursos de controle no ambiente de banco de dados](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) (publicação no blog)
+ [Integre o Amazon RDS Custom for Oracle com o Amazon EFS](https://aws.amazon.com/blogs/database/integrate-amazon-rds-custom-for-oracle-with-amazon-efs/) (publicação no blog)
+ [Configurando o Amazon RDS como um PeopleSoft banco de dados Oracle (whitepaper](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf) da AWS)

# Migre a funcionalidade Oracle ROWID para o PostgreSQL na AWS
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws"></a>

*Rakesh Raghav e Ramesh Pathuri, Amazon Web Services*

## Resumo
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-summary"></a>

Esse padrão descreve as opções para migrar a funcionalidade de `ROWID` pseudocoluna no Oracle Database para um banco de dados PostgreSQL no Amazon Relational Database Service (Amazon RDS) para PostgreSQL, Amazon Aurora PostgreSQL Compatible Edition ou Amazon Elastic Compute Cloud (Amazon). EC2

Em um banco de dados Oracle, a pseudocoluna `ROWID` é o endereço físico de uma linha em uma tabela. Essa pseudocoluna é usada para identificar de forma exclusiva uma linha, mesmo que a chave primária não esteja presente em uma tabela. O PostgreSQL tem uma pseudocoluna similar chamada `ctid`, mas ela não pode ser usada como a `ROWID`. Conforme explicado na documentação do [PostgreSQL](https://www.postgresql.org/docs/current/ddl-system-columns.html), `ctid` pode mudar se for atualizado ou após cada processo `VACUUM`.

Há três maneiras de criar a funcionalidade de pseudocoluna `ROWID` no PostgreSQL:
+ Use uma coluna de chave primária em vez de `ROWID` para identificar uma linha em uma tabela.
+ Use uma primary/unique chave lógica (que pode ser uma chave composta) na tabela. 
+ Adicione uma coluna com valores gerados automaticamente e torne-a uma primary/unique chave para `ROWID` imitar.

Esse padrão mostra todas as três implementações e descreve as vantagens e desvantagens de cada opção.

## Pré-requisitos e limitações
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Experiência em codificação processual Language/PostgreSQL (PL/pgSQL)
+ Origem: banco de dados Oracle
+ Um cluster compatível com o Amazon RDS for PostgreSQL ou Aurora PostgreSQL, ou uma instância para hospedar o banco de dados PostgreSQL EC2 

**Limitações**
+ Esse padrão fornece soluções alternativas para a funcionalidade `ROWID`. O PostgreSQL não fornece um equivalente a `ROWID` do Oracle Database.

**Versões do produto**
+ PostgreSQL 11.9 ou superior

## Arquitetura
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-architecture"></a>

**Pilha de tecnologia de origem**
+ Oracle Database

**Pilha de tecnologias de destino**
+ Compatível com Aurora PostgreSQL, Amazon RDS for PostgreSQL ou uma instância com um banco de dados PostgreSQL EC2 

![\[Conversão de um banco de dados Oracle em PostgreSQL na AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9a2ce994-4f68-4975-aab2-796cc20a3c82/images/6e7c2ef6-f440-476a-9003-f1f166718e15.png)


**Opções de implementação**

Há três opções para contornar a falta de suporte de `ROWID` no PostgreSQL, dependendo se sua tabela tem uma chave primária ou um índice exclusivo, uma chave primária lógica ou um atributo de identidade. Sua escolha depende dos cronogramas do projeto, da fase atual de migração e das dependências do código do aplicativo e do banco de dados.


| 
| 
| Opção | Description | Vantagens | Desvantagens | 
| --- |--- |--- |--- |
| **Chave primária ou índice exclusivo** | Se sua tabela Oracle tiver uma chave primária, você poderá usar os atributos dessa chave para identificar uma linha de forma exclusiva.  | Sem dependência de atributos de banco de dados proprietários.Impacto mínimo no desempenho, pois os campos da chave primária são indexados. | Requer alterações no código do aplicativo e do banco de dados que depende da mudança `ROWID` para campos de chave primária.  | 
| ** primary/unique Chave lógica** | Se sua tabela Oracle tiver uma chave primária, lógica, você poderá usar os atributos dessa chave para identificar uma linha de forma exclusiva. Uma chave primária lógica consiste em um atributo ou conjunto de atributos que pode identificar uma linha de forma exclusiva, mas não é aplicada ao banco de dados por meio de uma restrição. | Sem dependência de atributos de banco de dados proprietários. | Requer alterações no código do aplicativo e do banco de dados que depende da mudança `ROWID` para campos de chave primária.Impacto significativo no desempenho se os atributos da chave primária lógica não forem indexados. No entanto, você pode adicionar um índice exclusivo para evitar problemas de desempenho. | 
| **Atributo de identidade** | se sua tabela Oracle não tiver uma chave primária, você poderá criar um campo adicional como `GENERATED ALWAYS AS IDENTITY`. Esse atributo gera um valor exclusivo sempre que os dados são inseridos na tabela, portanto, ele pode ser usado para identificar de forma exclusiva uma linha para operações de linguagem de manipulação de dados (DML). | Sem dependência de atributos de banco de dados proprietários.O banco de dados PostgreSQL preenche o atributo e mantém sua exclusividade. | Requer alterações no código do aplicativo e do banco de dados que depende de `ROWID` para mudar para o atributo de identidade.Impacto significativo no desempenho se o campo adicional não estiver indexado. No entanto, você pode adicionar um índice para evitar problemas de desempenho. | 

## Ferramentas
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-tools"></a>
+ [O Amazon Relational Database Service (Amazon RDS) para PostgreSQL ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)ajuda você a configurar, operar e escalar um banco de dados relacional PostgreSQL na Nuvem AWS.
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ A ‭[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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando. Nesse padrão, você pode usar a AWS CLI para executar comandos SQL por meio do **pGADmin**.
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.
+ O [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.

## Épicos
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-epics"></a>

### Identificar as tabelas de fontes
<a name="identify-the-source-tables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique as tabelas da Oracle que usam o atributo `ROWID`. | Use a AWS Schema Conversion Tool (AWS SCT) para identificar tabelas Oracle que tenham a funcionalidade `ROWID`. Para obter mais informações, consulte a [documentação da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID).—ou—No Oracle, use a visualização `DBA_TAB_COLUMNS` para identificar tabelas que tenham um atributo `ROWID`. Esses campos podem ser usados para armazenar caracteres alfanuméricos de 10 bytes. Determine o uso e converta-os em um campo `VARCHAR`, se for apropriado. | DBA ou desenvolvedor | 
| Identifique o código que faz referência a essas tabelas. | Use o AWS SCT para gerar um relatório de avaliação de migração para identificar procedimentos afetados por `ROWID`. Para obter mais informações, consulte a [documentação da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.html).—ou—No banco de dados Oracle de origem, use o campo de texto da tabela `dba_source` para identificar objetos que usam a funcionalidade `ROWID`. | DBA ou desenvolvedor | 

### Determine o uso de chaves primárias
<a name="determine-primary-key-usage"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique tabelas que não têm chaves primárias. | No banco de dados Oracle de origem, use `DBA_CONSTRAINTS` para identificar tabelas que não têm chaves primárias. Essas informações ajudarão você a determinar a estratégia para cada tabela. Por exemplo:<pre>select dt.*<br />from dba_tables dt<br />where not exists (select 1<br />                  from all_constraints ct<br />                  where ct.owner = Dt.owner<br />                    and ct.table_name = Dt.table_name<br />                    and ct.constraint_type = 'P'<br />                  )<br />and dt.owner = '{schema}'</pre> | DBA ou desenvolvedor | 

### Identifique e aplique a solução
<a name="identify-and-apply-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Aplique alterações em tabelas que tenham uma chave primária lógica ou definida.  | Faça as alterações no código do aplicativo e do banco de dados mostradas na seção [Informações adicionais](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional) para usar uma chave primária exclusiva ou uma chave primária lógica para identificar uma linha na tabela. | DBA ou desenvolvedor | 
| Inclua um campo adicional às tabelas que não tenham uma chave primária lógica ou definida. | Adicione um atributo do tipo `GENERATED ALWAYS AS IDENTITY`. Faça as alterações no código do aplicativo e do banco de dados mostradas na seção de [Informações adicionais](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional). | DBA ou desenvolvedor | 
| Adicione um índice, se necessário. | Inclua um índice ao campo adicional ou à chave primária lógica para melhorar o desempenho do SQL. | DBA ou desenvolvedor | 

## Recursos relacionados
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-resources"></a>
+ [PostgreSQL CTID](https://www.postgresql.org/docs/current/ddl-system-columns.html) (Documentação do PostgreSQL)
+ [Colunas geradas](https://www.postgresql.org/docs/current/ddl-generated-columns.html) (Documentação do PostgreSQL)
+ [Pseudocoluna ROWID](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html#GUID-F6E0FBD2-983C-495D-9856-5E113A17FAF1) (Documentação da Oracle)

## Mais informações
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional"></a>

As seções a seguir fornecem códigos de exemplos Oracle e PostgreSQL para ilustrar as três abordagens.

**Cenário 1: usar uma chave primária exclusiva**

Nos exemplos a seguir, você cria a tabela `testrowid_s1` com `emp_id` como a chave primária.

*Código Oracle:*

```
create table testrowid_s1 (emp_id integer, name varchar2(10), CONSTRAINT testrowid_pk PRIMARY KEY (emp_id));
INSERT INTO testrowid_s1(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s1(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s1(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s1(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 empname2
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4

UPDATE testrowid_s1 SET name = 'Ramesh' WHERE rowid = 'AAAF3pAAAAAAAMOAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 Ramesh
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4
```

*Código PostgreSQL:*

```
CREATE TABLE public.testrowid_s1
(
    emp_id integer,
    name character varying,
    primary key (emp_id)
);

insert into public.testrowid_s1 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s1 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Cenário 2: usar uma chave primária lógica**

Nos exemplos a seguir, você cria a tabela `testrowid_s2` com `emp_id` a chave primária.

*Código Oracle:*

```
create table testrowid_s2 (emp_id integer, name varchar2(10) );
INSERT INTO testrowid_s2(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s2(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s2(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s2(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 empname2
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4

UPDATE testrowid_s2 SET name = 'Ramesh' WHERE rowid = 'AAAF3rAAAAAAAMeAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 Ramesh
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4
```

*Código PostgreSQL:*

```
CREATE TABLE public.testrowid_s2
(
    emp_id integer,
    name character varying
);

insert into public.testrowid_s2 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s2 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Cenário 3: usar um atributo de identidade**

Nos exemplos a seguir, você cria a tabela `testrowid_s3` sem chave primária e usando um atributo de identidade.

*Código Oracle:*

```
create table testrowid_s3 (name varchar2(10));
INSERT INTO testrowid_s3(name) values ('empname1');
INSERT INTO testrowid_s3(name) values ('empname2');
INSERT INTO testrowid_s3(name) values ('empname3');
INSERT INTO testrowid_s3(name) values ('empname4');
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB empname2
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4

UPDATE testrowid_s3 SET name = 'Ramesh' WHERE rowid = 'AAAF3sAAAAAAAMmAAB' ;
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB Ramesh
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4
```

*Código PostgreSQL:*

```
CREATE TABLE public.testrowid_s3
(
    rowid_seq bigint generated always as identity,
    name character varying
);

insert into public.testrowid_s3 (name) values 
('empname1'),('empname2'),('empname3'),('empname4');

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         2 | empname2
         3 | empname3
         4 | empname4

update testrowid_s3 set name = 'Ramesh' where rowid_seq = 2 ;

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         3 | empname3
         4 | empname4
         2 | Ramesh
```

# Migre códigos de erro do banco de dados Oracle para um banco de dados compatível com Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database"></a>

*Sai Parthasaradhi e Veeranjaneyulu Grandhi, Amazon Web Services*

## Resumo
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Esse padrão mostra como migrar códigos de erro do banco de dados Oracle para um banco de dados do [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) usando uma tabela de metadados predefinida.

Os códigos de erro do Oracle Database nem sempre têm um código de erro PostgreSQL correspondente. Essa diferença nos códigos de erro pode dificultar a configuração da lógica de processamento dos procedimentos ou funções na arquitetura PostgreSQL de destino.

Você pode simplificar o processo armazenando os códigos de erro do banco de dados de origem e destino que são significativos para o seu PL/pgSQL programa em uma tabela de metadados. Em seguida, configure a tabela para sinalizar códigos de erro válidos do banco de dados Oracle e mapeá-los para seus equivalentes do PostgreSQL antes de continuar com a lógica restante do processo. Se o código de erro do Oracle Database não estiver na tabela de metadados, o processo será encerrado com a exceção. Em seguida, você pode revisar manualmente os detalhes do erro e adicionar o novo código de erro à tabela, se o programa exigir.

Ao usar essa configuração, seu banco de dados compatível com Amazon Aurora PostgreSQL pode lidar com erros da mesma forma que seu banco de dados Oracle de origem.

**nota**  
A configuração de um banco de dados do PostgreSQL para lidar adequadamente com os códigos de erro do Oracle Database normalmente exige alterações no banco de dados e no código da aplicação.

## Pré-requisitos e limitações
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle de origem com serviços de instância e de receptor em execução
+ Um cluster compatível com o Amazon Aurora PostgreSQL que está em execução
+ Familiaridade com o Oracle Database
+ Familiaridade com bancos de dados PostgreSQL

## Arquitetura
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

O diagrama a seguir mostra um exemplo de fluxo de trabalho de banco de dados compatível com Amazon Aurora PostgreSQL para validação e tratamento de códigos de erro de dados:

![\[Validação e tratamento de códigos de erro de dados para um banco de dados do Aurora compatível com PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Uma tabela contém os códigos de erro e as classificações do Oracle Database e seus códigos de erro e classificações equivalentes do PostgreSQL. A tabela inclui uma coluna **valid\$1error** que classifica se códigos de erro específicos e predefinidos são válidos ou não.

1. **Quando uma PL/pgSQL função (**func\$1processdata**) lança uma exceção, ela invoca uma segunda função (error\$1validation). PL/pgSQL **

1. A função **error\$1validation** aceita o código de erro do Oracle Database como argumento de entrada. Em seguida, a função verifica o código de erro recebido em relação à tabela para ver se o erro está incluído na tabela.

1. Se o código de erro do banco de dados Oracle estiver incluído na tabela, a função **error\$1validation** retornará um valor **VERDADEIRO** e a lógica do processo continuará. Se o código de erro não estiver incluído na tabela, a função retornará um valor **FALSO **e a lógica do processo será encerrada com uma exceção.

1. Quando a função retorna um valor **FALSE**, os detalhes do erro são revisados manualmente pelo líder funcional do aplicativo para determinar sua validade.

1. O novo código de erro é então adicionado manualmente à tabela ou não. Se o código de erro for válido e adicionado à tabela, a função **error\$1validation** retornará um valor **TRUE** na próxima vez que a exceção ocorrer. Se o código de erro não for válido e o processo falhar quando a exceção ocorrer, o código de erro não será adicionado à tabela.

**Pilha de tecnologia**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Oracle SQL Developer

## Ferramentas
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID, que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento e desenvolvimento de código aberto para o PostgreSQL. Fornece uma interface gráfica que simplifica a criação, manutenção e uso de objetos de banco de dados.
+ [O Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) é um ambiente de desenvolvimento gratuito e integrado que simplifica o desenvolvimento e o gerenciamento do Oracle Database em implantações tradicionais e na nuvem.

## Épicos
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Migre códigos de erro do banco de dados Oracle para seu banco de dados compatível com Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tabela no Amazon Aurora compatível com PostgreSQL. | Execute o seguinte comando [CREATE TABLE](https://www.postgresql.org/docs/current/sql-createtable.html) do PostgreSQL:<pre>(<br /><br />    source_error_code numeric NOT NULL,<br /><br />    target_error_code character varying NOT NULL,<br /><br />    valid_error character varying(1) NOT NULL<br /><br />); </pre> | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Adicione os códigos de erro do PostgreSQL e seus códigos de erro do Oracle Database correspondentes à tabela. | Execute o comando [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) do PostgreSQL para adicionar os valores de código de erro necessários à tabela **error\$1codes**.Os códigos de erro do PostgreSQL devem usar o tipo de dados variável de caracteres (valor **SQLSTATE**). Os códigos de erro do Oracle devem usar o tipo de dados numéricos (valor **SQLCODE**).**Exemplo de instruções de inserção:**<pre>insert into error_codes values (-1817,'22007','Y');<br />insert into error_codes values (-1816,'22007','Y');<br />insert into error_codes values (-3114,'08006','N');</pre>Se você estiver capturando exceções específicas da Oracle na conectividade Java com o banco de dados (JDBC), será necessário substituir essas exceções por exceções genéricas compatíveis com diversos bancos de dados ou usar exceções específicas do PostgreSQL. | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Crie uma PL/pgSQL função para validar códigos de erro. | Crie uma PL/pgSQL função executando o comando CREATE FUNCTION do [PostgreSQL](https://www.postgresql.org/docs/current/sql-createfunction.html). Certifique-se de que a função faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 
| Revise manualmente os novos códigos de erro conforme eles são registrados pela PL/pgSQL função. | Revise manualmente os novos códigos de erro.Se um novo código de erro for válido para seu caso de uso, adicione-o à tabela **error\$1codes** executando o comando **INSERT** do PostgreSQL.- ou -Se um novo código de erro não for válido para seu caso de uso, não o adicione à tabela. A lógica do processo continuará falhando e será encerrada, com exceção, quando o erro ocorrer. | Desenvolvedor do PostgreSQL, Oracle, para PostgreSQL RDS/Aurora  | 

## Recursos relacionados
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Apêndice A. Códigos de erro do PostgreSQL](https://www.postgresql.org/docs/11/errcodes-appendix.html) (Documentação do PostgreSQL)

[Mensagens de erro do banco de dados](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm) (Documentação do Oracle Database)

# Migre o SAP ASE na Amazon EC2 para o Amazon Aurora compatível com PostgreSQL usando o AWS SCT e o AWS DMS
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms"></a>

*Amit Kumar e Ankit Gupta, Amazon Web Services*

## Resumo
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-summary"></a>

Esse padrão descreve como migrar um banco de dados SAP Adaptive Server Enterprise (SAP ASE) hospedado em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para a edição compatível com Amazon Aurora PostgreSQL usando o AWS Schema Conversion Tool (AWS SCT) e o AWS Database Migration Service (AWS DMS). O padrão se concentra nas conversões de linguagem de definição de dados (DDL) para objetos armazenados e na migração de dados.

O Aurora compatível com PostgreSQL oferece suporte a workloads de processamento de transações online (OLTP). Esse serviço gerenciado fornece configurações que escalam automaticamente sob demanda. Ele pode iniciar, desligar, aumentar e reduzir a escala verticalmente e automaticamente do seu banco de dados com base nas necessidades do seu aplicativo. Você pode executar seu banco de dados na nuvem sem gerenciar nenhuma instância de banco de dados. O Aurora compatível com PostgreSQL oferece uma opção econômica para workloads pouco frequentes, intermitentes ou imprevisíveis.

O processo de migração consiste em duas fases principais:
+ Converter esquema de bancos de dados usando a AWS SCT
+ Migração dos dados usando o AWS DMS

Instruções detalhadas para ambas as fases são fornecidas na seção *Épicos*. Para obter informações sobre a solução de problemas específicos do uso do AWS DMS com bancos de dados SAP ASE, consulte [Solução de problemas com o SAP ASE](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SAP) na documentação do AWS DMS.

## Pré-requisitos e limitações
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados SAP ASE de origem em uma EC2 instância com serviços de servidor, banco de dados e ouvinte em execução
+ Um banco de dados de destino compatível com o Aurora PostgreSQL

**Limitações**
+ O número da porta para conexões deve ser 5432.
+ O atributo [huge\$1pages](https://www.postgresql.org/docs/9.6/static/runtime-config-resource.html) está ativado por padrão, mas pode ser modificado.
+ Point-in-time a granularidade de recuperação (PITR) é de 5 minutos.
+ Atualmente, a replicação entre regiões não está disponível.
+ O tamanho de armazenamento máximo para um banco de dados do Aurora é de 128 TiB.
+ É possível criar até 15 réplicas de leitura.
+ O limite de tamanho da tabela é limitado somente pelo tamanho do volume do cluster do Aurora, portanto, o tamanho máximo da tabela para um cluster de banco de dados Aurora compatível com PostgreSQL é de 32 TiB. Recomendamos que você siga as práticas recomendadas do design de tabelas, como o particionamento de tabelas grandes.

**Versões do produto**
+ Banco de dados de origem: o AWS DMS atualmente oferece suporte ao SAP ASE 15, 15.5, 15.7 e 16.x. Consulte o [Guia do usuário do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html) para obter as informações mais recentes sobre o suporte à versão SAP ASE.
+ Banco de dados de destino: PostgreSQL 9.4 e versões posteriores (para a versão 9.x), 10.x, 11.x, 12.x, 13.x e 14.x. Consulte o [Guia do usuário do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) para ver as versões mais recentes suportadas do PostgreSQL.
+ Amazon Aurora 1.x ou superior. Para as informações mais recentes, consulte as [versões do Aurora compatível com PostgreSQL e versões de mecanismo](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) na documentação do Aurora.

## Arquitetura
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados SAP ASE em execução na Amazon EC2

**Pilha de tecnologias de destino**
+ Banco de dados Aurora compatível com PostgreSQL

**Arquitetura de migração**

![\[Migração de um banco de dados do SAP ASE para o Aurora compatível com PostgreSQL usando o AWS SCT e o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/07fbdea1-0242-40ae-8e5f-2ce4a620a047/images/a3b018f3-2e7b-4c37-a218-870c56132acb.png)


## Ferramentas
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-tools"></a>
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e em conformidade com ACID que ajuda você a configurar, operar e escalar as implantações de PostgreSQL.
+ O [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
+ O [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) oferece suporte a vários bancos de dados de origem e destino diferentes. Para obter mais informações, consulte [Origens para migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) e [Destinos para migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) na documentação do AWS DMS. Para obter suporte mais abrangente à versão e aos atributos, recomendamos que você use a versão mais recente do AWS DMS. 

## Épicos
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-epics"></a>

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o acesso à rede na EC2 instância de origem. | Configure grupos de segurança na EC2 instância que hospeda seu banco de dados SAP ASE de origem.Para obter instruções, consulte [Grupos EC2 de segurança da Amazon para instâncias Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html?icmpid=docs_ec2_console) na EC2 documentação da Amazon. | Administrador de sistemas | 
| Crie seu cluster de banco de dados de destino Aurora compatível com PostgreSQL. | Instale, configure e execute um cluster Aurora compatível com PostgreSQL para seu banco de dados de destino.Para obter mais informações, consulte [Criar um cluster de banco de dados do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) na documentação do Aurora. | DBA | 
| Configure a autorização para o cluster de banco de dados de destino. | Configure grupos de segurança e firewalls para o banco de dados de destino.Para obter instruções, consulte [Criar um cluster de banco de dados do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) na documentação do Aurora. | DBA, administrador de sistemas | 

### Converta seu esquema do banco de dados com a AWS SCT
<a name="convert-your-database-schema-with-aws-sct"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a AWS SCT. | Inicie a AWS SCT seguindo as instruções na [documentação da AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)A AWS SCT oferece uma interface de usuário baseada em projeto que permite converter automaticamente o esquema do banco de dados de origem do SAP ASE em um formato que seja compatível com a instância do banco de dados Aurora de destino compatível com PostgreSQL. | DBA | 
| Crie endpoints da AWS SCT. | Crie endpoints para os bancos de dados de origem do SAP ASE e destino do PostgreSQL.Para obter instruções, consulte a [documentação da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers). | DBA | 
| Crie um relatório de avaliação. | Crie um relatório de avaliação da migração do banco de dados para avaliar a migração e detectar quaisquer objetos e funções incompatíveis.Para obter instruções, consulte a [documentação da AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport). | DBA | 
| Converta o esquema.  | Converta o esquema do banco de dados seguindo as instruções na documentação da [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) | DBA | 
| Valide objetos do banco de dados. | Se a AWS SCT não puder converter um objeto de banco de dados, ela identificará seu nome e outros detalhes. Você deve converter esses objetos manualmente.Para identificar essas incompatibilidades, siga as instruções na postagem do blog da AWS [Validar objetos de banco de dados após migrar do SAP ASE para o Amazon RDS para PostgreSQL ou Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/validate-database-objects-after-migrating-from-sap-ase-to-amazon-rds-for-postgresql-or-amazon-aurora-postgresql/). | DBA | 

### Analise a migração do AWS DMS
<a name="analyze-the-aws-dms-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões dos bancos de dados de origem e de destino. | Verifique as versões do banco de dados SAP ASE para verificar a compatibilidade com o AWS DMS. Para obter mais informações, consulte [Fontes do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.title) e [Destinos do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) na documentação do AWS DMS. | DBA | 
| Identifique os requisitos para o tipo e capacidade de armazenamento. | Escolha a capacidade de armazenamento apropriada para o banco de dados de destino com base no tamanho do seu banco de dados de origem. | DBA, administrador de sistemas | 
| Escolha o tipo de instância, a capacidade e outros atributos da instância de replicação. | Escolha o tipo de instância, a capacidade, os atributos de armazenamento e os atributos de rede que atendem às suas necessidades.Para obter orientação, consulte [Escolher a instância de replicação do AWS DMS correta para sua migração](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html) na documentação do AWS DMS. | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança de acesso à rede. | Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino.Siga as orientações em [Como configurar uma rede para uma instância de replicação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html) na documentação do AWS DMS. | DBA, administrador de sistemas | 

### Migrar os dados
<a name="migrate-the-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre os dados criando uma tarefa de migração no AWS DMS. | Para migrar os dados, crie uma tarefa e siga as instruções na [documentação do AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. | DBA | 
| Valide os dados. | Para validar se seus dados foram migrados com precisão do banco de dados de origem para o banco de dados de destino, siga as [diretrizes de validação de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) fornecidas na documentação do AWS DMS. | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique a estratégia de migração de aplicativos. | Escolha uma das [sete estratégias (7Rs)](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html) para migrar aplicativos para a nuvem. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Siga a estratégia de migração de aplicativos. | Conclua as tarefas do banco de dados identificadas pela equipe do aplicativo, incluindo a atualização dos detalhes da conexão DNS do banco de dados de destino e a atualização das consultas dinâmicas.  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. | Mude a conexão do banco de dados de origem ao banco de dados de destino. Para obter mais informações, consulte a seção [Substituição](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/cut-over.html) da *estratégia de migração para bancos de dados relacionais*. | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. | Encerre todas as tarefas de migração, instâncias de replicação, endpoints e outros recursos da AWS SCT e do AWS DMS. Para obter mais informações, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Deleting). | DBA, administrador de sistemas | 
| Revise e valide os documentos do projeto. | Valide todas as etapas na documentação do projeto para garantir que todas as tarefas tenham sido concluídas com êxito. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Fechar o projeto. | Feche o projeto de migração e forneça qualquer feedback. | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-resources"></a>

**Referências**
+ [Habilite conexões criptografadas para instâncias de banco de dados PostgreSQL no Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) (Recomendações da AWS)
+ [Transporte bancos de dados PostgreSQL entre duas instâncias de banco de dados Amazon RDS usando pg\$1transport](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg_transport.html) (Recomendações da AWS)
+ [Preço do Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Práticas recomendadas com o Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraPostgreSQL.BestPractices.html) (documentação do Amazon Aurora)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Uso de um banco de dados SAP ASE como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)

**Tutoriais e vídeos**
+ [Introdução ao AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (vídeo)

# Migrar certificados SSL do Windows para um Application Load Balancer usando o ACM
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm"></a>

*Chandra Sekhar Yaratha e Igor Kovalchuk, Amazon Web Services*

## Resumo
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-summary"></a>

O padrão fornece orientação para o uso do AWS Certificate Manager (ACM) para migrar certificados Secure Sockets Layer (SSL) existentes de sites hospedados em servidores locais ou instâncias do Amazon Elastic Compute Cloud (Amazon EC2) no Microsoft Internet Information Services (IIS). Os certificados SSL podem, então, ser usados com o Elastic Load Balancing na AWS. 

O SSL protege seus dados, confirma sua identidade, fornece melhores classificações nos mecanismos de pesquisa, ajuda a atender aos requisitos do Padrão de segurança de dados do Setor de cartões de pagamento (PCI DSS) e aumenta a confiança do cliente. Os desenvolvedores e as equipes de TI que gerenciam essas workloads querem que seus aplicativos e infraestrutura web, incluindo o servidor IIS e o Windows Server, permaneçam em conformidade com suas políticas de referência.

Esse padrão abrange a exportação manual de certificados SSL existentes do Microsoft IIS, convertendo-os do formato Personal Information Exchange (PFX) para o formato Private Enhanced Mail (PEM) compatível com o ACM e, em seguida, importando-os para o ACM em sua conta da AWS. Também descreve como criar um Application Load Balancer para seu aplicativo e configurar o Application Load Balancer para usar seus certificados importados. Em seguida, as conexões HTTPS são encerradas no Application Load Balancer e você não precisa de mais sobrecarga de configuração no servidor web. Para obter mais informações, consulte [Criar um receptor HTTPS para seu Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html).

Os servidores Windows usam arquivos .pfx ou .p12 para conter o arquivo de chave pública (certificado SSL) e seu arquivo de chave privada exclusivo. A Autoridade de certificação (CA) fornece seu arquivo de chave pública. Você usa seu servidor para gerar o arquivo de chave privada associado em que a solicitação de assinatura de certificado (CSR) foi criada.

## Pré-requisitos e limitações
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) na AWS com pelo menos uma sub-rede privada e uma pública em cada zona de disponibilidade usada por seus destinos
+ IIS versão 8.0 ou superior, em execução no Windows Server 2012 ou superior
+ Um aplicativo web em execução no IIS
+ Acesso de administrador ao servidor IIS

## Arquitetura
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-architecture"></a>

**Pilha de tecnologia de origem**
+ Implementação do servidor web IIS com SSL para garantir que os dados sejam transmitidos com segurança em uma conexão criptografada (HTTPS) 

**Arquitetura de origem **

![\[Arquitetura de origem para migrar certificados SSL do Windows para um Application Load Balancer usando o ACM\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/e63efb6f-205b-4e20-a043-6bc954470191.png)


**Pilha de tecnologias de destino**
+ Certificados do ACM em sua conta da AWS
+ Um Application Load Balancer configurado para usar certificados importados
+ Instâncias do Windows Server nas sub-redes privadas

**Arquitetura de destino**

![\[Arquitetura de destino para migrar certificados SSL do Windows para um Application Load Balancer usando o ACM\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/45ac7fba-fbad-4c74-9b1f-80ca212dae08.png)


 

## Ferramentas
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-tools"></a>
+ [O AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) ajuda você a criar, armazenar e renovar certificados e chaves SSL/TLS X.509 públicos e privados que protegem seus sites e aplicativos da AWS.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre EC2 instâncias, contêineres e endereços IP em uma ou mais zonas de disponibilidade.

## Práticas recomendadas
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-best-practices"></a>
+ Imponha redirecionamentos de tráfego de HTTP para HTTPS.
+ Configure grupos de segurança para seu Application Load Balancer adequadamente a fim de permitir tráfego de entrada somente para portas específicas.
+ Execute suas EC2 instâncias em diferentes zonas de disponibilidade para garantir alta disponibilidade.
+ Configure o domínio do seu aplicativo para apontar para o nome DNS do Application Load Balancer em vez de seu endereço IP.
+ Certifique-se de que o Application Load Balancer tenha [verificações de integridade](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) da camada de aplicativo configuradas.
+ Configure o limite para verificações de integridade.
+ Use CloudWatch a [Amazon](https://aws.amazon.com/cloudwatch/) para monitorar o Application Load Balancer.

## Épicos
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-epics"></a>

### Exportar um arquivo .pfx
<a name="export-a-pfx-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exporte o arquivo .pfx do Windows Server. | Para exportar o certificado SSL como um arquivo .pfx do gerenciador de IIS on-premises no Windows Server:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Seu arquivo .pfx agora deve ser salvo no local e no caminho que você especificou. | Administrador de sistemas | 

### Converter o certificado codificado em PFX para o formato PEM
<a name="convert-the-pfx-encoded-certificate-to-pem-format"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe e instale o kit de ferramentas do OpenSSL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Administrador de sistemas | 
| Converter o certificado codificado em PFX para o formato PEM. | As etapas a seguir convertem o arquivo de certificado assinado e codificado em PFX em três arquivos no formato PEM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Converter o certificado codificado em PFX:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Administrador de sistemas | 

### Importar um certificado para o ACM
<a name="import-a-certificate-into-acm"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare-se para importar o certificado. | No [Console do ACM](https://console.aws.amazon.com/acm/home), escolha **Importar um certificado**. | Administrador de nuvem | 
| Forneça o corpo do certificado. | Para **Corpo do certificado**, cole o certificado codificado PEM que deseja importar. Para obter mais informações sobre os comandos e as etapas descritos nesta e em outras tarefas deste tópico, consulte [Importação de um certificado](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html) na documentação do ACM. | Administrador de nuvem | 
| Forneça a chave privada do certificado. | Para o **Certificado de chave privada**, cole a chave privada não criptografada e codificada PEM correspondente à chave pública do certificado. | Administrador de nuvem | 
| Forneça a cadeia do certificado. | Em **Cadeia de certificados**, cole a cadeia de certificados codificada em PEM, que é armazenada no arquivo `CertificateChain.pem`. | Administrador de nuvem | 
| Importar o certificado. | Selecione **Revisar e importar**. Confirme se as informações sobre seu certificado estão corretas e escolha **Importar**. | Administrador de nuvem | 

### Criar um Application Load Balancer
<a name="create-an-application-load-balancer"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie e configure o balanceador de carga e os receptores. | Siga as instruções na [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) para configurar um grupo de destino e registrar destinos, além de criar um Application Load Balancer e um receptor. Adicione um segundo receptor (HTTPS) para a porta 443. | Administrador de nuvem | 

## Solução de problemas
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O Windows PowerShell não reconhece o comando OpenSSL mesmo depois de você adicioná-lo ao caminho do sistema. | Verifique `$env:path` para assegurar que ele inclui a localização dos binários do OpenSSL.Se isso não acontecer, execute o seguinte comando em PowerShell:<pre>$env:path = $env:path + ";C:\OpenSSL-Win64\bin"</pre> | 

## Recursos relacionados
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-resources"></a>

**Importar um certificado para ACM**
+ [Console do ACM](https://console.aws.amazon.com/acm/home)
+ [Formato de chaves e certificados para importação](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html)
+ [Importar um certificado](https://aws.amazon.com/blogs/security/how-to-import-pfx-formatted-certificates-into-aws-certificate-manager-using-openssl/)
+ [Guia do usuário do AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)

**Criar um Application Load Balancer**
+ [Criar um Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [Guia do usuário para Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)

# Migrar uma fila de mensagens do Microsoft Azure Service Bus para o Amazon SQS
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

## Resumo
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-summary"></a>

Este padrão descreve como migrar um aplicativo web ou de console do .NET Framework ou .NET Core usando a plataforma de mensagens de fila Microsoft Azure Service Bus para o Amazon Simple Queue Service (Amazon SQS).

Os aplicativos usam serviços de mensagens para enviar e receber dados de outros aplicativos. Esses serviços ajudam a criar microsserviços desacoplados e altamente escaláveis, sistemas distribuídos e aplicativos de tecnologia sem servidor na nuvem.

As filas do Azure Service Bus fazem parte de uma infraestrutura mais ampla de mensagens do Azure que oferece suporte a filas e mensagens. publish/subscribe  

O Amazon SQS é um serviço de filas de mensagens totalmente gerenciado que facilita o desacoplamento e a escala de microsserviços, sistemas distribuídos e aplicativos com tecnologia sem servidor. O Amazon SQS elimina a complexidade e a sobrecarga associadas ao gerenciamento e à operação de middleware orientado a mensagens, além de permitir que os desenvolvedores se concentrem em outros trabalhos. Usando o Amazon SQS, você pode enviar, armazenar e receber mensagens entre componentes de software em qualquer volume, sem perder mensagens ou exigir que outros serviços estejam disponíveis.

## Pré-requisitos e limitações
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Um aplicativo web ou de console do .NET Framework ou .NET Core que usa filas do Azure Service Bus (exemplo de código anexo)

**Versões do produto**
+ .NET Framework 3.5 ou superior ou .NET Core 1.0.1, 2.0.0 ou superior

## Arquitetura
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-architecture"></a>

**Pilha de tecnologia de origem**
+ Um aplicativo web ou de console do .NET (Core ou Framework) que usa uma fila do Azure Service Bus para enviar mensagens

 

**Pilha de tecnologias de destino**
+ Amazon SQS

## Ferramentas
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**Ferramentas**
+ Microsoft Visual Studio

**Código **

Criar uma política de AWS Identity and Access Management (IAM) para o Amazon SQS:

1. Faça login no Console de Gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

2. No painel de navegação à esquerda, escolha **Policies (Políticas)** e **Create policy (Criar política)**.

3. Escolha a guia **JSON** e cole o código a seguir:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
            "sqs:DeleteMessage",
            "sqs:GetQueueUrl",
            "sqs:ChangeMessageVisibility",
            "sqs:SendMessageBatch",
            "sqs:ReceiveMessage",
            "sqs:SendMessage",
            "sqs:GetQueueAttributes",
            "sqs:ListQueueTags",
            "sqs:ListDeadLetterSourceQueues",
            "sqs:DeleteMessageBatch",
            "sqs:PurgeQueue",
            "sqs:DeleteQueue",
            "sqs:CreateQueue",
            "sqs:ChangeMessageVisibilityBatch",
            "sqs:SetQueueAttributes"
         ],
         "Resource": "arn:aws:sqs:*:<AccountId>:*"
      },
      {
         "Sid": "VisualEditor1",
         "Effect": "Allow",
         "Action": "sqs:ListQueues",
         "Resource": "*"
      }
   ]
}
```

4. Escolha **Revisar política**, digite um nome e, em seguida, selecione **Criar política**.

5. Vincule a política recém-criada ao seu perfil do IAM ou crie um novo perfil.

## Épicos
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-epics"></a>

### Configuração do Amazon SQS na AWS
<a name="set-up-amazon-sqs-in-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política do IAM para o Amazon SQS. | Crie a política do IAM que fornecerá acesso ao Amazon SQS. Consulte a seção Código para obter um exemplo de política. | Engenheiro de sistemas | 
| Crie um perfil da AWS. | Crie um novo perfil executando as ferramentas da AWS para o PowerShell comando Set-AWSCredential. Isso armazena sua chave de acesso e a chave secreta no seu arquivo de credenciais padrão sob o nome de perfil que você especificar. Vincule a política do Amazon SQS que você criou anteriormente a esta conta. Guarde o ID de chave de acesso e a chave de acesso secreta da AWS. Eles serão necessários nas próximas etapas. | Engenheiro de sistemas | 
| Crie uma fila do SQS. | Você pode criar uma fila padrão ou uma fila de primeiro a entrar, primeiro a sair (FIFO). Para obter instruções, consulte os links na seção Referências. | Engenheiro de sistemas | 

### Revise seu código do aplicativo .NET
<a name="revise-your-net-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instalar o AWS Toolkit for Visual Studio.  | Esse kit de ferramentas é uma extensão do Microsoft Visual Studio e facilita a criação e a implantação de aplicativos .NET na AWS. Para obter instruções de uso e instalação, consulte o link na seção Referências. | Desenvolvedor de aplicativos | 
| Instale o AWSSDK pacote.SQS. NuGet  | Você pode instalar AWSSDK o.SQS escolhendo “Manage NuGet Package” no Visual Studio ou executando o comando “ AWSSDKInstall-Package .SQS”. | Desenvolvedor de aplicativos | 
| Crie um AWSCredentials objeto em seu aplicativo.NET. | O aplicativo de exemplo no anexo mostra como criar um AWSCredentials objeto básico, que herda de AWSCredentials. Você pode usar o ID da chave de acesso e a chave de acesso secreta anteriores ou permitir que o objeto escolha-os na pasta .aws como parte do perfil do usuário no runtime. | Desenvolvimento de aplicativos | 
| Crie um objeto cliente SQS. | Crie um objeto cliente SQS (AmazonSQSClient) para o.NET Framework. Isso faz parte do namespace Amazon.SQS. Esse objeto é necessário em vez do IQueue Client, que faz parte do Microsoft.Azure. ServiceBus namespace. | Desenvolvedor de aplicativos | 
| Chame o SendMessageAsync método para enviar mensagens para a fila SQS. | Altere o código que envia a mensagem para a fila para usar o. amazonSqsClient SendMessageAsync método. Para obter detalhes, consulte o modelo de código anexo. | Desenvolvimento de aplicativos | 
| Chame o ReceiveMessageAsync método para receber mensagens da fila SQS. | Altere o código que recebe a mensagem para usar amazonSqsClient o. ReceiveMessageAsync método. Para obter detalhes, consulte o modelo de código anexo. | Desenvolvimento de aplicativos | 
| Chame o DeleteMessageAsync método para excluir mensagens da fila SQS. | Para excluir mensagens, altere o código do QueueClient. CompleteAsync método para amazonSqsClient o. DeleteMessageAsync método. Para obter detalhes, consulte o modelo de código anexo. | Desenvolvimento de aplicativos | 

## Recursos relacionados
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [Guia do desenvolvedor do AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Envio de mensagens usando o Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Criação e uso de uma fila do Amazon SQS com o AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Enviar uma mensagem do Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Receber uma mensagem de uma fila do Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Excluir uma mensagem de uma fila do Amazon SQS Queue](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/DeleteMessage.html)
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)

## Mais informações
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Este padrão inclui dois exemplos de aplicativos (consulte a seção de anexos):
+ **AzureSbTestApp**inclui código que usa a fila do Azure Service Bus.
+ **AmazonSqsTestApp**usa o Amazon SQS. Este é um aplicativo de console que usa o .NET Core 2.2 e inclui exemplos para enviar e receber mensagens.

Observações:
+ QueueClient é um objeto do IQueue Client, que faz parte do Microsoft.Azure. ServiceBus namespace (incluído no Microsoft.Azure. ServiceBus NuGet pacote).
+ amazonSqsClient é um objeto da AmazonSQSClient, que faz parte do namespace Amazon.sqs (incluído no pacote .SQS). AWSSDK NuGet 
+ Dependendo de onde o código está sendo executado, digamos, se ele está sendo executado EC2, a função precisa ter permissão para gravar na fila SQS.

## Anexos
<a name="attachments-25334709-7000-4f60-87ed-ea41acb41a99"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)

# Migre um banco de dados Oracle JD Edwards EnterpriseOne para a AWS usando o Oracle Data Pump e o AWS DMS
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms"></a>

*Thanigaivel Thirumalai, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-summary"></a>

Você pode migrar e executar seu banco de dados JD Edwards no [Amazon EnterpriseOne Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)). Quando você migra seu banco de dados para o Amazon RDS, a AWS pode cuidar das tarefas de backup e da configuração de alta disponibilidade, para que você possa se concentrar em manter seu EnterpriseOne aplicativo e sua funcionalidade. Para obter uma lista abrangente dos principais fatores a serem considerados durante o processo de migração, consulte as [estratégias de migração do banco de dados Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) nas Recomendações da AWS.

Há várias maneiras de migrar um EnterpriseOne banco de dados, incluindo:
+ Usando o Oracle Universal Batch Engine (UBE) R98403 para criação de esquemas e tabelas e usando o AWS Database Migration Service (AWS DMS) para migração
+ Usando ferramentas nativas de banco de dados para criação de esquemas e tabelas e usando o AWS DMS para migração
+ Usando ferramentas nativas de banco de dados para a migração de dados existentes (carga total) e usando o AWS DMS para tarefas de captura de dados de alteração (CDC - change data capture)

Esse padrão cobre a terceira opção. Ele explica como migrar seus EnterpriseOne bancos de dados locais para o Amazon RDS for Oracle usando o Oracle Data Pump com o [AWS DMS](https://aws.amazon.com/dms) e seu recurso CDC.

[O Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) é uma solução de planejamento de recursos corporativos (ERP) para organizações que fabricam, constroem, distribuem, atendem ou gerenciam produtos ou ativos físicos. O JD Edwards EnterpriseOne oferece suporte a vários hardwares, sistemas operacionais e plataformas de banco de dados.

Quando você migra aplicativos essenciais de ERP, como o JD Edwards EnterpriseOne, minimizar o tempo de inatividade é fundamental. O AWS DMS minimiza o tempo de inatividade ao oferecer suporte à carga total e à replicação contínua do banco de dados de origem para o banco de dados de destino. O AWS DMS também fornece monitoramento e registro em tempo real para a migração, o que pode ajudá-lo a identificar e resolver quaisquer problemas que possam causar tempo de inatividade.

Ao replicar alterações com o AWS DMS, você deve especificar uma hora ou um número de alteração do sistema (SCN) como ponto de partida para ler as alterações dos logs do banco de dados. É fundamental manter esses registros acessíveis no servidor por um determinado período de tempo (recomendamos 15 dias) para garantir que o AWS DMS tenha acesso a essas alterações.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Um banco de dados Amazon RDS para Oracle provisionado em seu ambiente de Nuvem AWS como o banco de dados de destino. Para obter instruções, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html).
+ Um EnterpriseOne banco de dados executado no local ou em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) na AWS.
**nota**  
Esse padrão foi projetado para migrar do local para a AWS, mas foi testado usando um EnterpriseOne banco de dados em uma instância do EC2. Se você planeja migrar do seu ambiente on-premises, deverá configurar a conectividade de rede apropriada.
+ Detalhes do esquema. Identifique para qual esquema de banco de dados Oracle (por exemplo, DV920) você planeja migrar. EnterpriseOne Antes de iniciar o processo de migração, reúna os seguintes detalhes sobre o esquema:
  + Tamanho do esquema
  + O número de objetos por tipo de objeto
  + O número de objetos inválidos

**Limitações**
+ Você precisa criar os esquemas que quiser no banco de dados Amazon RDS para Oracle de destino: o AWS DMS não os cria para você. (A seção [Épicos](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics) descreve como usar o Data Pump para exportar e importar esquemas). O nome do esquema já deve existir para o banco de dados Oracle de destino. As tabelas do esquema de origem são importadas para o usuário ou esquema e o AWS DMS usa a conta do administrador ou do sistema para se conectar à instância de destino. Para migrar vários esquemas, você pode criar várias tarefas de replicação. Você também pode migrar dados para esquemas diferentes em uma instância de destino. Para fazer isso, use regras de transformação de esquema nos mapeamentos de tabelas do AWS DMS.
+ Esse padrão foi testado com um conjunto de dados de demonstração. Recomendamos que você valide a compatibilidade do seu conjunto de dados e da personalização.
+ Esse padrão usa um EnterpriseOne banco de dados que está sendo executado no Microsoft Windows. No entanto, você pode usar o mesmo processo com outros sistemas operacionais compatíveis com o AWS DMS.

## Arquitetura
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-architecture"></a>

O diagrama a seguir mostra um sistema que está sendo executado EnterpriseOne em um banco de dados Oracle como banco de dados de origem e um banco de dados Amazon RDS for Oracle como banco de dados de destino. Os dados são exportados do banco de dados Oracle de origem e importados para o banco de dados Amazon RDS para Oracle de destino usando o Oracle Data Pump e replicados para atualizações do CDC usando o AWS DMS.

![\[Diagram showing data replication from on-premises Oracle to Amazon RDS using AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. O Oracle Data Pump extrai dados do banco de dados de origem e os dados são enviados para o destino do banco de dados Amazon RDS para Oracle.

1. Os dados do CDC são enviados do banco de dados de origem para um endpoint de origem no AWS DMS.

1. Do endpoint de origem, os dados são enviados para a instância de replicação do AWS DMS, onde a tarefa de replicação é executada.

1. Após a conclusão da tarefa de replicação, os dados são enviados para o endpoint de destino no AWS DMS.

1. Do endpoint de destino, os dados são enviados para a instância do banco de dados do Amazon RDS para Oracle.

## Ferramentas
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-tools"></a>

**Serviços da AWS**
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ O [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ajuda você a configurar, operar e escalar um banco de dados relacional Oracle na Nuvem AWS.

**Outros serviços**
+ O [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade.

## Práticas recomendadas
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-best-practices"></a>

**Migrating LOBs**

Se seu banco de dados de origem contém objetos binários grandes (LOBs) que precisam ser migrados para o banco de dados de destino, o AWS DMS fornece as seguintes opções:
+ **Modo LOB completo** — O AWS DMS migra tudo do banco de dados LOBs de origem para o de destino, independentemente do tamanho. Embora a migração seja mais lenta do que os outros modos, a vantagem é que os dados não são truncados. Para melhorar o desempenho, você pode criar uma tarefa separada na nova instância de replicação para migrar as tabelas maiores do LOBs que alguns megabytes.
+ **Modo LOB limitado** — Você especifica o tamanho máximo dos dados da coluna LOB, o que permite que o AWS DMS pré-aloque recursos e os aplique em massa. LOBs Se o tamanho das colunas LOB exceder o tamanho especificado na tarefa, o AWS DMS truncará os dados e enviará avisos para o arquivo de log do AWS DMS. Você pode melhorar o desempenho usando o modo LOB limitado se o tamanho dos dados do LOB estiver dentro do tamanho do LOB limitado.
+ **Modo LOB embutido** — você pode migrar LOBs sem truncar os dados ou diminuir o desempenho de sua tarefa replicando tanto pequenos quanto grandes. LOBs Primeiro, especifique um valor para o parâmetro `InlineLobMaxSize`, que está disponível somente quando o modo LOB completo está definido como `true`. A tarefa do AWS DMS transfere o pequeno LOBs em linha, o que é mais eficiente. Em seguida, o AWS DMS migra os grandes LOBs executando uma pesquisa na tabela de origem. No entanto, o modo LOB em linha funciona somente durante a fase de carga total.

**Gerando valores de sequência**

Durante o processo de CDC do AWS DMS, os números de sequência incrementais não são replicados do banco de dados de origem. Para evitar discrepâncias nos valores de sequência, você deve gerar o valor de sequência mais recente da origem para todas as sequências e aplicá-lo ao banco de dados de destino do Amazon RDS para Oracle.

**AWS Secrets Manager**

Para ajudar a gerenciar suas credenciais, recomendamos que você siga as instruções na postagem do blog [Gerencie suas credenciais de endpoint do AWS DMS com o AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/).

**Desempenho**
+ **Instâncias de replicação** ‒ Para obter orientação sobre como escolher o melhor tamanho de instância, consulte [Seleção do melhor tamanho para uma instância de replicação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html) na documentação do AWS DMS.
+ **Opções de conectividade** ‒ Para evitar problemas de latência, recomendamos que você escolha a opção de conectividade correta. O AWS Direct Connect fornece o caminho mais curto para os recursos da AWS, porque é uma conexão dedicada entre seus datacenters corporativos e a AWS. Em trânsito, o tráfego de rede permanece na rede global da AWS e nunca passa pela Internet. Isso reduz a chance de ocorrer gargalos ou aumentos inesperados na latência em comparação com o uso de VPN ou de internet pública.
+ **Largura de banda da rede** ‒ Para otimizar o desempenho, verifique se a throughput de sua rede é rápida. Se você estiver usando um túnel VPN entre seu banco de dados de origem on-premises e o AWS DMS, garanta que a largura de banda seja suficiente para seu workload.
+ **Paralelismo de tarefas** ‒ Você pode acelerar a replicação de dados carregando várias tabelas em paralelo durante a carga total. Esse padrão usa endpoints RDBMS, portanto, essa opção se aplica somente ao processo de carregamento completo. O paralelismo de tarefas é controlado pelo parâmetro `MaxFullLoadSubTasks`, que determina quantas subtarefas de carga total são executadas em paralelo. Por padrão, esse parâmetro é definido como 8, o que significa que oito tabelas (se selecionadas no mapeamento de tabelas) são carregadas juntas durante o modo completo. Você pode ajustar esse parâmetro na seção de configurações de tarefa de carga total do script JSON para a tarefa.
+ **Paralelismo de tabelas** ‒ O AWS DMS também permite que você carregue uma única tabela grande usando vários threads paralelos. Isso é particularmente útil para tabelas de origem Oracle que têm bilhões de registros, bem como várias partições e subpartições. Se a tabela de origem não estiver particionada, você poderá usar limites de coluna para cargas paralelas.
+ **Divida as cargas** ‒ Ao dividir as cargas em várias tarefas ou instâncias do AWS DMS, lembre-se dos limites da transação ao capturar as alterações.

## Épicos
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics"></a>

### Use o Oracle Data Pump para exportar o EnterpriseOne esquema
<a name="use-oracle-data-pump-to-export-the-enterpriseone-schema"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere o SCN. | Quando o banco de dados de origem estiver ativo e em uso pelo EnterpriseOne aplicativo, inicie a exportação de dados com o Oracle Data Pump. Primeiro, você deve gerar um número de alteração do sistema (SCN) do banco de dados de origem para manter a consistência de dados durante a exportação com o Oracle Data Pump e como ponto de partida para o CDC no AWS DMS.Para gerar o SCN atual do banco de dados de origem, use a instrução SQL a seguir:<pre>SQL> select current_scn from v$database;<br /><br />CURRENT_SCN<br />-----------<br />   30009727</pre>Salve o SCN gerado. Você usará o SCN ao exportar os dados e criar a tarefa de replicação do AWS DMS. | DBA | 
| Crie o arquivo de parâmetro. | Para criar um arquivo de parâmetros para exportar o esquema, você pode usar o código a seguir.<pre>directory=DMS_DATA_PUMP_DIR<br />logfile=export_dms.log<br />dumpfile=export_dms_data.dmp<br />schemas=<schema name><br />flashback_scn=<SCN from previous command></pre>Você também pode definir seu próprio `DATA_PUMP_DIR` usando os comandos a seguir, com base em seus requisitos.<pre>SQL> CREATE OR REPLACE DIRECTORY DMS_DATA_PUMP_DIR AS '<Directory for dump>';<br />Directory created.<br /><br />SQL> GRANT READ, WRITE ON DIRECTORY DMS_DATA_PUMP_DIR TO SYSTEM;<br />Grant succeeded.</pre> | DBA | 
| Exporte o esquema. | Para realizar a exportação, use o utilitário `expdp` da seguinte forma:<pre>C:\Users\Administrator>expdp system/********@<DB Name> PARFILE='<Path to PAR file create above>'<br /><br />Export: Release 19.0.0.0.0 - Production on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br /><br />Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production<br />Starting "SYSTEM"."SYS_EXPORT_SCHEMA_02":  system/********@<DB Name>PARFILE='E:\exp_dms_datapump.par'<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS<br />Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS<br />Processing object type SCHEMA_EXPORT/STATISTICS/MARKER<br />Processing object type SCHEMA_EXPORT/USER<br />Processing object type SCHEMA_EXPORT/ROLE_GRANT<br />Processing object type SCHEMA_EXPORT/DEFAULT_ROLE<br />Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA<br />Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE<br />Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX<br />Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT<br />. . exported "<Schema Name>"."<Table Name>"                            228.9 MB  496397 rows</pre><pre>Master table "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully loaded/unloaded<br />******************************************************************************<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_02 is:<br />  E:\DMSDUMP\EXPORT_DMS_DATA.DMP<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully completed at *** *** ** **:**:** **** elapsed 0 00:01:57</pre> | DBA | 

### Use o Oracle Data Pump para importar o EnterpriseOne esquema
<a name="use-oracle-data-pump-to-import-the-enterpriseone-schema"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Transfira o arquivo de dump para a instância de destino. | Para transferir seus arquivos usando o utilitário `DBMS_FILE_TRANSFER`, você precisa criar um link de banco de dados do banco de dados de origem para a instância do Amazon RDS para Oracle. Depois que o link for estabelecido, você poderá usar o utilitário para transferir os arquivos do Data Pump diretamente para a instância do Amazon RDS.Como alternativa, você pode transferir os arquivos do Data Pump para o [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) e depois importá-los para a instância do Amazon RDS para Oracle. Para obter mais informações sobre essa opção, consulte a seção [Informações adicionais](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional).Para criar um link `ORARDSDB` que se conecte ao usuário mestre do Amazon RDS na instância de banco de dados de destino, execute os comandos a seguir no banco de dados de origem:<pre>sqlplus / as sysdba<br /><br />SQL*Plus: Release 19.0.0.0.0 on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle.  All rights reserved.<br /><br />Connected to:<br />Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0<br />Version 19.3.0.0.0<br /><br />SQL> create database link orardsdb connect to admin identified by "******" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl.******.us-east-1.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br /><br />Database link created.<br /><br />SQL></pre> | DBA | 
| Teste o link do banco de dados. | Teste o link do banco de dados para garantir que você possa se conectar ao banco de dados de destino do Amazon RDS para Oracle usando `sqlplus`.<pre>SQL> select name from v$database@orardsdb;<br /><br />NAME<br />---------<br />ORCL<br /></pre> | DBA | 
| Transfira o arquivo dump para o banco de dados de destino. | Para copiar o arquivo de despejo para o banco de dados Amazon RDS para Oracle, você pode usar o diretório `DATA_PUMP_DIR` padrão ou criar seu próprio diretório usando o código a seguir, que deve ser executado na instância de destino do Amazon RDS:<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'DMS_TARGET_PUMP_DIR');<br /><br />PL/SQL procedure successfully completed.</pre>O script a seguir copia um arquivo de despejo chamado `EXPORT_DMS_DATA.DMP` da instância de origem para um banco de dados de destino do Amazon RDS para Oracle usando o link de banco de dados chamado `orardsdb`. Você deve executar o script na instância do banco de dados de origem.<pre>BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DMS_DATA_PUMP_DIR',<br />source_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_directory_object => 'DMS_TARGET_PUMP_DIR',<br />destination_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_database => 'orardsdb');<br />END;<br /><br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Liste o arquivo dump no banco de dados de destino. | Depois que o PL/SQL procedimento for concluído, você poderá listar o arquivo de despejo de dados no banco de dados Amazon RDS for Oracle usando o seguinte código:<pre>select * from table (rdsadmin.rds_file_util.listdir(p_directory => 'DMS_TARGET_PUMP_DIR'));</pre> | DBA | 
| Crie usuários específicos do JDE na instância de destino. | Crie um perfil e uma função do JD Edwards usando esses comandos na instância de destino:<pre>SQL> CREATE PROFILE "JDEPROFILE" LIMIT IDLE_TIME 15;<br />Profile created.<br /><br />SQL> CREATE ROLE "JDE_ROLE";<br />Role created.<br /><br />SQL> CREATE ROLE "JDEADMIN";<br />CREATE ROLE "JDEUSER";<br />Role created.<br />Role created.</pre>Conceda as permissões necessárias à função: <pre>SQL> GRANT CREATE ANY SEQUENCE TO JDE_ROLE;<br /> GRANT DROP ANY SEQUENCE TO JDE_ROLE;<br /> GRANT CREATE ANY TRIGGER TO JDE_ROLE;<br /> GRANT DROP ANY TRIGGER TO JDE_ROLE;<br /></pre> | DBA, JDE CNC | 
| Crie espaços de tabela na instância de destino. | Crie os espaços de tabela necessários na instância de destino usando os seguintes comandos para os esquemas envolvidos nessa migração:<pre>SQL> CREATE TABLESPACE <Tablespace Name for Tables>;<br />Tablespace created.<br /><br />SQL> CREATE TABLESPACE <Tablespace Name for Indexes>;<br />Tablespace created.</pre> | DBA, JDE CNC | 
| Inicie a importação no banco de dados de destino. | Antes de iniciar o processo de importação, configure as funções, os esquemas e os espaços de tabela no banco de dados de destino do Amazon RDS para Oracle usando o arquivo de dump de dados.Para realizar a importação, acesse o banco de dados de destino com a conta de usuário principal do Amazon RDS e use o nome da cadeia de conexão no arquivo `tnsnames.ora`, que inclui o Amazon RDS para Oracle Database `tns-entry`. Se necessário, você pode incluir uma opção de remapeamento para importar o arquivo de dump de dados em um espaço de tabela diferente ou com um nome de esquema diferente.Para iniciar a importação, use o seguinte código:<pre>impdp admin@orardsdb directory=DMS_TARGET_PUMP_DIR logfile=import.log dumpfile=EXPORT_DMS_DATA.DMP</pre>Para garantir uma importação bem-sucedida, verifique se há erros no arquivo de log de importação e revise os detalhes, como contagem de objetos, contagem de linhas e objetos inválidos. Se houver algum objeto inválido, recompile-o. Além disso, compare os objetos do banco de dados de origem e de destino para confirmar se eles coincidem. | DBA | 

### Provisione uma instância de replicação do AWS DMS com os endpoints de origem e de destino
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça download do modelo. | Faça o download do modelo AWS CloudFormation [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) para provisionar a instância de replicação do AWS DMS e seus endpoints de origem e destino. | Administrador de nuvem, DBA | 
| Inicie a criação da pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrador de nuvem, DBA | 
| Especifique os parâmetros. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrador de nuvem, DBA | 
| Crie a pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)O provisionamento deve ser concluído em aproximadamente cinco a dez minutos. Ele estará completo quando a página AWS CloudFormation Stacks mostrar **CREATE\$1COMPLETE**. | Administrador de nuvem, DBA | 
| Configure os endpoints. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Administrador de nuvem, DBA | 
| Teste de conectividade. | Depois que os endpoints de origem e destino mostrarem o status como **Ativo**, teste a conectividade. Escolha **Executar teste** para cada endpoint (origem e destino) para garantir que o status seja exibido como bem-sucedido. | Administrador de nuvem, DBA | 

### Crie uma tarefa de replicação do AWS DMS para replicação ao vivo
<a name="create-an-aws-dms-replication-task-for-live-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a tarefa de replicação. | Crie a tarefa de replicação do AWS DMS usando as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Depois de criar a tarefa, o AWS DMS migra as alterações contínuas para a instância do banco de dados Amazon RDS para Oracle a partir do SCN que você forneceu no modo de início do CDC. Você também pode verificar a migração revisando os CloudWatch registros. | Administrador de nuvem, DBA | 
| Repita a tarefa de replicação. | Repita as etapas anteriores para criar tarefas de replicação para outros esquemas do JD Edwards que fazem parte da migração. | Administrador de nuvem, DBA, administrador CNC do JDE | 

### Valide o esquema de banco de dados no banco de dados de destino do Amazon RDS para Oracle
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar a transferência de dados. | Após o início da tarefa do AWS DMS, você pode verificar a guia **Estatísticas da tabela** na página **Tarefas** para ver as alterações feitas nos dados.Você pode monitorar o status da replicação contínua no console na página **Tarefas de migração do banco de dados**.Para obter mais informações, consulte [Validação de dados do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Administrador de nuvem, DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerrar a replicação. | Interrompa o procedimento de replicação e interrompa os serviços do aplicativo de origem. | Administrador de nuvem, DBA | 
| Inicie o aplicativo JD Edwards. | Inicie a apresentação de destino e o aplicativo de nível lógico do JD Edwards na AWS e direcione-os para o banco de dados Amazon RDS para Oracle.Ao acessar o aplicativo, você deve observar que todas as conexões agora estão estabelecidas com o banco de dados Amazon RDS para Oracle. | DBA, administrador do JDE CNC | 
| Desative o banco de dados de origem. | Depois de confirmar que não há mais conexões, você pode desativar o banco de dados de origem. | DBA | 

## Solução de problemas
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Você recebe uma mensagem de aviso para ativar o [log complementar](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) no banco de dados de origem para replicação contínua | Insira estes comandos para ativar o log complementar:<pre>SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;</pre> | 
| O AWS DMS fica com o registro suplementar desativado. | O log complementar está desativado por padrão no AWS DMS. Para ativá-lo em um endpoint Oracle de origem:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| O log complementar não está habilitado no nível do CDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Você recebe a mensagem de erro: “Falha no Test Endpoint: Application-Status: 1020912, Application-Message: não LogMiner é suportado no ambiente Oracle PDB A inicialização do Endpoint falhou.” | Se você encontrar essa mensagem de erro, poderá usar o Binary Reader em vez de LogMiner.Em **Configurações do Endpoint**, adicione essa linha aos atributos extras de conexão do seu banco de dados de origem:<pre>useLogMinerReader=N;useBfile=Y;</pre> | 

## Recursos relacionados
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-resources"></a>
+ [Introdução ao AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Práticas recomendadas para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrar bancos de dados Oracle para a Nuvem AWS ](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Referência de tipo de recurso do AWS Database Migration Service para AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DMS.html)
+ [Gerencie suas credenciais de endpoint do AWS DMS com o AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/)
+ [Solução de problemas de tarefas de migração no AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle.RecordsMissing)
+ [Práticas recomendadas para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)

## Mais informações
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional"></a>

**Transferir arquivos usando o Amazon S3**

Para transferir os arquivos para o Amazon S3, você pode usar a AWS CLI ou o console do Amazon S3. Depois de transferir os arquivos para o Amazon S3, você pode usar a instância Amazon RDS para Oracle para importar os arquivos do Data Pump do Amazon S3.

Se você optar por transferir o arquivo de dump usando a integração com o Amazon S3 como um método alternativo, execute as seguintes etapas:

1. Criar um bucket do S3.

1. Exporte os dados do banco de dados de origem usando o Oracle Data Pump.

1. Faça upload dos arquivos do Data Pump para o bucket S3.

1. Faça download dos arquivos do Data Pump do bucket do S3 no banco de dados de destino do Amazon RDS para Oracle.

1. Execute a importação usando os arquivos do Data Pump.

**nota**  
Para transferir grandes arquivos de dados entre instâncias do S3 e do RDS, recomendamos que você use o atributo [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html).

# Migre um PeopleSoft banco de dados Oracle para a AWS usando o AWS DMS
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms"></a>

*Sampath Kathirvel, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-summary"></a>

 PeopleSoftO [Oracle](https://www.oracle.com/applications/peoplesoft/) é uma solução de planejamento de recursos corporativos (ERP) para processos em toda a empresa. PeopleSoft tem uma arquitetura de três camadas: cliente, aplicativo e banco de dados. PeopleSoft pode ser executado no [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)).

Se você migrar seu banco de dados Oracle para o Amazon RDS, o Amazon Web Services (AWS) poderá cuidar das tarefas de backup e da alta disponibilidade, deixando você livre para se concentrar na manutenção do PeopleSoft aplicativo e de sua funcionalidade. Para obter uma lista abrangente dos principais fatores a serem considerados durante o processo de migração, consulte as [estratégias de migração do banco de dados Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) nas Recomendações da AWS.

Esse padrão fornece uma solução para migrar seus bancos de dados do Oracle on-premises para o Amazon RDS para Oracle usando o Oracle Data Pump com o [AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms) e seu atributo de captura de dados de alteração (CDC).

Ao migrar aplicativos essenciais de ERP, como o Oracle PeopleSoft, minimizar o tempo de inatividade é fundamental. O AWS DMS minimiza o tempo de inatividade ao oferecer suporte à carga total e à replicação contínua do banco de dados de origem para o banco de dados de destino. O AWS DMS também fornece monitoramento e registro em tempo real da migração, o que pode ajudar você a identificar e resolver quaisquer problemas que possam causar tempo de inatividade.

Ao replicar alterações com o AWS DMS, você deve especificar um horário ou um número de alteração do sistema (SCN) como ponto de partida para que o AWS DMS leia as alterações dos registros em log do banco de dados. É fundamental manter esses logs acessíveis no servidor por um determinado período de tempo para garantir que o AWS DMS tenha acesso a essas alterações.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Provisionado banco de dados do Amazon RDS para Oracle em seu ambiente de nuvem AWS como banco de dados de destino.
+ Um PeopleSoft banco de dados Oracle executado no local ou na Amazon Elastic Compute Cloud (Amazon EC2) na Nuvem AWS.
**nota**  
Esse padrão foi projetado para migrar do local para a AWS, mas foi testado usando o Oracle Database em uma EC2 instância da Amazon. Para migrar do on-premises, você precisará configurar a conectividade de rede apropriada.
+ Detalhes do esquema. Ao migrar um PeopleSoft aplicativo Oracle para o Amazon RDS for Oracle, é necessário identificar qual esquema de banco de dados Oracle (por exemplo`SYSADM`,) migrar. Antes de iniciar o processo de migração, reúna os seguintes detalhes sobre o esquema:
  + Tamanho
  + O número de objetos por tipo de objeto
  + O número de objetos inválidos.

  Essas informações ajudarão no processo de migração.

**Limitações**
+ Esse cenário foi testado somente com o banco de dados PeopleSoft DEMO. Ele não foi testado com um grande conjunto de dados.

## Arquitetura
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-architecture"></a>

O diagrama a seguir mostra uma instância executando um banco de dados do Oracle como banco de dados de origem e um banco de dados do Amazon RDS para Oracle como banco de dados de destino. Os dados são exportados e importados do banco de dados do Oracle de origem para o banco de dados do Amazon RDS para Oracle de destino usando o Oracle Data Pump e replicados para alterações do CDC usando o AWS DMS.

![\[Processo de cinco etapas, da instância de banco de dados on-premises ao Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. A etapa inicial envolve a extração de dados do banco de dados de origem usando o Oracle Data Pump e, em seguida, o envio para o banco de dados de destino do Amazon RDS para Oracle.

1. Os dados são enviados do banco de dados de origem para um endpoint de origem no AWS DMS.

1. Do endpoint de origem, os dados são enviados para a instância de replicação do AWS DMS, onde a tarefa de replicação é executada.

1. Após a conclusão da tarefa de replicação, os dados são enviados para o endpoint de destino no AWS DMS.

1. Do endpoint de destino, os dados são enviados para a instância do banco de dados do Amazon RDS para Oracle.

## Ferramentas
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-tools"></a>

**Serviços da AWS**
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ O [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ajuda você a configurar, operar e escalar um banco de dados relacional Oracle na Nuvem AWS.

**Outros serviços**
+ O [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade.

## Práticas recomendadas
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-best-practices"></a>

**Migrating LOBs**

Se seu banco de dados de origem contiver objetos binários grandes (LOBs) que precisam ser migrados para o banco de dados de destino, o AWS DMS fornece as seguintes opções:
+ **Modo LOB completo** — O AWS DMS migra tudo do banco de dados LOBs de origem para o de destino, independentemente do tamanho. Embora a migração seja mais lenta, a vantagem é que os dados não são truncados. Para melhorar o desempenho, você pode criar uma tarefa separada na nova instância de replicação para migrar as tabelas com mais de alguns LOBs megabytes.
+ **Modo LOB limitado** — Você especifica o tamanho máximo dos dados da coluna LOB, o que permite que o AWS DMS pré-aloque recursos e os aplique em massa. LOBs Se o tamanho das colunas LOB exceder o tamanho especificado na tarefa, o AWS DMS truncará os dados e enviará avisos para o arquivo de log do AWS DMS. Você pode melhorar o desempenho usando o modo LOB limitado se o tamanho dos dados do LOB estiver dentro do tamanho do LOB limitado.
+ **Modo LOB embutido** — você pode migrar LOBs sem truncar os dados ou diminuir o desempenho de sua tarefa replicando tanto pequenos quanto grandes. LOBs Primeiro, especifique um valor para o InlineLobMaxSize parâmetro, que está disponível somente quando o modo LOB completo está definido como verdadeiro. A tarefa do AWS DMS transfere o pequeno LOBs em linha, o que é mais eficiente. Em seguida, o AWS DMS migra os grandes LOBs executando uma pesquisa na tabela de origem. No entanto, o modo LOB em linha funciona somente durante a fase de carga total.

**Gerando valores de sequência**

Lembre-se de que, durante o processo de captura de dados de alterações com o AWS DMS, os números de sequência incrementais não são replicados do banco de dados de origem. Para evitar discrepâncias nos valores de sequência, você deve gerar o valor de sequência mais recente da origem para todas as sequências e aplicá-lo ao banco de dados de destino do Amazon RDS para Oracle.

**Gerenciamento de credenciais**

Para ajudar a proteger seus recursos da AWS, recomendamos seguir as [práticas recomendadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) do AWS Identity and Access Management (IAM).

## Épicos
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-epics"></a>

### Provisione uma instância de replicação do AWS DMS com os endpoints de origem e de destino
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça download do modelo. | Baixe o CloudFormation modelo da AWS [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) para provisionar a instância de replicação do AWS DMS e seus endpoints de origem e destino. | Administrador de nuvem, DBA | 
| Inicie a criação da pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrador de nuvem, DBA | 
| Especifique os parâmetros. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrador de nuvem, DBA | 
| Crie a pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)O provisionamento deve ser concluído em aproximadamente cinco a dez minutos. Ele estará completo quando a página AWS CloudFormation Stacks mostrar **CREATE\$1COMPLETE**. | Administrador de nuvem, DBA | 
| Configure os endpoints. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Administrador de nuvem, DBA | 
| Teste de conectividade. | Depois que os endpoints de origem e destino mostrarem o status como Ativo, teste a conectividade. Escolha **Executar teste** para cada endpoint (origem e destino) para garantir que o status seja exibido como bem-sucedido. | Administrador de nuvem, DBA | 

### Exporte o PeopleSoft esquema do banco de dados Oracle local usando o Oracle Data Pump
<a name="export-the-peoplesoft-schema-from-the-on-premises-oracle-database-by-using-oracle-data-pump"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere o SCN. | Quando o banco de dados de origem estiver ativo e em uso pelo aplicativo, inicie a exportação de dados com o Oracle Data Pump. Primeiro, você deve gerar um número de alteração do sistema (SCN) do banco de dados de origem para manter a consistência de dados durante a exportação com o Oracle Data Pump e como ponto de partida para a captura de dados de alterações no AWS DMS.Para gerar o SCN atual a partir do seu banco de dados de origem, insira a seguinte instrução SQL.<pre>SQL> select name from v$database;<br />SQL> select name from v$database;<br />NAME<br />---------<br />PSFTDMO<br />SQL> SELECT current_scn FROM v$database;<br />CURRENT_SCN<br />-----------<br />23792008</pre>Salve o SCN gerado para usar ao exportar os dados e criar a tarefa de replicação do AWS DMS. | DBA | 
| Crie o arquivo de parâmetro. | Para criar um arquivo de parâmetros para exportar o esquema, você pode usar o código a seguir.<pre>$ cat exp_datapmp.par<br />userid=system/*******<br />directory=DATA_PUMP_DIR<br />logfile=export_dms_sample_user.log<br />dumpfile=export_dms_sample_data_%U.dmp<br />schemas=SYSADM<br />flashback_scn=23792008</pre>Você também pode definir seu próprio `DATA_PUMP_DIR` usando os comandos a seguir, com base em seus requisitos.<pre>SQL> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/product/19c/dbhome_1/dmsdump/';<br />Directory created.<br />SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system;<br />Grant succeeded.<br />SQL><br />SQL> SELECT owner, directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR';<br />OWNER DIRECTORY_NAME DIRECTORY_PATH<br />------------------------------------------------------------------------------------------------------------------<br />SYS DATA_PUMP_DIR /opt/oracle/product/19c/dbhome_1/dmsdump/</pre> | DBA | 
| Exporte o esquema. | Para realizar a exportação, use o utilitário `expdp`.<pre>$ expdp parfile=exp_datapmp.par<br />.......................<br />Transferring the dump file with DBMS_FILE_TRANSFER to Target:<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNK" 6.328 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATDEF_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATITM_LNG" 7.171 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNCNTL" 7.601 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNPARM" 7.210 KB 0 rows<br />. . exported "SYSADM"."PS_YE_AMOUNTS" 9.351 KB 0 rows<br />. . exported "SYSADM"."PS_YE_DATA" 16.58 KB 0 rows<br />. . exported "SYSADM"."PS_YE_EE" 6.75 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_AMOUNTS" 9.414 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_DATA" 20.94 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_AMOUNTS" 10.27 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_DATA" 20.95 KB 0 rows<br />. . exported "SYSADM"."PS_ZBD_JOBCODE_TBL" 14.60 KB 0 rows<br />. . exported "SYSADM"."PTGRANTTBL" 5.468 KB 0 rows<br />Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded<br />**<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:<br />/opt/oracle/product/19c/dbhome_1/dmsdump/export_dms_sample_data_01.dmp<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Dec 19 20:13:57 2022 elapsed 0 00:38:22</pre> | DBA | 

### Importe o PeopleSoft esquema para o banco de dados Amazon RDS for Oracle usando o Oracle Data Pump
<a name="import-the-peoplesoft-schema-into-the-amazon-rds-for-oracle-database-by-using-oracle-data-pump"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Transfira o arquivo de dump para a instância de destino. | Para transferir seus arquivos usando `DBMS_FILE_TRANSFER`, você precisa criar um link de banco de dados do banco de dados de origem para a instância do Amazon RDS para Oracle. Depois que o link for estabelecido, você poderá usar o utilitário para transferir os arquivos do Data Pump diretamente para a instância do RDS.Como alternativa, você pode transferir os arquivos do Data Pump para o [Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) e depois importá-los para a instância do Amazon RDS para Oracle. Para obter mais informações sobre essa opção, consulte a seção Informações adicionais.Para criar um link `ORARDSDB` de banco de dados que se conecte ao usuário mestre do Amazon RDS na instância de banco de dados de destino, execute os comandos a seguir no banco de dados de origem.<pre>$sqlplus / as sysdba<br />$ SQL> create database link orardsdb connect to admin identified by "*****" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testpsft.*******.us-west-2.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br />Database link created.</pre> | DBA | 
| Teste o link do banco de dados. | Teste o link do banco de dados para garantir que você possa se conectar usando o sqlplus ao banco de dados de destino do Amazon RDS para Oracle.<pre>SQL><br />SQL> select name from v$database@orardsdb;<br />NAME<br />---------<br />ORCL<br />SQL></pre> | DBA | 
| Transfira o arquivo dump para o banco de dados de destino. | Para copiar o arquivo dump para o banco de dados do Amazon RDS para Oracle, você pode usar o diretório padrão `DATA_PUMP_DIR` ou criar seu próprio diretório usando o código a seguir.<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);</pre>O script a seguir copia um arquivo dump chamado `export_dms_sample_data_01.dmp` da instância de origem para um banco de dados de destino do Amazon RDS para Oracle usando o link de banco de dados de destino chamado `orardsdb`.<pre>$ sqlplus / as sysdba<br />SQL><br />BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DATA_PUMP_DIR',<br />source_file_name => 'export_dms_sample_data_01.dmp',<br />destination_directory_object => 'TARGET_PUMP_DIR’',<br />destination_file_name => 'export_dms_sample_data_01.dmp',<br />destination_database => 'orardsdb'<br />);<br />END;<br />/<br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Liste o arquivo dump no banco de dados de destino. | Depois que o PL/SQL procedimento for concluído, você poderá listar o arquivo de despejo de dados no banco de dados Amazon RDS for Oracle usando o código a seguir.<pre>SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));</pre> | DBA | 
| Inicie a importação no banco de dados de destino. | Antes de iniciar o processo de importação, configure as funções, os esquemas e os espaços de tabela no banco de dados de destino do Amazon RDS para Oracle usando o arquivo de dump de dados.Para realizar a importação, acesse o banco de dados de destino com a conta de usuário principal do Amazon RDS e use o nome da cadeia de conexão no arquivo `tnsnames.ora`, que inclui o Amazon RDS para Oracle Database `tns-entry`. Se necessário, você pode incluir uma opção de remapeamento para importar o arquivo de dump de dados em um espaço de tabela diferente ou com um nome de esquema diferente.Para iniciar a importação, use o código a seguir.<pre>impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp</pre>Para garantir uma importação bem-sucedida, verifique se há erros no arquivo de log de importação e revise os detalhes, como contagem de objetos, contagem de linhas e objetos inválidos. Se houver algum objeto inválido, recompile-o. Além disso, compare os objetos do banco de dados de origem e de destino para confirmar se eles coincidem. | DBA | 

### Crie uma tarefa de replicação do AWS DMS usando o CDC para realizar a replicação ao vivo
<a name="create-an-aws-dms-replication-task-using-cdc-to-perform-live-replication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a tarefa de replicação. | Crie a tarefa de replicação do AWS DMS usando as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Depois de criar a tarefa, ela migra o CDC para a instância do banco de dados do Amazon RDS para Oracle a partir do SCN que você forneceu no modo de início do CDC. Você também pode verificar revisando os CloudWatch registros. | Administrador de nuvem, DBA | 

### Valide o esquema de banco de dados no banco de dados de destino do Amazon RDS para Oracle
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar a transferência de dados. | Após o início da tarefa do AWS DMS, você pode verificar a guia **Estatísticas da tabela** na página **Tarefas** para ver as alterações feitas nos dados.Você pode monitorar o status da replicação contínua no console na página **Tarefas de migração do banco de dados**.Para obter mais informações, consulte [Validação de dados do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Administrador de nuvem, DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerrar a replicação. | Interrompa o procedimento de replicação e interrompa os serviços do aplicativo de origem. | Administrador de nuvem, DBA | 
| Inicie o nível PeopleSoft intermediário. | Inicie o aplicativo de nível PeopleSoft intermediário de destino na AWS e direcione-o para o banco de dados Amazon RDS for Oracle, recentemente migrado.Ao acessar o aplicativo, você deve observar que todas as conexões do aplicativo agora estão estabelecidas com o banco de dados do Amazon RDS para Oracle. | DBA, administrador PeopleSoft  | 
| Desative o banco de dados de origem. | Depois de confirmar que não há mais conexões com o banco de dados de origem, ele pode ser desativado. | DBA | 

## Recursos relacionados
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-resources"></a>
+ [Introdução ao AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Práticas recomendadas para o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrar bancos de dados Oracle para a Nuvem AWS ](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Mais informações
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-additional"></a>

**Transferir arquivos usando o Amazon S3**

Para transferir os arquivos para o Amazon S3, você pode usar a AWS CLI ou o console do Amazon S3. Depois de transferir os arquivos para o Amazon S3, você pode usar a instância Amazon RDS para Oracle para importar os arquivos do Data Pump do Amazon S3.

Se você optar por transferir o arquivo de dump usando a integração com o Amazon S3 como um método alternativo, execute as seguintes etapas:

1. Criar um bucket do S3.

1. Exporte os dados do banco de dados de origem usando o Oracle Data Pump.

1. Faça upload dos arquivos do Data Pump para o bucket S3.

1. Faça download dos arquivos do Data Pump do bucket do S3 no banco de dados de destino do Amazon RDS para Oracle.

1. Execute a importação usando os arquivos do Data Pump.

**nota**  
Para transferir grandes arquivos de dados entre instâncias do S3 e do RDS, é recomendável usar o atributo Amazon S3 Transfer Acceleration.

**Ativar o registro suplementar**

Se você receber uma mensagem de aviso para ativar o [registro suplementar em log](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) no banco de dados de origem para replicação contínua, use as etapas a seguir.

```
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
```

# Migrar um banco de dados MySQL on-premises para o Amazon RDS para MySQL
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql"></a>

*Lorenzo Mota, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-summary"></a>

Esse padrão fornece orientação para migrar um banco de dados MySQL on-premises para o Amazon Relational Database Service (Amazon RDS) para o MySQL. O padrão discute o uso de AWS Database Migration Service (AWS DMS) ou ferramentas nativas do MySQL, **como** mysqldump, para uma migração completa do banco de dados. Esse padrão é principalmente para DBAs arquitetos de soluções. Ele pode ser usado em projetos pequenos ou grandes como procedimento de teste (recomendamos pelo menos um ciclo de teste) ou como procedimento final de migração. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-prereqs"></a>

**Pré-requisitos **
+ Uma AWS conta ativa
+ Um banco de dados de origem do MySQL em um datacenter on-premises

**Limitações**
+ Limite de tamanho do banco de dados: [64 TB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Versões do produto**
+ MySQL, versões 5.5, 5.6, 5.7, 8.0 Para obter a lista mais recente de versões compatíveis, consulte [MySQL no Amazon RDS na documentação](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html). AWS Se você estiver usando AWS DMS, consulte também [Usando um banco de dados compatível com MySQL como destino para](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) as versões do AWS DMS MySQL atualmente suportadas pelo. AWS DMS

## Arquitetura
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados MySQL on-premises

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados do Amazon RDS executando o MySQL.

**Arquitetura de destino**

O diagrama a seguir mostra o destino da implementação do Amazon RDS para MySQL após a migração.

![\[Definição de destino para a implementação do Amazon RDS para MySQL após a substituição.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/2e10114e-e389-4d24-9b6a-fa56beee5369.png)


**AWS arquitetura de migração de dados**

**Usando AWS DMS:**

O diagrama a seguir mostra a arquitetura de migração de dados quando você usa AWS DMS para enviar alterações completas e incrementais até a transição. A conexão de rede do local até o local AWS depende de seus requisitos e está fora do escopo desse padrão.

![\[Arquitetura de migração de dados para a AWS ao usar o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/ecc9b282-1897-4971-99ed-83223b17000d.png)


**Usando ferramentas nativas do MySQL:**

O diagrama a seguir mostra a arquitetura de migração de dados quando você usa ferramentas nativas do MySQL. Os arquivos de despejo de exportação são copiados para o Amazon Simple Storage Service (Amazon S3) e importados para o banco de dados Amazon RDS for MySQL antes da transição. AWS A conexão de rede do local até o local AWS depende de seus requisitos e está fora do escopo desse padrão.

 

![\[Arquitetura de migração de dados para a AWS ao usar ferramentas nativas do MySQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/3bbec989-c3eb-473e-ba4a-032d6a4271c5.png)


**Observações:**
+ Dependendo dos requisitos de tempo de inatividade e do tamanho do banco de dados, o uso AWS DMS ou de uma ferramenta de captura de dados de alteração (CDC) minimiza o tempo de transição. AWS DMS pode ajudar a reduzir ao mínimo o tempo de transição para o novo alvo (normalmente minutos). Uma estratégia offline com **mysqldump** pode ser suficiente se o tamanho do banco de dados e a latência da rede permitirem uma janela curta. (Recomendamos testar para obter um tempo aproximado.)
+ Normalmente, uma estratégia de CDC, como essa, AWS DMS exige mais monitoramento e complexidade do que as opções off-line. 

## Ferramentas
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-tools"></a>
+ **Serviços da AWS**: [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local. Para obter informações sobre bancos de dados de origem e destino do MySQL compatíveis com AWS DMS, consulte [Migração de bancos de dados compatíveis com MySQL](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) para. AWS Se seu banco de dados de origem não for compatível com AWS DMS, você deverá escolher outro método para migrar seus dados.
+ **Ferramentas nativas do MySQL**: [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+ **Ferramentas de terceiros**: [Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup)

## Épicos
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar versões do banco de dados. | Valide as versões dos bancos de dados de origem e de destino. | DBA | 
| Identifique os requisitos de hardware. | Identifique os requisitos de hardware para o servidor de destino. | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento. | Identifique os requisitos de armazenamento (como tipo e capacidade de armazenamento) para o banco de dados de destino. | DBA, administrador de sistemas | 
| Altere o tipo de instância. | Selecione o tipo de instância de destino com base na capacidade, nos atributos de armazenamento e nos atributos de rede. | DBA, administrador de sistemas | 
| Identifique os requisitos de acesso à rede. | Identifique os requisitos de segurança para acesso à rede para os bancos de dados de origem e de destino.  | DBA, administrador de sistemas | 
| Identifique objetos sem suporte. | Identifique objetos sem suporte (se houver) e determine o esforço de migração. | DBA | 
| Identificar dependências. | Identifique todas as dependências em bancos de dados remotos. | DBA | 
| Determine a estratégia de migração do aplicativo.  | Determine a estratégia para migrar aplicativos de clientes.  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). | Configure tabelas de rotas, gateway da internet, gateways NAT e sub-redes. Para obter mais informações, consulte [VPCs Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) na documentação do Amazon RDS. | Administrador de sistemas | 
| Criar grupos de segurança. | Configure portas e intervalos CIDR ou específicos, IPs dependendo de seus requisitos. A porta padrão do MySQL é 3306. Para obter mais informações, consulte [Controlar o acesso com grupos de segurança](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) no Guia do usuário do Amazon RDS. | Administrador de sistemas | 
| Configure e inicie uma instância de banco de dados do Amazon RDS para MySQL. | Para obter instruções, consulte [Criação de uma instância de banco de dados Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateInstance.html) na documentação do Amazon RDS. Verifique as versões compatíveis. | Administrador de sistemas | 

### Migração de dados: opção 1 (usando ferramentas nativas)
<a name="migrate-data-option-1-using-native-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas do MySQL ou terceirizadas para migrar objetos e dados do banco de dados. | Para obter instruções, consulte a documentação das ferramentas do MySQL, como [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) e [ XtraBackupPercona](https://www.percona.com/software/mysql-database/percona-xtrabackup) (para migração física). Para obter mais informações sobre opções, consulte a postagem do blog [Opções de migração do MySQL para o Amazon RDS para MySQL ou Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/migration-options-for-mysql-to-amazon-rds-for-mysql-or-amazon-aurora-mysql/). | DBA | 

### Migrar dados ‒ opção 2 (usando AWS DMS)
<a name="migrate-data-option-2-using-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados com AWS DMS. | Para obter instruções, consulte a [documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html). | DBA | 

### Execute tarefas preliminares antes da substituição
<a name="perform-preliminary-tasks-before-cutover"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Corrija discrepâncias na contagem de objetos. | Colete contagens de objetos do banco de dados de origem e do novo banco de dados de destino. Corrija discrepâncias no banco de dados de destino. | DBA | 
| Verifique dependências. | Verifique se as dependências (links) de e para outros bancos de dados são válidas e funcionam conforme o esperado. | DBA | 
| Realize testes. | Se esse for um ciclo de testes, realize testes de consulta, colete métricas e corrija problemas. | DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mudar para o banco de dados de destino. | Mude os aplicativos do cliente para a nova infraestrutura. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Forneça suporte para testes. | Forneça suporte para testes funcionais de aplicativos.  | DBA | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desligar recursos. | Encerre os AWS recursos temporários que você criou para a migração.  | DBA, administrador de sistemas | 
| Valide os documentos do projeto.  | Revise e valide os documentos do projeto.  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Colete métricas. | Reúna métricas como tempo de migração, porcentagem de tarefas manuais versus esforço automatizado e economia de custos. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Encerre o projeto.  | Feche o projeto e forneça feedback.  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Descomissionar o banco de dados de origem. | Quando todas as tarefas de migração e substituição estiverem concluídas, desative o banco de dados on-premises. | DBA, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-resources"></a>

**Referências**
+ [Estratégia de migração para bancos de dados relacionais](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/welcome.html)
+ [AWS DMS site](https://aws.amazon.com/dms/)
+ [AWS DMS documentação](https://docs.aws.amazon.com/dms/)
+ [Documentação do Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Amazon VPC e Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Migre bancos de dados MySQL locais para o Aurora MySQL usando XtraBackup Percona, Amazon EFS e Amazon S3](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.html)
+ [Armazenamento de instâncias de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Tutoriais**
+ [Começando com AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server"></a>

*Henrique Lobão, Jonathan Pereira Cruz e Vishal Singh, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-summary"></a>

Esse padrão fornece orientação para migrar de um banco de dados Microsoft SQL Server on-premises para o Amazon Relational Database Service (Amazon RDS) para SQL Server . Ele descreve duas opções de migração: usar o AWS Data Migration Service (AWS DMS) ou usar ferramentas nativas do Microsoft SQL Server, como o Copy Database Wizard.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Microsoft SQL Server de origem em um datacenter on-premises

**Limitações**
+ Limite de tamanho do banco de dados: 16 TB

**Versões do produto**
+ Para obter a lista mais recente de versões e atributos compatíveis, consulte [Microsoft SQL Server no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) na documentação da AWS. Se você estiver usando o AWS DMS, consulte também [Como usar um banco de dados Microsoft SQL Server como destino para as versões do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html) para versões SQL Server compatíveis com AWS DMS. 

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Microsoft SQL Server on-premises

**Pilha de tecnologias de destino**
+ Uma instância de banco de dados do Amazon RDS para SQL Server 

**Arquitetura de origem e destino**

*Usando o AWS DMS:*

![\[Arquitetura para migração do SQL Server on-premises para o Amazon RDS usando o AWS DMS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/69b9877c-2d56-4d64-8475-a3dae789c5de.png)


*Usando ferramentas nativas do SQL Server:*

![\[Arquitetura para migração do SQL Server on-premises para o Amazon RDS usando ferramentas do SQL Server\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/45ee14e4-3c7e-4b35-a2c9-3e8e3c7e6cee.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-tools"></a>
+ O [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) é compatível com vários bancos de dados de origem e destino. Para obter detalhes, consulte [as instruções passo a Step-by-Step passo do AWS DMS](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html). Se o AWS DMS não for compatível com o banco de dados de origem, selecione outro método para migrar os dados. 
+ As ferramentas nativas do Microsoft SQL Server incluem backup e restauração, assistente de cópia de banco de dados, cópia e anexação de banco de dados.

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a versão e o mecanismo dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, administrador de sistemas | 
| Escolha o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. |  | DBA, administrador de sistemas | 
| Identifique a estratégia de migração de aplicativos. |  | DBA, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  | Administrador de sistemas | 
| Criar grupos de segurança. |  | Administrador de sistemas | 
| Configurar e inicie uma instância de banco de dados do Amazon RDS. |  | DBA, administrador de sistemas | 

### Migrar dados - opção 1
<a name="migrate-data---option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas do SQL Server ou ferramentas de terceiros para migrar dados e objetos de banco de dados. |  | DBA | 

### Migrar dados - opção 2
<a name="migrate-data---option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados com o AWS DMS. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, administrador de sistemas | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Reúna métricas como tempo para migrar, porcentagem de tarefas manuais versus automatizadas e economia de custos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Feche o projeto e forneça feedback. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-resources"></a>

**Referências**
+ [Implantação do Microsoft SQL Server na Amazon web Services](https://d1.awsstatic.com/whitepapers/RDS/Deploying_SQLServer_on_AWS.pdf) 
+ [Site do AWS DMS](https://aws.amazon.com/dms/)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Produtos da Microsoft na AWS](https://aws.amazon.com/windows/products/)
+ [Licenciamento da Microsoft na AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server na AWS](https://aws.amazon.com/windows/products/sql/)
+ [Uso da autenticação do Windows com uma instância de banco de dados do Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html)
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)

**Tutoriais e vídeos**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (vídeo)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (vídeo)](https://www.youtube.com/watch?v=igRfulrrYCo)  

# Migre dados do Microsoft Azure Blob para o Amazon S3 usando o Rclone
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone"></a>

*Suhas Basavaraj, Aidan Keane e Corey Lane, Amazon Web Services*

## Resumo
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-summary"></a>

Esse padrão descreve como usar o [Rclone](https://rclone.org/) para migrar dados do armazenamento de objetos do Microsoft Azure Blob para um bucket do Amazon Simple Storage Service (Amazon S3). Você pode usar esse padrão para realizar uma migração única ou uma sincronização contínua dos dados. O Rclone é um programa de linha de comando escrito em Go e é usado para mover dados em várias tecnologias de armazenamento de provedores de nuvem.

## Pré-requisitos e limitações
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Dados armazenados no serviço de contêiner Azure Blob

## Arquitetura
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-architecture"></a>

**Pilha de tecnologia de origem**
+ Contêiner de armazenamento Azure Blob

**Pilha de tecnologias de destino**
+ Bucket do Amazon S3.
+ Instância Linux da Amazon Elastic Compute Cloud (Amazon EC2)

**Arquitetura**

![\[Migração de dados do Microsoft Azure para o Amazon S3\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)


## Ferramentas
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-tools"></a>
+ 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.
+ [O Rclone é um](https://rclone.org/) **programa de linha de comando de código aberto inspirado no rsync.** Ele é usado para gerenciar arquivos em várias plataformas de armazenamento em nuvem.

## Práticas recomendadas
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-best-practices"></a>

Ao migrar dados do Azure para o Amazon S3, lembre-se dessas considerações para evitar custos desnecessários ou velocidades de transferência lentas:
+ Crie sua infraestrutura da AWS na mesma região geográfica da conta de armazenamento do Azure e do contêiner Blob — por exemplo, região da AWS `us-east-1` (Norte da Virgínia) e região do Azure. `East US`
+ Evite usar o NAT Gateway, se possível, pois ele acumula taxas de transferência de dados para a largura de banda de entrada e saída.
+ Use um [endpoint de gateway VPC para o Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) para aumentar o desempenho.
+ Considere usar uma EC2 instância baseada no processador AWS Graviton2 (ARM) para obter menor custo e maior desempenho em relação às instâncias Intel x86. O Rclone é altamente compilado de forma cruzada e fornece um binário ARM pré-compilado.

## Épicos
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-epics"></a>

### Prepare os recursos de nuvem da AWS e do Azure
<a name="prepare-aws-and-azure-cloud-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare um bucket do S3 de destino. | [Crie um novo bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na região da AWS apropriada ou escolha um bucket existente como destino para os dados que você deseja migrar. | Administrador da AWS | 
| Crie uma função de instância do IAM para a Amazon EC2. | [Crie uma nova função do AWS Identity and Access Management (IAM) para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles). Essa função dá à sua EC2 instância acesso de gravação ao bucket do S3 de destino. | Administrador da AWS | 
| Anexar uma política do IAM à instância | Use o console do IAM ou a AWS Command Line Interface (AWS CLI) para criar uma política embutida para a função EC2 da instância que permite permissões de acesso de gravação ao bucket S3 de destino. Para ver um exemplo de política, consulte a seção [Informações adicionais](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). | Administrador da AWS | 
| Execute uma EC2 instância. | Execute uma EC2 instância Amazon Linux que esteja configurada para usar a função de serviço IAM recém-criada. Essa instância também precisará acessar os endpoints públicos da API do Azure pela Internet. Considere usar [ EC2 instâncias do AWS baseadas em Graviton](https://docs.aws.amazon.com/compute-optimizer/latest/ug/graviton-recommendations.html) para reduzir custos. O Rclone fornece binários compilados em ARM. | Administrador da AWS | 
| Crie uma entidade principal de serviço do Azure AD. | Use a CLI do Azure para criar uma entidade principal de serviço do Azure Active Directory (Azure AD) que tenha acesso somente de leitura ao contêiner de armazenamento de Blob do Azure de origem. Para obter instruções, consulte a seção [Informações adicionais](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). Armazene essas credenciais na sua EC2 instância no local`~/azure-principal.json`. | Administrador de nuvem, Azure | 

### Instalar e configurar o Rclone
<a name="install-and-configure-rclone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça download e instale o Rclone.  | Baixe e instale o programa de linha de comando Rclone. Para obter instruções de instalação, consulte [Documentação da instalação do Rclone](https://rclone.org/install/). | AWS geral, Administrador de nuvem | 
| Configure o Rclone. | Copie o arquivo `rclone.conf` de amostra a seguir. `AZStorageAccount`Substitua pelo nome da sua conta do Azure Storage e `us-east-1` pela região da AWS onde seu bucket do S3 está localizado. Salve esse arquivo `~/.config/rclone/rclone.conf` no local da sua EC2 instância.<pre>[AZStorageAccount]<br />type = azureblob<br />account = AZStorageAccount<br />service_principal_file = azure-principal.json<br /><br />[s3]<br />type = s3<br />provider = AWS<br />env_auth = true<br />region = us-east-1</pre> | AWS geral, Administrador de nuvem | 
| Verifique a configuração do Rclone. | Para confirmar se o Rclone está configurado e se as permissões estão funcionando corretamente, verifique se o Rclone pode analisar seu arquivo de configuração e se os objetos dentro do contêiner do Azure Blob e do bucket do S3 estão acessíveis. Veja a seguir exemplos de comandos de validação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html) | AWS geral, Administrador de nuvem | 

### Migre dados usando o Rclone
<a name="migrate-data-using-rclone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados de seus contêineres. | Execute o comando Rclone [copiar](https://rclone.org/commands/rclone_copy/) ou [sincronizar](https://rclone.org/commands/rclone_sync/).  **Exemplo: cópia**Esse comando copia dados do contêiner Azure Blob de origem para o bucket S3 de destino.<pre>rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>**Exemplo: sincronização**Esse comando sincroniza dados entre o contêiner Azure Blob de origem e o bucket S3 de destino. ****<pre>rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>Ao usar o comando **sync**, os dados que não estiverem presentes no contêiner de origem serão excluídos do bucket do S3 de destino. | AWS geral, Administrador de nuvem | 
| Sincronize seus contêineres.  | Depois que a cópia inicial estiver concluída, execute o comando Rclone **sync** para a migração contínua, de forma que somente os novos arquivos que estão faltando no bucket S3 de destino sejam copiados. | AWS geral, Administrador de nuvem | 
| Verifique se os dados foram migrados com sucesso.  | [Para verificar se os dados foram copiados com êxito para o bucket S3 de destino, execute os comandos Rclone [lsd](https://rclone.org/commands/rclone_lsd/) e ls.](https://rclone.org/commands/rclone_ls/) | AWS geral, Administrador de nuvem | 

## Recursos relacionados
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-resources"></a>
+ [Guia do usuário do Amazon S3 (documentação](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) da AWS)
+ [Funções do IAM para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) (documentação da AWS)
+ [Criação de um contêiner do Microsoft Azure Blob](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) (documentação do Microsoft Azure)
+ [Comandos Rclone (documentação](https://rclone.org/commands/) do Rclone)

## Mais informações
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional"></a>

**Exemplo de política de função para EC2 instâncias**

Essa política dá à sua EC2 instância acesso de leitura e gravação a um bucket específico em sua conta. Se o bucket usa uma chave gerenciada pelo cliente para a criptografia no lado do servidor, a política pode precisar de acesso adicional ao AWS Key Management Service (AWS KMS).

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        }    
    ]
}
```

**Criando uma entidade principal de serviço do Azure AD somente para leitura**

Uma entidade principal de serviço do Azure é uma identidade de segurança usada por aplicativos, serviços e ferramentas de automação do cliente para acessar recursos específicos do Azure. Pense nisso como uma identidade de usuário (login e senha ou certificado) com uma função específica e permissões rigorosamente controladas para acessar seus recursos. Para criar uma entidade principal de serviço somente de leitura para seguir as permissões de privilégio mínimo e proteger os dados no Azure contra exclusões acidentais, siga estas etapas: 

1. Faça login no portal da sua conta na nuvem do Microsoft Azure e inicie o Cloud Shell PowerShell ou use a Interface de Linha de Comando (CLI) do Azure em sua estação de trabalho.

1. Crie uma entidade principal de serviço e configure-o com acesso [somente de leitura](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader) à sua conta de armazenamento de Blobs do Azure. Salve a saída JSON desse comando em um arquivo local chamado`azure-principal.json`. O arquivo será enviado para sua EC2 instância. Substitua as variáveis de espaço reservado que são mostradas entre colchetes (`{`e`}`) por sua ID de assinatura do Azure, nome do grupo de recursos e nome da conta de armazenamento.

   ```
   az ad sp create-for-rbac `
   --name AWS-Rclone-Reader `
   --role "Storage Blob Data Reader" `
   --scopes /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Storage/storageAccounts/{Storage Account Name}
   ```

# Migre do Couchbase Server para o Couchbase Capella na AWS
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws"></a>

*Battulga Purevragchaa e Saurabh Shanbhag, Amazon Web Services*

*Mark Gamble, Nenhum*

## Resumo
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-summary"></a>

O Couchbase Capella é um banco de dados NoSQL totalmente gerenciado como serviço (DBaaS) para aplicativos de missão crítica (por exemplo, perfis de usuário ou catálogos on-line e gerenciamento de inventário). O Couchbase Capella gerencia sua carga de trabalho DBaa S em uma conta da Amazon Web Services (AWS) gerenciada pelo Couchbase. O Capella facilita a execução e o gerenciamento da replicação de vários clusters, várias regiões da AWS, multicloud e nuvem híbrida em uma única interface.

O Couchbase Capella ajuda você a escalar instantaneamente seus aplicativos do Couchbase Server, ajudando você a criar clusters de vários nós em minutos. O Couchbase Capella oferece suporte a todos os recursos do Couchbase Server, incluindo [SQL\$1\$1](https://www.couchbase.com/products/n1ql), [Full Text Search](https://www.couchbase.com/products/full-text-search), [Eventing Service](https://docs.couchbase.com/server/current/eventing/eventing-overview.html) e [Analytics Service](https://www.couchbase.com/products/analytics). Também elimina a necessidade de gerenciar instalações, atualizações, backups e manutenção geral do banco de dados. 

Esse padrão descreve as etapas e as melhores práticas para migrar um ambiente autogerenciado do [Couchbase Server](https://www.couchbase.com/products/server) para a Nuvem AWS. O padrão fornece um processo repetível para migrar dados e índices dos clusters do Couchbase Server, executados on-premises ou na nuvem, para o Couchbase Capella. O uso dessas etapas ajuda a evitar problemas durante a migração e acelera o processo geral de migração.

Esse padrão fornece as duas opções de migração a seguir:
+ **A opção 1** é apropriada se você tiver menos de 50 índices para migrar. 
+ **A opção 2** é apropriada se você tiver mais de 50 índices para migrar. 

Você também pode [configurar dados de amostra](https://docs.couchbase.com/server/current/manage/manage-settings/install-sample-buckets.html) em seu Couchbase Server autogerenciado para acompanhar o guia de migração.

Se você escolher a **opção de migração 2** ou se estiver usando escopos ou coleções diferentes do valor padrão, deverá usar o arquivo de configuração de exemplo, que está na seção *Informações adicionais*.

## Pré-requisitos e limitações
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-prereqs"></a>

**Pré-requisitos **
+ Uma conta paga existente do Couchbase Capella. Você também pode criar uma [conta do Couchbase Capella na AWS](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) e usar o teste gratuito do Couchbase Capella e, em seguida, fazer o upgrade para uma conta paga para configurar seu cluster para a migração. Para começar com a versão de teste, siga as instruções em [Introdução ao Couchbase Capella](https://docs.couchbase.com/cloud/get-started/create-account.html).
+ Um ambiente existente do Couchbase Server autogerenciado on-premises ou implantado em um provedor de serviços em nuvem. 
+ Para a opção de migração 2, Couchbase Shell e um arquivo de configuração. Para criar o arquivo de configuração, você pode usar o arquivo de exemplo que está na seção *Informações adicionais*.
+ Familiaridade com a administração do Couchbase Server e do Couchbase Capella.
+ Familiaridade com abrir portas TCP e executar comandos em uma interface de linha de comando (CLI).

O processo de migração também exige as funções e a experiência descritas na tabela a seguir.


| 
| 
| Perfil | Experiência | Responsabilidades | 
| --- |--- |--- |
| Administrador do Couchbase | Familiaridade com o Couchbase Server e o Couchbase CapellaO conhecimento básico da linha de comando é útil, mas não obrigatório | Tarefas específicas do Couchbase Server e do Capella | 
| Administrador de sistemas, administrador de TI | Familiaridade com o ambiente e a administração autogerenciados do sistema Couchbase Server | Abrindo portas e determinando endereços IP em nós de cluster autogerenciados do Couchbase Server | 

 

**Limitações**
+ Esse padrão é usado para migrar dados, índices e índices [Couchbase Full Text Search](https://docs.couchbase.com/server/current/fts/full-text-intro.html) do Couchbase Server para o Couchbase Capella na AWS. O padrão não se aplica à migração do [Couchbase Eventing Service](https://docs.couchbase.com/server/current/eventing/eventing-overview.html) ou ao [Couchbase Analytics.](https://docs.couchbase.com/server/current/analytics/introduction.html)
+ O Couchbase Capella está disponível em várias regiões da AWS. Para up-to-date obter informações sobre as regiões às quais a Capella oferece suporte, consulte [Amazon Web Services na documentação](https://docs.couchbase.com/cloud/reference/aws.html) do Couchbase.

**Versões do produto**
+ [Couchbase Server (Community ou Enterprise) Edition versão 5.x ou superior](https://docs.couchbase.com/server/current/release-notes/relnotes.html)

## Arquitetura
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-architecture"></a>

**Pilha de tecnologia de origem**
+ Couchbase Server

**Pilha de tecnologias de destino**
+ Couchbase Capella

**Arquitetura de destino**

![\[Migração do Couchbase Capella para o cluster do Couchbase no plano de dados Capella na AWS em quatro etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/14ac5a81-eade-4708-9335-f5602fa07824/images/95cd7f33-742e-4d10-8e2c-37c7b4d9df45.png)


1. Você acessa o Couchbase Capella usando o ambiente de gerenciamento **Capella**. É possível usar o ambiente de gerenciamento Capella para fazer o seguinte:
   + Controlar e monitorar sua conta.
   + Gerenciar clusters e dados, índices, usuários e grupos, permissões de acesso, monitoramento e eventos.

1. Clusters são criados.

1. O **plano de dados Capella** está na conta da AWS gerenciada pela Couchbase. Depois de criar um novo cluster, o Couchbase Capella o implanta em várias zonas de disponibilidade na região da AWS selecionada.

1. Você pode desenvolver e implantar aplicativos Couchbase em uma VPC na sua conta da AWS. Normalmente, essa VPC acessa o plano de dados Capella por meio do [emparelhamento de VPC.](https://docs.couchbase.com/cloud/clouds/private-network.html)

## Ferramentas
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-tools"></a>
+ O [Couchbase Cross Data Center Replication (XDCR)](https://docs.couchbase.com/cloud/current/clusters/xdcr/xdcr.html) ajuda a replicar dados em clusters localizados em diferentes provedores de nuvem e datacenters. Ele é usado para migrar dados para o Couchbase Capella a partir de clusters autogerenciados do Couchbase Server.
**nota**  
O XDCR não pode ser usado com o Couchbase Server Community Edition para migrar para o Couchbase Capella. Em vez disso, você pode usar o [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html). Para obter mais informações, consulte o épico *migrar dados da Community Edition*.
+ O [Couchbase Shell](https://couchbase.sh/docs/) é um shell de linha de comando para o Couchbase Server e o Couchbase Capella acessarem clusters locais e remotos do Couchbase. Nesse padrão, o Couchbase Shell é usado para migrar índices.
+ [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html) é um utilitário do Couchbase para exportar dados do cluster do Couchbase. Incluído nas ferramentas da [CLI do Couchbase Server](https://docs.couchbase.com/server/current/cli/cli-intro.html).

## Épicos
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-epics"></a>

### Preparar-se para a migração
<a name="prepare-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Avalie o tamanho do cluster autogerenciado do Couchbase Server. | Faça login no [Couchbase Web Console](https://docs.couchbase.com/server/current/manage/manage-ui/manage-ui.html) para Couchbase Server e avalie os nós e buckets do seu cluster autogerenciado. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Você usará suas configurações de cluster autogerenciadas do Couchbase Server como um guia geral para dimensionar e configurar o cluster de destino no Couchbase Capella.Para obter ajuda com um exercício mais detalhado de dimensionamento do Couchbase Capella, entre em [contato com o Couchbase](https://www.couchbase.com/contact). | Administrador do Couchbase | 
| Registre a distribuição do Couchbase Service no cluster autogerenciado do Couchbase Server.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 
| Registre os endereços IP dos nós do cluster autogerenciado do Couchbase Server. | (Ignore essa etapa se você estiver usando o Community Edition.) Registre o endereço IP de cada nó em seu cluster. Eles serão adicionados à lista de permissões em seu cluster Couchbase Capella posteriormente. | Administrador do Couchbase, administrador de sistemas | 

### Implemente e configure recursos no Couchbase Capella
<a name="deploy-and-configure-resources-on-couchbase-capella"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Escolher um modelo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 
| Escolha e configure os nós. | Escolha e configure os nós para corresponder ao seu ambiente de cluster autogerenciado do Couchbase Server, incluindo o número de nós, distribuição de serviços, computação ou RAM e armazenamento.O Couchbase Capella usa as melhores práticas de [escalabilidade multidimensional](https://docs.couchbase.com/cloud/clusters/scale-cluster.html#scale-a-cluster). Serviços e nós só podem ser escolhidos de acordo com as melhores práticas de implantação. Isso pode significar que você não pode corresponder exatamente às configurações do cluster autogerenciado do Couchbase Server. | Administrador do Couchbase | 
| Implantar o cluster | Escolha uma zona de suporte e um pacote de suporte e, em seguida, implante o cluster. Para obter instruções e etapas detalhadas, consulte [Criar um cluster](https://docs.couchbase.com/cloud/clusters/create-cluster.html) na documentação do Couchbase.Se você estiver usando o teste gratuito do Couchbase Capella, deverá convertê-lo em uma conta paga antes de iniciar sua migração. Para converter sua conta, abra a seção **Faturamento** do ambiente de gerenciamento do Couchbase Capella e escolha **Adicionar ID de ativação.** [A ID de ativação é enviada para seu endereço de e-mail de contato de cobrança após você concluir um contrato de compra com a Couchbase Sales ou depois de fazer uma compra por meio do AWS Marketplace.](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) | Administrador do Couchbase | 
| Crie um usuário com credencial de banco de dados.  | Um usuário de credencial de banco de dados é específico de um cluster e consiste em um nome de usuário, senha e um conjunto de privilégios de bucket. Esse usuário é necessário para criar buckets e acessar os dados do bucket. No ambiente de gerenciamento do Couchbase Capella, crie uma credencial de banco de dados para o novo cluster seguindo as instruções em [Configurar credenciais de banco de dados](https://docs.couchbase.com/cloud/clusters/manage-database-users.html) na documentação do Couchbase Capella.Um usuário da organização precisa de credenciais de função organizacional atribuídas a ele se quiser acessar dados do bucket em um cluster específico, remotamente ou por meio da interface do Couchbase Capella. Isso é separado das credenciais do banco de dados, que normalmente são usadas por aplicativos e integrações. A criação do usuário organizacional permite que você crie e gerencie os buckets de destino em seu cluster Couchbase Capella. | Administrador do Couchbase | 
| Se estiver usando a opção de migração 2, instale o Couchbase Shell. | Você pode instalar o Couchbase Shell em qualquer sistema que tenha acesso de rede ao seu Couchbase Server autogerenciado e aos clusters Couchbase Capella. Para obter mais informações, consulte [Instalar o Couchbase Shell versão 1.0.0-beta.5](https://couchbase.sh/docs/#_installation) na documentação do Couchbase Shell.Confirme se o Couchbase Shell está instalado [testando uma conexão com seu cluster autogerenciado](https://couchbase.sh/docs/#_connecting_to_a_cluster) em um terminal de linha de comando. | Administrador do Couchbase, administrador de sistemas | 
| Permitir endereços IP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Para obter mais informações sobre endereços IP permitidos, consulte [Configurar endereços IP permitidos](https://docs.couchbase.com/cloud/get-started/configure-cluster-access.html#allow-ip-address) na documentação do Couchbase. | Administrador do Couchbase, administrador de sistemas | 
| Configurar certificados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase, administrador de sistemas | 
| Criar o arquivo de configuração do Couchbase Shell. | Crie um dotfile de configuração no diretório inicial da instalação do Couchbase Shell (por exemplo, `/<HOME_DIRECTORY>/.cbsh/config`). Para obter mais informações, consulte [Configurar dotfiles](https://couchbase.sh/docs/#_the_config_dotfiles) na documentação do Couchbase.Adicione propriedades de conexão dos clusters de origem e de destino ao arquivo de configuração. Você pode usar o arquivo de configuração de exemplo que está na seção *Informações adicionais* e editar as configurações dos seus clusters. Salve o arquivo de configuração com as configurações atualizadas na pasta `.cbsh` (por exemplo, `/<HOME_DIRECTORY>/.cbsh/config`). | Administrador do Couchbase, administrador de sistemas | 
| Crie buckets de destino. | Para cada bucket de origem, crie um bucket de destino em seu cluster Couchbase Capella seguindo as instruções em [Criar um bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket) na documentação do Couchbase.As configurações do bucket de destino devem corresponder aos nomes dos buckets, às configurações de memória e às configurações de resolução de conflitos dos buckets em seu cluster autogerenciado do Couchbase Server. | Administrador do Couchbase | 
| Crie escopos e coleções. | Cada bucket contém um escopo e uma coleção padrão com o espaço-chave `_default._default`. Se você estiver usando qualquer outro espaço-chave para seu escopo e coleção, deverá criar espaços-chave idênticos no cluster Capella de destino.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)<pre>scopes --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope | where scope != "_default" | each { |it| scopes create $it.scope --clusters "Capella-Cluster" }<br />collections --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope collection | where $it.scope != "_default" | where $it.collection != "_default" | each { |it| collections create $it.collection --clusters "Capella-Cluster" --bucket <BUCKET_NAME> --scope $it.scope }</pre> | Administrador do Couchbase | 

### Migre os dados da Enterprise Edition
<a name="migrate-the-data-from-enterprise-edition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Abra portas TCP nos nós de cluster autogerenciados do Couchbase Server. | Garanta que as portas apropriadas estejam abertas para comunicação XDCR nos nós do cluster autogerenciado do Couchbase Server. Para obter mais informações, consulte a [documentação de portas do Couchbase Server](https://docs.couchbase.com/server/current/install/install-ports.html#ports-listed-by-communication-path). | Administrador do Couchbase, administrador de sistemas | 
| Se você estiver usando o Couchbase Server Enterprise Edition, configure o Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 
| Inicie o Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 

### Migre os índices usando a opção 1
<a name="migrate-the-indexes-by-using-option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre índices de cluster autogerenciados para o Couchbase Capella. | Nós recomendamos esse processo se você tiver menos de 50 índices para migrar. Se você tiver mais de 50 índices para migrar, recomendamos usar a opção de migração 2.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase, administrador de sistemas | 

### Migre os índices usando a opção 2
<a name="migrate-the-indexes-by-using-option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre as definições do índice.  | Nós recomendamos esse processo se você tiver mais de 50 índices para migrar. Se você tiver menos de 50 índices para migrar, recomendamos usar a opção de migração 1.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase, administrador de sistemas | 
| Crie as definições do índice.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase, administrador de sistemas | 

### Migre índices de pesquisa de texto completo
<a name="migrate-full-text-search-indexes"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre os índices de pesquisa de texto completo do cluster autogerenciado para o Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 

### Migre dados do Couchbase Community Edition
<a name="migrate-data-from-couchbase-community-edition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exporte dados do Couchbase Server Community Edition autogerenciado. | O XDCR criptografado não está disponível no Couchbase Community Edition. Você pode exportar dados do Couchbase Community Edition e depois importar manualmente os dados para o Couchbase Capella.Para exportar dados do bucket de origem, use `cbexport` na linha de comando.O comando a seguir é um exemplo.<pre>cbexport json \<br />--cluster localhost \<br />--bucket <SOURCE BUCKET NAME> \<br />--format lines \<br />--username <USERNAME> \<br />--password <PASSWORD> \<br />--include-key cbkey \<br />--scope-field cbscope \<br />--collection-field cbcoll \<br />--output cbexported_data.json</pre>Observe que `cbkey`, `cbscope`, `cbcoll`, e `cbexported_data.json` são rótulos arbitrários. Eles serão referenciados posteriormente no processo, portanto, se você optar por nomeá-los de forma diferente, anote-os. | Administrador do Couchbase | 
| Importe dados para o Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Para arquivos grandes, o Couchbase Capella suporta importação de linha de comando usando cURL. Você pode explorar as opções de importação com mais detalhes em [Importar dados](https://docs.couchbase.com/cloud/clusters/data-service/import-data-documents.html) na documentação do Couchbase Capella. | Administrador do Couchbase | 

### Testar e verificar a migração
<a name="test-and-verify-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar a migração de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 
| Verifique a migração do índice.  | No ambiente de gerenciamento do Couchbase Capella, na lista suspensa **Ferramentas** do seu cluster de destino, escolha **Índices**. Verifique se os índices foram migrados e criados. | Administrador do Couchbase | 
| Verificar resultados da consulta.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 
| Verifique os resultados da pesquisa em texto completo (aplicável se você migrou os índices do FTS). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Administrador do Couchbase | 

## Recursos relacionados
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-resources"></a>

**Prepare a migração**
+ [Comece com o teste gratuito do Couchbase Capella](https://cloud.couchbase.com/sign-up)
+ [Requisitos do provedor de nuvem para o Couchbase Capella](https://docs.couchbase.com/cloud/reference/aws.html)
+ [Diretrizes de dimensionamento do Couchbase Capella](https://docs.couchbase.com/cloud/clusters/sizing.html)

**Migre os dados e os índices**
+ [Couchbase XDCR](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html)
+ [Documentação do Couchbase Shell](https://couchbase.sh/docs/)

**Couchbase SLAs Capella e suporte**
+ Contratos de nível de [serviço do Couchbase Capella](https://www.couchbase.com/capellasla) () SLAs
+ [Política de suporte do Couchbase Capella Service](https://www.couchbase.com/support-policy/cloud)

## Mais informações
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-additional"></a>

O seguinte código é um exemplo de [arquivo de configuração bean para Couchbase Shell](https://couchbase.sh/docs/#_the_config_dotfiles). 

```
Version = 1
 
[[clusters]]
identifier = "On-Prem-Cluster"
hostnames = ["<SELF_MANAGED_COUCHBASE_CLUSTER>"]
default-bucket = "travel-sample"
username = "<SELF_MANAGED_ADMIN>"
password = "<SELF_MANAGED_ADMIN_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_SELF_MANAGED_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
 
[[clusters]]
identifier = "Capella-Cluster"
hostnames = ["<COUCHBASE_CAPELLA_ENDPOINT>"]
default-bucket = "travel-sample"
username = "<CAPELLA_DATABASE_USER>"
password = "<CAPELLA_DATABASE_USER_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_COUCHBASE_CAPELLA_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
```

Antes de salvar o arquivo de configuração, use a tabela a seguir para garantir que você tenha adicionado suas próprias informações do cluster de origem e destino.

 


|  |  | 
| --- |--- |
| <SELF\$1MANAGED\$1COUCHBASE\$1CLUSTER> | Use o endereço IP do seu cluster autogerenciado do Couchbase Server. | 
| <SELF\$1MANAGED\$1ADMIN> | Use o usuário administrador para seu cluster autogerenciado do Couchbase Server. | 
| <ABSOLUTE\$1PATH\$1TO\$1SELF\$1MANAGED\$1ROOT\$1CERT> | Use o caminho absoluto para o arquivo de certificado raiz salvo para seu cluster autogerenciado do Couchbase Server. | 
| <COUCHBASE\$1CAPELLA\$1ENDPOINT> | Use o endpoint de conexão para seu cluster Couchbase Capella. | 
| <CAPELLA\$1DATABASE\$1USER> | Use o usuário do banco de dados para seu cluster Couchbase Capella. | 
| <CAPELLA\$1DATABASE\$1USER\$1PWD> | Use a senha de usuário do banco de dados para seu cluster Couchbase Capella. | 
| <ABSOLUTE\$1PATH\$1TO\$1COUCHBASE\$1CAPELLA\$1ROOT\$1CERT> | Use o caminho absoluto para o arquivo de certificado raiz salvo para seu cluster Couchbase Capella. | 

# Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2"></a>

*Neal Ardeljan e Afroz Khan, Amazon Web Services*

## Resumo
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-summary"></a>

Esse padrão orienta você pelas etapas de migração de um sistema local Red Hat Enterprise Linux (RHEL) 6.9 ou posterior que esteja executando o IBM WebSphere Application Server (WAS) para o RHEL 8 executando o Apache Tomcat em uma instância do Amazon Elastic Compute Cloud (Amazon). EC2 

O padrão pode ser aplicado às seguintes versões de origem e destino: 
+ WebSphere Servidor de aplicativos 7.x para Apache Tomcat 8 (com Java 7 ou posterior) 
+ WebSphere Servidor de aplicativos 8.x para Apache Tomcat 8 (com Java 7 ou posterior) 
+ WebSphere Servidor de aplicativos 8.5.5.x para Apache Tomcat 9 (com Java 8 ou posterior) 
+ WebSphere Servidor de aplicativos 8.5.5.x para Apache Tomcat 10 (com Java 8 ou posterior) 

## Pré-requisitos e limitações
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-prereqs"></a>

**Pré-requisitos****  **
+ Uma conta AWS ativa 
+ Código-fonte Java, com as seguintes pressuposições:
  + Usa a versão Java Development Kit (JDK) do Java 7 ou superior 
  + Usa a estrutura Spring ou Apache Struts 
  + Não usa a estrutura Enterprise Java Beans (EJB) ou qualquer outra funcionalidade de WebSphere servidor que não esteja prontamente disponível para o Tomcat
  + Usa principalmente servlets ou Java Server Pages () JSPs 
  + Usa conectores Java Database Connectivity (JDBC) para se conectar a bancos de dados  
+ Fonte IBM WebSphere Application Server versão 7.x ou superior 
+ Destino: Apache Tomcat versão 8.5 ou superior  

## Arquitetura
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-architecture"></a>

** ****Pilha de tecnologia de origem**
+ Um aplicativo web criado usando a estrutura Apache Struts Model-View-Controller (MVC) 
+ Um aplicativo web executado no IBM WebSphere Application Server versão 7.x ou 8.x
+ Um aplicativo web que usa um conector Lightweight Directory Access Protocol (LDAP) para se conectar a um diretório LDAP (iPlanet/eTrust) 
+ Um aplicativo que usa a conectividade do IBM Tivoli Access Manager (TAM) para atualizar a senha do usuário TAM (na implementação atual, os aplicativos usam PD.jar)

** ****Bancos de dados on-premises **
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)
+ Oracle Database 12c Versão 2 (12.2.0.1)
+ Oracle Database 12c Versão 1 (12.1.0.2)

**Pilha de tecnologias de destino**
+ Apache Tomcat versão 8 (ou posterior) em execução no RHEL em uma instância EC2 
+ Amazon Relational Database Service (Amazon RDS) para Oracle

Para obter mais informações sobre as versões do Oracle compatíveis do Amazon RDS, consulte o site do [Amazon RDS para Oracle](https://aws.amazon.com/rds/oracle/). 

**Arquitetura de destino**

![\[Arquitetura para migrar da IBM WebSphere para o Apache Tomcat na Amazon EC2\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/96f91201-e0a6-4d3f-a94e-7bd68a59cc4e/images/11afe7c0-b400-423b-9dfe-02a915fe47ff.png)


## Ferramentas
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-tools"></a>
+ Nível do aplicativo: reconstruindo o aplicativo Java em um arquivo WAR.
+ Nível do banco de dados: backup e restauração nativos do Oracle.
+ Ferramenta de migração Apache Tomcat para Jakarta EE. Essa ferramenta pega um aplicativo web escrito para Java EE 8 executado no Apache Tomcat 9 e o converte automaticamente para execução no Apache Tomcat 10, que implementa o Jakarta EE 9.

## Épicos
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Conclua a descoberta do aplicativo, o estado atual e a linha de base de desempenho. |  | BA, líder de migração | 
| Valide as versões dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de hardware para a EC2 instância do servidor de destino. |  | DBA, SysAdmin | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, SysAdmin | 
| Escolha o tipo de EC2 instância adequado com base na capacidade, nos recursos de armazenamento e nos recursos de rede. |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin | 
| Identifique a estratégia e as ferramentas de migração de aplicativos. |  | DBA, líder de migração | 
| Concluir o projeto da migração e o guia de migração do aplicativo. |  | Líder de desenvolvimento, líder de migração | 
| Concluir o runbook de migração do aplicativo. |  | Líder de construção, líder de substituição, líder de teste, líder de migração | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  | SysAdmin | 
| Criar grupos de segurança. |  | SysAdmin | 
| Configurar e iniciar o Amazon RDS para Oracle. |  | DBA, SysAdmin | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie ou obtenha acesso aos endpoints para buscar os arquivos de backup do banco de dados. |  | DBA | 
| Use o mecanismo de banco de dados nativo ou uma ferramenta de terceiros para migrar objetos e dados do banco de dados. | Para obter detalhes, consulte “Migrar objetos e dados do banco de dados” na seção *Informações adicionais*. | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Apresentar a change request (CR – solicitação de alteração) para migração. |  | Líder de substituição | 
| Obtenha a aprovação do CR para migração. |  | Líder de substituição | 
| Siga a estratégia de migração de aplicativos de acordo com o runbook de migração de aplicativos. | Para obter detalhes, consulte “Como configurar a camada do aplicativo” na seção *Informações adicionais*. | DBA, engenheiro de migração, proprietário do aplicativo | 
| Atualize o aplicativo (se necessário). |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Conclua os testes funcionais e não funcionais de validação de dados, SLA e desempenho. |  | Líder de teste, proprietário do aplicativo, usuários do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha a aprovação do proprietário do aplicativo ou do proprietário da empresa. |  | Líder de substituição | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA, engenheiro de migração, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, engenheiro de migração, SysAdmin | 
| Revise e valide os documentos do projeto. |  | Líder de migração | 
| Reúna métricas como tempo de migração, porcentagem de tarefas manuais versus automatizadas e economia de custos. |  | Líder de migração | 
| Feche o projeto e forneça feedback. |  | Líder de migração, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-resources"></a>

**Referências**
+ [Documentação do Apache Tomcat 10.0](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
+ [Documentação do Apache Tomcat 9.0](https://tomcat.apache.org/tomcat-9.0-doc/index.html)
+ [Documentação do Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc)
+ [Guia de instalação do Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc/setup.html)
+ [Documentação do Apache Tomcat JNDI ](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)
+ [Site do Amazon RDS para Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle e Amazon Web Services](https://aws.amazon.com/oracle/) 
+ [Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/) 

**Tutoriais e vídeos**
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

## Mais informações
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-additional"></a>

**Migração de objetos e dados do banco de dados**

Por exemplo, se você estiver usando backup/restore utilitários nativos da Oracle:

1. Criar o backup do Amazon Simple Storage Service (Amazon S3) para arquivos de backup do banco de dados (opcional).

1. Faça backup dos dados do Oracle DB na pasta compartilhada da rede.

1. Faça login no servidor de preparação da migração para mapear a pasta de compartilhamento de rede.

1. Copie dados da pasta de compartilhamento de rede para o bucket do S3.

1. Solicite uma implantação do Multi-AZ do Amazon RDS para Oracle.

1. Restaure o backup do banco de dados on-premises no Amazon RDS para Oracle.

**Como configurar o nível do aplicativo**

1. Instale o Tomcat 8 (ou 9/10) no site do Apache Tomcat.

1. Compacte o aplicativo e as bibliotecas compartilhadas em um arquivo WAR.

1. Implante o arquivo WAR no Tomcat.

1. Monitore o registro inicial de `Linux cat` todas as bibliotecas compartilhadas ausentes do WebSphere.

1. Assista ao registro inicial de `Linux cat` qualquer extensão WebSphere específica do descritor de implantação.

1. Colete todas as bibliotecas Java dependentes ausentes do WebSphere servidor.

1. Altere elementos WebSphere específicos do descritor de implantação com equivalentes compatíveis com Tomcat.

1. Reconstrua o arquivo WAR com as bibliotecas Java dependentes e os descritores de implantação atualizados.

1. Atualize a configuração LDAP, a configuração do banco de dados e as conexões de teste (consulte [COMO FAZER a configuração do Realm](https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html)) e [COMO FAZER uma fonte de dados JNDI](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html) na documentação do Apache Tomcat).

1. Teste o aplicativo instalado no banco de dados do Amazon RDS para Oracle restaurado.

1. Crie uma Amazon Machine Image (AMI) para Linux a partir da EC2 instância.

1. Inicie a arquitetura completa com o grupo Application Load Balancer e grupo do Auto Scaling (ajuste de escala automático).

1. Atualize o URLs (usando a junção WebSEAL) para apontar para o Application Load Balancer.

1. Atualize o banco de dados de gerenciamento de configuração (CMDB). 

# Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling"></a>

*Kevin Yung e Afroz Khan, Amazon Web Services*

## Resumo
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-summary"></a>

Esse padrão fornece orientação para migrar um aplicativo Java do IBM WebSphere Application Server para o Apache Tomcat em uma EC2 instância do Amazon Elastic Compute Cloud (Amazon) com o Amazon Auto EC2 Scaling ativado. 

Ao usar esse padrão, você pode conseguir:
+ Uma redução nos custos de licenciamento da IBM
+ Alta disponibilidade usando implantação Multi-AZ
+ Melhor resiliência de aplicativos com o Amazon EC2 Auto Scaling

## Pré-requisitos e limitações
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Aplicações Java (versão 7.*x* ou 8.*x*) devem ser desenvolvidas em pilhas LAMP.
+ O estado de destino é hospedar aplicativos Java em hosts Linux. Esse padrão foi implementado com sucesso em um ambiente Red Hat Enterprise Linux (RHEL) 7. Outras distribuições Linux podem seguir esse padrão, mas a configuração da distribuição Apache Tomcat deve ser referenciada.
+ Você deve entender as dependências do aplicativo Java.
+ Você deve ter acesso ao código-fonte do aplicativo Java para fazer alterações. 

**Limitações e mudanças na redefinição da plataforma**
+ Você deve compreender os componentes do arquivamento corporativo (EAR) e verificar se todas as bibliotecas estão empacotadas nos arquivos WAR do componente web. Você precisa configurar o [plug-in WAR do Apache Maven](https://maven.apache.org/plugins/maven-war-plugin/) e produzir artefatos de arquivo WAR.
+ Ao usar o Apache Tomcat 8, há um conflito conhecido entre o servlet-api.jar e os arquivos JAR integrados do pacote do aplicativo. Para resolver esse problema, exclua o servlet-api.jar do pacote do aplicativo.
+ Você deve configurar WEB-INF/Resources localizados no *classpath* da [configuração do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html). Por padrão, as bibliotecas JAR não são carregadas no diretório. Como alternativa, você pode implantar todos os recursos abaixo src/main/resources*.*
+ Verifique se há raízes de contexto de codificação rígida no aplicativo Java e atualize a nova [raiz de contexto do Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context)
+ Para definir as opções de runtime da JVM, você pode criar o arquivo de configuração setenv.sh na pasta bin do Apache Tomcat; por exemplo, JAVA\$1OPTS, JAVA\$1HOME etc**.**  
+ A autenticação é configurada no nível do contêiner e configurada como uma região nas configurações do Apache Tomcat. A autenticação é estabelecida para qualquer um dos três domínios a seguir: 
  + O [JDBC Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm) pesquisa usuários em um banco de dados relacional acessado pelo driver JDBC.
  + DataSource O [Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm) pesquisa usuários em um banco de dados que é acessado pelo JNDI. 
  + O [JNDI Directory Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm) pesquisa usuários no diretório Lightweight Directory Access Protocol (LDAP) que é acessado pelo provedor JNDI. As pesquisas exigem: 
    + Detalhes da conexão LDAP: base de pesquisa de usuário, filtro de pesquisa, base de perfil, filtro de perfil 
    + A principal região do diretório JNDI: conecta-se ao LDAP, autentica usuários e recupera todos os grupos dos quais um usuário é membro
+ Autorização: no caso de um contêiner com uma autorização baseada em funções que verifica as restrições de autorização em web.xml, os recursos da Web devem ser definidos e comparados às funções definidas nas restrições. Se o LDAP não tiver mapeamento de função de grupo, você deverá definir o atributo < security-role-ref > em web.xml para obter o mapeamento de função de grupo. Para ver um exemplo de um documento de configuração, consulte a [documentação da Oracle](https://docs.oracle.com/cd/E19226-01/820-7627/bncav/index.html). 
+ Conexão de banco de dados: crie uma definição de recurso no Apache Tomcat com um URL de endpoint do Amazon Relational Database Service (Amazon RDS) e detalhes de conexão. Atualize o código do aplicativo para fazer referência a DataSource usando a pesquisa JNDI. Uma conexão de banco de dados existente definida em não WebSphere funcionaria, pois usa os nomes WebSphere JNDI. Você pode adicionar uma <resource-ref>entrada em web.xml com o nome JNDI e a definição do DataSource tipo. Para ver um exemplo de documento de configuração, consulte a [documentação do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
+ Registro: por padrão, o Apache Tomcat faz o registro de logs no console ou em um arquivo de log. Você pode ativar o rastreamento em nível de domínio atualizando *logging.properties* (consulte [Registro em log no Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/logging.html)). Se você estiver usando o Apache Log4j para anexar registros em log a um arquivo, você deve baixar o tomcat-juli e adicioná-lo ao *classpath.*
+ Gerenciamento de sessão: se você estiver mantendo o IBM WebSEAL para Application Load Balancer e gerenciamento de sessões, nenhuma alteração será necessária. [Se você estiver usando um Application Load Balancer ou Network Load Balancer na AWS para substituir o componente IBM WebSEAL, deverá configurar o gerenciamento de sessões usando uma instância da ElastiCache Amazon com um cluster Memcached e configurar o Apache Tomcat para usar o gerenciamento de sessões de código aberto.](https://github.com/magro/memcached-session-manager) 
+ Se você estiver usando o proxy de encaminhamento IBM WebSEAL, deverá configurar um novo Network Load Balancer na AWS. Use o IPs fornecido pelo Network Load Balancer para configurações de junção do WebSEAL.
+ Configuração SSL: recomendamos que você use o Secure Sockets Layer (SSL) para comunicações. end-to-end Para definir uma configuração de servidor SSL no Apache Tomcat, siga as instruções na [documentação do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html). 

## Arquitetura
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-architecture"></a>

**Pilha de tecnologia de origem**
+ Servidor WebSphere de aplicativos IBM

 

**Pilha de tecnologias de destino**
+ A arquitetura usa o [Elastic Load Balancing (versão 2](https://docs.aws.amazon.com/elasticloadbalancing/)). Se você estiver usando o IBM WebSEAL para gerenciamento e balanceador de carga do Identify, poderá selecionar um Network Load Balancer na AWS para integrar com o proxy reverso IBM WebSEAL.
+ Os aplicativos Java são implantados em um servidor de aplicativos Apache Tomcat, que é executado em uma EC2 instância em um grupo do Amazon Auto [Scaling. EC2 ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) Você pode configurar uma [política de escalabilidade](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) com base nas CloudWatch métricas da Amazon, como a utilização da CPU. 
+ Se você estiver retirando o uso do IBM WebSEAL para balanceamento de carga, poderá usar o [Amazon ElastiCache for Memcached para gerenciamento](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) de sessões.
+ Para o banco de dados de backend, você pode implantar a [Alta Disponibilidade (Multi-AZ) para o Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) e selecionar um tipo de mecanismo de banco de dados.

 

**Arquitetura de destino**

![\[Nuvem AWS architecture with VPC, two availability zones, load balancer, and database components.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/52b91dab-7b3b-4751-abe2-25e7c7cd8d89/images/25125023-9a81-452a-9ada-184e2416cc02.png)


## Ferramentas
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ Apache Tomcat (versão 7.*x* ou 8.*x*)
+ RHEL 7 ou Centos 7
+ [Implantação do Multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache para Memcached (opcional](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html))

## Épicos
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-epics"></a>

### Configuração da VPC
<a name="set-up-the-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  |  | 
| Crie sub-redes. |  |  | 
| Crie tabelas de roteamento, se necessário. |  |  | 
| Crie listas de controle de acesso à rede (ACLs). |  |  | 
| Configure o AWS Direct Connect ou uma conexão VPN corporativa. |  |  | 

### Redefina a plataforma do aplicativo
<a name="replatform-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Refatore a configuração do Maven de compilação do aplicativo para gerar os artefatos WAR. |  |  | 
| Refatore as fontes de dados de dependência do aplicativo no Apache Tomcat. |  |  | 
| Refatore os códigos-fonte do aplicativo para usar nomes JNDI no Apache Tomcat. |  |  | 
| Implante os artefatos WAR no Apache Tomcat. |  |  | 
| Validações e testes completos do aplicativo. |  |  | 

### Configure a rede
<a name="configure-the-network"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o firewall corporativo para permitir a conexão com os serviços de dependência. |  |  | 
| Configure o firewall corporativo para permitir que o usuário final acesse o Elastic Load Balancing na AWS. |  |  | 

### Crie a infraestrutura de aplicativos
<a name="create-the-application-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie e implante o aplicativo em uma EC2 instância. |  |  | 
| Crie um cluster Amazon ElastiCache for Memcached para gerenciamento de sessões. |  |  | 
| Crie uma instância do Multi-AZ do Amazon RDS para o banco de dados de backend. |  |  | 
| Crie certificados SSL e importe-os para o AWS Certificate Manager (ACM). |  |  | 
| Instale certificados SSL em balanceadores de carga. |  |  | 
| Instale certificados SSL para servidores Apache Tomcat. |  |  | 
| Validações e testes completos do aplicativo. |  |  | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre a infraestrutura existente. |  |  | 
| Restaure o banco de dados da produção para o Amazon RDS. |  |  | 
| Substitua o aplicativo fazendo alterações no DNS. |  |  | 

## Recursos relacionados
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-related-resources"></a>

**Referências**
+ [Documentação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html)
+ [Guia de instalação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html)
+ [Documentação do Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache para Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html)

**Tutoriais e vídeos**
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migre uma aplicação .NET do Microsoft Azure App Service para o AWS Elastic Beanstalk
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk"></a>

*Raghavender Madamshitti, Amazon Web Services*

## Resumo
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-summary"></a>

Esse padrão descreve como migrar um aplicativo web.NET hospedado no Microsoft Azure App Service para o AWS Elastic Beanstalk. Há duas maneiras de migrar aplicativos para o Elastic Beanstalk:
+ Use o AWS Toolkit for Visual Studio: Esse plug-in para o IDE do Microsoft Visual Studio fornece a maneira mais fácil e direta de implantar aplicativos.NET personalizados na AWS. Você pode usar essa abordagem para implantar código.NET diretamente na AWS e criar recursos de suporte, como o Amazon Relational Database Service (Amazon RDS) para bancos de dados SQL Server, diretamente do Visual Studio.
+ Carregar e implantar no Elastic Beanstalk: cada Serviço de Aplicativo do Azure inclui um serviço em segundo plano chamado Kudu, que é útil para capturar despejos de memória e registros de implantação, visualizar parâmetros de configuração e acessar pacotes de implantação. Você pode usar o console Kudu para acessar o conteúdo do Azure App Service, extrair o pacote de implantação e, em seguida, carregar o pacote no Elastic Beanstalk usando a opção de upload e implantação no console do Elastic Beanstalk.

Esse padrão descreve a segunda abordagem (fazer o upload do seu aplicativo para o Elastic Beanstalk por meio do Kudu). O padrão também usa os seguintes serviços da AWS: AWS Elastic Beanstalk, Amazon Virtual Private Cloud (Amazon VPC), Amazon, Amazon Elastic Compute Cloud ( CloudWatchAmazon) Auto Scaling, EC2 Amazon Simple Storage Service (Amazon S3) e Amazon Route 53. 

O aplicativo web.NET é implantado no AWS Elastic Beanstalk, que é executado em um grupo Amazon EC2 Auto Scaling. Você pode configurar uma política de escalabilidade com base nas CloudWatch métricas da Amazon, como a utilização da CPU. No caso de banco de dados, você pode usar o Amazon RDS em um ambiente Multi-AZ ou o Amazon DynamoDB, dependendo do seu aplicativo e dos requisitos comerciais. 

## Pré-requisitos e limitações
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um aplicativo web.NET em execução no Serviço de Aplicativo do Azure
+ Permissão para usar o console Kudu do Serviço de Aplicativo do Azure

**Versões do produto**
+ .NET Core (x64) 1.0.1, 2.0.0 ou superior, ou .NET Framework 4.x, 3.5 (consulte [.NET no histórico da plataforma do Windows Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html))
+ Serviços de Informações da Internet (IIS) versão 8.0 ou superior, em execução no Windows Server 2012 ou superior
+ .NET 2.0 ou 4.0 runtime.

## Arquitetura
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-architecture"></a>

**Pilha de tecnologia de origem**
+  Aplicativo desenvolvido usando o .NET Framework 3.5, ou superior, ou .NET Core 1.0.1, 2.0.0 ou superior e hospedado no Serviço de Aplicativo do Azure (aplicativo web ou aplicativo de API)

**Pilha de tecnologias de destino**
+ AWS Elastic Beanstalk em execução em um grupo do Amazon EC2 Auto Scaling

**Arquitetura de migração**

![\[O Kudu acessa o conteúdo do Azure App Service, obtém o pacote de implantação e faz o upload dele para o Elastic Beanstalk.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/dd15f97b-9cf2-4bcc-af45-44df1c4ca4a5.png)


 

**Fluxo de trabalho de implantação**

![\[Fluxo de implantação para criar a aplicação, publicá-la no ambiente de lançamento e, em seguida, gerenciar esse ambiente.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/accec77d-c753-4166-8f27-bd4932b3d884.png)


## Ferramentas
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-tools"></a>

**Ferramentas**
+ .NET Core ou .NET Framework
+ C\$1
+ IIS
+ Console Kudu

**Serviços e atributos da AWS**
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) — O Elastic Beanstalk é um serviço para implantar e easy-to-use escalar aplicativos web.NET. O Elastic Beanstalk gerencia automaticamente o provisionamento de capacidade, o balanceamento de carga e o escalonamento automático.
+ Grupo [Amazon EC2 Auto Scaling — O Elastic Beanstalk inclui um grupo](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) de Auto Scaling que gerencia as instâncias da Amazon no ambiente. EC2 Em um ambiente de instância única, o grupo de Auto Scaling garante que sempre haja uma instância em execução. Em um ambiente com balanceamento de carga, você pode configurar o grupo com uma variedade de instâncias para execução, e o Amazon EC2 Auto Scaling adiciona ou remove instâncias conforme necessário, com base na carga.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Quando você ativa o balanceamento de carga no AWS Elastic Beanstalk, ele cria um balanceador de carga que distribui o tráfego entre as instâncias no ambiente. EC2 
+ [Amazon CloudWatch — O](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) Elastic Beanstalk CloudWatch usa automaticamente a Amazon para fornecer informações sobre seus recursos de aplicativo e ambiente. A Amazon CloudWatch oferece suporte a métricas padrão, métricas personalizadas e alarmes.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html): o Amazon Route 53 é um web service de Sistema de Nomes de Domínio (DNS) altamente disponível e dimensionável. Você pode usar os registros de alias do Route 53 para mapear nomes de domínio personalizados para ambientes do AWS Elastic Beanstalk.

## Épicos
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-epics"></a>

### Configurar uma VPC
<a name="set-up-a-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar uma nuvem privada virtual (VPC). | Na sua conta da AWS, crie uma VPC com as informações necessárias. | Administrador de sistema | 
| Crie sub-redes. | Crie duas ou mais sub-redes em sua VPC. | Administrador de sistema | 
| Crie uma tabela de rotas. | Crie uma tabela de rotas com base em seus requisitos. | Administrador de sistema | 

### Configurar Elastic Beanstalk
<a name="set-up-elastic-beanstalk"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Acessar o console Kudu do Serviço de Aplicativo do Azure. | Acesse o Kudu por meio do portal do Azure navegando até o painel do Serviço de Aplicativo e escolhendo **Ferramentas Avançadas**, **Go**. Ou então, você pode modificar a URL do Serviço de Aplicativo do Azure da seguinte forma: `https://<appservicename>.scm.azurewebsites.net`. | Desenvolvedor de aplicativos, administrador do sistema | 
| Baixe o pacote de implantação do Kudu. | Navegue até o Windows PowerShell escolhendo a **DebugConsole**opção. Isso abrirá o console do Kudo. Vá até a pasta `wwwroot` e faça o download. Isso baixará o pacote de implantação do Serviço de Aplicativo do Azure como um arquivo zip. Para ver um exemplo, consulte o anexo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Crie um pacote para o Elastic Beanstalk. | Descompacte o pacote de implantação que você baixou do Serviço de Aplicativo do Azure. Crie um arquivo JSON chamado `aws-windows-deployment-manifest.json` (esse arquivo é necessário somente para aplicativos.NET Core). Crie um arquivo zip que inclua `aws-windows-deployment-manifest.json` e o arquivo do pacote de implantação do Serviço de Aplicativo do Azure. Para ver um exemplo, consulte o anexo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Crie um novo aplicativo do Elastic Beanstalk. | Abra o console do Elastic Beanstalk. Escolha um aplicativo existente ou crie um aplicativo novo. | Desenvolvedor de aplicativos, administrador do sistema | 
| Criar o ambiente | No menu **Ações** do console do Elastic Beanstalk, escolha **Criar ambiente**. Selecione o ambiente do servidor web e a plataforma .NET/IIS. Em Código do aplicativo, escolha **Fazer upload**. Faça upload do arquivo zip que você preparou para o Elastic Beanstalk e escolha **Create Environment.** | Desenvolvedor de aplicativos, administrador do sistema | 
| Configure a Amazon CloudWatch. | Por padrão, o CloudWatch monitoramento básico está ativado. **Se você quiser alterar a configuração, no assistente do Elastic Beanstalk, escolha o aplicativo publicado e, em seguida, escolha Monitoramento.** | Administrador de sistema | 
| Verifique se o pacote de implantação está no Amazon S3.  | Quando o ambiente do aplicativo for criado, você poderá encontrar o pacote de implantação no bucket do S3. | Desenvolvedor de aplicativos, administrador do sistema | 
| Testar o aplicativo. | Quando o ambiente for criado, use a URL fornecida no console do Elastic Beanstalk para testar a aplicação. | Administrador de sistema | 

## Recursos relacionados
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-resources"></a>
+ [Conceitos do AWS Elastic Beanstack](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.html) (Documentação do Elastic Beanstalk)
+ [Conceitos básicos do .NET no Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-getstarted.html) (Documentação do Elastic Beanstalk)
+ [Consola Kudu](https://github.com/projectkudu/kudu/wiki/Kudu-console) () GitHub
+ [Using “Kudu” to Manage Azure Web Apps](https://www.gslab.com/blogs/kudu-azure-web-app/) (artigo do GS Lab)
+ [Implantações personalizadas do ASP.NET Core Elastic Beanstalk](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-beanstalk-custom-netcore.html) (guia do usuário do AWS Toolkit for Visual Studio)
+ [Documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Plataformas com suporte do AWS Elastic Beanstalk](https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/platforms/platforms-supported.html) (Documentação do Elastic Beanstalk)
+ [Implante um aplicativo web na AWS](https://www.c-sharpcorner.com/article/deploying-a-web-application-to-aws/) (artigo da C\$1 Corner)
+ [Dimensionando o tamanho do seu grupo de Auto Scaling (documentação](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) da Amazon EC2 )
+ [Alta disponibilidade (Multi-AZ) para o Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) (Documentação do Amazon RDS)

## Mais informações
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-additional"></a>

**Observações**
+ Se você estiver migrando um banco de dados on-premises ou do Azure SQL Server para o Amazon RDS, também deverá atualizar os detalhes da conexão do banco de dados. 
+ Para fins de teste, um exemplo de aplicativo de demonstração é anexado.

## Anexos
<a name="attachments-df606a2d-b0a8-4035-b377-0a760e7300c9"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)

# Migre do Oracle WebLogic para o Apache Tomcat (TomEE) no Amazon ECS
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs"></a>

*Anya Epishcheva e Harshad Gohil, Amazon Web Services*

## Resumo
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-summary"></a>

Esse padrão discute as etapas para migrar um sistema Oracle Solaris SPARC local executando Oracle para uma instalação baseada em contêiner Docker executando o Apache TomEE [(Apache Tomcat com suporte adicional de contêiner) com o Amazon Elastic Container Service (](http://tomee.apache.org/)Amazon ECS). WebLogic 

Para obter informações sobre a migração de bancos de dados associados aos aplicativos que você está migrando do Oracle WebLogic para o Tomcat, consulte os padrões de migração de banco de dados neste catálogo. 

**Práticas recomendadas**

As etapas para migrar aplicativos web Java e Java Enterprise Edition (Java EE) variam, dependendo do número de recursos específicos do contêiner usados pelo aplicativo. Os aplicativos baseados em Spring geralmente são mais fáceis de migrar, porque eles têm um pequeno número de dependências no contêiner de implantação. Por outro lado, os aplicativos Java EE que usam Enterprise JavaBeans (EJBs) e recursos gerenciados de contêiner, como pools de threads, Java Authentication and Authorization Service (JAAS) e Container-Managed Persistence (CMP) exigem mais esforço. 

Os aplicativos desenvolvidos para o Oracle Application Server frequentemente usam o pacote Oracle Identity Management. Os clientes que migram para servidores de aplicativos de código aberto frequentemente optam por reimplementar o gerenciamento de identidade e acesso usando a federação baseada em SAML. Outros usam o Oracle HTTP Server Webgate para casos em que migrar do pacote Oracle Identity Management não é uma opção. 

Os aplicativos web Java e Java EE são ótimos candidatos para implantação em serviços da AWS baseados em Docker, como o AWS Fargate e o Amazon ECS. Os clientes frequentemente escolhem uma imagem do Docker com a versão mais recente do servidor de aplicativos de destino (como o TomEE) e o Java Development Kit (JDK) pré-instalados. Eles instalam seus aplicativos em cima da imagem base do Docker, a publicam no registro do Amazon Elastic Container Registry (Amazon ECR) e a usam para a implantação escalável de seus aplicativos no AWS Fargate ou no Amazon ECS. 

Idealmente, a implantação do aplicativo é elástica; ou seja, o número de instâncias do aplicativo aumenta ou diminui, dependendo do tráfego ou da workload. Isso significa que as instâncias do aplicativo precisam ficar on-line ou ser encerradas para ajustar a capacidade à demanda. 

Ao migrar um aplicativo Java para a AWS, considere torná-lo sem estado. Esse é um princípio arquitetônico fundamental do AWS Well-Architected Framework que permitirá a escalabilidade horizontal usando a conteinerização. Por exemplo, a maioria dos aplicativos web baseados em Java armazena localmente as informações da sessão do usuário. Para sobreviver ao encerramento da instância do aplicativo devido ao escalonamento automático no Amazon Elastic Compute Cloud EC2 (Amazon) ou por outros motivos, as informações da sessão do usuário devem ser armazenadas globalmente para que os usuários do aplicativo web possam continuar trabalhando de forma contínua e transparente sem se reconectar ou se reconectar a um aplicativo web. Há várias opções de arquitetura para essa abordagem, incluindo Amazon ElastiCache for Redis ou armazenar o estado da sessão em um banco de dados global. Servidores de aplicativos, como o TomEE, têm plug-ins que permitem o armazenamento e o gerenciamento de sessões via Redis, bancos de dados e outros armazenamentos de dados globais.

Use uma ferramenta comum e centralizada de registro e depuração que seja facilmente integrada à Amazon e ao AWS CloudWatch X-Ray. A migração oferece uma oportunidade de melhorar os recursos do ciclo de vida do aplicativo. Por exemplo, talvez você queira automatizar o processo de criação para que as alterações sejam feitas com facilidade usando um pipeline de integração contínua e entrega contínua (CI/CD). Isso pode exigir alterações no aplicativo para que ele possa ser implantado sem qualquer tempo de inatividade. 

## Pré-requisitos e limitações
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Código-fonte Java e JDK 
+ Aplicativo de origem criado com Oracle WebLogic
+ Solução definida para gerenciamento de identidade e acesso (SAML ou Oracle Webgate)
+ Solução definida para gerenciamento de sessões de aplicativos (migrando like-for-like ou com a Amazon ElastiCache, ou tornando o aplicativo sem estado, se necessário)
+ Entendendo se a equipe precisa refatorar bibliotecas específicas do J2EE para portabilidade para o Apache toMEE (consulte [Status de implementação do Java EE 7](http://tomee.apache.org/javaee7-status.html) no site do Apache) 
+ Imagem TomEE reforçada com base nos seus requisitos de segurança
+ Imagem do contêiner com destino pré-instalado TomEE 
+ Correção de aplicativos acordada e implementada, se necessário (por exemplo, registro em log de debug de criação, autenticação)

**Versões do produto**
+ Oracle WebLogic OC4 J, 9i, 10g 
+ Tomcat 7 (com Java 1.6 ou superior) 

## Arquitetura
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-architecture"></a>

 **Pilha de tecnologia de origem**
+ Aplicativo web criado usando Oracle WebLogic
+ Aplicativo Web usando autenticação Oracle Webgate ou SAML
+ Aplicativos Web conectados ao Oracle Database versão 10g e posterior 

**Pilha de tecnologias de destino**
+ [TomEE (Apache Tomcat com suporte adicional a contêineres) em execução no Amazon ECS (consulte também [Implantação de aplicativos Web Java](https://aws.amazon.com/answers/web-applications/aws-web-app-deployment-java/) e Microsserviços Java no Amazon ECS](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/)) 
+ Amazon Relational Database Service (Amazon RDS) para Oracle; para versões Oracle compatíveis com Amazon RDS, consulte [Amazon RDS para Oracle](https://aws.amazon.com/rds/oracle/)** **

**Arquitetura de destino**

![\[Nuvem AWS architecture diagram showing VPC, application subnets, and shared services account components.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d5e7b3fa-062f-4559-af56-aa6058f96755/images/762193cf-aa68-4195-b3c7-6541caee61c9.png)


 

## Ferramentas
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-tools"></a>

Para operar no TomEE, um aplicativo Java deve ser reconstruído em um arquivo .war. Em alguns casos, podem ser necessárias alterações no aplicativo para operar o aplicativo no TomEE; você deve verificar se as opções de configuração e as propriedades do ambiente necessárias estão definidas corretamente.  

Além disso, as pesquisas de Java Naming and Directory Interface (JNDI) e os namespaces JavaServer Pages (JSP) devem ser definidos corretamente. Considere verificar os nomes dos arquivos usados pelo aplicativo para evitar colisões de nomes com bibliotecas T integradas. Por exemplo, persistence.xml é um nome de arquivo usado pela estrutura Apache OpenJPA (que vem com o OpenEJB no TomEE) para fins de configuração. O arquivo persistence.xml na PUI contém declarações de bean do Spring framework.  

O TomEE versão 7.0.3 e posterior (Tomcat 8.5.7 e posterior) retorna uma resposta HTTP 400 (solicitação inválida) para raw (não codificada) com caracteres especiais. URLs A resposta do servidor aparece como uma página em branco para o usuário final. [As versões anteriores do TomEE e do Tomcat permitiam o uso de certos caracteres especiais não codificados em URLs; no entanto, isso é considerado inseguro, conforme declarado no site CVE-2016-6816.](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6816) Para resolver o problema de codificação de URL, o URLs passado diretamente para o navegador JavaScript deve ser codificado com o método **encodeURI ()** em vez de ser usado como strings brutas. 

Depois de implantar o arquivo.war no TomEE, monitore o *log de inicialização* no *Linux cat* em busca de bibliotecas compartilhadas ausentes e extensões específicas do Oracle para adicionar componentes ausentes das bibliotecas Tomcat. 

 

**Procedimento geral**
+ Configure o aplicativo no TomEE.
+ Identifique e reconfigure arquivos e recursos de configuração específicos do servidor de aplicativos, do formato de origem ao de destino.
+ Identifique e reconfigure os recursos da JNDI.
+ Ajuste o namespace EJB e as pesquisas para o formato exigido pelo servidor do aplicativo de destino (se aplicável).
+ Reconfigure as funções de segurança e os mapeamentos principais específicos do contêiner do aplicativo JAAS (se aplicável).
+ Empacote o aplicativo e as bibliotecas compartilhadas em um arquivo .war.
+ Implante o arquivo .war no TomEE usando o contêiner do Docker fornecido.
+ Monitore o *log de início* para identificar qualquer biblioteca compartilhada ausente e extensões de descritor de implantação. Se algum for encontrado, volte para a primeira tarefa. 
+ Teste o aplicativo instalado em relação ao banco de dados Amazon RDS restaurado.
+ Inicie a arquitetura completa com um balanceador de carga e um cluster Amazon ECS seguindo as instruções em [Implantar contêineres do Docker](https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/).
+ Atualize o URLs para apontar para o balanceador de carga. 
+ Atualize o banco de dados de gerenciamento de configuração (CMDB). 

## Épicos
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Executar a descoberta de aplicativos (pegada do estado atual e linha de base de desempenho). |  | BA, líder de migração | 
| Validar versões e mecanismos do banco de dados de origem e de destino. |  | DBA | 
| Validar o design do aplicativo de origem e de destino (gerenciamento de identidade e sessão). |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Identificar os requisitos de hardware e armazenamento para a instância do servidor de destino. |  | DBA, SysAdmin | 
| Escolher o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, SysAdmin | 
| Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. |  | DBA, SysAdmin | 
| Identificar a estratégia e as ferramentas de migração de aplicativos. |  | DBA, líder de migração | 
| Concluir o projeto da migração e o guia de migração do aplicativo. |  | Líder de desenvolvimento, líder de migração | 
| Concluir o runbook de migração do aplicativo. |  | Líder de construção, líder de substituição, líder de teste, líder de migração | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  | SysAdmin | 
| Criar grupos de segurança. |  | SysAdmin | 
| Configurar e iniciar a instância de banco de dados do Amazon RDS. |  | DBA, SysAdmin | 
| Configurar a implantação do Amazon ECS. |  | SysAdmin | 
| Empacotar seu aplicativo como uma imagem do Docker. |  | SysAdmin | 
| Enviar a imagem para o registro do Amazon ECR (ou pule esta etapa e envie-a para o cluster do Amazon ECS). |  | SysAdmin | 
| Configurar a definição da tarefa para o aplicativo e as opções de serviço do Amazon ECS. |  | SysAdmin | 
| Configurar seu cluster, revise configurações de segurança e defina perfis do AWS Identity and Access Management (IAM). |  | SysAdmin | 
| Iniciar sua configuração e execute testes de acordo com o runbook de migração do aplicativo. |  | SysAdmin | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obter a permissão da sua equipe de garantia de segurança para mover dados de produção para a AWS. |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Criar e obter acesso aos endpoints para buscar arquivos de backup do banco de dados. |  | DBA | 
| Usar o mecanismo de banco de dados nativo ou ferramentas de terceiros para migrar objetos e dados do banco de dados. |  | DBA | 
| Executar os testes necessários no runbook de migração de aplicativos para confirmar a migração de dados bem-sucedida. |  | DBA, engenheiro de migração, proprietário do aplicativo | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma solicitação de alteração (CR) para migração. |  | Líder de substituição | 
| Obter a aprovação de CR para migração. |  | Líder de substituição | 
| Seguir a estratégia de migração de aplicativos no runbook de migração de aplicativos. |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Atualizar o aplicativo (se necessário). |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Completar testes funcionais e não funcionais de validação de dados, SLA e desempenho. |  | Líder de teste, proprietário do aplicativo, usuários do aplicativo | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obter a aprovação do aplicativo ou do proprietário da empresa. |  | Líder de substituição | 
| Fazer um exercício com tópicos de tabela para percorrer todas as etapas do runbook de substituição. |  | DBA, engenheiro de migração, proprietário do aplicativo | 
| Mudar os clientes do aplicativo para a nova infraestrutura. |  | DBA, engenheiro de migração, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | DBA, engenheiro de migração, SysAdmin | 
| Revise e valide os documentos do projeto. |  | Líder de migração | 
| Reunir métricas sobre o tempo de migração, porcentagem de manual versus ferramenta, economia de custos, etc. |  | Líder de migração | 
| Feche o projeto e forneça feedback. |  | Líder de migração, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-related-resources"></a>

**Referências**
+ [Documentação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html) 
+ [Guia de instalação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html) 
+ [Documentação do Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) 
+ [Documentação do Apache ToMEE](http://tomee.apache.org/) 
+ [Amazon RDS para Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle e AWS](https://aws.amazon.com/oracle/) 
+ [Documentação da Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/) 
+ [Conceitos básicos do Amazon ECS](https://aws.amazon.com/ecs/getting-started/)
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

**Tutoriais e vídeos**
+ [Práticas recomendadas para a execução de bancos de dados Oracle no Amazon RDS](https://www.youtube.com/watch?v=j2wqT0EPDbw) (ref.: apresentação Invent 2018) 

# Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for Oracle usando o AWS DMS
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms"></a>

*Chethan Gangadharaiah e Brian Motzer, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-summary"></a>

Esse padrão descreve as etapas para migrar um banco de dados Oracle no Amazon Elastic Compute Cloud (Amazon EC2) para o Amazon Relational Database Service (Amazon RDS) for Oracle usando o AWS Database Migration Service (AWS DMS). O padrão também usa o Oracle SQL Developer ou o SQL \$1Plus para se conectar à sua instância de banco de dados Oracle e inclui um CloudFormation modelo da AWS que automatiza algumas das tarefas.

A migração para o Amazon RDS para Oracle permite que você se concentre em seus negócios e aplicativos, enquanto o Amazon RDS cuida das tarefas de administração do banco de dados, como provisionamento de bancos de dados, backup e recuperação, patches de segurança, atualizações de versão e gerenciamento de armazenamento.

## Pré-requisitos e limitações
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma imagem de máquina da Amazon (AMI) para banco de dados Oracle na Amazon EC2

**Versões do produto**
+ O AWS DMS é compatível com versões do Oracle 11g (versões 11.2.0.3.v1 e superior), 12c e 18c para bancos de dados de instâncias do Amazon RDS para as edições Enterprise, Standard, Standard One e Standard Two. Para obter as informações mais recentes sobre as versões compatíveis, consulte [Uso de um banco de dados Oracle como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) na documentação da AWS. (Os CloudFormation modelos anexados da AWS usam o Oracle versão 12c como banco de dados de origem.)
+ Oracle SQL Developer 4.0.3

## Arquitetura
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-architecture"></a>

**Arquitetura de origem**
+ Banco de dados Oracle na Amazon EC2

**Arquitetura de destino**
+ Amazon RDS para Oracle

**Arquitetura de migração**

![\[Nuvem AWS architecture showing Oracle database migration from EC2 to RDS across availability zones.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4db0c731-0897-4eb8-a06f-b648c3d94b2c/images/636c2a69-5a78-482d-ae81-55e9ec975ead.png)


## Ferramentas
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/index.html): o AWS Database Migration Service (AWS DMS) ajuda a migrar bancos de dados para a AWS de forma rápida e segura. Ele suporta migrações homogêneas e heterogêneas. Para obter informações sobre as versões e edições do banco de dados Oracle compatíveis, consulte [Usando um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Usando um banco de dados Oracle como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) na documentação da AWS.
+ **Oracle SQL Developer ou SQL \$1Plus**: essas ferramentas permitem que você se conecte à instância de banco de dados do Amazon RDS para Oracle.

## Épicos
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-epics"></a>

### Configurar o banco de dados de destino
<a name="set-up-your-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de banco de dados do Amazon RDS para Oracle. | Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/. Crie uma instância de banco de dados Oracle selecionando o mecanismo, o modelo, a configuração de credenciais do banco de dados, o tipo de instância, o armazenamento, as configurações Multi-AZ, a nuvem privada virtual (VPC) e a configuração, as credenciais de login e outras configurações para o banco de dados Oracle. Para obter instruções, consulte os links na seção “Recursos relacionados”. Ou use o CloudFormation modelo da AWS (Create\$1RDS.yaml) no anexo para criar a instância de banco de dados Amazon RDS for Oracle. | Desenvolvedor | 
| Conecte-se ao Amazon RDS e conceda privilégios ao usuário Oracle. | Modifique o grupo de segurança para abrir as portas apropriadas para se conectar a partir da máquina local e da instância de replicação do AWS DMS. Ao configurar a conectividade, certifique-se de que a opção “Acessível ao público” esteja selecionada para que você possa se conectar ao banco de dados fora da VPC. Conecte-se ao Amazon RDS com o Oracle SQL Developer ou o SQL \$1Plus usando as credenciais de login, crie um usuário do AWS DMS e forneça os privilégios necessários ao usuário do AWS DMS para modificar o banco de dados. | Desenvolvedor | 

### Configurar o grupo de segurança da EC2 instância de origem
<a name="configure-the-security-group-of-the-source-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique se o banco de dados Oracle está funcionando. | Use o Secure Shell (SSH) para se conectar à EC2 instância e tente se conectar ao banco de dados Oracle usando o SQL \$1Plus. | Desenvolvedor | 
| Modificação do grupo de segurança. | Modifique o grupo de segurança da EC2 instância para abrir as portas apropriadas, para que você possa se conectar a partir da sua máquina local e da instância de replicação do AWS DMS. | Desenvolvedor | 

### Configurar o AWS DMS
<a name="set-up-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de replicação do AWS DMS. | No AWS DMS, crie uma instância de replicação na mesma VPC da sua instância de banco de dados Amazon RDS para Oracle. Especifique o nome e a descrição da instância de replicação, escolha a classe da instância e a versão do mecanismo de replicação (use o padrão), escolha a VPC na qual você criou a instância de banco de dados Amazon RDS, defina configurações Multi-AZ, se necessário, aloque armazenamento, especifique a zona de disponibilidade e defina configurações adicionais. Como alternativa, você pode usar o CloudFormation modelo da AWS (DMS.yaml) no anexo para implementar essa etapa. | DBA | 
| Conecte-se aos endpoints dos bancos de dados de origem e de destino. | Crie os endpoints do banco de dados de origem e de destino especificando o identificador do endpoint, o mecanismo, o servidor, a porta, as credenciais de login e os atributos extras de conexão. Para o servidor de origem, use o DNS público da EC2 instância que está hospedando o banco de dados Oracle. Para o servidor de destino, use o endpoint do Amazon RDS para Oracle. Execute um teste para verificar se as conexões de origem e destino estão funcionando. Como alternativa, você pode usar o CloudFormation modelo da AWS (DMS.yaml) no anexo para implementar essa etapa. | DBA | 
| Crie uma tarefa do AWS DMS. | Crie uma tarefa do AWS DMS para migrar dados do endpoint de origem para o endpoint de destino, para configurar a replicação entre o endpoint de origem e de destino, ou ambos. Ao criar a tarefa do AWS DMS, especifique a instância de replicação, o endpoint de origem, o endpoint de destino, o tipo de migração (somente dados, somente replicação ou ambos), o mapeamento da tabela e o filtro. Execute a tarefa do AWS DMS, monitore a tarefa, verifique as estatísticas da tabela e verifique os registros na Amazon CloudWatch. Como alternativa, você pode usar o CloudFormation modelo da AWS (DMS.yaml) no anexo para implementar essa etapa. | DBA | 

## Recursos relacionados
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-related-resources"></a>
+ [Criação de uma instância de banco de dados do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateOracleInstance.html)
+ [Conectar-se a uma instância de banco de dados executando o mecanismo de banco de dados Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToOracleInstance.html)
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Instruções passo a passo do AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Migrar bancos de dados Oracle para a Nuvem AWS ](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Anexos
<a name="attachments-4db0c731-0897-4eb8-a06f-b648c3d94b2c"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/4db0c731-0897-4eb8-a06f-b648c3d94b2c/attachments/attachment.zip)

# Migre um banco de dados Oracle local para o Amazon OpenSearch Service usando o Logstash
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash"></a>

*Aditya Goteti, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-summary"></a>

Esse padrão descreve como mover dados de um banco de dados Oracle local para o Amazon OpenSearch Service usando o Logstash. Ele inclui considerações arquitetônicas e alguns conjuntos de habilidades e recomendações necessários. Os dados podem ser de uma única tabela ou de várias tabelas nas quais uma pesquisa de texto completo precisará ser realizada. 

OpenSearch O serviço pode ser configurado em uma nuvem privada virtual (VPC) ou pode ser colocado publicamente com restrições baseadas em IP. Esse padrão descreve um cenário em que o OpenSearch serviço é configurado em uma VPC. O Logstash é usado para coletar os dados do banco de dados Oracle, analisá-los no formato JSON e, em seguida, alimentar os dados no Service. OpenSearch  

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Java 8 (exigido pelo Logstash 6.4.3)
+ Conectividade entre os servidores de banco de dados locais e as instâncias do Amazon Elastic Compute Cloud EC2 (Amazon) em uma VPC, estabelecida usando a Rede Privada Virtual da AWS (AWS VPN)
+ Uma consulta para recuperar os dados necessários para serem enviados ao OpenSearch Serviço a partir do banco de dados
+ Drivers do Java Database Connectivity (JDBC) da Oracle

**Limitações**
+ O Logstash não consegue identificar registros que foram excluídos permanentemente do banco de dados 

**Versões do produto**
+ Banco de Dados Oracle 12c
+ OpenSearch Serviço 6.3
+ Logstash 6.4.3

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados on-premises da Oracle
+ VPN AWS on-premises

**Pilha de tecnologias de destino**
+ VPC
+ EC2 instância
+ OpenSearch Serviço 
+ Logstash
+ NAT Gateway (para atualizações do sistema operacional em EC2 instâncias e para instalar Java 8, Logstash e plug-ins)

**Arquitetura de migração de dados**

![\[Como mover dados de um banco de dados Oracle local para o Amazon OpenSearch Service usando o Logstash.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/09f6d2de-de2f-4ed6-af93-34b71b75a263/images/df6a61fb-09fb-49d4-a7e8-b04e88c003df.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-tools"></a>
+ Logstash 6.4.3
+ Plugin de entrada JDBC ([download e mais informações](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html))
+ [Plugin de saída do Logstash (logstash-output-amazon\$1es)](https://github.com/awslabs/logstash-output-amazon_es)
+ Driver JDBC da Oracle

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique o tamanho do banco de dados de origem | O tamanho dos dados de origem é um dos parâmetros que você usa para determinar o número de fragmentos a serem configurados em um índice. | DBA, desenvolvedor do banco de dados | 
| Analise os tipos de dados de cada coluna e os dados correspondentes. | OpenSearch O serviço mapeia dinamicamente o tipo de dados quando um campo inédito é encontrado no documento. Se houver algum tipo ou formato de dados específico (por exemplo, campos de data) que precise ser declarado explicitamente, identifique os campos e defina o mapeamento desses campos durante a criação do índice. | Proprietário do aplicativo, desenvolvedor, desenvolvedor de banco de dados | 
| Determine se há alguma coluna com chaves primárias ou exclusivas. | Para evitar a duplicação de registros no Amazon OpenSearch Service durante atualizações ou inserções, você precisa `document_id` definir a configuração na seção de saída do `amazon_es` plug-in (por exemplo, `document_id => "%{customer_id}"` onde `customer_id` está uma chave primária). | Proprietário do aplicativo, desenvolvedor | 
| Analise o número e a frequência dos novos registros adicionados; verifique com que frequência os registros são excluídos. | Essa tarefa é necessária para entender a taxa de crescimento dos dados de origem. Se os dados forem lidos intensivamente e as inserções forem raras, você poderá ter um único índice. Se novos registros forem inseridos com frequência e não houver exclusões, o tamanho do fragmento pode facilmente exceder o tamanho máximo recomendado de 50 GB. Nesse caso, você pode criar dinamicamente um índice configurando padrões de índice no Logstash e no código em que você pode acessá-lo usando um alias. | Proprietário do aplicativo, desenvolvedor | 
| Determine quantas réplicas são necessárias. |  | Proprietário do aplicativo, desenvolvedor | 
| Determine o número de fragmentos a serem configurados no índice. |  | Proprietário do aplicativo, desenvolvedor | 
| Identifique os tipos de instância para nós mestres dedicados, nós de dados e a EC2 instância. | Para obter mais informações, consulte a seção [Recursos relacionados](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). | Proprietário do aplicativo, desenvolvedor | 
| Determine o número de nós principais dedicados e nós de dados necessários. | Para obter mais informações, consulte a seção [Recursos relacionados](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). |  | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma EC2 instância. | Execute uma EC2 instância dentro da VPC à qual o AWS VPN está conectado. | Construções do Amazon VPC, AWS VPN | 
| Instale o Logstash na EC2 instância. |  | Desenvolvedor | 
| Instale os plug-ins do Logstash. | Instale os plug-ins necessários do Logstash `jdbc-input` e ` logstash-output-amazon_es`. | Desenvolvedor | 
| Configure o Logstash. | Crie o armazenamento de chaves do Logstash para armazenar informações confidenciais, como chaves do AWS Secrets Manager e credenciais do banco de dados, e depois coloque as referências em um arquivo de configuração do Logstash. | Desenvolvedor | 
| Configure fila de mensagens não entregues e a fila persistente. | Por padrão, quando o Logstash encontra um evento que não pode ser processado porque os dados contêm um erro de mapeamento ou algum outro problema, o pipeline do Logstash trava ou descarta o evento malsucedido. Para se proteger contra perda de dados nessa situação, você pode configurar o Logstash para gravar eventos malsucedidos em uma fila de mensagens não entregues em vez de descartá-los. Para se proteger contra perda de dados durante o encerramento anormal, o Logstash tem um atributo de fila persistente que armazenará a fila de mensagens no disco. As filas persistentes fornecem a durabilidade dos dados no Logstash. | Desenvolvedor | 
| Crie o domínio do Amazon OpenSearch Service. | Crie o domínio do Amazon OpenSearch Service com uma política de acesso que não exija a assinatura de solicitações com as credenciais do AWS Identity and Access Management (IAM). O domínio do Amazon OpenSearch Service deve ser criado dentro da mesma VPC. Você também deve selecionar os tipos de instância e definir o número de nós principais e dedicados com base na sua análise. | Desenvolvedor | 
| Configure os registros necessários OpenSearch do Amazon Service. | Para obter mais informações, consulte a [documentação do OpenSearch serviço](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html). |  | 
| Crie o índice. |  | Desenvolvedor | 
| Inicie o Logstash. | Execute o Logstash como um serviço em segundo plano. O Logstash executa a consulta SQL configurada, extrai os dados, os converte no formato JSON e os envia para o Service. OpenSearch Para o carregamento inicial, não configure o agendador no arquivo de configuração do Logstash. | Desenvolvedor | 
| Verifique os documentos. | Verifique o número de documentos no índice e se todos os documentos estão presentes no banco de dados de origem. Durante o carregamento inicial, eles são adicionados ao índice e usados para interromper o Logstash. Altere a configuração do Logstash para adicionar um agendador que seja executado em um intervalo fixo, dependendo dos requisitos do cliente, e reinicie o Logstash. O Logstash selecionará somente os registros que foram atualizados ou adicionados após a última execução, e a data e hora da última execução será armazenada no arquivo configurado com a propriedade `last_run_metadata_path => "/usr/share/logstash/.logstash_jdbc_last_run"` no arquivo de configuração do Logstash. | Desenvolvedor | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources"></a>
+ [ CloudWatch Alarmes recomendados](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html) 
+ [Amazon OpenSearch Service Master Nodes dedicados](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains-dedicatedmasternodes.html) 
+ [Dimensionamento de domínios de OpenSearch serviços da Amazon](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/sizing-domains.html) 
+ [Logstash documentation (Documentação do Logstash)](https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html) 
+ [Plugin de entrada JDBC](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Plugin de saída do Logstash](https://github.com/awslabs/logstash-output-amazon_es)
+ [Site da Amazon OpenSearch Service](https://aws.amazon.com/elasticsearch-service/) 

# Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle"></a>

*Baji Shaik e Pavan Pusuluri, da Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-summary"></a>

Esse padrão descreve as etapas para migrar bancos de dados Oracle on-premises para um Amazon Relational Database Service (Amazon RDS) para Oracle. Como parte do processo de migração, você cria um plano de migração e considera fatores importantes sobre sua infraestrutura de banco de dados de destino com base no seu banco de dados de origem. Você pode escolher uma das duas opções de migração com base nos requisitos comerciais e no caso de uso:
+ AWS Database Migration Service (AWS DMS): você pode usar o AWS DMS para migrar bancos de dados para a Nuvem AWS de forma rápida e segura. Seu banco de dados de origem permanece totalmente operacional durante a migração, o que minimiza o tempo de inatividade de aplicativos que dependem dele. Você pode reduzir o tempo de migração usando o AWS DMS para criar uma tarefa que captura as mudanças em andamento após a conclusão de uma migração inicial de carga completa por meio de um processo chamado [captura de dados de alteração (change data capture, CDC)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html). 
+ Ferramentas nativas da Oracle — Você pode migrar bancos de dados usando ferramentas nativas da Oracle, como Oracle e [Data Pump Export](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL200) e [Data Pump Import](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300) com [Oracle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) para CDC. Você também pode usar ferramentas nativas da Oracle, como o [Export utility](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#SUTIL3634) original e o [Import utility](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#SUTIL001) original para reduzir o tempo de carregamento total.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados Oracle on-premises
+ Uma instância de banco de dados Oracle do Amazon RDS

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ Versões do Oracle 11g (versões 11.2.0.3.v1 e mais recentes ) até 12.2 e 18c. Para obter uma lista de versionamentos e edições compatíveis, consulte [Amazon RDS para Oracle ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)na documentação da AWS. Para obter a lista mais recente de versões Oracle compatíveis com AWS DMS, consulte [Uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) na documentação da AWS.

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados Oracle on-premises.

**Pilha de tecnologias de destino**
+ Amazon RDS para Oracle

**Arquitetura de origem e destino**

O diagrama a seguir mostra como migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando o AWS DMS.

![\[Fluxo de trabalho para migrar bancos de dados Oracle para o Amazon RDS for Oracle usando o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/20f94a5c-1095-4182-b964-c379414c9a36.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Crie ou use um usuário de banco de dados existente, conceda as [permissões do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed) necessárias a esse usuário, ative o [modo ARCHIVELOG](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode) e, em seguida, configure o [registro suplementar](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).

1. Configure o gateway da Internet entre a rede on-premises e a rede da AWS.

1. Configure [endpoints de origem e destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) para o AWS DMS.

1. Configure as [tarefas de replicação do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) para migrar os dados do banco de dados de origem para o banco de dados de destino.

1. Conclua as atividades de pós-migração no banco de dados de destino.

O diagrama a seguir mostra como migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando ferramentas Oracle nativas.

![\[Fluxo de trabalho para migrar bancos de dados Oracle para o Amazon RDS for Oracle usando as ferramentas da Oracle.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/af8e0e1a-d4c8-4d99-9780-3e093ad9a257.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Crie ou use um usuário de banco de dados existente e conceda as permissões necessárias para fazer backup do banco de dados Oracle usando os utilitários Oracle Export (`exp`) e Import (`imp`).

1. Configure o gateway da Internet entre a rede on-premises e a rede da AWS.

1. Configure o cliente Oracle no [Bastion host](https://www.oracle.com/security/cloud-security/bastion/) para usar o banco de dados de backup.

1. Faça upload do backup do banco de dados para um bucket do Amazon Simple Storage Service (Amazon S3)

1. Restaure o backup do banco de dados do Amazon S3 para um banco de dados do Amazon RDS para Oracle.

1. Configure o Oracle GoldenGate para CDC.

1. Conclua as atividades de pós-migração no banco de dados de destino.

## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ As ferramentas nativas da Oracle ajudam você a realizar uma migração homogênea. Você pode usar o [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) para migrar dados entre seus bancos de dados de origem e de destino. Esse padrão usa o Oracle Data Pump para realizar a carga completa do banco de dados de origem para o banco de dados de destino.
+  GoldenGateA [Oracle](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) ajuda você a realizar a replicação lógica entre dois ou mais bancos de dados. Esse padrão é usado GoldenGate para replicar as alterações delta após o carregamento inicial usando o Oracle Data Pump.

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie documentos do projeto e registre os detalhes do banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Identifique os requisitos de armazenamento. | Identifique e documente seus requisitos de armazenamento, incluindo o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html)Para [volumes SSD de uso geral (gp2)](https://aws.amazon.com/ebs/volume-types/), você obtém três IOPS por 1 GB de armazenamento. Aloque o armazenamento calculando o número total de IOPS de leitura e gravação no banco de dados de origem. | DBA, SysAdmin | 
| Escolha o tipo de instância adequado com base nos requisitos de computação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | SysAdmin | 
| Identifique os requisitos de segurança de acesso à rede. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Identifique a estratégia de migração de aplicativos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA SysAdmin, proprietário do aplicativo | 
| Identifique os riscos da migração. | Avalie os riscos e mitigações específicos da migração de documentos e bancos de dados. Por exemplo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma VPC. | [Crie uma nova Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html) para a instância do banco de dados de destino. | SysAdmin | 
| Criar grupos de segurança. | [Crie um grupo de segurança](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) em sua nova VPC para permitir conexões de entrada com a instância de banco de dados. | SysAdmin | 
| Crie uma instância de banco de dados do Amazon RDS para Oracle. | [Crie a instância de banco de dados de destino](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) com a nova VPC e o grupo de segurança e, em seguida, inicie a instância. | SysAdmin | 

### Opção 1 - Use ferramentas nativas da Oracle ou de terceiros para migrar dados
<a name="option-1---use-native-oracle-or-third-party-tools-to-migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare o banco de dados de origem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Preparar o banco de dados de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 

### Opção 2 - Use o AWS DMS para migrar dados
<a name="option-2---use-aws-dms-to-migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar os dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Migre os dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA SysAdmin, proprietário do aplicativo | 
| Implemente seu plano de reversão. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, proprietário do aplicativo | 

### Encerre o projeto de migração
<a name="close-out-the-migration-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpar os recursos | Encerre ou remova os recursos temporários da AWS, como a instância de replicação do AWS DMS e o bucket S3. | DBA, SysAdmin | 
| Revise os documentos do projeto. | Revise seus documentos e metas de planejamento de migração e confirme se você concluiu todas as etapas de migração necessárias. | DBA SysAdmin, proprietário do aplicativo | 
| Colete métricas. | Registre as principais métricas de migração, incluindo o tempo necessário para concluir a migração, a porcentagem de tarefas manuais versus tarefas baseadas em ferramentas, economia de custos e outras métricas relevantes. | DBA SysAdmin, proprietário do aplicativo | 
| Encerre o projeto. | Encerre o projeto de migração e obtenha feedback sobre o empenho. | DBA SysAdmin, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-resources"></a>

**Referências**
+ [Migração de bancos de dados Oracle para a nuvem da AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html) (AWS Prescriptive Guidance)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/) (documentação do AWS DMS)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/) (documentação do Amazon RDS)

**Tutoriais e vídeos**
+ [Introdução ao AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/) (documentação do AWS DMS)
+ [Amazon RDS resources](https://aws.amazon.com/rds/getting-started/) (documentação do Amazon RDS)
+ [AWS Database Migration Service (DMS) (YouTube)](https://www.youtube.com/watch?v=zb4GcjEdl8U)

# Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando o Oracle Data Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump"></a>

*Mohan Annam e Brian motzer, da Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Esse padrão descreve como migrar um banco de dados Oracle de um datacenter on-premises para um Amazon Relational Database Service (Amazon RDS) para instância de banco de dados Oracle usando o Oracle Data Pump. 

O padrão envolve criar um arquivo de despejo de dados do banco de dados de origem, armazenar o arquivo em um bucket do Amazon Simple Storage Service (Amazon S3) e restaurar os dados em uma instância de banco de dados do Amazon RDS para Oracle. Esse padrão é útil quando você encontra limitações ao usar o AWS Database Migration Service (AWS DMS) para a migração. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ As permissões necessárias para criar perfis no AWS Identity and Access Management (IAM) e para um upload de várias partes do Amazon S3
+ As permissões necessárias para exportar dados do banco de dados de origem
+ 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)

**Versões do produto**
+ O Oracle Data Pump está disponível somente para o banco de dados Oracle 10g Release 1 (10.1) e versões posteriores.

## Arquitetura
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados Oracle on-premises.

**Pilha de tecnologias de destino**
+ Amazon RDS para Oracle
+ Cliente SQL (desenvolvedor Oracle SQL)
+ Um bucket do S3

**Arquitetura de origem e destino**

![\[Upload de várias partes do Amazon S3 de um banco de dados Oracle local para o Amazon RDS usando o Oracle Data Pump.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**Serviços da AWS**
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los. Nesse padrão, o IAM é usado para criar os perfis e as políticas necessárias para migrar dados do Amazon S3 para o Amazon RDS para Oracle.
+ O [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ajuda você a configurar, operar e escalar um banco de dados relacional Oracle na Nuvem AWS.
+ 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.

**Outras ferramentas**
+ O [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade. Nesse padrão, o Oracle Data Pump é usado para exportar o arquivo de despejo de dados (.dmp) para o servidor Oracle e importá-lo para o Amazon RDS para Oracle. Para obter mais informações, consulte [Como importar dados no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) na documentação do Amazon RDS.
+ O [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) é um ambiente de desenvolvimento integrado que simplifica o desenvolvimento e o gerenciamento de bancos de dados Oracle em implantações tradicionais e baseadas em nuvem. Ele interage com o banco de dados Oracle on-premises e com o Amazon RDS para Oracle para executar os comandos SQL necessários para exportar e importar dados.

## Épicos
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Criar um bucket do S3.
<a name="create-an-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o bucket. | Para criar um bucket do S3, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Administrador de sistemas AWS | 

### Criar o perfil do IAM e atribuir políticas
<a name="create-the-iam-role-and-assign-policies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar permissões do IAM | Para configurar as permissões, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Administrador de sistemas AWS | 

### Criar a instância de destino do banco de dados do Amazon RDS para Oracle e associar o perfil de integração do Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a instância de destino do banco de dados do Amazon RDS para Oracle. | Para criar a instância do Amazon RDS para Oracle, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html). | Administrador de sistemas AWS | 
| Associe o perfil à instância de banco de dados. | Para associar o perfil à instância, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | DBA | 

### Criar o usuário do banco de dados no banco de dados de destino
<a name="create-the-database-user-on-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o usuário. | Conecte-se ao banco de dados Amazon RDS para Oracle de destino a partir do Oracle SQL Developer ou SQL\$1Plus e execute o seguinte comando SQL para criar o usuário para o qual importar o esquema.<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | DBA | 

### Criar o arquivo de exportação do banco de dados Oracle de origem
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um arquivo de despejo de dados. | Para criar um arquivo de despejo nomeado `sample.dmp` no diretório `DATA_PUMP_DIR` para exportar o usuário `SAMPLE_SCHEMA`, use o script a seguir.<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre>Revise os detalhes da exportação revisando o arquivo `export.log` em seu diretório local `DATA_PUMP_DIR`.  | DBA | 

### Faça upload do arquivo de despejo no bucket do S3.
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Carregue o arquivo de despejo de dados da origem para o bucket do S3. | Quando usar a AWS CLI, execute o comando a seguir.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Baixe o arquivo de exportação do bucket do S3 para a instância do RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o arquivo de despejo de dados para o Amazon RDS | Para copiar o arquivo de despejo `sample.dmp` do bucket do S3 no banco de dados do Amazon RDS para Oracle, execute o seguinte comando SQL. Neste exemplo, o arquivo `sample.dmp` é baixado do bucket do S3 `my-s3-integration1` para o diretório Oracle `DATA_PUMP_DIR`. Verifique se você tem espaço em disco suficiente alocado para sua instância do RDS para acomodar o banco de dados e o arquivo de exportação.<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre>O comando anterior gera um ID da tarefa. Para revisar o status do download analisando os dados no ID da tarefa, execute o comando a seguir.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Para ver os arquivos no diretório `DATA_PUMP_DIR`, execute o seguinte comando.<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | Administrador de sistemas AWS | 

### Importe o arquivo de despejo para o banco de dados de destino.
<a name="import-the-dump-file-into-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Restaure o esquema e os dados no Amazon RDS. | Para importar o arquivo de despejo para o esquema do banco de dados `sample_schema`, execute o seguinte comando SQL do SQL Developer ou do SQL\$1Plus.<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre>Para ver o arquivo de log da importação, execute o comando a seguir.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Remova o arquivo de despejo do diretório DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Listar e limpar os arquivos de exportação. | Para listar e remover os arquivos de exportação no diretório `DATA_PUMP_DIR`, execute os comandos a seguir.<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | Administrador de sistemas AWS | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integração do Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Criar uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Importar dados para o Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Documentação do Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [Documentação do IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Documentação do Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Documentação do Oracle Data Pump](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/)

# Migre do PostgreSQL na Amazon para o EC2 Amazon RDS for PostgreSQL usando pglogical
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical"></a>

*Rajesh Madiwale, Amazon Web Services*

## Resumo
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-summary"></a>

**Esse padrão descreve as etapas para migrar um banco de dados PostgreSQL (versão 9.5 e posterior) do Amazon Elastic Compute Cloud (Amazon) para o Amazon EC2 Relational Database Service (Amazon RDS) para PostgreSQL usando a extensão pglógica do PostgreSQL.** O Amazon RDS agora tem suporte para a extensão pglogical nas versões 10 e posteriores do PostgreSQL.

## Pré-requisitos e limitações
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-prereqs"></a>

**Pré-requisitos **
+ Escolher o tipo certo de instância do Amazon RDS. Para obter mais informações, consulte [Tipos de instância do Amazon RDS](https://aws.amazon.com/rds/instance-types/). 
+ Certifique-se de que as versões de origem e destino do PostgreSQL sejam as mesmas.   
+ Instale e integre a [extensão **pglogical** com o PostgreSQL](https://github.com/2ndQuadrant/pglogical) na Amazon. EC2 

**Versões do produto**
+ PostgreSQL versão 10 e posterior no Amazon RDS, com os recursos suportados no Amazon RDS (consulte [PostgreSQL no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) na documentação da AWS). Esse padrão foi testado com a migração do PostgreSQL 9.5 para o PostgreSQL versão 10 no Amazon RDS, mas também se aplica às versões posteriores do PostgreSQL no Amazon RDS. 

## Arquitetura
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-architecture"></a>

**Arquitetura de migração de dados**

![\[Arquitetura de migração de dados para o PostgreSQL no Amazon RDS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/29af3931-48de-499f-9c4b-e10a98e4bba5/images/5f5b906f-dc1a-49a5-ae3f-3e10ae854784.png)


## Ferramentas
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-tools"></a>
+ Extensão [https://github.com/2ndQuadrant/pglogical](https://github.com/2ndQuadrant/pglogical)
+ Utilitários nativos do PostgreSQL: [https://www.postgresql.org/docs/9.5/app-pgdump.html](https://www.postgresql.org/docs/9.5/app-pgdump.html) e [https://www.postgresql.org/docs/9.6/app-pgrestore.html](https://www.postgresql.org/docs/9.6/app-pgrestore.html)

## Épicos
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-epics"></a>

### Migrar dados usando a extensão pglogical
<a name="migrate-data-by-using-the-pglogical-extension"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma instância de banco de dados do Amazon RDS PostgreSQL | Atualizar uma instância de banco de dados PostgreSQL no Amazon RDS. Para obter instruções, consulte a documentação do [Amazon RDS para PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) | DBA | 
| Obter um despejo de esquema do banco de dados PostgreSQL de origem e restaurar no banco de dados PostgreSQL de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Habilitar decodificação lógica. | No grupo de parâmetros de banco de dados do Amazon RDS, defina o parâmetro estático `rds.logical_replication` como 1. Para obter instruções, consulte a documentação do [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalDecoding). | DBA | 
| Criar a extensão pglogical nos bancos de dados de origem e de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Criar um publicador no banco de dados PostgreSQL de origem. | Para criar um publicador, execute:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.create_node( node_name := 'provider1', dsn := 'host=<ec2-endpoint> port=5432 dbname=source-dbname user=source-dbuser' );<br />EOF</pre> | DBA | 
| Criar um conjunto de replicação, adicionar tabelas e sequências. | Para criar um conjunto de replicação no banco de dados PostgreSQL de origem e adicionar tabelas e sequências ao conjunto de replicação, execute:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.replication_set_add_all_tables('default', '{public}'::text[],synchronize_data := true);<br />EOF</pre> | DBA | 
| Criar um assinante.  | Para criar um assinante no banco de dados PostgreSQL de destino, execute:<pre>psql -h <rds-endpoint> -d target-dbname -U target-dbuser  <<EOF<br />SELECT pglogical.create_node(<br />    node_name := 'subscriber1',<br />    dsn := 'host=<rds-endpoint> port=5432 dbname=target-dbname password=postgres user=target-dbuser'<br />);<br />EOF</pre> | DBA | 
| Criar uma assinatura. | Para criar uma assinatura no banco de dados PostgreSQL de destino, execute:<pre>psql -h <rds-endpoint> -d target -U postgres  <<EOF<br />SELECT pglogical.create_subscription(<br /> subscription_name := 'subscription1',<br /> replication_sets := array['default'],<br />    provider_dsn := 'host=<ec2-endpoint> port=5432 dbname=<source-dbname> password=<password> user=source-dbuser'<br />);</pre> | DBA | 

### Validar os dados
<a name="validate-your-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar os bancos de dados de origem e de destino. | Verifique os bancos de dados de origem e destino para confirmar se os dados estão sendo replicados com sucesso. Você pode realizar validação básica usando `select count(1)` da origem e tabelas de destino. | DBA | 

## Recursos relacionados
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-resources"></a>
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Replicação lógica para o PostgreSQL no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication) (documentação do Amazon RDS)
+ [pglogical (repositório](https://github.com/2ndQuadrant/pglogical)) GitHub 
+ [Limitações do pglogical (arquivo README](https://github.com/2ndQuadrant/pglogical#limitations-and-restrictions) GitHub do repositório)
+ [Migração do PostgreSQL do local ou da Amazon EC2 para o Amazon RDS usando replicação lógica (blog do banco de dados da](https://aws.amazon.com/blogs/database/migrating-postgresql-from-on-premises-or-amazon-ec2-to-amazon-rds-using-logical-replication/) AWS)

# Migrar um banco de dados PostgreSQL on-premises para o Aurora PostgreSQL
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql"></a>

*Baji Shaik e Jitender Kumar, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-summary"></a>

O Amazon Aurora Edição Compatível com PostgreSQL combina o desempenho e a disponibilidade dos bancos de dados comerciais de ponta com a simplicidade e a economia dos bancos de dados de código aberto. O Aurora fornece esses benefícios escalando o armazenamento em três zonas de disponibilidade na mesma região da AWS e oferece suporte a até 15 instâncias de réplica de leitura para aumentar a escala horizontalmente de workloads de leitura e fornecer alta disponibilidade em uma única região. Ao usar um banco de dados global Aurora, você pode replicar bancos de dados PostgreSQL em até cinco regiões para acesso remoto de leitura e recuperação de desastres no caso de uma falha na região. Esse padrão descreve as etapas para migrar um banco de dados de origem PostgreSQL on-premises para um banco de dados compatível com o Aurora PostgreSQL. O padrão inclui duas opções de migração: usar o AWS Data Migration Service (AWS DMS) ou usar ferramentas nativas do PostgreSQL (como [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html), [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) e [psql](https://www.postgresql.org/docs/current/app-psql.html)) ou ferramentas de terceiros. 

As etapas descritas nesse padrão também se aplicam aos bancos de dados PostgreSQL de destino nas instâncias do Amazon Relational Database Service (Amazon RDS) e do Amazon Elastic Compute Cloud (Amazon). EC2

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem PostgreSQL em um datacenter no on-premises
+ [Uma instância de banco de dados compatível com o Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html) ou uma [instância de banco de dados Amazon RDS para PostgreSQL](https://aws.amazon.com/getting-started/hands-on/create-connect-postgresql-db/)

**Limitações**
+ Os limites de tamanho do banco de dados são 64 TB para Amazon RDS para PostgreSQL e 128 TB para Aurora compatível com PostgreSQL.
+ Se você estiver usando a opção de migração do AWS DMS, analise [as limitações do AWS DMS sobre o uso de um banco de dados PostgreSQL como fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.Limitations).

**Versões do produto**
+ Para suporte às versões principal e secundária do PostgreSQL no Amazon RDS, consulte as atualizações do [Amazon RDS para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) na documentação do Amazon RDS.
+ Para suporte ao PostgreSQL no Aurora, consulte as [atualizações do Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html) na documentação do Aurora.
+ Se você estiver usando a opção de migração do AWS DMS, consulte as [versões compatíveis do PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) na documentação do AWS DMS.

## Arquitetura
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados PostgreSQL on-premises

**Pilha de tecnologias de destino**
+ Instância de banco de dados compatível com o Aurora PostgreSQL.

**Arquitetura de origem **

![\[Arquitetura de origem para banco de dados PostgreSQL on-premises\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/a8621ad3-781b-45a9-86a8-d0b0ec5c79ea.png)


**Arquitetura de destino**

![\[Arquitetura de destino para o banco de dados PostgreSQL no Amazon Aurora\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/fc2ec0cb-7b9b-4cc0-b70c-40e47c2f4c45.png)


**Arquitetura de migração de dados**

*Uso do AWS DMS*

![\[Migração de um banco de dados PostgreSQL on-premises para o Aurora usando o AWS DMS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/5336adb4-e9eb-47d0-a5b5-d149261b1638.png)


*Uso de ferramentas nativas do PostgreSQL*

![\[Migração de um banco de dados PostgreSQL on-premises para o Aurora usando pg_dump e pg_restore\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/3c6fb533-45ff-443e-bfb1-97e60cbdd583.png)


## Ferramentas
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a nuvem AWS ou entre combinações de configurações na nuvem e on-premises. O serviço é compatível com vários bancos de dados de origem e destino diferentes. Para obter informações sobre como validar as versões e edições do banco de dados de origem e destino do PostgreSQL compatíveis para uso com o AWS DMS, consulte [Uso de um banco de dados PostgreSQL como fonte do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos.
+ As ferramentas nativas do PostgreSQL incluem  [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html), [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) e [psql](https://www.postgresql.org/docs/current/app-psql.html).

## Épicos
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-epics"></a>

### Analise a migração
<a name="analyze-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões dos bancos de dados de origem e de destino. | Se você estiver usando o AWS DMS, verifique se está usando uma [versão compatível do PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html).  | DBA | 
| Identifique os requisitos para o tipo e a capacidade de armazenamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, administrador de sistemas | 
| Escolha o tipo de instância, a capacidade, os atributos de armazenamento e os atributos de rede adequados. | Determine os requisitos de computação da instância do banco de dados de destino. Analise os problemas de desempenho conhecidos que talvez precisem de atenção adicional. Considere os seguintes fatores para determinar o tipo de instância apropriado:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Para ter mais informações, consulte [Classes de instância de banco de dados do Aurora na documentação](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) do Aurora. | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. | Determine os grupos de segurança apropriados que permitiriam que o aplicativo se comunicasse com o banco de dados. | DBA, administrador de sistemas | 
| Identifique a estratégia de migração de aplicativos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietário do aplicativo, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma VPC. | Crie uma nuvem privada virtual (VPC) para a instância do banco de dados de destino. | Administrador de sistemas | 
| Criar grupos de segurança. | Crie um grupo de segurança dentro da VPC (conforme determinado no épico anterior) para permitir conexões de entrada com a instância do banco de dados.  | Administrador de sistemas | 
| Configure e inicie o cluster de banco de dados do Aurora. | Crie a instância do banco de dados de destino com a nova VPC e o grupo de segurança e inicie a instância. | Administrador de sistemas | 

### Migração de dados: opção 1 (usando o AWS DMS)
<a name="migrate-data-option-1-using-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Conclua as etapas de pré-migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Concluir as etapas de migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Valide os dados. | Para garantir que seus dados foram migrados com precisão da origem para o destino, siga as [etapas de validação de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) na documentação do AWS DMS. | DBA | 

### Migração de dados: opção 2 (usando pg\$1dump e pg\$1restore)
<a name="migrate-data-option-2-using-pg_dump-and-pg_restore"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare o banco de dados de origem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Para obter mais informações, consulte a documentação do [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html) e o [passo a passo](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) na documentação do AWS DMS. | DBA | 
| Preparar o banco de dados de destino. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Para obter mais informações, consulte a documentação do [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) e o [passo a passo](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) na documentação do AWS DMS. | DBA | 
| Valide os dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. | Implemente a estratégia de migração de aplicativos que você criou no primeiro épico. | DBA, proprietário do aplicativo, administrador de sistemas | 

### Vá para o banco de dados de destino
<a name="cut-over-to-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietário do aplicativo, administrador de sistemas | 
| Se você precisar reverter a migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietário do aplicativo | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desligar recursos. | Encerre os recursos temporários da AWS. | DBA, administrador de sistemas | 
| Valide os documentos. | Revise e valide os documentos do projeto. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Colete métricas. | Reúna métricas sobre a hora de migrar, porcentagem de economia de custos manuais versus ferramentas e assim por diante. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Fechar o projeto. | Feche o projeto e forneça feedback, se houver. | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-resources"></a>

**Referências**
+ [AWS Data Migration Service](https://aws.amazon.com/dms/)
+ [VPCs e Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.html)
+ [Preço do Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Uso do banco de dados PostgreSQL como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html)
+ [Como criar uma instância de replicação do AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/)
+ [Como criar endpoints de origem e destino usando o AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-source-target-endpoints-aws-dms/)

**Recursos adicionais**
+ [Conceitos básicos do AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Instruções sobre migração step-by-step de dados](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Recursos do Amazon Aurora](https://aws.amazon.com/rds/aurora/getting-started/)

# Migre um banco de dados local do Microsoft SQL Server para o Microsoft SQL Server na Amazon executando Linux EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux"></a>

*Tirumala Dasari, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-summary"></a>

Esse padrão descreve como migrar de um banco de dados local do Microsoft SQL Server executado no Microsoft Windows para o Microsoft SQL Server em uma instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) usando utilitários de backup e restauração.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Amazon EC2 Linux AMI (Amazon Machine Image) com Microsoft SQL Server
+ AWS Direct Connect entre o Windows local e o Microsoft SQL Server na instância Linux EC2 

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados Microsoft SQL Server on-premises

**Pilha de tecnologias de destino**
+  EC2 Instância Linux com um banco de dados Microsoft SQL Server

**Arquitetura de migração de banco de dados**

![\[Diagrama de arquitetura para migrar um banco de dados SQL Server local para uma instância Linux. EC2\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f331ad15-2d41-4087-a6d1-60e3443e2acf/images/f50a779a-ce5d-44b1-8d37-dedd6400a12c.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-tools"></a>
+ **WinSCP** - Essa ferramenta permite que os usuários do Windows compartilhem arquivos facilmente com usuários do Linux.
+ **Sqlcmd** - Esse utilitário de linha de comando permite enviar instruções ou lotes de T-SQL para instâncias locais e remotas do SQL Server. O utilitário é extremamente útil para tarefas repetitivas de banco de dados, como processamento em lote ou teste de unidade.

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-epics"></a>

### Prepare a instância EC2 Linux com o SQL Server
<a name="prepare-the-ec2-linux-instance-with-sql-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione uma AMI que forneça o sistema operacional Linux e inclua o Microsoft SQL Server. |  | Sysadmin | 
| Configure a AMI para criar uma EC2 instância. |  | Sysadmin | 
| Crie regras de entrada e saída para grupos de segurança: |  | Sysadmin | 
| Configure a EC2 instância Linux para um banco de dados Microsoft SQL Server. |  | DBA | 
| Crie usuários e forneça permissões como no banco de dados de origem. |  | Proprietário do aplicativo, DBA | 
| Instale as ferramentas do SQL Server e o utilitário sqlcmd na instância Linux. EC2  |  | DBA | 

### Faça backup do banco de dados e mova o arquivo de backup para a EC2 instância Linux
<a name="back-up-the-database-and-move-backup-file-to-linux-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o backup do banco de dados do SQL Server on-premises. |  | DBA | 
| Instale o WinSCP no Microsoft SQL Server |  | DBA | 
| Mova o arquivo de backup para a EC2 instância Linux que executa o Microsoft SQL Server. |  | DBA | 

### Restaure o banco de dados na EC2 instância Linux executando o SQL Server
<a name="restore-the-database-on-linux-ec2-instance-running-sql-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Restaure o banco de dados a partir do arquivo de backup do banco de dados usando o utilitário sqlcmd. |  | DBA | 
| Valide objetos e dados do banco de dados. |  | Desenvolvedor, engenheiro de testes | 

### Passe do Windows SQL Server para o Windows SQL Server em uma EC2 instância Linux
<a name="cut-over-from-windows-sql-server-to-windows-sql-server-on-linux-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide objetos e dados do banco de dados. |  | Desenvolvedor, engenheiro de testes | 
| Passe do banco de dados local do Microsoft SQL Server para a EC2 instância Linux que executa o Microsoft SQL Server. |  | DBA | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-resources"></a>
+ [Como configurar o SQL Server 2017 no Amazon Linux e no Ubuntu AMIs](https://aws.amazon.com/blogs/database/configuring-sql-server-2017-on-amazon-linux-2-and-ubuntu-amis/) 
+ [Instalação de ferramentas SQL em uma instância Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL) 
+ [Backup e restauração de um banco de dados local do Microsoft SQL Server para o Microsoft SQL Server em uma instância Linux EC2 ](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017#create-a-backup-on-windows) 

# Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando servidores vinculados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers"></a>

*Kevin Yung, Viqash Adwani e Vishal Singh, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-summary"></a>

Os servidores vinculados permitem que o Microsoft SQL Server execute instruções SQL em outras instâncias de servidores de banco de dados. Esse padrão descreve como você pode migrar seu banco de dados on-premises do Microsoft SQL Server para o Amazon Relational Database Service (Amazon RDS) para o Microsoft SQL Server a fim de obter menor custo e maior disponibilidade. Atualmente, o Amazon RDS para Microsoft SQL Server não é compatível com conexões fora de uma rede da Amazon Virtual Private Cloud (Amazon VPC). 

Você pode usar esse padrão para atingir os seguintes objetivos:
+ Migrar o Microsoft SQL Server para o Amazon RDS para Microsoft SQL Server sem interromper os recursos do servidor vinculado.
+ Para priorizar e migrar o Microsoft SQL Server vinculado em diferentes ondas.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Verifique se o [Microsoft SQL Server no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) é compatível com os atributos que você precisa. 
+ Certifique-se de que você possa usar o [Amazon RDS para Microsoft SQL Server com agrupamentos padrão ou agrupamentos definidos em níveis de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html). 

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-architecture"></a>

**Pilha de tecnologia de origem**
+ Bancos de dados on-premises (Microsoft SQL Server)

 **Pilha de tecnologias de destino**
+ Amazon RDS para SQL Server

**Arquitetura do estado de origem**

![\[Diagram showing data replication between two data centers with primary and secondary SQL servers.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/776b453a-7fa0-43fd-b1ca-fb9e5cc21820.png)


 

 

 

 

 

 

 

 

 

 

 

 

**Arquitetura do estado de destino**

No estado de destino, você migra o Microsoft SQL Server para o Amazon RDS para Microsoft SQL Server usando servidores vinculados. Essa arquitetura usa um Network Load Balancer para proxy do tráfego do Amazon RDS para Microsoft SQL Server para servidores on-premises que executam o Microsoft SQL Server. O diagrama a seguir mostra a capacidade de proxy reverso do Network Load Balancer.

![\[Nuvem AWS architecture with RDS SQL Server instances in two availability zones and on-premises databases.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/6bdbdfbf-b048-4fbd-acef-0aeb826edb50.png)


 

## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-tools"></a>
+ AWS CloudFormation
+ Network Load Balancer 
+ Amazon RDS for SQL Server em várias zonas de disponibilidade (AZsmulti-)
+ AWS Database Migration Service (AWS DMS) 

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-epics"></a>

### Criar uma VPC de zona de pouso
<a name="create-a-landing-zone-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a alocação do CIDR. |  | AWS SysAdmin | 
| Criar uma nuvem privada virtual (VPC). |  | AWS SysAdmin | 
| Crie as sub-redes VPC. |  | AWS SysAdmin | 
| Crie as listas de controle de acesso à sub-rede (ACLs). |  | AWS SysAdmin | 
| Crie as tabelas de rotas da sub-rede. |  | AWS SysAdmin | 
| Crie uma conexão com o AWS Direct Connect ou a rede privada virtual (VPN). |  | AWS SysAdmin | 

### Migrar o banco de dados para o Amazon RDS
<a name="migrate-the-database-to-amazon-rds"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar e conectar-se a uma instância de banco de dados do Amazon RDS para Microsoft SQL Server. |  | AWS SysAdmin | 
| Criar uma instância de replicação do AWS DMS. |  | AWS SysAdmin | 
| Crie endpoints para os bancos de dados de origem e destino no AWS DMS. |  | AWS SysAdmin | 
| Crie a tarefa de migração e defina a replicação contínua como ATIVADA após uma carga completa. |  | AWS SysAdmin | 
| Solicite uma alteração no firewall para permitir que o Amazon RDS para Microsoft SQL Server acesse os bancos de dados on-premises do SQL Server. |  | AWS SysAdmin | 
| Criar um Network Load Balancer. |  | AWS SysAdmin | 
| Crie um grupo de destino que tenha como destino os servidores de banco de dados em seu datacenter | Recomendamos que você use nomes de host na configuração de destino para incorporar eventos de failover do datacenter (DC). | AWS SysAdmin | 
| Execute a instrução SQL para configuração do servidor vinculado. | Execute as instruções SQL para adicionar um servidor vinculado usando a ferramenta de gerenciamento Microsoft SQL na instância de banco de dados Amazon RDS para Microsoft SQL Server. Na instrução SQL, defina @datasrc para usar o nome de host do Network Load Balancer. Adicione credenciais de login do servidor vinculado usando a ferramenta de gerenciamento Microsoft SQL na instância de banco de dados Amazon RDS para Microsoft SQL Server. | AWS SysAdmin | 
| Teste e valide as funções do SQL Server. |  | AWS SysAdmin | 
| Crie uma substituição. |  | AWS SysAdmin | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-related-resources"></a>
+ [Tarefas comuns de gerenciamento para o Microsoft SQL Server no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General)
+ [Agrupamentos e conjuntos de caracteres do Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) 
+ [Documentação do Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Implementar servidores vinculados com Amazon RDS para Microsoft SQL Server (publicação no blog)](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/)

# Saiba como migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando backup e restauração nativos.
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods"></a>

*Tirumala Dasari, David Queiroz e Vishal Singh, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-summary"></a>

Esse padrão descreve como migrar um banco de dados Microsoft SQL Server on-premises para uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) for SQL Server (migração homogênea). O processo de migração é baseado em métodos nativos de backup e restauração do SQL Server. Ele usa o SQL Server Management Studio (SSMS) para criar um arquivo de backup do banco de dados e um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar o arquivo de backup antes de restaurá-lo no Amazon RDS para SQL Server.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Políticas de Identity and Access Management, perfil do IAM para acessar o bucket do S3 e a instância de banco de dados do Amazon RDS para SQL Server.

**Limitações**
+ O processo descrito nesse padrão migra somente o banco de dados. Os logins do SQL ou os usuários do banco de dados, incluindo qualquer trabalho do SQL Server Agent, não são migrados porque exigem etapas adicionais.

**Versões do produto**
+ SQL Server 2012-2017. Para obter a lista mais recente de versões e atributos compatíveis, consulte [Microsoft SQL Server no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) na documentação da AWS.

## Arquitetura
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados Microsoft SQL Server on-premises

**Pilha de tecnologias de destino**
+ Instância de banco de dados do Amazon RDS para SQL Server

**Arquitetura** de **migração de dados**

![\[Arquitetura para a migração de um banco de dados SQL Server on-premises para uma instância de banco de dados do Amazon RDS para SQL Server.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c2dcd6ab-deb1-4d5e-b3c5-3bf48c02ca4e/images/29f90473-6dd4-4574-bfbd-5c6a0481c40e.png)


## Ferramentas
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-tools"></a>
+ O Microsoft SQL Server Management Studio (SSMS) é um ambiente integrado para o gerenciamento de uma infraestrutura do SQL Server. Ele fornece uma interface de usuário e um grupo de ferramentas com editores de scripts avançados que interagem com o SQL Server.

## Épicos
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-epics"></a>

### Criar Instância de banco de dados do Amazon RDS para SQL Server
<a name="create-an-amazon-rds-for-sql-server-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione SQL Server como mecanismo de banco de dados no Amazon RDS para SQL Server. |  | DBA | 
| Escolha o SQL Server Express Edition |  | DBA | 
| Especifique os detalhes do banco de dados. | Para obter mais informações, consulte [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) sobre a criação de uma instância de banco de dados Oracle. | DBA, proprietário do aplicativo | 

### Crie um arquivo de backup a partir do banco de dados SQL Server on-premises
<a name="create-a-backup-file-from-the-on-premises-sql-server-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Conecte-se ao banco de dados do SQL Server on-premises por meio do SSMS. |  | DBA | 
| Criação de um backup do banco de dados | Para obter instruções, consulte a [Documentação do SSMS](https://learn.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms). | DBA, proprietário do aplicativo | 

### Carregue o arquivo de backup no Amazon S3.
<a name="upload-the-backup-file-to-amazon-s3"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket no Amazon S3. | Para obter mais informações, consulte a [documentação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | DBA | 
| Faça upload do arquivo no bucket do S3. | Para mais informações, consulte a [documentação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html). | SysOps administrador | 

### Restaure o banco de dados no Amazon RDS para SQL Server
<a name="restore-the-database-in-amazon-rds-for-sql-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione o grupo de opções ao Amazon RDS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html)Para obter mais informações, consulte a [documentação do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html). | SysOps administrador | 
| Restaure o banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html) | DBA | 

### Validar o banco de dados de destino
<a name="validate-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide objetos e dados. | Valide os objetos e dados entre o banco de dados de origem e o Amazon RDS para SQL Server.Esta tarefa realiza apenas a migração do banco de dados. Logins e trabalhos não serão migrados. | Proprietário do aplicativo, DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Redirecione o tráfego do aplicativo. | Após a validação, redirecione o tráfego do aplicativo para a instância de banco de dados do Amazon RDS para SQL Server. | Proprietário do aplicativo, DBA | 

## Recursos relacionados
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-resources"></a>
+ [Documentação do Amazon S3](https://docs.aws.amazon.com/s3/) 
+ [Documentação do Amazon RDS para SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) 
+ [Opções para o mecanismo de banco de dados do Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 

# Migre um banco de dados Microsoft SQL Server para o Aurora MySQL usando o AWS DMS e o AWS SCT
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct"></a>

*Mark Szalkiewicz e Pavan Pusuluri, Amazon Web Services*

## Resumo
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-summary"></a>

Esse padrão descreve como migrar um banco de dados Microsoft SQL Server que está no local ou em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para o Amazon Aurora MySQL. O padrão usa o AWS Database Migration Service (AWS DMS) e a AWS Schema Conversion Tool (AWS SCT) para migração de dados e conversão de esquemas. 

## Pré-requisitos e limitações
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem do Microsoft SQL Server em um data center local ou em uma instância EC2 
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT, instalados em uma máquina local ou em uma instância em que o AWS SCT EC2 está instalado 

 

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ Microsoft SQL Server 2008, 2008R2, 2012, 2014, 2016, e 2017 para as edições Enterprise, Standard, Workgroup e Developer. As edições Web e Express não são compatíveis com o AWS DMS. Para obter a lista mais recente de versões compatíveis, consulte [Usando um banco de dados Microsoft SQL Server como fonte para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do Microsoft SQL Server suportadas pelo AWS SCT, consulte a [documentação do AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ MySQL, versões 5.5, 5.6 e 5.7. Para obter a lista mais recente de versões compatíveis, consulte [Usando um banco de dados compatível com MySQL como destino para o AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) DMS.

## Arquitetura
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-architecture"></a>

**Pilha de tecnologia de origem**

Um dos seguintes: 
+ Um banco de dados do Microsoft SQL Server on-premises
+ Um banco de dados Microsoft SQL Server em uma EC2 instância

**Pilha de tecnologias de destino**
+ Aurora MySQL

**Arquitetura de migração de dados**
+ De um banco de dados do Microsoft SQL Server em execução na Nuvem AWS 

![\[Nuvem AWS architecture showing VPC with private subnet containing SQL Server and Aurora MySQL databases.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/c675ada4-e92c-4ddb-b49f-69668f532504.png)

+ De um banco de dados do Microsoft SQL Server em execução em um datacenter on-premises do Microsoft SQL

![\[Nuvem AWS architecture diagram showing on-premises to cloud migration using AWS SCT, DMS, and Aurora MySQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/b6ce0199-fc56-4bf2-a8cc-67de161e3cf0.png)


## Ferramentas
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS**: o [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) (AWS DMS) ajuda você a migrar seus dados entre bancos de dados comerciais e de código aberto amplamente usados, incluindo Oracle, SQL Server, MySQL e PostgreSQL. É possível usar o AWS DMS para migrar seus dados para a Nuvem AWS, entre instâncias on-premises (por meio de uma configuração da Nuvem AWS) ou entre combinações de nuvem e configurações on-premises.
+ **AWS SCT**: a [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) facilita as migrações heterogêneas de banco de dados convertendo automaticamente o schema do banco de dados de origem e a maioria do código personalizado para um formato compatível com o banco de dados de destino.

## Épicos
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-epics"></a>

### Preparo para a migração
<a name="prepare-for-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a versão e o mecanismo dos bancos de dados de origem e de destino. |  | DBA | 
| Crie um grupo de segurança de saída para os bancos de dados de origem e de destino. |  | SysAdmin | 
| Crie e configure uma EC2 instância para o AWS SCT, se necessário. |  | DBA | 
| Faça download da versão mais recente do AWS SCT e dos drivers associados. |  | DBA | 
| Adicione e valide os pré-requisitos de usuários e concessões no banco de dados de origem. |  | DBA | 
| Crie um projeto AWS SCT para o workload e conecte-se ao banco de dados de origem. |  | DBA | 
| Gere um relatório de avaliação e avalie a viabilidade. |  | DBA | 

### Preparar o banco de dados de destino
<a name="prepare-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de banco de dados Amazon RDS de destino, usando o Amazon Aurora como mecanismo de banco de dados. |  | DBA | 
| Extraia a lista de usuários, funções e concessões da fonte. |  | DBA | 
| Mapeie os usuários do banco de dados existentes para os novos usuários do banco de dados. |  | Proprietário do App | 
| Criar usuários no banco de dados de destino. |  | DBA | 
| Aplique funções da etapa anterior ao banco de dados de destino. |  | DBA | 
| Examine as opções, os parâmetros, os arquivos de rede e os links do banco de dados no banco de dados de origem e, em seguida, avalie sua aplicabilidade ao banco de dados de destino. |  | DBA | 
| Aplique todas as configurações relevantes ao destino. |  | DBA | 

### Transferir objetos
<a name="transfer-objects"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a conectividade do AWS SCT com o banco de dados de destino. |  | DBA | 
| Converta o esquema usando o AWS SCT. | O AWS SCT converte automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. Qualquer código que não possa ser convertido automaticamente pela ferramenta será marcado em destaque para que você mesmo possa convertê-lo. | DBA | 
| Revise o relatório SQL gerado e salve quaisquer erros e avisos. |  | DBA | 
| Aplique alterações automatizadas do esquema ao destino ou salve-as como um arquivo .sql. |  | DBA | 
| Valide se o AWS SCT criou os objetos no destino.  |  | DBA | 
| Reescreva, rejeite ou redesenhe manualmente todos os itens que falharam na conversão automática. |  | DBA | 
| Aplique a função gerada e as concessões do usuário e analise todas as exceções. |  | DBA | 

### Migre os dados
<a name="migrate-the-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine o método de migração. |  | DBA | 
| Criar uma instância de replicação do console do AWS DMS. | Para obter informações detalhadas sobre o uso do AWS DMS, consulte os links na seção “Recursos relacionados”. | DBA | 
| Criação de endpoints de origem e de destino. |  | DBA | 
| Criar uma tarefa de replicação. |  | DBA | 
| Inicie a tarefa de replicação e monitore os logs. |  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use o AWS SCT para analisar e converter os itens SQL no código do aplicativo. | Ao converter o esquema do seu banco de dados de um mecanismo para outro, é preciso também atualizar o código SQL nos seus aplicativos, a fim de interagir com o novo mecanismo de banco de dados, em vez do antigo. Você pode visualizar, analisar, editar e salvar o código SQL convertido. Para obter informações detalhadas sobre o uso do AWS SCT, consulte os links na seção “Recursos relacionados”. | Proprietário do App | 
| Crie os novos servidores de aplicativos na AWS. |  | Proprietário do App | 
| Migre o código do aplicativo para os novos servidores. |  | Proprietário do App | 
| Configure o servidor do aplicativo para o banco de dados e os drivers de destino. |  | Proprietário do App | 
| Corrija qualquer código específico do mecanismo de banco de dados de origem no aplicativo. |  | Proprietário do App | 
| Otimize o código do aplicativo para o mecanismo de destino. |  | Proprietário do App | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Aplique quaisquer novos usuários, concessões e alterações de código ao destino. |  | DBA | 
| Bloqueie o aplicativo para quaisquer alterações. |  | Proprietário do App | 
| Validar se todas as alterações foram propagadas para o banco de dados de destino. |  | DBA | 
| Direcione o novo aplicativo para o novo banco de dados de destino. |  | Proprietário do App | 
| Confira tudo novamente. |  | Proprietário do App | 
| Acesse. |  | Proprietário do App | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS (instância de replicação do AWS DMS e EC2 instância usada para o AWS SCT). |  | DBA, proprietário do aplicativo | 
| Atualize o feedback sobre o processo do AWS DMS para as equipes internas. |  | DBA, proprietário do aplicativo | 
| Revise o processo do AWS DMS e melhore o modelo, se necessário. |  | DBA, proprietário do aplicativo | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo | 
| Reúna métricas sobre o tempo de migração, porcentagem de manual versus economia de custos de ferramentas, etc. |  | DBA, proprietário do aplicativo | 
| Feche o projeto e forneça feedback, se houver. |  | DBA, proprietário do aplicativo | 

## Recursos relacionados
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-related-resources"></a>

**Referências**
+ [Guia do usuário do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Guia do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)  
+ [Definição de preço do Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/) 

**Tutoriais e vídeos**
+ [Introdução ao AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos da AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Recursos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Instruções passo a passo do AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) 

# Migre um banco de dados MariaDB on-premises para o Amazon RDS para MariaDB usando ferramentas nativas
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools"></a>

*Shyam Sunder Rakhecha, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-summary"></a>

Esse padrão fornece orientação para migrar um banco de dados MariaDB on-premises para o Amazon Relational Database Service (Amazon RDS) for MariaDB usando ferramentas nativas. **Se você tiver ferramentas MySQL instaladas, poderá usar **mysql **e mysqldump**. **Se você tiver ferramentas MariaDB instaladas, poderá usar **mariadb** e mariadb-dump**. As ferramentas MySQL e MariaDB têm a mesma origem, mas há pequenas diferenças na versão 10.6 e posterior do MariaDB.

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem do MariaDB em um datacenter on-premises

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ Versões 10.0-10.6 do MariaDB (para obter a lista mais recente de versões compatíveis, consulte [MariaDB no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) na documentação da AWS)

## Arquitetura
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-architecture"></a>

**Pilha de tecnologia de origem**
+ Banco de dados MariaDB em um datacenter on-premises

**Pilha de tecnologias de destino**
+ Instâncias de banco de dados para o Amazon RDS para MariaDB

**Arquitetura de destino**

![\[Diagrama da arquitetura com as instâncias do RDS principais e secundárias em diferentes zonas de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/eca8eb55-579a-42e2-96ce-9b14b097b4c9.png)


**Arquitetura de migração de dados**

![\[Diagrama da arquitetura da migração de um banco de dados do MariaDB on-premises para o Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/daba40e2-a2b1-44f8-8e69-31458206a823.png)


## Ferramentas
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-tools"></a>
+ Ferramentas nativas MySQL: **mysql** e **mysqldump**
+ Ferramentas nativas MariaDB: **mariadb** e **mariadb-dump**

## Épicos
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide as versões e os motores dos bancos de dados de origem e de destino. |  | DBA | 
| Identifique os requisitos de hardware para a instância do servidor de destino. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). |  | DBA, administrador de sistemas | 
| Escolha o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. |  | DBA, administrador de sistemas | 
| Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. |  | DBA, administrador de sistemas | 
| Identifique a estratégia de migração de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  | Administrador de sistemas | 
| Criar grupos de segurança. |  | Administrador de sistemas | 
| Configurar e iniciar uma instância de banco de dados do Amazon RDS executando o MariaDB. |  | Administrador de sistemas | 

### Migrar dados
<a name="migrate-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas para migrar objetos e dados do banco de dados. | No banco de dados de origem, use **mysqldump **ou**mariadb-dump** para criar um arquivo de saída que contenha objetos e dados do banco de dados. No banco de dados de destino, use **mysql** ou **mariadb** para restaurar os dados. | DBA | 
| Valide os dados. | Verifique os bancos de dados de origem e destino para confirmar se a migração de dados foi bem-sucedida. | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia de migração de aplicativos. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Mude os clientes do aplicativo para a nova infraestrutura. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre os recursos temporários da AWS. |  | Administrador de sistemas | 
| Revise e valide os documentos do projeto. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Reúna métricas na hora certa para migrar, com a economia de custos fornecida pelas ferramentas e assim por diante. |  | DBA, proprietário do aplicativo, administrador de sistemas | 
| Feche o projeto e forneça feedback. |  | DBA, proprietário do aplicativo, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-resources"></a>

**Referências do Amazon RDS**
+ [Amazon RDS para MariaDB](https://aws.amazon.com/rds/mariadb/)
+ [Amazon Virtual Private Cloud VPCs e Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Preços do Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Referências do MySQL e do MariaDB**
+ [mariadb-dump/mysqldump](https://mariadb.com/kb/en/mariadb-dumpmysqldump/) 
+ [Cliente da linha de comando mysql](https://mariadb.com/kb/en/mysql-command-line-client/) 

**Tutoriais e vídeos**
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrar um banco de dados MySQL on-premises para o Aurora MySQL
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql"></a>

*Igor Obradovic, Amazon Web Services*

## Resumo
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-summary"></a>

Este padrão explica como migrar um banco de dados de origem do MySQL on-premises para a edição compatível com MySQL do Amazon Aurora. **Ele descreve duas opções de migração: usando AWS Database Migration Service (AWS DMS) ou usando ferramentas nativas do MySQL, como mysqldbcopy e **mysqldump**.** 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Um banco de dados MySQL de origem em um datacenter on-premises

**Limitações**
+ Limite de tamanho do banco de dados: 128 TB

**Versões do produto**
+ O MySQL, na versão 8.0 (Aurora MySQL na versão 3), está disponível com o suporte padrão. 
+ O MySQL, na versão 5.7 (Aurora MySQL na versão 2), está disponível com o suporte estendido, mediante custo adicional.

Para obter a lista mais recente de versões compatíveis, consulte as [versões do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html) na AWS documentação. Se você estiver usando AWS DMS, consulte também [Usando um banco de dados compatível com MySQL como destino para versões do AWS DMS MySQL suportadas pelo](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). AWS DMS

## Arquitetura
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-architecture"></a>

**Pilha de tecnologia de origem**
+ Um banco de dados MySQL on-premises

**Pilha de tecnologias de destino**
+ Amazon Aurora Edição Compatível com MySQL 

**Arquitetura de destino**

Os dados do Aurora são armazenados em um volume de cluster, que é um único volume virtual que usa unidades de estado sólido ()SSDs. Um volume de cluster consiste em cópias dos dados em várias zonas de disponibilidade em uma única região da AWS. Como os dados são replicados automaticamente entre as zonas de disponibilidade, eles são altamente duráveis e apresentam menor possibilidade de gerar perda de dados.

O Aurora divide automaticamente o volume do seu banco de dados em segmentos de 10 GB distribuídos por vários discos. Cada bloco de 10 GB do volume do banco de dados é replicado seis vezes, em três zonas de disponibilidade. O diagrama apresentado a seguir ilustra a relação entre o volume do cluster, a instância de banco de dados de gravação e as instâncias de banco de dados de leitura em um cluster de banco de dados do Aurora, bem como a separação entre capacidade de computação e armazenamento. Para obter mais informações sobre essa arquitetura, consulte a [documentação](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html) e as [perguntas frequentes do Aurora](https://aws.amazon.com/rds/aurora/faqs/#product-faqs).

![\[Instâncias de banco de dados do Aurora MySQL e volume de armazenamento compartilhado na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/0d7d8ebd-e0f2-4bcf-b296-8bdfb2f12b64.png)


**Arquitetura de migração de dados**

*Usando AWS DMS:*

O diagrama a seguir ilustra a migração de um banco de dados MySQL local para um cluster compatível com o Aurora MySQL no, usando. Nuvem AWS AWS DMS

![\[Migração de um banco de dados do MySQL on-premises para o Aurora MySQL usando o AWS DMS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/e5d72ebd-d157-45d7-8844-d1011f1646c0.png)


*Usando ferramentas nativas do MySQL:*

****O diagrama a seguir ilustra a migração de um banco de dados MySQL local para um cluster compatível com o Aurora MySQL no, usando ferramentas nativas do MySQL Nuvem AWS, como mysqldbcopy e mysqldump.****

![\[Migração de um banco de dados do MySQL on-premises para o Aurora MySQL usando mysqldbcopy e mysqldump.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/26258752-24f6-4241-a49f-59c15e946314.png)


 

## Ferramentas
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) oferece suporte a vários mecanismos de banco de dados de origem e destino. Para obter informações sobre bancos de dados de origem e destino do MySQL compatíveis com AWS DMS, consulte [Migração de bancos de dados compatíveis com MySQL](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) para. AWS Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e recursos.
+ O [mysqldbcopy](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) é um utilitário do MySQL que copia um banco de dados do MySQL em um único servidor ou entre servidores.
+ O [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) é um utilitário em MySQL que cria um arquivo de despejo usando um banco de dados do MySQL para fins de backup ou de migração.

## Épicos
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-epics"></a>

### Planejar a migração
<a name="plan-the-migration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a versão e o mecanismo. | Valide a versão e o mecanismo do banco de dados para os bancos de dados de origem e de destino. | DBA | 
| Identifique os requisitos de hardware. | Identifique os requisitos de hardware para a instância do servidor de destino. | DBA, administrador de sistemas | 
| Identifique os requisitos de armazenamento. | Identifique os requisitos de armazenamento (tipo e capacidade de armazenamento). | DBA, administrador de sistemas | 
| Altere o tipo de instância. | Escolha o tipo de instância adequado com base nos seus requisitos de computação, armazenamento e rede. | DBA, administrador de sistemas | 
| Determine os requisitos de segurança de acesso à rede. | Identifique os requisitos de segurança de acesso à rede para os bancos de dados de origem e de destino. | DBA, administrador de sistemas | 
| Determine a estratégia. | Identifique a estratégia de migração de aplicativos. | DBA, proprietário do aplicativo, administrador de sistemas | 

### Configurar a infraestrutura
<a name="configure-the-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). | Para obter instruções, consulte [Crie uma VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) na documentação da Amazon Virtual Private Cloud (Amazon VPC). | Administrador de sistemas | 
| Criar grupos de segurança. | Para obter instruções, consulte [Crie um grupo de segurança para a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) na documentação da Amazon VPC. | Administrador de sistemas | 
| Configure e inicie um cluster de banco de dados do Aurora compatível com MySQL em sua Conta da AWS. | Para obter instruções, consulte [Criar um cluster de banco de dados do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) na documentação do Aurora. | Administrador de sistemas | 

### Migrar dados - opção 1
<a name="migrate-data---option-1"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use ferramentas nativas do MySQL ou terceirizadas para migrar objetos e dados do banco de dados. | Para obter instruções, consulte a documentação das ferramentas do MySQL, como [mysqldbcopy](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) e [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html). | DBA | 

### Migrar dados - opção 2
<a name="migrate-data---option-2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Migre dados com AWS DMS. | Para obter instruções, consulte [Usando um banco de dados compatível com MySQL como fonte e Usando um banco](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html) [de dados compatível com MySQL como destino na documentação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). AWS DMS  | DBA | 

### Migrar o aplicativo
<a name="migrate-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga a estratégia. | Siga a estratégia de migração de aplicativos. | DBA, proprietário do aplicativo, administrador de sistemas | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Altere os clientes da aplicação. | Altere os clientes da aplicação para estabelecimento de conexão com o novo endpoint do cluster do Aurora. | DBA, proprietário do aplicativo, administrador de sistemas | 

### Fechar o projeto
<a name="close-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Desligar recursos. | Encerre AWS os recursos temporários. | DBA, administrador de sistemas | 
| Revise a documentação. | Revise e valide os documentos do projeto. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Colete as métricas. | Reúna métricas sobre o tempo de migração, a porcentagem de etapas manuais em comparação com o uso de ferramentas, a economia de custos e entre outros. | DBA, proprietário do aplicativo, administrador de sistemas | 
| Conclua o projeto de migração. | Feche o projeto e forneça feedback. | Proprietário do aplicativo, DBA, administrador de sistemas | 

## Recursos relacionados
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-resources"></a>

**Referências**
+ [Migrar dados para um cluster de banco de dados do Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.html)
+ [AWS DMS site](https://aws.amazon.com/dms/)
+ [AWS DMS documentação](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Definição de preço do Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Criação e conexão com um cluster de banco de dados Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.Aurora.html)
+ [Amazon VPC e Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Documentação do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)

**Tutoriais e vídeos**
+ [Começando com AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Conceitos básicos do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.html)

# Migre bancos de dados MySQL locais para o Aurora MySQL usando XtraBackup Percona, Amazon EFS e Amazon S3
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3"></a>

*Rohan Jamadagni, Udayasimha Theepireddy e sajith menon, Amazon Web Services*

## Resumo
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-summary"></a>

Esse padrão descreve como migrar bancos de dados MySQL grandes e locais de forma eficiente para o Amazon Aurora MySQL usando o Percona. XtraBackup O Percona XtraBackup é um utilitário de backup de código aberto e sem bloqueio para servidores baseados em MySQL. O padrão mostra como usar o Amazon Elastic File System (Amazon EFS) para reduzir o tempo de upload do backup para o Amazon Simple Storage Service (Amazon S3) e restaurar o backup no Amazon Aurora MySQL. O padrão também fornece detalhes sobre como fazer backups incrementais do Percona para minimizar o número de logs binários a serem aplicados ao banco de dados Aurora MySQL de destino.  

## Pré-requisitos e limitações
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Permissões para criar perfis e políticas do Identity and Access Management (IAM) da AWS
+ Conectividade de rede entre o banco de dados MySQL on-premises e a nuvem privada virtual (VPC) na AWS

**Limitações**
+ Os servidores de origem devem ser sistemas baseados em Linux que possam instalar um cliente Network File System (NFS) (nfs-utils/nfs-common).
+ O bucket do S3 usado para carregar arquivos de backup oferece suporte somente à criptografia do lado do servidor (SSE-S3/SSE-KMS).
+ O Amazon S3 limita o tamanho dos arquivos de backup a 5 TB. Se o arquivo de backup exceder 5 TB, você poderá dividir o arquivo em vários arquivos menores.
+ O número de arquivos de origem enviados por upload para um bucket do S3 não poderá exceder um milhão de arquivos.
+ O padrão suporta somente o backup XtraBackup completo e o backup incremental do Percona. Ele não oferece suporte a backups parciais que usam `--tables`, `--tables-exclude`, `--tables-file`, `--databases`, `--databases-exclude` ou `--databases-file`.
+ O Aurora não restaura usuários, funções, procedimentos armazenados ou informações de fuso horário do banco de dados MySQL de origem.

**Versões do produto**
+ O banco de dados de origem deverá ser o MySQL versão 5.5, 5.6 ou 5.7.
+ Para o MySQL 5.7, você deve usar o Percona 2.4. XtraBackup 
+ Para o MySQL 5.6 e 5.6, você deve usar o XtraBackup Percona 2.3 ou 2.4.

## Arquitetura
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional baseado em Linux
+ MYSQL server
+ Percona XtraBackup

**Pilha de tecnologias de destino**
+ Amazon Aurora
+ Amazon S3
+ Amazon EFS

**Arquitetura de destino**

![\[Arquitetura para migrar grandes bancos de dados MySQL para o Amazon Aurora MySQL usando o Percona. XtraBackup\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bf327776-bafd-484d-9ae2-a6f5c8af6edd/images/7a410539-1511-4106-90e2-8c0c8e95f92b.png)


## Ferramentas
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-tools"></a>

*Serviços da AWS*
+ O [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado que torna a configuração, operação e escalabilidade de implantações do MySQL. O Aurora MySQL é um substituto imediato para o MySQL.
+ 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 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.

**Outras ferramentas**
+ O [Percona XtraBackup é um](https://www.percona.com/doc/percona-xtrabackup/2.4/index.html) utilitário de código aberto que realiza backups de streaming, compactados e incrementais de bancos de dados MySQL sem interromper ou bloquear seus bancos de dados.

## Épicos
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-epics"></a>

### Criar um sistema de arquivos do Amazon EFS
<a name="create-an-amazon-efs-file-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um grupo de segurança para associar aos destinos de montagem do Amazon EFS. | Crie um grupo de segurança na VPC configurado com um anexo de VPN ao banco de dados on-premises no AWS Transit Gateway. Para obter mais informações sobre os comandos e as etapas descritos nesta e em outras histórias, consulte os links na seção “Recursos relacionados” no final desse padrão. |  DevOps/database Administrador da AWS | 
| Editar as regras do grupo de segurança. | Adicione uma regra de entrada usando o tipo NFS, a porta 2049 e o intervalo de IP do servidor de banco de dados on-premises como origem. Por padrão, a regra de saída permite que todo tráfego saia. Se esse não for o caso, adicione uma regra de saída para abrir uma conexão para a porta NFS. Adicione mais duas regras de entrada: porta 2049 (fonte: ID do grupo de segurança desse mesmo grupo de segurança) e porta 22 (origem: intervalo de IP de onde você se conectará a uma EC2 instância). |  DevOps/database Administrador da AWS | 
| Crie um sistema de arquivos. | Nos destinos de montagem, use a VPC e o grupo de segurança que você criou na história anterior. Escolha o modo de taxa de transferência e o desempenho com base nos I/O requisitos do banco de dados local. Opcionalmente, habilite a criptografia em repouso. |  DevOps/database Administrador da AWS | 

### Monte o sistema de arquivos
<a name="mount-the-file-system"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma função de perfil de instância do IAM para ser associada a uma EC2 instância. | Crie um perfil do IAM que tenha permissões para carregar e acessar objetos no Amazon S3. Escolha o bucket do S3 no qual o backup será armazenado como um recurso de política. | AWS DevOps | 
| Crie uma EC2 instância. | Inicie uma EC2 instância baseada em Linux e anexe a função de perfil da instância do IAM que você criou na etapa anterior e o grupo de segurança que você criou anteriormente. | AWS DevOps | 
| Instale o NFS cliente. | Instale o cliente NFS no servidor de banco de dados local e na EC2 instância. Para obter instruções de instalação, consulte a seção “Informações adicionais”. | DevOps | 
| Monte o sistema de arquivos do Amazon EFS. | Monte o sistema de arquivos Amazon EFS no local e na EC2 instância. Em cada servidor, crie um diretório para armazenar o backup e monte o sistema de arquivos usando o endpoint de destino de montagem. Consulte a seção “Informações adicionais”. | DevOps | 

### Fazer backups do banco de dados de origem MySQL
<a name="make-a-backup-of-the-mysql-source-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Percona XtraBackup. | Instale o Percona XtraBackup 2.3 ou 2.4 (dependendo da versão do seu banco de dados MySQL) no servidor de banco de dados local. Para ver os links de instalação, consulte a seção “Recursos relacionados”. | Administrador de banco de dados | 
| Conte os esquemas e as tabelas no banco de dados de origem. | Reúna e anote o número de esquemas e objetos no banco de dados MySQL de origem. Você usará essas contagens para validar o banco de dados Aurora MySQL após a migração. | Administrador de banco de dados | 
| (Opcional) Observe a sequência de log binário mais recente do banco de dados de origem. | Execute essa etapa se quiser estabelecer a replicação de log binário entre o banco de dados de origem e o Aurora MySQL para minimizar o tempo de inatividade. O log-bin deverá estar ativado e o server\$1id deve ser exclusivo. Observe a sequência de log binário atual do banco de dados de origem, pouco antes de iniciar um backup. Execute essa etapa logo antes do backup completo se você planeja usar somente o backup completo. Se você planeja fazer backups incrementais após um backup completo, execute essa etapa logo antes do backup incremental final que você restaurará na instância de banco de dados Aurora MySQL. | Administrador de banco de dados | 
| Iniciar um backup completo do banco de dados MySQL de origem. | Faça um backup completo do banco de dados de origem do MySQL usando o Percona. XtraBackup Por exemplo, comandos para backups completos e incrementais, consulte a seção “Informações adicionais”. | Administrador de banco de dados | 
| (Opcional) Faça backups incrementais usando o XtraBackup Percona. | Os backups incrementais poderão ser usados para reduzir a quantidade de registros binários que você precisa aplicar para sincronizar o banco de dados de origem com o Aurora MySQL. Bancos de dados grandes e com muitas transações poderão gerar um grande número de logs binários durante os backups. Ao fazer backups incrementais e armazená-los em um sistema de arquivos compartilhado do Amazon EFS, você poderá reduzir significativamente o tempo de backup e upload do seu banco de dados. Consulte a seção “Informações adicionais” para obter detalhes. Continue fazendo backups incrementais até que esteja pronto para começar o processo de migração para o Aurora. | Administrador de banco de dados | 
| Preparar backups. | Nesta etapa, os logs transacionais são aplicados ao backup para transações que estavam em andamento durante o backup. Continue aplicando registros transacionais (--apply-log-only) a cada backup incremental para mesclar os backups, exceto para o último backup. Para obter exemplos, consulte a seção “Informações adicionais”. Após essa etapa, o backup completo e mesclado estará em \$1/<efs\$1mount\$1name>/fullbackup. | Administrador de banco de dados | 
| Compactar e dividir o backup mesclado. | Depois de preparar o backup final mesclado, use os comandos tar, zip e split para criar arquivos compactados menores do backup. Para obter exemplos, consulte a seção “Informações adicionais”. | Administrador de banco de dados | 

### Restaurar o backup em um cluster de banco de dados do Aurora MySQL
<a name="restore-the-backup-to-an-aurora-mysql-db-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Carregar o backup no Amazon S3. | O sistema de arquivos do Amazon EFS, no qual os arquivos de backup são armazenados, é montado no banco de dados local e em uma EC2 instância, de forma que os arquivos de backup estejam prontamente disponíveis para a EC2 instância. <efs\$1mount\$1name><bucket\$1name>Conecte-se à EC2 instância usando o Secure Shell (SSH) e carregue os arquivos de backup compactados em um bucket S3 novo ou existente; por exemplo: aws s3 sync \$1/ /fullbackup s3:///fullbackup. Para obter detalhes adicionais, consulte os links na seção “Recursos relacionados”. | AWS DevOps | 
| Criar um perfil de serviço para o Aurora acessar o Amazon S3. | Crie um perfil do IAM com a confiança “rds.amazonaws.com” e uma política que permitirá que o Aurora acesse o bucket do S3 onde os arquivos de backup estão armazenados. As permissões necessárias são ListBucket GetObject, GetObjectVersion e. | AWS DevOps | 
| Criar a configuração de rede para o Aurora. | Criar um grupo de sub-redes de banco de dados de cluster com pelo menos duas zonas de disponibilidade e uma configuração de tabela de rotas de sub-rede que permita conectividade de saída com o banco de dados de origem. Criar um grupo de segurança que permita conexões de saída com o banco de dados on-premises e permita que os administradores se conectem ao cluster de banco de dados Aurora. Para obter mais informações, acesse os links na seção “Recursos relacionados”. |  DevOps/database Administrador da AWS | 
| Restaurar o backup em um cluster de banco de dados do Aurora MySQL. | Restaurar seus dados do backup que você enviou para o Amazon S3. Especificar a versão MySQL do seu banco de dados de origem, fornecer o nome do bucket do S3 e o prefixo do caminho da pasta em que você fez o upload do arquivo de backup (por exemplo, “fullbackup” para os exemplos na seção “Informações adicionais”) e forneça o perfil do IAM que você criou para autorizar o Aurora a acessar o Amazon S3. |  DevOps/database Administrador da AWS | 
| Validar o banco de dados MySQL do Aurora. | Valide a contagem de esquemas e objetos no cluster de banco de dados Aurora restaurado em relação à contagem que você obteve do banco de dados de origem. | Administrador de banco de dados | 
| Configurar a replicação do log binário.  | Usar a sequência de log binário que você anotou anteriormente, antes de fazer o último backup que foi restaurado no cluster de banco de dados do Aurora. Criar um usuário de replicação no banco de dados de origem e siga as instruções na seção “Informações adicionais” para fornecer os privilégios adequados, habilitar a replicação no Aurora e confirmar se a replicação está sincronizada. |  DevOps/database Administrador da AWS | 

## Recursos relacionados
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-resources"></a>

**Criar um sistema de arquivos do Amazon EFS**
+ [Criação de um grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups) (Documentação do Amazon VPC)
+ [Anexos do VPN do gateway de trânsito](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html) (Documentação do Amazon VPC)
+ [Escalar o throughput de VPN usando o AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) (blog sobre redes e entrega de conteúdo)
+ [Criar um sistema de arquivos do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step1-efs) (Documentação do Amazon EFS)
+ [Criação de destinos de montagem](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) (Documentação do Amazon EFS)
+ [Criptografar dados em repouso](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) (Documentação do Amazon EFS)

**Montagem do sistemas de arquivos**
+ [Funções do IAM para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) ( EC2 documentação da Amazon)
+ [Lançamento de uma instância Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) ( EC2 documentação da Amazon)
+ [Instalação do cliente NFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) (Documentação do Amazon EFS)
+ [Montagem do sistema de arquivos do Amazon EFS em seu cliente on-premises](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) (Documentação do Amazon EFS)
+ [Montagem de sistemas de arquivos EFS](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) (Documentação do Amazon EFS)

**Realizar um backup do banco de dados de origem MySQL**
+ [Instalando o Percona XtraBackup 2.3 (documentação](https://www.percona.com/doc/percona-xtrabackup/2.3/installation.html) do XtraBackup Percona)
+ [Instalando o Percona XtraBackup 2.4 (documentação](https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html) do XtraBackup Percona) 
+ [Definir a configuração principal de replicação (Documentação do](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) MySQL)
+ [Migrar dados de um banco de dados MySQL externo para um cluster de banco de dados do Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) (Documentação do Aurora)
+ [Backup incremental (documentação](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) da XtraBackup Percona)

**Restaurar o backup no Amazon Aurora MySQL**
+ [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro) (Documentação do Amazon S3)
+ [Conectar-se à instância do Linux usando o SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) (Documentação do Amazon EC2)
+ [Configurando a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) (documentação da AWS CLI)
+ [comando sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) (referência de comando da AWS CLI)
+ [Criar uma política do IAM para acessar recursos do Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html) (Documentação do Aurora)
+ [Pré-requisitos do cluster de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html#Aurora.CreateInstance.Prerequisites) (Documentação do Aurora)
+ [Trabalhar com grupos de sub-redes de banco de dados ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets)(Documentação do Aurora)
+ [Criar um grupo de segurança da VPC para uma instância de banco de dados privada](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB) (Documentação do Aurora)
+ [Restaurar um cluster de banco de dados do Aurora MySQL a partir de um bucket do S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore) (Documentação do Aurora)
+ [Configurar a replicação com MySQL ou outro cluster de banco de dados do Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html#AuroraMySQL.Replication.MySQL.SettingUp) (Documentação do Aurora)
+ [procedimento mysql.rds\$1set\$1external\$1master](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html) (MySQL na referência SQL do Amazon RDS)
+ [procedimento mysql.rds\$1start\$1replication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_start_replication.html) (MySQL na referência SQL do Amazon RDS)

**Referências adicionais**
+ [Migrar dados de um banco de dados MySQL externo para um cluster de banco de dados do Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) (Documentação do Aurora)
+ [Downloads do servidor MySQL](https://downloads.mysql.com/archives/community/) (site da Oracle)

**Tutoriais e vídeos**
+  [Migração de dados do MySQL para um cluster de banco de dados Aurora MySQL usando o Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/migrate-mysql-aurora-innobackup/) (Centro de conhecimento da AWS)
+  [Configuração e montagem do Amazon EFS](https://www.youtube.com/watch?v=NR8rVsSn_dY) (vídeo)

## Mais informações
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-additional"></a>

**Instalar um cliente NFS**
+ Se você estiver usando o Red Hat ou um sistema operacional Linux similar, use o comando:  

```
$ sudo yum -y install nfs-utils
```
+ Se você estiver usando o Ubuntu ou um sistema operacional Linux similar, use o comando: 

```
$ sudo apt-get -y install nfs-common
```

Para obter mais informações, consulte o [passo a passo](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) na documentação do Amazon EFS.

**Montar o sistema de arquivos do Amazon EFS**

Use os comandos:

```
mkdir ~/<efs_mount_name>
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/<efs_mount_name>
```

Para obter mais informações, consulte o [passo a passo](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) e [montagem de sistemas de arquivos EFS](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) na documentação do Amazon EFS.

**Fazendo backups do banco de dados de origem MySQL**

*Backups completos*

Use um comando como o seguinte, que pega o backup, o compacta e o divide em partes menores de 1 GB cada:

```
xtrabackup --backup --user=dbuser --password=<password> --binlog-info=AUTO --stream=tar --target-dir=~/<efs_mount_name>/fullbackup | gzip - | split -d --bytes=1024MB - ~/<efs_mount_name>/fullbackup/backup.tar.gz &
```

Se você planeja fazer backups incrementais subsequentes após o backup completo, não compacte e divida o backup. Em vez disso, use um comando semelhante ao seguinte:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/fullbackup/
```

*Backups incrementais*

Use o caminho de backup completo para o parâmetro `--incremental-basedir`; por exemplo:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/incremental/backupdate --incremental-basedir=~/<efs_mount_name>/fullbackup
```

em que *basedir* é o caminho para o backup completo e o arquivo xtrabackup\$1checkpoints.

Para obter mais informações, consulte [Migrar dados de um banco de dados MySQL externo para um cluster de banco de dados MySQL do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) na documentação do Aurora.

**Preparar backups**

Preparar um backup completo:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup
```

Para preparar um backup incremental:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06062020
```

Para preparar o backup final:

```
xtrabackup --prepare --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06072020
```

Para obter mais informações, consulte [Backups incrementais na documentação](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) da XtraBackup Percona.

**Compactar e dividir o backup mesclado**

Para compactar o backup mesclado em \$1/<efs\$1mount\$1name>/fullbackup:

```
tar -zcvf <backupfilename.tar.gz> ~/<efs_mount_name>/fullbackup
```

Para dividir o backup:

```
split -d -b1024M --verbose  <backupfilename.tar.gz> <backupfilename.tar.gz>
```

**Configurar a replicação do log binário**

Para criar um usuário de replicação no banco de dados de origem e fornecer os privilégios adequados:

```
CREATE USER 'repl_user'@'' IDENTIFIED BY ''; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'';
```

Para habilitar a replicação no Aurora conectando-se ao cluster de banco de dados Aurora, habilite os registros binários no grupo de parâmetros do cluster de banco de dados. Definir `binlog_format = mixed` (o modo misto é preferido). Essa alteração exige que você reinicie a instância para aplicar a atualização.

```
CALL mysql.rds_set_external_master ('sourcedbinstanceIP', sourcedbport, 'repl_user', '', 'binlog_file_name', binlog_file_position, 0); CALL mysql.rds_start_replication;
```

Para confirmar se a replicação está sincronizada:

```
SHOW Slave Status \G;
```

O campo **Segundos atrás do mestre** mostra o quanto o Aurora está atrasado em relação ao banco de dados on-premises.

# Migrar aplicações Java on-premises para a AWS usando o App2Container da AWS
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Resumo
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

O AWS App2Container (A2C) é uma ferramenta de linha de comando que ajuda a transformar aplicativos existentes executados em máquinas virtuais em contêineres, sem a necessidade de alterações no código. O A2C descobre aplicações em execução em um servidor, identifica dependências e gera artefatos relevantes para uma implantação sem contratempos no Amazon Elastic Container Service (Amazon ECS) e no Amazon Elastic Kubernetes Service (Amazon EKS).

Esse padrão fornece as etapas para migrar remotamente aplicativos Java on-premises implantados em um servidor de aplicativos para o AWS Fargate ou o Amazon EKS usando o App2Container por meio da máquina de trabalho. 

A máquina de trabalho pode ser usada nos seguintes casos de uso:
+ A instalação do Docker não é permitida ou não está disponível nos servidores de aplicativos em que os aplicativos Java estão sendo executados.
+ Você deve gerenciar a migração de vários aplicativos implantados em diferentes servidores físicos ou virtuais.

Esse padrão usa AWS CodeCommit AWS CodePipeline, AWS CodeBuild e.

## Pré-requisitos e limitações
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Pré-requisitos **
+ Um servidor de aplicação com uma aplicação Java em execução em um servidor Linux
+ Uma máquina de trabalho com um sistema operacional Linux
+ Uma máquina de trabalho com pelo menos 20 GB de espaço em disco disponível

**Limitações**
+ Nem todos os aplicativos são compatíveis. Para obter mais informações, consulte [Aplicativos compatíveis para Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Arquitetura
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Pilha de tecnologia de origem**
+ Aplicativos Java em execução no servidor Linux

**Pilha de tecnologias de destino**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Arquitetura de destino**

![\[Arquitetura para aplicações Java on-premises na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Ferramentas
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Ferramentas**
+ [AWS App2Container:](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) o AWS App2Container (A2C) é uma ferramenta da linha de comando que ajuda você a elevar e mudar aplicações executadas em seus datacenters on-premises ou em máquinas virtuais, para que eles sejam executados em contêineres gerenciados pelo Amazon ECS ou Amazon EKS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — CodeBuild A AWS é um serviço de construção totalmente gerenciado na nuvem. CodeBuild compila seu código-fonte, executa testes de unidade e produz artefatos prontos para serem implantados.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — CodeCommit A AWS é um serviço de controle de versão hospedado pela Amazon Web Services que você pode usar para armazenar e gerenciar de forma privada ativos (como documentos, código-fonte e arquivos binários) na nuvem.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — CodePipeline A AWS é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html): o Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html): o Amazon Elastic Container Registry (Amazon ECR) é um serviço gerenciado de registro de imagem de contêiner, seguro, escalável e confiável.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html): o Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado que você pode usar para executar o Kubernetes na AWS, eliminando a necessidade de instalar, operar e manter seus próprios nós ou ambiente de gerenciamento do Kubernetes.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — O AWS Fargate é uma tecnologia que você pode usar com o Amazon ECS para executar contêineres sem precisar gerenciar servidores ou clusters de instâncias do Amazon Elastic Compute Cloud (Amazon). EC2 Com o Fargate, não é mais necessário provisionar, configurar nem escalar os clusters de máquinas virtuais para executar contêineres.

## Épicos
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

### Configurar credenciais
<a name="set-up-credentials"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um segredo para acessar o servidor do aplicativo. | Para acessar o servidor do aplicativo remotamente a partir da máquina de trabalho, crie um segredo no AWS Secrets Manager. Como seu segredo, você pode usar a chave privada SSH ou o Certificado e a chave privada SSH. Para obter mais informações, consulte [Gerenciar segredos para o AWS ApP2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Desenvolvedor | 

### Configure a máquina do operador
<a name="set-up-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instalar o arquivo tar. | Executar `sudo yum install -y tar`. | DevOps, Desenvolvedor | 
| Instale a AWS CLI. | Instalar a interface da linha de comando Amazon (AWS CLI), execute `curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"`. Descompacte `awscliv2.zip`.Executar `sudo ./aws/install`. | DevOps, Desenvolvedor | 
| Instale o App2Container. | Execute os seguintes comandos :`curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz``sudo tar xvf AWSApp2Container-installer-linux.tar.gz``sudo ./install.sh` | DevOps, Desenvolvedor | 
| Configure os perfis. | Para configurar o perfil padrão da AWS, execute `sudo aws configure`.Para configurar o perfil da AWS, execute `sudo aws configure --profile <profile name>`. | DevOps, Desenvolvedor | 
| Instalar o Docker. | Execute os seguintes comandos.`sudo yum install -y docker``sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Inicialize o App2Container. | Para inicializar o App2Container, você precisa das seguintes informações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Executar `sudo app2container init`. | DevOps, Desenvolvedor | 

### Configurar a máquina de trabalho
<a name="configure-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a máquina de trabalho para se conectar e executar remotamente os comandos do App2Container no servidor do aplicativo. | Para configurar a máquina de trabalho, as seguintes informações são necessárias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Executar `sudo app2container remote configure`. | DevOps, Desenvolvedor | 

### Descubra, analise e extraia aplicativos na máquina de trabalho
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Descubra os aplicativos Java locais on-premises. | Para descobrir remotamente todos os aplicativos em execução no servidor de aplicativos, execute o comando a seguir.`sudo app2container remote inventory --target <FQDN/IP of App server>`Esse comando gera uma lista de aplicativos implantados em `inventory.json`. | Desenvolvedor, DevOps | 
| Analise os aplicativos descobertos. | Para analisar remotamente cada aplicativo usando o que foi obtido no estágio de inventário, execute o comando a seguir.`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`Isso gera um arquivo `analysis.json` no local do espaço de trabalho. Depois que esse arquivo for gerado, você poderá alterar os parâmetros de conteinerização com base nas suas necessidades. | Desenvolvedor, DevOps | 
| Extraia os aplicativos analisados. | Para gerar um arquivo do aplicativo analisado, execute remotamente o comando a seguir, que deverá gerar o pacote tar no local do espaço de trabalho.`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`Os artefatos extraídos podem ser gerados na máquina de trabalho local. | Desenvolvedor, DevOps | 

### Coloque em contêineres os artefatos extraídos na máquina de trabalho
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Coloque os artefatos extraídos em contêineres. | Coloque em contêineres os artefatos extraídos na etapa anterior executando o comando a seguir.`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Desenvolvedor, DevOps | 
| Finalize o destino. | Para finalizar o destino, abra `deployment.json`, que será criado quando o comando `containerize` for executado. Para especificar o AWS Fargate como destino, defina `createEcsArtifacts` como `true`. Para definir o Amazon EKS como destino, defina `createEksArtifacts` como verdadeiro. | Desenvolvedor, DevOps | 

### Gere e provisione artefatos da AWS
<a name="generate-and-provision-aws-artifacts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere artefatos de implantação da AWS na máquina do operador. | Para gerar artefatos de implantação, execute o comando a seguir.`sudo app2container generate app-deployment --application-id <application id>`Isso gera o CloudFormation modelo `ecs-master.yml` da AWS no espaço de trabalho. | DevOps | 
| Provisionar os artefatos. | Para provisionar ainda mais os artefatos gerados, implante o CloudFormation modelo da AWS executando o comando a seguir.`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Gere o pipeline. | Modifique `pipeline.json`, que foi criada na história anterior, com base nas suas necessidades. Em seguida, execute o `generate pipeline` comando para gerar os artefatos de implantação do pipeline. | DevOps | 

## Recursos relacionados
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [O que é o App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Publicação no blog do AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Princípios básicos da configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Noções básicas do Docker para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Comandos do Docker](https://docs.docker.com/engine/reference/commandline/cli/)

# Migre sistemas de arquivos compartilhados em uma AWS grande migração
<a name="migrate-shared-file-systems-in-an-aws-large-migration"></a>

*Amit Rudraraju, Sam Apa, Bheemeswararao Balla, Wally Lu e Sanjeev Prakasam, Amazon Web Services*

## Resumo
<a name="migrate-shared-file-systems-in-an-aws-large-migration-summary"></a>

A migração de 300 ou mais servidores é considerada uma *grande migração*. O objetivo de uma grande migração é migrar cargas de trabalho de seus datacenters locais existentes para o. Nuvem AWS, e esses projetos geralmente se concentram nas cargas de trabalho de aplicativos e bancos de dados. No entanto, os sistemas de arquivos compartilhados exigem atenção concentrada e um plano de migração separado. Este padrão descreve o processo de migração para sistemas de arquivos compartilhados e fornece as práticas recomendadas para migrá-los com êxito como parte de um grande projeto de migração.

Um *sistema de arquivos compartilhado* (SFS), também conhecido como sistema de arquivos em *rede * ou *cluster*, é um compartilhamento de arquivos montado em vários servidores. Os sistemas de arquivos compartilhados são acessados por meio de protocolos como Network File System (NFS), Common Internet File System (CIFS) ou Server Message Block (SMB).

Esses sistemas não são migrados com ferramentas de migração padrão, por exemplo, AWS Application Migration Service porque não são dedicados ao host que está sendo migrado nem são representados como um dispositivo de bloco. Embora a maioria das dependências do host seja migrada de forma transparente, a coordenação e o gerenciamento dos sistemas de arquivos dependentes devem ser tratados separadamente.

Você migra sistemas de arquivos compartilhados nas seguintes fases: descobrir, planejar, preparar, substituir e validar. Usando esse padrão e as pastas de trabalho anexadas, você migra seu sistema de arquivos compartilhado para um serviço de AWS armazenamento, como Amazon Elastic File System (Amazon EFS), Amazon FSx for NetApp ONTAP ou Amazon FSx for Windows File Server. Para transferir o sistema de arquivos, você pode usar AWS DataSync ou uma ferramenta de terceiros, como NetApp SnapMirror.

**nota**  
Esse padrão faz parte de uma série de orientação AWS prescritiva sobre [grandes migrações para o. Nuvem AWS](https://aws.amazon.com/prescriptive-guidance/large-migrations/) Esse padrão inclui as melhores práticas e instruções para SFSs incorporação em seus planos de ondas para servidores. Se você estiver migrando um ou mais sistemas de arquivos compartilhados fora de um grande projeto de migração, consulte as instruções de transferência de dados na AWS documentação do [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html), [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html) e [Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).

## Pré-requisitos e limitações
<a name="migrate-shared-file-systems-in-an-aws-large-migration-prereqs"></a>

**Pré-requisitos **

Os pré-requisitos podem variar dependendo dos sistemas de arquivos compartilhados de origem e destino e do seu caso de uso. Os problemas mais comuns são os seguintes:
+ Um ativo Conta da AWS.
+ Você concluiu a descoberta do portfólio de aplicativos para seu grande projeto de migração e começou a desenvolver planos de ondas. Para obter mais informações, consulte [Manual de portfólio para AWS grandes migrações](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html).
+ Nuvens privadas virtuais (VPCs) e grupos de segurança que permitem tráfego de entrada e saída entre o data center local e seu ambiente. AWS [Para obter mais informações, consulte Opções de [conectividade de rede para Amazon VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) e requisitos de rede.AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html)
+ Permissões para criar AWS CloudFormation pilhas ou permissões para criar FSx recursos do Amazon EFS ou da Amazon. Para obter mais informações, consulte a [CloudFormation documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html), a [documentação do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/security-iam.html) ou a [ FSx documentação da Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/security-iam.html).
+ Se você estiver usando AWS DataSync para realizar a migração, precisará das seguintes permissões:
  + Permissões AWS DataSync para enviar registros para um grupo de CloudWatch registros do Amazon Logs. Para obter mais informações, consulte [Permitir DataSync o upload de registros para grupos de CloudWatch registros](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs).
  + Permissões para acessar o grupo CloudWatch de registros de registros. Para obter mais informações, consulte [Visão geral do gerenciamento de permissões de acesso aos seus recursos do CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html).
  + Permissões para criar agentes e tarefas em DataSync. Para obter mais informações, consulte [Permissões obrigatórias do IAM para uso AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/permissions-requirements.html).

**Limitações**
+ Esse padrão foi projetado para migrar SFSs como parte de um grande projeto de migração. Ele inclui as melhores práticas e instruções para SFSs incorporação em seus planos de migração de aplicativos. Se você estiver migrando um ou mais sistemas de arquivos compartilhados fora de um grande projeto de migração, consulte as instruções de transferência de dados na AWS documentação do [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html), [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html) e [Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).
+ Esse padrão é baseado em arquiteturas, serviços e padrões de migração comumente usados. No entanto, grandes projetos e estratégias de migração podem variar entre as organizações. Talvez seja necessário personalizar essa solução ou as pastas de trabalho fornecidas com base em seus requisitos.

## Arquitetura
<a name="migrate-shared-file-systems-in-an-aws-large-migration-architecture"></a>

**Pilha de tecnologia de origem**

Um ou mais itens a seguir:
+ Servidor de arquivos Linux (NFS)
+ Servidor de arquivos Windows (SMB)
+ NetApp matriz de armazenamento
+ Matriz de armazenamento Dell EMC Isilon

**Pilha de tecnologias de destino**

Um ou mais itens a seguir:
+ Amazon Elastic File System
+ Amazon FSx para NetApp ONTAP
+ Servidor FSx de arquivos Amazon para Windows

**Arquitetura de destino**

![\[Diagrama de arquitetura do uso da AWS DataSync para migrar sistemas de arquivos compartilhados locais para a AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/13232433-7d33-44c8-8998-b720f33f67b3.png)


O diagrama mostra o seguinte processo:

1. Você estabelece uma conexão entre o data center local e o Nuvem AWS usando um AWS service (Serviço da AWS) como AWS Direct Connect ou AWS Site-to-Site VPN.

1. Você instala o DataSync agente no data center local.

1. De acordo com seu plano wave, você usa DataSync para replicar dados do sistema de arquivos compartilhado de origem para o compartilhamento de AWS arquivos de destino.

**Fases de migração**

A imagem a seguir mostra as fases e etapas de alto nível para migrar um SFS em um grande projeto de migração.

![\[Fases de descoberta, planejamento, preparação, substituição e validação da migração de sistemas de arquivo compartilhados para a AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/f1e0c94d-0eea-46a8-bdec-3297b34c1d43.png)


A seção [Épicos](#migrate-shared-file-systems-in-an-aws-large-migration-epics) desse padrão contém instruções detalhadas sobre como concluir a migração e usar as pastas de trabalho anexadas. Veja a seguir uma visão geral de alto nível das etapas dessa abordagem em fases.


| 
| 
| Fase | Steps | 
| --- |--- |
| Descobrir | 1. Usando uma ferramenta de descoberta, você coleta dados sobre o sistema de arquivos compartilhado, incluindo servidores, pontos de montagem e endereços IP.2. Usando um banco de dados de gerenciamento de configuração (CMDB) ou sua ferramenta de migração, você coleta detalhes sobre o servidor, incluindo informações sobre a onda de migração, ambiente, proprietário do aplicativo, nome do serviço de gerenciamento de serviços de TI (ITSM), unidade organizacional e ID do aplicativo. | 
| Planejar | 3. Usando as informações coletadas sobre os servidores SFSs e os servidores, crie o plano de ondas do SFS.4. Usando as informações na planilha de construção, para cada SFS, escolha um destino AWS service (Serviço da AWS) e uma ferramenta de migração. | 
| Preparar | 5. Configure a infraestrutura de destino no Amazon EFS, Amazon FSx for NetApp ONTAP ou Amazon FSx for Windows File Server.6. Configure o serviço de transferência de dados, como DataSync, e inicie a sincronização inicial de dados. Quando a sincronização inicial estiver concluída, você poderá configurar sincronizações recorrentes para serem executadas de acordo com uma programação.7. Atualize o plano SFS em ondas com informações sobre o compartilhamento de arquivos de destino, como endereço IP ou caminho. | 
| Substituir | 8. Interrompa os aplicativos que acessam ativamente o SFS de origem.9. No serviço de transferência de dados, execute uma sincronização final de dados.10. Quando a sincronização estiver concluída, verifique se ela foi totalmente bem-sucedida revisando os dados de registro em CloudWatch Registros. | 
| Validar | 11. Nos servidores, altere o ponto de montagem para o novo caminho do SFS.12. Reinicie e valide os aplicativos. | 

## Ferramentas
<a name="migrate-shared-file-systems-in-an-aws-large-migration-tools"></a>

**Serviços da AWS**
+ O [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.
+ [AWS DataSync](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 para, de e entre serviços AWS de armazenamento.
+ [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.
+  FSxA [Amazon](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornece sistemas de arquivos que suportam protocolos de conectividade padrão do setor e oferecem alta disponibilidade e replicação em todo o mundo. Regiões da AWS

**Outras ferramentas**
+ [SnapMirror](https://library.netapp.com/ecmdocs/ECMP1196991/html/GUID-BA1081BE-B2BB-4C6E-8A82-FB0F87AC514E.html)é uma ferramenta de replicação de NetApp dados que replica dados de volumes de origem ou qtrees especificados para volumes ou [qtrees](https://library.netapp.com/ecmdocs/ECMP1154894/html/GUID-8F084F85-2AB8-4622-B4F3-2D9E68559292.html) de destino, respectivamente. Você pode usar essa ferramenta para migrar um sistema de arquivos de NetApp origem para a Amazon FSx for NetApp ONTAP.
+ [Robocopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy), abreviação de *Robust File Copy*, é um diretório de linha de comando e comando para Windows. Você pode usar essa ferramenta para migrar um sistema de arquivos de origem do Windows para o Amazon FSx for Windows File Server.

## Práticas recomendadas
<a name="migrate-shared-file-systems-in-an-aws-large-migration-best-practices"></a>

**Abordagens de planejamento de ondas**

Ao planejar ondas para seu grande projeto de migração, considere a latência e o desempenho do aplicativo. Quando o SFS e os aplicativos dependentes estão operando em locais diferentes, como um na nuvem e outro no datacenter on-premises, isso pode aumentar a latência e afetar o desempenho do aplicativo. Veja a seguir as opções disponíveis ao criar planos de onda:

1. **Migrar o SFS e todos os servidores dependentes na mesma onda**: essa abordagem evita problemas de desempenho e minimiza o retrabalho, como reconfigurar pontos de montagem várias vezes. É recomendado quando é necessária uma latência muito baixa entre o aplicativo e o SFS. No entanto, o planejamento de ondas é complexo e o objetivo geralmente é remover variáveis dos agrupamentos de dependências, não as adicionar. Além disso, essa abordagem não é recomendada se muitos servidores acessarem o mesmo SFS, pois isso torna a onda muito grande.

1. **Migrar o SFS após a migração do último servidor dependente**: por exemplo, se um SFS for acessado por vários servidores e esses servidores estiverem programados para migrar nas ondas 4, 6 e 7, programe o SFS para migrar na onda 7.

   Essa abordagem geralmente é a mais lógica para grandes migrações e é recomendada para aplicativos sensíveis à latência. Ela reduz os custos associados à transferência de dados. Também minimiza o período de latência entre o SFS e os aplicativos de nível superior (como produção) porque os aplicativos de nível superior geralmente são programados para serem migrados por último, após o desenvolvimento e os aplicativos de controle de qualidade.

   No entanto, essa abordagem ainda exige descoberta, planejamento e agilidade. Talvez seja necessário migrar o SFS em uma onda anterior. Confirme se os aplicativos podem suportar a latência adicional pelo período de tempo entre a primeira onda dependente e a onda contendo o SFS. Conduza uma sessão de descoberta com os proprietários do aplicativo e migre o aplicativo na mesma onda para o aplicativo mais sensível à latência. Se forem descobertos problemas de desempenho após a migração de um aplicativo dependente, esteja preparado para migrar rapidamente o SFS o mais rápido possível.

1. **Migrar o SFS no final de um grande projeto de migração**: essa abordagem é recomendada se a latência não for um fator, como quando os dados no SFS são acessados com pouca frequência ou não são essenciais para o desempenho do aplicativo. Essa abordagem agiliza a migração e simplifica as tarefas de substituição.

Você pode combinar essas abordagens com base na sensibilidade à latência do aplicativo. Por exemplo, você pode migrar de forma sensível à latência SFSs usando as abordagens 1 ou 2 e, em seguida, migrar o restante usando a abordagem 3. SFSs 

**Escolha de um serviço AWS de sistema de arquivos**

AWS oferece vários serviços em nuvem para armazenamento de arquivos. Cada um oferece benefícios e limitações diferentes para desempenho, escala, acessibilidade, integração, conformidade e otimização de custos. Há algumas opções lógicas padrão. Por exemplo, se seu sistema de arquivos local atual estiver operando o Windows Server, o Amazon FSx for Windows File Server é a opção padrão. Ou se o sistema de arquivos local estiver operando o NetApp ONTAP, o Amazon FSx for NetApp ONTAP é a opção padrão. No entanto, você pode escolher um serviço de destino com base nos requisitos do seu aplicativo ou para obter outros benefícios operacionais na nuvem. Para obter mais informações, consulte Como [escolher o serviço de armazenamento de AWS arquivos certo para sua implantação](https://d1.awsstatic.com/events/Summits/awsnycsummit/Choosing_the_right_AWS_file_storage_service_for_your_deployment_STG302.pdf) (apresentação da AWS Summit).

**Escolher uma ferramenta de migração**

O Amazon EFS e a Amazon FSx oferecem suporte ao uso de AWS DataSync para migrar sistemas de arquivos compartilhados para o. Nuvem AWS Para obter mais informações sobre sistemas e serviços de armazenamento compatíveis, benefícios e casos de uso, consulte [O que é AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html). Para obter uma visão geral do processo de uso DataSync para transferir seus arquivos, consulte [Como as AWS DataSync transferências funcionam](https://docs.aws.amazon.com/datasync/latest/userguide/how-datasync-transfer-works.html).

Também há várias ferramentas de terceiros disponíveis, incluindo as seguintes:
+ Se você escolher a Amazon FSx para NetApp ONTAP, poderá usá-la NetApp SnapMirror para migrar os arquivos do data center local para a nuvem. SnapMirror usa replicação em nível de bloco, que pode ser mais rápida DataSync e reduzir a duração do processo de transferência de dados. Para obter mais informações, consulte [Migrando FSx para o uso do ONTAP. NetApp SnapMirror](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap-snapmirror.html)
+ Se você escolher o Amazon FSx para Windows File Server, poderá usar o Robocopy para migrar arquivos para a nuvem. Para obter mais informações, consulte [Migração de arquivos existentes FSx para o Windows File Server usando o Robocopy](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-files-to-fsx.html).

## Épicos
<a name="migrate-shared-file-systems-in-an-aws-large-migration-epics"></a>

### Descobrir
<a name="discover"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar a pasta de trabalho de descoberta do SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 
| Coletar informações sobre o SFS de origem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 
| Coletar informações sobre os servidores. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 

### Planejar
<a name="plan"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o plano de ondas do SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Líder de construção, líder de substituição, engenheiro de migração, líder de migração | 
| Escolha o destino AWS service (Serviço da AWS) e a ferramenta de migração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 

### Preparar
<a name="prepare"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar o sistema de arquivos de destino. | De acordo com os detalhes registrados em seu plano de ondas, configure os sistemas de arquivos de destino no destino Conta da AWS, no VPC e nas sub-redes. Para obter instruções, consulte a AWS documentação a seguir:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração, administrador da AWS | 
| Configurar a ferramenta de migração e transfira dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Administrador da AWS, administrador de nuvem, engenheiro de migração, líder de migração | 
| Atualizar o plano de ondas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Interromper aplicativos. | Se aplicativos ou clientes estiverem executando ativamente operações de leitura e gravação no SFS de origem, interrompa-as antes de realizar a sincronização final dos dados. Para obter instruções, consulte a documentação do aplicativo ou seus processos internos para interromper as atividades de leitura e gravação. Por exemplo, consulte [Iniciar ou interromper o servidor Web (IIS 8)](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635851(v=ws.11)) (documentação da Microsoft) ou [Gerenciar serviços do sistema com systemctl](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/managing-systemd_configuring-basic-system-settings#managing-system-services-with-systemctl_managing-systemd) (documentação da Red Hat). | Proprietário do aplicativo, desenvolvedor do aplicativo | 
| Executar a transferência final de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Engenheiro de migração, líder de migração | 
| Validar a transferência de dados. | Se você estiver usando AWS DataSync, faça o seguinte para validar a transferência final de dados concluída com êxito:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html)Se você estiver usando uma ferramenta de terceiros, consulte as instruções de validação da transferência de dados na documentação da ferramenta de migração selecionada. | Engenheiro de migração, líder de migração | 

### Validar
<a name="validate"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remonte o sistema de arquivos e valide a função e o desempenho do aplicativo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Administrador de sistemas da AWS, proprietário do aplicativos | 

## Solução de problemas
<a name="migrate-shared-file-systems-in-an-aws-large-migration-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Os valores das células no Microsoft Excel não são atualizados. | Copie as fórmulas nas linhas de amostra arrastando a alça de preenchimento. Para obter mais informações, consulte as instruções para [Windows](https://support.microsoft.com/en-us/office/fill-a-formula-down-into-adjacent-cells-041edfe2-05bc-40e6-b933-ef48c3f308c6) ou [Mac](https://support.microsoft.com/en-au/office/copy-a-formula-by-dragging-the-fill-handle-in-excel-for-mac-dd928259-622b-473f-9a33-83aa1a63e218) (site de suporte da Microsoft). | 

## Recursos relacionados
<a name="migrate-shared-file-systems-in-an-aws-large-migration-resources"></a>

**AWS documentação**
+ [AWS DataSync documentação](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)
+ [Documentação do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)
+ [ FSx Documentação da Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/index.html)
+ [Grandes migrações para o Nuvem AWS](https://aws.amazon.com/prescriptive-guidance/large-migrations/)
  + [Guia para AWS grandes migrações](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/welcome.html)
  + [Manual de portfólio para AWS grandes migrações](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html)

**Solução de problemas**
+ [Solução de AWS DataSync problemas](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync.html)
+ [Solução de problemas do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)
+ [Solução de problemas do Amazon FSx para Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/troubleshooting.html)
+ [Solução de problemas da Amazon FSx para NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/troubleshooting.html)

## Anexos
<a name="attachments-a30cf791-7a8a-4f71-8927-bc61f3b332f2"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/a30cf791-7a8a-4f71-8927-bc61f3b332f2/attachments/attachment.zip)

# Migre um banco de dados Oracle para o Amazon RDS for Oracle usando adaptadores de arquivo simples GoldenGate Oracle
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters"></a>

*Dhairya Jindani e Baji Shaik, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-summary"></a>

 GoldenGate O Oracle é um serviço de captura e replicação de dados em tempo real para bancos de dados e ambientes de TI heterogêneos. No entanto, esse serviço não é compatível atualmente com o Amazon Relational Database Service (Amazon RDS) para Oracle. Para obter uma lista dos bancos de dados compatíveis, consulte [Oracle GoldenGate for Heterogeneous Databases](https://docs.oracle.com/goldengate/c1230/gg-winux/GGHDB/12.3-what-is-oracle-goldengate-heterogeneous-databases.htm#GGHDB-GUID-08EAC588-F76C-4E37-BEBA-0DC57B98CA46) (documentação da Oracle). Esse padrão descreve como usar os adaptadores de arquivo GoldenGate simples Oracle GoldenGate e Oracle para gerar arquivos simples do banco de dados Oracle de origem, que pode estar no local ou em uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Em seguida, você pode importar esses arquivos simples para uma instância de banco de dados Amazon RDS para Oracle.

Nesse padrão, você usa o Oracle GoldenGate para extrair os arquivos de trilha do seu banco de dados Oracle de origem. A bomba de dados copia os arquivos de trilha para um servidor de integração, que é uma EC2 instância da Amazon. No servidor de integração, a Oracle GoldenGate usa o adaptador de arquivo simples para gerar uma série de arquivos simples sequenciais com base na captura de dados transacionais dos arquivos de trilha. O Oracle GoldenGate formata os dados como valores separados por delimitador ou valores delimitados por comprimento. Em seguida, você usa o Oracle SQL\$1Loader para importar os arquivos simples para a instância de banco de dados de destino do Amazon RDS para Oracle.

**Público-alvo**

Esse padrão é destinado para aqueles que têm experiência e conhecimento dos blocos de construção fundamentais GoldenGate de um Oracle. Para obter mais informações, consulte [Visão geral da GoldenGate arquitetura Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD115) (documentação da Oracle).

## Pré-requisitos e limitações
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Uma GoldenGate licença Oracle.
+ Uma licença separada para um GoldenGate adaptador Oracle.
+ Um banco de dados Oracle de origem, executado localmente ou em uma EC2 instância da Amazon.
+ Uma instância Amazon EC2 Linux usada como servidor de integração. Para obter mais informações, consulte [Comece a usar instâncias do Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) ( EC2 documentação da Amazon).
+ Uma instância de destino do banco de dados do Amazon RDS para Oracle. Para obter mais informações, consulte [Criação de uma instância de banco de dados Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) (documentação do Amazon RDS).

**Versões do produto**
+ Oracle Database Enterprise Edition versão 10g, 11g, 12c ou superior
+ Oracle GoldenGate versão 12.2.0.1.1 ou posterior

## Arquitetura
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-architecture"></a>

**Pilha de tecnologia de origem**

Um banco de dados Oracle (no local ou em uma EC2 instância da Amazon)

**Pilha de tecnologias de destino**

Amazon RDS para Oracle

**Arquitetura de origem e destino**

![\[Migração de um banco de dados Oracle para o Amazon RDS for Oracle usando um GoldenGate adaptador Oracle.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f34961f7-aa9a-41cb-b1ea-522e36ef2f67/images/21ef5177-e669-4591-aced-28d2f22decf2.png)


1. O Oracle GoldenGate extrai trilhas dos registros do banco de dados de origem.

1. O data pump extrai as trilhas e as migra para um servidor de integração.

1. O adaptador de arquivo GoldenGate simples Oracle lê as trilhas, as definições de origem e os parâmetros de extração.

1. Você sai da extração, que gera um arquivo de controle e arquivos de dados simples.

1. Você migra os arquivos de dados simples para uma instância de banco de dados do Amazon RDS para Oracle na Nuvem AWS.

## Ferramentas
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-tools"></a>

**Serviços da AWS**
+ [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.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) para Oracle ajuda você a configurar, operar e escalar um banco de dados relacional da Oracle na Nuvem AWS.

**Outros serviços**
+  GoldenGateO [Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110) é um serviço que ajuda você a replicar, filtrar e transformar dados de um banco de dados em outro banco de dados heterogêneo ou em outra topologia de destino, como arquivos simples.
+ [Os adaptadores de GoldenGate aplicativos Oracle](https://docs.oracle.com/goldengate/gg121211/gg-adapter/GADAD/flatfile_config.htm#GADAD424) permitem GoldenGate que a Oracle produza uma série de arquivos simples sequenciais e arquivos de controle a partir de dados transacionais capturados nos arquivos de trilha de um banco de dados de origem. Esses adaptadores são amplamente usados para operações de extração, transformação e carregamento (ETL) em aplicativos de data warehouse e aplicativos proprietários ou legados. GoldenGate A Oracle realiza essa captura e a aplica quase em tempo real em bancos de dados, plataformas e sistemas operacionais heterogêneos. Os adaptadores suportam formatos diferentes para os arquivos de saída, como CSV ou Apache Parquet. Você pode carregar esses arquivos gerados para carregar os dados em diferentes bancos de dados heterogêneos.

## Épicos
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-epics"></a>

### Configurar o Oracle GoldenGate no servidor de banco de dados de origem
<a name="set-up-oracle-goldengate-on-the-source-database-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o Oracle GoldenGate. | No servidor do banco de dados de origem, baixe o Oracle GoldenGate versão 12.2.0.1.1 ou posterior. Para obter instruções, consulte [Baixando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164) (documentação da Oracle). | DBA | 
| Instale o Oracle GoldenGate. | Para obter instruções, consulte [Instalando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (documentação da Oracle). | DBA | 
| Configure o Oracle GoldenGate. | Para obter instruções, consulte [Preparando o banco de dados para Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (documentação da Oracle). | DBA | 

### Configure o Oracle GoldenGate no servidor de integração
<a name="set-up-oracle-goldengate-on-the-integration-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o Oracle GoldenGate. | No servidor de integração, baixe o Oracle GoldenGate versão 12.2.0.1.1 ou posterior. Para obter instruções, consulte [Baixando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164) (documentação da Oracle). | DBA | 
| Instale o Oracle GoldenGate. | Crie diretórios, configure o processo do gerenciador e crie o arquivo `defgen` para um ambiente heterogêneo. Para obter instruções, consulte [Instalando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (documentação da Oracle). | DBA | 

### Alterar a configuração de captura GoldenGate de dados do Oracle
<a name="change-the-oracle-goldengate-data-capture-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare os GoldenGate adaptadores Oracle. | No servidor de integração, configure o software do GoldenGate adaptador Oracle. Faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.html) | DBA | 
| Configure a data pump. | No servidor de origem, configure o data pump para transferir o arquivo de trilha do servidor de origem para o servidor de integração. Crie o arquivo de parâmetros do data pump e o diretório do arquivo de trilhas. Para obter instruções, consulte [Configurando o adaptador de arquivo simples](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (documentação da Oracle). | DBA | 

### Gere e migre os arquivos simples
<a name="generate-and-migrate-the-flat-files"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere os arquivos simples. | Crie o arquivo de extração e o arquivo de controle e, em seguida, inicie o processo de extração no servidor de integração. Isso extrai as alterações do banco de dados e grava o banco de dados de origem nos arquivos simples. Para obter instruções, consulte [Usando o adaptador de arquivo simples](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD432) (documentação da Oracle). | DBA | 
| Carregue os arquivos simples no banco de dados de destino. | Carregue os arquivos simples na instância de destino do banco de dados do Amazon RDS para Oracle. Para obter mais informações, consulte [Importação usando o Oracle SQL\$1Loader](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.SQLLoader.html) (documentação do Amazon RDS). | DBA | 

## Solução de problemas
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O adaptador de arquivo GoldenGate simples Oracle gera um erro. | Para obter uma descrição dos erros do adaptador, consulte [Localizar mensagens de erro](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD437) (documentação da Oracle). Para obter instruções de solução de problemas, consulte [Solução de problemas do adaptador de arquivo simples](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-CB3D9B2C-49CC-408A-8C00-06E0C7923DD6.htm#GADAD552) (documentação da Oracle). | 

## Recursos relacionados
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-resources"></a>
+ [Instalando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (documentação da Oracle)
+ [Configurando o Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (documentação da Oracle)
+ [Compreendendo GoldenGate os adaptadores Oracle](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-F9105B02-9836-4F98-99F8-6E9C46D42764.htm#GADAD101) (documentação da Oracle)
+ [Configurando o adaptador de arquivo simples](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (documentação da Oracle)

# Altere os aplicativos Python e Perl para oferecer suporte à migração do banco de dados do Microsoft SQL Server para o Amazon Aurora Edição Compatível com PostgreSQL
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition"></a>

*Dwarika Patra e Deepesh Jayaprakash, Amazon Web Services*

## Resumo
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-summary"></a>

Esse padrão descreve as alterações nos repositórios de aplicativos que podem ser necessárias quando você migra bancos de dados do Microsoft SQL Server para o Amazon Aurora Edição Compatível com PostgreSQL. O padrão pressupõe que esses aplicativos sejam baseados em Python ou em Perl e fornece instruções separadas para essas linguagens de script.

A migração de bancos de dados do SQL Server para o Aurora compatível com PostgreSQL envolve conversão de esquemas, conversão de objetos de banco de dados, migração de dados e carregamento de dados. Devido às diferenças entre o PostgreSQL e o SQL Server (relacionadas a tipos de dados, objetos de conexão, sintaxe e lógica), a tarefa de migração mais difícil envolve fazer as alterações necessárias na base de código para que ela funcione corretamente com o PostgreSQL.

Em um aplicativo baseado em Python, objetos e classes de conexão estão espalhados por todo o sistema. Além disso, a base de código do Python pode usar várias bibliotecas para se conectar ao banco de dados. Se a interface de conexão do banco de dados mudar, os objetos que executam as consultas em linha do aplicativo também precisarão de alterações.

Em um aplicativo baseado em Perl, as alterações envolvem objetos de conexão, drivers de conexão de banco de dados, instruções SQL em linha estáticas e dinâmicas e como o aplicativo lida com consultas dinâmicas complexas de DML e conjuntos de resultados.

Ao migrar seu aplicativo, você também pode considerar possíveis melhorias na AWS, como a substituição do servidor FTP pelo acesso ao Amazon Simple Storage Service (Amazon S3).

O processo de migração de aplicativos envolve os seguintes desafios:
+ Objetos de conexão. Se os objetos de conexão estiverem espalhados no código com várias bibliotecas e chamadas de função, talvez seja necessário encontrar uma maneira generalizada de alterá-los para oferecer suporte ao PostgreSQL.
+ Tratamento de erros ou exceções durante a recuperação ou atualizações de registros. Se você tiver operações condicionais de criação, leitura, atualização e exclusão (CRUD) no banco de dados que retornam variáveis, conjuntos de resultados ou data frames, quaisquer erros ou exceções podem resultar em erros de aplicativo com efeitos em cascata. Eles devem ser tratados com cuidado, com validações adequadas e pontos de economia. Um desses pontos de salvamento é chamar grandes consultas SQL em linha ou objetos de banco de dados dentro de blocos `BEGIN...EXCEPTION...END`.
+ Controle de transações e sua validação. Isso inclui confirmações e reversões manuais e automáticas. O driver do PostgreSQL para Perl exige que você sempre defina explicitamente o atributo de confirmação automática.
+ Tratamento de consultas SQL dinâmicas. Isso requer uma forte compreensão da lógica de consulta e testes iterativos para garantir que as consultas funcionem conforme o esperado.
+ Desempenho. Você deve garantir que as alterações no código não resultem na degradação do desempenho do aplicativo.

Esse padrão explica detalhadamente o processo de conversão.

## Pré-requisitos e limitações
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-prereqs"></a>

**Pré-requisitos **
+ Conhecimento prático das sintaxes Python e Perl.
+ Habilidades básicas em SQL Server e PostgreSQL.
+ Compreensão da arquitetura de seu aplicativo existente.
+ Acesso ao código do aplicativo, ao banco de dados do SQL Server e ao banco de dados do PostgreSQL.
+ Acesso ao ambiente de desenvolvimento Windows ou Linux (ou outro Unix) com credenciais para desenvolver, testar e validar alterações em aplicativos.
+ **Para um aplicativo baseado em Python, bibliotecas Python padrão que seu aplicativo pode exigir, como **Pandas** para lidar com quadros de dados e psycopg2 ou para conexões de banco de dados. **SQLAlchemy****
+ Para um aplicativo baseado em Perl, são necessários pacotes Perl com bibliotecas ou módulos dependentes. O módulo rede abrangente de arquivos do Perl (CPAN) pode oferecer suporte à maioria dos requisitos do aplicativo.
+ Todas as bibliotecas ou módulos personalizados dependentes necessários. 
+ Credenciais de banco de dados para acesso de leitura ao SQL Server e read/write acesso ao Aurora.
+ PostgreSQL para validar e depurar alterações de aplicativos com serviços e usuários.
+ Acesso a ferramentas de desenvolvimento durante a migração de aplicativos, como Visual Studio Code, Sublime Text ou **pgAdmin**.

**Limitações**
+ Algumas versões, módulos, bibliotecas e pacotes do Python ou Perl não são compatíveis com o ambiente de nuvem.
+ Algumas bibliotecas e estruturas de terceiros usadas para o SQL Server não podem ser substituídas para oferecer suporte à migração do PostgreSQL. 
+ As variações de desempenho podem exigir alterações em seu aplicativo, nas consultas em linha do Transact-SQL (T-SQL), nas funções do banco de dados e nos procedimentos armazenados.
+ PostgreSQL suporta nomes em minúsculas para nomes de tabelas, nomes de colunas e outros objetos de banco de dados. 
+ Alguns tipos de dados, como colunas UUID, são armazenados somente em letras minúsculas. Os aplicativos Python e Perl devem lidar com essas diferenças de maiúsculas e minúsculas. 
+ As diferenças na codificação de caracteres devem ser tratadas com o tipo de dados correto para as colunas de texto correspondentes no banco de dados do PostgreSQL.                                

**Versões do produto**
+ Python 3.6 ou superior (use a versão compatível com seu sistema operacional)
+ Perl 5.8.3 ou superior (use a versão compatível com seu sistema operacional)
+ Edição 4.2 ou superior do Aurora compatível com PostgreSQL (veja [detalhes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html#AuroraPostgreSQL.Updates.20180305.42))

## Arquitetura
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-architecture"></a>

**Pilha de tecnologia de origem**
+ Linguagem de script (programação de aplicativos): Python 2.7 ou superior ou Perl 5.8 
+ Banco de dados: Microsoft SQL Server versão 13
+ Sistema operacional: Red Hat Enterprise Linux (RHEL) 7 

**Pilha de tecnologias de destino**
+ Linguagem de script (programação de aplicativos): Python 3.6 ou superior ou Perl 5.8 ou superior 
+ Banco de dados: Aurora 4.2 compatível com PostgreSQL
+ Sistema operacional: RHEL 7 

**Arquitetura de migração **

![\[Migração de um aplicativo do Perl ou Python com o SQL Server para o Aurora compatível com PostgreSQL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/b64de64a-bd55-4db7-ba7b-0a2557862af1/images/b8fab3e2-ded5-4f58-86bf-3f645252e9fc.png)


## Ferramentas
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-tools"></a>

**Ferramentas e serviços da AWS**
+ A [Edição compatível com PostgreSQL do Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado, compatível com PostgreSQL e compatível com ACID que combina a velocidade e a confiabilidade de bancos de dados comerciais de alta tecnologia com a economia de bancos de dados de código aberto. O Aurora PostgreSQL é um substituto imediato do PostgreSQL e torna mais fácil e econômico configurar, operar e escalar suas implantações novas e existentes do PostgreSQL.
+ A [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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.

**Outras ferramentas**
+ [Bibliotecas de conexão de banco de dados [Python](https://www.python.org/) e PostgresSQL, como psycopg2 e [SQLAlchemy](https://www.sqlalchemy.org/)](https://pypi.org/project/psycopg2/)
+ [Perl](https://www.perl.org/) e seus [módulos do DBI](https://metacpan.org/pod/DBD::Pg)
+ [Terminal interativo do PostgreSQL](https://www.postgresql.org/docs/13/app-psql.html) (psql)

## Épicos
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-epics"></a>

### Migre seu repositório de aplicativos para o PostgreSQL (etapas de alto nível)
<a name="migrate-your-application-repository-to-postgresql-ndash-high-level-steps"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Siga estas etapas de conversão de código para migrar seu aplicativo para o PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Os épicos a seguir fornecem instruções detalhadas para algumas dessas tarefas de conversão para aplicativos Python e Perl. | Desenvolvedor de aplicativos | 
| Use uma lista de verificação para cada etapa da migração. | Adicione o seguinte à sua lista de verificação para cada etapa da migração do aplicativo, incluindo a etapa final:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 

### Analise e atualize seu aplicativo — base de código Python
<a name="analyze-and-update-your-application-ndash-python-code-base"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise sua base de código Python existente.  | Sua análise deve incluir o seguinte para facilitar o processo de migração do aplicativo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 
| Converta suas conexões de banco de dados para suportar o PostgreSQL.  | A maioria dos aplicativos Python usa a biblioteca **pyodbc **para se conectar aos bancos de dados do SQL Server da seguinte maneira.<pre>import pyodbc<br />....<br />try:<br />    conn_string = "Driver=ODBC Driver 17 for SQL<br />    Server;UID={};PWD={};Server={};Database={}".format (conn_user, conn_password,<br />    conn_server, conn_database)<br />    conn = pyodbc.connect(conn_string)<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre>Converta a conexão do banco de dados para suportar o PostgreSQL da seguinte maneira.<pre>import pyodbc<br />import psycopg2<br />....<br />try:<br />    conn_string = ‘postgresql+psycopg2://’+<br />    conn_user+’:’+conn_password+’@’+conn_server+’/’+conn_database<br />    conn = pyodbc.connect(conn_string, connect_args={‘options’:’-csearch_path=dbo’})<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre> | Desenvolvedor de aplicativos | 
| Altere as consultas SQL em linha para PostgreSQL. | Converta suas consultas SQL em linha em um formato compatível com PostgreSQL. Por exemplo, a consulta do SQL Server a seguir recupera uma string de uma tabela.<pre>dtype = "type1"<br />stm = ‘"SELECT TOP 1 searchcode FROM TypesTable (NOLOCK)<br />WHERE code="’ + "’" + str(dtype) + "’"<br /># For Microsoft SQL Server Database Connection<br />engine = create_engine(‘mssql+pyodbc:///?odbc_connect=%s’ % urllib.parse.quote_plus(conn_string), connect_args={‘connect_timeout’:login_timeout})<br />conn = engine_connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre>Após a conversão, a consulta SQL em linha compatível com PostgreSQL tem a seguinte aparência.<pre>dtype = "type1"<br />stm = ‘"SELECT searchcode FROM TypesTable<br />WHERE code="’ + "’" + str(dtype) + "’ LIMIT 1"<br /># For PostgreSQL Database Connection<br />engine = create_engine(‘postgres+psycopg2://%s’ %conn_string, connect_args={‘connect_timeout’:login_timeout})<br />conn = engine.connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre> | Desenvolvedor de aplicativos | 
| Gerencie consultas SQL dinâmicas. | O SQL dinâmico pode estar presente em um script ou em vários scripts do Python. Exemplos anteriores mostraram como usar a função string replace (substituição de strings) do Python para inserir variáveis para estruturar consultas SQL dinâmicas. Uma abordagem alternativa é anexar a string de consulta com variáveis sempre que aplicável. No exemplo a seguir, a string de consulta é estruturada dinamicamente com base nos valores retornados por uma função.<pre>query = ‘"SELECT id from equity e join issues i on e.permId=i.permId where e.id’"<br />query += get_id_filter(ids) + " e.id is NOT NULL</pre>Esses tipos de consultas dinâmicas são muito comuns durante a migração do aplicativo. Siga estas etapas para lidar com consultas dinâmicas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 
| Gerencie conjuntos de resultados, variáveis e data frames. | No Microsoft SQL Server, você usa métodos Python, como `fetchone()` ou `fetchall()` para recuperar o conjunto de resultados do banco de dados. Você também pode usar `fetchmany(size)` e especificar o número de registros a serem retornados do conjunto de resultados. Para fazer isso, você pode usar o objeto de conexão **pyodbc**, conforme mostrado no exemplo a seguir.**pyodbc (Microsoft SQL Server)**<pre>import pyodbc <br />server = 'tcp:myserver.database.windows.net' <br />database = 'exampledb' <br />username = 'exampleusername' <br />password = 'examplepassword' <br />conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)<br />cursor = conn.cursor()<br />cursor.execute("SELECT * FROM ITEMS") <br />row = cursor.fetchone() <br />while row: <br />    print(row[0])<br />    row = cursor.fetchone()</pre>**No Aurora, para realizar tarefas semelhantes, como conectar-se ao PostgreSQL e buscar conjuntos de resultados, você pode usar psycopg2 ou. **SQLAlchemy**** Essas bibliotecas do Python fornecem o módulo de conexão e o objeto cursor para percorrer os registros do banco de dados do PostgreSQL, conforme mostrado no exemplo a seguir.**psycopg2 (Aurora compatível com PostgreSQL)**<pre>import psycopg2<br />query = "SELECT * FROM ITEMS;"<br />//Initialize variables<br />host=dbname=user=password=port=sslmode=connect_timeout=""<br />connstring = "host='{host}' dbname='{dbname}' user='{user}' \<br />password='{password}'port='{port}'".format(host=host,dbname=dbname,\<br />user=user,password=password,port=port) <br />conn = psycopg2.connect(connstring)<br />cursor = conn.cursor()<br />cursor.execute(query)<br />column_names = [column[0] for column in cursor.description]<br />print("Column Names: ", column_names)<br />print("Column values: "<br />for row in cursor:<br />    print("itemid :", row[0])<br />    print("itemdescrption :", row[1])<br />    print("itemprice :", row[3]))</pre>**SQLAlchemy (Compatível com Aurora PostgreSQL)**<pre>from sqlalchemy import create_engine<br />from pandas import DataFrame<br />conn_string = 'postgresql://core:database@localhost:5432/exampledatabase'<br />engine = create_engine(conn_string)<br />conn = engine.connect()<br />dataid = 1001<br />result = conn.execute("SELECT * FROM ITEMS")<br />df = DataFrame(result.fetchall())<br />df.columns = result.keys()<br />df = pd.DataFrame()<br />engine.connect()<br />df = pd.read_sql_query(sql_query, engine, coerce_float=False)<br />print("df=", df)</pre> | Desenvolvedor de aplicativos | 
| Teste seu aplicativo durante e após a migração. | Testar o aplicativo do Python migrado é um processo contínuo. Como a migração inclui alterações no objeto de conexão (**psycopg2** ou **SQLAlchemy**), tratamento de erros, novos recursos (quadros de dados), alterações de SQL em linha, funcionalidades de cópia em massa (`bcp`em vez de`COPY`) e alterações semelhantes, ela deve ser testada cuidadosamente durante e após a migração do aplicativo. Verifique se existe:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 

### Analise e atualize seu aplicativo — base de código Perl
<a name="analyze-and-update-your-application-ndash-perl-code-base"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise sua base de código Perl existente. | Sua análise deve incluir o seguinte para facilitar o processo de migração do aplicativo. Você deve identificar:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 
| Converta as conexões do aplicativo do Perl e do módulo do DBI para suportar o PostgreSQL. | Os aplicativos baseados em Perl geralmente usam o módulo do Perl DBI, que é um módulo padrão de acesso ao banco de dados para a linguagem de programação Perl. Você pode usar o mesmo módulo do DBI com drivers diferentes para SQL Server e PostgreSQL.Para obter mais informações sobre os módulos do Perl, instalações e outras instruções necessários, consulte a documentação do [DBD::Pg](https://metacpan.org/pod/DBD::Pg). O exemplo a seguir se conecta ao Aurora compatível com PostgreSQL em `exampletest-aurorapg-database.cluster-sampleclusture.us-east.-rds.amazonaws.com`.<pre>#!/usr/bin/perl<br />use DBI;<br />use strict;<br />my $driver = "Pg";<br />my $hostname = "exampletest-aurorapg-database-sampleclusture.us-east.rds.amazonaws.com"<br />my $dsn = "DBI:$driver: dbname = $hostname;host = 127.0.0.1;port = 5432";<br />my $username = "postgres";<br />my $password = "pass123";<br />$dbh = DBI->connect("dbi:Pg:dbname=$hostname;host=$host;port=$port;options=$options",<br />      $username,<br />      $password,<br />      {AutoCommit => 0, RaiseError => 1, PrintError => 0}<br />      );</pre> | Desenvolvedor de aplicativos | 
| Altere as consultas SQL em linha para PostgreSQL. | Seu aplicativo pode ter consultas SQL em linha com `SELECT`, `DELETE`, `UPDATE` e declarações semelhantes que incluam cláusulas de consulta que o PostgreSQL não suporta. Por exemplo, palavras-chave de consulta como `TOP` e `NOLOCK` não são suportadas no PostgreSQL. Os exemplos a seguir mostram como você pode gerenciar variáveis `TOP`, `NOLOCK` e booleanas.No SQL Server:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id   \<br />FROM active_student_record b WITH (NOLOCK) \<br />INNER JOIN student_contributor c WITH (NOLOCK) on c.contributor_id = b.c_st)</pre>Para o PostgreSQL, converta para:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id  \<br />FROM active_student_record b INNER JOIN student_contributor c  \<br />on c.contributor_id = b.c_student_contr_id WHERE b_current_1 is true \<br />LIMIT $numofRecords)"</pre> | Desenvolvedor de aplicativos | 
| Gerencie consultas SQL dinâmicas e variáveis do Perl. | As consultas SQL dinâmicas são instruções SQL criadas no runtime do aplicativo. Essas consultas são estruturadas dinamicamente quando o aplicativo está em execução, dependendo de determinadas condições, portanto, o texto completo da consulta não é conhecido até o runtime. Um exemplo é um aplicativo de análise financeira que analisa as 10 principais ações diariamente, e essas ações mudam todos os dias. As tabelas SQL são criadas com base nos melhores desempenhos e os valores não são conhecidos até o runtime.Digamos que as consultas SQL em linha deste exemplo sejam passadas para uma função de encapsulamento para obter o conjunto de resultados em uma variável e, em seguida, uma variável use uma condição para determinar se a tabela existe:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Este é um exemplo de manipulação de variáveis, seguido pelas consultas SQL Server e PostgreSQL para este caso de uso.<pre>my $tableexists = db_read( arg 1, $sql_qry, undef, 'writer');<br />my $table_already_exists = $tableexists->[0]{table_exists};<br />if ($table_already_exists){<br /># do some thing<br />}<br />else {<br /># do something else<br />}</pre>SQL Server:<pre>my $sql_qry = "SELECT OBJECT_ID('$backendTable', 'U') table_exists", undef, 'writer')";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT TO_REGCLASS('$backendTable', 'U') table_exists", undef, 'writer')";</pre>O exemplo a seguir usa uma variável** **do Perl em SQL em linha, que executa uma instrução `SELECT` com uma `JOIN` para buscar a chave primária da tabela e a posição da coluna chave.SQL Server:<pre>my $sql_qry = "SELECT column_name', character_maxi mum_length \<br />FROM INFORMATION_SCHEMA.COLUMNS \<br />WHERE TABLE_SCHEMA='$example_schemaInfo' \<br />AND TABLE_NAME='$example_table' \<br />AND DATA_TYPE IN ('varchar','nvarchar');";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT c1.column_name, c1.ordinal_position \<br />FROM information_schema.key_column_usage AS c LEFT \<br />JOIN information_schema.table_constraints AS t1 \<br />ON t1.constraint_name = c1.constraint_name \<br />WHERE t1.table_name = $example_schemaInfo'.'$example_table’ \<br />AND t1.constraint_type = 'PRIMARY KEY' ;";</pre> | Desenvolvedor de aplicativos | 

### Faça alterações adicionais em seu aplicativo baseado em Perl ou Python para oferecer suporte ao PostgreSQL
<a name="make-additional-changes-to-your-perl-based-or-python-based-application-to-support-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Converta estruturas adicionais do SQL Server em PostgreSQL. | As alterações a seguir se aplicam a todos os aplicativos, independentemente da linguagem de programação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Desenvolvedor de aplicativos | 

### Melhorar o desempenho
<a name="improve-performance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Aproveite os serviços da AWS para aprimorar o desempenho. | Ao migrar para a nuvem AWS, você pode refinar o design do aplicativo e do banco de dados para aproveitar os serviços da AWS. Por exemplo, se as consultas do seu aplicativo do Python, que está conectado a um servidor de banco de dados compatível com o Aurora PostgreSQL, estiverem demorando mais do que as consultas originais do Microsoft SQL Server, considere criar um feed de dados históricos diretamente para um bucket do Amazon Simple Storage Service (Amazon S3) a partir do servidor Aurora e usar consultas SQL baseadas no Amazon Athena para gere relatórios e consultas de dados analíticos para seus painéis de usuário. | Desenvolvedor de aplicativos, arquiteto de nuvem | 

## Recursos relacionados
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-resources"></a>
+ [Perl](https://www.perl.org/)
+ [Módulo do Perl DBI](https://metacpan.org/pod/DBI)
+ [Python](https://www.python.org/)
+ [psycopg2](https://pypi.org/project/psycopg2/)
+ [SQLAlchemy](https://www.sqlalchemy.org/)
+ [Cópia em massa: PostgreSQL](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ [Cópia em massa: Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15)
+ [PostgreSQL](https://www.postgresql.org/)
+ [Trabalho com Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)

## Mais informações
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-additional"></a>

Tanto o Microsoft SQL Server quanto o Aurora compatível com PostgreSQL são compatíveis com o ANSI SQL. No entanto, você ainda deve estar ciente de quaisquer incompatibilidades na sintaxe, nos tipos de dados da coluna, nas funções específicas do banco de dados nativo, nas inserções em massa e na diferenciação de maiúsculas e minúsculas ao migrar seu aplicativo do Python ou Perl do SQL Server para o PostgreSQL.

As seções a seguir fornecem mais informações sobre possíveis inconsistências.

**Comparação de tipos de dados**

Alterações no tipo de dados do SQL Server para o PostgreSQL podem levar a diferenças significativas nos dados resultantes com os quais os aplicativos operam. Para obter uma comparação dos tipos de dados, consulte a tabela no [site da Sqlines](https://www.sqlines.com/sql-server-to-postgresql).

**Funções SQL nativas ou integradas**

O comportamento de algumas funções difere entre os bancos de dados SQL Server e PostgreSQL. A tabela a seguir oferece uma comparação.


| 
| 
| Microsoft SQL Server | Description | PostgreSQL | 
| --- |--- |--- |
| `CAST`  | Converte um valor de um tipo de dados para outro. | PostgreSQL `type :: operator` | 
| `GETDATE()` | Retorna a data e hora do sistema de banco de dados atual, em um formato `YYYY-MM-DD hh:mm:ss.mmm`. | `CLOCK_TIMESTAMP` | 
| `DATEADD` | Adiciona um time/date intervalo a uma data. | Expressão `INTERVAL` | 
| `CONVERT` | Converte um valor em um formato de dados específico. | `TO_CHAR` | 
| `DATEDIFF` | Retorna a diferença entre duas datas. | `DATE_PART` | 
| `TOP` | Limita o número de linhas em um conjunto de `SELECT` resultados. | `LIMIT/FETCH` | 

** Blocos anônimos**

Uma consulta SQL estruturada é organizada em seções como declaração, executáveis e tratamento de exceções. A tabela a seguir compara as versões do Microsoft SQL Server e PostgreSQL de um bloco anônimo simples. Para blocos anônimos complexos, recomendamos que você chame uma função de banco de dados personalizada em seu aplicativo.


| 
| 
| Microsoft SQL Server | PostgreSQL | 
| --- |--- |
| <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sqlqry = "BEGIN TRAN<br />$sql_qry1 $sql_qry2<br />if @\@error !=0 ROLLBACK<br />TRAN<br />else COMIT TRAN";</pre> | <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sql_qry = " DO \$\$<br />BEGIN<br />$header_sql $content_sql<br />END<br />\$\$";</pre> | 

 

**Outras diferenças**
+ **Inserções de linhas em massa:** o equivalente do PostgreSQL do [utilitário bcp do Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15) é [COPY](https://www.postgresql.org/docs/9.2/sql-copy.html).
+ **Sensibilidade a maiúsculas e minúsculas:** os nomes das colunas diferenciam maiúsculas de minúsculas no PostgreSQL, portanto, é necessário converter os nomes das colunas do SQL Server para letras minúsculas ou maiúsculas. Isso se torna um fator quando você extrai ou compara dados ou coloca nomes de colunas em conjuntos de resultados ou variáveis. O exemplo a seguir identifica colunas nas quais os valores podem ser armazenados em maiúsculas ou minúsculas.

```
my $sql_qry = "SELECT $record_id FROM $exampleTable WHERE LOWER($record_name) = \'failed transaction\'"; 
```
+ **Concatenação: **o SQL Server usa `+` como operador para concatenação de strings, enquanto o PostgreSQL usa `||`.
+ **Validação: **você deve testar e validar consultas e funções SQL em linha antes de usá-las no código do aplicativo para PostgreSQL.
+ **Inclusão da biblioteca ORM:** [você também pode procurar incluir ou substituir a biblioteca de conexão de banco de dados existente por bibliotecas ORM Python, como [SQLAlchemy](https://www.sqlalchemy.org/)PynomoDB.](https://pynamodb.readthedocs.io/en/latest/quickstart.html) Isso ajudará a consultar e manipular facilmente dados de um banco de dados usando um paradigma orientado a objetos.

# Padrões de migração por workload
<a name="migration-migration-patterns-by-workload-pattern-list"></a>

**Topics**
+ [IBM](migration-migration-patterns-by-workload-ibm-pattern-list.md)
+ [Microsoft](migration-migration-patterns-by-workload-microsoft-pattern-list.md)
+ [N/D](migration-migration-patterns-by-workload-notapplicable-pattern-list.md)
+ [Código aberto](migration-migration-patterns-by-workload-open-source-pattern-list.md)
+ [Oracle](migration-migration-patterns-by-workload-oracle-pattern-list.md)
+ [SAP](migration-migration-patterns-by-workload-sap-pattern-list.md)

# IBM
<a name="migration-migration-patterns-by-workload-ibm-pattern-list"></a>

**Topics**
+ [Migre um banco de dados Db2 da Amazon para o EC2 Aurora MySQL compatível usando o AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migre o Db2 for LUW para a Amazon EC2 usando o envio de registros para reduzir o tempo de interrupção](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migre o Db2 for LUW para o Amazon EC2 com recuperação de desastres de alta disponibilidade](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Migre do IBM Db2 na Amazon para o EC2 Aurora compatível com PostgreSQL usando o AWS DMS e o AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)

# Microsoft
<a name="migration-migration-patterns-by-workload-microsoft-pattern-list"></a>

**Topics**
+ [Aceleração da descoberta e da migração de workloads da Microsoft para a AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Altere os aplicativos Python e Perl para oferecer suporte à migração do banco de dados do Microsoft SQL Server para o Amazon Aurora Edição Compatível com PostgreSQL](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)
+ [Crie CloudFormation modelos da AWS para tarefas do AWS DMS usando Microsoft Excel e Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Exportar um banco de dados do Microsoft SQL Server para o Amazon S3 usando o AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Implemente SHA1 o hashing para dados de PII ao migrar do SQL Server para o PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Ingira e migre instâncias EC2 do Windows para uma conta do AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Migrar uma fila de mensagens do Microsoft Azure Service Bus para o Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Migre um banco de dados Microsoft SQL Server da Amazon EC2 para o Amazon DocumentDB usando o AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migre um banco de dados Microsoft SQL Server para o Aurora MySQL usando o AWS DMS e o AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migre uma aplicação .NET do Microsoft Azure App Service para o AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando servidores vinculados](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Saiba como migrar um banco de dados Microsoft SQL Server on-premises para o Amazon RDS para SQL Server utilizando backup e restauração nativos.](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Migrar um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift utilizando o AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Migre um banco de dados Microsoft SQL Server on-premises para o Amazon Redshift usando agentes de extração de dados da AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Migre um banco de dados local do Microsoft SQL Server para o Microsoft SQL Server na Amazon executando Linux EC2](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Migre dados do Microsoft Azure Blob para o Amazon S3 usando o Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migre aplicativos hospedados no IIS para a Amazon EC2 usando o appcmd.exe](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Migre um banco de dados local do Microsoft SQL Server para a Amazon EC2 usando o Application Migration Service](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migrar certificados SSL do Windows para um Application Load Balancer usando o ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Redefinir a hospedagem de workloads on-premises na Nuvem AWS: lista de verificação de migração](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Resolva erros de conexão após migrar o Microsoft SQL Server para a Nuvem AWS](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.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)

# N/D
<a name="migration-migration-patterns-by-workload-notapplicable-pattern-list"></a>

**Topics**
+ [Crie um processo de aprovação para solicitações de firewall durante uma migração de rehospedagem para AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)

# Código aberto
<a name="migration-migration-patterns-by-workload-open-source-pattern-list"></a>

**Topics**
+ [Crie usuários e funções do aplicativo no Aurora compatível com PostgreSQL](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Migre o Amazon RDS for Oracle para o Amazon AWS SCT RDS for PostgreSQL com e usando e AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Migre um banco de dados MariaDB on-premises para o Amazon RDS para MariaDB usando ferramentas nativas](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Migrar um banco de dados MySQL on-premises para o Amazon RDS para MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Migrar um banco de dados MySQL on-premises para o Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Migrar um banco de dados PostgreSQL on-premises para o Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Migrar um banco de dados do Couchbase Server para a Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Migre do PostgreSQL na Amazon para o EC2 Amazon RDS for PostgreSQL usando pglogical](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Migrar aplicações Java on-premises para a AWS usando o App2Container da AWS](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migre bancos de dados MySQL locais para o Aurora MySQL usando XtraBackup Percona, Amazon EFS e Amazon S3](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migre tabelas externas da Oracle para a compatibilidade com o Amazon Aurora PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Reinicie o AWS Replication Agent automaticamente sem desativá-lo SELinux após a reinicialização de um servidor de origem RHEL](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Transporte bancos de dados PostgreSQL entre duas instâncias de banco de dados Amazon RDS usando pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)

# Oracle
<a name="migration-migration-patterns-by-workload-oracle-pattern-list"></a>

**Topics**
+ [Converter VARCHAR2 (1) tipo de dados para Oracle para tipo de dados booleano para Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Emule o Oracle DR usando um banco de dados global Aurora compatível com PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Migre incrementalmente do Amazon RDS para Oracle para o Amazon RDS para PostgreSQL usando o Oracle SQL Developer e o AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Faça o upload de arquivos BLOB em TEXT usando a codificação de arquivos no Aurora PostgreSQL-Compatible](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Migre o Amazon RDS para Oracle para o Amazon RDS para PostgreSQL no modo SSL usando o AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migre um banco de dados Amazon RDS for Oracle para Conta da AWS outro Região da AWS e AWS DMS use-o para replicação contínua](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Migre um banco de dados Oracle local para a Amazon EC2 usando o Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Migre um banco de dados Oracle local para o Amazon OpenSearch Service usando o Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Migre um banco de dados Oracle on-premises para o Amazon RDS para MySQL, usando o AWS DMS e o AWS SCT.](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando o Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Migrar um banco de dados Oracle on-premises para o Amazon RDS para PostgreSQL usando um Oracle bystander e o AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Migre um banco de dados Oracle local para o Oracle na Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for MariaDB usando o AWS DMS e o AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migre um banco de dados Oracle da Amazon EC2 para o Amazon RDS for Oracle usando o AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migre um banco de dados Oracle para o Amazon RDS for Oracle usando adaptadores de arquivo simples GoldenGate Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migre um banco de dados Oracle para o Amazon Redshift usando o AWS DMS e o AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrar um banco de dados Oracle para o Aurora PostgreSQL usando AWS DMS e AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migre um banco de dados Oracle JD Edwards EnterpriseOne para a AWS usando o Oracle Data Pump e o AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migre uma tabela particionada do Oracle para o PostgreSQL usando o AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migre um PeopleSoft banco de dados Oracle para a AWS usando o AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Migrar dados de um banco de dados Oracle on-premises para o Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Migre do Amazon RDS para Oracle para o Amazon RDS para MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Migre do Oracle 8i ou 9i para o Amazon RDS para PostgreSQL usando visões materializadas e o AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Migre do Oracle 8i ou 9i para o Amazon RDS for PostgreSQL usando o AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migre do banco de dados Oracle para o Amazon RDS for PostgreSQL usando o Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Migre da Oracle no Amazon EC2 para o Amazon RDS para MySQL usando o AWS DMS e o AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migre do Oracle WebLogic para o Apache Tomcat (TomEE) no Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migre índices baseados em funções do Oracle para o PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migre aplicativos legados do Oracle Pro\$1C para o ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migrar valores do Oracle CLOB para linhas individuais no PostgreSQL na AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migre códigos de erro do banco de dados Oracle para um banco de dados compatível com Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migre funções nativas do Oracle para o PostgreSQL usando extensões](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migre o Oracle PeopleSoft para o Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migre a funcionalidade Oracle ROWID para o PostgreSQL na AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrar os pacotes de pragma Oracle SERIALLY\$1REUSABLE para o PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migre colunas geradas virtualmente do Oracle para o PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Configure a funcionalidade Oracle UTL\$1FILE no Aurora compatível com PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Valide objetos de banco de dados após migrar do Oracle para o Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# SAP
<a name="migration-migration-patterns-by-workload-sap-pattern-list"></a>

**Topics**
+ [Migre do SAP ASE para o Amazon RDS para SQL Server usando o AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migre o SAP ASE na Amazon EC2 para o Amazon Aurora compatível com PostgreSQL usando o AWS SCT e o AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)

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

**Topics**
+ [Acesse Serviços da AWS a partir da IBM z/OS instalando o AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Avaliar o desempenho das consultas para migrar bancos de dados do SQL Server para o MongoDB Atlas na AWS](assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws.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 tarefas de banco de dados no SQL Server Express no Amazon EC2 AWS Lambda usando um Agendador de Tarefas](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Crie um visualizador avançado de arquivos de mainframe na Nuvem AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Conecte-se ao ambiente de gerenciamento e dados do Application Migration Service em uma rede privada](connect-to-application-migration-service-data-and-control-planes-over-a-private-network.md)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converta consultas JSON Oracle em SQL do banco de dados PostgreSQL](convert-json-oracle-queries-into-postgresql-database-sql.md)
+ [Converta o atributo temporal Teradata NORMALIZE em Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Converter o atributo Teradata RESET WHEN para Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Copie tabelas do Amazon DynamoDB entre contas usando AWS Backup](copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.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)
+ [Implante aplicativos de várias pilhas usando o AWS CDK com TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.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)
+ [Emule matrizes PL/SQL associativas Oracle no Amazon Aurora PostgreSQL e no Amazon RDS for PostgreSQL](emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql.md)
+ [Estime o tamanho do mecanismo Amazon RDS para um banco de dados Oracle usando relatórios AWR](estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.md)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Manipule blocos anônimos em instruções de SQL dinâmico no Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Identificação automática de imagens de contêineres duplicadas ao migrar para um repositório do Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Configure um cluster de failover do Microsoft SQL Server no Amazon EC2 FSx usando for Windows File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Migração de workloads do Apache Cassandra para o Amazon Keyspaces usando o AWS Glue](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Migre suas cargas de trabalho de contêiner do Azure Red Hat OpenShift (ARO) para Serviço Red Hat OpenShift na AWS (ROSA)](migrate-container-workloads-from-aro-to-rosa.md)
+ [Migre do Oracle 8i ou 9i para o Amazon RDS for Oracle usando o AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.md)
+ [Migre o grupo de disponibilidade Always On do Microsoft SQL Server usando AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.md)
+ [Migre funções e procedimentos do Oracle que tenham mais de 100 argumentos para o PostgreSQL](migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql.md)
+ [Migre o SAP HANA para a AWS usando o SAP HSR com o mesmo nome de host](migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.md)
+ [Migre o SQL Server para a AWS usando grupos de disponibilidade distribuídos](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modifique os cabeçalhos HTTP ao migrar de F5 para um Application Load Balancer na AWS](modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws.md)
+ [Gerenciamento do failover multi-AZ para clusters do EMR usando o Controlador de Recuperação de Aplicações](multi-az-failover-spark-emr-clusters-arc.md)
+ [Análise das dependências de objetos em migrações parciais de banco de dados da Oracle para o PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Configure um CI/CD pipeline para migração de banco de dados usando o Terraform](set-up-ci-cd-pipeline-for-db-migration-with-terraform.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)
+ [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)
+ [Transfira z/OS dados do Db2 em grande escala para o Amazon S3 em arquivos CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform](transform-easytrieve-modern-languages.md)

# Modernização
<a name="modernization-pattern-list"></a>

**Topics**
+ [Arquivar automaticamente itens no Amazon S3 usando o DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Crie uma arquitetura sem servidor multilocatário no Amazon Service OpenSearch](build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.md)
+ [Implante aplicativos de várias pilhas usando o AWS CDK com TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Automatize a implantação de aplicativos aninhados usando o AWS SAM](automate-deployment-of-nested-applications-using-aws-sam.md)
+ [Implemente o isolamento de inquilinos de SaaS para o Amazon S3 usando uma máquina de venda automática de tokens AWS Lambda](implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.md)
+ [Implementar o padrão de saga com tecnologia sem servidor usando o AWS Step Functions](implement-the-serverless-saga-pattern-by-using-aws-step-functions.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)
+ [Modernize aplicativos ASP.NET Web Forms na AWS](modernize-asp-net-web-forms-applications-on-aws.md)
+ [Integração de locatários na arquitetura de SaaS para o modelo de silo usando C\$1 e o AWS CDK](tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.md)
+ [Decomponha monólitos em microsserviços usando o CQRS e o fornecimento de eventos](decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.md)
+ [Mais padrões](modernization-more-patterns-pattern-list.md)

# Arquivar automaticamente itens no Amazon S3 usando o DynamoDB TTL
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl"></a>

*Tabby Ward, Amazon Web Services*

## Resumo
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-summary"></a>

Este padrão fornece etapas para remover dados antigos de uma tabela do Amazon DynamoDB e arquivá-los em um bucket do Amazon Simple Storage Service (Amazon S3) no Amazon Web Services (AWS) sem precisar gerenciar uma frota de servidores. 

Este padrão usa a configuração de vida útil (TTL) do Amazon DynamoDB para excluir automaticamente itens antigos e o Amazon DynamoDB Streams para capturar itens com TTL expirado. Ele então conecta o DynamoDB Streams ao AWS Lambda, que executa o código sem provisionar ou gerenciar nenhum servidor. 

Quando novos itens são adicionados ao fluxo do DynamoDB, a função do Lambda é inicializada e grava os dados em um fluxo de entrega do Amazon Data Firehose. O Firehose fornece uma solução simples e totalmente gerenciada para carregar os dados como um arquivo no Amazon S3.

O DynamoDB é frequentemente usado para armazenar dados de séries temporais, como dados de fluxo de cliques em páginas da Web ou dados da Internet das Coisas (IoT) de sensores e dispositivos conectados. Em vez de excluir itens acessados com menos frequência, muitos clientes desejam arquivá-los para fins de auditoria. O TTL simplifica esse arquivamento excluindo automaticamente os itens com base no atributo timestamp. 

Os itens excluídos pelo TTL podem ser identificados no DynamoDB Streams, que captura uma sequência em ordem temporal de modificações em nível de item e armazena a sequência em um log por até 24 horas. Esses dados podem ser consumidos por uma função do Lambda e arquivados em um bucket do Amazon S3 para reduzir o custo de armazenamento. [Para reduzir ainda mais os custos, as [regras de ciclo de vida do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) podem ser criadas para fazer a transição automática dos dados (assim que forem criados) para as classes de armazenamento de menor custo.](https://aws.amazon.com/s3/storage-classes/)

## Pré-requisitos e limitações
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ [AWS Command Line Interface (AWS CLI) 1.7 ou mais recente](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), instalada e configurada em macOS, Linux ou Windows.
+ [Python 3.7](https://www.python.org/downloads/release/python-370/) ou mais recente.
+ [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html), instalado e configurado. Se o Boto3 ainda não estiver instalado, execute o comando `python -m pip install boto3` para instalá-lo.

## Arquitetura
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-architecture"></a>

**Pilha de tecnologia**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Amazon Data Firehose
+ AWS Lambda
+ Amazon S3

![\[Processo em quatro etapas do DynamoDB para o bucket do S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9dbc833f-cf3c-4574-8f09-d0b81134fe41/images/50d9da65-5398-4a99-bc8f-58afc80e9d7b.png)


1. Os itens são excluídos pelo TTL.

1. O trigger do DynamoDB Streams invoca a função de processador de fluxo do Lambda.

1. A função do Lambda insere registros no fluxo de entrega do Firehose em formato de lote.

1. Os registros de dados são arquivados no bucket do S3.

## Ferramentas
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-tools"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html): o AWS Command Line Interface (AWS CLI) é uma ferramenta unificada para gerenciar os serviços da AWS.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html): o Amazon DynamoDB é um banco de dados de documentos e de chave-valor e documentos que oferece desempenho de um dígito em milissegundos em qualquer escala.
+ [Vida útil (TTL) do Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html): o Amazon DynamoDB ajuda a definir uma marca de hora por item para determinar quando um item não é mais necessário.
+ [Amazon DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Types_Amazon_DynamoDB_Streams.html): o Amazon DynamoDB Streams captura uma sequência em ordem temporal de modificações em nível de item em qualquer tabela do DynamoDB e armazena essas informações em um log por até 24 horas.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html): o Amazon Data Firehose é a maneira mais fácil de carregar dados de streaming com confiabilidade em data lakes, repositórios de dados e serviços de analytics.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): o AWS Lambda executa código sem a necessidade de provisionar ou gerenciar servidores. É cobrado apenas o tempo de computação consumido.
+ [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 que oferece escalabilidade líder do setor, disponibilidade de dados, segurança e performance.

**Código **

O código desse padrão está disponível no GitHub [Arquivamento de itens no S3 usando o repositório TTL do DynamoDB](https://github.com/aws-samples/automatically-archive-items-to-s3-using-dynamodb-ttl).

## Épicos
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-epics"></a>

### Configure uma tabela do DynamoDB, TTL e um DynamoDB Streams
<a name="set-up-a-dynamodb-table-ttl-and-a-dynamodb-stream"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tabela do DynamoDB. | Use a AWS CLI para criar uma tabela no DynamoDB chamada `Reservation`. Escolha a unidade de capacidade de leitura aleatória (random read capacity unit, RCU) e a unidade de capacidade de gravação (write capacity unit, WCU) e atribua à sua tabela dois atributos: `ReservationID` e `ReservationDate`. <pre>aws dynamodb create-table \<br />--table-name Reservation \<br />--attribute-definitions AttributeName=ReservationID,AttributeType=S AttributeName=ReservationDate,AttributeType=N \<br />--key-schema AttributeName=ReservationID,KeyType=HASH AttributeName=ReservationDate,KeyType=RANGE \<br />--provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=100 </pre>`ReservationDate` é um timestamp de época que será usado para ativar o TTL. | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Ative o TTL do DynamoDB | Use a AWS CLI para ativar o TTL do DynamoDB para o atributo `ReservationDate`.<pre>aws dynamodb update-time-to-live \<br />--table-name Reservation\<br />  --time-to-live-specification Enabled=true,AttributeName=ReservationDate</pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Ative um DynamoDB Streams. | Use a AWS CLI para ativar um DynamoDB Streams para a tabela `Reservation` usando o tipo de fluxo `NEW_AND_OLD_IMAGES`. <pre>aws dynamodb update-table \<br />--table-name Reservation \<br />  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES</pre>Esse fluxo conterá registros de novos itens, itens atualizados, itens excluídos e itens excluídos pelo TTL. Os registros dos itens excluídos pelo TTL contêm um atributo de metadados adicional para diferenciá-los dos itens que foram excluídos manualmente. O campo `userIdentity` para exclusões de TTL indica que o serviço do DynamoDB executou a ação de exclusão. Nesse padrão, somente os itens excluídos pelo TTL são arquivados, mas você pode arquivar somente os registros onde `eventName` é `REMOVE` e `userIdentity` contém `principalId` igual a `dynamodb.amazonaws.com`. | Arquiteto de nuvem, desenvolvedor de aplicativos | 

### Criação e configuração de um bucket do S3
<a name="create-and-configure-an-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Use a AWS CLI para criar um bucket S3 de destino na sua região da AWS, `us-east-1` substituindo-o pela sua região e amzn-s3- demo-destination-bucket pelo nome do seu bucket. <pre>aws s3api create-bucket \<br />--bucket amzn-s3-demo-destination-bucket \<br />--region us-east-1</pre>Certifique-se de que o nome do seu bucket do S3 seja globalmente exclusivo, pois o namespace é compartilhado por todas as contas da AWS. | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Crie uma política de ciclo de vida de 30 dias para o bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.html) | Arquiteto de nuvem, desenvolvedor de aplicativos | 

### Criação de um fluxo de entrega do Firehose
<a name="create-a-akf-delivery-stream"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie e configure um fluxo de entrega do Firehose. | Baixe e edite o exemplo de `CreateFireHoseToS3.py` código do GitHub repositório. Este código está escrito em Python e mostra como criar um fluxo de entrega do Firehose e um perfil do AWS Identity and Access Management (IAM). O perfil do IAM terá uma política que pode ser usada pelo Firehose para gravar no bucket do S3 de destino.Para executar o script, use o comando abaixo e os seguintes argumentos da linha de comando.Argumento 1=`<Your_S3_bucket_ARN>`, que é o nome do recurso da Amazon (ARN) do bucket criado anteriormenteArgumento 2 = o nome do seu Firehose (este teste experimental está usando `firehose_to_s3_stream`.)Argumento 3= nome do seu perfil do IAM (este piloto está usando`firehose_to_s3`.)<pre>python CreateFireHoseToS3.py <Your_S3_Bucket_ARN> firehose_to_s3_stream firehose_to_s3</pre>Se o perfil do IAM especificado não existir, o script criará um perfil assumido com uma política de relacionamento confiável, bem como uma política que conceda permissão suficiente ao Amazon S3. Para obter exemplos dessas políticas, consulte a seção *Informações adicionais*. | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Verifique o fluxo de entrega do Firehose. | Descreva o fluxo de entrega do Firehose usando a AWS CLI para verificar se o fluxo de entrega foi criado com êxito.<pre>aws firehose describe-delivery-stream --delivery-stream-name firehose_to_s3_stream </pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 

### Criação de uma função do Lambda para processar o fluxo de entrega do Firehose
<a name="create-a-lambda-function-to-process-the-akf-delivery-stream"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política de confiança para a função do Lambda. | Crie um arquivo da política de confiança com as seguintes informações.<pre> {<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />      {<br />          "Effect": "Allow",<br />          "Principal": {<br />              "Service": "lambda.amazonaws.com"<br />           },<br />           "Action": "sts:AssumeRole"<br />      }<br />    ]<br />  } </pre>Isso dá ao seu perfil permissão para acessar recursos da AWS. | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Crie um perfil de execução para a função do Lambda | Para criar o perfil de execução, execute o seguinte código.<pre>aws iam create-role --role-name lambda-ex --assume-role-policy-document file://TrustPolicy.json</pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Adicione permissões ao perfil. | Para adicionar permissão para o perfil, use o comando `attach-policy-to-role`.<pre>aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/AmazonKinesisFirehoseFullAccess<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/IAMFullAccess </pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Crie uma função do Lambda. | Comprima o arquivo `LambdaStreamProcessor.py` do repositório de código executando o comando a seguir.<pre>zip function.zip LambdaStreamProcessor.py</pre>Ao criar a função do Lambda, você precisará do ARN do perfil de execução do Lambda. Para obter o ARN, execute o código a seguir.<pre>aws iam get-role \<br />--role-name lambda-ex </pre>Para criar a função do Lambda, execute o seguinte código.<pre># Review the environment variables and replace them with your values.<br /><br />aws lambda create-function --function-name LambdaStreamProcessor \<br />--zip-file fileb://function.zip --handler LambdaStreamProcessor.handler --runtime python3.8 \<br />--role {Your Lamda Execution Role ARN}\<br />  --environment Variables="{firehose_name=firehose_to_s3_stream,bucket_arn = <Your_S3_bucket_ARN>,iam_role_name = firehose_to_s3, batch_size=400}"</pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Configure o trigger da função do Lambda. | Use a AWS CLI para configurar o trigger (DynamoDB Streams), que invoca a função do Lambda. O tamanho do lote ser de 400 é para evitar problemas de simultaneidade do Lambda.<pre>aws lambda create-event-source-mapping --function-name LambdaStreamProcessor \<br />--batch-size 400 --starting-position LATEST \<br />--event-source-arn <Your Latest Stream ARN From DynamoDB Console></pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 

### Teste a funcionalidade
<a name="test-the-functionality"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione itens com timestamps expirados à tabela de reservas. | Para testar a funcionalidade, adicione itens com timestamps de época expirados à tabela `Reservation`. O TTL excluirá automaticamente os itens com base no timestamp. A função do Lambda é inicializada nas atividades do DynamoDB Stream e filtra o evento para identificar a atividade `REMOVE` ou itens excluídos. Em seguida, a função insere os registros no fluxo de entrega do Firehose em formato de lote.O fluxo de entrega do Firehose transfere os itens para um bucket do S3 de destino com o prefixo `firehosetos3example/year=current year/month=current month/ day=current day/hour=current hour/`.Para otimizar a recuperação de dados, configure o Amazon S3 com `Prefix` e o `ErrorOutputPrefix`, conforme detalhado na seção *Informações adicionais*. | Arquiteto de nuvem  | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Excluir todos os recursos. | Excluir todos os recursos para garantir que não será cobrado por nenhum serviço que não esteja usando.   | Arquiteto de nuvem, desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-resources"></a>
+ [Gerenciando seu ciclo de vida de armazenamento](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)
+ [Classes de armazenamento do Amazon S3](https://aws.amazon.com/s3/storage-classes/)
+ [AWS SDK para Python (Boto3) documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) 

## Mais informações
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-additional"></a>

**Criação e configuração de um fluxo de entrega do Firehose: exemplos de políticas**

*Documento de exemplo de política de relacionamento confiável do Firehose*

```
firehose_assume_role = {
        'Version': '2012-10-17',
        'Statement': [
            {
                'Sid': '',
                'Effect': 'Allow',
                'Principal': {
                    'Service': 'firehose.amazonaws.com'
                },
                'Action': 'sts:AssumeRole'
            }
        ]
    }
```

*Exemplo de política de permissões do S3*

```
s3_access = {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                ],
                "Resource": [
                    "{your s3_bucket ARN}/*",
                    "{Your s3 bucket ARN}"
                ]
            }
        ]
    }
```

**Teste a funcionalidade — configuração do Amazon S3**

A configuração do Amazon S3 com os seguintes `Prefix` e `ErrorOutputPrefix` é escolhida para otimizar a recuperação de dados. 

*prefix*

```
firehosetos3example/year=! {timestamp: yyyy}/month=! {timestamp:MM}/day=! {timestamp:dd}/hour=!{timestamp:HH}/
```

Primeiro, o Firehose cria uma pasta base denominada `firehosetos3example` diretamente no bucket do S3. Em seguida, ele avalia as expressões `!{timestamp:yyyy}``!{timestamp:MM}`,`!{timestamp:dd}`,, e `!{timestamp:HH}` para ano, mês, dia e hora usando o [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)formato Java.

Por exemplo, um timestamp de chegada aproximado de 1604683577 no Unix epoch time avaliado como `year=2020`, `month=11`, `day=06` e `hour=05`. Portanto, a localização no Amazon S3, onde os registros de dados são entregues, é avaliada como `firehosetos3example/year=2020/month=11/day=06/hour=05/`.

*ErrorOutputPrefix*

```
firehosetos3erroroutputbase/!{firehose:random-string}/!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}/
```

Os resultados `ErrorOutputPrefix` em uma pasta base chamada `firehosetos3erroroutputbase` diretamente abaixo do bucket do S3. A expressão `!{firehose:random-string}` é avaliada como uma string aleatória de 11 caracteres, como `ztWxkdg3Thg`. A localização de um objeto do Amazon S3 onde os registros com falha são entregues pode ser avaliada como `firehosetos3erroroutputbase/ztWxkdg3Thg/processing-failed/2020/11/06/`.

# Crie uma arquitetura sem servidor multilocatário no Amazon Service OpenSearch
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service"></a>

*Tabby Ward e Nisha Gambhir, Amazon Web Services*

## Resumo
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-summary"></a>

O Amazon OpenSearch Service é um serviço gerenciado que facilita a implantação, a operação e a escalabilidade do Elasticsearch, que é um popular mecanismo de pesquisa e análise de código aberto. OpenSearch O serviço fornece pesquisa de texto livre, bem como ingestão e painéis quase em tempo real para streaming de dados, como registros e métricas. 

Os provedores de software como serviço (SaaS) costumam usar o OpenSearch Serviço para lidar com uma ampla variedade de casos de uso, como obter informações sobre os clientes de forma escalável e segura, ao mesmo tempo em que reduzem a complexidade e o tempo de inatividade.

Usar o OpenSearch serviço em um ambiente multilocatário introduz uma série de considerações que afetam o particionamento, o isolamento, a implantação e o gerenciamento de sua solução SaaS. Os provedores de SaaS precisam considerar como escalar efetivamente seus clusters do Elasticsearch com workloads em constante mudança. Eles também precisam considerar como a hierarquização e as condições ruidosas dos vizinhos podem afetar seu modelo de particionamento.

Esse padrão analisa os modelos usados para representar e isolar dados de inquilinos com estruturas do Elasticsearch. Além disso, o padrão se concentra em uma arquitetura de referência simples sem servidor como exemplo para demonstrar a indexação e a pesquisa usando o OpenSearch Service em um ambiente multilocatário. Ele implementa o modelo de particionamento de dados do pool, que compartilha o mesmo índice entre todos os inquilinos, e mantém o isolamento dos dados do inquilino. Esse padrão usa os seguintes AWS serviços: Amazon API Gateway AWS Lambda, Amazon Simple Storage Service (Amazon S3) e Service. OpenSearch 

Para obter mais informações sobre o modelo de pool e outros modelos de particionamento de dados, consulte a seção [Informações adicionais](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional).

## Pré-requisitos e limitações
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ [AWS Command Line Interface (AWS CLI) versão 2.x](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html), instalada e configurada no macOS, Linux ou Windows
+ [Python versão 3.9](https://www.python.org/downloads/release/python-3921/)
+ [pip3](https://pip.pypa.io/en/stable/): o código-fonte do Python é fornecido como um arquivo .zip para ser implantado em uma função do Lambda. Se você quiser usar o código localmente ou personalizá-lo, siga estas etapas para desenvolver e recompilar o código-fonte:

  1. Gere o `requirements.txt` arquivo executando o seguinte comando no mesmo diretório dos scripts do Python: `pip3 freeze > requirements.txt`

  1. Instale as dependências: `pip3 install -r requirements.txt`

**Limitações**
+ Esse código é executado em Python e atualmente não oferece suporte a outras linguagens de programação. 
+ O aplicativo de amostra não inclui suporte AWS entre regiões ou recuperação de desastres (DR). 
+ Este padrão é apenas para fins de demonstração. Não se destina a ser usado em ambientes de produção.

## Arquitetura
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-architecture"></a>

O diagrama a seguir ilustra a arquitetura de alto nível de arquitetura deste padrão. A arquitetura inclui o seguinte:
+ Lambda para indexar e consultar o conteúdo 
+ OpenSearch Serviço para realizar pesquisas 
+ API Gateway para fornecer uma interação de API com o usuário
+ Amazon S3 para armazenar dados brutos (não indexados)
+ Amazon CloudWatch monitorará registros
+ AWS Identity and Access Management (IAM) para criar funções e políticas de inquilinos

![\[Arquitetura multilocatário com tecnologia sem servidor de alto nível.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/1a8501e7-0776-4aca-aed3-28e3ada1d15d.png)


**Automação e escala**

Para simplificar, o padrão é usado AWS CLI para provisionar a infraestrutura e implantar o código de amostra. Você pode criar um CloudFormation modelo ou AWS Cloud Development Kit (AWS CDK) scripts para automatizar o padrão.

## Ferramentas
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-tools"></a>

**Serviços da AWS**
+ [AWS CLI](https://aws.amazon.com/cli/)é uma ferramenta unificada para gerenciamento Serviços da AWS e recursos usando comandos em seu shell de linha de comando.
+ O [Lambda](https://aws.amazon.com/lambda/) é um serviço de computação que permite a você executar o 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.
+ O [API Gateway](https://aws.amazon.com/api-gateway/) serve AWS service (Serviço da AWS) para criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+ O [Amazon S3](https://aws.amazon.com/s3/) é um serviço de armazenamento de objetos que permite armazenar e recuperar qualquer quantidade de informações a qualquer momento, de qualquer lugar na web.
+ OpenSearch O [Service](https://aws.amazon.com/opensearch-service/) é um serviço totalmente gerenciado que facilita a implantação, a proteção e a execução do Elasticsearch de maneira econômica e em grande escala.

**Código **

O anexo fornece arquivos de amostra para esse padrão. Isso inclui:
+ `index_lambda_package.zip`— A função Lambda para indexar dados no OpenSearch Service usando o modelo de pool.
+ `search_lambda_package.zip`— A função Lambda para pesquisar dados no OpenSearch Service.
+ `Tenant-1-data`: amostra de dados brutos (não indexados) para o Tenant-1.
+ `Tenant-2-data`: amostra de dados brutos (não indexados) para o Tenant-2.

**Importante**  
As histórias desse padrão incluem exemplos de AWS CLI comandos formatados para Unix, Linux e macOS. Para Windows, substitua o caractere de continuação Unix de barra invertida (\$1) no final de cada linha por um circunflexo (^).

**nota**  
Nos AWS CLI comandos, substitua todos os valores dentro dos colchetes angulares (<>) pelos valores corretos.

## Épicos
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-epics"></a>

### Criação e configuração de um bucket do S3
<a name="create-and-configure-an-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Crie um bucket S3 no seu Região da AWS. Esse bucket conterá os dados não indexados do inquilino para o aplicativo de amostra. Certifique-se de que o nome do bucket do S3 seja globalmente exclusivo, pois o namespace é compartilhado por todos. Contas da AWSPara criar um bucket do S3, você pode usar o comando AWS CLI [create-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html) da seguinte forma:<pre>aws s3api create-bucket \<br />  --bucket <tenantrawdata> \<br />  --region <your-AWS-Region></pre>onde `tenantrawdata` é o nome do bucket do S3. (Você pode usar qualquer nome exclusivo que siga [as diretrizes de nomenclatura do bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).) | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar um cluster Elasticsearch
<a name="create-and-configure-an-elasticsearch-cluster"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio OpenSearch de serviço. | Execute o AWS CLI [create-elasticsearch-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/es/create-elasticsearch-domain.html)comando para criar um domínio OpenSearch de serviço:<pre>aws es create-elasticsearch-domain \<br />  --domain-name vpc-cli-example \<br />  --elasticsearch-version 7.10 \<br />  --elasticsearch-cluster-config InstanceType=t3.medium.elasticsearch,InstanceCount=1 \<br />  --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=10 \<br />  --domain-endpoint-options "{\"EnforceHTTPS\": true}" \<br />  --encryption-at-rest-options "{\"Enabled\": true}" \<br />  --node-to-node-encryption-options "{\"Enabled\": true}" \<br />  --advanced-security-options "{\"Enabled\": true, \"InternalUserDatabaseEnabled\": true, \<br />    \"MasterUserOptions\": {\"MasterUserName\": \"KibanaUser\", \<br />    \"MasterUserPassword\": \"NewKibanaPassword@123\"}}" \<br />  --vpc-options "{\"SubnetIds\": [\"<subnet-id>\"], \"SecurityGroupIds\": [\"<sg-id>\"]}" \<br />  --access-policies "{\"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \ <br />    \"Principal\": {\"AWS\": \"*\" }, \"Action\":\"es:*\", \<br />    \"Resource\": \"arn:aws:es:<region>:<account-id>:domain\/vpc-cli-example\/*\" } ] }"</pre>A contagem de instâncias é definida como 1 porque o domínio é para fins de teste. Você precisa ativar o controle de acesso refinado usando o `advanced-security-options` parâmetro, pois os detalhes não podem ser alterados após a criação do domínio. Esse comando cria um nome de usuário principal (`KibanaUser`) e uma senha que você usará para fazer login no console do Kibana.Como o domínio faz parte de uma nuvem privada virtual (VPC), você precisa garantir que possa acessar a instância do Elasticsearch especificando a política de acesso a ser usada.Para obter mais informações, consulte [Lançamento de seus domínios do Amazon OpenSearch Service em uma VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html) na AWS documentação. | Arquiteto de nuvem, administrador de nuvem | 
| Configurar um bastion host. | Configure uma instância Windows da Amazon Elastic Compute Cloud (Amazon EC2) como bastion host para acessar o console Kibana. O grupo de segurança do Elasticsearch deve permitir o tráfego do grupo de EC2 segurança da Amazon. Para obter instruções, consulte a postagem do blog [Como controlar o acesso à rede às EC2 instâncias usando um servidor Bastion.](https://aws.amazon.com/blogs/security/controlling-network-access-to-ec2-instances-using-a-bastion-server/)Quando o bastion host tiver sido configurado e você tiver o grupo de segurança associado à instância disponível, use o AWS CLI [authorize-security-group-ingress](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/authorize-security-group-ingress.html)comando para adicionar permissão ao grupo de segurança do Elasticsearch para permitir a porta 443 do grupo de segurança Amazon EC2 (bastion host).<pre>aws ec2 authorize-security-group-ingress \<br />  --group-id <SecurityGroupIdfElasticSearch> \ <br />  --protocol tcp \<br />  --port 443 \<br />  --source-group <SecurityGroupIdfBashionHostEC2></pre> | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar a função do Lambda de índice
<a name="create-and-configure-the-lam-index-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o perfil de execução do Lambda | Execute o comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) para conceder acesso e recursos à função de índice Lambda: Serviços da AWS <pre>aws iam create-role \<br />  --role-name index-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>onde `lambda_assume_role.json` é um documento JSON que concede permissões `AssumeRole` para a função do Lambda, da seguinte forma:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Anexe as políticas gerenciadas à função do Lambda. | Execute o AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando para anexar políticas gerenciadas à função criada na etapa anterior. Essas duas políticas dão à função permissões para criar uma interface de rede elástica e gravar CloudWatch registros em Logs.<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Arquiteto de nuvem, administrador de nuvem | 
| Criar uma política para dar permissão à função de índice Lambda para ler os objetos do S3. | Execute o comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) para dar `s3:GetObject` permissão à função de índice Lambda para ler os objetos no bucket do S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3-policy.json</pre>O arquivo `s3-policy.json` é um documento JSON mostrado abaixo que concede permissões `s3:GetObject` para conceder o acesso de leitura aos objetos do S3. Se você usou um nome diferente ao criar o bucket do S3, forneça o nome correto do bucket na seção `Resource `:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />           "Effect": "Allow",<br />           "Action": "s3:GetObject",<br />           "Resource": "arn:aws:s3:::<tenantrawdata>/*"<br />        }<br />    ]<br />}</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Anexar a política de permissões do Amazon S3 ao perfil de execução do Lambda. | Execute o AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando para anexar a política de permissão do Amazon S3 que você criou na etapa anterior à função de execução do Lambda:<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn <PolicyARN></pre>onde `PolicyARN` é o nome de recurso da nome do recurso da Amazon (ARN) da política de permissões do Amazon S3. É possível obter esse valor na saída do comando anterior. | Arquiteto de nuvem, administrador de nuvem | 
| Criar a função do Lambda de índice. | Execute o comando AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) para criar a função de índice Lambda, que acessará o Service: OpenSearch <pre>aws lambda create-function \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip \<br />  --handler lambda_index.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/index-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Permitir que o Amazon S3 chame a função de índice Lambda. | Execute o comando AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) para dar ao Amazon S3 a permissão de chamar a função de índice Lambda:<pre>aws lambda add-permission \<br />  --function-name index-lambda-function \<br />  --statement-id s3-permissions \<br />  --action lambda:InvokeFunction \<br />  --principal s3.amazonaws.com \<br />  --source-arn "arn:aws:s3:::<tenantrawdata>" \<br />  --source-account "<account-id>" </pre> | Arquiteto de nuvem, administrador de nuvem | 
| Adicionar um gatilho Lambda para o evento Amazon S3. | Execute o AWS CLI [put-bucket-notification-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification-configuration.html)comando para enviar notificações para a função de índice do Lambda quando o evento do Amazon `ObjectCreated` S3 for detectado. A função de índice é executada sempre que um objeto é carregado no bucket do S3. <pre>aws s3api put-bucket-notification-configuration \<br />  --bucket <tenantrawdata> \<br />  --notification-configuration file://s3-trigger.json</pre>O arquivo `s3-trigger.json` é um documento JSON na pasta atual que adiciona a política de recursos à função do Lambda quando ocorre o evento Amazon `ObjectCreated` S3. | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar a função do Lambda de pesquisa
<a name="create-and-configure-the-lam-search-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o perfil de execução do Lambda | Execute o comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) para conceder acesso e recursos à função de pesquisa do Lambda: Serviços da AWS <pre>aws iam create-role \<br />  --role-name search-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>onde `lambda_assume_role.json` é um documento JSON na pasta atual que concede `AssumeRole` permissões para a função do Lambda, da seguinte forma:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Anexe as políticas gerenciadas à função do Lambda. | Execute o AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando para anexar políticas gerenciadas à função criada na etapa anterior. Essas duas políticas dão à função permissões para criar uma interface de rede elástica e gravar CloudWatch registros em Logs.<pre>aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Arquiteto de nuvem, administrador de nuvem | 
| Criar a função do Lambda de pesquisa. | Execute o comando AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) para criar a função de pesquisa do Lambda, que acessará o Serviço: OpenSearch <pre>aws lambda create-function \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip \<br />  --handler lambda_search.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/search-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar funções de inquilino
<a name="create-and-configure-tenant-roles"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o perfil do IAM de inquilino. | Execute o comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) para criar duas funções de inquilino que serão usadas para testar a funcionalidade de pesquisa:<pre>aws iam create-role \<br />  --role-name Tenant-1-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre><pre>aws iam create-role \<br />  --role-name Tenant-2-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre>O arquivo `assume-role-policy.json` é um documento JSON na pasta atual que concede `AssumeRole` permissões para o perfil de execução do Lambda:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                 "AWS": "<Lambda execution role for index function>",<br />                 "AWS": "<Lambda execution role for search function>"<br />             },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Criar uma nova política do IAM | Execute o comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) para criar uma política de locatário que conceda acesso às operações do Elasticsearch:<pre>aws iam create-policy \<br />  --policy-name tenant-policy \<br />  --policy-document file://policy.json</pre>O arquivo `policy.json` é um documento JSON na pasta atual que concede permissões no Elasticsearch:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "es:ESHttpDelete",<br />                "es:ESHttpGet",<br />                "es:ESHttpHead",<br />                "es:ESHttpPost",<br />                "es:ESHttpPut",<br />                "es:ESHttpPatch"<br />            ],<br />            "Resource": [<br />                "<ARN of Elasticsearch domain created earlier>"<br />            ]<br />        }<br />    ]<br />}</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Anexar a política do IAM do inquilino às funções do inquilino. | Execute o AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando para anexar a política do IAM do inquilino às duas funções de inquilino que você criou na etapa anterior:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-1-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-2-role</pre>A ARN da política vem da saída na etapa anterior. | Arquiteto de nuvem, administrador de nuvem | 
| Criar uma política do IAM para conceder permissões ao Lambda para assumir a função. | Execute o comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) para criar uma política para que o Lambda assuma a função de locatário:<pre>aws iam create-policy \<br />  --policy-name assume-tenant-role-policy \<br />  --policy-document file://lambda_policy.json</pre>O arquivo `lambda_policy.json` é um documento JSON na pasta atual que concede permissões para o `AssumeRole`:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />       {<br />            "Effect": "Allow",<br />            "Action":  "sts:AssumeRole",<br />            "Resource": "<ARN of tenant role created earlier>"<br />       }<br />    ]<br />}</pre>Pois`Resource`, você pode usar um caractere curinga para evitar a criação de uma nova política para cada inquilino. | Arquiteto de nuvem, administrador de nuvem | 
| Criar uma política do IAM para conceder à função do índice do Lambda a permissão para acessar o Amazon S3. | Execute o comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) para dar permissão à função do índice Lambda para acessar os objetos no bucket do S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3_lambda_policy.json</pre>O arquivo `s3_lambda_policy.json` é o seguinte documento de política JSON na pasta atual:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::tenantrawdata/*"<br />        }<br />    ]<br />}</pre> | Arquiteto de nuvem, administrador de nuvem | 
| Anexar a política a um perfil de execução do Lambda. | Execute o AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando para anexar a política criada na etapa anterior ao índice Lambda e às funções de execução de pesquisa que você criou anteriormente:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name index-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name search-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/s3-permission-policy \<br />  --role-name index-lambda-role</pre>A ARN da política vem da saída na etapa anterior. | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar uma API de pesquisa
<a name="create-and-configure-a-search-api"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma API REST do API Gateway. | Execute o AWS CLI [create-rest-api](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-rest-api.html)comando para criar um recurso da API REST:<pre>aws apigateway create-rest-api \<br />  --name Test-Api \<br />  --endpoint-configuration "{ \"types\": [\"REGIONAL\"] }"</pre>Para o tipo de configuração de endpoint, você pode especificar `EDGE`, em vez de `REGIONAL`, para usar locais da borda, em vez de uma Região da AWS específica.Anote o valor do campo `id` na saída do comando. Esse é o ID da API que você usará nos comandos subsequentes. | Arquiteto de nuvem, administrador de nuvem | 
| Criar um recurso para a API de pesquisa. | O recurso da API de pesquisa inicia a função de pesquisa do Lambda com o nome do recurso. `search` (Você não precisa criar uma API para a função de índice do Lambda, porque ela é executada automaticamente quando os objetos são carregados no bucket do S3.)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arquiteto de nuvem, administrador de nuvem | 
| Criar um método GET para a API de pesquisa. | Execute o comando AWS CLI [put-method](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method.html) para criar um `GET ` método para a API de pesquisa:<pre>aws apigateway put-method \<br />  --rest-api-id <API-ID> \<br />  --resource-id <ID from the previous command output> \<br />  --http-method GET \<br />  --authorization-type "NONE" \<br />  --no-api-key-required</pre>Para`resource-id`, especificar o ID da saída do `create-resource` comando. | Arquiteto de nuvem, administrador de nuvem | 
| Criar um método de resposta para a API de pesquisa. | Execute o AWS CLI [put-method-response](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method-response.html)comando para adicionar uma resposta de método para a API de pesquisa:<pre>aws apigateway put-method-response \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --status-code 200 \<br />  --response-models "{\"application/json\": \"Empty\"}"</pre>Para `resource-id`, especifique o ID da saída do comando `create-resource` anterior. | Arquiteto de nuvem, administrador de nuvem | 
| Configurar uma integração de proxy Lambda para a API de pesquisa. | Execute o comando AWS CLI [put-integration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-integration.html) para configurar uma integração com a função de pesquisa do Lambda:<pre>aws apigateway put-integration \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --type AWS_PROXY \<br />  --integration-http-method GET \<br />  --uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account-id>:function:<function-name>/invocations</pre>Para`resource-id`, especifique o ID do `create-resource` comando anterior. | Arquiteto de nuvem, administrador de nuvem | 
| Conceder permissão para que o API Gateway possa invocar a função do Lambda. | Execute o comando AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) para dar permissão ao API Gateway para usar a função de pesquisa:<pre>aws lambda add-permission \<br />  --function-name <function-name> \<br />  --statement-id apigateway-get \<br />  --action lambda:InvokeFunction \<br />  --principal apigateway.amazonaws.com \<br />  --source-arn "arn:aws:execute-api:<region>:<account-id>:api-id/*/GET/search</pre>Alterar o `source-arn` caminho se você usou um nome de recurso de API diferente em vez de`search`. | Arquiteto de nuvem, administrador de nuvem | 
| Implantar a API de pesquisa. | Execute o comando AWS CLI [create-deployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-deployment.html) para criar um recurso de estágio chamado: `dev`<pre>aws apigateway create-deployment \<br />  --rest-api-id <API-ID> \<br />  --stage-name dev</pre>Se você atualizar a API, poderá usar o mesmo AWS CLI comando para reimplantá-la no mesmo estágio. | Arquiteto de nuvem, administrador de nuvem | 

### Criar e configurar funções do Kibana
<a name="create-and-configure-kibana-roles"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Fazer login no console do Kibana. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arquiteto de nuvem, administrador de nuvem | 
| Criar e configurar perfis do Kibana | Para fornecer isolamento de dados e garantir que um inquilino não possa recuperar os dados de outro inquilino, você precisa usar a segurança de documentos, que permite que os inquilinos acessem somente documentos que contenham sua ID de inquilino.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Arquiteto de nuvem, administrador de nuvem | 
| Mapear usuários para funções. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Recomendamos automatizar a criação das funções de inquilino e Kibana no momento da integração do inquilino. | Arquiteto de nuvem, administrador de nuvem | 
| Criar o índice de dados do inquilino. | No painel de navegação, em **Gerenciamento**, escolha **Dev Tools** e execute o seguinte comando. Esse comando cria o `tenant-data` índice para definir o mapeamento da `TenantId` propriedade.<pre>PUT /tenant-data<br />{<br />  "mappings": {<br />    "properties": {<br />      "TenantId": { "type": "keyword"}<br />    }<br />  }<br />}</pre> | Arquiteto de nuvem, administrador de nuvem | 

### Crie endpoints VPC para o Amazon S3 e AWS STS
<a name="create-vpc-endpoints-for-s3-and-sts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política de endpoint da VPC para o Amazon S3. | Execute o AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)comando para criar um VPC endpoint para o Amazon S3. O endpoint permite que a função de indexação do Lambda na VPC acesse o Amazon S3.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --service-name com.amazonaws.us-east-1.s3 \<br />  --route-table-ids <route-table-ID></pre>Para`vpc-id`, especificar a VPC que você está usando para a função de índice Lambda. Para`service-name`, use a URL correta para o endpoint do Amazon S3. Para`route-table-ids`, especifique a tabela de rotas associada ao endpoint da VPC. | Arquiteto de nuvem, administrador de nuvem | 
| Crie um VPC endpoint para. AWS STS | Execute o AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)comando para criar um VPC endpoint para AWS Security Token Service ().AWS STS O endpoint permite que as funções de indexação e pesquisa do Lambda na VPC acessem o AWS STS. As funções são usadas AWS STS quando assumem a função do IAM.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --vpc-endpoint-type Interface \<br />  --service-name com.amazonaws.us-east-1.sts \<br />  --subnet-id <subnet-ID> \<br />  --security-group-id <security-group-ID></pre>Para`vpc-id`, especificar a VPC que você está usando para a função do Lambda de índice e pesquisa. Para`subnet-id`, fornecer a sub-rede na qual esse endpoint deve ser criado. Para`security-group-id`, especifique o grupo de segurança ao qual associar esse endpoint. (Pode ser o mesmo que o grupo de segurança que o Lambda usa.) | Arquiteto de nuvem, administrador de nuvem | 

### Testar a multilocação e o isolamento de dados
<a name="test-multi-tenancy-and-data-isolation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualizar os arquivos Python para as funções de índice e pesquisa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Você pode obter o endpoint do Elasticsearch na guia **Visão geral do** console de serviços. OpenSearch Ele tem o formato `<AWS-Region>.es.amazonaws.com`. | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Criar o código do Lambda. | Use o AWS CLI [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html)comando para atualizar o código Lambda com as alterações feitas nos arquivos Python:<pre>aws lambda update-function-code \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip<br /><br />aws lambda update-function-code \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip</pre> | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Fazer upload do arquivo de dados brutos em um bucket do S3. | Use o comando AWS CLI [cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) para carregar dados dos objetos Tenant-1 e Tenant-2 no `tenantrawdata` bucket (especifique o nome do bucket S3 que você criou para essa finalidade):<pre>aws s3 cp tenant-1-data s3://tenantrawdata<br />aws s3 cp tenant-2-data s3://tenantrawdata</pre>O bucket do S3 é configurado para executar a função de índice do Lambda sempre que os dados são carregados para que o documento seja indexado no Elasticsearch. | Arquiteto de nuvem, administrador de nuvem | 
| Pesquisar dados no console Kibana. | No console do Kibana, execute a seguinte consulta:<pre>GET tenant-data/_search</pre>Essa consulta exibe todos os documentos indexados no Elasticsearch. Nesse caso, você verá dois documentos separados para o Tenant-1 e o Tenant-2. | Arquiteto de nuvem, administrador de nuvem | 
| Testar a API de pesquisa do API Gateway. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Para ver ilustrações de tela, consulte a seção [Informações adicionais](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional). | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Limpe recursos. | Limpe todos os recursos que você criou para evitar cobranças adicionais em sua conta. | AWS DevOps, arquiteto de nuvem, administrador de nuvem | 

## Recursos relacionados
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-resources"></a>
+ [AWS SDK para Python (Boto)](https://aws.amazon.com/sdk-for-python/)
+ [AWS Lambda documentação](https://docs.aws.amazon.com/lambda/)
+ [Documentação do API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Documentação do Amazon S3](https://docs.aws.amazon.com/s3/)
+ [Documentação OpenSearch do Amazon Service](https://docs.aws.amazon.com/elasticsearch-service/)
  + [Controle de acesso refinado no Amazon Service OpenSearch ](https://docs.amazonaws.cn/en_us/elasticsearch-service/latest/developerguide/fgac.html)
  + [Criação de um aplicativo de pesquisa com o Amazon OpenSearch Service](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/search-example.html)
  + [Lançamento de seus domínios OpenSearch do Amazon Service em uma VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html)

## Mais informações
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional"></a>

**Modelos de particionamento de dados**

Existem três modelos comuns de particionamento de dados usados em sistemas multilocatários: silo, pool e híbrido. O modelo escolhido depende das necessidades de conformidade, vizinhança ruidosa, operações e isolamento do seu ambiente.

*Modelo de silo*

No modelo de silo, os dados de cada inquilino são armazenados em uma área de armazenamento distinta, onde não há mistura de dados do inquilino. Você pode usar duas abordagens para implementar o modelo de silo com o OpenSearch Service: domínio por inquilino e índice por inquilino.
+ **Domínio por inquilino** — Você pode usar um domínio de OpenSearch serviço separado (sinônimo de um cluster do Elasticsearch) por locatário. Colocar cada inquilino em seu próprio domínio oferece todos os benefícios associados a ter dados em uma estrutura independente. No entanto, essa abordagem apresenta desafios de gerenciamento e agilidade. Sua natureza distribuída torna mais difícil agregar e avaliar a saúde operacional e a atividade dos inquilinos. Essa é uma opção cara que exige que cada domínio de OpenSearch serviço tenha, no mínimo, três nós principais e dois nós de dados para cargas de trabalho de produção.

![\[Modelo de silo de domínio por locatário para arquiteturas multilocatário com tecnologia sem servidor.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2195f82-e5ed-40bb-b76a-3b0210bf1254.png)


 
+ **Índice por inquilino** — Você pode colocar os dados do inquilino em índices separados dentro de um OpenSearch cluster de serviços. Com essa abordagem, você usa um identificador de locatário ao criar e nomear o índice, pré-fixando o identificador do locatário ao nome do índice. A abordagem de índice por inquilino ajuda você a atingir suas metas de silo sem introduzir um cluster completamente separado para cada inquilino. No entanto, você pode enfrentar pressão de memória se o número de índices aumentar, porque essa abordagem requer mais fragmentos e o nó principal precisa lidar com mais alocação e rebalanceamento.

![\[Modelo de silo de índice por locatário para arquiteturas multilocatário com tecnologia sem servidor.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/354a9463-25bb-422b-84de-d4875a7c8ea2.png)


 

**Isolamento no modelo de silo**: no modelo de silo, você usa políticas do IAM para isolar os domínios ou índices que contêm os dados de cada inquilino. Essas políticas impedem que um inquilino acesse os dados de outro inquilino. Para implementar seu modelo de isolamento de silo, você pode criar uma política baseada em recursos que controle o acesso ao seu recurso de inquilino. Geralmente, essa é uma política de acesso ao domínio que especifica quais ações um principal pode realizar nos sub-recursos do domínio, incluindo índices do Elasticsearch e. APIs Com as políticas baseadas em identidade do IAM, você pode especificar ações *permitidas* ou *negadas* no domínio, nos índices ou no Serviço. APIs OpenSearch O `Action` elemento de uma política do IAM descreve a ação ou ações específicas que são permitidas ou negadas pela política, e o `Principal ` elemento especifica as contas, os usuários ou os papéis afetados.

O exemplo de política a seguir concede ao Tenant-1 acesso total (conforme especificado por`es:*`) somente aos sub-recursos no `tenant-1` domínio. O `/*` no elemento `Resource` à direita é significativo e indica que as políticas se aplicam aos sub-recursos do domínio, e não ao próprio domínio. Quando essa política está em vigor, os inquilinos não têm permissão para criar um novo domínio ou modificar as configurações em um domínio existente.

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::<aws-account-id>:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/tenant-1/*"
      }
   ]
}
```

Para implementar o modelo de silo de locatário por índice, você precisa modificar esse exemplo de política para restringir ainda mais o Tenant-1 ao índice ou índices especificados, especificando o nome do índice. O exemplo de política a seguir restringe o Tenant-1 ao índice. `tenant-index-1` 

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/test-domain/tenant-index-1/*"
      }
   ]
}
```

*Modelo de piscina*

No modelo de pool, todos os dados do inquilino são armazenados em um índice dentro do mesmo domínio. O identificador do inquilino é incluído nos dados (documento) e usado como chave de partição, para que você possa determinar quais dados pertencem a qual inquilino. Esse modelo reduz a sobrecarga de gerenciamento. Operar e gerenciar o índice agrupado é mais fácil e eficiente do que gerenciar vários índices. No entanto, como os dados do inquilino são misturados no mesmo índice, você perde o isolamento natural do inquilino que o modelo de silo fornece. Essa abordagem também pode degradar o desempenho devido ao efeito de vizinhança ruidosa.

![\[Modelo de pool para arquiteturas multilocatário com tecnologia sem servidor.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2c3bb0f-6ccd-47a7-ab67-e7f3f8c7f289.png)


 

**Isolamento do inquilino no modelo do pool**: em geral, o isolamento do inquilino é um desafio de implementar no modelo do pool. O mecanismo do IAM usado com o modelo de silo não permite que você descreva o isolamento com base na ID do inquilino armazenada em seu documento.

Uma abordagem alternativa é usar o suporte de [controle de acesso refinado](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html) (FGAC) fornecido pela Open Distro for Elasticsearch. O FGAC permite controlar permissões em um nível de índice, documento ou campo. Com cada solicitação, o FGAC avalia as credenciais do usuário e autentica o usuário ou nega o acesso. Se o FGAC autenticar o usuário, ele obterá todas as funções mapeadas para esse usuário e usará o conjunto completo de permissões para determinar como lidar com a solicitação. 

Para obter o isolamento necessário no modelo agrupado, você pode usar a [segurança em nível de documento](https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/document-level-security/), que permite restringir uma função a um subconjunto de documentos em um índice. O exemplo de função a seguir restringe as consultas ao Tenant-1. Ao aplicar essa função ao Tenant-1, você pode obter o isolamento necessário. 

```
{
   "bool": {
     "must": {
       "match": {
         "tenantId": "Tenant-1"
       }
     }
   }
 }
```

*Modelo híbrido*

O modelo híbrido usa uma combinação dos modelos de silo e piscina no mesmo ambiente para oferecer experiências únicas para cada nível de inquilino (como níveis gratuito, padrão e premium). Cada camada segue o mesmo perfil de segurança usado no modelo de pool.

 

![\[Modelo híbrido para arquiteturas multilocatário com tecnologia sem servidor.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/e7def98a-38ef-435a-9881-7e95ae4d4940.png)


**Isolamento do inquilino no modelo híbrido**: no modelo híbrido, você segue o mesmo perfil de segurança do modelo de pool, em que o uso do modelo de segurança do FGAC no nível do documento proporcionou o isolamento do inquilino. Embora essa estratégia simplifique o gerenciamento de clusters e ofereça agilidade, ela complica outros aspectos da arquitetura. Por exemplo, seu código exige complexidade adicional para determinar qual modelo está associado a cada inquilino. Você também precisa garantir que as consultas de um único inquilino não saturem o domínio inteiro e prejudiquem a experiência de outros locatários. 

**Teste no API Gateway**

*Janela de teste para consulta Tenant-1*

![\[Janela de teste para consulta de Tenant-1.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/a6757d3f-977a-4ecc-90cb-83ab7f1c3588.png)


*Janela de teste para consulta Tenant-2*

 

![\[Janela de teste para consulta de Tenant-2.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/31bfd656-33ca-4750-b6e6-da4d703c2071.png)


## Anexos
<a name="attachments-750196bb-03f6-4b6e-92cd-eb7141602547"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/750196bb-03f6-4b6e-92cd-eb7141602547/attachments/attachment.zip)

# Implante aplicativos de várias pilhas usando o AWS CDK com TypeScript
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Resumo
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-summary"></a>

Esse padrão fornece uma step-by-step abordagem para implantação de aplicativos na Amazon Web Services (AWS) usando o AWS Cloud Development Kit (AWS CDK) com TypeScript. Como exemplo, o padrão implanta um aplicativo de análise em tempo real com tecnologia sem servidor.

O padrão cria e implanta aplicativos de pilha aninhados. A pilha principal da AWS chama a CloudFormation pilha secundária, ou aninhada, de pilhas.  Cada pilha secundária cria e implanta os recursos da AWS que estão definidos na pilha. CloudFormation O AWS CDK Toolkit, o comando da interface de linha de comando (CLI)`cdk`, é a interface principal das pilhas. CloudFormation 

## Pré-requisitos e limitações
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Nuvem privada virtual (VPC) e sub-redes existentes
+ AWS CDK Toolkit instalado e configurado
+ Um usuário com permissões de administrador e um conjunto de chaves de acesso.
+ Node.js
+ AWS Command Line Interface (AWS CLI)

**Limitações**
+ Como o AWS CDK usa a AWS CloudFormation, os aplicativos do AWS CDK estão sujeitos a cotas de CloudFormation serviço. Para obter mais informações, consulte [as CloudFormation cotas da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**Versões do produto**

Esse padrão foi criado e testado usando as seguintes ferramentas e versões.
+ Kit de ferramentas do AWS CDK 1.83.0
+ Node.js 14.13.0
+ npm 7.0.14

O padrão deve funcionar com qualquer versão do AWS CDK ou npm. Observe que as versões 13.0.0 a 13.6.0 do Node.js não são compatíveis com o AWS CDK.

## Arquitetura
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-architecture"></a>

**Pilha de tecnologias de destino**
+ AWS Amplify Console
+ Amazon API Gateway
+ AWS CDK
+ Amazon CloudFront
+ Amazon Cognito
+ Amazon DynamoDB
+ Amazon Data Firehose
+ Amazon Kinesis Data Streams
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon S3)

**Arquitetura de destino**

O diagrama a seguir mostra a implantação de aplicativos em várias pilhas usando o AWS CDK com. TypeScript

![\[Arquitetura de pilha na VPC, com uma pilha principal e duas pilhas secundárias que contêm recursos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/8f92e86a-aa3d-4f8a-9b11-b92c52a7226c.png)


 

O diagrama a seguir mostra a arquitetura do exemplo de aplicação em tempo real com tecnologia sem servidor.

![\[Arquitetura de aplicativos na região.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/2df00faf-f871-4aec-9655-19ba2eb14cf8.png)


 

## Ferramentas
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-tools"></a>

**Ferramentas**
+ O [AWS Amplify Console](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html) é o centro de controle para implantações completas de aplicativos móveis e web na AWS. O host do Amplify Console fornece um fluxo de trabalho baseado em git para hospedar aplicativos web fullstack com tecnologia sem servidor com implantação contínua. A UI Admin é uma interface visual para desenvolvedores web e móveis frontend criarem e gerenciarem backends de aplicativos fora do console da AWS.
+ [O Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) é um serviço da AWS para criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+ 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.
+ [O AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) é um kit de desenvolvimento em nuvem de linha de comando que ajuda você a interagir com seu aplicativo AWS CDK. O comando `cdk` 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 da AWS gerados pelo CDK da AWS.
+  CloudFrontA [Amazon](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) é um serviço web que acelera a distribuição de conteúdo web estático e dinâmico, como arquivos.html, .css, .js e imagens. CloudFront entrega seu conteúdo por meio de uma rede mundial de data centers chamados de pontos de presença para menor latência e melhor desempenho.
+ O [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornece autenticação, autorização e gerenciamento de usuários para seus aplicativos Web e móveis. Seus usuários podem fazer login diretamente ou por meio de terceiros.
+ 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 uma performance rápida e previsível com escalabilidade integrada.
+ [O Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) é um serviço totalmente gerenciado para fornecer [dados de streaming](https://aws.amazon.com/streaming-data/) em tempo real para destinos como Amazon S3, Amazon Redshift, OpenSearch Amazon Service, Splunk e qualquer endpoint HTTP personalizado ou endpoints HTTP de propriedade de provedores de serviços terceirizados compatíveis.
+ O [Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) é um serviço para coleta e processamento de grandes fluxos de registros de dados em tempo real.
+ 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 [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.

**Código **

O código desse padrão está anexado.

## Épicos
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-epics"></a>

### Instale o AWS CDK Toolkit
<a name="install-aws-cdk-toolkit"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o AWS CDK Toolkit. | Para instalar o AWS CDK Toolkit globalmente, execute o comando a seguir.`npm install -g aws-cdk` | DevOps | 
| Verificar a versão. | Para verificar a versão do AWS CDK Toolkit, execute o comando a seguir. `cdk --version` | DevOps | 

### Configurar credenciais da AWS
<a name="set-up-aws-credentials"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar credenciais. | Para configurar as credenciais, execute o comando `aws configure` e siga as instruções.<pre>$aws configure<br />AWS Access Key ID [None]: <br />AWS Secret Access Key [None]: your_secret_access_key<br />Default region name [None]:<br />Default output format [None]:</pre> | DevOps | 

### Baixe o código do projeto
<a name="download-the-project-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o código do projeto em anexo. | Para obter mais informações sobre a estrutura de diretórios e arquivos, consulte a seção *Informações adicionais*. | DevOps | 

### Faça o bootstrap do ambiente do AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicialize o ambiente do . | Para implantar o CloudFormation modelo da AWS na conta e na região da AWS que você deseja usar, execute o comando a seguir.`cdk bootstrap <account>/<Region>`Para obter mais informações, consulte a [documentação da AWS](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | DevOps | 

### Crie e implante o projeto
<a name="build-and-deploy-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o projeto. | Para construir o código do projeto, execute o comando `npm run build`. | DevOps | 
| Implante o projeto. | Para implantar o código do projeto, execute o comando `cdk deploy`. |  | 

### Verificar as saídas
<a name="verify-outputs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique a criação da pilha. | No AWS Management Console, escolha **CloudFormation**. Nas pilhas do projeto, verifique se uma pilha principal e duas pilhas secundárias foram criadas. | DevOps | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Enviar dados ao Kinesis Data Streams. | Configure sua conta da AWS para enviar dados para o Kinesis Data Streams usando o Amazon Kinesis Data Generator (KDG). Para obter mais informações, consulte [Amazon Kinesis Data Generator](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html). | DevOps | 
| Crie um usuário do Amazon Cognito. | [Para criar um usuário do Amazon Cognito, baixe o CloudFormation modelo cognito-setup.json na seção *Criar um usuário do Amazon Cognito na página de ajuda do Kinesis Data Generator*.](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html) Inicie o modelo e, em seguida, insira seu **nome de usuário** e **senha** do Amazon Cognito.A guia **Outputs** (Saídas) lista o URL do Kinesis Data Generator. | DevOps | 
| Faça o login no Kinesis Data Generator | Para fazer login no KDG, use as credenciais do Amazon Cognito que você forneceu e o URL do Kinesis Data Generator. | DevOps | 
| Testar o aplicativo. | No KDG, em **Modelo de registro**, **Modelo 1**, cole o código de teste na seção *Informações adicionais* e selecione **Enviar** dados. | DevOps | 
| Teste o API Gateway. | Depois que os dados forem ingeridos, teste o API Gateway usando o método `GET` para recuperar dados. | DevOps | 

## Recursos relacionados
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-resources"></a>

**Referências**
+ [Nuvem AWS Development Kit](https://aws.amazon.com/cdk/)
+ [AWS CDK em GitHub](https://github.com/aws/aws-cdk)
+ [Trabalhar com pilhas aninhadas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
+ [Exemplo de exemplo da AWS – Análise em tempo real com tecnologia sem servidor](https://github.com/aws-samples/serverless-realtime-analytics)

## Mais informações
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-additional"></a>

**Detalhes do diretório e do arquivo**

Esse padrão configura as três pilhas a seguir.
+ `parent-cdk-stack.ts`: essa pilha atua como pilha principal e chama os dois aplicativos secundários de pilhas aninhadas. 
+ `real-time-analytics-poc-stack.ts`: essa pilha aninhada contém a infraestrutura e o código do aplicativo.
+ `real-time-analytics-web-stack.ts`: essa pilha aninhada contém somente o código estático do aplicativo web.

*Arquivos importantes e suas funcionalidades*
+ `bin/real-time-analytics-poc.ts`: ponto de entrada do aplicativo AWS CDK. Ele carrega todas as pilhas definidas em `lib/`.
+ `lib/real-time-analytics-poc-stack.ts`: definição da pilha (`real-time-analytics-poc`) do aplicativo AWS CDK.
+ `lib/real-time-analytics-web-stack.ts`: definição da pilha (`real-time-analytics-web-stack`) do aplicativo AWS CDK.
+ `lib/parent-cdk-stack.ts`: definição da pilha (`parent-cdk`) do aplicativo AWS CDK.
+ `package.json`: manifesto do módulo npm, que inclui o nome, a versão e as dependências do aplicativo.
+ `package-lock.json`: mantido pelo npm.
+ `cdk.json`: kit de ferramentas para executar o aplicativo.
+ `tsconfig.json`— A TypeScript configuração do projeto.
+ `.gitignore`: lista de arquivos que o Git deve excluir do controle de origem.
+ `node_modules`: mantido pelo npm; inclui as dependências do projeto.

A seção de código a seguir na pilha principal chama os aplicativos secundários como pilhas de CDK aninhadas da AWS.

```
import * as cdk from '@aws-cdk/core';
import { Construct, Stack, StackProps } from '@aws-cdk/core';
import { RealTimeAnalyticsPocStack } from './real-time-analytics-poc-stack';
import { RealTimeAnalyticsWebStack } from './real-time-analytics-web-stack';


export class CdkParentStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);


    new RealTimeAnalyticsPocStack(this, 'RealTimeAnalyticsPocStack');
    new RealTimeAnalyticsWebStack(this, 'RealTimeAnalyticsWebStack');
  }
}
```

**Código para teste**

```
session={{date.now('YYYYMMDD')}}|sequence={{date.now('x')}}|reception={{date.now('x')}}|instrument={{random.number(9)}}|l={{random.number(20)}}|price_0={{random.number({"min":10000, "max":30000})}}|price_1={{random.number({"min":10000, "max":30000})}}|price_2={{random.number({"min":10000, "max":30000})}}|price_3={{random.number({"min":10000, "max":30000})}}|price_4={{random.number({"min":10000, "max":30000})}}|price_5={{random.number({"min":10000, "max":30000})}}|price_6={{random.number({"min":10000, "max":30000})}}|price_7={{random.number({"min":10000, "max":30000})}}|price_8={{random.number({"min":10000, "max":30000})}}|
```

**Teste o API Gateway**

No console do API Gateway, teste o API Gateway usando o método `GET`. 

![\[Console do API Gateway, com a opção GET escolhida em OPTIONS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/452e5b8f-6d61-401d-8484-e5a436cb6f1b.png)


 

## Anexos
<a name="attachments-0ac29a11-1362-4084-92ed-6b85205763ca"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/0ac29a11-1362-4084-92ed-6b85205763ca/attachments/attachment.zip)

# Automatize a implantação de aplicativos aninhados usando o AWS SAM
<a name="automate-deployment-of-nested-applications-using-aws-sam"></a>

*Dr. Rahul Sharad Gaikwad, Ishwar Chauthaiwale, Dmitry Gulin e Tabby Ward, Amazon Web Services*

## Resumo
<a name="automate-deployment-of-nested-applications-using-aws-sam-summary"></a>

Na Amazon Web Services (AWS), o AWS Serverless Application Model (AWS SAM) é uma estrutura de código aberto que fornece sintaxe abreviada para expressar APIs funções, bancos de dados e mapeamentos de fontes de eventos. Com apenas algumas linhas para cada recurso, você pode definir o aplicativo desejado e modelá-lo usando YAML. Durante a implantação, o SAM transforma e expande a sintaxe do SAM na sintaxe da AWS CloudFormation , que você pode usar para criar aplicativos sem servidor com mais rapidez.

O AWS SAM simplifica o desenvolvimento, a implantação e o gerenciamento de aplicativos com tecnologia sem servidor na plataforma da AWS. Ele fornece uma estrutura padronizada, implantação mais rápida, recursos de teste locais, gerenciamento de recursos, integração perfeita com ferramentas de desenvolvimento e uma comunidade de apoio. Esses recursos o tornam uma ferramenta valiosa para criar aplicativos com tecnologia sem servidor de forma eficiente e eficaz.

Esse padrão usa modelos do AWS SAM para automatizar a implantação de aplicativos aninhados. Um aplicativo aninhado é um aplicativo dentro de outro aplicativo. Os aplicativos principais chamam os aplicativos secundários. Esses são componentes com acoplamento fraco de uma arquitetura com tecnologia sem servidor. 

Usando aplicativos aninhados, você pode criar rapidamente arquiteturas com tecnologia sem servidor altamente sofisticadas reutilizando serviços ou componentes criados e mantidos de forma independente, mas compostos usando o AWS SAM e o Serverless Application Repository. Os aplicativos aninhados ajudam você a criar aplicativos mais poderosos, evitar a duplicação de trabalho e garantir a consistência e as melhores práticas em suas equipes e organizações. Para demonstrar aplicativos aninhados, o padrão implanta um exemplo de aplicativo de carrinho de compras [com tecnologia sem servidor da AWS](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Pré-requisitos e limitações
<a name="automate-deployment-of-nested-applications-using-aws-sam-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) e sub-redes existentes
+ Um ambiente de desenvolvimento integrado, como o Visual Studio Code (para obter mais informações, consulte [Tools to Build on AWS](https://aws.amazon.com/getting-started/tools-sdks/#IDE_and_IDE_Toolkits))
+ Biblioteca Python wheel instalada usando pip install wheel, se ainda não estiver instalada

**Limitações**
+ O número máximo de aplicativos que podem ser aninhados em um aplicativo com tecnologia sem servidor é 200.
+ O número máximo de parâmetros para um aplicativo aninhado pode ter 60.

**Versões do produto**
+ Essa solução foi criada na interface de linha de comando do AWS SAM (AWS SAM CLI) versão 1.21.1, mas essa arquitetura deve funcionar com versões posteriores da CLI do AWS SAM.

## Arquitetura
<a name="automate-deployment-of-nested-applications-using-aws-sam-architecture"></a>

**Pilha de tecnologias de destino**
+ Amazon API Gateway
+ AWS SAM
+ Amazon Cognito
+ Amazon DynamoDB
+ AWS Lambda
+ Fila do Amazon Simple Queue Service (Amazon SQS)

**Arquitetura de destino**

O diagrama a seguir mostra como as solicitações dos usuários são feitas aos serviços de compras por meio de chamadas APIs. A solicitação do usuário, incluindo todas as informações necessárias, é enviada ao Amazon API Gateway e ao autorizador do Amazon Cognito, que executa mecanismos de autenticação e autorização para o. APIs

Quando um item é adicionado, excluído ou atualizado no DynamoDB, um evento é colocado no DynamoDB Streams, que por sua vez inicia uma função do Lambda. Para evitar a exclusão imediata de itens antigos como parte de um fluxo de trabalho síncrono, as mensagens são colocadas em uma fila SQS, que inicia uma função de trabalho para excluir as mensagens.

![\[Operações POST e PUT realizadas pelo API Gateway direcionadas às funções do Lambda, ao DynamoDB e ao Product Service.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5b454bae-5fd4-405d-a37d-6bafc3fcf889.png)


Nessa configuração da solução, a CLI do AWS SAM serve como interface para pilhas da AWS CloudFormation . Os modelos do AWS SAM implantam automaticamente aplicativos aninhados. O modelo principal do SAM chama os modelos secundários e a pilha principal implanta as CloudFormation pilhas secundárias. Cada pilha secundária cria os recursos da AWS que são definidos nos modelos do AWS SAM CloudFormation .

![\[Processo de quatro etapas usando a CLI do AWS SAM com pilhas de pais e três CloudFormation filhos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5828026e-72ad-4a3f-a5f2-bffac0f13e42.png)


1. Compile e implante as pilhas.

1. A CloudFormation pilha Auth contém o Amazon Cognito.

1. A CloudFormation pilha de produtos contém uma função Lambda e o Amazon API Gateway

1. A CloudFormation pilha de compras contém uma função Lambda, o Amazon API Gateway, a fila SQS e o banco de dados Amazon DynamoDB.

## Ferramentas
<a name="automate-deployment-of-nested-applications-using-aws-sam-tools"></a>

**Ferramentas**
+ [O Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+  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 [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornece autenticação, autorização e gerenciamento de usuários para suas aplicações Web e móveis.
+ 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 você 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 [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) é uma estrutura de código aberto que ajuda na criação de aplicativos com tecnologia sem servidor na Nuvem AWS.
+ O [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) fornece uma fila hospedada segura, durável e disponível que ajuda a integrar e desacoplar sistemas e componentes de software distribuídos.

**Código **

O código desse padrão está disponível no repositório GitHub [AWS SAM Nested Stack Sample](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Épicos
<a name="automate-deployment-of-nested-applications-using-aws-sam-epics"></a>

### Instalar a AWS SAM CLI
<a name="install-aws-sam-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a AWS SAM CLI. | Para instalar a CLI do AWS SAM, consulte as instruções na [documentação do AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html). | DevOps engenheiro | 
| Configurar credenciais da AWS. | Para definir as credenciais da AWS para que a CLI do AWS SAM possa fazer chamadas para os serviços da AWS em seu nome, execute o comando `aws configure` e siga as instruções.<pre>$aws configure<br />AWS Access Key ID [None]: <your_access_key_id><br />AWS Secret Access Key [None]: your_secret_access_key<br />Default region name [None]:<br />Default output format [None]:</pre>Para obter mais informações sobre como configurar suas credenciais e autenticação, consulte [Credenciais de autenticação e acesso](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html).  | DevOps engenheiro | 

### Inicialize o projeto AWS SAM
<a name="initialize-the-aws-sam-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos do AWS SAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps engenheiro | 
| Implante modelos para inicializar o projeto. | Para inicializar o projeto, execute o comando `SAM init`. Quando solicitado a escolher uma origem de modelo, escolha `Custom Template Location`. | DevOps engenheiro | 

### Compile e crie o código do modelo SAM
<a name="compile-and-build-the-sam-template-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise os modelos de aplicativos do AWS SAM. | Analise os modelos dos aplicativos aninhados. Este exemplo usa os seguintes modelos de aplicativos aninhados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps engenheiro | 
| Analise o modelo principal. | Analise o modelo que invocará os modelos de aplicativos aninhados. Neste exemplo, o modelo principal é `template.yml`. Todos os aplicativos separados estão aninhados no modelo pai único `template.yml`. | DevOps engenheiro | 
| Compile e crie o código do modelo do AWS SAM.  | Usando a AWS SAM CLI, execute o comando a seguir.<pre>sam build</pre> | DevOps engenheiro | 

### Implante o modelo AWS SAM
<a name="deploy-the-aws-sam-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante os aplicativos. | Para iniciar o código do modelo SAM que cria as CloudFormation pilhas de aplicativos aninhadas e implanta o código no ambiente da AWS, execute o comando a seguir.<pre>sam deploy --guided --stack-name shopping-cart-nested-stack --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND</pre>O comando exibirá algumas perguntas. Responda a todas as perguntas com `y`. | DevOps engenheiro | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar as pilhas. | Para analisar as CloudFormation pilhas e os recursos da AWS que foram definidos nos modelos do AWS SAM, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps engenheiro | 

## Recursos relacionados
<a name="automate-deployment-of-nested-applications-using-aws-sam-resources"></a>

**Referências**
+ [AWS Serverless Application Model (AWS SAM)](https://aws.amazon.com/serverless/sam/#:~:text=The%20AWS%20Serverless%20Application%20Model,and%20model%20it%20using%20YAML.)
+ [AWS SAM ativado GitHub](https://github.com/aws/serverless-application-model)
+ [Microsserviço de carrinho de compras com tecnologia sem servidor](https://github.com/aws-samples/aws-serverless-shopping-cart) (exemplo de aplicativo da AWS)

**Tutoriais e vídeos**
+ [Crie um aplicativo com tecnologia sem servidor](https://youtu.be/Hv3YrP8G4ag)
+ [Palestras técnicas on-line da AWS: criação e implantação de aplicativos com tecnologia sem servidor com o AWS SAM](https://youtu.be/1NU7vyJw9LU)

## Mais informações
<a name="automate-deployment-of-nested-applications-using-aws-sam-additional"></a>

Depois que todo o código estiver pronto, o exemplo tem a seguinte estrutura de diretórios:
+ [sam\$1stacks](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html): essa pasta contém a camada `shared.py`. Uma camada é um arquivo que contém bibliotecas, um runtime personalizado ou outras dependências. Com camadas, você pode usar as bibliotecas na sua função sem a necessidade de incluí-las em um pacote de implantação.
+ *product-mock-service*— Essa pasta contém todas as funções e arquivos do Lambda relacionados ao produto.
+ *shopping-cart-service*— Essa pasta contém todas as funções e arquivos do Lambda relacionados a compras.

# Implemente o isolamento de inquilinos de SaaS para o Amazon S3 usando uma máquina de venda automática de tokens AWS Lambda
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine"></a>

*Tabby Ward, Thomas Davis e Sravan Periyathambi, Amazon Web Services*

## Resumo
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-summary"></a>

Os aplicativos SaaS multilocação devem implementar sistemas para garantir que o isolamento dos inquilinos seja mantido. Quando você armazena dados de inquilinos no mesmo AWS recurso, como quando vários inquilinos armazenam dados no mesmo bucket do Amazon Simple Storage Service (Amazon S3), você deve garantir que o acesso entre inquilinos não ocorra. As máquinas de venda automática de tokens (TVMs) são uma forma de fornecer isolamento de dados do inquilino. Essas máquinas fornecem um mecanismo para obter tokens e, ao mesmo tempo, abstrair a complexidade de como esses tokens são gerados. Os desenvolvedores podem usar uma TVM sem ter conhecimento detalhado de como ela produz tokens.

Esse padrão implementa um TVM usando. AWS Lambda A TVM gera um token que consiste em credenciais temporárias de serviço de token de segurança (STS) que limitam o acesso aos dados de um único inquilino SaaS em um bucket S3.

TVMse o código fornecido com esse padrão são normalmente usados com declarações derivadas de JSON Web Tokens (JWTs) para associar solicitações de AWS recursos a uma política com escopo de inquilino (IAM AWS Identity and Access Management ). Você pode usar o código deste padrão como base para implementar um aplicativo SaaS que gera credenciais STS temporárias e com escopo com base nas declarações fornecidas em um token JWT.

## Pré-requisitos e limitações
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ AWS Command Line Interface (AWS CLI) [versão 1.19.0 ou posterior](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), instalada e configurada no macOS, Linux ou Windows. Como alternativa, você pode usar a AWS CLI [versão 2.1 ou posterior](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).

**Limitações**
+ Este código é executado em Java e atualmente não oferece suporte a outras linguagens de programação. 
+ O aplicativo de amostra não inclui suporte AWS entre regiões ou recuperação de desastres (DR). 
+ Este padrão demonstra como uma TVM do Lambda para um aplicativo SaaS pode fornecer acesso de inquilino com escopo definido. Este padrão não é recomendado para uso em ambientes de produção sem que testes de segurança adicionais sejam realizados como parte da sua aplicação ou do caso de uso específico.

## Arquitetura
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-architecture"></a>

**Pilha de tecnologias de destino**
+ AWS Lambda
+ Amazon S3
+ IAM
+ AWS Security Token Service (AWS STS)

**Arquitetura de destino**

![\[Geração de um token para obter credenciais temporárias do STS e acessar os dados em um bucket do S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/14d0508a-703b-4229-85e6-c5094de7fe01.png)


 

## Ferramentas
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-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.
+ [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 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 Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) ajuda você a solicitar credenciais temporárias com privilégios limitados para os usuários.
+ 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.

**Código **

O código-fonte deste padrão está disponível como anexo e inclui os seguintes arquivos:
+ `s3UploadSample.jar` fornece o código-fonte para uma função do Lambda que carrega um documento JSON em um bucket do S3.
+ `tvm-layer.zip` oferece uma biblioteca Java reutilizável que fornece um token (credenciais temporárias STS) para que a função do Lambda acesse o bucket do S3 e faça o upload do documento JSON.
+ `token-vending-machine-sample-app.zip` fornece o código-fonte usado para criar esses artefatos e instruções de compilação.

Para usar esses arquivos, siga as instruções da próxima seção.

## Épicos
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-epics"></a>

### Determinar os valores das variáveis
<a name="determine-variable-values"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determinar os valores das variáveis. | A implementação deste padrão inclui vários nomes de variáveis que devem ser usados de forma consistente. Determine os valores que devem ser usados para cada variável e forneça esse valor quando solicitado nas etapas subsequentes.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.html) | Administrador de nuvem | 

### Criar um bucket do S3.
<a name="create-an-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um ambiente do bucket do S3 para o aplicativo de exemplo. | Use o AWS CLI comando a seguir para criar um bucket do S3. Forneça o valor de** **`<sample-app-bucket-name>` no trecho de código:<pre>aws s3api create-bucket --bucket <sample-app-bucket-name></pre>O aplicativo de exemplo Lambda carrega arquivos JSON nesse bucket. | Administrador de nuvem | 

### Criar uma política e um perfil do TVM do IAM
<a name="create-the-iam-tvm-role-and-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um perfil TVM. | Use um dos AWS CLI comandos a seguir para criar uma função do IAM. Forneça o valor de** **`<sample-tvm-role-name>` no comando.Para shells no macOS ou Linux:<pre>aws iam create-role \<br />--role-name <sample-tvm-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "sts:AssumeRole"<br />            ],<br />            "Principal": {<br />                "Service": [<br />                    "lambda.amazonaws.com"<br />                ]<br />            },<br />            "Condition": {<br />                "StringEquals": {<br />                    "aws:SourceAccount": "<AWS Account ID>"<br />                }<br />            }<br />        }<br />    ]<br />}'</pre>Para a linha de comando do Windows:<pre>aws iam create-role ^<br />--role-name <sample-tvm-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"sts:AssumeRole\"], \"Principal\": {\"Service\": [\"lambda.amazonaws.com\"]}, \"Condition\": {\"StringEquals\": {\"aws:SourceAccount\": \"<AWS Account ID>\"}}}]}"</pre>O aplicativo de exemplo do Lambda assume essa função quando o aplicativo é invocado. A capacidade de assumir o perfil do aplicativo com uma política de escopo fornece ao código permissões mais amplas para acessar o bucket do S3. | Administrador de nuvem | 
| Criar uma política de função de TVM em linha. | Use um dos AWS CLI comandos a seguir para criar uma política do IAM. Forneça os valores de `<sample-tvm-role-name>`,** **`<AWS Account ID>` e `<sample-app-role-name>` no comando.Para shells no macOS ou Linux:<pre>aws iam put-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-name assume-app-role \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": "sts:AssumeRole", <br />            "Resource": "arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>"<br />        }<br />    ]}'</pre>Para a linha de comando do Windows:<pre>aws iam put-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-name assume-app-role ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": \"sts:AssumeRole\", \"Resource\": \"arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>\"}]}"</pre>Esta política é anexada à função da TVM. Dá ao código a capacidade de assumir o perfil do aplicativo que possui permissões mais amplas para acessar o bucket do S3. | Administrador de nuvem | 
| Anexar a política gerenciada do Lambda. | Use o AWS CLI comando a seguir para anexar a política `AWSLambdaBasicExecutionRole` do IAM. Forneça o valor de `<sample-tvm-role-name>` no comando:<pre>aws iam attach-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Para a linha de comando do Windows:<pre>aws iam attach-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Essa política gerenciada é anexada à função TVM para permitir que o Lambda envie registros para a Amazon. CloudWatch | Administrador de nuvem | 

### Criar uma política e um perfil do aplicativo IAM
<a name="create-the-iam-application-role-and-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o perfil do aplicativo. | Use um dos AWS CLI comandos a seguir para criar uma função do IAM. Forneça os valores de `<sample-app-role-name>`, `<AWS Account ID>` e `<sample-tvm-role-name>` no comando:Para shells no macOS ou Linux:<pre>aws iam create-role \<br />--role-name <sample-app-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": <br />            "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]}'</pre>Para a linha de comando do Windows:<pre>aws iam create-role ^<br />--role-name <sample-app-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>\"},\"Action\": \"sts:AssumeRole\"}]}"</pre>O aplicativo de exemplo Lambda assume essa função com uma política de escopo para obter acesso baseado em inquilinos a um bucket do S3. | Administrador de nuvem | 
| Criar uma política de função de aplicativo embutida. | Use um dos comandos a seguir AWS CLI para criar uma política do IAM. Forneça os valores de** **`<sample-app-role-name>` e `<sample-app-bucket-name>` no comando.Para shells no macOS ou Linux:<pre>aws iam put-role-policy \<br />--role-name <sample-app-role-name> \<br />--policy-name s3-bucket-access \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": [<br />                "s3:PutObject", <br />                "s3:GetObject", <br />                "s3:DeleteObject"<br />            ], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>/*"<br />        }, <br />        {<br />            "Effect": "Allow", <br />            "Action": ["s3:ListBucket"], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>"<br />        }<br />    ]}'</pre>Para a linha de comando do Windows:<pre>aws iam put-role-policy ^<br />--role-name <sample-app-role-name> ^<br />--policy-name s3-bucket-access ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"s3:PutObject\", \"s3:GetObject\", \"s3:DeleteObject\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>/*\"}, {\"Effect\": \"Allow\", \"Action\": [\"s3:ListBucket\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>\"}]}"</pre>Esta política é anexada ao perfil do aplicativo. Ela fornece amplo acesso aos objetos no bucket do S3. Quando o aplicativo de exemplo assume o perfil, essas permissões são atribuídas a um inquilino específico com a política gerada dinamicamente pela TVM. | Administrador de nuvem | 

### Crie o aplicativo de exemplo Lambda com a TVM
<a name="create-the-lam-sample-application-with-tvm"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe os arquivos de origem compilados. | Baixe os arquivos `s3UploadSample.jar` e `tvm-layer.zip`****, que estão incluídos como anexos. O código-fonte usado para criar esses artefatos e instruções de compilação são fornecidos em `token-vending-machine-sample-app.zip`. | Administrador de nuvem | 
| Criar a camada do Lambda. | Use o AWS CLI comando a seguir para criar uma camada Lambda, que torna o TVM acessível ao Lambda. Se você não estiver executando este comando do local em que fez o download do arquivo ` tvm-layer.zip`, forneça o caminho correto para o arquivo `tvm-layer.zip` no parâmetro `--zip-file`. <pre>aws lambda publish-layer-version \<br />--layer-name sample-token-vending-machine \<br />--compatible-runtimes java11 \<br />--zip-file fileb://tvm-layer.zip</pre>Para a linha de comando do Windows:<pre>aws lambda publish-layer-version ^<br />--layer-name sample-token-vending-machine ^<br />--compatible-runtimes java11 ^<br />--zip-file fileb://tvm-layer.zip</pre>Esse comando cria uma camada Lambda que contém a biblioteca TVM reutilizável. | Administrador da nuvem, desenvolvedor de aplicativos | 
| Criar a função do Lambda. | Use o AWS CLI comando a seguir para criar uma função Lambda. Forneça os valores de `<sample-app-function-name>`, `<AWS Account ID>`, `<AWS Region>`, `<sample-tvm-role-name>`, `<sample-app-bucket-name>` e `<sample-app-role-name>` no comando. Se você não estiver executando este comando do local em que fez o download do arquivo `s3UploadSample.jar`, forneça o caminho correto para o arquivo `s3UploadSample.jar` no parâmetro `--zip-file`. <pre>aws lambda create-function \<br />--function-name <sample-app-function-name>  \<br />--timeout 30 \<br />--memory-size 256 \<br />--runtime java11 \<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> \<br />--handler com.amazon.aws.s3UploadSample.App \<br />--zip-file fileb://s3UploadSample.jar \<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 \<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,<br />ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Para a linha de comando do Windows:<pre>aws lambda create-function ^<br />--function-name <sample-app-function-name>  ^<br />--timeout 30 ^<br />--memory-size 256 ^<br />--runtime java11 ^<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> ^<br />--handler com.amazon.aws.s3UploadSample.App ^<br />--zip-file fileb://s3UploadSample.jar ^<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 ^<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Esse comando cria uma função do Lambda com o código do aplicativo de exemplo e a camada TVM anexada. Ele também define duas variáveis de ambiente: `S3_BUCKET` e `ROLE`. O aplicativo de exemplo usa essas variáveis para determinar a função a ser assumida e o bucket do S3 para o qual carregar documentos JSON. | Administrador da nuvem, desenvolvedor de aplicativos | 

### Testar o aplicativo de exemplo e a TVM
<a name="test-the-sample-application-and-tvm"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Invocar o aplicativo de exemplo do Lambda. | Use um dos AWS CLI comandos a seguir para iniciar o aplicativo de amostra Lambda com a carga esperada. Forneça os valores de `<sample-app-function-name>` e `<sample-tenant-name>` no comando.Para shells no macOS ou Linux:<pre>aws lambda invoke \<br />--function <sample-app-function-name> \<br />--invocation-type RequestResponse \<br />--payload '{"tenant": "<sample-tenant-name>"}' \<br />--cli-binary-format raw-in-base64-out response.json</pre>Para a linha de comando do Windows:<pre>aws lambda invoke ^<br />--function <sample-app-function-name> ^<br />--invocation-type RequestResponse ^<br />--payload "{\"tenant\": \"<sample-tenant-name>\"}" ^<br />--cli-binary-format raw-in-base64-out response.json</pre>Esse comando chama a função do Lambda e retorna o resultado em um documento `response.json`. Em muitos sistemas baseados em Unix, você pode alterar `response.json` para `/dev/stdout` para enviar os resultados diretamente para o shell sem criar outro arquivo. Ao alterar o valor de `<sample-tenant-name>` nas invocações subsequentes desta função do Lambda, o local do documento em JSON e as permissões concedidas pelo token são alterados. | Administrador da nuvem, desenvolvedor de aplicativos | 
| Visualizar o bucket do S3 para ver os objetos criados. | Acesse o bucket do S3 (`<sample-app-bucket-name>`) que você criou anteriormente. Este bucket contém um prefixo de objeto do S3 com o valor de `<sample-tenant-name>`. Sob esse prefixo, você encontrará um documento JSON chamado com um UUID. Invocar o aplicativo de exemplo várias vezes adiciona mais documentos JSON. | Administrador de nuvem | 
| Veja os registros do aplicativo de amostra em CloudWatch Logs. | Visualize os registros associados à função Lambda nomeada `<sample-app-function-name>` em CloudWatch Logs. Para obter instruções, consulte [Enviar registros da função Lambda para CloudWatch Logs na documentação](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) do Lambda. Você pode visualizar a política com escopo de inquilino gerada pela TVM nesses logs. Essa política com escopo de locatário concede permissões para o aplicativo de amostra para o Amazon S3 **PutObject**,,, e **GetObject**DeleteObject**ListBucket****** APIs, mas somente para o prefixo de objeto associado a. `<sample-tenant-name>` Em invocações subsequentes da aplicação de amostra, se você alterar `<sample-tenant-name>`, a TVM atualiza a política com escopo para corresponder ao locatário fornecido na carga útil da invocação. Essa política gerada dinamicamente mostra como o acesso com escopo de inquilino pode ser mantido com uma TVM em aplicativos SaaS. A funcionalidade da TVM é fornecida em uma camada Lambda para que possa ser anexada a outras funções do Lambda usadas por um aplicativo sem precisar replicar o código.Para obter uma ilustração da política gerada dinamicamente, consulte a seção [Informações adicionais](#implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional). | Administrador de nuvem | 

## Recursos relacionados
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-resources"></a>
+ [Isolar inquilinos com políticas do IAM geradas dinamicamente](https://aws.amazon.com/blogs/apn/isolating-saas-tenants-with-dynamically-generated-iam-policies/) (publicação do blog)
+ [Applying Dynamically Generated Isolation Policies in SaaS Environments](https://aws.amazon.com/blogs/apn/applying-dynamically-generated-isolation-policies-in-saas-environments/) (publicação do blog)
+ [SaaS ativado AWS](https://aws.amazon.com/saas/)

## Mais informações
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional"></a>

O log apresentado a seguir mostra a política gerada dinamicamente pelo código da TVM neste padrão. Nesta captura de tela, o `<sample-app-bucket-name>` é `DOC-EXAMPLE-BUCKET` e o `<sample-tenant-name>` é `test-tenant-1`. As credenciais STS retornadas por essa política de escopo não conseguem realizar nenhuma ação em objetos no bucket do S3, exceto os objetos associados ao prefixo da chave do objeto `test-tenant-1`.

![\[Log demonstrando uma política gerada dinamicamente pelo código da TVM.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/d4776ebe-fb8f-41ac-b8c5-b4f97a821c8c.png)


## Anexos
<a name="attachments-97a34c8e-d04e-40b6-acbf-1baa176d22a9"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/97a34c8e-d04e-40b6-acbf-1baa176d22a9/attachments/attachment.zip)

# Implementar o padrão de saga com tecnologia sem servidor usando o AWS Step Functions
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions"></a>

*Tabby Ward, Joe Kern e Rohan Mehta, Amazon Web Services*

## Resumo
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-summary"></a>

Em uma arquitetura de microsserviços, o objetivo principal é criar componentes desacoplados e independentes para promover agilidade, flexibilidade e menor tempo de comercialização de seus aplicativos. Como resultado do desacoplamento, cada componente de microsserviço tem sua própria camada de persistência de dados. Em uma arquitetura distribuída, as transações comerciais podem abranger vários microsserviços. Como esses microsserviços não podem usar uma única transação de atomicidade, consistência, isolamento e durabilidade (ACID), você pode acabar com transações parciais. Nesse caso, alguma lógica de controle é necessária para desfazer as transações que já foram processadas. O padrão de saga distribuída é normalmente usado para essa finalidade. 

O padrão saga é um padrão de gerenciamento de falhas que ajuda a estabelecer a consistência em aplicativos distribuídos e coordena as transações entre vários microsserviços para manter a consistência de dados. Quando você usa o padrão de saga, cada serviço que realiza uma transação publica um evento que aciona serviços subsequentes para realizar a próxima transação na cadeia. Isso continua até que a última transação na cadeia seja concluída. Se uma transação comercial falhar, a saga orquestra uma série de transações compensatórias que desfazem as alterações feitas pelas transações anteriores.

Esse padrão demonstra como automatizar a configuração e a implantação de um aplicativo de amostra (que lida com reservas de viagens) com tecnologias sem servidor, como AWS Step Functions, AWS Lambda e Amazon DynamoDB. O aplicativo de amostra também usa o Amazon API Gateway e o Amazon Simple Notiﬁcation Service (Amazon SNS) para implementar um coordenador de execução da saga. O padrão pode ser implantado com uma estrutura de infraestrutura como código (IaC), como o AWS Cloud Development Kit (AWS CDK), o AWS Serverless Application Model (AWS SAM) ou o Terraform.

## Pré-requisitos e limitações
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Permissões para criar uma CloudFormation pilha da AWS. Para obter mais informações, consulte [Controle de acesso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) na CloudFormation documentação.
+ Estrutura de IaC de sua escolha (AWS CDK, AWS SAM ou Terraform) configurada com sua conta da AWS para que você possa usar a CLI da estrutura para implantar o aplicativo.
+ NodeJS, usado para criar o aplicativo e executá-lo localmente. 
+ Um editor de código de sua escolha (como Visual Studio Code, Sublime ou Atom).

**Versões do produto**
+ [NodeJS versão 14](https://nodejs.org/en/download/)
+ [AWS CDK versão 2.37.1](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [AWS SAM versão 1.71.0](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)
+ [Terraform versão 1.3.7](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)

**Limitações**

O fornecimento de eventos é uma forma natural de implementar o padrão de orquestração da saga em uma arquitetura de microsserviços em que todos os componentes estão com acoplamento fraco e não têm conhecimento direto uns dos outros. Se sua transação envolver um pequeno número de etapas (três a cinco), o padrão da saga pode ser uma ótima opção. No entanto, a complexidade aumenta com o número de microsserviços e o número de etapas. 

Testar e depurar podem se tornar difíceis quando você usa esse design, porque você precisa ter todos os serviços em execução para simular o padrão da transação.

## Arquitetura
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-architecture"></a>

**Arquitetura de destino**

A arquitetura proposta usa o AWS Step Functions para criar um padrão de saga para reservar voos, reservar aluguéis de carros e processar pagamentos de férias.

O diagrama de fluxo de trabalho a seguir ilustra o fluxo típico do sistema de reserva de viagens. O fluxo de trabalho consiste em reservar viagens aéreas (” ReserveFlight “), reservar um carro (” ReserveCarRental “), processar pagamentos (” ProcessPayment “), confirmar reservas de voos (” ConfirmFlight “) e confirmar aluguéis de carros (” “), seguido por uma notificação de sucesso quando essas etapas forem concluídas. ConfirmCarRental No entanto, se o sistema encontrar algum erro na execução de qualquer uma dessas transações, ele começará a falhar para trás. Por exemplo, um erro no processamento do pagamento (” ProcessPayment “) aciona um reembolso (” RefundPayment “), que então aciona o cancelamento do carro e do voo alugados (” CancelRentalReservation "e" CancelFlightReservation “), finalizando toda a transação com uma mensagem de falha.

Esse padrão implanta funções do Lambda separadas para cada tarefa destacada no diagrama, bem como três tabelas do DynamoDB para voos, aluguel de carros e pagamentos. Cada função do Lambda cria, atualiza ou exclui as linhas nas respectivas tabelas do DynamoDB, dependendo se uma transação é confirmada ou revertida. O padrão usa o Amazon SNS para enviar mensagens de texto (SMS) aos assinantes, notificando-os sobre transações fracassadas ou bem-sucedidas. 

![\[Fluxo de trabalho para um sistema de reserva de viagens baseado no padrão saga.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/daad3e8e-6e6b-41c2-95c1-ca79d53ead64.png)


 

**Automação e escala**

Você pode criar a configuração para essa arquitetura usando uma das estruturas do IaC. Para se conectar no IaC de sua preferência, use um dos links a seguir.
+ [Implemente com o AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implemente com o AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implemente com o Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Ferramentas
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-tools"></a>

**Serviços da AWS**
+ O [AWS Step Functions](https://aws.amazon.com/step-functions/) é um serviço de orquestração de tecnologia sem servidor que permite combinar funções do AWS Lambda e outros serviços da AWS para criar aplicações essenciais aos negócios. A partir do console gráfico do Step Functions, você vê o fluxo de trabalho do seu aplicativo como uma série de etapas orientadas por eventos.
+ O [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) é um serviço de banco de dados NoSQL totalmente gerenciado que fornece uma performance rápida e previsível com escalabilidade integrada. Use o DynamoDB para criar uma tabela do banco de dados que possa armazenar e recuperar qualquer quantidade de dados e atender qualquer nível de tráfego solicitado.
+ O [AWS Lambda](https://aws.amazon.com/lambda/) é um serviço de computação que permite que você execute o 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.
+ [O Amazon API Gateway](https://aws.amazon.com/api-gateway/) é um serviço da AWS para criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://aws.amazon.com/sns/) é um serviço gerenciado que fornece entrega de mensagens de publicadores para assinantes.
+ [O AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/) é uma estrutura de desenvolvimento de software para definir seus recursos de aplicativos em nuvem usando linguagens de programação conhecidas TypeScript, como Python JavaScript, Java e C\$1/.Net.
+ O [AWS Serverless Application Model (AWS SAM)](https://aws.amazon.com/serverless/sam/) é uma estrutura de código aberto para a criação de aplicativos com tecnologia sem servidor. Ele fornece sintaxe abreviada para expressar funções APIs, bancos de dados e mapeamentos de fontes de eventos. 

**Código**

O código de um aplicativo de amostra que demonstra o padrão da saga, incluindo o modelo IaC (AWS CDK, AWS SAM ou Terraform), as funções do Lambda e as tabelas do DynamoDB, pode ser encontrado nos links a seguir. Siga as instruções no primeiro épico para instalá-los.
+ [Implemente com o AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implemente com o AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implemente com o Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Épicos
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-epics"></a>

### Instale pacotes, compile e crie
<a name="install-packages-compile-and-build"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale os pacotes NPM. | Crie um novo diretório, navegue até esse diretório em um terminal e clone o GitHub repositório de sua escolha na seção *Código* anterior nesse padrão.Na pasta raiz que contém o arquivo `package.json`, execute o comando a seguir para baixar e instalar todos os pacotes do Node Package Manager (NPM):<pre>npm install</pre> | Desenvolvedor e arquiteto de nuvem | 
| Compile scripts. | Na pasta raiz, execute o comando a seguir para instruir o TypeScript transpilador a criar todos os arquivos necessários: JavaScript <pre>npm run build</pre> | Desenvolvedor e arquiteto de nuvem | 
| Observe as alterações e recompile. | Na pasta raiz, execute o comando a seguir em uma janela de terminal separada para observar as alterações no código e compilar o código quando detectar uma alteração:<pre>npm run watch</pre> | Desenvolvedor e arquiteto de nuvem | 
| Execute testes de unidade (somente AWS CDK).  | Se você estiver usando o AWS CDK, na pasta raiz, execute o seguinte comando para realizar os testes de unidade do Jest:<pre>npm run test</pre> | Desenvolvedor e arquiteto de nuvem | 

### Implante recursos na conta da AWS de destino
<a name="deploy-resources-to-the-target-aws-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante a pilha de demonstração na AWS. | A aplicação é independente da região da AWS. Se você usar um perfil, deverá declarar a região explicitamente no [perfil da AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) ou por meio de [variáveis de ambiente da AWS CLI.](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)Na pasta raiz, execute o comando a seguir para criar um conjunto de implantação e implantá-lo na conta e região padrão da AWS.AWS CDK:<pre>cdk bootstrap<br />cdk deploy</pre>AWS SAM:<pre>sam build<br />sam deploy --guided</pre>Terraform:<pre>terraform init<br />terraform apply</pre>Esta etapa pode demorar vários minutos para que seja concluída. Esse comando usa as credenciais padrão que foram configuradas para a AWS CLI.Observe o URL do API Gateway que é exibida no console após a conclusão da implantação. Você precisará dessas informações para testar o fluxo de execução da saga. | Desenvolvedor e arquiteto de nuvem | 
| Compare a pilha implantada com o estado atual. | Na pasta raiz, execute o comando a seguir para comparar a pilha implantada com o estado atual depois de fazer alterações no código-fonte:AWS CDK:<pre>cdk diff</pre>AWS SAM:<pre>sam deploy</pre>Terraform:<pre>terraform plan</pre> | Desenvolvedor e arquiteto de nuvem | 

### Teste o fluxo de execução
<a name="test-the-execution-flow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o fluxo de execução da saga. | Navegue até o URL do API Gateway que você anotou na etapa anterior, ao implantar a pilha. Esse URL aciona a inicialização da máquina de estado. Para obter mais informações sobre como manipular o fluxo da máquina de estado passando parâmetros de URL diferentes, consulte a seção [Informações adicionais](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional).Para ver os resultados, faça login no Console de Gerenciamento da AWS e navegue até o console do Step Functions. Aqui, você pode ver cada passo da máquina de estado da saga. Você também pode visualizar a tabela do DynamoDB para ver os registros inseridos, atualizados ou excluídos. Se você atualizar a tela com frequência, poderá observar a mudança do status da transação de `pending` para `confirmed`. Você pode assinar o tópico do SNS atualizando o código no arquivo `stateMachine.ts` com seu número de telefone celular para receber mensagens SMS em caso de reservas bem-sucedidas ou malsucedidas. Para obter mais informações, consulte *Amazon SNS* na seção [Informações adicionais](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional). | Desenvolvedor e arquiteto de nuvem | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpar os recursos. | Para limpar os recursos implantados para esse aplicativo, você pode usar um dos seguintes comandos.AWS CDK:<pre>cdk destroy</pre>AWS SAM:<pre>sam delete</pre>Terraform:<pre>terraform destroy</pre> | Desenvolvedor de aplicativos, arquiteto de nuvem | 

## Recursos relacionados
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-resources"></a>

**Artigos técnicos**
+ [Implementação de microsserviços na AWS](https://docs.aws.amazon.com/pdfs/whitepapers/latest/microservices-on-aws/microservices-on-aws.pdf)
+ [Perspectiva de aplicativos com tecnologia sem servidor ](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)

**Documentação do serviço da AWS**
+ [Conceitos básicos do AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
+ [Conceitos básicos do AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html)
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/)
+ [Amazon DynamoDB](https://docs.aws.amazon.com/dynamodb/)
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/)
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

**Tutoriais**
+ [Workshops práticos sobre computação com tecnologia sem servidor](https://aws.amazon.com/serverless-workshops/)

## Mais informações
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional"></a>

**Código**

Para fins de teste, esse padrão implanta o API Gateway e uma função do Lambda de teste que aciona a máquina de estado Step Functions. Com o Step Functions, você pode controlar a funcionalidade do sistema de reserva de viagens passando um `run_type` parâmetro para simular falhas em "ReserveFlight,” "ReserveCarRental,” "ProcessPayment,”ConfirmFlight,” e "”ConfirmCarRental.

A função do Lambda `saga` (`sagaLambda.ts`) recebe a entrada dos parâmetros de consulta no URL do API Gateway, cria o seguinte objeto JSON e o passa para o Step Functions para execução:

```
let input = {
"trip_id": tripID, //  value taken from query parameter, default is AWS request ID
"depart_city": "Detroit",
"depart_time": "2021-07-07T06:00:00.000Z",
"arrive_city": "Frankfurt",
"arrive_time": "2021-07-09T08:00:00.000Z",
"rental": "BMW",
"rental_from": "2021-07-09T00:00:00.000Z",
"rental_to": "2021-07-17T00:00:00.000Z",
"run_type": runType // value taken from query parameter, default is "success"
};
```

Você pode experimentar diferentes fluxos da máquina de estado Step Functions passando os seguintes parâmetros de URL:
+ **Execução bem-sucedida** ─ https://\$1api gateway url\$1
+ **Falha no voo de reserva** ─ https://\$1api gateway url\$1? **Tipo de execução = failFlightsReservation**
+ **Confirme a falha do voo** ─ https://\$1api gateway url\$1? **Tipo de execução = failFlightsConfirmation**
+ **Falha na reserva do aluguel** de carros ─ https://\$1api gateway url\$1? **RunType= Reserva failCarRental**
+ **Confirme a falha no aluguel do carro** ─ https://\$1api gateway url\$1? **RunType= Confirmação failCarRental**
+ **Falha no processo de pagamento** ─ https://\$1api gateway url\$1?**runType=failPayment**
+ **Passe um ID de viagem** ─ https://\$1api gateway url\$1?**tripID=**\$1por padrão, o ID da viagem será o ID da solicitação da AWS\$1

**Modelos de IaC**

Os repositórios vinculados incluem modelos de IaC que você pode usar para criar toda a amostra do aplicativo de reserva de viagens.
+ [Implemente com o AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implemente com o AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implemente com o Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

**Tabelas do DynamoDB**

Aqui estão os modelos de dados para as tabelas de voos, aluguéis de carros e pagamentos.

```
Flight Data Model:
 var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: flightReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: flightReservationID},
        'depart_city' : {S: event.depart_city},
        'depart_time': {S: event.depart_time},
        'arrive_city': {S: event.arrive_city},
        'arrive_time': {S: event.arrive_time},
        'transaction_status': {S: 'pending'}
      }
    };

Car Rental Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: carRentalReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: carRentalReservationID},
        'rental': {S: event.rental},
        'rental_from': {S: event.rental_from},
        'rental_to': {S: event.rental_to},
        'transaction_status': {S: 'pending'}
      }
    };

Payment Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: paymentID},
        'trip_id' : {S: event.trip_id},
        'id': {S: paymentID},
        'amount': {S: "750.00"}, // hard coded for simplicity as implementing any monetary transaction functionality is beyond the scope of this pattern
        'currency': {S: "USD"},
        'transaction_status': {S: "confirmed"}
      }
    };
```

**Funções do Lambda**

As seguintes funções serão criadas para suportar o fluxo e a execução da máquina de estado no Step Functions:
+ **Reservar voos**: insere um registro na tabela de voos do DynamoDB com um `transaction_status` de `pending`, para reservar um voo.
+ **Confirmar voo**: atualiza o registro na tabela de voos do DynamoDB, para definir `transaction_status` como `confirmed`, para confirmar o voo.
+ **Cancelar reserva de voos**: exclui o registro da tabela de voos do DynamoDB para cancelar o voo pendente.
+ **Reserve locações de veículos**: insere um registro na tabela do CarRentals DynamoDB com `transaction_status` um de, para reservar um aluguel `pending` de carro.
+ **Confirmar aluguel de carros**: atualiza o registro na tabela do CarRentals DynamoDB, para `transaction_status` definir como, `confirmed` para confirmar o aluguel do carro.
+ **Cancelar reserva de aluguel de carro:** exclui o registro da tabela do CarRentals DynamoDB para cancelar o aluguel de carro pendente.
+ **Processar pagamento**: insere um registro na tabela de pagamentos do DynamoDB para o pagamento.
+ **Cancelar pagamento**: exclui o registro do pagamento da tabela de pagamentos do DynamoDB.

**Amazon SNS**

O aplicativo de amostra cria o tópico e a assinatura a seguir para enviar mensagens SMS e notificar o cliente sobre reservas bem-sucedidas ou malsucedidas. Se você quiser receber mensagens de texto enquanto testa o aplicativo de amostra, atualize a assinatura de SMS com seu número de telefone válido no arquivo de definição da máquina de estado.

Trecho do AWS CDK (adicione o número de telefone na segunda linha do código a seguir):

```
const topic = new  sns.Topic(this, 'Topic');
topic.addSubscription(new subscriptions.SmsSubscription('+11111111111'));
const snsNotificationFailure = new tasks.SnsPublish(this ,'SendingSMSFailure', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation Failed'),
});
 
const snsNotificationSuccess = new tasks.SnsPublish(this ,'SendingSMSSuccess', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation is Successful'),
});
```

Trecho do AWS SAM (substitua as strings `+1111111111` pelo seu número de telefone válido):

```
  StateMachineTopic11111111111:
    Type: 'AWS::SNS::Subscription'
    Properties:
      Protocol: sms
      TopicArn:
        Ref: StateMachineTopic
      Endpoint: '+11111111111'
    Metadata:
      'aws:sam:path': SamServerlessSagaStack/StateMachine/Topic/+11111111111/Resource
```

Trecho do Terraform (substitua a string `+111111111` pelo seu número de telefone válido):

```
resource "aws_sns_topic_subscription" "sms-target" {
  topic_arn = aws_sns_topic.topic.arn
  protocol  = "sms"
  endpoint  = "+11111111111"
}
```

**Reservas bem-sucedidas**

O fluxo a seguir ilustra uma reserva bem-sucedida com "ReserveFlight,” "ReserveCarRental,” e "ProcessPayment" seguido por "ConfirmFlight" e "”ConfirmCarRental. O cliente é notificado sobre a reserva bem-sucedida por meio de mensagens SMS enviadas ao assinante do tópico do SNS.

![\[Exemplo de uma reserva bem-sucedida implementada pelo Step Functions usando o padrão saga.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/f58c894e-7721-4bc7-8f7d-29f23faa5dc1.png)


**Reservas malsucedidas**

Esse fluxo é um exemplo de falha no padrão da saga. Se, após a reserva de voos e aluguel de carros, "ProcessPayment" falhar, as etapas serão canceladas na ordem inversa.  As reservas são liberadas e o cliente é notificado da falha por meio de mensagens SMS que são enviadas ao assinante do tópico do SNS.

![\[Exemplo de uma reserva com falha implementada pelo Step Functions usando o padrão saga.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/7c64d326-be27-42c3-b03f-d677efedb9a7.png)


# Gerencie aplicativos de contêineres on-premises configurando o Amazon ECS Anywhere com o AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Resumo
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

O [Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) é uma extensão do Amazon Elastic Container Service (Amazon ECS). Você pode usar o ECS Anywhere para implantar tarefas nativas do Amazon ECS em um ambiente on-premises ou gerenciado pelo cliente. Esse atributo ajuda a reduzir custos e mitigar operações e orquestrações complexas de contêineres locais. Você pode usar o ECS Anywhere para implantar e executar aplicativos de contêiner em ambientes on-premises e na nuvem. Isso elimina a necessidade de sua equipe aprender vários domínios e conjuntos de habilidades ou gerenciar softwares complexos por conta própria.

Esse padrão demonstra as etapas para configurar o ECS Anywhere usando pilhas do AWS Cloud Development Kit ([AWS CDK](https://aws.amazon.com/cdk/));

## Pré-requisitos e limitações
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ AWS Command Line Interface (AWS CLI), instalada e configurada. (Consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) na documentação da AWS CLI.) 
+ AWS CDK Toolkit, instalado e configurado. (Consulte o [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) na documentação do AWS CDK e siga as instruções para instalar a versão 2 globalmente.)
+ Gerenciador de pacotes Node (npm), instalado e configurado para o AWS CDK em. TypeScript (Consulte [Como baixar e instalar o Node.js e o npm ](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) na documentação do npm.)

**Limitações**
+ Para limitações e considerações, consulte [Instâncias externas (Amazon ECS Anywhere)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations) na documentação do Amazon ECS.

**Versões do produto**
+ AWS CDK Toolkit versão 2
+ npm versão 7.20.3 ou superior
+ Node.js versão 16.6.1 ou superior

## Arquitetura
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Pilha de tecnologias de destino**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Arquitetura de destino**

O diagrama a seguir ilustra uma arquitetura de sistema de alto nível da configuração do ECS Anywhere usando o AWS CDK com TypeScript, conforme implementado por esse padrão.

1. Quando você implanta a pilha de CDK da AWS, ela cria uma CloudFormation pilha na AWS.

1. A CloudFormation pilha provisiona um cluster do Amazon ECS e recursos relacionados da AWS.

1. Para registrar uma instância externa com um cluster do Amazon ECS, você deve instalar o AWS Systems Manager Agent (SSM Agent) na sua máquina virtual (VM) e registrar a VM como uma instância gerenciada do AWS Systems Manager. 

1. Você deve instalar o agente de contêiner do Amazon ECS e o Docker na sua VM para registrá-la como instância externa com o cluster do Amazon ECS.

1. Quando a instância externa é registrada e configurada com o cluster Amazon ECS, ela pode executar vários contêineres na sua VM, que é registrada como uma instância externa.

![\[Configuração do ECS Anywhere usando o AWS CDK com. TypeScript\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automação e escala**

O [GitHub repositório](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) fornecido com esse padrão usa o AWS CDK como uma ferramenta de infraestrutura como código (IaC) para criar a configuração dessa arquitetura. O AWS CDK ajuda você a orquestrar recursos e configurar o ECS Anywhere.

## Ferramentas
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ 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.
+ A [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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.

**Código **

O código-fonte desse padrão está disponível no GitHub repositório [Amazon ECS Anywhere CDK](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples) Samples. Para clonar e usar o repositório, siga as instruções na próxima seção.

## Épicos
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifique a configuração do AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique a versão do AWS CDK. | Verifique a versão do AWS CDK Toolkit executando o seguinte comando:<pre>cdk --version</pre>Esse padrão requer o AWS CDK versão 2. Se você tiver uma versão anterior do AWS CDK, siga as instruções na [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) para atualizá-la. | DevOps engenheiro | 
| Configure as credenciais da AWS. | Para configurar as credenciais, execute o comando `aws configure` e siga as instruções:<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps engenheiro | 

### Faça o bootstrap do ambiente do AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos do AWS CDK. | Clone o repositório de GitHub código desse padrão usando o comando:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps engenheiro | 
| Inicialize o ambiente do . | Para implantar o CloudFormation modelo da AWS na conta e na região da AWS que você deseja usar, execute o seguinte comando:<pre>cdk bootstrap <account-number>/<Region></pre>Para obter mais informações, consulte [Inicialização](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) na documentação do AWS CDK. | DevOps engenheiro | 

### Crie e implante o projeto
<a name="build-and-deploy-the-project"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale as dependências do pacote e compile TypeScript os arquivos. | Instale as dependências do pacote e compile os TypeScript arquivos executando os seguintes comandos:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Esses comandos instalam todos os pacotes do repositório de exemplo. Se você receber algum erro sobre pacotes ausentes, use um dos seguintes comandos:<pre>$npm ci   </pre>—ou—<pre>$npm install -g @aws-cdk/<package_name></pre>Para obter mais informações, consulte [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) e  [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) na documentação do npm. | DevOps engenheiro | 
| Crie o projeto. | Para construir o código do projeto, execute o comando:<pre>npm run build</pre>Para obter mais informações sobre como criar e implantar o projeto, consulte [Seu primeiro aplicativo da AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) na documentação do AWS CDK. | DevOps engenheiro | 
| Implante o projeto. | Para implantar o código do projeto, execute o comando:<pre>cdk deploy</pre> | DevOps engenheiro | 
| Verifique a criação e a saída da pilha. | Abra o CloudFormation console da AWS em [https://console.aws.amazon.com/cloudformation****](https://console.aws.amazon.com/cloudformation/) e escolha a pilha. `EcsAnywhereStack` A guia **Saídas** mostra os comandos a serem executados em sua VM externa. | DevOps engenheiro | 

### Configurar uma máquina on-premises
<a name="set-up-an-on-premises-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure sua VM usando o Vagrant. | Para fins de demonstração, você pode usar o [HashiCorp Vagrant](https://www.vagrantup.com/) para criar uma VM. O Vagrant é um utilitário de código aberto para criar e manter ambientes portáteis de desenvolvimento de software virtual. Crie uma VM Vagrant executando o comando `vagrant up` a partir do diretório raiz em que o Vagrantfile está colocado. Para obter mais informações, consulte a [documentação do Vagrant](https://www.vagrantup.com/docs/cli/up). | DevOps engenheiro | 
| Registre sua VM como uma instância externa. | 1. Faça login na VM Vagrant usando o comando `vagrant ssh`. Para obter mais informações, consulte a [documentação do Vagrant](https://www.vagrantup.com/docs/cli/ssh).2. Crie um código de ativação e um ID que você possa usar para registrar sua VM no AWS Systems Manager e ativar sua instância externa. A saída desse comando inclui os valores `ActivationId` e `ActivationCode`: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Exporte a ID de ativação e os valores do código:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. No servidor on-premises ou na máquina virtual (VM), baixe o script de instalação:<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre>5. No servidor on-premises ou na máquina virtual (VM), execute o script de instalação:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre>Para obter mais informações sobre como configurar e registrar sua VM, consulte [Registro de uma instância externa em um cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) na documentação do Amazon ECS. | DevOps engenheiro | 
| Verifique o status do ECS Anywhere e da VM externa. | Para verificar se sua caixa virtual está conectada ao ambiente de gerenciamento do Amazon ECS e em execução, use os seguintes comandos:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps engenheiro | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpe e exclua recursos. | Depois de percorrer esse padrão, você deve remover os recursos criados para evitar cobranças adicionais. Para limpar, execute o comando:<pre>cdk destroy</pre> | DevOps engenheiro | 

## Recursos relacionados
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Documentação do Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demonstração do Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Exemplos de workshops do Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)

# Modernize aplicativos ASP.NET Web Forms na AWS
<a name="modernize-asp-net-web-forms-applications-on-aws"></a>

*Vijai Anand Ramalingam e Sreelaxmi Pai, Amazon Web Services*

## Resumo
<a name="modernize-asp-net-web-forms-applications-on-aws-summary"></a>

Este padrão descreve as etapas necessárias para realizar a modernização de uma aplicação legada e monolítica do ASP.NET Web Forms, migrando-a para o ASP.NET Core na AWS.

A portabilidade de aplicativos ASP.NET Web Forms para o ASP.NET Core ajuda você a aproveitar o desempenho, a redução de custos e o ecossistema robusto do Linux. No entanto, pode ser um esforço manual significativo. Nesse padrão, o aplicativo herdado é modernizado de forma incremental usando uma abordagem em fases e, em seguida, conteinerizado na Nuvem AWS.

Considere um aplicativo monolítico antigo para um carrinho de compras. Vamos supor que ele foi criado como um aplicativo ASP.NET Web Forms e consiste em páginas.aspx com um arquivo code-behind (`aspx.cs`). O processo de modernização consiste em três etapas:

1. Divida o monólito em microsserviços usando os padrões de decomposição apropriados. Para obter mais informações, consulte o guia [Decomposição de monólitos em microsserviços](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-decomposing-monoliths/) no site de Recomendações da AWS.

1. Porte seu aplicativo antigo ASP.NET Web Forms (.NET Framework) para o ASP.NET Core no.NET 5 ou superior. Nesse padrão, você usa o Assistente de Portabilidade para .NET para verificar seu aplicativo ASP.NET Web Forms e identificar incompatibilidades com o ASP.NET Core. Isso reduz o esforço de portabilidade manual.

1. Redesenvolva a camada de interface do usuário do Web Forms usando o React. Esse padrão não abrange a remodelação da interface do usuário. Para obter instruções, consulte [Criar um novo aplicativo React](https://reactjs.org/docs/create-a-new-react-app.html) na documentação do React.

1. Redesenvolva o arquivo code-behind do Web Forms (interface comercial) como uma API web do ASP.NET Core. Esse padrão usa NDepend relatórios para ajudar a identificar os arquivos e dependências necessários.

1. Atualize shared/common projetos, como Business Logic e Data Access, em seu aplicativo legado para o.NET 5 ou posterior usando o Porting Assistant para.NET. 

1. Adicione serviços da AWS para complementar seu aplicativo. Por exemplo, você pode usar o [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) para monitorar, armazenar e acessar os registros do seu aplicativo, e o [AWS Systems Manager](https://aws.amazon.com/systems-manager/) para armazenar as configurações do seu aplicativo.

1. Coloque o aplicativo ASP.NET Core modernizado em contêiner. Esse padrão cria um arquivo Docker que tem como destino o Linux no Visual Studio e usa o Docker Desktop para testá-lo localmente. Essa etapa pressupõe que seu aplicativo legado já esteja sendo executado em uma instância local ou no Amazon Elastic Compute Cloud (Amazon EC2) Windows. Para obter mais informações, consulte o padrão [Executar um contêiner Docker da API web ASP.NET Core em uma instância do Amazon EC2 Linux](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html).

1. Implantar o aplicativo ASP.NET core modernizado no Amazon Elastic Container Service (Amazon ECS). Esse padrão não abrange a etapa de implantação. Para obter instruções, consulte o [Workshop do Amazon ECS](https://ecsworkshop.com/).

**nota**  
Este padrão não abrange o desenvolvimento da interface do usuário, a modernização do banco de dados ou as etapas de implantação em contêineres.

## Pré-requisitos e limitações
<a name="modernize-asp-net-web-forms-applications-on-aws-prereqs"></a>

**Pré-requisitos **
+ [Visual Studio](https://visualstudio.microsoft.com/downloads/) ou [Visual Studio Code](https://code.visualstudio.com/download), baixado e instalado.
+ Acesso a uma conta da AWS usando o Console de Gerenciamento da AWS e a AWS Command Line Interface (AWS CLI), versão 2. (Consulte [Instruções para configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).)
+ AWS Toolkit for Visual Studio (consulte [instruções de configuração](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html)).
+ Docker Desktop, [baixado](https://www.docker.com/products/docker-desktop) e instalado.
+ .NET SDK, [baixado](https://download.visualstudio.microsoft.com/download/pr/4263dc3b-dc67-4f11-8d46-cc0ae86a232e/66782bbd04c53651f730b2e30a873f18/dotnet-sdk-5.0.203-win-x64.exe) e instalado.
+ NDepend ferramenta, [baixada](https://www.ndepend.com/download) e instalada. Para instalar a NDepend extensão para o Visual Studio, execute `NDepend.VisualStudioExtension.Installer` ([consulte as instruções](https://www.ndepend.com/docs/getting-started-with-ndepend#Part1)). Você pode selecionar o Visual Studio 2019 ou 2022, dependendo dos seus requisitos. 
+ Assistente de Portabilidade para .NET, [baixado](https://aws.amazon.com/porting-assistant-dotnet/) e instalado.

## Arquitetura
<a name="modernize-asp-net-web-forms-applications-on-aws-architecture"></a>

**Modernizando o aplicativo do carrinho de compras**

O diagrama a seguir ilustra o processo de modernização de um aplicativo antigo de carrinho de compras ASP.NET.

![\[Modernizando um aplicativo antigo de carrinho de compras\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/4367e259-9bb3-4eb6-a54d-1c1e2dece7d4.png)


**Arquitetura de destino**

O diagrama a seguir ilustra a arquitetura do aplicativo de carrinho de compras modernizado na AWS. O ASP.NET Core web APIs é implantado em um cluster Amazon ECS. Os serviços de registro e configuração são fornecidos pela Amazon CloudWatch Logs e pelo AWS Systems Manager.

![\[Arquitetura de destino para o aplicativo ASP.NET Web Forms na AWS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/ed6d65ec-0dc9-43ab-ac07-1f172e089399.png)


## Ferramentas
<a name="modernize-asp-net-web-forms-applications-on-aws-tools"></a>

**Serviços da AWS**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html): o Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido para execução, interrupção e gerenciamento de contêineres em um cluster. Você pode executar tarefas e serviços em uma infraestrutura com tecnologia gerenciada pelo AWS Fargate. Como alternativa, para ter mais controle sobre sua infraestrutura, você pode executar suas tarefas e serviços em um cluster de EC2 instâncias que você gerencia.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) — O Amazon CloudWatch Logs centraliza os registros de todos os seus sistemas, aplicativos e serviços da AWS que você usa. Você pode visualizar e monitorar os logs, pesquisá-los em busca de códigos de erro ou padrões específicos, filtrá-los com base em campos específicos ou arquivá-los com segurança para análise futura.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ─ O AWS Systems Manager é um serviço da AWS que você pode usar para visualizar e controlar sua infraestrutura na AWS. Usando o console do Systems Manager, você pode visualizar dados operacionais de vários serviços da AWS e automatizar tarefas operacionais nos recursos da AWS. O Systems Manager ajuda você a manter a segurança e a conformidade verificando suas instâncias gerenciadas e gerando relatórios (ou tomando medidas corretivas) sobre quaisquer violações de políticas detectadas.

**Ferramentas**
+ [Visual Studio](https://visualstudio.microsoft.com/) ou [Visual Studio Code](https://code.visualstudio.com/) — Ferramentas para criar aplicativos.NET APIs, web e outros programas.
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html): uma extensão do Visual Studio que ajuda a desenvolver, depurarem e implantarem aplicações .NET que usam os serviços da AWS.
+ [Docker Desktop](https://www.docker.com/products/docker-desktop): uma ferramenta que simplifica a criação e a implantação de aplicativos em contêineres.
+ [NDepend](https://www.ndepend.com/features/)— Um analisador que monitora o código.NET em busca de dependências, problemas de qualidade e alterações no código.
+ [Assistente de Portabilidade para .NET](https://aws.amazon.com/porting-assistant-dotnet/): uma ferramenta de análise que escaneia o código .NET para identificar incompatibilidades com o.NET Core e estimar o esforço de migração.

## Épicos
<a name="modernize-asp-net-web-forms-applications-on-aws-epics"></a>

### Porte seu aplicativo herdado para o.NET 5 ou versão posterior
<a name="port-your-legacy-application-to-net-5-or-later-version"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize seu aplicativo herdado do .NET Framework para o .NET 5. | Você pode usar o Assistente de Portabilidade para .NET para converter seu aplicativo herdado ASP.NET Web Forms em .NET 5 ou superior. Siga as instruções na [documentação do Assistente de Portabilidade para .NET](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-getting-started.html). | Desenvolvedor de aplicativos | 
| Gere NDepend relatórios. | Ao modernizar seu aplicativo ASP.NET Web Forms decompondo-o em microsserviços, talvez você não precise de todos os arquivos.cs do aplicativo herdado. Você pode usar NDepend para gerar um relatório para qualquer arquivo code-behind (.cs), para obter todos os chamadores e chamadores. Esse relatório ajuda você a identificar e usar somente os arquivos necessários em seus microsserviços.Depois de instalar NDepend (consulte a seção [Pré-requisitos](#modernize-asp-net-web-forms-applications-on-aws-prereqs)), abra a solução (arquivo.sln) para seu aplicativo legado no Visual Studio e siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Esse processo gera um relatório para o arquivo code-behind que lista todos os chamadores e chamados. Para obter mais informações sobre o gráfico de dependências, consulte a [NDepend documentação](https://www.ndepend.com/docs/visual-studio-dependency-graph). | Desenvolvedor de aplicativos | 
| Criar uma nova solução .NET 5. | Para criar uma nova estrutura do.NET 5 (ou posterior) para sua web ASP.NET Core modernizada: APIs[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Para obter mais informações sobre como criar projetos e soluções, consulte a [documentação do Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/creating-solutions-and-projects).Ao criar a solução e verificar a funcionalidade, você pode identificar vários arquivos adicionais a serem adicionados à solução, além dos arquivos NDepend identificados. | Desenvolvedor de aplicativos | 

### Atualize seu código de aplicativo.
<a name="update-your-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implemente a web APIs com o ASP.NET Core. | Vamos supor que um dos microsserviços que você identificou em seu aplicativo antigo de carrinho de compras monolítico seja *Produtos*. Você criou um novo projeto de API web do ASP.NET Core para *Produtos* no épico anterior. Nesta etapa, você identifica e moderniza todos os formulários da web (páginas .aspx) relacionados aos *Produtos*. Vamos supor que os *Produtos* consistam em quatro formulários da web, conforme ilustrado anteriormente na seção [Arquitetura](#modernize-asp-net-web-forms-applications-on-aws-architecture):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Você deve analisar cada formulário da web, identificar todas as solicitações enviadas ao banco de dados para realizar alguma lógica e obter respostas. Você pode implementar cada solicitação como um endpoint de API da web. Com base em seus formulários na web, os *Produtos* podem ter os seguintes endpoints possíveis:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Conforme mencionado anteriormente, você também pode reutilizar todos os outros projetos que você atualizou para o.NET 5, incluindo Business Logic, Data Access e shared/common projetos. | Desenvolvedor de aplicativos | 
| Configure o Amazon CloudWatch Logs. | Você pode usar o [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) para monitorar, armazenar e acessar os registros do seu aplicativo. Você pode registrar dados no Amazon CloudWatch Logs usando um SDK da AWS. Você também pode integrar aplicativos.NET com o CloudWatch Logs usando estruturas de registro do.NET populares [NLog](https://www.nuget.org/packages/AWS.Logger.NLog/), como [Log4Net e [ASP.NET](https://www.nuget.org/packages/AWS.Logger.AspNetCore/)](https://www.nuget.org/packages/AWS.Logger.Log4net/) Core.Para obter mais informações sobre essa etapa, consulte a postagem no blog [Amazon CloudWatch Logs and .NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/). | Desenvolvedor de aplicativos | 
| Configure a AWS Systems Manager Parameter Store. | Você pode usar o [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) para armazenar configurações do aplicativo, como strings de conexão, separadamente do código do seu aplicativo. O NuGet pacote [Amazon.Extensions.Configuration. SystemsManager](https://www.nuget.org/packages/Amazon.Extensions.Configuration.SystemsManager/)simplifica a forma como seu aplicativo carrega essas configurações do AWS Systems Manager Parameter Store no sistema de configuração.NET Core. Para obter mais informações sobre essa etapa, consulte a postagem no blog [Provedor de configuração do .NET Core para o AWS Systems Manager](https://aws.amazon.com/blogs/developer/net-core-configuration-provider-for-aws-systems-manager/). | Desenvolvedor de aplicativos | 

### Adicione autenticação e autorização
<a name="add-authentication-and-authorization"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Use um cookie compartilhado para autenticação. | Modernizar um aplicativo monolítico herdado é um processo iterativo e exige que o monólito e sua versão modernizada coexistam. Você pode usar um cookie compartilhado para obter uma autenticação perfeita entre as duas versões. O aplicativo ASP.NET herdado continua validando as credenciais do usuário e emite o cookie, enquanto o aplicativo ASP.NET Core modernizado valida o cookie. Para obter instruções e exemplos de código, consulte o [ GitHub projeto de amostra](https://github.com/aws-samples/dotnet-share-auth-cookie-between-monolith-and-modernized-apps). | Desenvolvedor de aplicativos | 

### Compilar e executar o contêiner localmente
<a name="build-and-run-the-container-locally"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma imagem do Docker usando o Visual Studio. | Nesta etapa, você cria um arquivo Docker usando a API web do Visual Studio for .NET Core.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)O Visual Studio cria um arquivo Docker para seu projeto. Para obter um exemplo de arquivo Docker, consulte [Visual Studio Container Tools for Docker](https://docs.microsoft.com/en-us/visualstudio/containers/overview) no site da Microsoft. | Desenvolvedor de aplicativos | 
| Crie e execute o contêiner usando o Docker Desktop. | Agora você pode compilar, criar e executar o contêiner no Docker Desktop.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html) | Desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="modernize-asp-net-web-forms-applications-on-aws-resources"></a>
+ [Execute um contêiner Docker da API web ASP.NET Core em uma instância Amazon EC2 Linux](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html) (AWS Prescriptive Guidance)
+ [Workshop do Amazon ECS](https://ecsworkshop.com/)
+ [Execute blue/green implantações do ECS usando a CodeDeploy AWS (documentação CloudFormation da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) CloudFormation )
+ [Começando com NDepend](https://www.ndepend.com/docs/getting-started-with-ndepend) (NDepend documentação)
+ [Assistente de Portabilidade para .NET](https://aws.amazon.com/porting-assistant-dotnet/)

## Mais informações
<a name="modernize-asp-net-web-forms-applications-on-aws-additional"></a>

As tabelas a seguir fornecem exemplos de projetos para um aplicativo antigo de carrinho de compras e os projetos equivalentes em seu aplicativo ASP.NET Core modernizado.

**Solução antiga:**


| 
| 
| Nome do projeto | Modelo de projeto | Estrutura de destino | 
| --- |--- |--- |
| Interface de negócios  | Biblioteca de classes  | NET Framework  | 
| BusinessLogic  | Biblioteca de classes  | NET Framework  | 
| WebApplication  | Aplicativo Web do ASP.NET Framework  | NET Framework  | 
| UnitTests  | NUnit Projeto de teste  | NET Framework  | 
| Compartilhado ->Comum  | Biblioteca de classes  | NET Framework  | 
| Compartilhado ->Estrutura  | Biblioteca de classes  | NET Framework  | 

**Nova solução:**


| 
| 
| Nome do projeto | Modelo de projeto | Estrutura de destino | 
| --- |--- |--- |
| BusinessLogic  | Biblioteca de classes  | .NET 5.0  | 
| <WebAPI>  | API Web do ASP.NET Core  | .NET 5.0  | 
| <WebAPI>. UnitTests  | NUnit 3 Projeto de teste  | .NET 5.0  | 
| Compartilhado ->Comum  | Biblioteca de classes  | .NET 5.0  | 
| Compartilhado ->Estrutura  | Biblioteca de classes  | .NET 5.0  | 

# Integração de locatários na arquitetura de SaaS para o modelo de silo usando C\$1 e o AWS CDK
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk"></a>

*Tabby Ward, Susmitha Reddy Gankidi e Vijai Anand Ramalingam, Amazon Web Services*

## Resumo
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-summary"></a>

Os aplicativos de software como serviço (SaaS) podem ser criados com uma variedade de modelos arquitetônicos diferentes. O *modelo de silo* se refere a uma arquitetura em que os locatários recebem recursos dedicados.

Os aplicativos SaaS dependem de um modelo simples para introduzir novos locatários em seu ambiente. Isso geralmente requer a orquestração de vários componentes para provisionar e configurar com êxito todos os elementos necessários para criar um novo locatário. Esse processo, na arquitetura SaaS, é chamado de integração de locatários. A integração deve ser totalmente automatizada para cada ambiente SaaS, utilizando a infraestrutura como código em seu processo de integração.

Esse padrão orienta você por meio de um exemplo de criação de um locatário e provisionamento de uma infraestrutura básica para o locatário na Amazon Web Services (AWS). O padrão usa C\$1 e o AWS Cloud Development Kit (AWS CDK).

Como esse padrão cria um alarme de faturamento, recomendamos implantar a pilha na região da AWS do Leste dos EUA (Norte da Virgínia) ou us-east-1. Para obter mais informações, consulte a [documentação da AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

## Pré-requisitos e limitações
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-prereqs"></a>

**Pré-requisitos**** **
+ Uma [conta AWS](https://aws.amazon.com/account/) ativa
+ Uma entidade principal do Identity and Access Management (IAM) da AWS com acesso suficiente ao IAM para criar recursos da AWS para esse padrão. Para obter mais informações, consulte os [perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).
+ [Instale a Amazon Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)) e [configure a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) para realizar a implantação do AWS CDK.
+ [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) baixado e instalado ou [Visual Studio Code](https://code.visualstudio.com/download) baixado e instalado.
+ Configuração do [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html).
+ [.NET Core 3.1 ou superior](https://dotnet.microsoft.com/download/dotnet-core/3.1) (exigido para aplicativos C\$1 AWS CDK)
+ [Amazon.Lambda.Tools](https://github.com/aws/aws-extensions-for-dotnet-cli#aws-lambda-amazonlambdatools) instalado.

**Limitações**** **
+ O AWS CDK usa a [AWS CloudFormation](https://aws.amazon.com/cloudformation/), então os aplicativos do AWS CDK estão sujeitos às cotas de CloudFormation serviço. Para obter mais informações, consulte [as CloudFormation cotas da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html). 
+ A CloudFormation pilha de inquilinos é criada com uma função CloudFormation de serviço `infra-cloudformation-role` com caracteres curinga nas ações (`sns`\$1 e`sqs*`), mas com recursos restritos ao prefixo. `tenant-cluster` Para um caso de uso de produção, avalie essa configuração e forneça somente o acesso necessário a esse perfil de serviço. A função `InfrastructureProvision` Lambda também usa um caractere curinga (`cloudformation*`) para provisionar a CloudFormation pilha, mas com recursos restritos ao prefixo. `tenant-cluster`
+ Este exemplo de código docker usa `--platform=linux/amd64` para forçar imagens baseadas em `linux/amd64`. Isso é para garantir que os artefatos finais da imagem sejam adequados para o Lambda que, por padrão, usa a arquitetura x86-64. Se você precisar alterar a arquitetura Lambda de destino, certifique-se de alterar os códigos do Dockerfiles e do AWS CDK. Para obter mais informações, consulte a publicação do blog [Migrar funções do Lambda AWS para processadores AWS Graviton2 baseados em ARM](https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-to-arm-based-aws-graviton2-processors/).
+ O processo de exclusão da pilha não limpará CloudWatch os registros (grupos de registros e registros) gerados pela pilha. Você deve limpar manualmente os registros por meio do AWS Management Console, CloudWatch console da Amazon ou por meio da API.

Esse padrão é configurado como exemplo. Para uso em produção, avalie as seguintes configurações e faça alterações com base nos requisitos da sua empresa:
+ O bucket do [AWS Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) neste exemplo não tem o versionamento habilitado para simplificar. Avalie e atualize a configuração conforme necessário.
+ Este exemplo configura os endpoints da API REST do [Amazon API Gateway](https://aws.amazon.com/api-gateway/) sem autenticação, autorização ou controle de utilização para simplificar. Para uso em produção, recomendamos integrar o sistema à infraestrutura de segurança da empresa. Avalie essa configuração e adicione as configurações de segurança exigidas conforme necessário.
+ Para este exemplo de infraestrutura de locatários, o [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns/) e o [Amazon Simple Queue Service (Amazon SQS) têm apenas configurações mínimas](https://aws.amazon.com/sqs/). [O [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) de cada locatário abre os serviços da Amazon e do [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) SNS na conta para consumo com base na política de chaves do AWS KMS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html#compatibility-with-aws-services) A configuração é apenas um exemplo de espaço reservado. Ajuste as configurações conforme necessário com base no seu caso de uso de negócios.
+ Toda a configuração, que inclui, mas não se limita a endpoints de API e inquilinos de back-end, provisionamento e exclusão usando a AWS CloudFormation, abrange apenas o caso básico do Happy Path. Avalie e atualize a configuração com a lógica de repetição necessária, a lógica adicional de tratamento de erros e a lógica de segurança com base nas necessidades de sua empresa.
+ O código de exemplo é testado com up-to-date [cdk-nag](https://github.com/cdklabs/cdk-nag) para verificar as políticas no momento da redação deste artigo. Novas políticas podem ser aplicadas no futuro. Essas novas políticas podem exigir que você modifique manualmente a pilha com base nas recomendações antes que a pilha possa ser implantada. Revise o código existente para garantir que ele esteja alinhado aos requisitos da sua empresa.
+ O código depende do AWS CDK para gerar um sufixo aleatório em vez de depender de nomes físicos atribuídos estáticos para a maioria dos recursos criados. Essa configuração é para garantir que esses recursos sejam exclusivos e não entrem em conflito com outras pilhas. Para obter mais informações, consulte a [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources_physical_names). Ajuste isso com base nos requisitos da sua empresa.
+ Este código de exemplo empacota artefatos do.NET Lambda em imagens baseadas em Docker e é executado com o [Runtime de imagem de contêiner](https://docs.aws.amazon.com/lambda/latest/dg/csharp-image.html) fornecido pelo Lambda. O runtime da imagem do contêiner tem vantagens para mecanismos padrão de transferência e armazenamento (registros de contêiner) e ambientes de teste locais mais precisos (por meio da imagem do contêiner). Você pode mudar o projeto para usar os [.NET runtimes fornecidos pelo Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) para reduzir o tempo de criação das imagens do Docker, mas precisará configurar mecanismos de transferência e armazenamento e garantir que a configuração local corresponda à configuração do Lambda. Ajuste o código de acordo com os requisitos comerciais dos usuários.

**Versões do produto**
+ AWS CDK versão 2.45.0 ou superior
+ Visual Studio 2022

## Arquitetura
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-architecture"></a>

**Pilha de tecnologia**
+ Amazon API Gateway
+ AWS CloudFormation
+ Amazon CloudWatch
+ Amazon DynamoDB
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ AWS Lambda
+ Amazon S3
+ Amazon SNS
+ Amazon SQS

**Arquitetura**

O diagrama a seguir mostra o fluxo de criação da pilha de locatários. Para obter mais informações sobre o ambiente de gerenciamento e as pilhas de tecnologia do locatário, consulte a seção *Informações adicionais*.

![\[Fluxo de trabalho para criar um locatário e provisionar uma infraestrutura básica para o locatário na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5baef800-fe39-4eb8-b11d-2c23eb3175fc/images/0b579484-b87c-4acb-8c60-8c33c18370e3.png)


**Fluxo de criação da pilha de locatários**

1. O usuário envia uma solicitação da API POST com a nova carga útil do locatário (nome do locatário, descrição do locatário) em JSON para uma API REST hospedada pelo Amazon API Gateway. O API Gateway processa a solicitação e a encaminha para a função de backend do Lambda Tenant Onboarding. Neste exemplo, não há autorização nem autenticação. Em uma configuração de produção, essa API deve ser integrada ao sistema de segurança da infraestrutura SaaS.

1. A função de integração do locatário verifica a solicitação. Em seguida, ele tenta armazenar o registro do locatário, que inclui o nome do locatário, o identificador único universal (UUID) gerado e a descrição do locatário, na tabela de integração de locatários do Amazon DynamoDB. 

1. Depois que o DynamoDB armazena o registro, um stream do DynamoDB inicia a função downstream da Lambda Tenant Infrastructure.

1. A função do Lambda Tenant Infrastructure atua com base no stream recebido do DynamoDB. Se o stream for para o evento INSERT, a função usa a NewImage seção do stream (registro de atualização mais recente, campo Nome do inquilino) para invocar CloudFormation a criação de uma nova infraestrutura de locatário usando o modelo armazenado no bucket do S3. O CloudFormation modelo exige o parâmetro Nome do inquilino. 

1.  CloudFormation A AWS cria a infraestrutura do locatário com base no CloudFormation modelo e nos parâmetros de entrada.

1. Cada configuração de infraestrutura do inquilino tem um CloudWatch alarme, um alarme de cobrança e um evento de alarme.

1. O evento de alarme se torna uma mensagem para um tópico do SNS, que é criptografado pela chave do AWS KMS do locatário.

1. O tópico do SNS encaminha a mensagem de alarme recebida para a fila do SQS, que é criptografada pelo AWS KMS do locatário para a chave de criptografia.

Outros sistemas podem ser integrados ao Amazon SQS para realizar ações com base nas mensagens na fila. Neste exemplo, para manter o código genérico, as mensagens recebidas permanecem na fila e exigem exclusão manual.

**Fluxo de exclusão da pilha de locatários**

1. O usuário envia uma solicitação da API DELETE com a nova carga útil do locatário (nome do locatário, descrição do locatário) em JSON para a API REST hospedada pelo Amazon API Gateway, que processará a solicitação e encaminhará para a função de integração do locatário. Neste exemplo, não há autorização nem autenticação. Em uma configuração de produção, essa API será integrada ao sistema de segurança da infraestrutura SaaS.

1. A função de integração do locatário verificará a solicitação e, em seguida, tentará excluir o registro do locatário (nome do locatário) da tabela de integração do locatário. 

1. Depois que o DynamoDB exclui o registro com sucesso (o registro existe na tabela e é excluído), um stream do DynamoDB inicia a função downstream do Lambda Tenant Infrastructure.

1. A função do Lambda Tenant Infrastructure atua com base no registro de stream recebido do DynamoDB. Se o stream for para o evento REMOVE, a função usa a OldImage seção do registro (informações do registro e campo Nome do inquilino, antes da última alteração, que é exclusão) para iniciar a exclusão de uma pilha existente com base nas informações desse registro.

1. A AWS CloudFormation exclui a pilha de inquilinos de destino de acordo com a entrada.

## Ferramentas
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-tools"></a>

**Serviços da AWS**
+ [O Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala.
+ O [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura da Nuvem AWS em código.
+ O [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) é um kit de desenvolvimento de nuvem de linha de comando que ajuda você a interagir com seu aplicativo AWS Cloud Development Kit (AWS CDK).
+ A [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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+  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 [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 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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ 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 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda você 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.
+ 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 Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) oferece uma fila hospedada segura, durável e disponível que permite integrar e desacoplar sistemas de software e componentes distribuídos.
+ [O AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) é um plug-in para o ambiente de desenvolvimento integrado (IDE) do Visual Studio. O Toolkit for Visual Studio oferece suporte ao desenvolvimento, depuração e implantação de aplicativos.NET que usam serviços da AWS.

**Outras ferramentas**
+ O [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022) é um IDE que inclui compiladores, ferramentas de preenchimento de código, designers gráficos e outros atributos que oferecem suporte ao desenvolvimento de software.

**Código **

O código desse padrão está no repositório de [exemplos de integração de locatários na arquitetura SaaS para modelo de silo do APG](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example).

## Épicos
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-epics"></a>

### Configurar o AWS CDK
<a name="set-up-aws-cdk"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique a instalação do Node.js. | Para verificar se o Node.js está instalado em sua máquina local, execute o comando a seguir.<pre>node --version</pre> | Administrador da AWS, AWS DevOps | 
| Instale o AWS CDK Toolkit. | Para instalar o AWS CDK Toolkit em sua máquina local, execute o comando a seguir.<pre>npm install -g aws-cdk</pre>Se o npm não estiver instalado, você poderá instalá-lo no [site Node.js](https://nodejs.org/en/download/package-manager/). | Administrador da AWS, AWS DevOps | 
| Verifique a versão do AWS CDK Toolkit. | Para verificar se a versão do AWS CDK Toolkit está instalada corretamente em sua máquina, execute o comando a seguir.  <pre>cdk --version</pre> | Administrador da AWS, AWS DevOps | 

### Revise o código do ambiente de gerenciamento de integração do locatário
<a name="review-the-code-for-the-tenant-onboarding-control-plane"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Clone o [repositório](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example) e navegue até a pasta `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`.Abra a `\src\TenantOnboardingInfra.sln` solução no Visual Studio 2022. Abra o arquivo `TenantOnboardingInfraStack.cs` e revise o código.Os seguintes recursos são criados como parte dessa pilha:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Administrador da AWS, AWS DevOps | 
| Revise o CloudFormation modelo. | Na `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\template` pasta`infra.yaml`, abra e revise o CloudFormation modelo. Esse modelo será hidratado com o nome do locatário recuperado da tabela de integração do locatário do DynamoDB.O modelo fornece a infraestrutura específica do locatário. Neste exemplo, ele provisiona a chave do AWS KMS, o Amazon SNS, o Amazon SQS e o alarme. CloudWatch  | Desenvolvedor de aplicativos, AWS DevOps | 
| Analise a função de integração do locatário. | Abra `Function.cs` e revise o código da função de integração do locatário, que é criada com o modelo do Projeto AWS Lambda do Visual Studio (.NET Core- C\$1) com o blueprint .NET 6 (Contêiner Image).Abra o `Dockerfile` arquivo e revise o código. `Dockerfile` é um arquivo de texto que consiste em instruções para criar a imagem do contêiner Lambda.Observe que os seguintes NuGet pacotes foram adicionados como dependências ao `TenantOnboardingFunction` projeto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Desenvolvedor de aplicativos, AWS DevOps | 
| Revise a InfraProvisioning função de inquilino. | Acesse `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\InfraProvisioningFunction`.Abra `Function.cs` e revise o código da função de integração do locatário, que é criada com o modelo do Projeto AWS Lambda do Visual Studio (.NET Core- C\$1) com o esquema .NET 6 (Contêiner Image).Abra o `Dockerfile` arquivo e revise o código. Observe que os seguintes NuGet pacotes foram adicionados como dependências ao `InfraProvisioningFunction` projeto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Desenvolvedor de aplicativos, AWS DevOps | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a solução. | Para criar a solução, siga estas etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Certifique-se de atualizar o pacote `Amazon.CDK.Lib NuGet` para a versão mais recente do projeto `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\TenantOnboardingInfra` antes de criar a solução. | Desenvolvedor de aplicativos | 
| Faça o bootstrap do ambiente do AWS CDK. | Abra o prompt de comando do Windows e navegue até a pasta raiz do aplicativo AWS CDK em que o arquivo `cdk.json` está disponível (`\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`). Execute o comando a seguir para inicializar.<pre>cdk bootstrap </pre>Se você criou um perfil da AWS para as credenciais, use o comando com seu perfil.<pre>cdk bootstrap --profile <profile name><br />  </pre> | Administrador da AWS, AWS DevOps | 
| Liste as pilhas do AWS CDK. | Para listar todas as pilhas a serem criadas como parte desse projeto, execute o comando a seguir.<pre>cdk ls<br />cdk ls --profile <profile name></pre>Se você criou um perfil da AWS para as credenciais, use o comando com seu perfil.<pre>cdk ls --profile <profile name></pre> | Administrador da AWS, AWS DevOps | 
| Analise quais recursos da AWS serão criados. | Para analisar todos os recursos da AWS que serão criados como parte desse projeto, execute o comando a seguir.<pre>cdk diff</pre>Se você criou um perfil da AWS para as credenciais, use o comando com seu perfil.<pre>cdk diff --profile <profile name></pre> | Administrador da AWS, AWS DevOps | 
| Implante todos os recursos da AWS usando o AWS CDK. | Para implantar todos os recursos da AWS, execute o seguinte comando.<pre>cdk deploy --all --require-approval never</pre>Se você criou um perfil da AWS para as credenciais, use o comando com seu perfil.<pre>cdk deploy --all --require-approval never --profile <profile name></pre>Depois que a implantação for concluída, copie a URL da API da seção de saídas no prompt de comando, que é mostrada no exemplo a seguir.<pre>Outputs:<br />TenantOnboardingInfraStack.TenantOnboardingAPIEndpoint42E526D7 = https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/</pre> | Administrador da AWS, AWS DevOps | 

### Verificação de funcionalidade
<a name="verify-the-functionality"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um novo locatário. | Para criar o novo locatário, envie a seguinte solicitação curl.<pre>curl -X POST <TenantOnboardingAPIEndpoint* from CDK Output>tenant -d '{"Name":"Tenant123", "Description":"Stack for Tenant123"}'</pre>Altere o espaço reservado `<TenantOnboardingAPIEndpoint* from CDK Output>` para o valor real do AWS CDK, conforme mostrado no exemplo a seguir.<pre>curl -X POST https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant -d '{"Name":"Tenant123", "Description":"test12"}'</pre>O exemplo a seguir mostra a saída.<pre>{"message": "A new tenant added - 5/4/2022 7:11:30 AM"}</pre> | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Verifique os detalhes do locatário recém-criado no DynamoDB. | Para verificar os detalhes do locatário recém-criado no DynamoDB, execute as etapas a seguir.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Verifique a criação da pilha para o novo locatário. | Verifique se a nova pilha foi criada e provisionada com sucesso com a infraestrutura para o inquilino recém-criado, de acordo com o modelo. CloudFormation [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Exclua a pilha de locatários. | Para excluir a pilha de locatários, envie a seguinte solicitação curl.<pre>curl -X DELETE <TenantOnboardingAPIEndpoint* from CDK Output>tenant/<Tenant Name from previous step></pre>Altere o espaço reservado `<TenantOnboardingAPIEndpoint* from CDK Output>` para o valor real do AWS CDK e altere `<Tenant Name from previous step>` para o valor real da etapa anterior de criação do locatário, conforme mostrado no exemplo a seguir.<pre>curl -X DELETE https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant/Tenant123</pre>O exemplo a seguir mostra a saída.<pre>{"message": "Tenant destroyed - 5/4/2022 7:14:48 AM"}</pre> | Desenvolvedor de aplicativos, AWS DevOps, administrador da AWS | 
| Verifique a exclusão da pilha para o locatário existente. | Para verificar se a pilha de locatários existente foi excluída, execute as etapas a seguir:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Destruir o ambiente. | Antes da limpeza da pilha, certifique-se do seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Após a conclusão do teste, o AWS CDK pode ser usado para destruir todas as pilhas e recursos relacionados executando o comando a seguir.<pre>cdk destroy --all;</pre>Se você criou um perfil da AWS para as credenciais, use o perfil.Confirme o prompt de exclusão da pilha para excluir a pilha. | Administrador da AWS, AWS DevOps | 
| Limpe os Amazon CloudWatch Logs. | O processo de exclusão da pilha não limpará CloudWatch os registros (grupos de registros e registros) que foram gerados pela pilha. Limpe manualmente os CloudWatch recursos usando o CloudWatch console ou a API. | Desenvolvedor de aplicativos, AWS DevOps, administrador da AWS | 

## Recursos relacionados
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-resources"></a>
+ [Workshop sobre o AWS CDK.NET](https://cdkworkshop.com/40-dotnet.html)
+ [Trabalhar com o AWS CDK em C\$1](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-csharp.html)
+ [Referência do CDK.NET](https://docs.aws.amazon.com/cdk/api/v2/dotnet/api/index.html)

## Mais informações
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-additional"></a>

**Pilha de tecnologias de ambiente de gerenciamento**

O código CDK escrito em.NET é usado para provisionar a infraestrutura do plano de controle, que consiste nos seguintes recursos:

1. **API Gateway**

   Serve como ponto de entrada da API REST para a pilha do plano de controle.

1. **Função do Lambda de integração do locatário**

   Essa função do Lambda é iniciada pelo API Gateway usando o método m.

   Uma solicitação de API do método POST resulta na inserção (`tenant name`,`tenant description`) na tabela `Tenant Onboarding` do DynamoDB.

   Neste exemplo de código, o nome do locatário também é usado como parte do nome da pilha do locatário e dos nomes dos recursos dentro dessa pilha. Isso é para facilitar a identificação desses recursos. Esse nome de locatário deve ser exclusivo em toda a configuração para evitar conflitos ou erros. A configuração detalhada da validação de entrada é explicada na documentação dos [perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) e na seção *Limitações*.

   O processo de persistência na tabela do DynamoDB só será bem-sucedido se o nome do locatário não for usado em nenhum outro registro na tabela.

   O nome do locatário nesse caso é a chave de partição dessa tabela, pois somente a chave de partição pode ser usada como uma expressão da condição `PutItem`.

   Se o nome do locatário nunca tiver sido registrado antes, o registro será salvo na tabela com sucesso.

   No entanto, se o nome do locatário já for usado por um registro existente na tabela, a operação falhará e iniciará uma exceção do DynamoDB. `ConditionalCheckFailedException` A exceção será usada para retornar uma mensagem de falha (`HTTP BadRequest`) indicando que o nome do locatário já existe.

   Uma solicitação de API de método de `DELETE` removerá o registro de um nome de locatário específico da tabela `Tenant Onboardin` g.

   A exclusão do registro do DynamoDB neste exemplo será bem-sucedida mesmo que o registro não exista.

   Se o registro de destino existir e for excluído, ele criará um registro de stream do DynamoDB. Caso contrário, nenhum registro downstream será criado.

1. **Integração de locatários no DynamoDB, com o Amazon DynamoDB Streams habilitado**

   Isso registra as informações de metadados do locatário, e qualquer registro salvo ou excluído enviará um stream downstream para a `Tenant Infrastructure` função do Lambda. 

1. A **Função do Lambda da infraestrutura do locatário**

   Essa função do Lambda é iniciada pelo registro de stream do DynamoDB da etapa anterior. Se o registro for de um `INSERT` evento, ele invoca CloudFormation a AWS para criar uma nova infraestrutura de locatários com o CloudFormation modelo armazenado em um bucket do S3. Se o registro for para `REMOVE`, ele iniciará a exclusão de uma pilha existente com base no campo do registro do stream `Tenant Name`.

1. **Bucket do S3**

   Isso é para armazenar o CloudFormation modelo.

1. **Funções do IAM para cada função do Lambda e uma função de serviço para CloudFormation**

   Cada função do Lambda tem seu perfil exclusivo do IAM com permissões de [privilégio mínimo para realizar](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) sua tarefa. Por exemplo, a função `Tenant On-boarding` Lambda tem read/write acesso ao DynamoDB, e a função `Tenant Infrastructure` Lambda só pode ler o stream do DynamoDB.

   Uma função CloudFormation de serviço personalizada é criada para o provisionamento da pilha de inquilinos. Essa função de serviço contém permissões adicionais para provisionamento de CloudFormation pilhas (por exemplo, a chave AWS KMS). Isso divide as funções entre o Lambda CloudFormation e evita todas as permissões em uma única função (função do Lambda de infraestrutura).

   As permissões que permitem ações poderosas (como criar e excluir CloudFormation pilhas) são bloqueadas e permitidas somente em recursos que começam com. `tenantcluster-` A exceção é o AWS KMS, devido à sua convenção de nomenclatura de recursos. O nome do locatário ingerido pela API será anexado ao `tenantcluster-`, junto com outras verificações de validação (alfanumérico somente com hífen e limitado a menos de 30 caracteres para caber na maioria dos nomes de recursos da AWS). Isso garante que o nome do locatário não resulte acidentalmente na interrupção das pilhas ou dos recursos da infraestrutura principal.

**Pilha de tecnologia para locatários**

Um CloudFormation modelo é armazenado no bucket do S3. [O modelo provisiona a chave AWS KMS específica do inquilino, um CloudWatch alarme, um tópico do SNS, uma fila do SQS e uma política do SQS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html)

A chave do AWS KMS é usada para criptografia de dados pelo Amazon SNS e pelo Amazon SQS para suas mensagens. As práticas de segurança para [AwsSolutions— SNS2 e AwsSolutions — SQS2](https://github.com/cdklabs/cdk-nag/blob/main/RULES.md) recomendam que você configure o Amazon SNS e o Amazon SQS com criptografia. No entanto, CloudWatch os alarmes não funcionam com o Amazon SNS ao usar uma chave gerenciada pela AWS, então você deve usar uma chave gerenciada pelo cliente nesse caso. Para obter mais informações, consulte o [Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/).

A política do SQS é usada na fila do Amazon SQS para permitir que o tópico SNS criado entregue a mensagem à fila. Sem a política do SQS, o acesso será negado. Para obter mais informações, consulte a [documentação do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html#SendMessageToSQS.sqs.permissions).

# Decomponha monólitos em microsserviços usando o CQRS e o fornecimento de eventos
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing"></a>

*Rodolfo Jr. Cerrada, Dmitry Gulin e Tabby Ward, Amazon Web Services*

## Resumo
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-summary"></a>

Esse padrão combina dois padrões, usando o padrão de separação de responsabilidade por consulta de comando (CQRS) e o padrão de fornecimento de eventos. O padrão CQRS separa as responsabilidades dos modelos de comando e consulta. O padrão de fornecimento de eventos aproveita a comunicação assíncrona orientada por eventos para melhorar a experiência geral do usuário.

Você pode usar os serviços CQRS e Amazon Web Services (AWS) para manter e escalar cada modelo de dados de forma independente enquanto refatora seu aplicativo monolítico em arquitetura de microsserviços. Em seguida, você pode usar o padrão de fornecimento de eventos para sincronizar dados do banco de dados de comandos com o banco de dados de consulta.

Esse padrão usa um código de exemplo que inclui um arquivo de solução (\$1.sln) que você pode abrir usando a versão mais recente do Visual Studio. O exemplo contém o código da API Reward para mostrar como o CQRS e o fornecimento de eventos funcionam em aplicativos com tecnologia sem servidor e sem servidor, tradicionais ou on-premises da AWS.

Para saber mais sobre o CQRS e o fornecimento de eventos, consulte a seção [Informações adicionais](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

## Pré-requisitos e limitações
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Amazon CloudWatch
+ Tabelas do Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Chave de acesso e chave secreta do AWS Identity and Access Management (IAM); para obter mais informações, acesse o vídeo na seção *Recursos relacionados*
+ AWS Lambda
+ Familiaridade com o Visual Studio
+ *Familiaridade com o AWS Toolkit for Visual Studio; para obter mais informações, consulte *o vídeo de demonstração do AWS Toolkit for Visual Studio* na seção Recursos relacionados*

**Versões do produto**
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/).
+ [AWS Toolkit for Visual Studio 2019](https://aws.amazon.com/visualstudio/).
+ .NET Core 3.1 Esse componente é uma opção na instalação do Visual Studio. Para incluir o .NET Core durante a instalação, selecione **Desenvolvimento multiplataforma NET Core**.

**Limitações**
+ O código de exemplo para um aplicativo on-premises tradicional (ASP.NET Core Web API e objetos de acesso a dados) não vem com um banco de dados. No entanto, ele vem com o objeto `CustomerData` na memória, que atua como um banco de dados simulado. O código fornecido é suficiente para você testar o padrão.

## Arquitetura
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-architecture"></a>

**Pilha de tecnologia de origem**
+ Projeto de API Web do ASP.NET Core
+ Servidor Web IIS
+ Objeto de acesso a dados
+ Modelo CRUD

**Arquitetura de origem**

Na arquitetura de origem, o modelo CRUD contém interfaces de comando e consulta em um aplicativo. Por exemplo, código, consulte `CustomerDAO.cs` (em anexo).

![\[Conexões entre aplicação, interface de serviço, modelo CRUD do cliente e banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1cd3a84c-12c7-4306-99aa-23f2c53d3cd3.png)


**Pilha de tecnologias de destino**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ AWS Lambda
+ Amazon API Gateway
+ (Opcional) Amazon Simple Notification Service (Amazon SNS)

**Arquitetura de destino**

Na arquitetura de destino, as interfaces de comando e consulta são separadas. A arquitetura mostrada no diagrama a seguir pode ser estendida com o API Gateway e o Amazon SNS. Para obter mais informações, consulte a seção [Informações adicionais](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

![\[Aplicação conectada aos microsserviços Customer Command e Customer Query sem servidor.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1c665697-e3ac-4ef4-98d0-86c2cbf164c1.png)


1. As funções de comando do Lambda realizam operações de gravação, como criar, atualizar ou excluir, no banco de dados.

1. As funções de consulta do Lambda realizam operações de leitura, como obter ou selecionar, no banco de dados.

1. Essa função do Lambda processa os fluxos do DynamoDB do banco de dados Comando e atualiza o banco de dados Consulta para as alterações.

## Ferramentas
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-tools"></a>

**Ferramentas**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html): o Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que fornece uma performance rápida e previsível com escalabilidade integrada.
+ [Amazon DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html): o Amazon DynamoDB Streams captura uma sequência em ordem temporal de modificações em nível de item em qualquer tabela do Amazon DynamoDB. Esse serviço, então, armazena essas informações em um log por até 24 horas. A criptografia em repouso criptografa os dados em fluxos do DynamoDB.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): o AWS Lambda é 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.
+ [Console de Gerenciamento da AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/learn-whats-new.html): o Console de Gerenciamento da AWS é uma aplicação web que compreende uma ampla coleção de consoles de serviço para gerenciar serviços da AWS.
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/): o Visual Studio 2019 é um ambiente de desenvolvimento integrado (IDE). A Community Edition é gratuita para colaboradores de código aberto. Nesse padrão, você usará o Visual Studio 2019 Community Edition para abrir, compilar e executar código de exemplo. Somente para visualização, você pode usar qualquer editor de texto ou o [Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html).
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html): o AWS Toolkit for Visual Studio é um plug-in para o Visual Studio IDE. O AWS Toolkit for Visual Studio facilita o desenvolvimento, a depuração e a implantação de aplicativos .NET que usam os serviços AWS.

**Código **

O código de exemplo está anexado. Para obter instruções sobre como implantar o código de exemplo, consulte a seção *Épicos*.

## Épicos
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-epics"></a>

### Abra e crie a solução
<a name="open-and-build-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Abra a solução. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos | 
| Crie a solução. | Abra o menu de contexto (clique com o botão direito do mouse) da solução e selecione **Criar soluções**. Isso criará e compilará todos os projetos na solução. Ele deve ser compilado com sucesso.O Visual Studio Solution Explorer deve mostrar a estrutura de diretórios.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos | 

### Crie as tabelas do DynamoDB
<a name="build-the-dynamodb-tables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Forneça credenciais | Se você ainda não tem uma chave de acesso, assista ao vídeo na seção *Recursos relacionados*.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 
| Crie o projeto. | **Para criar o projeto, abra o menu de contexto (clique com o botão direito do mouse) para o projeto **AwS.APG.CQRSES.Build** e selecione Construir**. | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 
| Crie e preencha as tabelas. | Para criar as tabelas e preenchê-las com dados iniciais, abra o menu de contexto (clique com o botão direito do mouse) para o projeto **AwS.APG.CQRSES.Build** e então escolha **Depurar**,** Iniciar nova instância**. | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 
| Verifique a construção da tabela e os dados. | Para verificar, navegue até o **AWS Explorer** e expanda o **Amazon DynamoDB**. Ele deve exibir as tabelas. Abra cada tabela para exibir os dados de exemplo. | Desenvolvedor de aplicativos, engenheiro de dados, DBA | 

### Execute testes locais
<a name="run-local-tests"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o projeto do CQRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos, engenheiro de testes | 
| Crie o projeto de fornecimento de eventos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos, engenheiro de testes | 
| Execute os testes. | Para executar todos os testes, escolha **Exibir**, **Explorador de testes** e, em seguida, escolha **Executar todos os testes na exibição**. Todos os testes devem ser aprovados, o que é indicado por um ícone de marca de seleção verde.  | Desenvolvedor de aplicativos, engenheiro de testes | 

### Publique as funções do CQRS Lambda na AWS
<a name="publish-the-cqrs-lambda-functions-to-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Publique a primeira função do Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Verifique o upload da função. | (Opcional) Você pode verificar se a função foi carregada com sucesso navegando até o AWS Explorer e expandindo o **AWS Lambda**. Para abrir a janela de teste, escolha a função do Lambda (clique duas vezes). | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Testar a função do Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Todos os projetos Lambda do CQRS são encontrados nas pastas de soluções `CQRS AWS Serverless\CQRS\Command Microservice` e ` CQRS AWS Serverless\CQRS\Command Microservice`. Para o diretório da solução e os projetos, consulte **Diretório de código-fonte** na seção [Informações adicionais](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Publique as funções restantes. | Repita as etapas anteriores para os seguintes projetos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos, DevOps engenheiro | 

### Configure a função do Lambda como um receptor de evento
<a name="set-up-the-lambda-function-as-an-event-listener"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Publique os manipuladores de eventos Cliente and Recompensa do Lambda. | Para publicar cada manipulador de eventos, siga as etapas do épico anterior.Os projetos estão sob as pastas de soluções `CQRS AWS Serverless\Event Source\Customer Event` e `CQRS AWS Serverless\Event Source\Reward Event`. Para obter mais informações, consulte *Diretório de código-fonte* na seção [Informações adicionais](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Desenvolvedor de aplicativos | 
| Anexe o receptor de eventos Lambda de fornecimento de eventos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Depois que o receptor for anexado com sucesso à tabela do DynamoDB, ele será exibido na página do designer do Lambda. | Desenvolvedor de aplicativos | 
| Publique e anexe a EventSourceReward função Lambda. | Para publicar e anexar a função `EventSourceReward` Lambda, repita as etapas nas duas histórias anteriores, selecionando na lista suspensa **cqrses-reward-cmd**da tabela do **DynamoDB**. | Desenvolvedor de aplicativos | 

### Teste e valide os fluxos do DynamoDB e o gatilho do Lambda
<a name="test-and-validate-the-dynamodb-streams-and-lambda-trigger"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o fluxo e o acionador do Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos | 
| Valide usando a tabela de consulta de recompensas do DynamodDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos | 
| Valide usando CloudWatch Logs. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Desenvolvedor de aplicativos | 
| Valide o EventSourceCustomer gatilho. | Para validar o `EventSourceCustomer` gatilho, repita as etapas desse épico, usando a respectiva tabela de clientes e CloudWatch registros do `EventSourceCustomer` gatilho. | Desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-resources"></a>

**Referências**
+ [Downloads do Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/)
+ [Download do AWS Toolkit for Visual Studio](https://aws.amazon.com/visualstudio/)
+ [Guia do usuário do AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)
+ [Tecnologia sem servidor na AWS](https://aws.amazon.com/serverless/)
+ [Casos de uso e padrões de design do DynamoDB](https://aws.amazon.com/blogs/database/dynamodb-streams-use-cases-and-design-patterns/)
+ [Martin Fowler CQRS](https://martinfowler.com/bliki/CQRS.html)
+ [Fornecimento de eventos de Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)

**Vídeos**
+ [Demo do AWS Toolkit for Visual Studio](https://www.youtube.com/watch?v=B190tcu1ERk)
+ [Como faço para criar um ID de chave de acesso para um novo usuário do IAM?](https://www.youtube.com/watch?v=665RYobRJDY)

## Mais informações
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional"></a>

**CQRS e fornecimento de eventos**

*CQRS*

O padrão CQRS separa um único modelo de operações conceituais, como um único modelo CRUD (criar, ler, atualizar, excluir) de objeto de acesso a dados, em modelos de operações de comando e consulta. O modelo de comando se refere a qualquer operação, como criar, atualizar ou excluir, que altera o estado. O modelo de consulta se refere a qualquer operação que retorna um valor.

![\[Arquitetura com interface de serviço, modelo CRUD e banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/3f64756d-681e-4f0e-8034-746263d857b2.png)


1. O modelo Cliente CRUD inclui as seguintes interfaces:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`

À medida que seus requisitos se tornam mais complexos, você pode abandonar essa abordagem de modelo único. O CQRS usa um modelo de comando e um modelo de consulta para separar a responsabilidade pela gravação e leitura de dados. Dessa forma, os dados podem ser mantidos e gerenciados de forma independente. Com uma separação clara de responsabilidades, os aprimoramentos em cada modelo não afetam o outro. Essa separação melhora a manutenção e o desempenho e reduz a complexidade do aplicativo à medida que ele cresce.

![\[O aplicativo se separou em modelos de comando e consulta, compartilhando um banco de dados único.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/12db023c-eb81-4c27-bbb9-b085b13176ae.png)


 

1. Interfaces no modelo Comando do cliente:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`

1. Interfaces no modelo Consulta do cliente:
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`
   + `GetMonthlyStatement()`

Por exemplo de código, consulte *Diretório de código-fonte*.

O padrão CQRS então separa o banco de dados. Essa dissociação leva à total independência de cada serviço, que é o principal ingrediente da arquitetura de microsserviços.

![\[Bancos de dados separados para modelos de comando e consulta.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/016dbfa8-3bd8-42ee-afa1-38a98986c7d5.png)


 Usando o CQRS na Nuvem AWS, você pode otimizar ainda mais cada serviço. Por exemplo, você pode definir configurações de computação diferentes ou escolher entre um microsserviço com tecnologia sem servidor ou baseado em contêiner. Você pode substituir seu armazenamento em cache local pela Amazon. ElastiCache Se você tiver um sistema de publish/subscribe mensagens local, poderá substituí-lo pelo Amazon Simple Notification Service (Amazon SNS). Além disso, você pode aproveitar os pay-as-you-go preços e a grande variedade de serviços da AWS que você paga somente pelo que usa.

O CQRS inclui os seguintes benefícios:
+ Escalabilidade independente: cada modelo pode ter sua estratégia de escalabilidade ajustada para atender aos requisitos e à demanda do serviço. Semelhante aos aplicativos de alto desempenho, a separação de leitura e gravação permite que o modelo seja dimensionado de forma independente para atender a cada demanda. Você também pode adicionar ou reduzir recursos computacionais para atender à demanda de escalabilidade de um modelo sem afetar o outro.
+ Manutenção independente: a separação dos modelos de consulta e comando melhora a capacidade de manutenção dos modelos. Você pode fazer alterações e aprimoramentos no código de um modelo sem afetar o outro.
+ Segurança: é mais fácil aplicar as permissões e políticas a modelos separados para leitura e gravação.
+ Leituras otimizadas: você pode definir um esquema otimizado para consultas. Por exemplo, você pode definir um esquema para os dados agregados e um esquema separado para as tabelas de fatos.
+ Integração: o CQRS se encaixa bem com modelos de programação baseados em eventos.
+ Complexidade gerenciada: a separação em modelos de consulta e comando é adequada para domínios complexos.

Ao usar o CQRS, tenha em mente as seguintes advertências:
+ O padrão CQRS se aplica somente a uma parte específica de um aplicativo e não a todo o aplicativo. Se implementado em um domínio que não se encaixa no padrão, ele pode reduzir a produtividade, aumentar o risco e introduzir complexidade.
+ O padrão funciona melhor para modelos usados com frequência que têm operações de leitura e gravação desequilibradas.
+ Para aplicativos que exigem muita leitura, como relatórios grandes que demoram para serem processados, o CQRS oferece a opção de selecionar o banco de dados correto e criar um esquema para armazenar seus dados agregados. Isso melhora o tempo de resposta da leitura e visualização do relatório processando os dados do relatório apenas uma vez e despejando-os na tabela agregada.
+ Para aplicativos com muita gravação, você pode configurar o banco de dados para operações de gravação e permitir que o microsserviço de comando seja escalado de forma independente quando a demanda por gravação aumentar. Para ver exemplos, consulte os microsserviços `AWS.APG.CQRSES.CommandRedeemRewardLambda` e `AWS.APG.CQRSES.CommandAddRewardLambda`.

*Origens de eventos*

A próxima etapa é usar o fornecimento de eventos para sincronizar o banco de dados de consultas quando um comando é executado. Por exemplo, considere os seguintes eventos:
+ É adicionado um ponto de recompensa do cliente que exige que os pontos de recompensa totais ou agregados do cliente no banco de dados de consulta sejam atualizados.
+ O sobrenome do cliente é atualizado no banco de dados de comandos, o que exige que as informações do cliente substituto no banco de dados de consulta sejam atualizadas.

No modelo CRUD tradicional, você garante a consistência dos dados bloqueando os dados até que a transação seja concluída. No fornecimento de eventos, os dados são sincronizados por meio da publicação de uma série de eventos que serão consumidos por um assinante para atualizar seus respectivos dados.

O padrão de fornecimento de eventos garante e registra uma série completa de ações realizadas nos dados e os publica por meio de uma sequência de eventos. Esses eventos representam um conjunto de alterações nos dados que os assinantes desse evento devem processar para manter seus registros atualizados. Esses eventos são consumidos pelo assinante, sincronizando os dados no banco de dados do assinante. Nesse caso, esse é o banco de dados de consultas.

O diagrama a seguir mostra o fornecimento de eventos usado com o CQRS na AWS.

![\[Arquitetura de microsserviços para o CQRS e padrões de fornecimento de eventos usando serviços com tecnologia sem servidor da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/cc9bc84a-60b4-4459-9a5c-2334c69dbb4e.png)


1. As funções de comando do Lambda realizam operações de gravação, como criar, atualizar ou excluir, no banco de dados.

1. As funções de consulta do Lambda realizam operações de leitura, como obter ou selecionar, no banco de dados.

1. Essa função do Lambda processa os fluxos do DynamoDB do banco de dados Comando e atualiza o banco de dados Consulta para as alterações. Você também pode usar essa função para publicar uma mensagem no Amazon SNS para que seus assinantes possam processar os dados.

1. (Opcional) O assinante do evento Lambda processa a mensagem publicada pelo Amazon SNS e atualiza o banco de dados Consulta.

1. (Opcional) O Amazon SNS envia uma notificação por e-mail sobre a operação de gravação.

Na AWS, o banco de dados de consultas pode ser sincronizado pelo DynamoDB Streams. O DynamoDB captura uma sequência em ordem temporal de modificações em nível de item em uma tabela do DynamoDB em tempo quase real e armazena de forma durável as informações em 24 horas.

A ativação do DynamoDB Streams permite que o banco de dados publique uma sequência de eventos que possibilita o padrão de fornecimento de eventos. O padrão de fornecimento de eventos adiciona o assinante do evento. O aplicativo de assinante do evento consome o evento e o processa de acordo com a responsabilidade do assinante. No diagrama anterior, o assinante do evento envia as alterações para o banco de dados do Query DynamoDB para manter os dados sincronizados. O uso do Amazon SNS, do agente de mensagens e do aplicativo de assinante de eventos mantém a arquitetura desacoplada.

O fornecimento de eventos inclui os seguintes benefícios:
+ Consistência para dados transacionais
+ Uma trilha de auditoria confiável e um histórico das ações, que podem ser usados para monitorar as ações realizadas nos dados
+ Permite que aplicativos distribuídos, como microsserviços, sincronizem seus dados em todo o ambiente
+ Publicação confiável de eventos sempre que o estado mudar
+ Reconstruindo ou reproduzindo estados passados
+ Entidades fracamente acopladas que trocam eventos para migração de um aplicativo monolítico para microsserviços
+ Redução de conflitos causados por atualizações simultâneas; o fornecimento de eventos evita a necessidade de atualizar objetos diretamente no armazenamento de dados
+ Flexibilidade e extensibilidade ao desacoplar a tarefa e o evento
+ Atualizações externas do sistema
+ Gerenciamento de várias tarefas em um único evento

Ao usar o fornecimento de eventos, lembre-se das seguintes ressalvas:
+ Como há algum atraso na atualização dos dados entre os bancos de dados dos assinantes de origem, a única maneira de desfazer uma alteração é adicionar um evento compensador ao armazenamento de eventos.
+ A implementação do sourcing de eventos tem uma curva de aprendizado devido ao seu estilo diferente de programação.

**Dados de teste**

Use os dados de teste a seguir para testar a função do Lambda após a implantação bem-sucedida.

**CommandCreate Cliente**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Done",  "CompanyName":"AnyCompany",  "Address": "USA",  "VIP":true }
```

**CommandUpdate Cliente**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Doe",  "CompanyName":"Example Corp.",  "Address": "Seattle, USA",  "VIP":true }
```

**CommandDelete Cliente**

Insira a ID do cliente como dados da solicitação. Por exemplo, se a ID do cliente for 151, insira 151 como dados da solicitação.

```
151
```

**QueryCustomerList**

Isso está branco. Quando for invocado, ele retornará todos os clientes.

**CommandAddReward**

Isso adicionará 40 pontos ao cliente com ID 1 (Richard).

```
{
  "Id":10101,
  "CustomerId":1,
  "Points":40
}
```

**CommandRedeemReward**

Isso deduzirá 15 pontos para o cliente com ID 1 (Richard).

```
{
  "Id":10110,
  "CustomerId":1,
  "Points":15
}
```

**QueryReward**

Insira o ID do cliente. Por exemplo, insira 1 para Richard, 2 para Arnav e 3 para Shirley.

```
2 
```

**Diretório de código-fonte**

Use a tabela a seguir como guia para a estrutura de diretórios da solução Visual Studio. 

*Diretório de soluções de amostra de código on-premises do CQRS*

![\[Diretório de soluções com serviços de Command e Query expandidos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/4811c2c0-643b-410f-bb87-0b86ec5e194c.png)


**Modelo CRUD do cliente**

Exemplo do código on-premises CQRS\$1CRUD Model\$1Projeto AWS.APG.CQRSES.DAL

**Versão CQRS do modelo Customer CRUD**
+ Comando do cliente: projeto `CQRS On-Premises Code Sample\CQRS Model\Command Microservice\AWS.APG.CQRSES.Command`
+ Consulta do cliente: projeto `CQRS On-Premises Code Sample\CQRS Model\Query Microservice\AWS.APG.CQRSES.Query`

**Microsserviços de comando e consulta**

O microsserviço de comando está na pasta da solução `CQRS On-Premises Code Sample\CQRS Model\Command Microservice`:
+ O projeto `AWS.APG.CQRSES.CommandMicroservice` ASP.NET Core API atua como o ponto de entrada onde os consumidores interagem com o serviço.
+ O projeto `AWS.APG.CQRSES.Command` .NET Core é um objeto que hospeda objetos e interfaces relacionados a comandos.

O microsserviço de consulta está na pasta da solução `CQRS On-Premises Code Sample\CQRS Model\Query Microservice`:
+ O projeto `AWS.APG.CQRSES.QueryMicroservice` ASP.NET Core API atua como o ponto de entrada onde os consumidores interagem com o serviço.
+ O projeto `AWS.APG.CQRSES.Query` .NET Core é um objeto que hospeda objetos e interfaces relacionados a consultas.

*Diretório de soluções de código da tecnologia sem servidor CQRS AWS*

![\[Diretório de soluções mostrando os microsserviços e a fonte de eventos expandidos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/23f8655c-95ad-422c-b20a-e29dc145e995.png)


 

Esse código é a versão da AWS do código on-premises usando os serviços com tecnologia sem servidor da AWS.

Em C\$1 .NET Core, cada função do Lambda é representada por um projeto do.NET Core. No código de exemplo desse padrão, há um projeto separado para cada interface nos modelos de comando e consulta.

**CQRS usando os serviços da AWS**

Você pode encontrar o diretório raiz da solução para o CQRS usando os serviços com tecnologia sem servidor da AWS na pasta `CQRS AWS Serverless\CQRS`. O exemplo inclui dois modelos: Cliente e Recompensa.

As funções de comando do Lambda para Cliente e Recompensa estão nas pastas `CQRS\Command Microservice\Customer` e `CQRS\Command Microservice\Reward`. Eles contêm os seguintes projetos Lambda:
+ Comando do cliente: `CommandCreateLambda`, `CommandDeleteLambda`, e `CommandUpdateLambda`
+ Comando de recompensa: `CommandAddRewardLambda` e `CommandRedeemRewardLambda`

As funções de consulta do Lambda para Customer e Reward são encontradas nas pastas `CQRS\Query Microservice\Customer` e `CQRS\QueryMicroservice\Reward`. Eles contêm os projetos Lambda `QueryCustomerListLambda` e `QueryRewardLambda`.

**Projeto de teste CQRS**

O projeto de teste está na pasta `CQRS\Tests`. Este projeto contém um script de teste para automatizar o teste das funções do Lambda do CQRS.

**Fornecimento de eventos usando serviços da AWS**

Os seguintes manipuladores de eventos do Lambda são iniciados pelos fluxos Cliente e Recompensa do DynamoDB para processar e sincronizar os dados nas tabelas de consulta.
+ A função do Lambda `EventSourceCustomer` é mapeada para a tabela Cliente (`cqrses-customer-cmd`) do fluxo do DynamoDB.
+ A função do Lambda `EventSourceReward` é mapeada para a tabela Recompensa (`cqrses-reward-cmd`) do fluxo do DynamoDB.

## Anexos
<a name="attachments-9f1bc700-def4-4201-bb2d-f1fa27404f15"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/9f1bc700-def4-4201-bb2d-f1fa27404f15/attachments/attachment.zip)

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

**Topics**
+ [Acesse aplicativos de contêineres de forma privada no Amazon EKS usando a AWS PrivateLink e um Network Load Balancer](access-container-applications-privately-on-amazon-eks-using-aws-privatelink-and-a-network-load-balancer.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)
+ [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)
+ [Crie e implante automaticamente um aplicativo Java no Amazon EKS usando um CI/CD pipeline](automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline.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)
+ [Backup e arquivamento de dados do mainframe no Amazon S3 usando o BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.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 uma malha de dados corporativa com a Amazon DataZone, AWS CDK, e AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converta e descompacte dados EBCDIC em ASCII na AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Converta arquivos de dados de mainframe com layouts de registro complexos usando o Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Crie um portal para microfrontends usando Angular e AWS Amplify Module Federation](create-amplify-micro-frontend-portal.md)
+ [Implantar contêineres usando o Elastic Beanstalk](deploy-containers-by-using-elastic-beanstalk.md)
+ [Emule o Oracle DR usando um banco de dados global Aurora compatível com PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Gere insights de z/OS dados do Db2 usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Identificação automática de imagens de contêineres duplicadas ao migrar para um repositório do Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Implementação de diagnósticos e solução de problemas com base em IA no Kubernetes usando a integração do K8sGPT e do Amazon Bedrock](implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.md)
+ [Implemente a autenticação baseada no Microsoft Entra ID em um aplicativo de AWS mainframe modernizado da Blue Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.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)
+ [Migre incrementalmente do Amazon RDS para Oracle para o Amazon RDS para PostgreSQL usando o Oracle SQL Developer e o AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Integre o controlador universal Stonebranch com o AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.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)
+ [Migrar uma conta de AWS membro de para AWS Organizations AWS Control Tower](migrate-an-aws-member-account-from-aws-organizations-to-aws-control-tower.md)
+ [Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Migre do SAP ASE para o Amazon RDS para SQL Server usando o AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migre tabelas externas da Oracle para a compatibilidade com o Amazon Aurora PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Modernize o aplicativo de CardDemo mainframe usando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernize as cargas de trabalho de impressão em lote do mainframe AWS usando o Rocket Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Mova arquivos de mainframe diretamente para o Amazon S3 usando o Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.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)
+ [Otimize o desempenho do seu aplicativo modernizado AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Automatize blue/green as implantações dos bancos de dados globais do Amazon Aurora usando os princípios de IaC](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Replique bancos de dados de mainframe para AWS usando o Precisely Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)
+ [Execute tarefas do Amazon ECS na Amazon WorkSpaces com o Amazon ECS Anywhere](run-amazon-ecs-tasks-on-amazon-workspaces-with-amazon-ecs-anywhere.md)
+ [Envie dados de telemetria de AWS Lambda para OpenSearch para análise e visualização em tempo real](send-telemetry-data-from-lambda-to-opensearch-for-analytics-visualization.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)
+ [Estruture um projeto Python em arquitetura hexagonal usando o AWS Lambda](structure-a-python-project-in-hexagonal-architecture-using-aws-lambda.md)
+ [Teste a AWS infraestrutura usando LocalStack e Terraform Tests](test-aws-infra-localstack-terraform.md)
+ [Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform](transform-easytrieve-modern-languages.md)
+ [Atualize os clusters do SAP Pacemaker de para ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.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)
+ [Valide o código do Account Factory for Terraform (AFT) localmente](validate-account-factory-for-terraform-aft-code-locally.md)

# Mainframes
<a name="mainframe-pattern-list"></a>

**Topics**
+ [Acesse Serviços da AWS a partir da IBM z/OS instalando o AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Backup e arquivamento de dados do mainframe no Amazon S3 usando o BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Crie programas COBOL Db2 usando e AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.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 um visualizador avançado de arquivos de mainframe na Nuvem AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converta e descompacte dados EBCDIC em ASCII na AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Converta arquivos de dados de mainframe com layouts de registro complexos usando o Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Implante um ambiente para aplicativos Blu Age conteinerizados usando o Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Gere insights de z/OS dados do Db2 usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implemente a autenticação baseada no Microsoft Entra ID em um aplicativo de AWS mainframe modernizado da Blue Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integre o controlador universal Stonebranch com o AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernize o aplicativo de CardDemo mainframe usando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernize as cargas de trabalho de impressão em lote do mainframe AWS usando o Rocket Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernização do mainframe: DevOps iniciada AWS com o Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Mova arquivos de mainframe diretamente para o Amazon S3 usando o Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Otimize o desempenho do seu aplicativo modernizado AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Proteja e simplifique o acesso de usuários em um banco de dados de federação Db2 na AWS usando contextos confiáveis](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Transfira z/OS dados do Db2 em grande escala para o Amazon S3 em arquivos CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform](transform-easytrieve-modern-languages.md)
+ [Mais padrões](mainframe-more-patterns-pattern-list.md)

# Acesse Serviços da AWS a partir da IBM z/OS instalando o AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vítor Pereira e Phil de Valence, da Amazon Web Services*

## Resumo
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

O [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) é uma ferramenta de código aberto para gerenciar vários AWS serviços usando comandos em um shell de linha de comando. Com uma configuração mínima, você pode executar comandos a partir de sessões de linha de comando, como o prompt de comando, o terminal e o shell bash, para implementar uma funcionalidade equivalente à fornecida pelo navegador Console de gerenciamento da AWS.

Todas as funções de administração, gerenciamento e acesso da AWS infraestrutura como serviço (IaaS) no Console de gerenciamento da AWS estão disponíveis na AWS API e. AWS CLI Você pode instalá-lo AWS CLI em um z/OS mainframe IBM para acessar, gerenciar e interagir diretamente a Serviços da AWS partir do z/OS. AWS CLI Isso permite que usuários e aplicativos executem várias tarefas, como:
+ Transferência de arquivos ou conjuntos de dados entre o armazenamento de objetos do z/OS Amazon Simple Storage Service (Amazon S3) e a visualização do conteúdo de buckets
+ Iniciar e interromper AWS recursos diferentes; por exemplo, iniciar um trabalho em lotes em um AWS Mainframe Modernization ambiente
+ Chamando uma AWS Lambda função para implementar uma lógica comercial comum
+ Integração com inteligência artificial, aprendizado de máquina (IA/ML) e serviços de análise

Esse padrão descreve como instalar, configurar e usar o AWS CLI em z/OS. You can install it globally, so it's available to all z/OS usuários ou em nível de usuário. O padrão também detalha como usar o AWS CLI em uma sessão de linha de comando interativa do z/OS Unix System Services (USS) ou como um trabalho em lote.

## Pré-requisitos e limitações
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Pré-requisitos **
+ **Comunicação de rede de z/OS para AWS**

  Por padrão, o AWS CLI envia solicitações Serviços da AWS usando HTTPS na porta TCP 443. Para usar o AWS CLI com sucesso, você deve ser capaz de fazer conexões de saída na porta TCP 443. Você pode usar qualquer um dos seguintes comandos do z/OS USS (alguns deles podem não estar instalados em seu ambiente) para testar a conectividade de rede de z/OS até AWS:

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS credenciais**

  Para se comunicar com Nuvem AWS serviços do z/OS, é AWS CLI necessário configurar algumas credenciais com privilégios para acessar o destino. Conta da AWS Para comandos programáticos AWS, você pode usar teclas de acesso, que consistem em um ID de chave de acesso e uma chave de acesso secreta. Se você não tiver chaves de acesso, poderá criá-las usando o Console de gerenciamento da AWS. Como prática recomendada, não use as chaves de acesso do usuário Conta da AWS raiz em nenhuma tarefa, a menos que o usuário raiz seja necessário. Em vez disso, [crie um novo usuário administrador do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e [prepare-se para obter permissões com privilégios mínimos****](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) para configurar o usuário com chaves de acesso. Depois de criar o usuário, você pode [criar uma ID de chave de acesso e uma chave de acesso secreta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) para esse usuário.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python para z/OS**

   AWS CLI Isso requer Python 3.8 ou posterior. A IBM permitiu que o Python fosse executado z/OS com o [IBM Open Enterprise Python](https://www.ibm.com/products/open-enterprise-python-zos) for z/OS. [O IBM Open Enterprise Python está disponível gratuitamente por meio do Shopz SMP/E, ou você pode baixar o arquivo PAX no site da IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Para obter instruções, consulte a [documentação de instalação e configuração do](https://www.ibm.com/docs/en/python-zos) IBM Open Enterprise Python for z/OS.

**Limitações**
+ As instruções de instalação fornecidas nesse padrão são aplicáveis **somente àAWS CLI versão 1**. A versão mais recente do AWS CLI é a versão 2. No entanto, esse padrão usa a versão mais antiga porque os métodos de instalação são diferentes para a versão 2 e os executáveis binários disponíveis para a versão 2 não são compatíveis com o z/OS sistema.

**Versões do produto**
+ AWS CLI versão 1
+ Python 3.8 ou posterior

## Arquitetura
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**Pilha de tecnologia**
+ Mainframe executando z/OS
+ Serviços de sistema z/OS UNIX de mainframe (USS)
+ Mainframe Open MVS (OMVS) — interface de comando do ambiente z/OS shell UNIX
+ Disco de mainframe, como um dispositivo de armazenamento de acesso direto (DASD - direct-access storage device)
+ AWS CLI

**Arquitetura de destino**

O diagrama a seguir mostra uma AWS CLI implantação no IBM z/OS. Você pode invocar o a AWS CLI partir de uma sessão de usuário interativa, como SSH e sessões de telnet. Você também pode invocá-lo a partir de um trabalho em lotes usando a linguagem de controle de tarefas (JCL) ou de qualquer programa que possa chamar um comando shell do z/OS Unix.

![\[AWS CLI em um z/OS mainframe IBM acessando os serviços da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


Eles AWS CLI se comunicam com os AWS service (Serviço da AWS) endpoints por meio de uma TCP/IP rede. Essa conexão de rede pode ocorrer pela Internet ou por meio de uma AWS Direct Connect conexão privada do data center do cliente com os data Nuvem AWS centers. A comunicação é autenticada com AWS credenciais e criptografada. 

**Automação e escala**

Você pode explorar os recursos de um AWS service (Serviço da AWS) com o AWS CLI e desenvolver scripts de shell do USS para gerenciar seus AWS recursos a partir do z/OS. Você também pode executar AWS CLI comandos e scripts de shell a partir do ambiente z/OS em lotes e automatizar trabalhos em lotes para execução em um cronograma específico por meio da integração com agendadores de mainframe. AWS CLI comandos ou scripts podem ser codificados dentro de parâmetros (PARMs) e procedimentos (PROCs) e podem ser escalados seguindo a abordagem padrão de chamar o PARM ou o PROC a partir de diferentes trabalhos em lotes com parâmetros diferentes.

## Ferramentas
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [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.

## Práticas recomendadas
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Por motivos de segurança, restrinja as permissões de acesso ao diretório do USS onde os detalhes da chave de AWS acesso estão armazenados. Permita o acesso somente aos usuários ou programas que usam AWS CLI o.
+ Não use as chaves de acesso do usuário Conta da AWS root para nenhuma tarefa. Em vez disso, [crie um novo usuário administrador do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) para você e configure-o com chaves de acesso.


| 
| 
| Os usuários do IAM têm credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários. | 
| --- |

## Épicos
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### Instale AWS CLI a versão 1 no z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Python 3.8 ou posterior. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Defina as variáveis de ambiente do USS. | Adicione variáveis de ambiente ao perfil. Você pode adicioná-los ao `/u/cliuser/.profile` arquivo de um usuário individual (`cliuser`) ou ao `/etc/profile` arquivo de todos os usuários.Esse padrão pressupõe que o Python tenha sido instalado no `/u/awscli/python` diretório. Se o diretório de instalação for diferente, atualize o código adequadamente.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Administrador de mainframe z/OS  | 
| Teste a instalação do Python. | Execute o comando **python**:<pre>python --version</pre>A saída deve confirmar que você tem o Python 3.8 ou posterior instalado corretamente. | Administrador de mainframe z/OS  | 
| Verifique ou instale o **pip.** | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Instale AWS CLI a versão 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 

### Configurar o AWS CLI acesso a partir do z/OS
<a name="configure-cli-access-from-z-os"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure as chaves de AWS acesso, a região padrão e a saída. | A [AWS CLI documentação](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) descreve diferentes opções para configurar o AWS acesso. Você pode escolher uma configuração de acordo com os padrões da sua organização. Este exemplo usa a configuração de credenciais de curto prazo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador da AWS, administrador de mainframe, z/OS desenvolvedor de mainframe z/OS  | 
| Teste AWS CLI o. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Administrador de mainframe, desenvolvedor de mainframe z/OS  | 

### Opção 1 ‒ Transferir dados do USS para o Amazon S3 de forma interativa a partir de uma sessão do USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe e transfira o arquivo CSV de amostra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de aplicativos, desenvolvedor de mainframe z/OS  | 
| Crie um bucket do S3 e faça o upload do arquivo CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de aplicativos, desenvolvedor de mainframe z/OS  | 
| Visualize o bucket do S3 e o arquivo carregado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Para obter mais informações sobre o upload de objetos, consulte [Introdução ao Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3 na documentação do Amazon S3. | AWS geral | 
| Execute uma consulta SQL em uma tabela do Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)A saída da consulta SQL exibirá o conteúdo do seu arquivo CSV. | AWS geral, desenvolvedor de aplicativos | 

### Opção 2 ‒ Transferir dados do USS para o Amazon S3 usando JCL em lote
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o upload do arquivo de amostra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de mainframe z/OS  | 
| Crie JCL em lote. | Codifique o JCL em lote da seguinte forma para criar o bucket S3 de destino, fazer o upload do conjunto de dados e listar o conteúdo do bucket. Certifique-se de substituir o nome do diretório, os nomes dos arquivos e o nome do bucket pelos seus próprios valores.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Desenvolvedor de mainframe z/OS  | 
| Envie o trabalho JCL em lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de mainframe z/OS  | 
| Visualize o conjunto de dados carregado no bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS geral | 

## Recursos relacionados
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentação da versão 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization Referência de comandos da CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Mais informações
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED na opção 3.4 do ISPF (utilitário de lista de conjuntos de dados)**

![\[Visualizando o conteúdo do conjunto de dados no z/OS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT do trabalho em lotes enviado**

![\[Saída padrão do registro de tarefas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Anexos
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Backup e arquivamento de dados do mainframe no Amazon S3 usando o BMC AMI Cloud Data
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data"></a>

*Santosh Kumar Singh, Gilberto Biondo e Maggie Li, Amazon Web Services*

*Mikhael Liberman, Model9 Mainframe Software*

## Resumo
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-summary"></a>

Este padrão demonstra como fazer backup e arquivar dados do mainframe diretamente no Amazon Simple Storage Service (Amazon S3) e, em seguida, recuperar e restaurar esses dados no mainframe usando o BMC AMI Cloud Data (conhecido anteriormente como Model9 Manager). Se você está procurando uma maneira de modernizar sua solução de backup e arquivamento como parte de um projeto de modernização do mainframe ou para atender aos requisitos de conformidade, este padrão pode ajudar você a atingir essas metas.

Normalmente, as organizações que executam as principais aplicações de negócios em mainframes usam uma biblioteca de fitas virtuais (VTL) para fazer backup de armazenamentos de dados, como arquivos e logs. Esse método pode ser caro porque consome MIPS faturáveis, e os dados armazenados em fitas fora do mainframe ficam inacessíveis. Para evitar esses problemas, você pode usar o BMC AMI Cloud Data para transferir dados operacionais e históricos do mainframe de forma rápida e econômica diretamente para o Amazon S3. Você pode usar o BMC AMI Cloud Data para fazer backup e arquivar TCP/IP dados AWS enquanto aproveita os mecanismos IBM z Integrated Information Processor (zIIP) para reduzir custos, paralelismo e tempos de transferência.

## Pré-requisitos e limitações
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ BMC AMI Cloud Data com uma chave de licença válida
+ Conectividade TCP/IP entre o mainframe e a AWS
+ Uma função AWS Identity and Access Management (IAM) para read/write acesso a um bucket do S3
+ Acesso ao produto de segurança de mainframe (RACF) no local para executar processos do BMC AMI Cloud
+ Um z/OS agente BMC AMI Cloud (Java versão 8 de 64 bits SR5 FP16 ou posterior) que tem portas de rede disponíveis, regras de firewall que permitem acesso aos buckets do S3 e um sistema de arquivos dedicado z/FS 
+ [Requisitos](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) atendidos para o servidor de gerenciamento do BMC AMI Cloud

**Limitações**
+ O BMC AMI Cloud Data armazena seus dados operacionais em um banco de dados PostgreSQL que é executado como um contêiner Docker na mesma instância do Amazon Elastic Compute Cloud ( EC2Amazon) do servidor de gerenciamento. O Amazon Relational Database Service (Amazon RDS) não é compatível atualmente como um backend para o BMC AMI Cloud Data. Para obter mais informações sobre as atualizações mais recentes do produto, consulte [What's New?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) na documentação do BMC.
+ Esse padrão faz backup e arquiva somente os dados do z/OS mainframe. O BMC AMI Cloud Data realiza o backup e o arquivamento somente de arquivos do mainframe.
+ Este padrão não faz a conversão de dados em formatos abertos padrão, como JSON ou CSV. Use um serviço de transformação adicional, como o [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (anteriormente conhecido como Model9 Gravity) para converter os dados em formatos abertos padrão. Aplicações nativas da nuvem e ferramentas de data analytics podem acessar os dados depois que eles são gravados na nuvem.

**Versões do produto**
+ BMC AMI Cloud Data versão 2.x

## Arquitetura
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-architecture"></a>

**Pilha de tecnologia de origem**
+ Mainframe executando z/OS
+ Arquivos de mainframe, como conjuntos de dados e arquivos z/OS UNIX System Services (USS)
+ Disco de mainframe, como um dispositivo de armazenamento de acesso direto (DASD - direct-access storage device)
+ Fita de mainframe (biblioteca de fitas virtuais ou físicas)

**Pilha de tecnologias de destino**
+ Amazon S3
+  EC2 Instância da Amazon em uma nuvem privada virtual (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura de referência em que os agentes do software BMC AMI Cloud Data em um mainframe conduzem os processos legados de backup e arquivamento de dados que armazenam os dados no Amazon S3.

![\[Agentes do software BMC AMI Cloud Data em um mainframe conduzindo processos legados de backup e arquivamento de dados\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os agentes do software BMC AMI Cloud Data são executados em partições lógicas de mainframe (). LPARs Os agentes de software leem e gravam dados do mainframe do DASD ou da fita diretamente no Amazon S3 via TCP/IP.

1. AWS Direct Connect configura uma conexão física isolada entre a rede local e. AWS Para aumentar a segurança, use uma site-to-site VPN na parte superior Direct Connect para criptografar dados em trânsito.

1. O bucket do S3 armazena arquivos do mainframe como dados de armazenamento de objetos, e os agentes do BMC AMI Cloud Data se comunicam diretamente com os buckets do S3. Os certificados são usados para criptografia HTTPS de todas as comunicações entre o agente e o Amazon S3. A criptografia de dados do Amazon S3 é usada para criptografar e proteger os dados em repouso.

1. Os servidores de gerenciamento de dados do BMC AMI Cloud são executados como contêineres Docker em EC2 instâncias. As instâncias se comunicam com agentes em execução no mainframe LPARs e nos buckets do S3.

1. O Amazon EFS é montado em EC2 instâncias ativas e passivas para compartilhar o armazenamento do Network File System (NFS). Isso serve para garantir que os metadados relacionados a uma política criada no servidor de gerenciamento não sejam perdidos no caso de um failover. No caso de um failover do servidor ativo, é possível acessar o servidor passivo sem perda de dados. Se o servidor passivo falhar, é possível acessar o servidor ativo sem perda de dados.

## Ferramentas
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-tools"></a>

**Serviços da AWS**
+ [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.
+ 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 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 quase qualquer quantidade de dados.
+ [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.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)conecta sua rede interna a um AWS Direct Connect local por meio de um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para AWS serviços públicos, ignorando os provedores de serviços de Internet em seu caminho de rede.
+ [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 do BMC**
+ O [servidor de gerenciamento BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) é um aplicativo de GUI que é executado como um contêiner Docker em uma Amazon Linux Amazon Machine Image (AMI) para Amazon. EC2 O servidor de gerenciamento fornece a funcionalidade para gerenciar as atividades do BMC AMI Cloud, como emissão de relatórios, criação e gerenciamento de políticas, execução de arquivamentos e realização de backups, recuperações e restaurações.
+ O [agente do BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) é executado em uma LPAR de mainframe on-premises que lê e grava arquivos diretamente no armazenamento de objetos usando TCP/IP. Uma tarefa iniciada é executada em uma LPAR de mainframe e é responsável por ler e gravar dados de backup e arquivamento de e para o Amazon S3.
+ A [interface de linha de comando (M9CLI) do BMC AMI Cloud Mainframe](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) fornece um conjunto de comandos para realizar ações do BMC AMI Cloud diretamente de TSO/E ou em operações em lote, sem a dependência do servidor de gerenciamento.

## Épicos
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-epics"></a>

### Crie um bucket do S3 e uma política do IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para armazenar os arquivos e volumes dos quais você deseja fazer backup e arquivar do seu ambiente de mainframe. | AWS geral | 
| Crie uma política do IAM. | Todos os servidores de gerenciamento e agentes do BMC AMI Cloud exigem acesso ao bucket do S3 que você criou na etapa anterior.Para conceder o acesso necessário, crie a seguinte política do IAM:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Listfolder",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation",<br />                "s3:ListBucketVersions"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>"<br />            ]<br />        },<br />        {<br />            "Sid": "Objectaccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS geral | 

### Obtenha a licença do software BMC AMI Cloud e baixe o software
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença do software BMC AMI Cloud. | Para obter uma chave de licença do software, entre em contato com a [equipe do BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). A saída do z/OS `D M=CPU` comando é necessária para gerar uma licença. | Crie um lead | 
| Baixe a chave da licença e o software BMC AMI Cloud. | Obtenha os arquivos de instalação e a chave de licença seguindo as instruções na [documentação do BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Administrador de infraestrutura de mainframe | 

### Instalar o agente de software BMC AMI Cloud no mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o agente de software BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de infraestrutura de mainframe | 

### Configurar um servidor de gerenciamento do BMC AMI Cloud em uma instância EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie instâncias EC2 do Amazon Linux 2. | Execute duas instâncias do Amazon EC2 Linux 2 em diferentes zonas de disponibilidade seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon.A instância deve atender aos seguintes requisitos de hardware e software recomendados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para obter mais informações, consulte a [documentação do BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Arquiteto de nuvem, administrador de nuvem | 
| Criar um sistema de arquivos do Amazon EFS. | Crie um sistema de arquivos do Amazon EFS seguindo as instruções da [Etapa 1: Crie seu sistema de arquivos do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) na documentação do Amazon EFS.Ao criar o sistema de arquivos, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de nuvem, arquiteto de nuvem | 
| Instale o Docker e configure o servidor de gerenciamento. | **Conecte-se às suas EC2 instâncias:**Conecte-se às suas EC2 instâncias seguindo as instruções em [Conecte-se à sua instância Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) na EC2 documentação da Amazon.**Configure suas EC2 instâncias:**Para cada EC2 instância, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Arquiteto de nuvem, administrador de nuvem | 
| Instale o software do servidor de gerenciamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para solucionar problemas, acesse os logs armazenados na pasta `/data/model9/logs/`****. Para obter mais informações, consulte a [documentação do BMC](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Arquiteto de nuvem, administrador de nuvem | 

### Adicionar um agente e definir uma política de backup ou arquivamento no servidor de gerenciamento do BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione um novo agente. | Antes de adicionar um novo agente, considere o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Você deve criar um agente no servidor de gerenciamento antes de definir qualquer política de backup e arquivamento. Para criar o agente, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Depois que o agente for criado, você verá o status de **conectado** em relação ao armazenamento de objetos e ao agente de mainframe em uma nova janela que aparece na tabela. | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Crie uma política de backup ou arquivamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 

### Execute a política de backup ou arquivamento a partir do servidor de gerenciamento
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a política de backup ou arquivamento. | Execute a política de backup ou arquivamento de dados criada anteriormente no servidor de gerenciamento manual ou automaticamente (com base em uma programação). Para executar a política manualmente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Restaure a política de backup ou arquivamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 

### Execute a política de backup ou arquivamento a partir do mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a política de backup ou arquivamento usando o M9CLI. | Use o M9CLI para realizar processos de backup e restauração a partir do TSO/E, REXX ou até mesmo JCLs sem configurar regras no servidor de gerenciamento do BMC AMI Cloud.**Usando o TSO/E:**Se você usar o TSO/E, certifique-se de que o `M9CLI REXX` esteja concatenado ao `TSO`. Para fazer backup de um conjunto de dados por meio do TSO/E, use o comando `TSO M9CLI BACKDSN <DSNAME>`.Para obter mais informações sobre comandos do M9CLI, consulte a [Referência da CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) na documentação do BMC.**Usando JCLs:**Para executar a política de backup e arquivamento usando JCLs, execute o `M9CLI` comando.**Usando operações em lote:**Os seguintes exemplos mostram como arquivar um conjunto de dados executando o comando `M9CLI` por lote:<pre>//JOBNAME JOB …<br />//M9CLI EXEC PGM=IKJEFT01<br />//STEPLIB DD DISP=SHR,DSN=<MODEL9 LOADLIB><br />//SYSEXEC DD DISP=SHR,DSN=<MODEL9 EXEC LIB><br />//SYSTSPRT DD SYSOUT=*<br />//SYSPRINT DD SYSOUT=*<br />//SYSTSIN DD TSO M9CLI ARCHIVE <br /> M9CLI ARCHIVE <DSNNAME OR DSN PATTERN>   <br />/</pre> | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Execute a política de backup ou arquivamento no lote JCL. | O BMC AMI Cloud fornece um exemplo de rotina JCL chamada **M9SAPIJ**. Você pode personalizar o **M9SAPIJ** para executar uma política específica criada no servidor de gerenciamento com uma JCL. Esse trabalho também pode fazer parte de um programador de lotes para executar processos de backup e restauração automaticamente.O trabalho em lotes espera os seguintes valores obrigatórios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Você também pode alterar outros valores seguindo as instruções na tarefa de amostra. | Administrador ou desenvolvedor de armazenamento de mainframe | 

## Recursos relacionados
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernização do mainframe com a AWS](https://aws.amazon.com/mainframe/) (documentação da AWS)
+ [Como o backup na nuvem para mainframes reduz custos com o Model9 e a AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) (blog da rede de parceiro da AWS)
+ [Como habilitar a análise de dados de mainframe na AWS usando o Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (blog da rede de parceiro da AWS)
+ [Recomendações de resiliência do AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentação da AWS)
+ [Documentação do BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (site do BMC)

# Crie programas COBOL Db2 usando e AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas e Eduardo Zimelewicz, Amazon Web Services*

## Resumo
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Esse padrão explica como criar um AWS CodeBuild projeto simples para pré-compilar e vincular programas COBOL Db2 usando as ferramentas Replatform. AWS Mainframe Modernization Isso permite a implantação e a execução desses programas no ambiente de execução do AWS Mainframe Modernization Replatform.

O COBOL, uma linguagem de programação voltada para os negócios, alimenta muitas aplicações essenciais devido à sua confiabilidade e à legibilidade. O IBM Db2, um sistema de gerenciamento de banco de dados relacional, gerencia grandes volumes de dados com eficiência e se integra aos programas COBOL por meio de SQL. Juntos, o COBOL e o Db2 formam a espinha dorsal de operações essenciais em setores como finanças e governo, apesar do surgimento de novas tecnologias.

A migração de componentes COBOL e Db2 do ambiente de mainframe para outras plataformas leva a desafios como compatibilidade de plataformas, complexidade de integração, migração de dados e otimização de performance. A movimentação desses componentes essenciais requer um planejamento cuidadoso, conhecimento técnico e recursos para garantir uma migração tranquila e, ao mesmo tempo, manter a confiabilidade e a funcionalidade.

O AWS Mainframe Modernization serviço fornece ferramentas e recursos para reformular aplicativos e bancos de dados de mainframe para execução em AWS infraestrutura, como instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Isso envolve mover as workloads do mainframe para a nuvem sem grandes alterações no código.

O processo de pré-compilação e vinculação do Db2 é essencial para otimizar a performance e a confiabilidade das aplicações de banco de dados. A pré-compilação transforma instruções SQL incorporadas em código executável, o que reduz a sobrecarga de runtime e aumenta a eficiência. O processo de vinculação vincula o código pré-compilado às estruturas do banco de dados, facilitando os caminhos de acesso e a otimização de consultas. Esse processo garante a integridade dos dados, melhora a capacidade de resposta da aplicação e protege contra vulnerabilidades de segurança. Aplicações devidamente pré-compiladas e vinculadas minimizam o consumo de recursos, aprimoram a escalabilidade e reduzem os riscos de ataques de injeção de SQL.

## Pré-requisitos e limitações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Pré-requisitos **
+ Um acesso Conta da AWS ao console em nível administrativo.
+ Um sistema de banco de dados IBM Db2, como IBM Db2 para z/OS ou Db2 para Linux, Unix e Windows (LUW).
+ O software do IBM Data Server Client, que está disponível para download no [site da IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Para obter mais informações, consulte [IBM Data Server Client and Data Server Driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Um programa COBOL Db2 para ser compilado e vinculado. Como alternativa, este padrão fornece um exemplo básico de programa que você pode usar.
+ Uma nuvem privada virtual (VPC) ativada AWS com uma rede privada. Para obter mais informações sobre como criar uma VPC, consulte a [documentação da Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Um repositório de controle de origem, como GitHub ou GitLab.

**Limitações**
+ Para AWS CodeBuild cotas, consulte [Cotas](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) para. AWS CodeBuild
+ 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="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Pilha de tecnologia de origem**

A pilha de origem inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ Compilador IBM COBOL e Db2 para pré-compilador z/OS 
+ Outras partes da configuração do mainframe, como o sistema de arquivos, o gerenciador de transações e o spool

**Pilha de tecnologias de destino**

A abordagem desse padrão funciona com duas opções: mover dados do Db2 para o Db2 z/OS para LUW ou permanecer no Db2 para z/OS. A arquitetura de destino inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ AWS Mainframe Modernization Ferramentas de compilação de replataformas
+ AWS CodeBuild como a infraestrutura para criar o aplicativo
+ Outros Nuvem AWS recursos, como Amazon Linux

**Arquitetura de destino**

![\[A arquitetura para criar programas COBOL Db2 na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


O diagrama ilustra o seguinte:

1. O usuário carrega seu código em um repositório de controle de origem, como GitHub ou. GitLab

1. AWS CodePipeline percebe a alteração e obtém o código do repositório.

1. CodePipeline inicia AWS CodeBuild e envia o código.

1. CodeBuild segue as instruções no `buildspec.yml` modelo (fornecidas na seção [Informações adicionais](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) para:

   1. Obter o IBM Data Server Client de um bucket do Amazon Simple Storage Service (Amazon S3).

   1. Instalar e configurar o IBM Data Server Client.

   1. Recupere as credenciais do Db2 de. AWS Secrets Manager

   1. Conecte-se ao servidor do Db2.

   1. Pré-compilar, compilar e vincular o programa COBOL.

   1. Guarde os produtos acabados em um balde S3 AWS CodeDeploy para uso.

1. CodePipeline começa CodeDeploy.

1. CodeDeploy coordena seus agentes, que já estão instalados nos ambientes de execução. Os agentes buscam a aplicação no Amazon S3 e a instalam com base nas instruções em `appspec.yml`.

Para simplificar e manter o foco no processo de compilação, as instruções neste padrão abrangem as etapas de 1 a 4, mas não incluem a implantação do programa COBOL Db2.

**Automação e escala**

Para simplificar, este padrão descreve como provisionar recursos manualmente. No entanto, existem várias opções de automação disponíveis, como CloudFormation AWS Cloud Development Kit (AWS CDK), e HashiCorp Terraform, que automatizam essas tarefas. Para obter mais informações, consulte a documentação do [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) e do [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

## Ferramentas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**Serviços da AWS**
+ O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatiza implantações na Amazon EC2 ou em instâncias, AWS Lambda funções ou serviços do Amazon Elastic Container Service (Amazon ECS).
+ O [AWS CodePipeline](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, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornece ferramentas e recursos para ajudá-lo a planejar e implementar a migração e a modernização de mainframes para ambientes de tempo de execução AWS gerenciados.

**Outras ferramentas**
+ **Imagem do Amazon ECR para ferramentas de AWS Mainframe Modernization replataforma**. Para compilar um aplicativo COBOL, você precisará começar CodeBuild usando uma imagem do Amazon Elastic Container Registry (Amazon ECR) que contém as ferramentas Replatform: AWS Mainframe Modernization 

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  Para obter mais informações sobre a imagem do ECR disponível, consulte o [tutorial](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) no *Guia do usuário do AWS Mainframe Modernization *.
+ O software [IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) é essencial para pré-compilar e vincular programas COBOL Db2. CodeBuild Ele atua como uma ponte entre o compilador COBOL e o Db2.

## Práticas recomendadas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Nem todo programa COBOL depende do Db2 como sua camada de persistência de dados. Certifique-se de que as diretivas de compilação para acessar o Db2 sejam aplicadas somente aos programas COBOL projetados especificamente para interagir com o Db2. Implemente uma lógica para distinguir entre programas COBOL Db2 e programas COBOL que não usam o Db2.
+ Recomendamos que você evite compilar programas que não tenham sido modificados. Implemente um processo para identificar quais programas precisam de compilação.

## Épicos
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Criar a infraestrutura de nuvem
<a name="create-the-cloud-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket do S3 para hospedar o IBM Data Server Client e artefatos do pipeline. | Você precisa configurar um bucket do S3 para (a) carregar o IBM Data Server Client, (b) armazenar seu código do repositório e (c) armazenar os resultados do processo de criação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para saber como criar um bucket do S3, consulte a [documentação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | AWS geral | 
| Carregue o IBM Data Server Client no bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS geral | 
| Crie um AWS Secrets Manager segredo para suas credenciais do Db2. | Para criar um segredo para armazenar suas DB2 credenciais com segurança:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre como criar segredos, consulte a [documentação do Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS geral | 
| Verifique se o Db2 pode ser acessado pela sub-rede da VPC. | AWS CodeBuild precisa de uma conexão com o servidor Db2 para que o Data Server Client possa realizar operações de pré-compilação e vinculação. Certifique-se de que CodeBuild possa acessar o servidor Db2 por meio de uma conexão segura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrador de rede, AWS geral | 

### Criar os artefatos da aplicação
<a name="create-the-application-artifacts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o ativo COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Desenvolvedor de aplicativos | 
| Crie o arquivo `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Conecte seu repositório a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Você precisará do Amazon Resource Name (ARN) para a conexão ao criar a política AWS Identity and Access Management (IAM) para uma CodePipeline etapa posterior. | AWS DevOps | 

### Configurar permissões do
<a name="configure-permissions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política do IAM para CodeBuild. | O CodeBuild projeto requer acesso a alguns recursos, incluindo Secrets Manager e Amazon S3.Para configurar as permissões necessárias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre criação de políticas do IAM, consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS geral | 
| Crie uma função do IAM para CodeBuild. | Para disponibilizar as políticas de segurança CodeBuild, você precisa configurar uma função do IAM.Para criar esse perfil:1. No painel [console do IAM](https://console.aws.amazon.com/iam), no painel de navegação, selecione **Perfis**, **Criar perfil**.3. Para o **Tipo de entidade confiável**, mantenha a configuração padrão **AWS service (Serviço da AWS)**.4. **Em Caso de uso**, selecione o CodeBuild serviço e escolha **Avançar**.4. Na lista de políticas do IAM disponíveis, localize a política para CodeBuild a qual você criou e escolha **Avançar** para anexá-la à função.5. Especifique um nome para a função e escolha **Create role** para salvá-la para futura referência CodeBuild.Para obter mais informações sobre a criação de uma função do IAM para um AWS service (Serviço da AWS), consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS geral | 
| Crie uma política do IAM para CodePipeline. | O AWS CodePipeline pipeline requer acesso a alguns recursos, incluindo seu repositório de código e o Amazon S3.Repita as etapas fornecidas anteriormente CodeBuild para criar uma política do IAM para CodePipeline (na etapa 2, escolha **CodePipeline**em vez de **CodeBuild**). | AWS DevOps | 
| Crie uma função do IAM para CodePipeline. | Para disponibilizar as políticas de segurança CodePipeline, você precisa configurar uma função do IAM.Para criar esse perfil:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compilar e vincular o programa COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CodePipeline pipeline e um CodeBuild projeto. | Para criar um CodePipeline pipeline e o CodeBuild projeto que compila e vincula o programa COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Revise a saída. | Verifique o sucesso da compilação revisando os registros da CodePipeline compilação. | AWS DevOps | 
| Verifique os resultados no Db2. | Verifique a versão do pacote na tabela SYSPLAN.<pre>select CAST(NAME AS VARCHAR(10)) as name, VALIDATE, LAST_BIND_TIME, LASTUSED, CAST(PKGVERSION AS VARCHAR(10)) as PKGVERSION from SYSIBM.SYSPLAN where NAME = 'CDB2SMP' order by LAST_BIND_TIME desc<br /></pre>A versão deve corresponder ao ID da CodeBuild compilação, que está `CDB2SMP` em nosso exemplo:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Solução de problemas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ocasionalmente, o AWS console muda de região quando você se move entre os serviços. | Certifique-se de verificar o selecionado Região da AWS sempre que alternar entre os serviços.O Região da AWS seletor está no canto superior direito da janela do console. | 
| Pode ser difícil identificar problemas de conectividade do Db2 a partir do CodeBuild. | Para solucionar problemas de conectividade, adicione o seguinte comando DB2 connect ao `buildspec.yml` arquivo. Essa adição ajuda você a depurar e resolver problemas de conectividade.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Ocasionalmente, o painel de perfis no console do IAM não mostra imediatamente a política do IAM que você criou. | Se você encontrar um atraso, atualize a tela para exibir as informações mais recentes. | 

## Recursos relacionados
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**Documentação da IBM**
+ [IBM Data Server Client and driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Download IBM Data Server Client and driver types](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentação**
+ [Guia do usuário do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guia do usuário](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Guia do usuário](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Guia do usuário](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guia do usuário](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guia do usuário** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Mais informações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild política**

Substitua os espaços reservados `<RegionID>`, `<AccountID>`, `<SubnetARN>`, `<BucketARN>` e `<DB2CredSecretARN>` com seus valores.

```
{"Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*" },
        {"Action": ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", 
                    "ecr:BatchCheckLayerAvailability"],
         "Effect": "Allow", 
         "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"},
        {"Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::aws-m2-repo-*/*"},
        {"Action": ["logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup"],
         "Effect": "Allow", "Resource": "arn:aws:logs:<RegionId>:<AccountId>:*"},
        {"Action": ["ec2:DescribeVpcs", "ec2:DescribeSubnets", 
                    "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", 
                    "ec2:DescribeDhcpOptions", "ec2:DeleteNetworkInterface", 
                    "ec2:CreateNetworkInterface"],
         "Effect": "Allow", "Resource": "*"},
        {"Action": "ec2:CreateNetworkInterfacePermission", 
         "Effect": "Allow", "Resource": ["<SubnetARN>"]},
        {"Action": "s3:*", "Effect": "Allow", "Resource": ["<BucketARN>/*","<BucketARN>"]},
        {"Action": "secretsmanager:GetSecretValue", 
         "Effect": "Allow", "Resource": "<DB2CredSecretARN>"}
    ]
}
```

**CodePipeline política**

Substitua os espaços reservados `<BucketARN>` e `<ConnectionARN>` com seus valores.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": ["s3:List*", "s3:GetObjectVersion", "s3:GetObject", "s3:GetBucketVersioning" ], 
        "Effect": "Allow",
        "Resource": ["<BucketARN>/*", "<BucketARN>"]},
        {"Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds"], 
         "Effect": "Allow", "Resource": "*"},
        {"Action": ["codestar-connections:UseConnection"],
         "Effect": "Allow", "Resource": "<ConnectionARN>"}
        ]
}
```

**`buildspec.yml`**

Substitua o espaço reservado `<your-bucket-name>` pelo nome do seu bucket do S3.

```
version: 0.2
phases:
  pre_build:
    commands:
      - /var/microfocuslicensing/bin/mfcesd -no > /var/microfocuslicensing/logs/mfcesd_startup.log 2>&1 &
      - |
        mkdir $CODEBUILD_SRC_DIR/db2client
        aws s3 cp s3://<your-bucket-name>/v11.5.8_linuxx64_client.tar.gz $CODEBUILD_SRC_DIR/db2client/ >> /dev/null 2>&1
        tar -xf $CODEBUILD_SRC_DIR/db2client/v11.5.8_linuxx64_client.tar.gz -C $CODEBUILD_SRC_DIR/db2client/
        cd $CODEBUILD_SRC_DIR/db2client/
        ./client/db2_install -f sysreq -y -b /opt/ibm/db2/V11.5 >> /dev/null 2>&1        
        useradd db2cli
        /opt/ibm/db2/V11.5/instance/db2icrt -s client -u db2cli db2cli
        DB2CRED=$(aws secretsmanager get-secret-value --secret-id dev-db2-cred | jq -r '.SecretString | fromjson')
        read -r DB2USER DB2PASS DB_NODE DB_HOST DB_PORT DB_NAME DB_QUAL <<<$(echo $DB2CRED | jq -r '.username, .password, .db2node, .db2host, .db2port, .db2name, .qualifier')
        . /home/db2cli/sqllib/db2profile
        db2 catalog tcpip node $DB_NODE remote $DB_HOST server $DB_PORT
        db2 catalog db $DB_NAME as $DB_NAME at node $DB_NODE authentication server
  build:
    commands:
      - |
        revision=$CODEBUILD_SRC_DIR/loadlib
        mkdir -p $revision; cd $revision
        . /opt/microfocus/EnterpriseDeveloper/bin/cobsetenv
        cob -zU $CODEBUILD_SRC_DIR/CDB2SMP.cbl -C "DB2(DB==${DB_NAME} PASS==${DB2USER}.${DB2PASS} VERSION==${CODEBUILD_BUILD_NUMBER} COLLECTION==DB2AWSDB"
artifacts:
  files:
    - "**/*"
  base-directory: $revision
```

# Crie um PAC de servidor corporativo da Micro Focus com o Amazon EC2 Auto Scaling e o Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

*Kevin Yung e Krithika Palani Selvam, Amazon Web Services*

*Peter Woods, Nenhum*

*Abraham Rondon, Micro Focus*

## Resumo
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-summary"></a>

Esse padrão introduz uma arquitetura escalável para aplicativos de mainframe usando o [Micro Focus Enterprise Server no Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) e um grupo Amazon Elastic Compute Cloud (Amazon) EC2 Auto Scaling no Amazon Web Services ().AWS A solução é totalmente automatizada com ganchos de AWS Systems Manager ciclo de vida do Amazon EC2 Auto Scaling. Ao usar esse padrão, você pode configurar seus aplicativos de mainframe on-line e em lote para obter alta resiliência, aumentando e reduzindo automaticamente a escala com base em suas demandas de capacidade. 

**nota**  
Este padrão foi testado com o Micro Focus Enterprise Server versão 6.0. Para a versão 8, consulte [Configurar o Micro Focus Runtime (na Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Pré-requisitos e limitações
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Software e licença do Micro Focus Enterprise Server. Para obter detalhes, entre em contato com a equipe de [vendas da Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Uma compreensão do conceito de reconstrução e entrega de um aplicativo de mainframe para ser executado no Micro Focus Enterprise Server. Para obter uma visão geral de alto nível, consulte a [planilha de dados do Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Uma compreensão dos conceitos do Cluster Escalável de Desempenho e Disponibilidade do Micro Focus Enterprise Server. Para ter mais informações, consulte a [documentação do Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Uma compreensão do conceito geral de aplicativo de mainframe DevOps com integração contínua (CI). Para um padrão de orientação AWS prescritiva desenvolvido pela AWS Micro Focus, consulte [Modernização do mainframe: DevOps on AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) with Micro Focus.

**nota**  
Este padrão foi testado com o Micro Focus Enterprise Server versão 6. Para a versão 8, consulte [Configurar o Micro Focus Runtime (na Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limitações**
+ Para obter uma lista das plataformas suportadas pelo Micro Focus Enterprise Server, consulte a [ficha técnica do Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Os scripts e testes usados nesse padrão são baseados no Amazon EC2 Windows Server 2019; outras versões e sistemas operacionais do Windows Server não foram testados para esse padrão.
+ O padrão é baseado no Micro Focus Enterprise Server 6.0 para Windows; versões anteriores ou superiores não foram testadas no desenvolvimento desse padrão.

**Versões do produto**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

## Arquitetura
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-architecture"></a>

No ambiente convencional de mainframe, você deve provisionar hardware para hospedar seus aplicativos e dados corporativos. Para atender e atender aos picos de demandas sazonais, mensais, trimestrais ou até mesmo sem precedentes ou inesperadas, os usuários de mainframe devem *aumentar a escala horizontalmente* comprando capacidade adicional de armazenamento e computação. Aumentar o número de recursos de armazenamento e capacidade computacional melhora o desempenho geral, mas o dimensionamento não é linear.

Esse não é o caso quando você começa a adotar um modelo de consumo sob demanda na AWS usando Amazon Auto EC2 Scaling e Micro Focus Enterprise Servers. As seções a seguir explicam detalhadamente como criar uma arquitetura de aplicativo de mainframe totalmente automatizada e escalável usando o cluster de desempenho e disponibilidade (PAC) do Micro Focus Enterprise Server Scale-Out com um grupo Amazon Auto Scaling. EC2  

**Arquitetura de escalabilidade automática do Micro Focus Enterprise Server**

Primeiro, é importante entender os conceitos básicos do Micro Focus Enterprise Server. Esse ambiente fornece um ambiente de implantação x86 compatível com mainframe para aplicativos que tradicionalmente são executados no mainframe IBM. Ele oferece execuções on-line e em lote e um ambiente de transações que oferece suporte ao seguinte:
+ IBM COBOL
+ IBM PL/I
+ Trabalhos em lote do IBM JCL
+ Transações IBM CICS e IMS TM
+ Serviços da web
+ Utilitários de lote comuns, incluindo SORT

O Micro Focus Enterprise Server permite que os aplicativos de mainframe sejam executados com o mínimo de alterações. Os workloads de mainframe existentes podem ser transferidos para plataformas x86 e modernizadas para aproveitar as extensões nativas de nuvem da AWS Cloud para uma rápida expansão para novos mercados ou regiões. 

O padrão de orientação prescritiva da AWS [Modernização do mainframe: na DevOps AWS com a Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) introduziu a arquitetura para acelerar o desenvolvimento e o teste de aplicativos de mainframe na AWS usando o Micro Focus Enterprise Developer e o Enterprise Test Server com AWS e AWS. CodePipeline CodeBuild Esse padrão se concentra na implantação de aplicativos de mainframe no ambiente de produção da AWS para alcançar alta disponibilidade e resiliência.

Em um ambiente de produção de mainframe, você pode ter configurado o IBM Parallel Sysplex no mainframe para obter alto desempenho e alta disponibilidade. Para criar uma arquitetura escalável semelhante à Sysplex, a Micro Focus introduziu o Cluster de Desempenho e Disponibilidade (PAC) no Enterprise Server. PACs oferecem suporte à implantação de aplicativos de mainframe em várias regiões do Enterprise Server gerenciadas como uma única imagem e escalonadas em instâncias da Amazon EC2 . PACs também oferecem suporte ao desempenho previsível do aplicativo e à taxa de transferência do sistema sob demanda. 

Em um PAC, várias instâncias do Enterprise Server trabalham juntas como uma única entidade lógica. A falha de uma instância do Enterprise Server, portanto, não interromperá a continuidade dos negócios porque a capacidade é compartilhada com outras regiões, enquanto novas instâncias são iniciadas automaticamente usando a funcionalidade padrão do setor, como um grupo Amazon Auto EC2 Scaling. Isso remove pontos únicos de falha, melhorando a resiliência a problemas de hardware, rede e aplicativos. As instâncias escaláveis do Enterprise Server podem ser operadas e gerenciadas usando a Enterprise Server Common Web Administration (ESCWA) APIs, simplificando a manutenção operacional e a capacidade de manutenção dos servidores corporativos. 

**nota**  
A Micro Focus recomenda que o [Cluster de performance e disponibilidade (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) consista em pelo menos três regiões do Enterprise Server para que a disponibilidade não seja comprometida caso uma região do Enterprise Server falhe ou exija manutenção.

A configuração do PAC requer um serviço de gerenciamento de banco de dados relacional (RDBMS - relational database management service) compatível para gerenciar o banco de dados regional, um banco de dados entre regiões e bancos de dados opcionais de armazenamento de dados. Um banco de dados de armazenamento de dados deve ser usado para gerenciar arquivos do Método de Acesso ao Armazenamento Virtual (VSAM - Virtual Storage Access Method) usando o suporte do Micro Focus Database File Handler para melhorar a disponibilidade e a escalabilidade. RDBMSs Os compatíveis incluem o seguinte:
+ Microsoft SQL Server 2009 R2 ou superior
+ PostgreSQL 10.x, incluindo o Amazon Aurora Edição Compatível com PostgreSQL
+ DB2 10.4 e versões posteriores

Para obter detalhes sobre os requisitos de RDBMS e PAC suportados, consulte [Micro Focus Enterprise Server – Pré-requisitos](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) e [Micro Focus Enterprise Server – Configuração de PAC recomendada](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html).

O diagrama a seguir mostra uma configuração típica da arquitetura da AWS para uma PAC do Micro Focus. 

![\[Uma arquitetura de três zonas de disponibilidade com cinco etapas descritas em uma tabela após o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Componente** | **Descrição** | 
| --- |--- |--- |
| 1 | Grupo de escalabilidade automática de instâncias do Enterprise Server | Configure um grupo de escalabilidade automática implantado com instâncias do Enterprise Server em um PAC. O número de instâncias pode ser ampliado ou iniciado pelos CloudWatch alarmes da Amazon usando CloudWatch métricas. | 
| 2 | Grupo de escalabilidade automática de instâncias ESCWA do Enterprise Server  | Configure um grupo de escalabilidade automática implantado com o Enterprise Server Common Web Administration (ESCWA). A ESCWA fornece gerenciamento APIs de clusters.   Os servidores ESCWA atuam como um ambiente de gerenciamento para adicionar ou remover servidores corporativos e iniciar ou interromper regiões do servidor corporativo no PAC durante os eventos de escalabilidade automática da instância do servidor corporativo.   Como a instância ESCWA é usada somente para o gerenciamento do PAC, seu padrão de tráfego é previsível e o requisito de capacidade desejado de escalabilidade automática pode ser definido como 1.  | 
| 3 | Instância do Amazon Aurora em uma configuração multi-AZ | Configure um sistema de gerenciamento de banco de dados relacional (RDBMS) para hospedar arquivos de dados do usuário e do sistema a serem compartilhados entre as instâncias do Enterprise Server. | 
| 4 | Instância e réplica da Amazon ElastiCache (Redis OSS) | Configure uma instância primária ElastiCache (Redis OSS) e pelo menos uma réplica para hospedar dados do usuário e atuar como um repositório de expansão (SOR) para as instâncias do Enterprise Server. Você pode configurar um ou mais [repositórios de expansão horizontal](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) para armazenar tipos específicos de dados do usuário.   O Enterprise Server usa um banco de dados Redis NoSQL como SOR, [um requisito para manter a integridade do PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html). | 
| 5 | Network Load Balancer | Configure um balanceador de carga, fornecendo um nome de host para que os aplicativos se conectem aos serviços fornecidos pelas instâncias do Enterprise Server (por exemplo, acessando o aplicativo por meio de um emulador 3270). | 

Esses componentes formam o requisito mínimo para um cluster PAC do Micro Focus Enterprise Server. A próxima seção aborda a automação do gerenciamento de clusters.

**Usando o AWS Systems Manager Automation para escalabilidade**

Depois que o cluster PAC é implantado na AWS, o PAC é gerenciado por meio da Enterprise Server Common Web Administration (ESCWA). APIs 

Para automatizar as tarefas de gerenciamento de clusters durante eventos de escalabilidade automática, você pode usar os runbooks do Systems Manager Automation e o Amazon Auto EC2 Scaling com a Amazon. EventBridge A arquitetura dessas automações é mostrada no diagrama a seguir.

![\[AWS architecture diagram showing EventBridge, Systems Manager, and EC2 Auto Scaling integration.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)


 


| 
| 
|  | **Componente** | **Descrição** | 
| --- |--- |--- |
| 1 | Gancho do ciclo de vida de escalabilidade automática | Configure ganchos de ciclo de vida de escalabilidade automática e envie notificações para a Amazon EventBridge quando novas instâncias forem lançadas e instâncias existentes forem encerradas no grupo de escalabilidade automática. | 
| 2 | Amazon EventBridge | Configure uma EventBridge regra da Amazon para rotear eventos de escalabilidade automática para destinos do runbook do Systems Manager Automation. | 
| 3 | Runbooks do Automation | Configure os runbooks do Systems Manager Automation para executar PowerShell scripts do Windows e invocar o ESCWA APIs para gerenciar o PAC. Para obter exemplos, consulte a seção * Informações adicionais*. | 
| 4 | Instância ESCWA do Enterprise Server em um grupo de escalabilidade automática | Configure uma instância ESCWA do Enterprise Server em um grupo de escalabilidade automática. A instância ESCWA fornece APIs o gerenciamento do PAC.  | 

## Ferramentas
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-tools"></a>
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html): o Micro Focus Enterprise Server fornece o ambiente de execução para aplicativos criados com qualquer variante de ambiente de desenvolvimento integrado (IDE) do Enterprise Developer.
+ [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) — O Amazon EC2 Auto Scaling ajuda você a garantir que você tenha o número correto de instâncias da EC2 Amazon disponíveis para lidar com a carga do seu aplicativo. Você cria coleções de EC2 instâncias, chamadas grupos de Auto Scaling, e especifica os números mínimo e máximo de instâncias.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html) — A Amazon ElastiCache é um serviço web para configurar, gerenciar e escalar um armazenamento de dados distribuído na memória ou ambiente de cache na nuvem. Ele fornece uma solução de armazenamento em cache econômica, de alta performance e escalável.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html): o Amazon Relational Database Service (Amazon RDS) é um serviço Web que facilita a configuração, a operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional e gerencia tarefas comuns de administração de banco de dados. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html): o AWS Systems Manager é um serviço da AWS que você pode usar para visualizar e controlar sua infraestrutura na AWS. Usando o console do Systems Manager, você pode visualizar dados operacionais de vários serviços da AWS e automatizar tarefas operacionais nos recursos da AWS. O Systems Manager ajuda você a manter a segurança e a conformidade verificando suas instâncias gerenciadas e gerando relatórios (ou tomando medidas corretivas) sobre quaisquer violações de políticas detectadas.

## Épicos
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-epics"></a>

### Criar uma instância do Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo da AWS para uma instância do Amazon Aurora. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) para criar um CloudFormation modelo que criará uma instância de edição compatível com o Amazon Aurora PostgreSQL. | Arquiteto de nuvem | 
| Implante uma CloudFormation pilha para criar a instância do Amazon Aurora. | Use o CloudFormation modelo para criar uma instância compatível com o Aurora PostgreSQL que tenha a replicação Multi-AZ habilitada para cargas de trabalho de produção. | Arquiteto de nuvem | 
| Defina as configurações de conexão do banco de dados para o Enterprise Server. | Siga as instruções na [documentação da Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) para preparar as strings de conexão e a configuração do banco de dados para o Micro Focus Enterprise Server. | Engenheiro de dados, DevOps engenheiro | 

### Crie um ElastiCache cluster da Amazon para a instância do Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para o ElastiCache cluster da Amazon para a instância do Redis. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) para criar um CloudFormation modelo que criará um ElastiCache cluster da Amazon para a instância do Redis. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para criar um ElastiCache cluster da Amazon para a instância do Redis. | Crie o ElastiCache cluster da Amazon para a instância do Redis que tenha a replicação Multi-AZ habilitada para cargas de trabalho de produção. | Arquiteto de nuvem | 
| Defina as configurações de conexão PSOR do Enterprise Server. | Siga as instruções na [documentação da Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) para preparar a configuração de conexão do Repositório escalável do PAC (PSOR - PAC Scale-Out Repository) para o Micro Focus Enterprise Server PAC. | DevOps engenheiro | 

### Crie um grupo de escalabilidade automática ESCWA do Micro Focus Enterprise Server
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma AMI do Micro Focus Enterprise Server. | Crie uma instância EC2 do Amazon Windows Server e instale o binário do Micro Focus Enterprise Server na EC2 instância. Crie uma Amazon Machine Image (AMI) da EC2 instância. Para ter mais informações, consulte a [documentação do Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Arquiteto de nuvem | 
| Crie um CloudFormation modelo para o Enterprise Server ESCWA.  | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para criar um modelo para criar uma pilha personalizada do Enterprise Server ESCWA em um grupo de escalabilidade automática. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para criar um grupo de EC2 escalabilidade da Amazon para o Enterprise Server ESCWA. | Use o CloudFormation modelo para implantar o grupo de escalabilidade automática com a AMI ESCWA do Micro Focus Enterprise Server criada na história anterior. | Arquiteto de nuvem | 

### Crie um runbook do AWS Systems Manager Automation.
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para um runbook do Systems Manager Automation. | Use os trechos de código de exemplo na seção *Informações adicionais* para criar um CloudFormation modelo que criará um runbook do Systems Manager Automation para automatizar a criação de PAC, a expansão do Enterprise Server e a expansão horizontal do Enterprise Server. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha que contém o runbook do Systems Manager Automation. | Use o CloudFormation modelo para implantar uma pilha que contém o runbook de automação para criação de PAC, expansão do Enterprise Server e expansão horizontal do Enterprise Server. | Arquiteto de nuvem | 

### Crie um grupo de escalabilidade automática para o Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para configurar um grupo de escalabilidade automática para o Micro Focus Enterprise Server. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para criar um CloudFormation modelo que criará um grupo de escalabilidade automática. Esse modelo reutilizará a mesma AMI que foi criada para a instância ESCWA do Micro Focus Enterprise Server. Em seguida, use um [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) para criar o evento de ciclo de vida de escalabilidade automática e configurar EventBridge a Amazon para filtrar eventos de expansão e expansão no mesmo modelo. CloudFormation  | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para o grupo de escalabilidade automática para servidores corporativos da Micro Focus. | Implante a CloudFormation pilha que contém o grupo de escalabilidade automática para servidores corporativos da Micro Focus. | Arquiteto de nuvem | 

## Recursos relacionados
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Cluster de desempenho e disponibilidade (PAC) de Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Ganchos do ciclo de vida do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Executando automações com gatilhos usando EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Mais informações
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Os cenários a seguir devem ser automatizados para aumentar ou reduzir a escala dos clusters PAC.

**Automação para iniciar ou recriar um PAC**

No início de um cluster de PAC, o Enterprise Server exige que o ESCWA seja invocado APIs para criar uma configuração de PAC. Isso inicia e adiciona regiões do Enterprise Server ao PAC. Para criar ou recriar um PAC, siga as etapas a seguir: 

1. Configure um [PAC Scale-Out Repository (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) no ESCWA com um determinado nome.

   ```
   POST /server/v1/config/groups/sors
   ```

1. Crie um PAC com um determinado nome e anexe o PSOR a ele.

   ```
   POST /server/v1/config/groups/pacs
   ```

1. Configure o banco de dados da região e o banco de dados entre regiões se for a primeira vez que você estiver configurando uma PAC.
**nota**  
Essa etapa usa consultas SQL e a ferramenta da linha de comando **dbhfhadmin** do Micro Focus Enterprise Suite para criar o banco de dados e importar os dados iniciais.

1. Instale a definição do PAC nas regiões do Enterprise Server.

   ```
   POST /server/v1/config/mfds 
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Inicie as regiões do Enterprise Server no PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

As etapas anteriores podem ser implementadas usando um PowerShell script do Windows. 

As etapas a seguir explicam como criar uma automação para criar uma PAC reutilizando o script do Windows PowerShell .

1. Crie um modelo de EC2 lançamento da Amazon que baixe ou crie o PowerShell script do Windows como parte do processo de bootstrap. Por exemplo, você pode usar dados EC2 do usuário para baixar o script de um bucket do Amazon Simple Storage Service (Amazon S3).

1. Crie um runbook do AWS Systems Manager Automation para invocar o script do Windows PowerShell .

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Criar um grupo de escalabilidade automática ESCWA usando um modelo de execução. 

Você pode usar o seguinte exemplo de CloudFormation trecho da AWS para criar o runbook de automação.

*Exemplo de CloudFormation trecho de um runbook do Systems Manager Automation usado para criação de PAC*

```
  PACInitDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to create Enterprise Server PAC
         mainSteps:
         - action: aws:runPowerShellScript
           name: CreatePAC
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - | 
               C:\Scripts\PAC-Init.ps1
  PacInitAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         description: Prepare Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunPACInitDocument
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref PACInitDocument
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
   PacInitDocumentAssociation:
     Type: AWS::SSM::Association
     Properties:
       DocumentVersion: "$LATEST"
       Name: !Ref PACInitDocument
       Targets:
         - Key: tag:Enterprise Server - ESCWA
           Values:
             - "true"
```

Para obter mais informações, consulte [Micro Focus Enterprise Server – Configurando um PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Automação para expansão horizontal com uma nova instância do Enterprise Server**

Quando uma instância do Enterprise Server é expandida, sua região do Enterprise Server deve ser adicionada ao PAC. As etapas a seguir explicam como invocar a ESCWA APIs e adicionar a região do Enterprise Server à PAC. 

1. Instale a definição do PAC nas regiões do Enterprise Server.

   ```
   POST '/server/v1/config/mfds'
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Inicie a região em modo de inicialização rápida no PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

1. Adicione a instância do Enterprise Server ao balanceador de carga associando o grupo de escalabilidade automática ao balanceador de carga.

As etapas anteriores podem ser implementadas usando um PowerShell script do Windows. Para obter mais informações, consulte [Micro Focus Enterprise Server – Configurando um PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

As etapas a seguir podem ser usadas para criar uma automação orientada por eventos para adicionar uma instância recém-lançada do Enterprise Server a uma PAC reutilizando o script do Windows PowerShell . 

1. Crie um modelo de EC2 lançamento da Amazon para a instância do Enterprise Server que provisione uma região do servidor corporativo durante sua inicialização. Por exemplo, você pode usar o comando mfds do Micro Focus Enterprise Server para importar uma configuração de região. Para obter mais detalhes e opções disponíveis para esse comando, consulte a [Referência do Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html).

1. Crie um grupo de escalabilidade automática do Enterprise Server que use o modelo de execução criado na etapa anterior.

1. Crie um runbook do Systems Manager Automation para invocar o script do Windows PowerShell . 

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Crie uma EventBridge regra da Amazon para filtrar o evento EC2 Instance Launch Successful para o grupo de escalabilidade automática do Enterprise Server e crie o destino para usar o runbook de automação.

Você pode usar o seguinte exemplo de CloudFormation trecho para criar o runbook de automação e a regra. EventBridge 

*Exemplo de CloudFormation trecho do Systems Manager usado para escalar instâncias do Enterprise Server*

```
  ScaleOutDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Adding MFDS Server into an existing PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Add_MFDS
           inputs:
             onFailure: Abort
             timeoutSeconds: "300"
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleOutAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleOutCommand
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleOutDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 InstanceId: "{{InstanceId}}"
                 MfdsPort: "{{MfdsPort}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
```

**Automação para reduzir a escala horizontalmente em uma instância do Enterprise Server**

Semelhante à escalabilidade horizontal, quando uma instância do Enterprise Server é *ampliada*, o evento EC2 Instance-terminate Lifecycle Action é iniciado e os seguintes processos e chamadas de API são necessários para remover uma instância do Micro Focus Enterprise Server da PAC. 

1. Pare a região na instância de encerramento do Enterprise Server.

   ```
   POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
   ```

1. Remova a instância do servidor corporativo do PAC.

   ```
   DELETE "/server/v1/config/mfds/${uid}"
   ```

1. Envie um sinal para continuar encerrando a instância do Enterprise Server.

As etapas anteriores podem ser implementadas em um PowerShell script do Windows. Para obter detalhes adicionais sobre esse processo, consulte o [documento do Micro Focus Enterprise Server – Administrando uma PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

As etapas a seguir explicam como criar uma automação orientada por eventos para encerrar uma instância do Enterprise Server a partir de uma PAC reutilizando o script do Windows. PowerShell  

1. Crie um runbook do Systems Manager Automation para invocar o script do Windows PowerShell .

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Crie um gancho automático do ciclo de vida do grupo de escalabilidade, por EC2 exemplo, encerramento.

1. Crie uma EventBridge regra da Amazon para filtrar o evento EC2 Instance-terminate Lifecycle Action para o grupo de escalabilidade automática do Enterprise Server e crie o destino para usar o runbook de automação. 

Você pode usar o CloudFormation modelo de exemplo a seguir para criar um runbook, um gancho de ciclo de vida e uma regra do Systems Manager Automation. EventBridge 

*Exemplo de CloudFormation trecho de um runbook do Systems Manager Automation usado para escalar em uma instância do Enterprise Server*

```
  ScaleInDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Remove MFDS Server from PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Remove_MFDS
           inputs:
             onFailure: Abort
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleInAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"            
           InstanceId:
             type: String
             default: "Not-Available"                
         description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleInCommand
             action: aws:runCommand
             timeoutSeconds: "600"
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleInDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 MfdsPort: "{{MfdsPort}}"
                 InstanceId: "{{InstanceId}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
           - name: TerminateTheInstance
             action: aws:executeAwsApi
             inputs:
               Service: autoscaling
               Api: CompleteLifecycleAction
               AutoScalingGroupName: !Ref AutoScalingGroup
               InstanceId: "{{ InstanceId }}"
               LifecycleActionResult: CONTINUE
               LifecycleHookName: !Ref ScaleInLifeCycleHook
```

**Automação para um gatilho de escalabilidade EC2 automática da Amazon**

O processo de configuração de uma política de escalabilidade para instâncias do Enterprise Server requer uma compreensão do comportamento do aplicativo. Na maioria dos casos, você pode configurar políticas de escalabilidade de rastreamento de destino. Por exemplo, você pode usar a média de utilização da CPU como CloudWatch métrica da Amazon para definir a política de escalabilidade automática. Para obter mais informações, consulte [Políticas de escalabilidade de rastreamento de metas para o Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Para aplicativos que têm padrões de tráfego regulares, considere usar uma política de escalabilidade preditiva. Para obter mais informações, consulte Escalabilidade [preditiva para Amazon Auto EC2 Scaling.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html) 

# Crie um visualizador avançado de arquivos de mainframe na Nuvem AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Boopathy Gopalsamy e Jeremiah O’Connor, Amazon Web Services*

## Resumo
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-summary"></a>

Esse padrão fornece exemplos de código e etapas para ajudá-lo a criar uma ferramenta avançada para navegar e revisar seus arquivos de formato fixo de mainframe usando os serviços de tecnologia sem servidor da AWS. O padrão fornece um exemplo de como converter um arquivo de entrada de mainframe em um documento do Amazon OpenSearch Service para navegação e pesquisa. A ferramenta de visualização de arquivos pode ajudá-lo a conseguir o seguinte:
+ Reter a mesma estrutura e layout de arquivos de mainframe para obter consistência em seu ambiente de migração de destino da AWS (por exemplo, você pode manter o mesmo layout para arquivos em um aplicativo em lote que transmite arquivos para terceiros)
+ Acelerar o desenvolvimento e os testes durante a migração do mainframe
+ Apoiar as atividades de manutenção após a migração

## Pré-requisitos e limitações
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) com uma sub-rede acessível por sua plataforma legada
+ 
**nota**  
Um arquivo de entrada e seu caderno correspondente de linguagem orientada a negócios (COBOL) (: Para obter exemplos de arquivos de entrada e cadernos COBOL, consulte no repositório. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Para obter mais informações sobre os copybooks do COBOL, consulte o Guia de Programação do [Enterprise COBOL for z/OS 6.3](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) no site da IBM.)

**Limitações**
+ A análise do copybook é limitada a não mais do que dois níveis aninhados (OCCURS)

## Arquitetura
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-architecture"></a>

**Pilha de tecnologia de origem**
+ Arquivos de entrada no formato [FB (Fixed Blocked)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ Layout de cadernos em COBOL

**Pilha de tecnologias de destino**
+ Amazon Athena
+  OpenSearch Serviço Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Arquitetura de destino**

O diagrama a seguir mostra o processo de análise e conversão de um arquivo de entrada de mainframe em um documento de OpenSearch serviço para navegação e pesquisa.

![\[Processo para analisar e converter o arquivo de entrada do mainframe em Serviço. OpenSearch\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário administrador ou aplicativo envia os arquivos de entrada para um bucket do S3 e os copybooks do COBOL para outro bucket do S3.

1. 
**nota**  
O bucket do S3 com os arquivos de entrada invoca uma função do Lambda que inicia um fluxo de trabalho de Step Functions de tecnologia sem servidor. : O uso de um acionador de evento do S3 e de uma função do Lambda para conduzir o fluxo de trabalho do Step Functions neste padrão é opcional. Os exemplos de GitHub código nesse padrão não incluem o uso desses serviços, mas você pode usá-los com base em seus requisitos.

1. O fluxo de trabalho do Step Functions coordena todos os processos em lote das seguintes funções do Lambda:
   + A função `s3copybookparser.py` analisa o layout do caderno e extrai atributos de campo, tipos de dados e deslocamentos (necessários para o processamento de dados de entrada).
   + A função `s3toathena.py` cria um layout de tabela do Athena. O Athena analisa os dados de entrada que são processados pela função `s3toathena.py` e os converte em um arquivo CSV.
   + A `s3toelasticsearch.py` função ingere o arquivo de resultados do bucket do S3 e envia o arquivo para o Service. OpenSearch 

1. Os usuários acessam os OpenSearch painéis com o OpenSearch Service para recuperar os dados em vários formatos de tabela e coluna e, em seguida, executar consultas nos dados indexados.

## Ferramentas
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-tools"></a>

**Serviços da AWS**
+ O [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) é um serviço de consultas interativas que ajuda na análise de dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda você 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. Nesse padrão, você usa o Lambda para implementar a lógica central, como analisar arquivos, converter dados e carregar dados no OpenSearch Service para acesso interativo a arquivos.
+ O [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) é um serviço gerenciado que ajuda você a implantar, operar e escalar clusters de OpenSearch serviços na nuvem da AWS. Nesse padrão, você usa o OpenSearch Service para indexar os arquivos convertidos e fornecer recursos de pesquisa interativa para os usuários.
+ 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.
+ A ‭[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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) é um serviço de orquestração de tecnologia sem servidor que permite combinar funções do Lambda e outros serviços da AWS para criar aplicações essenciais aos negócios. Nesse padrão, você usa o Step Functions para orquestrar funções do Lambda.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Código **

O código desse padrão está disponível no GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositório.

## Épicos
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-epics"></a>

### Preparar o ambiente de destino
<a name="prepare-the-target-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o bucket do S3. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) para armazenar os cadernos, arquivos de entrada e arquivos de saída. Recomendamos a seguinte estrutura de pastas para seu bucket do S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie o cluster OpenSearch de serviços. | **Criar um cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Conceder acesso ao perfil do IAM**Para fornecer acesso refinado ao perfil do IAM (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) da função Lambda, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie Step Functions para orquestração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 

### Implemente e execute
<a name="deploy-and-run"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Carregue os arquivos de entrada e os cadernos para seu bucket do S3. | Faça o download dos arquivos de amostra da pasta de amostra do [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositório e faça o upload dos arquivos para o bucket do S3 que você criou anteriormente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| chame o Step Functions.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)<pre>{<br />  "s3_copybook_bucket_name": "<BUCKET NAME>",<br />  "s3_copybook_bucket_key": "<COPYBOOK PATH>",<br />  "s3_source_bucket_name": "<BUCKET NAME",<br />  "s3_source_bucket_key": "INPUT FILE PATH"<br />}</pre>Por exemplo:<pre>{<br />  "s3_copybook_bucket_name": "fileaidtest",<br />  "s3_copybook_bucket_key": "copybook/acctix.cpy",<br />  "s3_source_bucket_name": "fileaidtest",<br />  "s3_source_bucket_key": "input/acctindex"<br />}</pre> | AWS geral | 
| Valide a execução do fluxo de trabalho em Step Functions. | No [console Step Functions](https://console.aws.amazon.com/states/home), revise a execução do fluxo de trabalho no **inspetor gráfico**. Os estados de execução são codificados por cores para representar o status da execução. Por exemplo, azul indica **Em andamento**, verde indica **Sucesso** e vermelho indica **Falha**. Você também pode revisar a tabela na seção **Histórico de eventos de execução** para obter informações mais detalhadas sobre os eventos de execução.Para obter um exemplo de execução gráfica do fluxo de trabalho, consulte o *gráfico Step Functions* na seção *Informações adicionais* desse padrão. | AWS geral | 
| Valide os registros de entrega na Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Para ver um exemplo de registros de entrega bem-sucedidos, consulte *os registros de CloudWatch entrega* na seção *Informações adicionais* desse padrão. | AWS geral | 
| Valide o arquivo formatado nos OpenSearch painéis e execute operações de arquivo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 

## Recursos relacionados
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-resources"></a>

**Referências**
+ [Exemplo de copybook COBOL](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) (documentação da IBM)
+ [BMC Compuware File-AID](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html) (documentação da BMC)

**Tutoriais**
+ [Tutorial: Uso de um acionador do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentação do AWS Lambda)
+ [Como faço para criar um fluxo de trabalho de tecnologia sem servidor com o AWS Step Functions e o AWS Lambda](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/) (documentação da AWS)
+ [Usando OpenSearch painéis com o Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentação da AWS)

## Mais informações
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Gráfico de Step Functions**

O exemplo a seguir mostra um gráfico do Step Functions. O gráfico mostra o status da execução das funções do Lambda usadas nesse padrão.

![\[O gráfico do Step Functions exibe o status de execução das funções do Lambda usadas neste padrão.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch registros de entrega**

O exemplo a seguir mostra registros de entrega bem-sucedidos para a execução da execução `s3toelasticsearch`.


| 
| 
| 2022-08-10T15:53:33.033-05:00 | Número de documentos de processamento: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T15:53:33.171-05:00 | [INFO] 2022-08-10T 20:53:33,171 Z a1b2c3d4-5678-90ab-cdef- POST:443/\$1bulk [status: 200 solicitação: 0,100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T15:53:33.172-05:00 | Gravação em massa bem-sucedida: 100 documentos | 

# Containerize workloads de mainframe que foram modernizadas pela Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Resumo
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

Esse padrão fornece um ambiente de contêiner de exemplo para executar workloads de mainframe que foram modernizadas com o uso da ferramenta [Blu Age](https://www.bluage.com/). O Blu Age converte workloads antigas de mainframe em código Java moderno. Esse padrão fornece um encapsulamento ao redor da aplicação Java para que você possa executá-la usando os serviços de orquestração de contêiner, como [Amazon Elastic Container Service (Amazon ECS) ou [Amazon Elastic Kubernetes](https://aws.amazon.com/eks/) Service (Amazon EKS)](https://aws.amazon.com/ecs/).

Para obter mais informações sobre a modernização de suas workloads usando o Blu Age e os serviços da AWS, consulte estas publicações de Recomendações da AWS:
+ [Executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

Para obter ajuda com o uso do Blu Age para modernizar suas workloads de mainframe, entre em contato com a equipe da Blu Age selecionando **Entrar em contato com nossos especialistas** no [site da Blu Age](https://www.bluage.com/). Para obter ajuda para migrar suas workloads modernizadas para a AWS, integrá-las aos serviços da AWS e colocá-las em produção, entre em contato com seu gerente de contas da AWS ou preencha o [formulário AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Pré-requisitos e limitações
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo Java modernizado que foi criado pela Blu Age. Para fins de teste, esse padrão fornece um exemplo de aplicativo Java que você poderá usar como prova de conceito.
+ Um ambiente [Docker](https://aws.amazon.com/docker/) que você poderá usar para criar o contêiner.

**Limitações**

Dependendo da plataforma de orquestração de contêineres que você usa, os recursos que podem ser disponibilizados para o contêiner (como CPU, RAM e armazenamento) podem ser limitados. Por exemplo, se você estiver usando o Amazon ECS com o AWS Fargate, consulte a [documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) para ver os limites e considerações.

## Arquitetura
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Pilha de tecnologia de origem**
+ Blu Age
+ Java

**Pilha de tecnologias de destino**
+ Docker

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura de uma aplicação em Blu Age dentro de um contêiner do Docker.

![\[Aplicativo Blu Age no contêiner do Docker\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. O ponto de entrada para o contêiner é o script do encapsulamento. Esse script bash é responsável por preparar o ambiente de runtime para o aplicativo Blu Age e processar as saídas.

1. As variáveis de ambiente no contêiner são usadas para configurar variáveis no script do encapsulamento, como os nomes de bucket do Amazon Simple Storage Service (Amazon S3) e as credenciais do banco de dados. As variáveis de ambiente são fornecidas pelo AWS Secrets Manager ou pelo Parameter Store, um recurso do AWS Systems Manager. Se você estiver usando o Amazon ECS como seu serviço de orquestração de contêineres, você também poderá codificar as variáveis de ambiente na definição de tarefas do Amazon ECS.

1. O script wrapper é responsável por puxar todos os arquivos de entrada do bucket do S3 para o contêiner antes de você executar o aplicativo Blu Age. A AWS Command Line Interface (AWS CLI) foi instalada no contêiner. Isso fornece um mecanismo para acessar objetos que são armazenados no Amazon S3 por meio do endpoint de nuvem privada virtual (VPC) do gateway.

1. O arquivo Java Archive (JAR) do aplicativo Blu Age poderá precisar se comunicar com outras fontes de dados, como o Amazon Aurora.

1. Após a conclusão, o script do wrapper entrega os arquivos de saída resultantes em um bucket do S3 para processamento adicional (por exemplo, pelos serviços de CloudWatch registro da Amazon). O padrão também suporta a entrega de arquivos de log compactados para o Amazon S3, se você estiver usando uma alternativa ao CloudWatch registro padrão.

## Ferramentas
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**Serviços da AWS**
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ O [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.

**Ferramentas**
+ O [Docker](https://aws.amazon.com/docker/) é uma plataforma de software para criar, testar e implantar aplicativos. O Docker empacota o software em unidades padronizadas chamadas [contêineres](https://aws.amazon.com/containers/), que têm tudo o que o software precisa para ser executado, incluindo bibliotecas, ferramentas do sistema, código e runtime. Você poderá usar o Docker para implantar e dimensionar aplicações em qualquer ambiente.
+ O [Bash](https://www.gnu.org/software/bash/manual/) é uma interface de linguagem de comando (shell) para o sistema operacional GNU.
+ [Java](https://www.java.com/) é a linguagem de programação e o ambiente de desenvolvimento usados nesse padrão.
+ O [Blu Age](https://www.bluage.com/) é uma ferramenta de AWS Mainframe Modernization que converte workloads antigas de mainframe, incluindo código de aplicativo, dependências e infraestrutura, em workloads modernas para a nuvem.

**Repositório de código**

O código desse padrão está disponível no [repositório de contêineres de amostras do GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Práticas recomendadas
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalize as variáveis para alterar o comportamento do seu aplicativo usando variáveis de ambiente. Essas variáveis permitem que a solução de orquestração de contêineres altere o ambiente de runtime sem reconstruir o contêiner. Esse padrão inclui exemplos de variáveis de ambiente que podem ser úteis para aplicativos Blu Age.
+ Valide todas as dependências do aplicativo antes de executar seu aplicativo Blu Age. Por exemplo, verifique se o banco de dados está disponível e se as credenciais são válidas. Escreva testes no script de encapsulamento para verificar as dependências e que apresente falhas com antecedência, caso não sejam atendidas.
+ Use o login detalhado no script do encapsulamento. Interagir diretamente com um contêiner em execução poderá ser um desafio, dependendo da plataforma de orquestração e da duração do trabalho. Certifique-se de que uma saída útil seja gravada em `STDOUT` para ajudar a diagnosticar quaisquer problemas. Por exemplo, a saída poderá incluir o conteúdo do diretório de trabalho do aplicativo antes e depois da execução do aplicativo.

## Épicos
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Obtenha um arquivo JAR do aplicativo Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Opção 1: trabalhe com o Blu Age para obter o arquivo JAR de seu aplicativo. | O contêiner nesse padrão requer um aplicativo Blu Age. Como alternativa, você poderá usar o aplicativo Java de exemplo fornecido com esse padrão para um protótipo.Trabalhe com a equipe do Blu Age para obter um arquivo JAR para seu aplicativo que possa ser incorporado ao contêiner. Se o arquivo JAR não estiver disponível, consulte a próxima tarefa para usar o aplicativo de exemplo em vez disso. | Arquiteto de nuvem | 
| Opção 2: crie ou use o arquivo JAR do aplicativo de exemplo fornecido. | Esse padrão fornece um arquivo JAR de exemplo pré-construído. Esse arquivo envia as variáveis de ambiente do aplicativo para `STDOUT` antes de entrar em repouso por 30 segundos e sair.Esse arquivo tem um nome `bluAgeSample.jar` e está localizado na [pasta docker do GitHub repositório](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker).Se você quiser alterar o código e criar sua própria versão do arquivo JAR, use o código-fonte localizado em[. /java\$1 sample/src/sample \$1java\$1app.java no repositório](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub Você poderá usar o script de construção em [./java\$1sample/build.sh](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample) para compilar o código-fonte Java e criar um novo arquivo JAR. | Desenvolvedor de aplicativos | 

### Construa o contêiner Blu Age
<a name="build-the-blu-age-container"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o GitHub repositório. | Clone o repositório de códigos de exemplo usando o comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Use o Docker para criar o contêiner. | Use o Docker para criar o contêiner antes de enviá-lo para um registro do Docker, como o Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Teste o contêiner Blu Age. | (Opcional) Se necessário, teste o contêiner localmente usando o comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Autentique-se no seu repositório Docker. | Se você planeja usar o Amazon ECR, siga as instruções na [documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) para instalar e configurar a AWS CLI e autenticar o CLI do Docker em seu registro padrão.Recomendamos que você use o [get-login-password comando](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) para autenticação.  No [console do Amazon ECR](https://console.aws.amazon.com/ecr/), você encontra uma versão preenchida previamente deste comando ao clicar no botão **Visualizar comandos push**. Para obter mais informações, consulte a [documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html).<pre>aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com</pre>Se você não planeja usar o Amazon ECR, siga as instruções fornecidas para seu sistema de registro de contêineres. | AWS DevOps | 
| Crie um repositório de contêineres. | Crie um repositório do Amazon ECR. Para obter instruções, consulte o padrão [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).Se você estiver usando outro sistema de registro de contêiner, siga as instruções fornecidas para esse sistema. | AWS DevOps | 
| Marque e envie seu contêiner para o repositório de destino. | Se você estiver usando o Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Para obter mais informações, consulte [Envio de uma imagem do Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) no *Guia do usuário do Amazon ECR*. | AWS DevOps | 

## Recursos relacionados
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**Recursos da AWS**
+ [Repositório de contêineres de exemplo do AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Usar o Amazon ECR com a AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) *(Guia do usuário do Amazon ECR*)
+ [Autenticação de registro privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Guia do usuário do Amazon ECR*)
+ [Documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentação do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Recursos adicionais**
+ [Site da Blu Age](https://www.bluage.com/)
+ [Site do Docker](https://docker.com/)

# Converta e descompacte dados EBCDIC em ASCII na AWS usando Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Resumo
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-summary"></a>

Como os mainframes normalmente hospedam dados comerciais críticos, a modernização dos dados é uma das tarefas mais importantes ao migrar dados para a nuvem da Amazon Web Services (AWS) ou outro ambiente do American Standard Code for Information Interchange (ASCII). Em mainframes, os dados geralmente são codificados no formato EBCDIC (código de intercâmbio decimal codificado por código binário estendido). A exportação de banco de dados, VSAM (Virtual Storage Access Method) ou arquivos simples geralmente produz arquivos EBCDIC binários compactados, que são mais complexos de migrar. A solução de migração de banco de dados mais usada é a captura de dados de alteração (CDC), que, na maioria dos casos, converte automaticamente a codificação de dados. No entanto, os mecanismos do CDC podem não estar disponíveis para esses bancos de dados, VSAM ou arquivos simples. Para esses arquivos, é necessária uma abordagem alternativa para modernizar os dados.

Esse padrão descreve como modernizar os dados EBCDIC convertendo-os para o formato ASCII. Após a conversão, você pode carregar os dados em bancos de dados distribuídos ou fazer com que aplicativos na nuvem processem os dados diretamente. O padrão usa o script de conversão e os arquivos de amostra no [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositório.

## Pré-requisitos e limitações
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um arquivo de entrada EBCDIC e seu copybook correspondente de linguagem comum orientada a negócios (COBOL). Um arquivo EBCDIC de amostra e um caderno COBOL estão incluídos no repositório. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Para obter mais informações sobre os copybooks do COBOL, consulte o [Guia de Programação do Enterprise COBOL for z/OS 6.4](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) no site da IBM.

**Limitações**
+ Os layouts de arquivo definidos nos programas COBOL não são suportados. Eles devem ser disponibilizados separadamente.

**Versões do produto**
+ Python, versão 3.8 ou superior

## Arquitetura
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-architecture"></a>

**Pilha de tecnologia de origem**
+ Dados EBCDIC em um mainframe
+ Copybook de COBOL

**Pilha de tecnologias de destino**
+ Instância do Amazon Elastic Compute Cloud (Amazon EC2) em uma nuvem privada virtual (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python e seus pacotes necessários, JavaScript Object Notation (JSON), sys e datetime
+ Arquivo plano ASCII pronto para ser lido por um aplicativo moderno ou carregado em uma tabela de banco de dados relacional

**Arquitetura de destino**

![\[Dados EBCDIC convertidos em ASCII em uma instância EC2 usando scripts Python e um caderno COBOL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


O diagrama de arquitetura mostra o processo de conversão de um arquivo EBCDIC em um arquivo ASCII em uma instância: EC2 

1. Usando o script **parse\$1copybook\$1to\$1json.py**, você converte o copybook de COBOL em um arquivo JSON.

1. Usando o arquivo JSON e o script **extract\$1ebcdic\$1to\$1ascii.py**, você converte os dados EBCDIC em um arquivo ASCII.

**Automação e escala**

Depois que os recursos necessários para as primeiras conversões manuais de arquivos estiverem disponíveis, você poderá automatizar a conversão de arquivos. Esse padrão não inclui instruções para automação. Há várias maneiras de automatizar a conversão. Veja abaixo uma visão geral de uma possível abordagem:

1. Encapsular os comandos do AWS Command Line Interface (AWS CLI) e os comandos de script do Python em um script de shell.

1. Crie uma função do AWS Lambda que envie de forma assíncrona o trabalho de script de shell em uma instância. EC2 Para obter mais informações, consulte [Agendamento de trabalhos de SSH usando o AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Crie um acionador do Amazon Simple Storage Service (Amazon S3) que invoque a função do Lambda toda vez que um arquivo legado for carregado. Para obter mais informações, consulte [Como usar um trigger do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Ferramentas
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-tools"></a>

**Serviços da AWS**
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) fornece capacidade de computação escalável na Nuvem AWS. Você pode iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ A [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 permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [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 recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Repositório de código**

O código desse padrão está disponível no [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositório.

## Épicos
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-epics"></a>

### Prepare a EC2 instância
<a name="prepare-the-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma EC2 instância. | A EC2 instância deve ter acesso externo à Internet. Isso permite que a instância acesse o código-fonte do Python disponível em. GitHub Para criar a instância:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral | 
| Instale o Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, Linux | 
| Instalar o Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, Linux | 
| Clone o GitHub repositório. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, GitHub | 

### Crie o arquivo ASCII a partir dos dados EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise o copybook de COBOL no arquivo de layout JSON. | Dentro da pasta `mainframe-data-utilities`, execute o script **parse\$1copybook\$1to\$1json.py**. Esse módulo de automação lê o layout do arquivo de um copybook de COBOL e cria um arquivo JSON. O arquivo JSON contém as informações necessárias para interpretar e extrair os dados do arquivo de origem. Isso cria os metadados JSON do copybook de COBOL. O comando a seguir converte o copybook de COBOL em um arquivo JSON.<pre>python3 parse_copybook_to_json.py \<br />-copybook LegacyReference/COBPACK2.cpy \<br />-output sample-data/cobpack2-list.json \<br />-dict sample-data/cobpack2-dict.json \<br />-ebcdic sample-data/COBPACK.OUTFILE.txt \<br />-ascii sample-data/COBPACK.ASCII.txt \<br />-print 10000</pre>O script imprime os argumentos recebidos.<pre>-----------------------------------------------------------------------<br />Copybook file...............| LegacyReference/COBPACK2.cpy<br />Parsed copybook (JSON List).| sample-data/cobpack2-list.json<br />JSON Dict (documentation)...| sample-data/cobpack2-dict.json<br />ASCII file..................| sample-data/COBPACK.ASCII.txt<br />EBCDIC file.................| sample-data/COBPACK.OUTFILE.txt<br />Print each..................| 10000<br />-----------------------------------------------------------------------</pre>Para obter mais informações sobre os argumentos, consulte o [arquivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) no GitHub repositório. | AWS geral, Linux | 
| Inspecione o arquivo de layout JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)<pre> "input": "extract-ebcdic-to-ascii/COBPACK.OUTFILE.txt",<br /> "output": "extract-ebcdic-to-ascii/COBPACK.ASCII.txt",<br /> "max": 0,<br /> "skip": 0,<br /> "print": 10000,<br /> "lrecl": 150,<br /> "rem-low-values": true,<br /> "separator": "|",<br /> "transf": [<br /> {<br /> "type": "ch",<br /> "bytes": 19,<br /> "name": "OUTFILE-TEXT"<br /> } </pre>Os atributos mais importantes do arquivo de layout JSON são:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Para obter mais informações sobre o arquivo de layout JSON, consulte o arquivo [README no GitHub repositório](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). | AWS geral, JSON | 
| Criar o arquivo ASCII.  | Execute o script **extract\$1ebcdic\$1to\$1ascii.py**, que está incluído no GitHub repositório clonado. Esse script lê o arquivo EBCDIC e grava um arquivo ASCII convertido e legível.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Conforme o script processa os dados do EBCDIC, ele imprime uma mensagem para cada lote de 10.000 registros. Veja o exemplo a seguir.<pre>------------------------------------------------------------------<br />2023-05-15 21:21:46.322253 | Local Json file   | -local-json | sample-data/cobpack2-list.json<br />2023-05-15 21:21:47.034556 | Records processed | 10000<br />2023-05-15 21:21:47.736434 | Records processed | 20000<br />2023-05-15 21:21:48.441696 | Records processed | 30000<br />2023-05-15 21:21:49.173781 | Records processed | 40000<br />2023-05-15 21:21:49.874779 | Records processed | 50000<br />2023-05-15 21:21:50.705873 | Records processed | 60000<br />2023-05-15 21:21:51.609335 | Records processed | 70000<br />2023-05-15 21:21:52.292989 | Records processed | 80000<br />2023-05-15 21:21:52.938366 | Records processed | 89280<br />2023-05-15 21:21:52.938448 Seconds 6.616232</pre>Para obter informações sobre como alterar a frequência de impressão, consulte o [arquivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) no GitHub repositório. | AWS geral | 
| Examinar o arquivo ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Se você usou o arquivo EBCDIC de amostra fornecido, o seguinte é o primeiro registro no arquivo ASCII.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | AWS geral, Linux | 
| Avalie o arquivo EBCDIC. | No EC2 console da Amazon, insira o seguinte comando. Isso abre o primeiro registro do arquivo EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Se você usou o arquivo EBCDIC de amostra, o resultado é o seguinte.<pre> 00000000: 60f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 f0f0 `...............<br /> 00000010: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 ................<br /> 00000020: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 ................<br /> 00000030: f0f0 f0f0 f0f0 d000 0000 0005 f5e1 00fa ................<br /> 00000040: 0a1f 0000 0000 0005 f5e1 00ff ffff fffa ................<br /> 00000050: 0a1f 0000 000f 0000 0c10 0000 000f 1000 ................<br /> 00000060: 0000 0d00 0000 0000 1000 0000 0f00 0000 ................<br /> 00000070: 0000 1000 0000 0dc1 c100 0000 0000 0000 ................<br /> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................<br /> 00000090: 0000 0000 0000 ......</pre>Para avaliar a equivalência entre os arquivos de origem e de destino, é necessário um conhecimento abrangente do EBCDIC. Por exemplo, o primeiro caractere do arquivo EBCDIC de amostra é um hífen (`-`). Na notação hexadecimal do arquivo EBCDIC, esse caractere é representado por `60`, e na notação hexadecimal do arquivo ASCII, esse caractere é representado por `2D`. Para obter uma tabela EBCDIC-to-ASCII de conversão, consulte [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) no site da IBM. | AWS geral, Linux, EBCDIC | 

## Recursos relacionados
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-resources"></a>

**Referências**
+ [O conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentação da IBM)
+ [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) (documentação da IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentação da IBM)
+ [Conceitos básicos de JCL](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (documentação da IBM)
+ [Conecte-se à sua instância Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentação da Amazon)

**Tutoriais**
+ [Agendamento de trabalhos SSH usando o AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (publicação no blog da AWS)
+ [Uso de um acionador do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentação do AWS Lambda)

# Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando AWS Lambda
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Resumo
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-summary"></a>

Esse padrão mostra como iniciar uma AWS Lambda função que converte automaticamente arquivos EBCDIC (Extended Binary Coded Decimal Interchange Code) do mainframe em arquivos American Standard Code for Information Interchange (ASCII) delimitados por caracteres. A função do Lambda é executada depois do upload dos arquivos ASCII em um bucket do Amazon Simple Storage Service (Amazon S3). Após a conversão do arquivo, você pode ler os arquivos ASCII em workloads baseadas em x86 ou carregar os arquivos em bancos de dados modernos.

A abordagem de conversão de arquivos demonstrada nesse padrão pode ajudar a superar os desafios de trabalhar com arquivos EBCDIC em ambientes modernos. Os arquivos codificados em EBCDIC geralmente contêm dados representados em formato binário ou decimal compactado, e os campos têm tamanho fixo. Essas características criam obstáculos, porque workloads modernas baseadas em x86 ou ambientes distribuídos geralmente funcionam com dados codificados em ASCII e não conseguem processar arquivos EBCDIC.

## Pré-requisitos e limitações
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Um bucket Amazon S3
+ Um usuário AWS Identity and Access Management (IAM) com permissões administrativas
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) ou superior
+ Um arquivo simples codificado em EBCDIC e sua estrutura de dados correspondente em um copybook de linguagem comum orientada a negócios (COBOL)

**nota**  
Este padrão usa um arquivo de amostra em EBCDIC ([CLIENT.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) junto com o copybook correspondente em COBOL ([COBKS05.cpy](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy)). Ambos os arquivos estão disponíveis no GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositório.

**Limitações**
+ Os copybooks de COBOL geralmente contêm várias definições de layout. O [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)projeto pode analisar esse tipo de caderno, mas não consegue inferir qual layout considerar na conversão de dados. Isso ocorre porque os copybooks não mantêm essa lógica (que, em vez disso, permanece nos programas COBOL). Consequentemente, você deve configurar manualmente as regras para selecionar layouts depois de analisar o copybook.
+ Esse padrão está sujeito às [cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

## Arquitetura
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-architecture"></a>

**Pilha de tecnologia de origem**
+ IBM z/OS, IBM i e outros sistemas EBCDIC
+ Arquivos sequenciais com dados codificados em EBCDIC (como descarregamentos do IBM Db2)
+ Copybook de COBOL

**Pilha de tecnologias de destino**
+ Amazon S3
+ Notificação de eventos do Amazon S3
+ IAM
+ Função do Lambda
+ Python 3.8 ou superior
+ Utilitários de dados de mainframe
+ Metadados JSON
+ Arquivos ASCII delimitados por caracteres

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para converter arquivos EBCDIC de mainframe em arquivos ASCII.

![\[Arquitetura para converter arquivos EBCDIC de mainframe em arquivos ASCII\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O usuário executa o script de análise do copybook, que converte o copybook em COBOL em um arquivo JSON.

1. O usuário faz o upload dos metadados em JSON para um bucket do Amazon S3. Isso torna os metadados legíveis pela função do Lambda de conversão de dados.

1. O usuário ou um processo automatizado faz o upload do arquivo em EBCDIC para o bucket do Amazon S3.

1. O evento de notificação do Amazon S3 aciona a função do Lambda responsável pela conversão de dados.

1. AWS verifica as permissões de leitura e gravação do bucket do Amazon S3 para a função Lambda.

1. O Lambda realiza a leitura do arquivo no bucket do Amazon S3 e a conversão local do arquivo em EBCDIC para ASCII.

1. O Lambda registra o status do processo na Amazon. CloudWatch

1. O Lambda grava o arquivo ASCII de volta no Amazon S3.

**nota**  
O script de análise do copybook é executado uma única vez para converter os metadados para o formato JSON, que, posteriormente, é armazenado em um bucket do Amazon S3. Após a conversão inicial, todos os arquivos em EBCDIC subsequentes, que fazem referência ao mesmo arquivo JSON no bucket do Amazon S3, usarão a configuração de metadados existente.

## Ferramentas
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-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 nos quais você executa AWS em tempo real.
+ 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 CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)é um shell baseado em navegador que você pode usar para gerenciar Serviços da AWS usando o AWS Command Line Interface (AWS CLI) e uma variedade de ferramentas de desenvolvimento pré-instaladas.
+ [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 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. O Lambda executa seu código somente quando necessário e escala automaticamente, e, assim, você paga apenas pelo tempo de computação usado.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Código **

O código desse padrão está disponível no GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositório.

## Práticas recomendadas
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-best-practices"></a>

Considere as seguintes práticas recomendadas:
+ Defina as permissões necessárias no nível do nome do recurso da Amazon (ARN).
+ Sempre conceda permissões de privilégio mínimo para políticas do IAM. Para obter mais informações, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.

## Épicos
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-epics"></a>

### Crie variáveis de ambiente e uma pasta de trabalho
<a name="create-environment-variables-and-a-working-folder"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie as variáveis de ambiente. | Copie as seguintes variáveis de ambiente para um editor de texto e, em seguida, substitua os valores `<placeholder>` no exemplo abaixo pelos valores dos seus recursos:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Você criará referências para seu bucket do Amazon S3 e Conta da AWS Região da AWS , posteriormente.Para definir variáveis de ambiente, abra o [CloudShell console](https://console.aws.amazon.com/cloudshell/) e, em seguida, copie e cole suas variáveis de ambiente atualizadas na linha de comando.Você deve repetir essa etapa sempre que a CloudShell sessão for reiniciada. | AWS geral | 
| Crie uma pasta de trabalho. | Para simplificar o processo de limpeza de recursos posteriormente, crie uma pasta de trabalho CloudShell executando o seguinte comando:<pre>mkdir workdir; cd workdir</pre>Você deve alterar o diretório para o diretório de trabalho (`workdir`) toda vez que perder uma conexão com sua CloudShell sessão. | AWS geral | 

### Defina uma política e um perfil do IAM
<a name="define-an-iam-role-and-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política de confiança para a função do Lambda. | O conversor EBCDIC é executado em uma função do Lambda. A função deve ter um perfil do IAM. Antes de criar um perfil do IAM, você deve definir um documento de política de confiança que permita que os recursos assumam essa política.Na pasta de CloudShell trabalho, crie um documento de política executando o seguinte comando:<pre>E2ATrustPol=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "Service": "lambda.amazonaws.com"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2ATrustPol" > E2ATrustPol.json</pre> | AWS geral | 
| Crie o perfil do IAM para conversão do Lambda. | Para criar uma função do IAM, execute o seguinte AWS CLI comando na pasta de CloudShell trabalho:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | AWS geral | 
| Crie o documento de política do IAM para a função do Lambda. | A função Lambda deve ter acesso de leitura e gravação ao bucket do Amazon S3 e permissões de gravação para o Amazon Logs. CloudWatch Para criar uma política do IAM, execute o seguinte comando na pasta de CloudShell trabalho:<pre>E2APolicy=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Logs",<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:PutLogEvents",<br />                "logs:CreateLogStream",<br />                "logs:CreateLogGroup"<br />            ],<br />            "Resource": [<br />                "arn:aws:logs:*:*:log-group:*",<br />                "arn:aws:logs:*:*:log-group:*:log-stream:*"<br />            ]<br />        },<br />        {<br />            "Sid": "S3",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:PutObject",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::%s/*",<br />                "arn:aws:s3:::%s"<br />            ]<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json</pre> | AWS geral | 
| Anexe o documento da política do IAM ao perfil do IAM. | Para anexar a política do IAM à função do IAM, insira o seguinte comando na sua pasta de CloudShell trabalho:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | AWS geral | 

### Crie a função do Lambda para conversão de EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o código-fonte da conversão EBCDIC. | Na pasta de CloudShell trabalho, execute o comando a seguir para baixar o mainframe-data-utilities código-fonte de GitHub:<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | AWS geral | 
| Crie o pacote ZIP. | Na pasta de CloudShell trabalho, insira o seguinte comando para criar o pacote ZIP que cria a função Lambda para conversão EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | AWS geral | 
| Criar a função do Lambda. | Na pasta de CloudShell trabalho, insira o seguinte comando para criar a função Lambda para conversão EBCDIC:<pre>aws lambda create-function \<br />--function-name E2A \<br />--runtime python3.9 \<br />--zip-file fileb://mdu.zip \<br />--handler extract_ebcdic_to_ascii.lambda_handler \<br />--role arn:aws:iam::$account:role/E2AConvLambdaRole \<br />--timeout 10 \<br />--environment "Variables={layout=$bucket/layout/}"</pre> A variável de ambiente “layout” indica à função do Lambda o local em que os metadados JSON estão localizados. | AWS geral | 
| Crie a política baseada em recursos para a função do Lambda. | Na pasta de CloudShell trabalho, insira o seguinte comando para permitir que sua notificação de eventos do Amazon S3 acione a função Lambda para conversão EBCDIC:<pre>aws lambda add-permission \<br />--function-name E2A \<br />--action lambda:InvokeFunction \<br />--principal s3.amazonaws.com \<br />--source-arn arn:aws:s3:::$bucket \<br />--source-account $account \<br />--statement-id 1</pre> | AWS geral | 

### Crie a notificação de evento do Amazon S3
<a name="create-the-s3-event-notification"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o documento de configuração para a notificação de evento do Amazon S3. | A notificação de evento do Amazon S3 inicia a função do Lambda de conversão do EBCDIC quando os arquivos são colocados na pasta de entrada.Na pasta de CloudShell trabalho, execute o seguinte comando para criar o documento JSON para a notificação de eventos do Amazon S3:<pre>S3E2AEvent=$(cat <<EOF<br />{<br />"LambdaFunctionConfigurations": [<br />    {<br />      "Id": "E2A",<br />      "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A",<br />      "Events": [ "s3:ObjectCreated:Put" ],<br />      "Filter": {<br />        "Key": {<br />          "FilterRules": [<br />            {<br />              "Name": "prefix",<br />              "Value": "input/"<br />            }<br />          ]<br />        }<br />      }<br />    }<br />  ]<br />}<br />EOF<br />)<br />printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json</pre> | AWS geral | 
| Crie a notificação de evento do Amazon S3. | Na pasta de CloudShell trabalho, digite o seguinte comando para criar a notificação de evento do Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | AWS geral | 

### Crie e faça o upload dos metadados JSON
<a name="create-and-upload-the-json-metadata"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise o copybook de COBOL. | Na pasta de CloudShell trabalho, insira o seguinte comando para analisar um exemplo de caderno COBOL em um arquivo JSON (que define como ler e dividir o arquivo de dados corretamente):<pre>python3       mdu/parse_copybook_to_json.py \<br />-copybook     mdu/LegacyReference/COBKS05.cpy \<br />-output       CLIENT.json \<br />-output-s3key CLIENT.ASCII.txt \<br />-output-s3bkt $bucket \<br />-output-type  s3 \<br />-print        25</pre> | AWS geral | 
| Adicione a regra de transformação. | O arquivo de dados de amostra e seu copybook de COBOL correspondente são arquivos com vários layouts. Isso significa que a conversão deve dividir os dados com base em determinadas regras. Nesse caso, os bytes nas posições 3 e 4 em cada linha definem o layout.Na pasta de CloudShell trabalho, edite o `CLIENT.json` arquivo e altere o conteúdo `"transf-rule": [],` para o seguinte:<pre>"transf-rule": [<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0002",<br />"transf": "transf1"<br />},<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0000",<br />"transf": "transf2"<br />}<br />],</pre> | AWS geral, IBM Mainframe, Cobol | 
| Faça o upload dos metadados em JSON para o bucket do Amazon S3. | Na pasta de CloudShell trabalho, insira o seguinte AWS CLI comando para fazer o upload dos metadados JSON em seu bucket do Amazon S3:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | AWS geral | 

### Converta o arquivo EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie o arquivo em EBCDIC para o bucket do Amazon S3. | Na pasta de CloudShell trabalho, digite o seguinte comando para enviar o arquivo EBCDIC para o bucket do Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Recomendamos que você configure pastas distintas para os arquivos de entrada (EBCDIC) e de saída (ASCII), a fim de evitar que a função do Lambda responsável pela conversão seja acionada novamente quando o arquivo em ASCII for enviado ao bucket do Amazon S3. | AWS geral | 
| Verifique a saída. | Na pasta de CloudShell trabalho, insira o seguinte comando para verificar se o arquivo ASCII foi gerado no seu bucket do Amazon S3:<pre>aws s3 ls s3://$bucket/</pre> A conversão dos dados pode demorar alguns segundos para ser concluída. Recomendamos que você verifique o arquivo ASCII algumas vezes.Depois que o arquivo em ASCII estiver disponível, execute o comando apresentado a seguir para visualizar o conteúdo do arquivo convertido no bucket do Amazon S3. Conforme necessário, você pode fazer o download ou usar o arquivo diretamente do bucket do Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Verifique o conteúdo do arquivo ASCII:<pre>0|0|220|<br />1|1|HERBERT MOHAMED|1958-08-31|BACHELOR|0010000.00|<br />1|2|36|THE ROE AVENUE|<br />2|1|JAYLEN GEORGE|1969-05-29|ELEMENTARY|0020000.00|<br />2|2|365|HEATHFIELD ESPLANADE|<br />3|1|MIKAEEL WEBER|1982-02-17|MASTER|0030000.00|<br />3|2|4555|MORRISON STRAND|<br />4|1|APRIL BARRERA|1967-01-12|DOCTOR|0030000.00|<br />4|2|1311|MARMION PARK|<br />5|1|ALEEZA PLANT|1985-03-01|BACHELOR|0008000.00|</pre> | AWS geral | 

### Limpe o ambiente
<a name="clean-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| (Opcional) Prepare as variáveis e a pasta. | Se você perder a conexão com CloudShell, reconecte-se e digite o seguinte comando para alterar o diretório para a pasta de trabalho:<pre>cd workdir</pre>Certifique-se de que as variáveis de ambiente estejam definidas:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | AWS geral | 
| Remova a configuração de notificação para o bucket. | Na pasta de CloudShell trabalho, execute o seguinte comando para remover a configuração de notificação de eventos do Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | AWS geral | 
| Exclua a função do Lambda. | Na pasta de CloudShell trabalho, digite o seguinte comando para excluir a função Lambda para o conversor EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | AWS geral | 
| Exclua a política e o perfil do IAM. | Na pasta de CloudShell trabalho, digite o seguinte comando para remover a função e a política do conversor EBCDIC:<pre>aws iam delete-role-policy \<br />--role-name E2AConvLambdaRole \<br />--policy-name E2AConvLambdaPolicy<br /><br />aws iam delete-role \<br />--role-name E2AConvLambdaRole</pre> | AWS geral | 
| Exclua os arquivos gerados no bucket do Amazon S3. | Na pasta de CloudShell trabalho, insira o seguinte comando para excluir os arquivos gerados no bucket do Amazon S3:<pre>aws s3 rm s3://$bucket/layout --recursive<br />aws s3 rm s3://$bucket/input --recursive<br />aws s3 rm s3://$bucket/CLIENT.ASCII.txt</pre> | AWS geral | 
| Exclua a pasta de trabalho. | Na pasta de CloudShell trabalho, digite o seguinte comando para remover `workdir` e seu conteúdo:<pre>cd ..; rm -Rf workdir</pre> | AWS geral | 

## Recursos relacionados
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilitários de dados de mainframe README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [O conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentação da IBM)
+ [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) (documentação da IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentação da IBM)
+ [Usando um gatilho do Amazon S3 para invocar uma função Lambda (documentação](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))AWS Lambda 

# Converta arquivos de dados de mainframe com layouts de registro complexos usando o Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

## Resumo
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-summary"></a>

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Este padrão mostra como converter arquivos de dados de mainframe com dados não textuais e layouts de registro complexos da codificação de caracteres EBCDIC (Extended Binary Coded Decimal Interchange Code) para a codificação de caracteres ASCII (American Standard Code for Information Interchange) usando um arquivo de estrutura do Micro Focus. Para concluir a conversão do arquivo, você deve fazer o seguinte:

1. Prepare um único arquivo de origem que descreva todos os itens de dados e layouts de registro em seu ambiente de mainframe.

1. Crie um arquivo de estrutura que contenha o layout de registro dos dados usando o Micro Focus Data File Editor como parte do Micro Focus Classic Data File Tools ou Data File Tools. O arquivo de estrutura identifica os dados não textuais para que você possa converter corretamente seus arquivos de mainframe de EBCDIC para ASCII.

1. Teste o arquivo de estrutura usando o Classic Data File Tools ou Data File Tools.

## Pré-requisitos e limitações
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Micro Focus Enterprise Developer para Windows, disponível por meio da [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versões do produto**
+ Micro Focus Enterprise Server 7.0 e mais recente

## Ferramentas
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ O [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) fornece o ambiente de execução para aplicativos criados com qualquer variante de ambiente de desenvolvimento integrado (IDE) do Enterprise Developer.
+ O [Classic Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) do Micro Focus ajuda você a converter, navegar, editar e criar arquivos de dados. O Classic Data File Tools inclui [Data File Converter](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), [Record Layout Editor](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html) e [Data File Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ O [Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) do Micro Focus ajuda você a criar, editar e mover arquivos de dados. O Data File Tools inclui o [Data File Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html), [File Conversion Utilities](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) e o [Data File Structure Command Line Utility](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

## Épicos
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-epics"></a>

### Preparar o arquivo de origem
<a name="prepare-the-source-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique os componentes de origem. | Identifique todos os layouts de registro possíveis para o arquivo, incluindo quaisquer redefinições que contenham dados não textuais.Se você tiver layouts que contenham redefinições, você deve reduzir esses layouts a layouts exclusivos que descrevam cada permutação possível da estrutura de dados. Normalmente, os layouts de registro de um arquivo de dados podem ser descritos pelos seguintes arquétipos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Para obter mais informações sobre a criação de layouts de registro nivelados para arquivos que contêm layouts de registro complexos, consulte [Redefinir a hospedagem de aplicativos EBCDIC em ambientes ASCII para migrações de mainframe](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html). | Desenvolvedor de aplicativos | 
| Identifique as condições do layout do registro. | Para arquivos com vários layouts de registro ou arquivos que contêm layouts complexos com uma cláusula REDEFINES, identifique os dados e as condições em um registro que você pode usar para definir qual layout usar durante a conversão. Recomendamos que você discuta essa tarefa com um especialista no assunto (SME - subject matter expert) que entenda os programas que processam esses arquivos.Por exemplo, um arquivo pode conter dois tipos de registro que contêm dados não textuais. Você pode inspecionar a fonte e possivelmente encontrar um código semelhante ao seguinte:<pre>MOVE "M" TO PART-TYPE<br /> MOVE "MAIN ASSEMBLY" TO PART-NAME<br />MOVE "S" TO PART-TYPE<br /> MOVE "SUB ASSEMBLY 1" TO PART-NAME</pre>O código ajuda você a identificar o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Você pode documentar os valores usados por esse campo para associar os layouts de registro aos registros de dados corretos no arquivo. | Desenvolvedor de aplicativos | 
| Crie o arquivo de origem. | Se o arquivo estiver descrito em vários arquivos de origem ou se o layout do registro contiver dados não textuais subordinados a uma cláusula REDEFINES, crie um novo arquivo de origem que contenha os layouts do registro. O novo programa não precisa descrever o arquivo usando as instruções SELECT e FD. O programa pode simplesmente conter as descrições dos registros em 01 nível no Working-Storage.Você pode criar um arquivo de origem para cada arquivo de dados ou criar um arquivo de origem mestre que descreva todos os arquivos de dados. | Desenvolvedor de aplicativos | 
| Compilar o arquivo de origem. | Compile o arquivo de origem para criar o dicionário de dados. Recomendamos que você compile o arquivo de origem usando o conjunto de caracteres EBCDIC. Se a diretiva IBMCOMP ou as diretivas ODOSLIDE estiverem sendo usadas, você também deverá usar essas diretivas no arquivo de origem.O IBMCOMP afeta o armazenamento de bytes dos campos COMP e o ODOSLIDE afeta o preenchimento nas estruturas OCCUS VARYING. Se essas diretivas forem definidas incorretamente, a ferramenta de conversão não lerá o registro de dados corretamente. Isso resulta em dados incorretos no arquivo convertido. | Desenvolvedor de aplicativos | 

### (Opção A) Crie o arquivo de estrutura usando o Classic Data File Tools
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a ferramenta e carregue o dicionário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 
| Crie o layout de registro padrão. | Use o layout de registro padrão para todos os registros que não correspondam a nenhum layout condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)O layout padrão aparece no painel **Layouts** e pode ser identificado pelo ícone de pasta vermelha. | Desenvolvedor de aplicativos | 
| Crie um layout de registro condicional. | Use o layout de registro condicional quando houver mais de um layout de registro em um arquivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção B) Crie o arquivo de estrutura usando o Data File Tools
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a ferramenta e carregue o dicionário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 
| Crie o layout de registro padrão. | Use o layout de registro padrão para todos os registros que não correspondam a nenhum layout condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)O layout padrão aparece no painel **Layouts** e pode ser identificado pelo ícone azul “D”. | Desenvolvedor de aplicativos | 
| Crie um layout de registro condicional. | Use o layout de registro condicional quando houver mais de um layout de registro em um arquivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção A) Teste o arquivo de estrutura usando o Classic Data File Tools
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste um arquivo de dados EBCDIC. | Confirme se você pode usar seu arquivo de estrutura para visualizar um arquivo de dados de teste EBCDIC corretamente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção B) Teste o arquivo de estrutura usando o Data File Tools
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste um arquivo de dados EBCDIC. | Confirme se você pode usar seu arquivo de estrutura para visualizar um arquivo de dados de teste EBCDIC corretamente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### Teste a conversão do arquivo de dados
<a name="test-data-file-conversion"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a conversão de um arquivo EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Micro Focus](https://www.microfocus.com/en-us/products/enterprise-suite/overview) (documentação da Micro Focus)
+ [Mainframe e código antigo](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (publicações do Blog da AWS)
+ [Recomendações da AWS](https://docs.aws.amazon.com/prescriptive-guidance/) (documentação da AWS)
+ [Documentação da AWS](https://docs.aws.amazon.com/index.html) (documentação da AWS)
+ [Referência geral da AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentação da AWS)
+ [Glossário da AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentação da AWS)

# Implante um ambiente para aplicativos Blu Age conteinerizados usando o Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Resumo
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

A migração de workloads de mainframe legadas para arquiteturas de nuvem modernas pode eliminar os custos de manutenção de um mainframe — custos que só aumentam à medida que o ambiente envelhece. No entanto, migrar trabalhos de um mainframe pode representar desafios únicos. Os recursos internos podem não estar familiarizados com a lógica do trabalho, e o alto desempenho dos mainframes nessas tarefas especializadas pode ser difícil de replicar quando comparado ao padrão generalizado. CPUs Reescrever esses trabalhos pode ser uma grande tarefa e exigir um esforço significativo.

O Blu Ags converte as workloads antigas de mainframe em código Java moderno, que você pode então executar como um contêiner.

Esse padrão fornece um exemplo de arquitetura de tecnologia sem servidor para executar um aplicativo em contêiner que foi modernizado com a ferramenta Blu Age. Os arquivos HashiCorp Terraform incluídos criarão uma arquitetura segura para a orquestração de contêineres Blu Age, suportando tarefas em lote e serviços em tempo real.

Para obter mais informações sobre a modernização de suas workloads usando o Blu Age e os serviços da AWS, consulte estas publicações de Recomendações da AWS:
+ [Executando workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

[Para obter ajuda com o uso do Blu Age para modernizar suas workloads de mainframe, entre em contato com a equipe da Blu Age escolhendo Entre **em contato com nossos especialistas** no site da Blu Age.](https://www.bluage.com/) Para obter ajuda para migrar suas workloads modernizadas para a AWS, integrá-las aos serviços da AWS e colocá-las em produção, entre em contato com seu gerente de contas da AWS ou preencha o [formulário AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Pré-requisitos e limitações
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Pré-requisitos **
+ O exemplo do aplicativo Blu Age conteinerizado fornecido pelo padrão [Workloads do mainframe Containerize que foram modernizadas pelo Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html). O aplicativo de amostra fornece a lógica para lidar com o processamento de entrada e saída para o aplicativo modernizado e pode se integrar a essa arquitetura.
+ O Terraform é necessário para implantar esses recursos.

**Limitações**
+ O Amazon Elastic Container Service (Amazon ECS) impõe limites aos recursos de tarefa que podem ser disponibilizados para o contêiner. Esses recursos incluem CPU, RAM e armazenamento. Por exemplo, ao usar o Amazon ECS com o AWS Fargate, os [limites de recursos da tarefa se aplicam](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versões do produto**

Essa solução foi testada com as seguintes versões:
+ Terraform 1.3.6
+ Provedor Terraform AWS 4.46.0

## Arquitetura
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Pilha de tecnologia de origem**
+ Blu Age
+ Terraform

**Pilha de tecnologias de destino**
+ Amazon Aurora Edição Compatível com PostgreSQL
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ AWS Key Management Server (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura da solução.

![\[A descrição segue o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. A solução implanta os seguintes perfis do IAM:
   + Perfil da tarefa de lote
   + Perfil de execução de tarefas em lote
   + Perfil da tarefa de serviço
   + Perfil de execução da tarefa do serviço
   + Perfil dos Perfis da etapa
   + Perfil do AWS Backup
   + Perfil de monitoramento avançado do RDS.

   Os perfis estão em conformidade com os princípios de acesso com privilégio mínimo.

1. O Amazon ECR é usado para armazenar a imagem do contêiner que é orquestrada por esse padrão.

1. O AWS Systems Manager Parameter Store fornece dados de configuração sobre cada ambiente para a definição de tarefa do Amazon ECS em runtime.

1. O AWS Secrets Manager fornece dados de configuração confidenciais sobre o ambiente para a definição de tarefas do Amazon ECS em runtime. Os dados foram criptografados pelo AWS KMS.

1. Os módulos do Terraform criam definições de tarefas do Amazon ECS para todas as tarefas em tempo real e em lote.

1. O Amazon ECS executa uma tarefa em lote usando o AWS Fargate como mecanismo de computação. Essa é uma tarefa de curta duração, iniciada conforme exigido pelo AWS Step Functions.

1. Compatível com o Amazon Aurora PostgreSQL fornece um banco de dados para dar suporte ao aplicativo modernizado. Isso substitui bancos de dados de mainframe, como IBM Db2 ou IBM IMS DB.

1. O Amazon ECS executa um serviço de longa duração para fornecer uma workload modernizada em tempo real. Esses aplicativos sem estado são executados permanentemente com contêineres espalhados pelas zonas de disponibilidade.

1. Um Network Load Balancer é usado para conceder acesso à workload em tempo real. O Network Load Balancer é compatível com protocolos anteriores, como o IBM CICS. Como alternativa, você pode usar um Application Load Balancer para workloads baseadas em HTTP.

1. O Amazon S3 fornece armazenamento de objetos para entradas e saídas de trabalhos. O contêiner deve lidar com as operações de pull e push no Amazon S3 para preparar o diretório de trabalho para o aplicativo Blu Age.

1. O serviço AWS Step Functions é usado para orquestrar a execução das tarefas do Amazon ECS para processar workloads em lote.

1. Os tópicos do SNS para cada workload em lote são usados para integrar o aplicativo modernizado a outros sistemas, como e-mail, ou para iniciar ações adicionais, como entregar objetos de saída do Amazon S3 para o FTP.

**nota**  
Por padrão, a solução não tem acesso à internet. Esse padrão supõe que a nuvem privada virtual (VPC) será conectada a outras redes usando um serviço como o [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/). Dessa forma, vários endpoints da VPC de interface são implantados para conceder acesso aos serviços da AWS usados pela solução. Para ativar o acesso direto à Internet, você pode usar o botão no módulo Terraform para substituir os endpoints da VPC por um gateway da Internet e os recursos associados.

**Automação e escala**

O uso de recursos de tecnologia sem servidor em todo esse padrão ajuda a garantir que, ao escalar, haja poucos limites na escala desse design. Isso reduz as *preocupações ruidosas dos vizinhos*, como a competição por recursos computacionais que podem existir no mainframe original. As tarefas em lote podem ser programadas para serem executadas simultaneamente, conforme necessário.

Os contêineres individuais são limitados pelos tamanhos máximos suportados pelo Fargate. Para obter mais informações, consulte a seção [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size) na documentação do Amazon ECS.

Para [escalar cargas de trabalho em tempo real horizontalmente](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), você pode adicionar contêineres.

## Ferramentas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-tools"></a>

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com ACID que ajuda você a configurar, operar e escalar implantações do PostgreSQL.
+ O [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) é um serviço totalmente gerenciado que ajuda você a centralizar e automatizar a proteção de dados na nuvem e no local. Serviços da AWS
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ O [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
+ [O 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 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 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente.
+ 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.
+ [O 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.
+ O [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) oferece armazenamento hierárquico seguro para o gerenciamento de dados de configuração e gerenciamento de segredos.

**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. Esse padrão usa o Terraform para criar a arquitetura de amostra.

**Repositório de código**

O código-fonte desse padrão está disponível no repositório GitHub [Blu Age Sample ECS Infrastructure (Terraform)](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform).

## Práticas recomendadas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Para ambientes de teste, use atributos como a opção `forceDate` de configurar o aplicativo modernizado para gerar resultados de teste consistentes, sempre executando por um período de tempo conhecido.
+ Ajuste cada tarefa individualmente para consumir a quantidade ideal de recursos. Você pode usar o [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para obter orientação sobre possíveis gargalos.

## Épicos
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Prepare o ambiente para implantação
<a name="prepare-the-environment-for-deployment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o código-fonte da solução. | Clone o código da solução do [GitHub projeto](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps engenheiro | 
| Inicialize o ambiente implantando recursos para armazenar o estado do Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise e atualize a configuração do Terraform. | No diretório raiz, abra o arquivo `main.tf,`, revise o conteúdo e considere fazer as seguintes atualizações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 
| Implantar o arquivo Terraform. | No seu terminal, executar o `terraform apply` comando para implantar todos os recursos. Revise as alterações geradas pelo Terraform e digite **sim** para iniciar a construção.Observe que a implantação dessa infraestrutura pode levar mais de 15 minutos. | DevOps engenheiro | 

### (Opcional) Implante uma aplicação conteinerizada Blu Age válida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a imagem do contêiner do Blu Age para o Amazon ECR. | Envie o contêiner para o repositório do Amazon ECR que você criou no épico anterior. Para obter instruções, consulte a [Documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Anote o URI da imagem do contêiner. | DevOps engenheiro | 
| Atualize o Terraform para referenciar a imagem do contêiner Blu Age. | Atualize o arquivo `main.tf`**** para referenciar a imagem do contêiner que você carregou. | DevOps engenheiro | 
| Reimplante o arquivo Terraform. | No seu terminal, executar `terraform apply` para implantar todos os recursos. Analise as atualizações sugeridas pelo Terraform e, em seguida, insira **sim** para continuar com a implantação. | DevOps engenheiro | 

## Recursos relacionados
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Blu Age](https://www.bluage.com/)
+ [Como executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Gere insights de z/OS dados do Db2 usando o AWS Mainframe Modernization Amazon Q no Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack e Santosh Kumar Singh, Amazon Web Services*

## Resumo
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se sua organização está hospedando dados essenciais para os negócios em um ambiente de mainframe IBM Db2, obter insights desses dados é crucial para impulsionar o crescimento e a inovação. Ao desbloquear dados do mainframe, você pode criar inteligência de negócios de maneira mais rápida, segura e escalável para acelerar a tomada de decisões, o crescimento e a inovação orientados por dados na nuvem da Amazon Web Services (AWS).

Esse padrão apresenta uma solução para gerar insights de negócios e criar narrativas compartilháveis a partir de dados de mainframe no IBM Db2 for tables. z/OS As alterações nos dados do mainframe são transmitidas para o tópico do [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) usando a [replicação de dados do AWS Mainframe Modernization com o Precisely](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html). Usando a [ingestão de streaming do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), os dados de tópicos do Amazon MSK são armazenados em data warehouses do [Amazon Redshift sem servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) para analytics no Amazon QuickSight.

Depois que os dados estiverem disponíveis no QuickSight, você poderá usar prompts em linguagem natural com o [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para criar resumos dos dados, fazer perguntas e gerar narrativas analíticas. Você não precisa escrever consultas SQL ou aprender uma ferramenta de business intelligence (BI).

**Contexto de negócios**

Este padrão apresenta uma solução para casos de uso de data analytics de mainframe e insights de dados. Usando o padrão, você cria um painel de elementos visuais para os dados da sua empresa. Para demonstrar a solução, este padrão usa uma empresa da área da saúde que fornece planos médicos, odontológicos e oftalmológicos para seus membros nos EUA. Neste exemplo, as informações demográficas e do plano dos membros são armazenadas no IBM Db2 para tabelas de z/OS dados. O painel visual mostra o seguinte:
+ Distribuição de membros por região
+ Distribuição de membros por gênero
+ Distribuição de membros por idade
+ Distribuição de membros por tipo de plano
+ Membros que não concluíram a imunização preventiva

Para exemplos de distribuição de membros por região e membros que não concluíram a imunização preventiva, consulte a seção Informações adicionais.

Depois de criar o painel, você gera uma narrativa analítica que explica os insights da análise anterior. A narrativa analítica fornece recomendações para aumentar o número de membros que concluíram as imunizações preventivas.

## Pré-requisitos e limitações
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS. Essa solução foi criada e testada no Amazon Linux 2 no Amazon Elastic Compute Cloud (Amazon EC2).
+ Uma nuvem privada virtual (VPC) com uma sub-rede que pode ser acessada pelo sistema de mainframe.
+ Um banco de dados de mainframe com dados de negócios. Para ver os dados de exemplo usados para criar e testar essa solução, consulte a seção *Anexos*.
+ Captura de dados de alteração (CDC) ativada nas tabelas do Db2 z/OS . Para habilitar o CDC no Db2 z/OS, consulte a [documentação da IBM](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes).
+ Conecte o CDC com precisão para z/OS instalação no z/OS sistema que hospeda os bancos de dados de origem. O CDC Preciously Connect para z/OS imagem é fornecido como um arquivo zip no [AWS Mainframe Modernization - Data Replication for IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Amazon Machine Image (AMI). Para instalar o Preciously Connect CDC z/OS no mainframe, consulte a documentação de [instalação do Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS) Connect.

**Limitações**
+ Os dados do seu mainframe Db2 devem estar em um tipo de dados compatível com o Precisely Connect CDC. Para obter uma lista dos tipos de dados compatíveis, consulte a [documentação do Precisely Connect CDC](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types).
+ Seus dados no Amazon MSK devem estar em um tipo de dados compatível com o Amazon Redshift. Para obter uma lista dos tipos de dados compatíveis, consulte a [documentação do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ O Amazon Redshift tem comportamentos e limites de tamanho diferentes para diferentes tipos de dados. Para obter mais informações, consulte a [documentação do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Os dados quase em tempo real no QuickSight dependem do intervalo de atualização definido para o banco de dados do Amazon Redshift.
+ 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/). No momento, o Amazon Q no QuickSight não está disponível em todas as regiões que oferecem suporte ao QuickSight. 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.

**Versões do produto**
+ AWS Mainframe Modernization Replicação de dados com a versão 4.1.44 do Precision
+ Python versão 3.6 ou posterior
+ Apache Kafka versão 3.5.1****

## Arquitetura
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para gerar insights de negócios com base em dados de mainframe usando o [AWS Mainframe Modernization replicação de dados com o Precisely](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) e o Amazon Q no QuickSight.

![\[Processo de sete etapas do z/OS mainframe à Amazon. QuickSight\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O Precisely Log Reader Agent lê dados dos registros do Db2 e grava os dados em um armazenamento temporário em um sistema de arquivos OMVS no mainframe.

1. O Publisher Agent lê os logs brutos do Db2 do armazenamento temporário.

1. O daemon do controlador on-premises autentica, autoriza, monitora e gerencia as operações.

1. O Apply Agent é implantado na Amazon EC2 usando a AMI pré-configurada. Ele se conecta ao Publisher Agent por meio do daemon do controlador usando TCP/IP. O Apply Agent envia dados para o Amazon MSK usando vários trabalhadores para obter alto throughput.

1. Os trabalhadores gravam os dados no tópico do Amazon MSK no formato JSON. Como destino intermediário para as mensagens replicadas, o Amazon MSK fornece recursos de failover automatizados e altamente disponíveis.

1. O recurso de ingestão de streaming do Amazon Redshift fornece ingestão de dados com baixa latência e alta velocidade do Amazon MSK para um banco de dados do Amazon Redshift sem servidor. Um procedimento armazenado no Amazon Redshift realiza a reconciliação dos dados de alteração do mainframe (insert/update/deletes) nas tabelas do Amazon Redshift. Essas tabelas do Amazon Redshift servem como fonte de data analytics para o QuickSight.

1. Os usuários acessam os dados no QuickSight para obter analytics e insights. Você pode usar o Amazon Q no QuickSight para interagir com os dados usando prompts em linguagem natural.

## Ferramentas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-tools"></a>

**Serviços da AWS**
+ [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 ou na horizontal.
+ [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 [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) é um serviço totalmente gerenciado que ajuda você a criar e executar aplicações que usam o Apache Kafka para processar dados em streaming.
+ O [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de business intelligence (BI) em escala de nuvem que ajuda você a visualizar, analisar e relatar dados em um único painel. Este padrão usa os recursos generativos de BI do Amazon Q no QuickSight.
+ O [Amazon Redshift sem servidor](https://aws.amazon.com/redshift/redshift-serverless/) é uma opção com tecnologia sem servidor do Amazon Redshift que torna mais eficiente executar e escalar analytics em segundos, sem a necessidade de configurar e gerenciar a infraestrutura de data warehouse.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.

**Outras ferramentas**
+ O [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) coleta e integra dados de sistemas legados em plataformas de dados e na nuvem.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition). O código é um procedimento armazenado no Amazon Redshift. Esse procedimento armazenado reconcilia as alterações de dados do mainframe (inserções, atualizações e exclusões) do Amazon MSK com as tabelas do Amazon Redshift. Essas tabelas do Amazon Redshift servem como fonte de data analytics para o QuickSight.

## Práticas recomendadas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Siga as [práticas recomendadas](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) ao configurar seu cluster do Amazon MSK.
+ Siga as [práticas recomendadas de análise de dados](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) do Amazon Redshift para melhorar a performance.
+ Ao criar as funções AWS Identity and Access Management (IAM) para a configuração do Preciously, siga o princípio do privilégio mínimo e conceda as permissões mínimas necessárias para realizar uma tarefa. Para obter mais informações, consulte [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [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="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### Configure a replicação AWS Mainframe Modernization de dados com o Precisely on Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure um grupo de segurança. | Para se conectar ao daemon do controlador e ao cluster Amazon MSK, [crie um grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) para a instância. EC2 Adicione as seguintes regras de entrada e saída:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Anote o nome do grupo de segurança. Você precisará referenciar o nome ao iniciar a EC2 instância e configurar o cluster Amazon MSK. | DevOps engenheiro, AWS DevOps | 
| Crie uma política do IAM e um perfil do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps engenheiro, administrador de sistemas da AWS | 
| Provisione uma EC2 instância. | Para provisionar uma EC2 instância para executar o Preciously CDC e conectar-se ao Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador e DevOps engenheiro da AWS | 

### Configurar o Amazon MSK
<a name="set-up-msk"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o cluster do Amazon MSK. | Para criar um cluster do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Um cluster provisionado típico pode demorar até 15 minutos para ser criado. Depois que o cluster for criado, seu status mudará de **Criando** para **Ativo**. | AWS DevOps, administrador de nuvem | 
| Configure a SASL/SCRAM autenticação. | Para configurar a SASL/SCRAM autenticação para um cluster Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem | 
| Crie o tópico do Amazon MSK. | Para criar o tópico do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de nuvem | 

### Configure o mecanismo de aplicação precisa na Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os scripts do Precisely para replicar as alterações nos dados. | Para configurar os scripts do Precisely Connect CDC para replicar dados alterados do mainframe para o tópico do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Para obter exemplos de arquivos .ddl, consulte a seção [Informações adicionais](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional). | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Gere a chave de ACL da rede. | Para gerar a chave da lista de controle de acesso à rede (ACL da rede), faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem, AWS DevOps | 

### Preparar o ambiente de origem do mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os padrões na tela do ISPF. | Para definir as configurações padrão no Interactive System Productivity Facility (ISPF), siga as instruções na [documentação do Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface). | Administrador de sistema de mainframe | 
| Configure o daemon do controlador. | Para configurar o daemon do controlador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Configure o publicador. | Para configurar o publicador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Atualize o arquivo de configuração do daemon. | Para atualizar os detalhes do publicador no arquivo de configuração do daemon do controlador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Crie o trabalho para iniciar o daemon do controlador. | Para criar o trabalho, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Gere o arquivo JCL do publicador de captura. | Para gerar o arquivo JCL do publicador de captura, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Verifique e atualize o CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Envie os arquivos JCL. | Envie os seguintes arquivos JCL que você configurou nas etapas anteriores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Depois de enviar os arquivos JCL, você pode iniciar o Apply Engine em Precisly na EC2 instância. | Administrador de sistema de mainframe | 

### Executar e validar o CDC
<a name="run-and-validate-cdc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie o Apply Engine e valide o CDC. | Para iniciar o Apply Engine na EC2 instância e validar o CDC, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Valide os registros no tópico do Amazon MSK. | Para ler a mensagem do tópico do Kafka, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 

### Armazene dados de alteração do mainframe em um data warehouse do Amazon Redshift sem servidor
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Redshift sem servidor. | Para criar um data warehouse do Amazon Redshift sem servidor, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html).No painel do Amazon Redshift sem servidor, verifique se o namespace e o grupo de trabalho foram criados e estão disponíveis. Para esse exemplo de padrão, o processo pode levar de dois a cinco minutos. | Engenheiro de dados | 
| Configure o perfil do IAM e a política de confiança necessárias para a ingestão de streaming. | Para configurar a ingestão de streaming Amazon Redshift sem servidor pelo Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de dados | 
| Conecte o Amazon Redshift sem servidor ao Amazon MSK. | Para conectar ao tópico do Amazon MSK, crie um esquema externo no Amazon Redshift sem servidor. No Editor de Consultas V2 do Amazon Redshift, execute o seguinte comando SQL, substituindo `'iam_role_arn'` pelo perfil que você criou anteriormente e substituindo `'MSK_cluster_arn`' pelo ARN do seu cluster.<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Engenheiro de migração | 
| Crie uma visão materializada. | Para consumir os dados do tópico do Amazon MSK no Amazon Redshift sem servidor, crie uma visão materializada. No Editor de Consultas V2 do Amazon Redshift, execute os comandos SQL a seguir, substituindo `<MSK_Topic_name>` pelo nome do tópico do Amazon MSK.<pre>CREATE MATERIALIZED VIEW member_view<br />AUTO REFRESH YES<br />AS SELECT<br />kafka_partition, <br />kafka_offset, <br />refresh_time, <br />json_parse(kafka_value) AS Data<br />FROM member_schema.<MSK_Topic_name><br />WHERE CAN_JSON_PARSE(kafka_value); <br /></pre> | Engenheiro de migração | 
| Crie tabelas de destino no Amazon Redshift. | As tabelas do Amazon Redshift fornecem a entrada para o QuickSight. Este padrão usa as tabelas `member_dtls` e `member_plans`, que correspondem às tabelas Db2 de origem no mainframe.Para criar as duas tabelas no Amazon Redshift, execute os seguintes comandos SQL no Editor de Consultas V2 do Amazon Redshift:<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Engenheiro de migração | 
| Crie um procedimento armazenado no Amazon Redshift. | Este padrão usa um procedimento armazenado para sincronizar dados de alteração (`INSERT`, `UPDATE`, `DELETE`) do mainframe de origem com a tabela do data warehouse de destino do Amazon Redshift para analytics no QuickSight.Para criar o procedimento armazenado no Amazon Redshift, use o editor de consultas v2 para executar o código do procedimento armazenado que está no repositório. GitHub  | Engenheiro de migração | 
| Leia por meio da visão materializada de streaming e carregue nas tabelas de destino. | O procedimento armazenado lê as alterações de dados da visão materializada de streaming e carrega as alterações de dados nas tabelas de destino. Para executar o procedimento armazenado, use o seguinte comando:<pre>call SP_Members_Load();</pre>Você pode usar EventBridge a [Amazon](https://aws.amazon.com/eventbridge/) para programar os trabalhos em seu armazém de dados do Amazon Redshift para chamar esse procedimento armazenado com base em seus requisitos de latência de dados. EventBridge executa trabalhos em intervalos fixos. Para monitorar se a chamada anterior para o procedimento foi concluída, talvez seja necessário usar um mecanismo como uma máquina de estado do [AWS Step Functions](https://aws.amazon.com/step-functions/). Para obter mais informações, consulte os seguintes recursos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Outra opção é usar o Editor de Consultas V2 do Amazon Redshift para programar a atualização. Para obter mais informações, consulte [Consultas programadas com o Editor de Consultas v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Engenheiro de migração | 

### Conectar o QuickSight aos dados no Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o QuickSight. | Para configurar o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Engenheiro de migração | 
| Configure uma conexão segura entre o QuickSight e o Amazon Redshift. | Para configurar uma conexão segura entre o QuickSight e o Amazon Redshift, faça o seguinte[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Crie um conjunto de dados para o QuickSight. | Para criar um conjunto de dados para o QuickSight do Amazon Redshift, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Junte os conjuntos de dados. | Para criar analytics no QuickSight, junte as duas tabelas seguindo as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).No painel **Configuração de junção**, escolha **Esquerda** para **Tipo de junção**. Em **Juntar cláusulas**, use `memberid from member_plans = memberid from members_details`. | Engenheiro de migração | 

### Obter insights de negócios com base nos dados do mainframe usando o Amazon Q no QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Q no QuickSight. | Para configurar o recurso de BI generativo do Amazon Q no QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Engenheiro de migração | 
| Analise os dados do mainframe e crie um painel visual. | Para analisar e visualizar seus dados no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Quando terminar, você poderá publicar seu painel para compartilhar com outras pessoas em sua organização. Para ver exemplos, consulte *Painel visual do mainframe* na seção [Informações adicionais](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Engenheiro de migração | 

### Criar uma narrativa analítica com o Amazon Q no QuickSight com base em dados de mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma narrativa analítica. | Crie uma narrativa analítica para explicar os insights da análise anterior e gere uma recomendação para aumentar a imunização preventiva dos membros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Veja a narrativa analítica gerada. | Para ver a narrativa analítica gerada, escolha essa narrativa na página **Narrativas analíticas**. | Engenheiro de migração | 
| Edite uma narrativa analítica gerada. | Para alterar a formatação, o layout ou os elementos visuais em uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Engenheiro de migração | 
| Compartilhe uma narrativa analítica. | Para compartilhar uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Engenheiro de migração | 

## Solução de problemas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Para a criação do conjunto de dados do QuickSight para o Amazon Redshift, `Validate Connection` falhou. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| A tentativa de iniciar o mecanismo de aplicação na EC2 instância retorna o seguinte erro:`-bash: sqdeng: command not found` | Exporte o caminho de instalação `sqdata` executando o seguinte comando:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| A tentativa de iniciar o Apply Engine retorna um dos seguintes erros de conexão:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Verifique o spool do mainframe para garantir que os trabalhos do daemon do controlador estejam em execução. | 

## Recursos relacionados
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Gere insights usando o AWS Mainframe Modernization Amazon Q no Quick Sight](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html?did=pg_card&trk=pg_card) (padrão)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demonstração)
+ [AWS Mainframe Modernization - Replicação de dados para IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Ingestão de streaming do Amazon Redshift para uma visão materializada](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Mais informações
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Exemplos de arquivos .ddl**

*members\$1details.ddl*

```
CREATE TABLE MEMBER_DTLS (
memberid INTEGER NOT NULL,
member_name VARCHAR(50),
member_type VARCHAR(20),
age INTEGER,
gender CHAR(1),
email VARCHAR(100),
region VARCHAR(20)
);
```

*member\$1plans.ddl*

```
CREATE TABLE MEMBER_PLANS (
memberid INTEGER NOT NULL,
medical_plan CHAR(1),
dental_plan CHAR(1),
vision_plan CHAR(1),
preventive_immunization VARCHAR(20)
);
```

**Exemplo de arquivo .sqd**

Substitua** **`<kafka topic name>` pelo nome do tópico do Amazon MSK.

*script.sqd*

```
-- Name: DB2ZTOMSK: DB2z To MSK JOBNAME DB2ZTOMSK;REPORT EVERY 1;OPTIONS CDCOP('I','U','D');-- Source Descriptions
JOBNAME DB2ZTOMSK;
REPORT EVERY 1;
OPTIONS CDCOP('I','U','D');

-- Source Descriptions 
BEGIN GROUP DB2_SOURCE; 
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_details.ddl AS MEMBER_DTLS;
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_plans.ddl AS MEMBER_PLANS; 
END GROUP;
-- Source Datastore 
DATASTORE cdc://<zos_host_name>/DB2ZTOMSK/DB2ZTOMSK
OF UTSCDC 
AS CDCIN 
DESCRIBED BY GROUP DB2_SOURCE ;
-- Target Datastore(s)
DATASTORE 'kafka:///<kafka topic name>/key'
OF JSON
AS TARGET
DESCRIBED BY GROUP DB2_SOURCE;
PROCESS INTO TARGET
SELECT
{
REPLICATE(TARGET)
}
FROM CDCIN;
```

**Painel visual do mainframe**

O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta de análise `show member distribution by region`*.*

![\[O nordeste e o sudoeste têm oito membros, o sudoeste tem cinco membros, o centro-oeste tem quatro membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta `show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Sudeste mostra seis, sudoeste mostra cinco e centro-oeste mostra quatro.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Saída de narrativas analíticas**

As capturas de tela a seguir mostram seções da narrativa analítica criada pelo Amazon Q no QuickSight para o prompt `Build a data story about Region with most numbers of members. Also show the member distribution by age, member distribution by gender. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern`.

Na introdução, a narrativa analítica recomenda escolher a região com mais membros para obter o maior impacto dos esforços de imunização.

![\[Tela de introdução para análise com base na geografia, demografia e idade da base de membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


A narrativa analítica fornece uma análise do número de membros das quatro regiões. As regiões nordeste, sudoeste e sudeste têm o maior número de membros.

![\[As regiões nordeste e sudoeste têm oito membros, o sudeste tem seis membros e o centro-oeste tem quatro membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


A narrativa analítica apresenta uma análise dos membros por idade.

![\[Gráfico mostrando que a base de membros se inclina para adultos mais jovens e de meia idade.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


A narrativa analítica se concentra nos esforços de imunização no centro-oeste.

![\[Recomendação para campanha de divulgação pessoal e desafios regionais.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Continuação da análise da narrativa analítica, com resultados e conclusão previstos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Anexos
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack e Santosh Kumar Singh, Amazon Web Services*

## Resumo
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-summary"></a>

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se sua organização está hospedando dados essenciais para os negócios em um ambiente de mainframe, obter insights desses dados é crucial para impulsionar o crescimento e a inovação. Ao desbloquear dados do mainframe, você pode criar inteligência de negócios de maneira mais rápida, segura e escalável para acelerar a tomada de decisões, o crescimento e a inovação orientados por dados na nuvem da Amazon Web Services (AWS).

Este padrão apresenta uma solução para gerar insights de negócios e criar narrativas compartilháveis com base em dados de mainframe usando a [transferência de arquivos do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) com o BMC e o [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) no QuickSight. Os conjuntos de dados de mainframe são transferidos para o [Amazon Simple Storage Service (Amazon S3) usando AWS Mainframe Modernization a](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) transferência de arquivos com a BMC. Uma AWS Lambda função formata e prepara o arquivo de dados do mainframe para carregamento no Quick Sight.

Depois que os dados estiverem disponíveis no QuickSight, você poderá usar prompts em linguagem natural com o [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para criar resumos dos dados, fazer perguntas e gerar narrativas analíticas. Você não precisa escrever consultas SQL ou aprender uma ferramenta de business intelligence (BI).

**Contexto de negócios**

Este padrão apresenta uma solução para casos de uso de data analytics de mainframe e insights de dados. Usando o padrão, você cria um painel de elementos visuais para os dados da sua empresa. Para demonstrar a solução, este padrão usa uma empresa da área da saúde que fornece planos médicos, odontológicos e oftalmológicos para seus membros nos EUA. Neste exemplo, as informações demográficas e do plano dos membros são armazenadas nos conjuntos de dados do mainframe. O painel visual mostra o seguinte:
+ Distribuição de membros por região
+ Distribuição de membros por gênero
+ Distribuição de membros por idade
+ Distribuição de membros por tipo de plano
+ Membros que não concluíram a imunização preventiva

Depois de criar o painel, você gera uma narrativa analítica que explica os insights da análise anterior. A narrativa analítica fornece recomendações para aumentar o número de membros que concluíram as imunizações preventivas.

## Pré-requisitos e limitações
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Conjuntos de dados de mainframe com dados de negócios
+ Acesso para instalar um agente de transferência de arquivos no mainframe

**Limitações**
+ Seu arquivo de dados de mainframe deve estar em um dos formatos de arquivo compatíveis com o QuickSight. Para obter uma lista dos formatos de arquivo compatíveis, consulte [Supported data sources](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Este padrão usa uma função do Lambda para converter o arquivo de mainframe em um formato compatível com o QuickSight.

## Arquitetura
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-architecture"></a>

O diagrama a seguir mostra uma arquitetura para gerar insights de negócios a partir de dados de mainframe usando a transferência de AWS Mainframe Modernization arquivos com o BMC e o Amazon Q no Quick Sight.

![\[A descrição do diagrama de arquitetura segue o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um conjunto de dados de mainframe contendo dados comerciais é transferido para o Amazon S3 AWS Mainframe Modernization usando a transferência de arquivos com a BMC.

1. A função do Lambda converte o arquivo que está no bucket do S3 de destino file-transfer para o formato de valores separados por vírgula (CSV).

1. A função do Lambda envia o arquivo convertido para o bucket do S3 do conjunto de dados de origem.

1. Os dados no arquivo são ingeridos pelo QuickSight.

1. Os usuários acessam os dados no QuickSight. Você pode usar o Amazon Q no QuickSight para interagir com os dados usando prompts em linguagem natural.

## Ferramentas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-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 Mainframe Modernization a [transferência de arquivos com a BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) converte e transfere conjuntos de dados de mainframe para o Amazon S3 para casos de uso de modernização, migração e aumento de mainframe.
+ O [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de BI em escala de nuvem que ajuda você a visualizar, analisar e relatar dados em um único painel. Este padrão usa os recursos generativos de BI do [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ 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.

## Práticas recomendadas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ Ao criar as funções AWS Identity and Access Management (IAM) para transferência de AWS Mainframe Modernization arquivos com o BMC e a função Lambda, siga o princípio [do](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) privilégio mínimo.
+ Certifique-se de que seu conjunto de dados de origem tenha [tipos de dados compatíveis](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) com o QuickSight. Se o conjunto de dados de origem contiver tipos de dados não compatíveis, converta-os em tipos de dados compatíveis. Para obter informações sobre tipos de dados de mainframe não compatíveis e como convertê-los em tipos de dados compatíveis com o Amazon Q no QuickSight, consulte a seção [Recursos relacionados](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

## Épicos
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-epics"></a>

### Configure a transferência AWS Mainframe Modernization de arquivos com o BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o agente de transferência de arquivos. | Para instalar o agente de transferência de AWS Mainframe Modernization arquivos, siga as instruções na [AWS documentação](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Administrador de sistema de mainframe | 
| Crie um bucket do S3 para a transferência de arquivos do mainframe. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para armazenar o arquivo de saída da transferência de AWS Mainframe Modernization arquivos com o BMC. No diagrama da arquitetura, esse é o bucket de destino file-transfer. | Engenheiro de migração | 
| Crie um endpoint de transferência de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Especialista no AWS Mainframe Modernization | 

### Converter a extensão do nome do arquivo de mainframe para integração com o QuickSight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | [Crie um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para a função do Lambda para copiar o arquivo de mainframe convertido do bucket de origem para o bucket de destino final. | Engenheiro de migração | 
| Crie uma função do Lambda. | Para criar uma função do Lambda que altere a extensão do arquivo e copie o arquivo do mainframe para o bucket de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Crie um gatilho do Amazon S3 para invocar uma função do Lambda. | Para configurar um gatilho que invoque a função do Lambda, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Para obter mais informações, consulte [Tutorial: Como usar um trigger do Amazon S3 para chamar uma função Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Líder de migração | 
| Adicione permissões do IAM para a função do Lambda. | As permissões do IAM são necessárias para que a função do Lambda acesse os buckets do S3 de destino file-transfer e do conjunto de dados de origem. Atualize a política associada ao perfil de execução da função do Lambda concedendo as permissões `s3:GetObject` e `s3:DeleteObject`** **autorizando** **o bucket do S3 de destino file-transfer e acesso `s3:PutObject` para o bucket do S3 do conjunto de dados de origem.Para obter mais informações, consulte a seção [Criação de uma política de permissões](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy)** **no *Tutorial: como usar um acionador do Amazon S3 para invocar uma função do Lambda*. | Líder de migração | 

### Definir uma tarefa de transferência de dados de mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tarefa de transferência para copiar o arquivo do mainframe para o bucket do S3. | Para criar uma tarefa de transferência de arquivos de mainframe, siga as instruções na [documentação do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html).**Especifique a codificação da **página de código-fonte** como **IBM1047** e a codificação da **página de código de destino** como UTF-8.** | Engenheiro de migração | 
| Verifique a tarefa de transferência. | Para verificar se a transferência de dados foi bem-sucedida, siga as instruções na [documentação do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Confirme se o arquivo do mainframe está no bucket do S3 de destino file-transfer. | Líder de migração | 
| Verifique a função de cópia do Lambda. | Verifique se a função do Lambda foi iniciada e se o arquivo foi copiado com uma extensão.csv para o bucket do S3 do conjunto de dados de origem.O arquivo.csv criado pela função do Lambda é o arquivo de dados de entrada para o QuickSight. Por dados de exemplo, consulte o arquivo `Sample-data-member-healthcare-APG` na seção [Anexos](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68). | Líder de migração | 

### Conectar o QuickSight aos dados do mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o QuickSight. | Para configurar o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Líder de migração | 
| Crie um conjunto de dados para o QuickSight. | Para criar um conjunto de dados para o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html). O arquivo de dados de entrada é o arquivo de mainframe convertido que foi criado quando você definiu a tarefa de transferência de dados de mainframe. | Líder de migração | 

### Obter insights de negócios com base nos dados do mainframe usando o Amazon Q no QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Q no QuickSight. | Esse recurso requer a Enterprise Edition. Para configurar o Amazon Q no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Líder de migração | 
| Analise os dados do mainframe e crie um painel visual. | Para analisar e visualizar seus dados no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Quando terminar, você poderá publicar seu painel para compartilhar com outras pessoas em sua organização. Para ver exemplos, consulte *Painel visual do mainframe* na seção [Informações adicionais](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Engenheiro de migração | 

### Criar uma narrativa analítica com o Amazon Q no QuickSight com base nos dados do mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma narrativa analítica. | Crie uma narrativa analítica para explicar os insights da análise anterior e gere uma recomendação para aumentar a imunização preventiva dos membros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Veja a narrativa analítica gerada. | Para ver a narrativa analítica gerada, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Líder de migração | 
| Edite uma narrativa analítica gerada. | Para alterar a formatação, o layout ou os elementos visuais em uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Líder de migração | 
| Compartilhe uma narrativa analítica. | Para compartilhar uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Engenheiro de migração | 

## Solução de problemas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Não foi possível descobrir os arquivos de mainframe ou os conjuntos de dados inseridos nos **critérios de pesquisa de conjuntos de dados** para **Criar tarefa de transferência** na transferência de AWS Mainframe Modernization arquivos com BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

## Recursos relacionados
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources"></a>

Para converter tipos de dados de mainframe, como [PACKED-DECIMAL (COMP-3)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) ou [BINARY (COMP ou COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4), em um [tipo de dados](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) compatível com o QuickSight, consulte os seguintes padrões:
+ [Converta e descompacte dados EBCDIC em ASCII usando Python AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando AWS Lambda](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.html)

## Mais informações
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 .py CopyLambda**

O código Python a seguir foi gerado usando um prompt com o Amazon Q em um IDE:

```
#Create a lambda function triggered by S3. display the S3 bucket name and key
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
print(event)
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(bucket, key)
#If key starts with object_created, skip copy, print "copy skipped". Return lambda with key value.
if key.startswith('object_created'):
print("copy skipped")
return {
'statusCode': 200,
'body': key
}
# Copy the file from the source bucket to the destination bucket. Destination_bucket_name = 'm2-filetransfer-final-opt-bkt'. Destination_file_key = 'healthdata.csv'
copy_source = {'Bucket': bucket, 'Key': key}
s3.copy_object(Bucket='m2-filetransfer-final-opt-bkt', Key='healthdata.csv', CopySource=copy_source)
print("file copied")
#Delete the file from the source bucket.
s3.delete_object(Bucket=bucket, Key=key)
return {
'statusCode': 200,
'body': 'Copy Successful'
}
```

**Painel visual do mainframe**

O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta de análise `show member distribution by region`*.*

![\[Gráfico mostrando o número de membros para sudoeste, centro-oeste, nordeste e sudeste.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta `show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Pie chart showing preventive immunization incompletion by region: Southeast 40%, Southwest 33%, Midwest 27%.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Saída de narrativas analíticas**

As capturas de tela a seguir mostram seções da narrativa analítica criada pelo Amazon Q no QuickSight para o prompt `Build a data story about Region with most numbers of members. Also show the member distribution by medical plan, vision plan, dental plan. Recommend how to motivate members to complete immunization. Include 4 points of supporting data.`

Na introdução, a narrativa analítica recomenda escolher a região com mais membros para obter o maior impacto dos esforços de imunização.

![\[Página de introdução para narrativa analítica com foco nas taxas de conclusão da imunização.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


A narrativa analítica fornece uma análise do número de membros das três principais regiões e nomeia o sudoeste como a principal região para se concentrar nos esforços de imunização.

![\[Pie chart showing member distribution by region, with Southwest and Northeast leading at 31% each.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/30d3b56b-3b92-4748-9cef-a73ff9339fee.png)


**nota**  
As regiões sudoeste e nordeste têm, cada uma, oito membros. No entanto, o sudoeste tem mais membros que não estão totalmente vacinados, por isso tem mais potencial para se beneficiar de iniciativas para aumentar as taxas de imunização.

## Anexos
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implemente a autenticação baseada no Microsoft Entra ID em um aplicativo de AWS mainframe modernizado da Blue Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani e Rimpy Tewani, Amazon Web Services*

## Resumo
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Os aplicativos de mainframe que são modernizados usando padrões de refatoração, como os do [AWS Mainframe Modernization Refactor com AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), exigem uma integração cuidadosa dos mecanismos de autenticação na nova arquitetura do aplicativo. Essa integração geralmente é tratada como uma atividade de pós-modernização. A tarefa pode ser complexa e geralmente envolve a migração ou a externalização dos sistemas de autenticação existentes para se alinharem aos padrões de segurança modernos e às práticas nativas da nuvem. Os desenvolvedores precisam considerar como implementar a autenticação de forma eficaz enquanto trabalham dentro das restrições do ambiente de runtime e das bibliotecas da aplicação modernizada. Após a modernização, AWS fornece maneiras de facilitar a integração do código moderno do AWS Blu Age com sistemas de gerenciamento de identidade e acesso, como o [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) [e o Microsoft](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) Entra ID (anteriormente conhecido como Azure AD).

Este padrão explica como implementar um mecanismo de autenticação em sua aplicação modernizada quando o provedor de autenticação for o Microsoft Entra ID, sem gastar tempo em pesquisas e testes. O padrão fornece:
+ Bibliotecas do Angular relevantes e testadas em campo da Microsoft Authentication Library (MSAL) e outras documentações do Microsoft Entra ID que são essenciais para a implementação da autenticação. 
+ Configurações necessárias no AWS Blu Age Runtime para habilitar o Spring Security usando OAuth 2.0.
+ Uma biblioteca que captura as identidades dos usuários autenticados e as passa para o Blu Age Runtime. AWS 
+ Medidas de segurança que recomendamos implementar.
+ Dicas de solução de problemas comuns com a configuração do Microsoft Entra ID.

**nota**  
Esse padrão usa a biblioteca de OAuth extensões AWS Blu Age, que é fornecida aos clientes como parte de seu contrato de [serviços AWS profissionais](https://aws.amazon.com/professional-services/). Essa biblioteca não faz parte do AWS Blu Age Runtime.

## Pré-requisitos e limitações
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo modernizado que foi produzido pelas ferramentas de refatoração de modernização de mainframe da AWS Blu Age. Esse padrão é usado [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)como exemplo de aplicativo de mainframe de código aberto.
+ A biblioteca de OAuth extensões AWS Blu Age, que é fornecida pela equipe da AWS Blu Age durante sua interação com os [AWS Serviços Profissionais](https://aws.amazon.com/professional-services/).
+ Um ativo Conta da AWS para implantar e testar o aplicativo modernizado.
+ Familiaridade com os arquivos de configuração do AWS Blu Age e os fundamentos do Microsoft Entra ID.

**Limitações**
+ Esse padrão abrange a autenticação OAuth 2.0 e os fluxos básicos de autorização baseados em tokens. Cenários avançados de autorização e mecanismos minuciosos de controle de acesso não estão no escopo.
+ 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 [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**

Este padrão foi desenvolvido usando:
+ AWS Blu Age Runtime versão 4.1.0 (o padrão também funciona com versões posteriores que são compatíveis com versões anteriores)
+ Biblioteca MSAL versão 3.0.23
+ Java Development Kit (JDK) versão 17
+ Angular versão 16.1

## Arquitetura
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Pilha de tecnologia de origem**

Em ambientes típicos de mainframe, a autenticação é implementada por meio de perfis de usuário. Esses perfis identificam os usuários do sistema, definem quem pode fazer login e especificam quais funções os usuários podem executar nos recursos do sistema. Os perfis de usuário são gerenciados por agentes de segurança ou administradores de segurança.

**Pilha de tecnologias de destino**
+ Microsoft Entra ID
+ Backend modernizado baseado em Java Spring Boot
+ AWS Tempo de execução do Blu Age
+ Spring Security com OAuth 2.0
+ Aplicação de página única (SPA) do Angular

**Arquitetura de destino**

AWS O tempo de execução do Blu Age oferece suporte OAuth à autenticação baseada em 2.0 por padrão, então o padrão usa esse padrão para proteger o back-end. APIs

O diagrama a seguir ilustra o fluxo do processo.

**nota**  
O diagrama inclui o Amazon Aurora como exemplo de modernização do banco de dados, embora o Aurora não esteja incluído nas etapas deste padrão.

![\[Fluxo do processo de autenticação baseada no Entra ID para uma aplicação do AWS Blu Age.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


em que:

1. Um usuário tenta se autenticar com o Microsoft Entra ID.

1. O Microsoft Entra ID retorna tokens de atualização, acesso e ID que a aplicação usa em chamadas subsequentes.

1. O interceptor MSAL inclui o token de acesso no `Authorization` cabeçalho de uma solicitação HTTPS para chamar o AWS Blu Age Runtime.

1. A `extension-oauth` biblioteca AWS Blu Age extrai as informações do usuário do cabeçalho usando um arquivo de configuração do AWS Blu Age Runtime (`application-main.yml`) e coloca essas informações em um `SharedContext` objeto para que a lógica de negócios possa consumi-las.
**nota**  
`SharedContext`é um componente de tempo de execução fornecido pela AWS Blu Age que gerencia o contexto do aplicativo e as informações de estado em todo o aplicativo modernizado. Para obter mais informações sobre os componentes e atualizações do AWS Blu Age Runtime, consulte as [notas de lançamento do AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) na AWS Mainframe Modernization documentação. Para obter mais informações sobre o `application-main.yml` arquivo, consulte [Configurar a configuração do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) na AWS Mainframe Modernization documentação.

1. O AWS Blu Age Runtime verifica se o token está presente. 

   1. Se o token estiver presente, ele verifica a validade do token comunicando-se com o Microsoft Entra ID. 

   1. Se o token não estiver presente, o AWS Blu Age Runtime retornará um erro com o código de status HTTP 403.

1. Se o token for válido, o AWS Blue Age Runtime permite que a lógica de negócios continue. Se o token for inválido, o AWS Blu Age Runtime retornará um erro com o código de status HTTP 403.

**OAuth Fluxo de trabalho 2.0**

Para obter um diagrama de alto nível do fluxo de trabalho OAuth 2.0, consulte a [documentação do Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Ferramentas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Serviços da AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornece ferramentas e recursos para ajudá-lo a planejar e implementar a migração e a modernização de mainframes para ambientes de tempo de execução AWS gerenciados. Você pode usar os recursos de refatoração desse serviço, fornecidos pela AWS Blu Age, para converter e modernizar seus aplicativos de mainframe antigos.

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositório de código**

O CardDemo aplicativo foi atualizado para demonstrar a integração com o Microsoft Entra ID. Você pode acessar o código do [GitHub repositório para esse padrão](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Configuração de backend**

Esse padrão requer alterações no arquivo de `application-main.yml`**** configuração para habilitar o Spring Security usando OAuth 2.0 no aplicativo de back-end.  Este é um exemplo de arquivo `.yml`:

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Biblioteca de filtros de OAuth extensão Blu Age**

A biblioteca de OAuth extensões do AWS Blu Age é fornecida pela equipe do AWS Blu Age durante seu envolvimento com os [AWS Serviços Profissionais](https://aws.amazon.com/professional-services/).

Essa biblioteca lê a configuração `claim.claims` no arquivo `application-main.yml` mostrado no bloco de código anterior. Essa configuração é uma lista. Cada item na lista fornece dois valores: `claimName` e `claimMapValue`. `claimName` representa um nome de chave em um JSON Web Token (JWT) enviado pelo frontend e `claimMapValue` é o nome da chave em `SharedContext`. Por exemplo, se você quiser capturar o ID do usuário no backend, defina `claimName` com o nome da chave no JWT que contém o `userId` que é fornecido pelo Microsoft Entra ID, e defina `claimMapValue` com o nome da chave para buscar o ID do usuário no código do backend.

Por exemplo, se você configurar `UserId` em `claimMapValue`, poderá usar o seguinte código para extrair o ID do usuário:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Práticas recomendadas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Na implementação deste padrão, leve em consideração as seguintes considerações de segurança importantes.

**Importante**  
Este padrão fornece uma base para a integração da autenticação. Recomendamos que você implemente medidas de segurança além das discutidas nesta seção com base nos requisitos de sua empresa antes de implantá-las na produção.
+ **AWS segurança de configuração.**Mova valores de configuração confidenciais de `application-main.yml` para AWS Secrets Manager. Por exemplo, configure as seguintes propriedades usando o Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Para obter mais informações sobre como você pode usar o Secrets Manager para configurar os parâmetros do AWS Blu Age, consulte [segredos do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) na AWS Mainframe Modernization documentação.
+ **Proteção do ambiente de runtime.** Configure o ambiente de aplicativos modernizado com controles AWS de segurança adequados:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registro na Amazon.** Considere adicionar o arquivo `logback-spring.xml to src/main/resources`:

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Para obter informações sobre como ativar o rastreamento com CloudWatch, consulte [Habilitar rastreamento para registrar a correlação](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) na CloudWatch documentação.
+ **Configuração e tratamento de tokens.** Configure a vida útil dos tokens no Microsoft Entra ID para se alinhar aos seus requisitos de segurança. Configure os tokens de acesso para expirar em uma hora e os tokens de atualização para expirar em 24 horas. Na configuração do AWS Blu Age Runtime (`application-main.yml`), certifique-se de que a validação do JWT esteja configurada corretamente com o URI exato do emissor e os valores de público do registro do aplicativo Entra ID.

  Quando um token expira e é atualizado:

  1. O interceptor de erros da aplicação Angular trata a resposta 401 obtendo um novo token por meio do MSAL.

  1. O novo token é enviado com a solicitação subsequente.

  1. O OAuth filtro do AWS Blu Age Runtime valida o novo token e é atualizado automaticamente `SharedContext` com as informações atuais do usuário. Isso garante que a lógica de negócios continue a ter acesso ao contexto de usuário válido por meio de chamadas `SharedContext.get().getValue()`.

  Para obter mais informações sobre os componentes do AWS Blu Age Runtime e suas atualizações, consulte as notas de [lançamento do AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Segurança do AWS Blu Age Runtime.** A `oauth2-ext` biblioteca fornecida pelo AWS Blu Age deve ser colocada no local correto do diretório compartilhado (`{app-server-home}/shared/`) com as permissões de arquivo adequadas. Verifique se a biblioteca extrai com êxito as informações do usuário JWTs verificando a população de `SharedContext` objetos em seus registros.
+ **Configuração específica de declarações.** Em `application-main.yml`, defina explicitamente as declarações que você precisa do Microsoft Entra ID. Por exemplo, para capturar o e-mail e os perfis dos usuários, especifique:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Tratamento de erros.** Adicione tratamento de erros para solucionar falhas de autenticação em sua aplicação Angular; por exemplo:

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Configuração do tempo limite de sessões.** Defina as configurações de tempo limite da sessão no AWS Blu Age Runtime e no Microsoft Entra ID. Por exemplo, adicione o seguinte código ao arquivo `application-main.yml`:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Você deve implementar o MsalGuard recurso em todas as rotas protegidas para impedir o acesso não autorizado. Por exemplo:

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  As rotas que não têm MsalGuard proteção estarão acessíveis sem autenticação, potencialmente expondo funcionalidades confidenciais. Certifique-se de que todas as rotas que exigem autenticação incluam os protetores em suas configurações.

## Épicos
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Configurar um Microsoft Entra ID
<a name="set-up-a-microsoft-entra-id"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure uma conta do Microsoft Azure para criar um Entra ID. | Para obter opções e instruções, consulte o [site do Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Desenvolvedor de aplicativos | 
| Configure um Microsoft Entra ID em sua aplicação. | Para saber como adicionar a autenticação Microsoft Entra ID B2C (Azure AD B2C) ao seu SPA Angular, consulte a [documentação da Microsoft](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components). Especificamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 

### Clone o repositório e implante seu código AWS Blu Age
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o GitHub repositório para obter o código Angular necessário para autenticação. | Execute o comando a seguir para clonar o [GitHub repositório](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) fornecido com esse padrão em seu diretório de trabalho atual local:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Desenvolvedor de aplicativos | 
| Implante o código modernizado do AWS Blu Age em um servidor Tomcat para implementar a autenticação. | Para configurar o ambiente local que inclui o Tomcat e o servidor de desenvolvimento Angular, siga as etapas de instalação fornecidas pela equipe da AWS Blu Age como parte do engajamento do cliente com os AWS Serviços Profissionais. | Desenvolvedor de aplicativos | 

### Compilar a solução de autenticação
<a name="build-the-authentication-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Habilite a segurança do AWS Blu Age Runtime para proteger os endpoints da API REST do AWS Blu Age. | Configure o `application-main.yml` arquivo que o AWS Blu Age Runtime usa da seguinte maneira. Para ver um exemplo desse arquivo, consulte a seção [Repositório de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) anterior neste padrão.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 
| Incorpore o código de exemplo do seu ambiente local à sua base de código Angular modernizada do Blu Age. | Para obter informações sobre como incorporar o exemplo em sua base de código Angular modernizada do AWS Blu Age, consulte a seção [Repositório de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) anteriormente neste padrão. | Desenvolvedor de aplicativos | 
| Coloque a biblioteca `oauth2-ext` no diretório compartilhado. | Coloque a biblioteca `oauth2-ext` no diretório** **compartilhado do servidor de aplicações para que sua aplicação modernizada do** **AWS Blu Age possa usá-la**. **Execute os seguintes comandos :<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Desenvolvedor de aplicativos | 

### Implantar a solução de autenticação
<a name="deploy-the-authentication-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante a aplicação de frontend. | Execute os seguintes comandos para iniciar a aplicação de frontend localmente:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Adicionar o sinalizador `--ssl` ao comando `ng serve` garante que o servidor de desenvolvimento use HTTPS, que é mais seguro do que outros protocolos e fornece uma simulação melhor de um ambiente de produção. | Desenvolvedor de aplicativos | 
| Inicie a aplicação de backend. | Inicie o servidor Tomcat no Eclipse. | Desenvolvedor de aplicativos | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a funcionalidade de login. | Acesse a aplicação implantada localmente em `http://localhost:4200` para verificar se os usuários devem confirmar sua identidade.O HTTP é usado aqui para fins de demonstração. Em um ambiente de produção ou outro ambiente acessível ao público, você deve usar HTTPS para fins de segurança. Mesmo para desenvolvimento local, sugerimos que você configure o HTTPS sempre que possível.O prompt de login da Microsoft deve aparecer e os usuários configurados no Microsoft Entra ID devem ter permissão para acessar a aplicação. | Desenvolvedor de aplicativos | 
| Teste o cabeçalho de autorização na solicitação. | As etapas a seguir usam o [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplicativo como exemplo. As etapas de teste para outras aplicações modernas podem variar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 
| Teste a funcionalidade de logout. | Escolha **Sair** para fazer logout e tente acessar a aplicação novamente. Isso deve apresentar um novo prompt de login. | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O token emitido pelo Microsoft Entra ID não é compatível com a segurança do Spring Boot OAuth 2.0. | Para obter uma solução para o problema, consulte [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) no OAuth blog. | 
| Perguntas gerais relacionadas a tokens. | Para decodificar e visualizar o conteúdo de um token JWT, use o site [https://jwt.io/](https://jwt.io/). | 

## Recursos relacionados
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Para obter informações sobre como refatorar seu aplicativo usando o AWS Blu Age, consulte a documentação.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Para entender como o OAuth 2.0 funciona, consulte o [site OAuth 2.0](https://oauth.net/2/).
+ Para obter uma visão geral da Microsoft Authentication Library (MSAL), consulte a [documentação do Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Para obter informações sobre perfis de usuário em um sistema AS/400, consulte o [tutorial do IBM i (AS400)](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Para o fluxo de autenticação OAuth 2.0 e OpenID Connect (OIDC) na plataforma de identidade da Microsoft, consulte a documentação do Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integre o controlador universal Stonebranch com o AWS Mainframe Modernization
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

*Vaidy Sankaran e Pablo Alonso Prieto, Amazon Web Services*

*Robert Lemieux e Huseyin Gomleksizoglu, Stonebranch*

## Resumo
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-summary"></a>

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Esse padrão explica como integrar a [orquestração da workload Centro de Automação Universal do Stonebranch (UAC)](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) com o [serviço do Amazon Web Services (AWS) Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/). O serviço do AWS Mainframe Modernization migra e moderniza aplicações de mainframe para a Nuvem AWS. Ele oferece dois padrões: [Redefinição de Plataforma do AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) com Micro Focus com tecnologia empresarial e [Refatoração do AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) com o AWS Blu Age.  

O Stonebranch UAC é uma plataforma de automação e orquestração de TI em tempo real. O UAC foi projetado para automatizar e orquestrar trabalhos, atividades e fluxos de trabalho em sistemas de TI híbridos, de on-premises até a AWS. Clientes corporativos que usam sistemas de mainframe estão migrando para infraestruturas e aplicações modernizadas centradas na nuvem. As ferramentas e os serviços profissionais da Stonebranch facilitam a migração dos agendadores e recursos de automação existentes para a Nuvem AWS.

Ao migrar ou modernizar seus programas de mainframe para a Nuvem AWS usando o Serviço do AWS Mainframe Modernization, você pode usar essa integração para automatizar o agendamento em lotes, aumentar a agilidade, melhorar a manutenção e diminuir os custos.

Este padrão fornece instruções para integrar o [Agendador Stonebranch](https://www.stonebranch.com/) com aplicações de mainframe migradas para o runtime do Serviço do AWS Mainframe Modernization Micro Focus Enterprise. Esse padrão é para arquitetos de soluções, desenvolvedores, consultores, especialistas em migração e outros que trabalham em migrações, modernizações, operações ou. DevOps

**Resultados direcionados**

Esse padrão se concentra em fornecer os seguintes resultados desejados:
+ A capacidade de programar, automatizar e executar trabalhos em lote de mainframe executados no Serviço do AWS Mainframe Modernization (runtime do Microfocus) do Controlador Universal Stonebranch.
+ Monitore os processos em lote aplicativo a partir do controlador universal Stonebranch.
+ Start/Restart/Rerun/Stopprocessos em lote automática ou manualmente a partir do controlador universal Stonebranch.
+ Recupere os resultados dos processos em lote do AWS Mainframe Modernization.
+ Capture os CloudWatch registros [da AWS](https://aws.amazon.com/cloudwatch/) dos trabalhos em lote no Stonebranch Universal Controller.

## Pré-requisitos e limitações
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma aplicação Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) com arquivos Job Control Language (JCL) e um processo em lote implantado em um ambiente do serviço do AWS Mainframe Modernization (runtime do Micro Focus)
+ Conhecimento básico de como compilar e implantar um aplicativo de mainframe executado no Micro Focus [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Conhecimento básico do Controlador universal Stonebranch
+ Licença experimental do Stonebranch (entre em contato com a [Stonebranch](https://www.stonebranch.com/))
+ Instâncias Windows ou Linux Amazon Elastic Compute Cloud (Amazon EC2) (por exemplo, xlarge) com um mínimo de quatro núcleos, 8 GB de memória e 2 GB de espaço em disco
+ Apache Tomcat versão 8.5.x ou 9.0.x
+ Ambiente de Execução Java (JRE) Oracle ou OpenJDK versão 8 ou 11
+ [Amazon Aurora Edição Compatível com MySQL](https://aws.amazon.com/rds/aurora/)
+ Bucket do [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) para repositório de exportação
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) para conexões do agente Stonebranch Universal Message Service (OMS) para alta disponibilidade (HA)
+ Arquivos de instalação do controlador universal Stonebranch 7.2 Agente universal 7.2
+ [Modelo de agendamento de tarefas](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) do AWS Mainframe Modernization (última versão lançado do arquivo .zip)

**Limitações**
+ O produto e a solução foram testados e a compatibilidade foi validada somente com o OpenJDK 8 e 11.
+ O modelo [aws-mainframe-modernization-stonebranchde agendamento de tarefas de integração](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) funcionará somente com o serviço AWS Mainframe Modernization.
+ Esse modelo de agendamento de tarefas funcionará somente em uma edição Unix, Linux ou Windows dos agentes Stonebranch.
+ Alguns serviços da AWS não estão disponíveis em todas as regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services 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="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-architecture"></a>

**Arquitetura de estado final**

O diagrama a seguir mostra um exemplo de ambiente AWS necessário para esse piloto.

![\[Interação do Stonebranch UAC com o ambiente do AWS Mainframe Modernization.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. O Centro de Automação Universal (UAC) do Stonebranch inclui dois componentes principais: controlador universal e agentes universais. O Stonebranch OMS é usado como um barramento de mensagens entre o controlador e os agentes individuais.

1. O banco de dados do Stonebranch UAC é usado pelo controlador universal. O banco de dados pode ser compatível com MySQL, Microsoft SQL Server, Oracle ou Aurora MySQL.

1. Serviço de modernização de mainframe da AWS — ambiente de execução da Micro Focus com o [BankDemo aplicativo](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/) implantado. Os arquivos do BankDemo aplicativo serão armazenados em um bucket do S3. Este bucket também contém os arquivos JCL do mainframe.

1. O Stonebranch UAC pode executar as seguintes funções para a execução em lote:

   1. Inicie um trabalho em lotes usando o nome do arquivo JCL que existe no bucket do S3 vinculado ao Serviço do AWS Mainframe Modernization.

   1. Obtenha o status da execução do trabalho em lotes.

   1. Aguarde até que a execução do trabalho em lotes seja concluída.

   1. Busque os logs da execução do trabalho em lotes.

   1. Execute novamente os trabalhos em lotes com falha.

   1. Cancele o trabalho em lote enquanto o trabalho está em execução.

1. O Stonebranch UAC pode executar as seguintes funções para o aplicativo:

   1. Iniciar a replicação

   1. Obter status da aplicação

   1. Aguarde até que o aplicativo seja iniciado ou interrompido

   1. Interromper a aplicação

   1. Obter logs de operação do aplicativo

**Conversão de trabalhos do Stonebranch**

O diagrama a seguir representa o processo de conversão de trabalhos do Stonebranch durante a jornada de modernização. Ele descreve como as programações de trabalho e as definições de tarefas são convertidas em um formato compatível que pode executar tarefas em lote do AWS Mainframe Modernization.

![\[Processo do mainframe para a conversão em agendador de tarefas no Amazon EC2 com arquivos JCL no Amazon S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Para o processo de conversão, as definições de trabalho são exportadas do sistema de mainframe existente.

1. Os arquivos JCL podem ser carregados no bucket do S3 para o aplicativo de modernização de mainframe para que esses arquivos JCL possam ser implantados pelo serviço do AWS Mainframe Modernization.

1. A ferramenta de conversão converte as definições de trabalho exportadas em tarefas do UAC.

1. Depois que todas as definições de tarefas e programações de trabalho forem criadas, esses objetos serão importados para o Controlador Universal. As tarefas convertidas então executam os processos no Serviço do AWS Mainframe Modernization em vez de executá-los no mainframe.

**Arquitetura Stonebranch UAC**

O diagrama de arquitetura a seguir representa um active-active-passive modelo de controlador universal de alta disponibilidade (HA). O Stonebranch UAC é implantado em várias zonas de disponibilidade para fornecer alta disponibilidade e apoiar a recuperação de desastres (DR).

![\[Ambiente Multi-AZ com DR e controladores, Amazon EFS, Aurora e um bucket do S3 para backups.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Controlador universal*

Dois servidores Linux são provisionados como controladores universais. Ambos se conectam ao mesmo endpoint do banco de dados. Cada servidor abriga um aplicativo Universal Controller e o OMS. A versão mais recente do Controlador Universal é usada no momento em que é provisionada.

Os Controladores Universais são implantados no aplicativo web Tomcat como o documento ROOT e são servidos na porta 80. Essa implantação facilita a configuração do balanceador de carga de frontend.

O HTTP sobre TLS ou HTTPS está habilitado usando o certificado curinga Stonebranch (por exemplo, `https://customer.stonebranch.cloud`). Isso protege a comunicação entre o navegador e o aplicativo.

*OMS*

Um agente universal e o OMS (Opswise Message Service) residem em cada servidor do controlador universal. Todos os agentes universais implantados do lado do cliente são configurados para se conectarem a ambos os serviços OMS. O OMS atua como um serviço de mensagens comum entre os agentes universais e o controlador universal.

O Amazon EFS monta um diretório de spool em cada servidor. O OMS usa esse diretório de spool compartilhado para manter as informações de conexão e tarefas dos controladores e agentes. O OMS funciona em um modo de alta disponibilidade. Se o OMS ativo cair, o OMS passivo terá acesso a todos os dados e retomará as operações ativas automaticamente. Os agentes universais detectam essa alteração e se conectam automaticamente ao novo OMS ativo.

*Banco de dados*

O Amazon Relational Database Service (Amazon RDS) hospeda o banco de dados UAC, com o Amazon Aurora MySQL, compatível com Amazon Aurora MySQL como seu mecanismo. O Amazon RDS ajuda a gerenciar e oferecer backups programados em intervalos regulares. As duas instâncias do controlador universal se conectam ao mesmo endpoint do banco de dados.

*Load balancer*

Um Application Load Balancer é configurado para cada instância. O balanceador de carga direciona o tráfego para o controlador ativo a qualquer momento. Os nomes de domínio da sua instância apontam para os respectivos endpoints do balanceador de carga.

*URLs*

Cada uma de suas instâncias tem um URL, conforme mostrado no exemplo a seguir.


| 
| 
| Environment | Instância | 
| --- |--- |
| **Produção** | `customer.stonebranch.cloud` | 
| **Desenvolvimento (não produção)** | `customerdev.stonebranch.cloud` | 
| **Teste (não produção)** | `customertest.stonebranch.cloud` | 

**nota**  
  Os nomes das instâncias de não produção podem ser definidos com base nas suas necessidades.

*Alta disponibilidade*

Alta disponibilidade (HA) é a capacidade de um sistema operar continuamente sem falhas por um determinado período de tempo. Essas falhas incluem, mas não estão limitadas a, armazenamento, atrasos na resposta de comunicação do servidor causados por problemas de CPU ou memória e conectividade da rede.

Para atender aos requisitos de HA:
+ Todas as instâncias, bancos de dados e outras configurações do EC2 são espelhadas em duas zonas de disponibilidade separadas na mesma região da AWS.
+ O controlador é provisionado por meio de uma Imagem de máquina da Amazon (AMI) em dois servidores Linux nas duas zonas de disponibilidade. Por exemplo, se você estiver provisionado na região europeia eu-west-1, você tem um controlador universal na zona de disponibilidade eu-west-1a e na zona de disponibilidade eu-west-1c.
+ Nenhum trabalho pode ser executado diretamente nos servidores de aplicativos e nenhum dado pode ser armazenado nesses servidores.
+ O Application Load Balancer executa verificações de integridade em cada controlador universal para identificar o ativo e direcionar o tráfego para ele. Caso um servidor tenha problemas, o balanceador de carga automaticamente promove o controlador universal passivo para um estado ativo. O balanceador de carga então identifica a nova instância ativa do controlador universal a partir das verificações de integridade e começa a direcionar o tráfego. O failover ocorre em quatro minutos sem perda de trabalhos, e o URL do frontend permanece o mesmo.
+ O serviço de banco de dados do Aurora compatível com MySQL armazena dados do controlador universal. Para ambientes de produção, um cluster de banco de dados é criado com duas instâncias de banco de dados em duas zonas de disponibilidade diferentes em uma única região da AWS. Ambos os controladores universais usam uma interface de Conectividade do banco de dados Java (JDBC) que aponta para um único endpoint do cluster do banco de dados. Caso uma instância de banco de dados tenha problemas, o endpoint do cluster do banco de dados aponta dinamicamente para a instância íntegra. Nenhuma intervenção manual é necessária.

*Backup e limpeza*

O controlador universal Stonebranch está configurado para fazer backup e limpar dados antigos seguindo a programação mostrada na tabela.


| 
| 
| Tipo | Agendamento | 
| --- |--- |
| **Atividades** | 7 dias | 
| **Auditoria** | 90 dias | 
| **Histórico** | 60 dias | 

Os dados de backup anteriores às datas mostradas são exportados para o formato.xml e armazenados no sistema de arquivos. Após a conclusão do processo de backup, os dados mais antigos são removidos do banco de dados e arquivados em um bucket S3 por até um ano para instâncias de produção.

Você pode ajustar essa programação na interface do seu controlador universal. No entanto, aumentar esses prazos pode causar maior tempo de inatividade durante a manutenção.

## Ferramentas
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**Serviços da AWS**
+ O [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) é um serviço nativo de nuvem da plataforma AWS que ajuda a modernizar aplicações de mainframe para ambientes de runtime gerenciados da AWS. Ele fornece ferramentas e recursos para ajudar você a planejar e implementar a migração e a modernização.
+ O [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) oferece volumes de armazenamento em bloco para usar com instâncias do Amazon EC2.
+ [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. Esse padrão usa Amazon Aurora Edição compatível com MySQL.
+ 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.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre instâncias do Amazon EC2, contêineres e endereços IP em uma ou mais zonas de disponibilidade. Este padrão usa um Application Load Balancer.

**Stonebranch**
+ O [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) é um sistema de produtos de automação de workload empresarial. Esse padrão usa os seguintes componentes do UAC:
  + O [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), um aplicativo web Java executado em um contêiner web Tomcat, é a solução corporativa de agendamento de tarefas e agente de automação de workload do Universal Automation Center. O controlador apresenta uma interface de usuário para criar, monitorar e configurar as informações do controlador; manipula a lógica de agendamento; processa todas as mensagens de e para os Universal Agents; e sincroniza grande parte da operação de alta disponibilidade do Universal Automation Center.
  + O [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) é um agente de agendamento independente do fornecedor que colabora com o agendador de trabalhos existente em todas as principais plataformas de computação, tanto legadas quanto distribuídas. Todos os agendadores executados em z/Series, i/Series Unix, Linux ou Windows são compatíveis.
+ O [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) é um agente de agendamento independente do fornecedor que colabora com o agendador de trabalhos existente em todas as principais plataformas de computação, tanto legadas quanto distribuídas. Todos os agendadores executados em z/Series, i/Series Unix, Linux ou Windows são compatíveis.
+ [ aws-mainframe-modernization-stonebranchIntegração com o Stonebranch O AWS Mainframe Modernization Universal](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) Extension é o modelo de integração para executar, monitorar e executar novamente trabalhos em lote na plataforma AWS Mainframe Modernization.

**Código**

O código desse padrão está disponível no GitHub repositório [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/).

## Épicos
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-epics"></a>

### Instale o Universal Controller e o Universal Agent no Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe os arquivos de instalação. | Baixe a instalação dos servidores Stonebranch. Para obter os arquivos de instalação, entre em contato com a Stonebranch. | Arquiteto de nuvem | 
| Inicie a instância do EC2. | Você precisará de cerca de 3 GB de espaço extra para as instalações do Universal Controller e do Universal Agent. Portanto, forneça pelo menos 30 GB de espaço em disco para a instância.Adicione a porta 8080 ao grupo de segurança para que ela fique acessível. | Arquiteto de nuvem | 
| Verifique os pré-requisitos. | Antes da instalação, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de nuvem, administrador Linux | 
| Instale o Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Arquiteto de nuvem, administrador Linux | 
| Instale o Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de nuvem, administrador Linux | 
| Adicione o OMS ao Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Importe o AWS Mainframe Modernization Universal Extension e crie uma tarefa
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Importar modelo de integração. | Para essa etapa, você precisa do [AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Verifique se a versão mais recente do arquivo .zip foi baixada.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Depois que o modelo de integração for importado, você verá as **Tarefas do AWS Mainframe Modernization** em **Serviços disponíveis**. | Administrador do Universal Controller | 
| Ative credenciais resolvíveis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Inicie a tarefa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Teste ao iniciar um trabalho em lote
<a name="test-starting-a-batch-job"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tarefa para o trabalho em lotes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Inicie a tarefa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie um fluxo de trabalho para várias tarefas
<a name="create-a-workflow-for-multiple-tasks"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Copie as tarefas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Tarefas de atualização. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Crie um fluxo de trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Confira o status do fluxo de trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Solucione problemas de trabalhos em lotes com falha e execute novamente
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Corrija a tarefa com falha e execute novamente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie tarefas para iniciar o aplicativo e interromper o aplicativo
<a name="create-start-application-and-stop-application-tasks"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a ação Iniciar aplicativo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie uma tarefa de execução de Cancelar lote
<a name="create-a-cancel-batch-execution-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a ação Cancelar lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Recursos relacionados
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Controlador universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Universal Agent](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Configurações do LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [Autenticação única SAML](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Ferramenta de conversão Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Mais informações
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Ícones no editor de fluxo de trabalho**

![\[Tarefa RUNHELLO na parte superior, FOOBAR no meio e as tarefas restantes no terceiro nível.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Todas as tarefas conectadas**

![\[O RUNHELLO se conecta ao FOOBAR, que se conecta às três tarefas restantes.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Status do fluxo de trabalho**

![\[A tarefa FOOBAR falha e as três tarefas restantes ficam aguardando.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna e Boopatia GOPALSAMY, Amazon Web Services*

## Resumo
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-summary"></a>

Esse padrão mostra como migrar e replicar arquivos do Método de acesso ao armazenamento virtual (VSAM - Virtual Storage Access Method) de um mainframe para um ambiente de destino na Nuvem AWS usando o [Connect](https://www.precisely.com/product/precisely-connect/connect) da Precisely. Os ambientes de destino abrangidos por este padrão incluem o Amazon Relational Database Service (Amazon RDS) e o Amazon Managed Streaming for Apache Kafka (Amazon MSK). O Connect usa a [captura de dados de alteração (CDC - change data capture)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) para monitorar continuamente as atualizações dos seus arquivos VSAM de origem e, em seguida, transferir essas atualizações para um ou mais dos seus ambientes de destino da AWS. Você pode usar esse padrão para atender às suas metas de modernização de aplicativos ou análise de dados. Por exemplo, você pode usar o Connect para migrar seus arquivos do aplicativo VSAM para a Nuvem AWS com baixa latência ou migrar seus dados do VSAM para um data warehouse ou data lake da AWS para análises que possam tolerar latências de sincronização maiores do que as necessárias para a modernização do aplicativo.

## Pré-requisitos e limitações
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Pré-requisitos **
+ [IBM z/OS V2R1](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument) ou posterior
+ [Servidor de transações CICS para z/OS (CICS TS) V5.1 ou posterior (captura de dados CICS/VSAM](https://www.ibm.com/support/pages/cics-transaction-server-zos-51-detailed-system-requirements))
+ [IBM MQ 8.0](https://www.ibm.com/support/pages/downloading-ibm-mq-80) ou superior
+ Conformidade com os [requisitos de segurança do z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS) (por exemplo, autorização do APF para SQData carregar bibliotecas)
+ Logs de recuperação do VSAM ativados
+ (Opcional) [Versão de recuperação do CICS VSAM (CICS VR - CICS VSAM Recovery Version)](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr) para capturar automaticamente os registros do CDC
+ Uma conta AWS ativa
+ Uma [nuvem privada virtual (VPC) da Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) com uma sub-rede acessível por sua plataforma legada
+ Uma licença VSAM Connect da Precisely

**Limitações**
+ O Connect não oferece suporte à criação automática de tabelas de destino com base nos esquemas ou copybooks do VSAM de origem. Você deve definir a estrutura da tabela de destino pela primeira vez.
+ Para destinos sem streaming, como o Amazon RDS, você deve especificar a fonte de conversão para o mapeamento de destino no script de configuração do Apply Engine.
+ As funções de registro, monitoramento e alerta são implementadas APIs e exigem que componentes externos (como a Amazon CloudWatch) estejam totalmente operacionais.

**Versões do produto**
+ SQData 40134 para z/OS
+ SQData 4.0.43 para o Amazon Linux Amazon Machine Image (AMI) na Amazon Elastic Compute Cloud (Amazon) EC2

## Arquitetura
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-architecture"></a>

**Pilha de tecnologia de origem**
+ Job Control Language (JCL - Linguagem de controle de trabalho)
+ Shell z/OS Unix e Interactive System Productivity Facility (ISPF - Facilidade de produtividade do sistema interativo)
+ Utilitários VSAM (IDCAMS)

**Pilha de tecnologias de destino**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Arquitetura de destino**

*Migração de arquivos VSAM para o Amazon RDS*

O diagrama a seguir mostra como migrar arquivos VSAM para um banco de dados relacional, como o Amazon RDS, em tempo real ou quase em tempo real usando o CDC agent/publisher no ambiente de origem (mainframe local) e o [Apply Engine no](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) ambiente de destino (Nuvem AWS).

![\[Diagram showing VSAM file migration from on-premises mainframe to Nuvem AWS using CDC and Apply Engine.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)


O diagrama mostra o seguinte fluxo de trabalho em lote:

1. O Connect captura as alterações em um arquivo comparando os arquivos VSAM dos arquivos de backup para identificar as alterações e, em seguida, envia as alterações para o fluxo de registros.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas a um mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

O diagrama mostra o seguinte fluxo de trabalho on-line:

1. O Connect captura as alterações no arquivo on-line usando uma replicação de log e, em seguida, transmite as alterações capturadas para um logstream.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

*Migração de arquivos VSAM para o Amazon MSK*

O diagrama a seguir mostra como transmitir estruturas de dados VSAM de um mainframe para o Amazon MSK no modo de alto desempenho e gerar automaticamente conversões de esquema JSON ou AVRO que se integram ao Amazon MSK.

![\[Diagram showing data flow from on-premises mainframe to Nuvem AWS services via Amazon VPC.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)


O diagrama mostra o seguinte fluxo de trabalho em lote:

1. O Connect captura as alterações em um arquivo usando o CICS VR ou comparando arquivos VSAM de arquivos de backup para identificar alterações. As alterações capturadas são enviadas para o fluxo de registros.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

1. Os segmentos de trabalho capturam os dados do cache.

1. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

1. [Os usuários aplicam alterações do Amazon MSK a destinos como Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) ou Amazon Service usando conectores OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

O diagrama mostra o seguinte fluxo de trabalho on-line:

1. As alterações no arquivo on-line são capturadas usando uma replicação de log. As alterações capturadas são transmitidas para o logstream.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

1. Os segmentos de trabalho capturam os dados do cache.

1. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

1. [Os usuários aplicam alterações do Amazon MSK a destinos como DynamoDB, Amazon S3 ou Service usando conectores OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Ferramentas
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ O [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) é um serviço totalmente gerenciado que ajuda você a criar e executar aplicações que usam o Apache Kafka para processar dados em streaming.
+ 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.

## Épicos
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-epics"></a>

### Prepare o ambiente de origem (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Configure o diretório zFS. | Para configurar um diretório zFS, siga as instruções dos [diretórios de variáveis do zFS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS/zFS-variable-directories) na documentação do Precisely.As configurações do daemon e do Capture/Publisher agente do controlador são armazenadas no sistema de arquivos do z/OS UNIX Systems Services (conhecido como zFS). Os agentes Controller Daemon, Capture, Storage e Publisher exigem uma estrutura de diretórios zFS predefinida para armazenar um pequeno número de arquivos. | Desenvolvedor/administrador de mainframe IBM | 
| Configure TCP/IP portas. | Para configurar TCP/IP portas, siga as instruções das portas [TCP/IP na documentação do Precisely](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX/Prerequisites-for-UNIX/Security-authorization-requirements-for-UNIX/TCP/IP-ports).O Controller Daemon requer TCP/IP portas nos sistemas de origem. As portas são referenciadas pelos mecanismos nos sistemas de destino (onde os dados de alteração capturados são processados). | Desenvolvedor/administrador de mainframe IBM | 
| Crie um z/OS logstream. | Para criar um [fluxo de registros do z/OS](https://www.ibm.com/docs/en/was/8.5.5?topic=SSEQTP_8.5.5/com.ibm.websphere.installation.zseries.doc/ae/cins_logstrm.html), siga as instruções de [Criar fluxos de registros do z/OS sistema](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) na documentação Precisely.O Connect usa o logstream para capturar e transmitir dados entre o ambiente de origem e o ambiente de destino durante a migração.Para ver um exemplo de JCL que cria um z/OS LogStream, consulte [Criar LogStreams z/OS do sistema na documentação](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) Precisely. | Desenvolvedor de mainframe da IBM | 
| Identifique e autorize IDs usuários do zFS e tarefas iniciadas. | Use o RACF para conceder acesso ao sistema de arquivos OMVS zFS. Para ver um exemplo de JCL, consulte [Identificar e autorizar o usuário do ZFS e a tarefa iniciada IDs na documentação](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-log-reader-capture/Prepare-environment/Identify-and-authorize-zFS-user-and-started-task-IDs?tocId=MrBXpFu~N0iAy~8VTrH0tQ) do Precisely. | Desenvolvedor/administrador de mainframe IBM | 
| Gere chaves z/OS públicas/privadas e o arquivo de chave autorizado. | Execute o JCL para gerar o par de chaves. Para obter um exemplo, consulte *Exemplo de par de chaves* na seção *Informações adicionais* desse padrão.Para obter instruções, consulte [Gerar chaves z/OS públicas e privadas e arquivo de chave autorizado](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Db2-z/OS/Prepare-the-environment/Generate-z/OS-public-and-private-keys-and-authorized-key-file?tocId=fceE77dWT8smZsSaE~FeMQ) na documentação do Precisely. | Desenvolvedor/administrador de mainframe IBM | 
| Ative o CICS VSAM Log Replicate e anexe-o ao fluxo de logs. | Execute o seguinte script JCL:<pre> //STEP1 EXEC PGM=IDCAMS<br /> //SYSPRINT DD SYSOUT=*<br /> //SYSIN DD *<br />   ALTER SQDATA.CICS.FILEA -<br />   LOGSTREAMID(SQDATA.VSAMCDC.LOG1) -<br />   LOGREPLICATE</pre> | Desenvolvedor/administrador de mainframe IBM | 
| Ative o log de recuperação de arquivos VSAM por meio de um FCT. | Modifique a Tabela de controle de arquivos (FCT - File Control Table) para refletir as seguintes alterações de parâmetros:<pre> Configure FCT Parms<br />   CEDA ALT FILE(name) GROUP(groupname)<br />   DSNAME(data set name)<br />   RECOVERY(NONE|BACKOUTONLY|ALL)<br />   FWDRECOVLOG(NO|1–99)<br />   BACKUPTYPE(STATIC|DYNAMIC)<br />   RECOVERY PARAMETERS<br />   RECOVery : None | Backoutonly | All<br />   Fwdrecovlog : No | 1-99<br />   BAckuptype : Static | Dynamic</pre> | Desenvolvedor/administrador de mainframe IBM | 
| Configure o CDCz Log para o agente do Publisher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o Daemon do controlador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o publicador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o fluxo de registro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 

### Preparar o ambiente de destino (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale com precisão em uma EC2 instância. | Para instalar o Connect from Precisely no Amazon Linux AMI para Amazon EC2, siga as instruções de [Install Connect CDC (SQData) no UNIX na documentação](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) do Precisely. | AWS geral | 
|  TCP/IP Portas abertas. | Para modificar o grupo de segurança para incluir as portas do Controller Daemon para acesso de entrada e saída, siga as instruções do [TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Change-data-capture/Transient-storage-and-publishing/TCP/IP) na documentação do Precisely. | AWS geral | 
| Crie diretórios de arquivos. | Para criar diretórios de arquivos, siga as instruções de [Preparar o ambiente de aplicação de destino](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-targets/Kafka/Prepare-target-apply-environment) na documentação do Precisely. | AWS geral | 
| Crie o arquivo de configuração do Apply Engine. | Crie o arquivo de configuração do Apply Engine no diretório de trabalho do Apply Engine. O exemplo de arquivo de configuração a seguir mostra o Apache Kafka como destino:<pre>builtin.features=SASL_SCRAM<br />  security.protocol=SASL_SSL<br />  sasl.mechanism=SCRAM-SHA-512<br />  sasl.username=<br />  sasl.password=<br />  metadata.broker.list=</pre>Para obter mais informações, consulte [Segurança](https://kafka.apache.org/documentation/#security) na documentação do Apache Kafka. | AWS geral | 
| Crie scripts para o processamento do Apply Engine. | Crie os scripts para que o Apply Engine processe os dados de origem e replique os dados de origem para o destino. Para obter mais informações, consulte [Criar um script de mecanismo de aplicação](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Create-an-apply-engine-script) na documentação do Precisely. | AWS geral | 
| Execute os scripts. | Use os comandos `SQDPARSE` e `SQDENG` para executar o script. Para obter mais informações, consulte [Analisar um script para ZoS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Parse-a-script/Parse-a-script-for-zOS) na documentação do Precisely. | AWS geral | 

### Valide o ambiente
<a name="validate-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a lista de arquivos VSAM e tabelas de destino para processamento de CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 
| Verifique se o SQData produto Connect CDC está vinculado. | Execute um trabalho de teste e verifique se o código de retorno desse trabalho é 0 (bem-sucedido).As mensagens de status do Connect CDC SQData Apply Engine devem mostrar mensagens de conexão ativas. | AWS geral, Mainframe | 

### Execute e valide casos de teste (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o trabalho em lotes no mainframe. | Execute o trabalho de aplicação em lote usando um JCL modificado. Inclua etapas na JCL modificada que façam o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 
| Verifique o fluxo de logs. | Verifique o fluxo de registros para confirmar que você pode ver os dados de alteração do trabalho em lote concluído do mainframe. | AWS geral, Mainframe | 
| Valide as contagens das alterações do delta de origem e da tabela de destino. | Para confirmar se os registros foram contabilizados, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 

### Execute e valide casos de teste (on-line)
<a name="run-and-validate-test-cases-online"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a transação on-line em uma região do CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor de mainframe da IBM | 
| Verifique o fluxo de logs. | Confirme se o fluxo de registros está preenchido com alterações específicas no nível do registro. | Desenvolvedor do AWS Mainframe | 
| Valide a contagem no banco de dados de destino. | Monitore o mecanismo de aplicação para obter contagens de níveis recordes. | Precisely, Linux | 
| Valide as contagens de registros e os registros de dados no banco de dados de destino. | Consulte o banco de dados de destino para validar as contagens de registros e os registros de dados. | AWS geral | 

## Recursos relacionados
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/VSAM-z/OS) (documentação do Precisely)
+ [Aplique o mecanismo](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (documentação do Precisely)
+ [Mecanismo replicador](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentação do Precisely)
+ [O fluxo de logs](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentação da IBM)

## Mais informações
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Exemplo do arquivo de configuração**

Este é um exemplo de arquivo de configuração para um fluxo de logs em que o ambiente de origem é um mainframe e o ambiente de destino é o Amazon MSK:

```
 
  -- JOBNAME -- PASS THE SUBSCRIBER NAME
  -- REPORT  progress report will be produced after "n" (number) of Source records processed.
  
  JOBNAME VSMTOKFK;
  --REPORT EVERY 100;
  -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update
  -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252
  OPTIONS
  CDCOP('I', 'U', 'D'),
  PSEUDO NULL = NO,
  USE AVRO COMPATIBLE NAMES,
  APPLICATION ENCODING SCHEME = 1208;
  
  --       SOURCE DESCRIPTIONS
  
  BEGIN GROUP VSAM_SRC;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       TARGET DESCRIPTIONS
  
  BEGIN GROUP VSAM_TGT;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       SOURCE DATASTORE (IP & Publisher name)
  
  DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK
  OF VSAMCDC
  AS CDCIN
  DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL;
  
  --       TARGET DATASTORE(s) - Kafka and topic name
  
  DATASTORE 'kafka:///MSKTutorialTopic/key'
  OF JSON
  AS CDCOUT
  DESCRIBED BY GROUP VSAM_TGT FOR INSERT;
  
  --       MAIN SECTION
  
  PROCESS INTO
  CDCOUT
  SELECT
  {
  SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key')
  REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE))
  REPLICATE(CDCOUT, account_file)
  }
  FROM CDCIN;
```

**Exemplo de par de chaves**

Este é um exemplo de como executar o JCL para gerar o par de chaves:

```
//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD  keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY
```

# Modernize o aplicativo de CardDemo mainframe usando AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

*Santosh Kumar Singh e Cheryl du Preez, Amazon Web Services*

## Resumo
<a name="modernize-carddemo-mainframe-app-summary"></a>

O [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html) foi projetado para acelerar a modernização das aplicações de mainframe. Ele usa IA generativa para agilizar o processo de modernização do mainframe. Ele automatiza tarefas complexas, como: análise de código legado, documentação de mainframe, extração de regras de negócios, decomposição de aplicações monolíticas em domínio comercial e refatoração de código. Ele acelera os projetos de modernização automatizando tarefas complexas, como análise de aplicações e planejamento da sequência de migração. Ao decompor aplicativos monolíticos, sequencia de AWS Transform forma inteligente a transformação do aplicativo de mainframe, o que ajuda você a transformar as funções de negócios em paralelo. AWS Transform pode acelerar a tomada de decisões e aprimorar a agilidade operacional e a eficiência da migração.

Esse padrão oferece step-by-step instruções para ajudá-lo a testar os recursos de modernização do mainframe AWS Transform usando [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que é um exemplo de aplicativo de mainframe de código aberto.

## Pré-requisitos e limitações
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Centro de Identidade do AWS IAM, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Permissões](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) que permitem que os administradores habilitem AWS Transform
+ [Permissões](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) que permitem que os administradores aceitem solicitações de conexão do Amazon Simple Storage Service (Amazon S3) para o aplicativo web AWS Transform 

**Limitações**
+ AWS Transform está disponível apenas em alguns Regiões da AWS. Para obter uma lista completa das regiões aceitar, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform suporta análise de código, geração de documentos, extração de regras de negócios, decomposição e refatoração da Common Business-Oriented Language (COBOL) para Java. Para obter mais informações, consulte [Capabilities and key features](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) e [Supported file types for transformation of mainframe applications](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files).
+ Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte [Cotas para o AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da mesma instância associada à sua instância do aplicativo AWS Transform web. Centro de Identidade do AWS IAM 
+ O bucket do Amazon S3 AWS Transform deve estar na mesma região Conta da AWS .

## Arquitetura
<a name="modernize-carddemo-mainframe-app-architecture"></a>

O diagrama a seguir mostra a arquitetura que é configurada neste padrão.

![\[Usar o AWS Transform para modernizar uma aplicação de mainframe que é armazenada em um bucket do Amazon S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. AWS Transform usa um conector para acessar o aplicativo de CardDemo mainframe, que é armazenado em um bucket do Amazon S3.

1. AWS Transform usa Centro de Identidade do AWS IAM para gerenciar o acesso e a autenticação do usuário. O sistema implementa várias camadas de controles de segurança para autenticação, autorização, criptografia e gerenciamento de acesso para ajudar a proteger códigos e artefatos durante o processamento. Os usuários interagem com o AWS Transform agente por meio de uma interface de bate-papo. Você pode fornecer instruções ao agente de IA para tarefas específicas em inglês. Para obter mais informações, consulte [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) na AWS Transform documentação.

1. O agente de IA interpreta as instruções do usuário, cria um plano de trabalho, divide o trabalho em tarefas executáveis e o executa de forma autônoma. Os usuários podem revisar e aprovar a transformação. As tarefas de transformação incluem o seguinte:
   + **Análise de código** — AWS Transform analisa o código em cada arquivo para obter detalhes como nome do arquivo, tipo de arquivo, linhas de código e seus caminhos. O agente analisa o código-fonte, executa classificações, cria mapeamentos de dependências e identifica quaisquer artefatos ausentes. Ele também identifica componentes duplicados.
   + **Geração de documentos** — AWS Transform gera documentação para o aplicativo de mainframe. Ao analisar o código, ele pode criar automaticamente uma documentação detalhada dos programas de aplicações, incluindo descrições da lógica de negócios, fluxos, integrações e dependências presentes em seus sistemas legados.
   + **Extração da lógica de negócios** — AWS Transform analisa os programas COBOL para documentar sua lógica de negócios principal, para ajudá-lo a entender a lógica comercial fundamental.
   + **Decomposição de código** — AWS Transform decompõe o código em domínios que respondem pelas dependências entre programas e componentes. O agrupamento de arquivos e programas relacionados no mesmo domínio melhora a organização e ajuda a preservar a estrutura lógica da aplicação ao dividi-la em componentes menores.
   + **Planejamento da onda de migração** — Com base nos domínios que você criou durante a fase de decomposição, AWS Transform gera um plano de onda de migração com a ordem de modernização recomendada.
   + **Refatoração de código — AWS Transform refatora** o código em todos os arquivos de domínio ou em arquivos de domínio selecionados em código Java. O objetivo dessa etapa é preservar a lógica comercial essencial da aplicação e, ao mesmo tempo, refatorá-la em uma aplicação Java modernizada e otimizada para a nuvem.

1. AWS Transform armazena o código refatorado, os documentos gerados, os artefatos associados e as bibliotecas de tempo de execução em seu bucket do Amazon S3. Você pode fazer o seguinte:
   + Acesse a pasta de runtime no bucket do Amazon S3.
   + Crie e implante o aplicativo seguindo a seção [Criar e implantar seu aplicativo modernizado após a refatoração](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) na documentação. AWS Transform 
   + Por meio da interface de bate-papo, solicite e baixe uma amostra AWS CloudFormation ou modelo do Hashicorp Terraform. AWS Cloud Development Kit (AWS CDK) Esses modelos podem ajudá-lo a implantar os AWS recursos necessários para dar suporte ao aplicativo refatorado.
   + Use o [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) para melhorar a qualidade do código refatorado usando modelos de linguagem grandes (). LLMs O mecanismo de refatoração preserva a equivalência funcional do COBOL enquanto o transforma em código Java. O Reforge é uma etapa opcional que está disponível após a transformação. Essa etapa é usada LLMs para reestruturar o código para que se pareça muito com o Java nativo, o que pode melhorar a legibilidade e a capacidade de manutenção. O Reforge também adiciona comentários legíveis para ajudar você a entender o código e implementa padrões de codificação modernos e práticas recomendadas.

## Ferramentas
<a name="modernize-carddemo-mainframe-app-tools"></a>

**Serviços da AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) aos seus Contas da AWS aplicativos e à nuvem.
+ 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.

**Repositório de código**

Você pode usar o aplicativo de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código aberto como um aplicativo de exemplo para começar a modernizar o mainframe.

## Práticas recomendadas
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Comece pequeno** — comece com um código pequeno e menos complexo (15.000 a 20.000 linhas de código) para entender como AWS Transform analisa e transforma aplicativos de mainframe.
+ **Combine com a experiência humana** — Use AWS Transform como um acelerador enquanto aplica a experiência humana para obter os melhores resultados.
+ **Revise e teste minuciosamente**: sempre revise cuidadosamente o código transformado e execute testes abrangentes para validar a equivalência funcional após a transformação.
+ **Forneça feedback** — Para fornecer feedback e sugestões de melhoria, use o botão **Enviar feedback** no Console de gerenciamento da AWS ou crie um caso com [AWS Support](https://support.console.aws.amazon.com/). Para obter mais informações, consulte [Criar um caso de suporte](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Sua opinião é valiosa para aprimoramentos de serviços e desenvolvimento futuro.

## Épicos
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Preparar a aplicação de mainframe
<a name="prepare-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket. | Crie um bucket do Amazon S3 na mesma Conta da AWS região em que AWS Transform está habilitado. Você usa esse bucket para armazenar o código do aplicativo de mainframe e AWS Transform usa esse bucket para armazenar os documentos gerados, o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3. | AWS geral | 
| Prepare a amostra da aplicação de mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desenvolvedor de aplicativos, DevOps engenheiro | 

### Configurar o IAM Identity Center e AWS Transform
<a name="configure-sso-and-trn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione usuários ao Centro de Identidade do IAM. | Adicione seus usuários em potencial ao Centro de Identidade do IAM. Siga as instruções em [Adicionar usuários no IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) na AWS Transform documentação. | Administrador da AWS | 
| Habilite AWS Transform e adicione usuários. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Administrador da AWS | 
| Configure o acesso do usuário ao aplicativo AWS Transform web. | Cada usuário deve aceitar o convite para acessar o aplicativo AWS Transform web. Siga as instruções em [Aceitar o convite](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Faça login no aplicativo AWS Transform web. | Siga as instruções em [Fazer login em AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure um espaço de trabalho. | Configure um espaço de trabalho onde os usuários possam colaborar no aplicativo AWS Transform web. Siga as instruções em [Iniciar seu projeto](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) na AWS Transform documentação. | Administrador da AWS | 

### Transformar a aplicação de mainframe
<a name="transform-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um trabalho de transformação. | Crie um trabalho de transformação para modernizar o aplicativo de CardDemo mainframe. Para obter instruções, consulte [Criar e iniciar um trabalho](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) na AWS Transform documentação. Quando você for solicitado a definir os objetivos na interface de AWS Transform bate-papo, escolha **Executar modernização do mainframe (IBM z/OS to AWS)** e, em seguida, escolha **Analisar código, Gerar documentação técnica, Lógica de negócios, Decompor código, Planejar sequência de migração e Transformar** código em Java. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure o conector. | Estabeleça um conector para o bucket do Amazon S3 que contém o aplicativo de CardDemo mainframe. Esse conector permite AWS Transform acessar recursos no bucket e executar funções de transformação consecutivas. Para obter instruções, consulte [Configurar um conector](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) na AWS Transform documentação. | Administrador da AWS | 
| Realizar a análise do código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Análise de código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Gere documentação técnica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Gerar documentação técnica](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Extraia a lógica de negócios. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Extrair lógica de negócios](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Decomponha o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações sobre decomposição e sementes, consulte [Decomposição](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Planejar as ondas de migração. | Planeje as ondas de migração para o CardDemo aplicativo. Siga as instruções em [Planejamento de ondas de migração](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) na AWS Transform documentação para revisar e editar o plano de ondas. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Refatore o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| (Opcional) Use o Reforge para melhorar o código Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Simplifique a implantação. | AWS Transform pode fornecer modelos de infraestrutura como código (IaC) para CloudFormation AWS CDK, ou Terraform. Esses modelos ajudam você a implantar componentes principais, incluindo recursos de computação, banco de dados, armazenamento e segurança.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Recursos de implantação](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 

## Solução de problemas
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Você não consegue visualizar o código-fonte ou o documento gerado no aplicativo AWS Transform web. | Adicione uma política à permissão do CORS para que o bucket do Amazon S3 AWS Transform permita como origem. Para obter mais informações, consulte as [permissões CORS do bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) na AWS Transform documentação. | 

## Recursos relacionados
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS documentação**
+ [Transformação de aplicativos de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentação)

**Outros AWS recursos**
+ [Acelere sua jornada de modernização do mainframe usando agentes de IA com AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS postagem no blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [Centro de Identidade do AWS IAM FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Vídeos e tutoriais**
+ [Introdução ao Amazon Q Developer: Transform](https://explore.skillbuilder.aws/learn/courses/21893/aws-flash-introduction-to-amazon-q-developer-transform) (AWS Skill Builder)
+ [AWS re:Invent 2024 — Modernize aplicativos de mainframe com mais rapidez usando](https://www.youtube.com/watch?v=pSi0XtYfY4o) o Amazon Q Developer () YouTube
+ [AWS re:Invent 2024 - Automatizando a migração e a modernização para acelerar a transformação](https://www.youtube.com/watch?v=9FjxnEoH5wg) () YouTube
+ [AWS re:Invent 2024 - A Toyota impulsiona a inovação e aprimora a eficiência operacional](https://www.youtube.com/watch?v=_NXc1MJenw4) com a geração AI () YouTube

**nota**  
AWS Transform era conhecido anteriormente como *Amazon Q Developer transform for mainframe*.

# Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Sivasubramanian Ramani e Santosh Kumar Singh, Amazon Web Services*

## Resumo
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)pode acelerar a modernização em grande escala do.NET, mainframe e cargas de trabalho. VMware Ele implanta agentes de IA especializados que automatizam tarefas complexas, como avaliações, análise de código, refatoração, decomposição, mapeamento de dependências, validação e planejamento de transformação. [Esse padrão demonstra como usá-lo para AWS Transform modernizar um aplicativo de mainframe e depois implantá-lo na AWS infraestrutura usando o Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) Essas step-by-step instruções ajudam você a transformar [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que é um exemplo de aplicativo de mainframe de código aberto, de COBOL em um aplicativo Java moderno.

## Pré-requisitos e limitações
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Permissões administrativas para criar AWS recursos e implantar aplicativos
+ Terraform versão 1.5.7 ou posterior, [configurado](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Provedor para Terraform, configurado](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ Centro de Identidade do AWS IAM, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [habilitado](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Um usuário, [integrado a um AWS Transform espaço de](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) trabalho com uma função de colaborador que pode executar trabalhos de transformação

**Limitações**
+ AWS Transform está disponível apenas em alguns Regiões da AWS. Para obter uma lista completa das regiões aceitar, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte [Cotas para o AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da Centro de Identidade do AWS IAM mesma instância associada à sua instância do aplicativo AWS Transform web.
+ O bucket AWS Transform do Amazon Simple Storage Service (Amazon S3) deve estar na mesma região Conta da AWS .

## Arquitetura
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

O diagrama a seguir mostra a end-to-end modernização do aplicativo legado e a implantação no Nuvem AWS. As credenciais do aplicativo e do banco de dados são AWS Secrets Manager armazenadas e a Amazon CloudWatch fornece recursos de monitoramento e registro.

![\[O AWS Transform moderniza uma aplicação de mainframe e uma implantação por meio do Terraform.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Por meio de Centro de Identidade do AWS IAM, o usuário se autentica e acessa AWS Transform no. Conta da AWS

1. O usuário carrega o código do mainframe COBOL no bucket do Amazon S3 e inicia a transformação no AWS Transform.

1. AWS Transform moderniza o código COBOL em código Java nativo da nuvem e armazena o código modernizado no bucket do Amazon S3.

1. O Terraform cria a AWS infraestrutura para implantar o aplicativo modernizado, incluindo um Application Load Balancer, uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e o banco de dados Amazon Relational Database Service (Amazon RDS). O Terraform implanta o código modernizado na instância do Amazon EC2.

1. Os arquivos VSAM são enviados para o Amazon EC2 e migrados do Amazon EC2 para o banco de dados do Amazon RDS.

## Ferramentas
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Serviços da AWS**
+ O [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) oferece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente. Neste padrão, as instâncias do cluster de failover do SQL Server são instaladas nas instâncias do Amazon EC2.
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) aos seus Contas da AWS aplicativos e à nuvem.
+ 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 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.
+ 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 Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 

**Outras ferramentas**
+ O [Apache Maven](https://maven.apache.org/) é uma ferramenta de gerenciamento de projetos e automação de criação de software de código aberto para projetos Java.
+ O [Apache Tomcat](https://tomcat.apache.org/) é um contêiner Servlet de código aberto e servidor web para código Java.
+ 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 [Spring Boot](https://spring.io/projects/spring-boot) é um framework de código aberto baseado no Spring Framework em Java.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Esse padrão usa o aplicativo de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código aberto como um aplicativo de amostra.

## Práticas recomendadas
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Atribuir a propriedade total do código e dos recursos destinados para migração.
+ Desenvolver e testar uma prova de conceito antes de escalar para uma migração completa.
+ Garantir o comprometimento de todas as partes interessadas.
+ Estabelecer canais de comunicação claros.
+ Definir e documentar os requisitos de produto mínimo viável (MVP).
+ Estabelecer critérios claros de sucesso.

## Épicos
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Preparar e fazer o upload do código da aplicação de mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket. | Crie um bucket do Amazon S3 na mesma Conta da AWS região em que AWS Transform está habilitado. Você usa esse bucket para armazenar o código, os dados e os scripts adicionais do aplicativo de mainframe necessários para criar e executar o aplicativo. AWS Transform usa esse bucket para armazenar o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3. | AWS geral, administrador da AWS | 
| Defina as permissões de CORS para o bucket. | Ao configurar seu bucket para AWS Transform acesso, você precisa configurar o compartilhamento de recursos de origem cruzada (CORS) para o bucket. Se isso não estiver configurado corretamente, talvez você não consiga usar as funcionalidades de visualização em linha ou comparação de arquivos do AWS Transform. Para obter instruções sobre como configurar o CORS para um bucket, consulte [Usar o compartilhamento de recursos de origem cruzada](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) no bucket do Amazon S3. Para a política, consulte as [permissões CORS do bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) na AWS Transform documentação. | AWS geral, administrador da AWS | 
| Prepare o exemplo de código da aplicação de mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral, desenvolvedor de aplicativos | 

### Transformar a aplicação de mainframe
<a name="transform-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS Transform trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure um conector. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Transforme o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Implantar a infraestrutura por meio do Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize os modelos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Para ambientes de produção ou semelhantes aos de produção, configure componentes de segurança adicionais. Por exemplo, habilite [AWS WAF protections for your Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS geral, administrador da AWS | 
| Implantar a infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Instalar e configurar o Apache Tomcat na instância do Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o software necessário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Verifique a instalação de softwares. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Compilar e empacotar o código da aplicação modernizada
<a name="compile-and-package-the-modernized-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o download e extraia o código gerado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Crie uma aplicação modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Migrar o bancos de dados
<a name="migrate-the-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados e os esquemas JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Valide a criação de banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Migre dados para o banco de dados JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Instalar a aplicação modernizada
<a name="install-the-modernized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a aplicação modernizada na instância do Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Reinicie o servidor Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Migre o conjunto de dados do VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Atualize os parâmetros nos scripts do Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a aplicação modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de testes | 
| Verifique os scripts em lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de testes | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar para excluir a infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral | 
| Exclua a infraestrutura. | Essas etapas excluirão permanentemente seus recursos. Certifique-se de ter feito backup de todos os dados importantes antes de continuar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral | 

## Solução de problemas
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Autenticação do Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Erros relacionados ao Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| O nome do URL não está carregando | Certifique-se de que o grupo de segurança do Application Load Balancer tenha seu endereço IP na regra de entrada como fonte. | 
| Problema de autenticação no log do Tomcat | Confirme se a senha secreta do banco de dados AWS Secrets Manager e a senha em **server.xml** coincidem. | 

## Recursos relacionados
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Orientação prescritiva**
+ [Modernize o aplicativo de CardDemo mainframe usando o AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentação de serviço**
+ [AWS Console de administração Blusam Blue Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisitos de configuração de infraestrutura para o AWS Blu Age Runtime (não gerenciado)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Integração do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernização de aplicativos de mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configurar o AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS postagens no blog**
+ [Acelere sua jornada de modernização do mainframe usando agentes de IA com AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o LRS X PageCenter
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx"></a>

*Shubham Roy, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray e Shoup Inc*

## Resumo
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Ao modernizar seu gerenciamento de produção de mainframe, você pode obter economia de custos, reduzir a dívida técnica de manter sistemas legados e melhorar a resiliência e a agilidade por meio de tecnologias nativas em nuvem da Amazon Web DevOps Services (AWS). Esse padrão mostra como modernizar suas workloads de gerenciamento de saída de mainframe essenciais para os negócios na Nuvem AWS. O padrão usa o [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) como tempo de execução para um aplicativo de mainframe modernizado, com a Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) como servidor de impressão e o PageCenter LRS X como servidor de arquivamento. O LRS PageCenter X fornece soluções de gerenciamento de resultados para visualização, indexação, pesquisa, arquivamento e proteção do acesso aos resultados comerciais.

O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Os aplicativos de mainframe são migrados pela [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) na Amazon Elastic Compute Cloud (Amazon). EC2 As cargas de trabalho de gerenciamento de saída do mainframe são migradas para a Amazon EC2, e um banco de dados de mainframe, como o IBM Db2 for), funciona com o AWS z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS Directory Service for Microsoft Active Directory para autenticação e autorização do fluxo de trabalho de gerenciamento de saída.

## Pré-requisitos e limitações
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de saída de mainframe.
+ Conhecimento básico de como reconstruir e fornecer uma aplicação de mainframe executado no Rocket Enterprise Server. Para obter mais informações, consulte a planilha de dados do [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) na documentação do Rocket Software.
+ Conhecimento básico das soluções e conceitos de impressão em nuvem da LRS. Para obter mais informações, consulte *Modernização de saída* na documentação do LRS.
+ Software e licença do Rocket Enterprise Server. Para obter mais informações, consulte [Rocket Software](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISSoftware e licenças do LRS. Para obter mais informações, [entre em contato com LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados.


| 
| 
| Observação: para obter mais informações sobre considerações de configuração para workloads de gerenciamento de saída de mainframe, consulte *Considerações* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) deste padrão. | 
| --- |

**Versões do produto**
+ [Rocket Enterprise Server 10.0](https://www.rocketsoftware.com/products/enterprise-suite/enterprise-test-server)
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/)
+ [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) V1R3 ou posterior

## Arquitetura
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Banco de dados: IBM Db2 for z/OS, banco de dados IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Segurança — Instalação de Controle de Acesso a Recursos (RACF), CA Top Secret para z/OS e Instalação de Controle de Acesso 2 () ACF2
+ Soluções de impressão e arquivamento — produtos de z/OS saída e impressão de mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA Deliver) e soluções de arquivamento (CA Deliver, ASG Mobius ou CA Bundle)

**Arquitetura de origem**

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de gerenciamento de saída de mainframe.

![\[Processo de saída do mainframe em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM Db2 for z/OS.

1. O SoR persiste os dados comerciais do SoE.

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para gerar a saída de impressão.

1. O trabalho em lotes extrai dados do banco de dados. Ele formata os dados de acordo com os requisitos comerciais e, em seguida, gera resultados comerciais, como extratos de cobrança, carteiras de identidade ou extratos de empréstimos. Por fim, o trabalho em lotes encaminha a saída para o gerenciamento de saída para formatação, publicação e armazenamento da saída com base nos requisitos comerciais.

1. O gerenciamento de saída recebe a saída do trabalho em lotes. O gerenciamento de saída indexa, organiza e publica a saída em um destino específico no sistema de gerenciamento de saída, como as soluções LRS PageCenter X (conforme demonstrado nesse padrão) ou o CA View.

1. Os usuários podem visualizar, pesquisar e recuperar a saída.

**Pilha de tecnologias de destino**
+ Sistema operacional — Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Armazenamento — Amazon Elastic Block Store (Amazon EBS) e FSx Amazon para Windows File Server
+ Linguagem de programação: COBOL, JCL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Impressão e arquivamento — solução de impressão LRS (VPSX) e arquivamento (PageCenterX) na AWS
+ Ambiente runtime de mainframe: Rocket Enterprise Server

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de gerenciamento de saída de mainframe que é implantada na Nuvem AWS.

![\[Arquitetura de destino para gerenciamento de aplicações e resultados em lote em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para criar resultados, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O trabalho em lote do mainframe ([reformulado para a Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Rocket Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica de negócios aos dados e formatar os dados. Em seguida, ele envia os dados para um destino de saída usando o [módulo de saída da impressora Rocket Software](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) (documentação da OpenText Micro Focus).

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon EBS. O LRS VPSX/MFI usa o agente TCP/IP-based LRS/Queue de transmissão para coletar dados de saída por meio da API JES Print Exit da Rocket Software.

   O LRS VPSX/MFI faz o pré-processamento de dados, como a tradução de EBCDIC para ASCII. Ele também executa tarefas mais complexas, incluindo a conversão de fluxos de dados exclusivos do mainframe, como IBM Advanced Function Presentation (AFP) e Xerox Line Conditioned Data Stream (LCDS), em fluxos de dados de visualização e impressão mais comuns, como Printer Command Language (PCL) e PDF.

   Durante a janela de manutenção do LRS PageCenter X, o LRS VPSX/MFI persiste na fila de saída e serve como backup para a fila de saída. O LRS VPSX/MFI conecta e envia a saída para o LRS PageCenter X usando o LRS/Queue protocolo. LRS/Queue realiza uma troca de prontidão e conclusão dos trabalhos para ajudar a garantir que a transferência de dados ocorra.

   **Observações:**

   Para obter mais informações sobre dados de impressão transmitidos do Rocket Software Print Exit LRS/Queue e mecanismos de lote de mainframe VPSX/MFI suportados pelo LRS, consulte *Captura de dados de impressão* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   O LRS VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) desse padrão.

1. A solução de gerenciamento de saída LRS PageCenter X é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon FSx for Windows File Server. O LRS PageCenter X fornece um sistema central de gerenciamento de relatórios de todos os arquivos importados para o LRS PageCenter X junto com todos os usuários capazes de acessar os arquivos. Os usuários podem visualizar o conteúdo específico do arquivo ou realizar pesquisas em vários arquivos para verificar os critérios correspondentes.

   O LRS/NetX componente é um servidor de aplicativos web de vários segmentos que fornece um ambiente de execução comum para o aplicativo LRS PageCenter X e outros aplicativos LRS. O componente LRS/Web Connect é instalado em seu servidor web e fornece um conector do servidor web para o servidor de aplicativos LRS/NetX web.

1. O LRS PageCenter X fornece armazenamento para objetos do sistema de arquivos. Os dados operacionais do LRS PageCenter X são armazenados no Amazon FSx for Windows File Server.

1. A autenticação e autorização do gerenciamento de saída são realizadas pelo AWS Managed Microsoft AD com LRS/DIS.

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM AFP ou Xerox LCDS.

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de gerenciamento de saída de mainframe.

![\[Infraestrutura AWS Multi-AZ com um fluxo de trabalho em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de lotes inicia o processo em lote e é implantado na Amazon EC2 em várias [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para alta disponibilidade (HA).
**nota**  
Este padrão não abrange a implementação do agendador de lotes. Para obter mais informações sobre implementação, consulte a documentação do fornecedor de software para o agendador.

1. O trabalho em lote do mainframe (escrito em uma linguagem de programação como JCL ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O trabalho em lote é implantado na Amazon EC2 em duas zonas de disponibilidade para HA. Ele usa a API de saída de impressão da Rocket Software para rotear a saída de impressão para o LRS VPSX/MFI para pré-processamento de dados.

1. O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA (par redundante ativo em espera). Ele usa o [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como um armazenamento de dados operacional. O Network Load Balancer executa uma verificação de integridade nas instâncias do VPSX/MFI EC2 LRS. Se uma instância ativa não estiver íntegra, o balanceador de carga encaminha o tráfego para instâncias standby a quente na outra zona de disponibilidade. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de falha, uma instância com falha deve ser reiniciada antes que os serviços do LRS possam retomar o processamento da solicitação de impressão.
**nota**  
O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) desse padrão.

1. O gerenciamento de saída do LRS PageCenter X é implantado na Amazon EC2 em duas zonas de disponibilidade para HA (par redundante ativo em espera). Ele usa o [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) como um armazenamento de dados operacional. Se uma instância ativa não estiver íntegra, o balanceador de carga executará uma verificação de integridade nas instâncias do LRS PageCenter X e encaminhará o tráfego para EC2 instâncias em espera na outra zona de disponibilidade.

1. Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o servidor LRS com o LRS VPSX/MFI X. PageCenter
**nota**  
O LRS PageCenter X oferece suporte a um balanceador de carga de camada 4.

1. O LRS PageCenter X usa o Amazon FSx for Windows File Server como um armazenamento de dados operacional implantado em duas zonas de disponibilidade para HA. O LRS PageCenter X compreende somente os arquivos que estão no compartilhamento de arquivos, não em um banco de dados externo.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) é usado com o AWS LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de gerenciamento de saída. Para obter mais informações, consulte *Autenticação e autorização de saída de impressão* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Ferramentas
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Serviços da AWS**
+ O [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) permite que cargas de trabalho com reconhecimento de diretório e recursos da AWS usem o Microsoft Active Directory na Nuvem AWS.
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ [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.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre EC2 instâncias, contêineres e endereços IP da Amazon em uma ou mais zonas de disponibilidade. Esse padrão usa um Network Load Balancer.
+  FSxA [Amazon](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornece sistemas de arquivos que suportam protocolos de conectividade padrão do setor e oferecem alta disponibilidade e replicação em todas as regiões da AWS. Esse padrão usa o Amazon FSx para Windows File Server.
+ 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.

**Outras ferramentas**
+ O software [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) fornece uma solução escalável de gerenciamento de conteúdo de documentos e relatórios que ajuda os usuários a obter o máximo valor das informações por meio de indexação automatizada, criptografia e recursos avançados de pesquisa.
+ O [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), desenvolvido em conjunto pela LRS e pela Rocket Software, captura a saída de um spool JES da Rocket Software e a entrega de forma confiável a um destino de impressão especificado.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queuepara coletar ou capturar dados de impressão por meio da interface de programação JES Print Exit da Rocket Software.
+ O LRS Directory Integration Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ O [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) é um ambiente de implantação de aplicações para aplicações de mainframe. Ele fornece o ambiente de runtime para aplicações de mainframe que são migrados ou criados usando qualquer versão do Rocket Enterprise Developer.

## Épicos
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configurar o runtime do Rocket e implantar uma aplicação em lote de mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o runtime e implante um aplicativo de demonstração. | [Para configurar o Rocket Enterprise Server na Amazon EC2 e implantar o aplicativo de BankDemo demonstração da Rocket Software, siga as instruções no guia do usuário do AWS Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html)O BankDemo aplicativo é um aplicativo em lote de mainframe que cria e, em seguida, inicia a saída de impressão. | Arquiteto de nuvem | 

### Configurar um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância EC2 do Amazon Windows. | Para iniciar uma instância EC2 do Amazon Windows, siga as instruções em [Iniciar uma EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) na EC2 documentação da Amazon. Use o mesmo nome de host que você usou para sua licença de produto LRS.Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | O LRS/DIS produto geralmente está incluído na instalação do LRS VPSX. No entanto, se LRS/DIS não foi instalado junto com o LRS VPSX, use as seguintes etapas para instalá-lo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um grupo de destino. | Crie um grupo de destino seguindo as instruções em [Criar um grupo de destino para o Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Ao criar o grupo de destino, registre a VPSX/MFI EC2 instância do LRS como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Para criar o Network Load Balancer, siga as instruções na [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Seu Network Load Balancer roteia o tráfego do Rocket Enterprise Server para a instância do LRS. VPSX/MFI EC2 Ao criar o Network Load Balancer, escolha os seguintes valores na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Integre o Rocket Enterprise Server com um LRS LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure o Rocket Enterprise Server para integração com o LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar a fila de impressão e os usuários de impressão
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Associe o módulo Rocket Software Print Exit ao processo de execução do servidor da impressora em lote Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie uma fila de saída de impressão no LRS VPSX/MFI e integre-a ao LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar um servidor LRS PageCenter X na Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância EC2 do Amazon Windows. | Execute uma instância EC2 do Amazon Windows seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon. Use o mesmo nome de host que você usou para sua licença de produto LRS.Sua instância deve atender aos seguintes requisitos de hardware e software para o LRS PageCenter X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS PageCenter X na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | O LRS/DIS produto geralmente está incluído na instalação do LRS VPSX. No entanto, se LRS/DIS não foi instalado junto com o LRS VPSX, use as seguintes etapas para instalá-lo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um grupo de destino. | Crie um grupo de destino seguindo as instruções em [Criar um grupo de destino para o Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Ao criar o grupo de destino, registre a EC2 instância do LRS PageCenter X como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Para criar o Network Load Balancer, siga as instruções na [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Seu Network Load Balancer roteia o tráfego do LRS VPSX/MFI para a instância do LRS X. PageCenter EC2 Ao criar o Network Load Balancer, escolha os seguintes valores na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar recursos de gerenciamento de saída no LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Ative a função Importar no LRS X. PageCenter | Você pode usar a função LRS PageCenter X Import para reconhecer as saídas que chegam ao LRS PageCenter X por critérios como Job name ou Form ID. Em seguida, você pode rotear as saídas para pastas específicas no PageCenter LRS X.Para habilitar a função de importação, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure a política de retenção de documentos. | O LRS PageCenter X usa uma política de retenção de documentos para decidir por quanto tempo manter um documento no PageCenter LRS X.Para configurar a política de retenção de documentos, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie uma regra para rotear o documento de saída para uma pasta específica no LRS PageCenter X. | No LRS PageCenter X, o **Destino** determina o caminho da pasta para onde a saída será enviada quando esse destino for chamado pela Definição de **Relatório**. Neste exemplo, crie uma pasta com base na pasta **ID do formulário** na definição do relatório e salve a saída nessa pasta.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar uma definição de relatório. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar autenticação e autorização para gerenciamento de saída
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Associe as EC2 instâncias a um domínio do AWS Managed Microsoft AD. | Associe as EC2 instâncias LRS VPSX/MFI e LRS PageCenter X ao seu domínio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD para a EC2 instância LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure um grupo de importação para importar a saída do LRS VPSX para o LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Adicione um regra de segurança ao grupo de importação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie um usuário no LRS PageCenter X para realizar a importação de saída do LRS VPSX/MFI.  | Quando você cria um usuário no LRS PageCenter X para realizar a importação de saída, o nome de usuário deve ser o mesmo que o **ID VPSX** da fila de saída de impressão no LRS VPSX/MFI. Neste exemplo, o ID do VPSX é. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Adicione o usuário do LRS PageCenter X Import ao grupo Somente importação. | Para fornecer a permissão necessária para a importação de documentos do LRS VPSX para o LRS PageCenter X, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure LRS/DIS com o AWS Managed Microsoft AD para a VPSX/MFI EC2 instância LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configure o Amazon FSx para Windows File Server como o armazenamento de dados operacional para o LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um sistema de arquivos para o LRS X. PageCenter | Para usar o Amazon FSx para Windows File Server como um armazenamento de dados operacional para o LRS PageCenter X em um ambiente Multi-AZ, siga as instruções na [Etapa 1: Crie seu sistema de arquivos](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Arquiteto de nuvem | 
| Mapeie o compartilhamento de arquivos para a EC2 instância do LRS PageCenter X. | Para mapear o compartilhamento de arquivos criado na etapa anterior para a EC2 instância do LRS PageCenter X, siga as instruções na [Etapa 2: Mapear seu compartilhamento de arquivos para uma EC2 instância executando o Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Arquiteto de nuvem | 
| Mapeie o Diretório de Controle e o Diretório de Pastas Mestras do LRS PageCenter X para a unidade de compartilhamento FSx de rede da Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de gerenciamento de saída
<a name="test-an-output-management-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão em lote a partir do aplicativo Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Engenheiro de testes | 
| Verifique a saída de impressão no LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-resources"></a>
+ [LRS](https://www.lrsoutputmanagement.com/products/modernization-products)
+ [Fluxo de dados de apresentação de funções avançadas](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (publicação no blog)
+ [Modernize suas workloads de impressão on-line de mainframe na AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) (Recomendações da AWS)
+ [Modernize suas workloads de impressão em lote de mainframe na AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) (Recomendações da AWS)

## Mais informações
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações para processos on-line e em lote de mainframe e a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o fluxo de dados IBM AFP ou o Xerox LCDS ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.  

**Captura de dados de impressão**

O Rocket Software Print Exit passa as informações necessárias para que o LRS processe VPSX/MFI com eficácia o arquivo spool. As informações consistem em campos passados nos blocos de controle relevantes, como:
+ JOBNAME (NOME DA FUNÇÃO)
+ PROPRIETÁRIO (ID DO USUÁRIO)
+ DESTINATION (DESTINO)
+ FORMULÁRIO
+ FILENAME (NOME DO ARQUIVO)
+ WRITER (GRAVADOR)

O LRS VPSX/MFI suporta os seguintes mecanismos de lote de mainframe para capturar dados do Rocket Enterprise Server:
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL DD/OUTPUT SYSOUT padrão.
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL CA-SPOOL SUBSYS DD padrão.
+ IMS/COBOL print/spoolprocessamento usando a interface CBLTDLI. Para obter uma lista completa dos métodos suportados e exemplos de programação, consulte a documentação do LRS incluída na licença do produto.

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS incluída na licença do produto.

**Autorização e autenticação de impressão **

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or a Lightweight Directory Access Protocol (LDAP) server. In addition to basic print authorization, LRS/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais—por exemplo, segurança em nível de comando, como suspender ou liberar, eliminar, modificar, copiar e redirecionar. A segurança pode ser configurada pela ID do usuário ou pelo grupo, semelhante a um grupo de segurança do Active Directory ou um grupo LDAP.

## Anexos
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernize as cargas de trabalho de impressão em lote do mainframe AWS usando o Rocket Enterprise Server e o LRS VPSX/MFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy e Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray e Shoup Inc*

## Resumo
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Esse padrão mostra como modernizar suas cargas de trabalho de impressão em lote de mainframe essenciais para os negócios na nuvem da Amazon Web Services (AWS) usando o Rocket Enterprise Server como tempo de execução para um aplicativo de mainframe modernizado e o LRS VPSX/MFI (Micro Focus Interface) como servidor de impressão. O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Nessa abordagem, você migra seus trabalhos em lote de mainframe para o Amazon Elastic Compute Cloud (Amazon EC2) e migra seu banco de dados de mainframe, como IBM ( DB2 forz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS), integrado ao AWS Managed Microsoft AD. Ao modernizar suas cargas de trabalho de impressão em lote, você pode reduzir os custos de infraestrutura de TI, mitigar a dívida técnica de manter sistemas legados, remover silos de dados, aumentar a agilidade e a eficiência com um DevOps modelo e aproveitar os recursos sob demanda e a automação na nuvem da AWS.

## Pré-requisitos e limitações
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de impressão ou saída de mainframe
+ Conhecimento básico de como reconstruir e fornecer uma aplicação de mainframe executado no Rocket Enterprise Server (para obter mais informações, consulte a planilha de dados do [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) na documentação da Rocket.)
+ Conhecimento básico das soluções e conceitos de [impressão em nuvem da LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/).
+ Software e licença do Rocket Enterprise Server (Para obter mais informações, entre em contato com a [equipe de vendas da Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact).)
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenças do LRS (para obter mais informações, entre em contato com a equipe de vendas do [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**nota**  
Para obter mais informações sobre considerações de configuração para workloads de impressão em lote de mainframe, consulte *Considerações* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) deste padrão.

**Versões do produto**
+ [Rocket Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 6.0 (atualização do produto 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) ou superior

## Arquitetura
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Banco de dados — IBM DB2 for z/OS and Virtual Storage Access Method (VSAM)
+ Segurança — Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gerenciamento de impressão e saída — produtos de z/OS impressão em mainframe IBM (IBM Tivoli Output Manager for z/OS, LRS e CA View)

**Pilha de tecnologias de destino**
+ Sistema operacional — Microsoft Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Linguagem de programação: COBOL, JCL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Gerenciamento de impressão e produção: solução de impressão LRS na AWS
+ Ambiente runtime de mainframe: Rocket Enterprise Server

**Arquitetura de origem **

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de impressão em lote de mainframe:

![\[Do usuário ao serviço de mainframe, Db2 for z/OS, agendador de tarefas, trabalho em lotes e saída em seis etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM for z/OS. DB2 

1. O SoR persiste os dados comerciais do SoE.

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para gerar a saída de impressão.

1. O trabalho em lotes extrai dados do banco de dados, formata os dados de acordo com os requisitos comerciais e, em seguida, gera resultados comerciais, como extratos de cobrança, cartões de identificação ou extratos de empréstimos. Por fim, o trabalho em lotes direciona a saída para o gerenciamento da saída de impressão para processamento e entrega da saída, com base nos requisitos comerciais. 

1. O gerenciamento da saída de impressão recebe a saída de impressão do trabalho em lote e, em seguida, entrega essa saída para um destino específico, como e-mail, um compartilhamento de arquivos que usa FTP seguro, uma impressora física que usa soluções de impressão LRS (conforme demonstrado nesse padrão) ou IBM Tivoli.

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de impressão em lote de mainframe que é implantada na nuvem AWS:

![\[Aplicação em lote na AWS com agendador, Rocket Enterprise Server e banco de dados em quatro etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O programador de trabalhos em lotes inicia um trabalho em lotes para criar resultados de impressão, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O trabalho em lote do mainframe ([reformatado para a Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Rocket Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica comercial aos dados, formatar os dados e, em seguida, enviar os dados para um destino de impressão usando o [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (documentação da Micro Focus).

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon Elastic Block Store (Amazon EBS). O LRS VPSX/MFI usa o agente TCP/IP-based LRS/Queue de transmissão para coletar dados de impressão por meio da API de saída de impressão JES da Rocket Software e entregar os dados a um destino de impressora especificado.

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Para obter mais informações sobre como usar o Rocket Software para a migração e a modernização de aplicações de mainframe na AWS, consulte a publicação no blog [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de impressão em lote de mainframe:

![\[Implantação Multi-AZ na AWS com componentes Rocket Software e LRS em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de lotes inicia o processo em lote e é implantado na Amazon EC2 em várias [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para alta disponibilidade (HA). 
**nota**  
Este padrão não abrange a implementação do agendador de lotes. Para obter mais informações sobre implementação, consulte a documentação do fornecedor de software para o agendador.

1. O trabalho em lote do mainframe (escrito em uma linguagem de programação como JCL ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O trabalho é implantado na Amazon em duas EC2 zonas de disponibilidade para HA e usa o Rocket Software Print Exit para encaminhar a saída de impressão para o LRS VPSX/MFI para impressão do usuário final.

1. O LRS VPSX/MFI usa um TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Rocket Software JES Print Exit programming interface. Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the spool file and dynamically build LRS/Queue comando. Os comandos são então executados usando uma função integrada padrão da Rocket Software. 
**nota**  
Para obter mais informações sobre dados de impressão transmitidos do Rocket Software Print Exit LRS/Queue e mecanismos de lote de mainframe VPSX/MFI suportados pelo LRS, consulte *Captura de dados de impressão* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. 
**nota**  
Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o Rocket Enterprise Server ao LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI e roteia o tráfego para os alvos registrados que estão íntegros.

1. 
**nota**  
O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA e usa o [Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) como um armazenamento de dados operacional. O LRS VPSX/MFI suporta os modos de serviço ativo-ativo e ativo-passivo. Essa arquitetura usa vários AZs em um par ativo-passivo como espera ativa e ativa. O Network Load Balancer executa uma verificação de integridade nas VPSX/MFI EC2 instâncias do LRS e encaminha o tráfego para instâncias de espera ativa na outra AZ se uma instância ativa estiver em um estado não íntegro. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de recuperação, uma instância com falha precisa ser reiniciada para que os serviços do LRS retomem o processamento da solicitação de impressão. : O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de impressão. Para obter mais informações, consulte *Autenticação e autorização de impressão* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. O LRS VPSX/MFI usa o Amazon EBS para armazenamento em blocos. Você pode fazer backup de dados do Amazon EBS de EC2 instâncias ativas para o Amazon S3 point-in-time como snapshots e restaurá-los em volumes do EBS em espera ativa. Para automatizar a criação, retenção e exclusão de snapshots de volume do Amazon EBS, você pode usar o [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para definir a frequência dos snapshots automatizados e restaurá-los com base em seus [requisitos de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Ferramentas
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Serviços da AWS**
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias. EC2 Os volumes do EBS se comportam como dispositivos de bloco brutos e não formatados. É possível montar esses volumes como dispositivos em suas instâncias.
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável na Nuvem AWS. Você pode usar EC2 a Amazon para lançar quantos servidores virtuais precisar e pode expandir ou aumentar a escala.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) é um serviço web que facilita a configuração, operação e dimensionamento de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional e gerencia tarefas comuns de administração de banco de dados.
+ O [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), também conhecido como AWS Managed Microsoft AD, permite que workloads com reconhecimento de diretório e recursos da AWS usem o Microsoft Active Directory na Nuvem AWS.

**Outras ferramentas**
+ O [LRS VPSX/MFI (Interface do Micro Focus)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), desenvolvido em conjunto pela LRS e pela Rocket Software, captura a saída de um spool JES do Rocket Enterprise Server e a entrega de forma confiável a um destino de impressão especificado.
+ O LRS Directory Information Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIpara coletar ou capturar dados de impressão por meio da interface de programação JES Print Exit da Rocket Software.
+ O [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) é um ambiente de implantação de aplicações para aplicações de mainframe. Ele fornece o ambiente de execução para aplicações de mainframe que são migradas ou criadas usando qualquer versão do Rocket Software Enterprise Developer.

## Épicos
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configure o Rocket Enterprise Server na Amazon EC2 e implante um aplicativo em lote de mainframe
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server e implante uma aplicação de demonstração. | Configure o Rocket Enterprise Server na Amazon e EC2, em seguida, implante o aplicativo de BankDemo demonstração do Rocket Software na Amazon. EC2O BankDemo aplicativo é um aplicativo em lote de mainframe que cria e, em seguida, inicia a saída de impressão. | Arquiteto de nuvem | 

### Configure um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença de produto LRS para impressão. | Para obter uma licença de produto LRS para o LRSVPSX/MFI, LRS/Queue, and LRS/DIS, entre em contato com a equipe de gerenciamento de [saída do LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados. | Crie um lead | 
| Crie uma instância EC2 do Amazon Windows para instalar o LRS VPSX/MFI. | Execute uma instância EC2 do Amazon Windows seguindo as instruções em [Iniciar uma EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) na EC2 documentação da Amazon. Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.Ao criar sua instância do Windows, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um grupo-alvo e registre o LRS VPSX/MFI EC2 como alvo. | Crie um grupo de destino seguindo as instruções de [Criar um grupo de destino para seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) na documentação do Elastic Load Balancing.Ao criar o grupo de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Siga as instruções de [Criar um Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) na documentação do Elastic Load Balancing. Seu Network Load Balancer direciona o tráfego do Rocket Enterprise Server para o LRS. VPSX/MFI EC2Ao criar o Network Load Balancer, faça o seguinte na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Integre o Rocket Enterprise Server com LRS e LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Atualmente, o LRS suporta um limite máximo de 50 caracteres para nomes DNS, mas isso está sujeito a alterações no futuro. Se seu nome DNS for maior que 50, você poderá usar o endereço IP do Network Load Balancer como alternativa. | Arquiteto de nuvem | 
| Configure o Rocket Enterprise Server para integração com o LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar impressoras e usuários de impressão no Rocket Enterprise Server e no LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Associe o módulo Rocket Software Print Exit ao processo de execução do servidor da impressora em lote Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Para obter mais informações sobre configuração, consulte [Usando a saída](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) na documentação da Micro Focus. | Arquiteto de nuvem | 
| Adicione uma impressora no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar autorização e autenticação de impressão
<a name="set-up-print-authentication-and-authorization"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Associe o LRS VPSX/MFI EC2 a um domínio Microsoft AD gerenciado pela AWS. | Associe o LRS VPSX/MFI EC2 ao seu domínio AWS Managed Microsoft AD [automaticamente](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de impressão
<a name="test-a-print-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão em lote a partir do aplicativo Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Engenheiro de testes | 
| Verifique a saída de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Agora você pode ver a saída impressa de um extrato de conta com colunas para o **Número da conta.**, **Descrição**, **Data**, **Valor** e **Saldo**. Para ver um exemplo, consulte o anexo **batch\$1print\$1output** desse padrão. | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernização da saída do LRS](https://www.lrsoutputmanagement.com/) (documentação do LRS)
+ [ANSI e controles de transporte de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentação da IBM)
+ [Palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) (documentação da IBM)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog da rede de parceiros da AWS)
+ [Crie um PAC do Micro Focus Enterprise Server com o Amazon EC2 Auto Scaling e o Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) (documentação do AWS Prescriptive Guidance)
+ [Fluxo de dados de apresentação de funções avançadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)

## Mais informações
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações tanto para os processos em lote do mainframe quanto para a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o IBM Advanced Function Presentation (AFP) ou o Xerox Line Condition Data Stream (LCDS) ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.

**Captura de dados de impressão**

O Rocket Software Print Exit passa as informações necessárias para permitir que o LRS processe VPSX/MFI com eficácia o arquivo spool. As informações consistem em campos passados nos blocos de controle relevantes, como:
+ JOBNAME (NOME DA FUNÇÃO)
+ PROPRIETÁRIO (ID DO USUÁRIO)
+ DESTINATION (DESTINO)
+ FORMULÁRIO
+ FILENAME (NOME DO ARQUIVO)
+ WRITER (GRAVADOR)

O LRS VPSX/MFI suporta os seguintes mecanismos de lote de mainframe para capturar dados do Rocket Enterprise Server.
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL SYSOUT padrão DD/OUTPUT 
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL CA-SPOOL SUBSYS DD padrão
+ IMS/COBOL print/spoolprocessamento usando a interface CBLTDLI (para obter uma lista completa dos métodos suportados e exemplos de programação, consulte a documentação do LRS incluída na licença do produto.)

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS que está incluída na sua licença de produto.

**Autorização e autenticação de impressão **

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais. Por exemplo, segurança em nível de comando, como suspender/liberar, limpar, modificar, copiar e redirecionar. A segurança pode ser configurada pelo ID do usuário ou pelo grupo (semelhante ao grupo AD ou grupo LDAP).** **

## Anexos
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernização do mainframe: DevOps iniciada AWS com o Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Resumo
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Desafios do cliente**

Organizações que executam aplicativos principais em hardware de mainframe geralmente enfrentam alguns desafios quando o hardware precisa ser expandido para atender às demandas das inovações digitais. Esses desafios incluem as seguintes restrições. 
+ Os ambientes de desenvolvimento e teste de mainframe não conseguem escalar devido à inflexibilidade dos componentes de hardware do mainframe e ao alto custo da mudança.
+ O desenvolvimento de mainframe está enfrentando escassez de habilidades, porque os novos desenvolvedores não estão familiarizados e não estão interessados nas ferramentas tradicionais de desenvolvimento de mainframe. Tecnologias modernas, como contêineres, pipelines de integration/continuous entrega contínua (CI/CD) e estruturas de teste modernas, não estão disponíveis no desenvolvimento de mainframe.

**Resultados do padrão**

Para enfrentar esses desafios, a Amazon Web Services (AWS) e a Rocket Software Micro Focus, uma parceira AWS Partner Network (APN), colaboraram para criar esse padrão. A solução foi projetada para ajudar você a alcançar os seguintes resultados.
+ Produtividade aprimorada do desenvolvedor Os desenvolvedores podem receber novas instâncias de desenvolvimento de mainframe em minutos.
+ Uso do Nuvem AWS para criar novos ambientes de teste de mainframe com capacidade praticamente ilimitada.
+ Provisionamento rápido da nova infraestrutura de mainframe CI/CD . O provisionamento AWS pode ser concluído em uma hora usando e. AWS CloudFormation AWS Systems Manager
+ Uso nativo de AWS DevOps ferramentas para desenvolvimento de mainframe, incluindo, AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, e Amazon Elastic Container Registry (Amazon ECR).
+ Transforme o desenvolvimento tradicional em cascata em desenvolvimento ágil em projetos de mainframe.

**Resumo das tecnologias**

Nesse padrão, a pilha de destino contém os seguintes componentes.


| 
| 
| Componentes lógicos | Soluções de implementação | Description | 
| --- |--- |--- |
| Repositórios de código-fonte |  AccuRev Servidor Rocket Software CodeCommit, Amazon ECR  | Gerenciamento de código-fonte: a solução usa dois tipos de código-fonte: Código-fonte do mainframe, por exemplo, COBOL e JCL. AWS modelos de infraestrutura e scripts de automação Ambos os tipos de código-fonte precisam de controle de versão, mas são gerenciados de forma diferente SCMs. O código-fonte implantado no mainframe ou nos servidores corporativos da Rocket Software é gerenciado no Rocket Software Micro Focus Server. AccuRev AWS modelos e scripts de automação são gerenciados em CodeCommit. O Amazon ECR é usado para os repositórios de imagem do Docker.  | 
| Instâncias de desenvolvedores corporativos | Amazon Elastic Compute Cloud (Amazon EC2), desenvolvedor corporativo da Rocket Software para Eclipse | Os desenvolvedores de mainframe podem desenvolver código na Amazon EC2 usando o Rocket Software Enterprise Developer for Eclipse. Isso elimina a necessidade de depender do hardware do mainframe para escrever e testar o código.  | 
| Gerenciamento de licenças do Rocket Software Enterprise Suite | Rocket Software Enterprise Suite License Manager | Para gerenciamento e governança centralizados de licenças do Rocket Software Enterprise Suite, a solução usa o Rocket Software Enterprise Suite License Manager para hospedar a licença necessária. | 
| Pipelines de CI/CD | CodePipeline,, CodeBuild CodeDeploy, Rocket Software Enterprise Developer em um contêiner, Rocket Software Enterprise Test Server em um contêiner, Rocket Software Micro Focus Enterprise Server | As equipes de desenvolvimento de mainframe precisam de CI/CD pipelines para realizar compilação de código, testes de integração e testes de regressão. Em AWS, CodePipeline e CodeBuild pode trabalhar com o Rocket Software Enterprise Developer e o Enterprise Test Server em um contêiner nativamente. | 

## Pré-requisitos e limitações
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Pré-requisitos **


| 
| 
| Name (Nome) | Description | 
| --- |--- |
| py3270 | py3270 é uma interface Python para x3270, um emulador de terminal IBM 3270. Ele fornece uma API para um subprocesso x3270 ou s3270. | 
| x3270 | O x3270 é um emulador de terminal IBM 3270 para o X Window System e Windows.  Isso pode ser usado pelo desenvolvedor para teste de unidade localmente. | 
| Robot-Framework-Mainframe-3270-Biblioteca | O Mainframe3270 é uma biblioteca para Robot Framework baseada no projeto py3270. | 
| Rocket Software Verastream | O Rocket Software Verastream é uma plataforma de integração que permite testar ativos de mainframe da mesma forma que aplicações móveis, aplicações web e serviços web SOA são testados. | 
| Instalador e licença do Rocket Software Unified Functional Testing (UFT) | O Rocket Software Unified Functional Testing é um software que fornece automação de testes funcionais e de regressão para aplicações e ambientes de software. | 
| Instalador e licença do Rocket Software Enterprise Server | O Enterprise Server fornece o ambiente de runtime para aplicativos de mainframe. | 
| Instalador e licença do Rocket Software Enterprise Test Server | O Rocket Software Enterprise Test Server é um ambiente de teste de aplicações de mainframe IBM. | 
|  AccuRev Instalador e licença do Rocket Software para servidor e instalador e licença da Rocket Software Micro Focus AccuRev para sistemas operacionais Windows e Linux  | AccuRev fornece gerenciamento de código-fonte (SCM). O AccuRev sistema foi projetado para ser usado por uma equipe de pessoas que estão desenvolvendo um conjunto de arquivos. | 
| Instalador, patch e licença do Rocket Software Enterprise Developer for Eclipse | O Enterprise Developer fornece ao desenvolvedor de mainframe uma plataforma para desenvolver e manter os principais aplicativos on-line e em lote do mainframe. | 

**Limitações**
+ A criação de uma imagem do Windows Docker não é suportada no CodeBuild. Esse [problema relatado](https://github.com/docker-library/docker/issues/49) precisa do suporte das equipes do Windows Kernel/HCS e do Docker. A solução alternativa é criar um runbook de criação de imagem do Docker usando o Systems Manager. Este padrão usa a solução alternativa para criar imagens de contêiner do Rocket Software Enterprise Developer for Eclipse e do Rocket Software Micro Focus Enterprise Test Server. 
+ A conectividade de nuvem privada virtual (VPC) ainda não CodeBuild é suportada no Windows, portanto, o padrão não usa o Rocket Software License Manager para gerenciar licenças nos contêineres OpenText Rocket Software Enterprise Developer e Rocket Software Enterprise Test Server.

**Versões do produto**
+ Rocket Software Enterprise Developer 5.5 ou posterior
+ Rocket Software Enterprise Test Server 5.5 ou posterior
+ Rocket Software Enterprise Server 5.5 ou posterior
+ Rocket Software AccuRev 7.x ou posterior
+ Imagem base do Windows Docker para Rocket Software Enterprise Developer e Enterprise Test Server: **microsoft/dotnet-framework-4.7.2-runtime**
+ **Imagem base do Linux Docker para AccuRev cliente: amazonlinux:2**

## Arquitetura
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Ambiente de mainframe**

No desenvolvimento convencional de mainframe, os desenvolvedores precisam usar hardware de mainframe para desenvolver e testar programas. Eles enfrentam limitações de capacidade, por exemplo, milhões de instruções por segundo (MIPS) restritos para o dev/test ambiente, e precisam confiar nas ferramentas que estão disponíveis nos computadores mainframe.

Em muitas organizações, o desenvolvimento de mainframe segue a metodologia de desenvolvimento em cascata, com equipes confiando em ciclos longos para lançar mudanças. Esses ciclos de lançamento geralmente são mais longos do que o desenvolvimento de produtos digitais.   

O diagrama a seguir mostra vários projetos de mainframe compartilhando hardware de mainframe para seu desenvolvimento. No hardware de mainframe, é caro escalar um ambiente de desenvolvimento e teste para mais projetos.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Arquitetura do AWS*****

Este padrão estende o desenvolvimento do mainframe para a Nuvem AWS. Primeiro, ele usa o AccuRev SCM para hospedar o código-fonte do mainframe. AWS Em seguida, ele disponibiliza o Enterprise Developer e o Enterprise Test Server para criar e testar o código do mainframe na AWS. 

As seções a seguir descrevem os três componentes principais do padrão.

**1. SCM **

Em AWS, o padrão é usado AccuRev para criar um conjunto de espaços de trabalho e controle de versão do SCM para o código-fonte do mainframe. Sua arquitetura baseada em fluxo permite o desenvolvimento paralelo de mainframe para várias equipes. Para mesclar uma alteração, AccuRev usa o conceito de promoção. Para adicionar essa alteração a outros espaços de trabalho, AccuRev use o conceito de atualização.

No nível do projeto, cada equipe pode criar um ou mais fluxos AccuRev para monitorar as mudanças no nível do projeto. Eles são chamados de fluxos de projeto. Esses fluxos de projeto são herdados do mesmo fluxo principal. O fluxo principal é usado para mesclar as alterações de diferentes fluxos do projeto.

Cada fluxo de projeto pode promover código para AccuRev, e um gatilho de publicação de promoção é configurado para iniciar o pipeline de AWS CI/CD. A compilação bem-sucedida de uma alteração na reprodução do projeto pode ser promovida para seu fluxo principal para mais testes de regressão.  

Normalmente, o fluxo principal é chamado de fluxo de integração do sistema. Quando há uma promoção de um fluxo de projeto para um fluxo de integração de sistema, um gatilho de pós-promoção inicia outro CI/CD pipeline para executar testes de regressão.

Além do código de mainframe, esse padrão inclui AWS CloudFormation modelos, documentos do Systems Manager Automation e scripts. Seguindo as infrastructure-as-code melhores práticas, eles são controlados por versão em. CodeCommit 

Se você precisar sincronizar o código do mainframe com um ambiente de mainframe para implantação, a Rocket Software fornece a solução Enterprise Sync, que sincroniza o código do SCM com o AccuRev SCM do mainframe.

**2. Ambientes de teste e desenvolvimento**

Em uma grande organização, escalar mais de cem ou até mais de mil desenvolvedores de mainframe é um desafio. Para resolver essa restrição, o padrão usa instâncias EC2 do Amazon Windows para desenvolvimento. Nas instâncias, as ferramentas Enterprise Developer for Eclipse estão instaladas. O desenvolvedor pode realizar todos os testes e depuração do código do mainframe localmente na instância. 

AWS Systems Manager Os documentos State Manager e Automation são usados para automatizar o provisionamento da instância do desenvolvedor. O tempo médio para criar uma instância de desenvolvedor é de 15 minutos. O software e as configurações a seguir estão preparados:
+ AccuRev Cliente Windows para verificar e enviar o código-fonte AccuRev
+ Ferramenta Enterprise Developers for Eclipse, para escrever, testar e depurar código de mainframe localmente
+ Estruturas de teste de código aberto Estrutura de teste de desenvolvimento orientado a comportamento (BDD) Python Behave, py3270 e o emulador x3270 para criar scripts para testar aplicativos
+ Uma ferramenta de desenvolvedor do Docker para criar a imagem do Enterprise Test Server Docker e testar o aplicativo no contêiner do Enterprise Test Server Docker 

No ciclo de desenvolvimento, os desenvolvedores usam a EC2 instância para desenvolver e testar o código do mainframe localmente. Quando as alterações locais são testadas com sucesso, os desenvolvedores promovem a alteração no AccuRev servidor.  

**3. CI/CD oleodutos**

No padrão, os CI/CD pipelines são usados para testes de integração e testes de regressão antes da implantação no ambiente de produção. 

Conforme explicado na seção SCM, AccuRev usa dois tipos de fluxos: um fluxo de projeto e um fluxo de integração. Cada fluxo é conectado a CI/CD oleodutos. Para realizar a integração entre o AccuRev servidor e AWS CodePipeline, o padrão usa o script de AccuRev pós-promoção para criar um evento para iniciar o CI/CD.

Por exemplo, quando um desenvolvedor promove uma alteração em um stream de projeto em AccuRev, ele inicia um script de pós-promoção para ser executado no AccuRev Server. Em seguida, o script carrega os metadados da alteração em um bucket do Amazon Simple Storage Service (Amazon S3) para criar um evento do Amazon S3. Esse evento iniciará um pipeline CodePipeline configurado para ser executado. 

O mesmo mecanismo de iniciação de eventos é usado para o fluxo de integração e seus pipelines associados. 

No CI/CD pipeline, CodePipeline use CodeBuild com o contêiner do cliente AccuRev Linux para verificar o código mais recente dos AccuRev fluxos. Em seguida, o pipeline começa CodeBuild a usar o contêiner Enterprise Developer Windows para compilar o código-fonte e a usar o contêiner Enterprise Test Server Windows CodeBuild para testar aplicativos de mainframe.

Os CI/CD pipelines são criados usando CloudFormation modelos e o blueprint será usado para novos projetos. Ao usar os modelos, leva menos de uma hora para que um projeto crie um novo CI/CD pipeline AWS.

Para escalar sua capacidade de teste de mainframe AWS, o padrão cria a suíte de DevOps testes da Rocket Software, o Verastream e o servidor UFT. Ao usar as DevOps ferramentas modernas, você pode executar quantos testes precisar. AWS 

Um exemplo de ambiente de desenvolvimento de mainframe com o Rocket Software ativado AWS é mostrado no diagrama a seguir.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Pilha de tecnologias de destino*

Esta seção fornece uma visão mais detalhada da arquitetura de cada componente no padrão.

**1. Repositório de código-fonte — SCM AccuRev **

AccuRev O SCM está configurado para gerenciar as versões do código-fonte do mainframe. Para alta disponibilidade, AccuRev suporta os modos primário e de réplica. Os operadores podem fazer o failover para a réplica ao realizar a manutenção no nó primário. 

Para acelerar a resposta do CI/CD pipeline, o padrão usa o Amazon CloudWatch Events para detectar alterações no código-fonte e iniciar o início do pipeline.

1. O pipeline é configurado para usar uma fonte do Amazon S3.

1. Uma regra de CloudWatch eventos é configurada para capturar eventos do S3 de um bucket do S3 de origem.

1. A regra de CloudWatch eventos define uma meta para o pipeline.

1. AccuRev O SCM está configurado para executar um script de pós-promoção localmente após a conclusão da promoção.

1. AccuRev O SCM gera um arquivo XML que contém os metadados da promoção, e o script carrega o arquivo XML no bucket do S3 de origem.

1. Após o upload, o bucket S3 de origem envia eventos que correspondam à regra de CloudWatch Eventos, e a regra de CloudWatch Eventos inicia a execução do pipeline. 

Quando o pipeline é executado, ele inicia um CodeBuild projeto para usar um contêiner de cliente AccuRev Linux para verificar o código de mainframe mais recente de um fluxo associado AccuRev .   

O diagrama a seguir mostra uma configuração de AccuRev servidor.

![\[Nuvem AWS diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Modelo de desenvolvedor corporativo** 

O padrão usa EC2 modelos da Amazon para simplificar a criação da instância do desenvolvedor. Ao usar o State Manager, ele pode aplicar configurações de software e licença às EC2 instâncias de forma consistente.

O EC2 modelo da Amazon se baseia em suas configurações de contexto de VPC e configurações de instância padrão e segue os requisitos de marcação corporativa. Ao usar um modelo, uma equipe pode criar suas próprias novas instâncias de desenvolvimento. 

Quando uma instância de desenvolvedor é iniciada, associando-se a tags, o Systems Manager usa o State Manager para aplicar a automação. A automação inclui as seguintes etapas gerais.

1. Instale o software Enterprise Developer e instale os patches.

1. Instale o AccuRev cliente para Windows.

1. Instale o script pré-configurado para que os desenvolvedores participem do AccuRev stream. Inicialize os workspaces do Eclipse.

1. Instale ferramentas de desenvolvimento, incluindo x3270, py3270 e Docker.

1. Defina as configurações de licença para apontar para um balanceador de carga do License Manager.

O diagrama a seguir mostra uma instância de desenvolvedor corporativo criada pelo EC2 modelo da Amazon, com software e configuração aplicados à instância pelo State Manager. As instâncias de desenvolvedores corporativos se conectam AWS License Manager para ativar suas licenças.

![\[Nuvem AWS diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Pipelines de CI/CD**

Conforme explicado na seção de AWS arquitetura, no padrão, há pipelines em nível de projeto e CI/CD pipelines de integração de sistemas. Cada equipe de projeto de mainframe cria um pipeline ou vários CI/CD pipelines para criar os programas que estão desenvolvendo em um projeto. Esses CI/CD pipelines de projeto verificam o código-fonte de um AccuRev fluxo associado. 

Em uma equipe de projeto, os desenvolvedores promovem seu código no AccuRev fluxo associado. Em seguida, a promoção inicia o pipeline do projeto para criar o código e executar testes de integração. 

Cada CI/CD pipeline de projeto usa CodeBuild projetos com a imagem Amazon ECR da ferramenta Enterprise Developer e a ferramenta Enterprise Test Server Amazon ECR image. 

CodePipeline e CodeBuild são usados para criar os CI/CD pipelines. Porque CodeBuild , sem taxas ou compromissos iniciais, você paga apenas pelo que usa. CodePipeline Em comparação com o hardware de mainframe, a AWS solução reduz consideravelmente o lead time de provisionamento de hardware e diminui o custo do seu ambiente de testes.

No desenvolvimento moderno, várias metodologias de teste são usadas. Por exemplo, desenvolvimento orientado a testes (TDD), BDD e Robot Framework. Com esse padrão, os desenvolvedores podem usar essas ferramentas modernas para testes de mainframe. Por exemplo, usando x3270, py3270 e a ferramenta de teste Behave python, você pode definir o comportamento de um aplicativo on-line. Você também pode usar a estrutura de robôs build mainframe 3270 nesses CI/CD pipelines.

O diagrama a seguir mostra o CI/CD pipeline do stream da equipe. 

![\[Nuvem AWS CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


O diagrama a seguir mostra o relatório de CI/CD teste do projeto produzido pelo CodePipeline Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


O diagrama a seguir mostra o relatório de CI/CD teste do projeto produzido por CodePipeline in Py3270 e Behave BDD.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Depois que os testes em nível de projeto são aprovados com sucesso, o código testado é promovido manualmente para o fluxo de integração no AccuRev SCM. Você pode automatizar essa etapa depois que as equipes confiarem na cobertura de testes do pipeline de projetos.

Quando o código é promovido, o CI/CD pipeline de integração do sistema verifica o código mesclado e executa testes de regressão. O código mesclado é promovido a partir de todos os fluxos paralelos do projeto.

Dependendo da precisão do ambiente de teste, os clientes podem ter mais CI/CD pipelines de integração de sistemas em um ambiente diferente, por exemplo, UAT, Pré-produção. 

No padrão, as ferramentas usadas no pipeline de integração do sistema são Enterprise Test Server, UFT Server e Verastream. Todas essas ferramentas podem ser implantadas no contêiner Docker e usadas com. CodeBuild

Depois de testar com sucesso os programas de mainframe, o artefato é armazenado, com controle de versão, em um bucket S3. 

O diagrama a seguir mostra um CI/CD pipeline de integração do sistema.

![\[CI/CD pipeline showing Serviços da AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Depois que o artefato for testado com sucesso nos CI/CD pipelines de integração do sistema, ele poderá ser promovido para implantação em produção. 

Se você precisar implantar o código-fonte de volta no mainframe, a Rocket Software oferece a solução Enterprise Sync para sincronizar o código-fonte de AccuRev volta para o Mainframe Endeavour.

O diagrama a seguir mostra um CI/CD pipeline de produção implantando o artefato em servidores corporativos. Neste exemplo, CodeDeploy orquestra a implantação do artefato de mainframe testado no Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Além do passo a passo da arquitetura do CI/CD pipeline, consulte a postagem do AWS DevOps blog [Automatize milhares de testes de mainframe AWS com o Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) para obter mais informações sobre como testar aplicativos de mainframe em e. CodeBuild CodePipeline (Micro Focus agora é Rocket Software.) Consulte a postagem do blog para obter as melhores práticas e detalhes sobre como fazer testes de mainframe em AWS.

## Ferramentas
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS ferramentas de automação**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Eventos da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

**Ferramentas da Rocket Software**
+ [Rocket Enterprise Developer for Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Rocket Enterprise Test Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/es_60/) (implantação de produção)
+ [Software Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [Rocket Software Enterprise Suite License Manager](https://www.microfocus.com/documentation/slm/)
+ [Rocket Software Verastream Host Integrator](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Rocket Software UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Outras ferramentas**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Biblioteca](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Épicos
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Crie a infraestrutura do AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante um servidor AccuRev SCM primário usando CloudFormation. |  | AWS CloudFormation | 
| Crie o usuário AccuRev administrador. | Faça login no AccuRev SCM Server e execute o comando CLI para criar um usuário administrador. | AccuRev Administrador do servidor SCM | 
| Crie AccuRev streams. | Crie AccuRev fluxos que herdam dos fluxos superiores em sequência: produção, integração de sistemas, fluxos de equipe. | AccuRev Administrador do SCM | 
| Crie as contas de AccuRev login do desenvolvedor. | Use os comandos da CLI do AccuRev SCM para AccuRev criar contas de login de usuários para desenvolvedores de mainframe. | AccuRev Administrador do SCM | 

### Crie o modelo de EC2 lançamento da Amazon para desenvolvedores corporativos
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o modelo de EC2 lançamento da Amazon usando CloudFormation. | Use CloudFormation para implantar um modelo de EC2 lançamento da Amazon para instâncias do Enterprise Developer. O modelo inclui um documento de Automação do Systems Manager para a instância do Rocket Enterprise Developer. | AWS CloudFormation | 
| Crie a instância Enterprise Developer a partir do EC2 modelo da Amazon. |  | Login do console da AWS e habilidades para desenvolvedores de mainframe | 

### Criar a imagem do Docker da ferramenta Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker da ferramenta Enterprise Developer. | Use o comando Docker e a ferramenta Dockerfile do Enterprise Developer para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR. | No console do Amazon ECR, crie o repositório para a imagem do Docker do Enterprise Developer. | Amazon ECR | 
| Envie a imagem do Docker da ferramenta do Enterprise Developer para o Amazon ECR. | Execute o comando Docker push para enviar a imagem do Docker da ferramenta Enterprise Developer e salvá-la no repositório Docker no Amazon ECR. | Docker | 

### Crie a imagem do Docker do Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker do Enterprise Test Server. | Use o comando Docker e o Dockerfile do Enterprise Test Server para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR. | No console do Amazon ECR, crie o repositório do Amazon ECR para a imagem do Docker do Enterprise Test Server. | Amazon ECR | 
| Envie a imagem do Docker do Enterprise Test Server para o Amazon ECR. | Execute o comando Docker push para enviar e salvar a imagem do Docker do Enterprise Test Server no Amazon ECR. | Docker | 

### Crie o CI/CD pipeline de stream da equipe
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o CodeCommit repositório. | No CodeCommit console, crie um repositório baseado em Git para infraestrutura e código. CloudFormation  | AWS CodeCommit | 
| Faça o upload do CloudFormation modelo e do código de automação no CodeCommit repositório. | Execute o comando push do Git para carregar o CloudFormation modelo e o código de automação no repositório. | Git | 
| Implante o CI/CD pipeline de stream de equipe usando CloudFormation. | Use o CloudFormation modelo preparado para implantar um CI/CD pipeline de fluxo de equipe. | AWS CloudFormation | 

### Crie o CI/CD pipeline de integração do sistema
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker do UFT. | Use o comando Docker e o UFT Dockerfile para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR para a imagem do UFT. | No console do Amazon ECR, crie o repositório Docker para a imagem do UFT. | Amazon ECR | 
| Envie a imagem do Docker do UFT para o Amazon ECR. | Execute o comando Docker push para enviar e salvar a imagem do Docker do Enterprise Test Server no Amazon ECR. | Docker | 
| Crie a imagem do Docker do Verastream. | Use o comando Docker e o Verastream Dockerfile para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR para a imagem Verastream. | No console do Amazon ECR, crie o repositório Docker para a imagem Verastream. | Amazon ECR | 
| Implante o CI/CD pipeline de integração do sistema usando CloudFormation. | Use o CloudFormation modelo preparado para implantar um CI/CD pipeline de integração do sistema. | AWS CloudFormation | 

### Crie um CI/CD pipeline de implantação de produção
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o Enterprise Server usando o AWS Quick Start. | Para implantar o Enterprise Server usando CloudFormation, inicie o Enterprise Server no AWS Quick Start. | AWS CloudFormation | 
| Implante um CI/CD pipeline de implantação de produção. | No CloudFormation console, use o CloudFormation modelo para implantar um CI/CD pipeline de implantação de produção. | AWS CloudFormation | 

## Recursos relacionados
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Referências**
+ [AWS DevOps Blog - Automatize milhares de testes de mainframe AWS com o Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (a Micro Focus agora é Rocket Software).
+ [repositório py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Repositório de bibliotecas GitHub altran-pt-gdc/robot-framework-mainframe-3270](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Bem-vindo ao Behave\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog de parceiros da APN: Tag: Micro Focus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) (Micro Focus agora é Rocket Software.)
+ [Executar uma instância a partir de um modelo de execução](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Início rápido**
+ [Servidor Rocket Enterprise em AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o LRS VPSX/MFI
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy e Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray e Shoup Inc*

## Resumo
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Esse padrão mostra como modernizar suas cargas de trabalho de impressão on-line de mainframe essenciais para os negócios na nuvem da Amazon Web Services (AWS) usando o Micro Focus Enterprise Server como tempo de execução para um aplicativo de mainframe modernizado e o LRS VPSX/MFI (Micro Focus Interface) como servidor de impressão. O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Nessa abordagem, você migra seu aplicativo on-line de mainframe para o Amazon Elastic Compute Cloud (Amazon EC2) e migra seu banco de dados de mainframe, como IBM (z/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DISfor), integrado ao AWS Managed Microsoft AD DB2 para autenticação e autorização do fluxo de trabalho de impressão. Ao modernizar suas cargas de trabalho de impressão on-line, você pode reduzir os custos de infraestrutura de TI, mitigar a dívida técnica de manter sistemas legados, remover silos de dados, aumentar a agilidade e a eficiência com um DevOps modelo e aproveitar os recursos sob demanda e a automação na nuvem da AWS.

## Pré-requisitos e limitações
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de impressão ou saída on-line de mainframe
+ Conhecimento básico de como reconstruir e fornecer um aplicativo de mainframe executado no Micro Focus Enterprise Server (para obter mais informações, consulte a planilha de dados do [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) na documentação da Micro Focus.)
+ Conhecimento básico das soluções e conceitos de impressão em nuvem do LRS (para obter mais informações, consulte [Modernização de saída](https://www.lrsoutputmanagement.com/products/modernization-products) na documentação do LRS).
+ Software e licença do Micro Focus Enterprise Server (para obter mais informações, entre em contato com a [equipe de vendas da Micro Focus](https://www.microfocus.com/en-us/contact/contactme).)
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenças do LRS (para obter mais informações, entre em contato com a equipe de vendas do [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**nota**  
Para obter mais informações sobre considerações de configuração para workloads de impressão on-line de mainframe, consulte *Considerações* na seção *Informações adicionais* deste padrão.

**Versões do produto**
+ [Micro Focus Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 8.0 ou posterior
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/) V1R3 ou superior

## Arquitetura
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL) e Customer Information Control System (CICS) 
+ Banco de dados — IBM DB2 para z/OS IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Segurança — Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gerenciamento de impressão e saída — produtos de z/OS impressão em mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA View)

**Pilha de tecnologias de destino**
+ Sistema operacional — Microsoft Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Linguagem de programação: COBOL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Gerenciamento de impressão e produção: solução de impressão LRS na AWS
+ Ambiente runtime de mainframe: Micro Focus Enterprise Server

**Arquitetura de origem**

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de impressão on-line de mainframe.

![\[Processo de seis etapas para produzir uma saída visível.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM for z/OS. DB2 

1. O SoR persiste os dados comerciais do SoE.

1. Um usuário inicia uma solicitação para gerar a saída de impressão do CICS SoE, que inicia um aplicativo de transação de impressão para processar a solicitação de impressão. 

1. O aplicativo de transação de impressão (como um programa CICS e COBOL) extrai dados do banco de dados, formata os dados de acordo com os requisitos comerciais e gera resultados comerciais (dados de impressão), como extratos de cobrança, cartões de identificação ou extratos de empréstimos. Em seguida, o aplicativo envia uma solicitação de impressão usando o Método de Acesso às Telecomunicações Virtuais (VTAM). Um servidor de z/OS impressão (como o IBM Infoprint Server) usa NetSpool ou um componente VTAM similar para interceptar as solicitações de impressão e, em seguida, cria conjuntos de dados de saída de impressão no spool do JES usando os parâmetros de saída do JES. Os parâmetros de saída do JES especificam as informações de roteamento que o servidor de impressão usa para transmitir a saída para uma impressora de rede específica. O termo *VTAM* se refere ao elemento de serviços z/OS Communications Server e System Network Architecture (SNA) do z/OS.

1. O componente de transmissão de saída de impressão transmite os conjuntos de dados de impressão de saída do spool JES para impressoras remotas ou servidores de impressão, como LRS (conforme demonstrado nesse padrão), IBM Infoprint Server ou destinos de e-mail.

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de impressão on-line de mainframe que é implantada na nuvem AWS:

![\[Processo de quatro etapas, desde o início da solicitação de impressão até o processamento na AWS e a impressão no LRS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário inicia uma solicitação de impressão a partir de uma interface de usuário on-line (CICS) para criar resultados impressos, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O aplicativo on-line de mainframe ([reformulado para Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Micro Focus Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica comercial aos dados, formatar os dados e, em seguida, enviar os dados para um destino de impressão usando o [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon Elastic Block Store (Amazon EBS). O LRS VPSX/MFI usa um nome de TCP/IP-based LRS/Queue transmission agent to collect print data through the Micro Focus CICS Print Exit API (DFHUPRNT) and deliver the data to a specified printer destination. The original TERMID (TERM) that’s used in the modernized CICS application is used as the VPSX/MFI fila. 

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Para obter mais informações sobre o uso da Micro Focus para migração e modernização de aplicativos de mainframe na AWS, consulte [Capacitando workloads de mainframe corporativas na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) na documentação da AWS.

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de impressão on-line de mainframe:

![\[Duas zonas de disponibilidade com o servidor Micro Focus Enterprise ligado EC2, Amazon RDS e impressão LRS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O aplicativo on-line do mainframe (escrito em uma linguagem de programação como CICS ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O aplicativo on-line é implantado na Amazon EC2 em duas [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) para alta disponibilidade (HA) e usa o Micro Focus CICS Print Exit para encaminhar a saída de impressão para o LRS VPSX/MFI para impressão do usuário final.

1. O LRS VPSX/MFI usa um TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Micro Focus online Print Exit programming interface. Online Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the print file and dynamically build LRS/Queue comando. 
**nota**  
Para obter mais informações sobre vários métodos de programação de aplicações CICS para impressão e como eles são aceitos no servidor Micro Focus Enterprise e no LRS VPSX/MFI, consulte *Captura de dados de impressão* na seção *Informações adicionais* deste padrão.

1. 
**nota**  
Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o Micro Focus Enterprise Server com o LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI e encaminha o tráfego para os destinos registrados que estão íntegros.

1. O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA e usa o [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como um armazenamento de dados operacional. O LRS VPSX/MFI suporta os modos de serviço ativo-ativo e ativo-passivo. Essa arquitetura usa várias zonas de disponibilidade em um par ativo-passivo como um standby a quente ativo. O Network Load Balancer executa uma verificação de integridade nas VPSX/MFI EC2 instâncias do LRS e encaminha o tráfego para instâncias em espera ativa em outra zona de disponibilidade se uma instância ativa estiver em um estado não íntegro. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de recuperação, uma instância com falha precisa ser reiniciada para que os serviços do LRS retomem o processamento da solicitação de impressão. 
**nota**  
O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção *Informações adicionais* desse padrão.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de impressão. Para obter mais informações, consulte *Autenticação e autorização de impressão* na seção *Informações adicionais* desse padrão.

1. O LRS VPSX/MFI usa o Amazon EBS para armazenamento em blocos. Você pode fazer backup de dados do Amazon EBS de EC2 instâncias ativas para o Amazon S3 point-in-time como snapshots e restaurá-los em volumes do EBS em espera ativa. Para automatizar a criação, retenção e exclusão de snapshots de volume do Amazon EBS, você pode usar o [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para definir a frequência dos snapshots automatizados e restaurá-los com base em seus [requisitos de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Ferramentas
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Serviços da AWS**
+ [O Amazon Elastic Block Store (Amazon EBS) fornece volumes de armazenamento em nível de bloco para uso com instâncias da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EC2 Os volumes do EBS se comportam como dispositivos de bloco brutos e não formatados. É possível montar esses volumes como dispositivos em suas instâncias.
+ [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.
+ 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 [AWS Directory Service for Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), também conhecido como AWS Managed Microsoft Active Directory, permite que suas workloads e recursos da AWS com reconhecimento de diretório usem o Active Directory gerenciado na AWS.

**Outras ferramentas**
+ O [LRS VPSX/MFI (Interface do Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), desenvolvido em conjunto pela LRS e pela Micro Focus, captura a saída de um spool JES do Micro Focus Enterprise Server e a entrega de forma confiável a um destino de impressão especificado.
+ O LRS Directory Information Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, para coletar ou capturar dados de impressão por meio da interface de programação online Print Exit da Micro Focus.
+ O [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) é um ambiente de implantação de aplicativos para aplicativos de mainframe Ele fornece o ambiente de execução para aplicativos de mainframe que são migrados ou criados usando qualquer versão do Micro Focus Enterprise Developer.

## Épicos
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configure o Micro Focus Enterprise Server na Amazon EC2 e implante um aplicativo on-line de mainframe
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Micro Focus Enterprise Server e implante um aplicativo on-line de demonstração. | Configure o Micro Focus Enterprise Server na Amazon e EC2, em seguida, implante o aplicativo Micro Focus Account Demo ([ACCT Demo) na Amazon EC2 seguindo as instruções do Tutorial: CICS Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) na documentação da Micro Focus.O aplicativo ACCT Demo é um aplicativo on-line de mainframe (CICS) que cria e inicia a saída de impressão. | Arquiteto de nuvem | 

### Configure um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença de produto LRS para impressão. | Para obter uma licença de produto LRS para o LRSVPSX/MFI, LRS/Queue, and LRS/DIS, entre em contato com a equipe de gerenciamento de [saída do LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados. | Crie um lead | 
| Crie uma instância EC2 do Amazon Windows para instalar o LRS VPSX/MFI. | Execute uma instância EC2 do Amazon Windows seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon. Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.Ao criar sua instância do Windows, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um grupo-alvo e registre o LRS VPSX/MFI EC2 como alvo. | Crie um grupo de destino seguindo as instruções de [Criar um grupo de destino para seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) na documentação do Elastic Load Balancing.Ao criar o grupo de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Siga as instruções de [Criar um Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) na documentação do Elastic Load Balancing. Seu Network Load Balancer direciona o tráfego do Micro Focus Enterprise Server para o LRS. VPSX/MFI EC2Ao criar o Network Load Balancer, faça o seguinte na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Integre o Micro Focus Enterprise Server com LRS VPSX/MFI e LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Micro Focus Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Disponibilize o CICS Print Exit (DFHUPRNT) para a inicialização do Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Verifique se o Micro Focus Enterprise Server detectou a saída de impressão do CICS (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Defina a ID do terminal da impressora CICS (TERMIDs) como Micro Focus Enterprise Server. | **Habilite a impressão 3270 no Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Defina o terminal da impressora CICS no Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configure impressoras e usuários de impressão no Micro Focus Enterprise Server e no LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma fila de impressão no LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)A fila de impressão deve ser equivalente à impressão TERMIDs criada no Micro Focus Enterprise Server. | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar autorização e autenticação de impressão
<a name="set-up-print-authentication-and-authorization"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Associe o LRS VPSX/MFI EC2 a um domínio Microsoft AD gerenciado pela AWS. | Associe o LRS VPSX/MFI EC2 ao seu domínio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de impressão on-line
<a name="test-an-online-print-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão on-line a partir da aplicação Micro Focus ACCT de demonstração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)A mensagem “Solicitação de impressão agendada” é exibida na parte inferior da tela. Isso confirma que uma solicitação de impressão on-line foi gerada a partir do aplicativo ACCT Demo e enviada ao LRS VPS/MFI para processamento de impressão.  | Arquiteto de nuvem | 
| Verifique a saída de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Agora você pode ver a saída impressa de um extrato de conta com colunas para Número da Conta, SOBRENOME, PRIMEIRO, ENDEREÇO, TELEFONE, Nº. Cartões emitidos, Data de emissão, Valor e Saldo.Para ver um exemplo, consulte o anexo **online\$1print\$1output** desse padrão. | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernização da saída do LRS](https://www.lrsoutputmanagement.com/products/modernization-products) (documentação do LRS)
+ [Conceitos de rede VTAM](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (documentação da IBM)
+ [Resumo dos tipos de unidades lógicas (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentação da IBM)
+ [ANSI e controles de transporte de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentação da IBM)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog da rede de parceiros da AWS)
+ [Crie um PAC do Micro Focus Enterprise Server com o Amazon EC2 Auto Scaling e o Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) (documentação do AWS Prescriptive Guidance)
+ [Fluxo de dados de apresentação de funções avançadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)

## Mais informações
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações para os processos on-line do mainframe e a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o IBM Advanced Function Presentation (AFP) ou o Xerox Line Condition Data Stream (LCDS) ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.

**Captura de dados de impressão**

Esta seção resume os métodos de programação de aplicativos CICS que você pode usar em um ambiente de mainframe IBM para impressão. VPSX/MFI Os componentes do LRS fornecem técnicas para permitir que os mesmos programas aplicativos criem dados da mesma forma. A tabela a seguir descreve como cada método de programação de aplicativo é suportado em um aplicativo CICS modernizado executado na AWS e no Micro Focus Enterprise Server com um servidor de impressão LRS VPSX/MFI .


| 
| 
| Método | Description | Suporte para o método em um ambiente modernizado | 
| --- |--- |--- |
| EXEC CICS ENVIA TEXTO... ou EXEC CICS ENVIAR MAPA..  | Esses métodos CICS e VTAM são responsáveis por criar e fornecer fluxos de dados de impressão 3270/SCS para LUTYPE0 e dispositivos de impressão. LUTYPE1 LUTYPE3  | Uma interface de programa de aplicativo (API) do Micro Focus online Print Exit (DFHUPRNT) permite que os dados de impressão sejam processados VPSX/MFI quando os fluxos de dados de impressão 3270/SCS são criados usando qualquer um desses métodos.  | 
| EXEC CICS ENVIA TEXTO... ou EXEC CICS ENVIAR MAPA.. (com software de mainframe IBM de terceiros) | Os métodos CICS e VTAM são responsáveis por criar e fornecer fluxos de dados de impressão 3270/SCS para LUTYPE0 e dispositivos de impressão. LUTYPE1 LUTYPE3 Produtos de software de terceiros interceptam os dados de impressão, convertem os dados em dados de formato de impressão padrão com um caractere de ASA/MCH controle e colocam os dados no spool JES para serem processados por sistemas de impressão baseados em mainframe que usam o JES.  | Uma API de saída de impressão on-line da Micro Focus (DFHUPRNT) permite que os dados de impressão sejam processados VPSX/MFI quando os fluxos de dados de impressão 3270/SCS são criados usando qualquer um desses métodos.  | 
| EXEC CICS SPOOLOPEN  | Esse método é usado pelos programas de aplicação do CICS para gravar dados diretamente no spool do JES. Os dados então ficam disponíveis para serem processados por sistemas de impressão baseados em mainframe que usam o JES.  | O Micro Focus Enterprise Server transfere os dados para o spool do Enterprise Server, onde eles podem ser processados pelo VPSX/MFI Batch Print Exit (LRSPRTE6), que transfere os dados para o VPSX.  | 
| DRS/API | Uma interface programática fornecida pelo LRS é usada para gravar dados de impressão no JES.  | O VPSX/MFI fornece uma interface de substituição que transfere os dados de impressão diretamente para o VPSX.  | 

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS que está incluída na sua licença de produto.

**Autorização e autenticação de impressão **

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais. Por exemplo, segurança em nível de comando, como suspender/liberar, limpar, modificar, copiar e redirecionar. A segurança pode ser configurada pelo ID do usuário ou pelo grupo (semelhante ao grupo AD ou grupo LDAP).

## Anexos
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Mova arquivos de mainframe diretamente para o Amazon S3 usando o Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Resumo
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Como parte da jornada de modernização, você pode enfrentar o desafio de transferir arquivos entre seus servidores on-premises e a nuvem da Amazon Web Services (AWS). Transferir dados de mainframes pode ser um desafio complexo porque os mainframes normalmente não conseguem acessar armazenamentos modernos de dados, como o Amazon Simple Storage Service (Amazon S3), o Amazon Elastic Block Store (Amazon EBS) ou o Amazon Elastic File System (Amazon EFS).

Muitos clientes usam recursos intermediários de preparação, como servidores Linux, Unix ou Windows on-premises, para transferir arquivos para a Nuvem AWS. Você pode evitar esse método indireto usando o AWS Transfer Family com o Secure Shell (SSH) Protocolo de Transferência de Arquivos (SFTP) para carregar arquivos de mainframe diretamente no Amazon S3.

## Pré-requisitos e limitações
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) com uma sub-rede acessível por sua plataforma legada
+ Um endpoint do Transfer Family para sua VPC
+ Arquivos do Mainframe Virtual Storage Access Method (VSAM) convertidos em [arquivos sequenciais de tamanho fixo](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (documentação da IBM)

**Limitações**
+ O SFTP transfere arquivos no modo binário por definição, ou seja, os arquivos são enviados para o Amazon S3 com a codificação EBCDIC preservada. Se seu arquivo não contiver dados binários ou compactados, você poderá usar o [subcomando **sftp **ascii](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (documentação da IBM) para converter seus arquivos em texto durante a transferência.
+ Você deve [descompactar arquivos de mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (Recomendações da AWS) que contenham conteúdo compactado e binário para usar esses arquivos em seu ambiente de destino.
+ Os objetos do Amazon S3 podem variar em tamanho: de um mínimo de 0 byte a um máximo de 5 TB. Para obter mais informações sobre os recursos do Amazon S3, consulte Amazon [S3](https://aws.amazon.com/s3/faqs/?nc1=h_ls). FAQs

## Arquitetura
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Pilha de tecnologia de origem**
+ Job Control Language (JCL)
+ Shell z/OS Unix e ISPF
+ SFTP
+ VSAM e arquivos simples

**Pilha de tecnologias de destino**
+  Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura de referência para usar o Transfer Family com SFTP para carregar arquivos de mainframe diretamente em um bucket do S3.

![\[Uso do Transfer Family com SFTP para fazer o upload de arquivos de mainframe diretamente para um bucket do S3\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Use uma tarefa de JCL para transferir seus arquivos de mainframe do mainframe herdado para a Nuvem AWS por meio do Direct Connect.

1. O Direct Connect permite que seu tráfego de rede permaneça na rede global da AWS e ignore a Internet pública. O Direct Connect também aumenta a velocidade da rede, começando em 50 Mbps e escalando até 100 Gbps.

1. O endpoint da VPC permite conexões entre os recursos da sua VPC e os serviços compatíveis sem usar a Internet pública. O acesso ao Transfer Family e ao Amazon S3 alcança alta disponibilidade por meio de interfaces de rede elástica localizadas em duas sub-redes privadas e zonas de disponibilidade.

1. O Transfer Family autentica os usuários e usa o SFTP para receber seus arquivos do ambiente herdado e movê-los para um bucket do S3.

**Automação e escala**

Depois que o serviço Transfer Family estiver em vigor, você poderá transferir um número ilimitado de arquivos do mainframe para o Amazon S3 usando uma tarefa de JCL como cliente SFTP. Você também pode automatizar a transferência de arquivos usando um agendador de tarefas em lote de mainframe para executar tarefas de SFTP quando for o momento de transferir os arquivos de mainframe.

## Ferramentas
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ 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.
+ 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.
+ [O AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) permite que você escale com segurança suas transferências recorrentes de business-to-business arquivos para o Amazon S3 e o Amazon EFS usando os protocolos SFTP, FTPS e FTP.

## Épicos
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Criar o bucket do S3 e a política de acesso
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o bucket do S3. | [Crie um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para hospedar os arquivos que você transfere do seu ambiente herdado. | AWS geral | 
| Criar uma política e um perfil do IAM. | O Transfer Family usa seu perfil do AWS Identity and Access Management (IAM) para conceder acesso ao bucket do S3 criado anteriormente.Crie um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) que inclua a seguinte [política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html):<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "UserFolderListing",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<your-bucket-name>"<br />            ]<br />        },<br />        {<br />            "Sid": "HomeDirObjectAccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": "arn:aws:s3:::<your-bucket-name>/*"<br />        }<br />    ]<br />}</pre>É obrigatório selecionar o caso de uso Transfer ao configurar o perfil do IAM. | AWS geral | 

### Definir o serviço de transferência
<a name="define-the-transfer-service"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obter mais informações sobre como configurar um servidor SFTP, consulte [Create an SFTP-enabled server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (guia do usuário do AWS Transfer Family). | AWS geral | 
| Obtenha o endereço do servidor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 
| Crie o par de chaves do cliente SFTP. | Crie um par de chaves SSH para o [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) ou [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS geral, SSH | 
| Crie o servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 

### Transferir o arquivo do mainframe
<a name="transfer-the-mainframe-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a chave privada SSH para o mainframe. | Use SFTP ou SCP para enviar a chave privada SSH para o ambiente herdado.Exemplo de SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Exemplos de SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Em seguida, armazene a chave SSH no sistema de arquivos z/OS Unix com o nome de usuário que posteriormente executará o trabalho em lote de transferência de arquivos (por exemplo,`/u/CONTROLM`). Para obter mais informações sobre o shell z/OS Unix, consulte [Uma introdução aos z/OS shells (documentação da](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) IBM). | Mainframe, shell z/OS Unix, FTP, SCP | 
| Crie o cliente JCL SFTP. | Como os mainframes não têm um cliente SFTP nativo, você deve usar o utilitário BPXBATCH para executar o cliente SFTP a partir do shell Unix. z/OS No editor ISPF, crie o cliente JCL SFTP. Por exemplo:<pre>//JOBNAM JOB ...<br />//**********************************************************************<br />//SFTP EXEC PGM=BPXBATCH,REGION=0M <br />//STDPARM DD * <br />SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; <br />echo 'put filename.txt' > uplcmd; <br />sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; <br />//SYSPRINT DD SYSOUT=* <br />//STDOUT DD SYSOUT=* <br />//STDENV DD * <br />//STDERR DD SYSOUT=*</pre>Para obter mais informações sobre como executar um comando no shell do z/OS Unix, consulte [O utilitário BPXBATCH](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) (documentação da IBM). Para obter mais informações sobre como criar ou editar tarefas de JCL no z/OS, consulte [O que é ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) e [O editor ISPF](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) (documentação da IBM). | JCL, mainframe, shell Unix z/OS  | 
| Execute o cliente JCL SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obter mais informações sobre como verificar a atividade de trabalhos em lote, consulte [z/OS SDSF User's Guide](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) (documentação da IBM). | Mainframe, JCL, ISPF | 
| Validar a transferência de arquivos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 
| Crie o cliente JCL SFTP. | Use o agendador de tarefas para acionar automaticamente o cliente JCL SFTP.Você pode usar agendadores de trabalhos de mainframe, como [Control-M da BMC](https://www.bmcsoftware.pt/it-solutions/control-m.html) ou [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7), para automatizar trabalhos em lote de transferência de arquivos com base no horário e em outras dependências de trabalhos em lote. | Agendador de tarefas | 

## Recursos relacionados
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Como o AWS Transfer Family funciona](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Otimize o desempenho do seu aplicativo modernizado AWS Blu Age
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy e Himanshu Sah, Amazon Web Services*

## Resumo
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Os aplicativos de mainframe que são modernizados com o AWS Blu Age exigem testes de equivalência funcional e de desempenho antes de serem implantados na produção. Nos testes de performance, as aplicações modernizadas podem funcionar mais lentamente do que os sistemas legados, especialmente em trabalhos em lotes complexos. Essa disparidade existe porque as aplicações de mainframe são monolíticas, enquanto as aplicações modernas usam arquiteturas de várias camadas. Esse padrão apresenta técnicas de otimização para resolver essas lacunas de desempenho em aplicativos que são modernizados usando a [refatoração automatizada com o Blu Age. AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)

O padrão usa a estrutura de modernização AWS Blu Age com recursos nativos de Java e ajuste de banco de dados para identificar e resolver gargalos de desempenho. O padrão descreve como você pode usar a criação de perfil e o monitoramento para identificar problemas de desempenho com métricas como tempos de execução de SQL, utilização de memória e I/O padrões. Em seguida, explica como você pode aplicar otimizações direcionadas, incluindo reestruturação de consultas de banco de dados, armazenamento em cache e refinamento da lógica de negócios.

As melhorias nos tempos de processamento em lote e na utilização dos recursos do sistema ajudam você a igualar os níveis de performance do mainframe em seus sistemas modernizados. Essa abordagem mantém a equivalência funcional durante a transição para arquiteturas modernas baseadas em nuvem.

Para usar este padrão, configure seu sistema e identifique hotspots de performance seguindo as instruções na seção [Épicos](#optimize-performance-aws-blu-age-modernized-application-epics) e aplique as técnicas de otimização abordadas em detalhes na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture).

## Pré-requisitos e limitações
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo modernizado da AWS Blu Age
+ Uma [JProfiler licença](https://www.ej-technologies.com/store/jprofiler)
+ Privilégios administrativos para instalar o cliente do banco de dados e as ferramentas de criação de perfil
+ AWS Certificação Blu Age [Level 3](https://bluinsights.aws/certification/)
+ Compreensão de nível intermediário da estrutura AWS Blu Age, estrutura de código gerada e programação Java

**Limitações**

As seguintes capacidades e recursos de otimização estão fora do escopo desse padrão:
+ Otimização da latência de rede entre os níveis de aplicações
+ Otimizações em nível de infraestrutura por meio de tipos de instância do Amazon Elastic Compute Cloud (Amazon) e otimização de armazenamento EC2
+ Teste simultâneo de carga de usuário e teste de estresse

**Versões do produto**
+ JProfiler versão 13.0 ou posterior (recomendamos a versão mais recente)
+ pgAdmin versão 8.14 ou posterior

## Arquitetura
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Esse padrão configura um ambiente de criação de perfil para um aplicativo AWS Blu Age usando ferramentas como o JProfiler pGADmin. Ele suporta otimização por meio do DAOManager and SQLExecution Builder APIs fornecido pela AWS Blu Age.

O restante desta seção fornece informações detalhadas e exemplos para identificar hotspots de performance e estratégias de otimização para suas aplicações modernizadas. As etapas na seção [Épicos](#optimize-performance-aws-blu-age-modernized-application-epics) remetem a essas informações para obter mais orientações.

**Identificação de hotspots de performance em aplicações de mainframe modernizadas**

Em aplicações de mainframe modernizadas, os *hotspots de performance* são áreas específicas no código que causam lentidão ou ineficiências significativas. Esses hotspots geralmente são causados pelas diferenças arquitetônicas entre o mainframe e as aplicações modernizadas. Para identificar esses gargalos de desempenho e otimizar o desempenho do seu aplicativo modernizado, você pode usar três técnicas: registro em log de SQL, um `EXPLAIN` plano de consulta e análise. JProfiler 

*Técnica de identificação de hotspots: registro em log em SQL*

Os aplicativos Java modernos, incluindo aqueles que foram modernizados com o uso do AWS Blu Age, têm recursos integrados para registrar consultas SQL. Você pode habilitar registradores específicos em projetos do AWS Blu Age para rastrear e analisar as instruções SQL executadas pelo seu aplicativo. Essa técnica é particularmente útil para identificar padrões ineficientes de acesso ao banco de dados, como consultas individuais excessivas ou chamadas de banco de dados mal estruturadas, que podem ser otimizados por meio de lotes ou refinamento de consultas.

Para implementar o registro de SQL em seu aplicativo modernizado AWS Blu Age, defina o nível de registro `DEBUG` para instruções SQL no `application.properties` arquivo para capturar detalhes da execução da consulta:

```
level.org.springframework.beans.factory.support.DefaultListableBeanFactory : WARN
level.com.netfective.bluage.gapwalk.runtime.sort.internal: WARN
level.org.springframework.jdbc.core.StatementCreatorUtils: DEBUG
level.com.netfective.bluage.gapwalk.rt.blu4iv.dao: DEBUG
level.com.fiserv.signature: DEBUG
level.com.netfective.bluage.gapwalk.database.support.central: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.configuration.DatabaseConfiguration: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.DatabaseInteractionLoggerUtils: DEBUG
level.com.netfective.bluage.gapwalk.database.support.AbstractDatabaseSupport: DEBUG
level.com.netfective.bluage.gapwalk.rt: DEBUG
```

Monitore consultas de alta frequência e de baixa performance usando os dados registrados para identificar alvos de otimização. Concentre-se nas consultas em processos em lote, pois elas geralmente têm o maior impacto na performance.

*Técnica de identificação de hotspots: plano de consulta EXPLAIN*

Esse método usa os recursos de planejamento de consultas dos sistemas de gerenciamento de banco de dados relacional. Você pode usar comandos como `EXPLAIN` no PostgreSQL ou no MySQL, ou `EXPLAIN PLAN` no Oracle, para examinar como seu banco de dados pretende executar uma determinada consulta. A saída desses comandos fornece informações valiosas sobre a estratégia de execução da consulta, incluindo se os índices serão usados ou se as varreduras completas da tabela serão realizadas. Essas informações são essenciais para otimizar a performance da consulta, especialmente nos casos em que a indexação adequada pode reduzir significativamente o tempo de execução.

Extraia as consultas SQL mais repetitivas dos registros da aplicação e analise o caminho de execução das consultas de baixa performance usando o comando `EXPLAIN` específico do seu banco de dados. Veja a seguir um exemplo para um banco de dados PostgreSQL.

Consulta:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

Comando da `EXPLAIN`:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Saída:

```
Bitmap Heap Scan on tenk1 (cost=5.06..224.98 rows=100 width=244) 
Recheck Cond: (unique1 < 100) 
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=100 width=0)
Index Cond: (unique1 < 100)
```

A saída `EXPLAIN` pode ser interpretada da seguinte forma:
+ Leia o plano `EXPLAIN` das operações mais internas às mais externas (de baixo para cima).
+ Procure os termos-chave. Por exemplo, `Seq Scan` indica a varredura completa da tabela e `Index Scan` mostra o uso do índice.
+ Verifique os valores de custo: o primeiro número é o custo inicial e o segundo número é o custo total.
+ Veja o valor `rows` do número estimado de linhas de saída.

Neste exemplo, o mecanismo de consulta usa uma varredura de índice para encontrar as linhas correspondentes e, em seguida, busca somente essas linhas (`Bitmap Heap Scan`). Isso é mais eficiente do que escanear a tabela inteira, apesar do custo mais alto do acesso individual às linhas.

As operações de varredura de tabela na saída de um plano `EXPLAIN` indicam um índice ausente. A otimização requer a criação de um índice apropriado.

*Técnica de identificação de pontos de acesso: análise JProfiler *

JProfiler é uma ferramenta abrangente de criação de perfil Java que ajuda você a resolver gargalos de desempenho identificando chamadas lentas de banco de dados e chamadas com uso intenso de CPU. Essa ferramenta é particularmente eficaz na identificação de consultas SQL lentas e no uso ineficiente da memória.

Exemplo de análise para consulta:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

A visualização JProfiler Hot Spots fornece as seguintes informações:
+ Coluna **Tempo**
  + Mostra a duração total da execução (por exemplo, 329 segundos)
  + Exibe a porcentagem do tempo total de aplicação (por exemplo, 58,7%)
  + Ajuda a identificar as operações mais demoradas
+ Coluna **Tempo médio**
  + Mostra a duração por execução (por exemplo, 2.692 microssegundos)
  + Indica a performance individual da operação
  + Ajuda a identificar operações individuais lentas
+ Coluna **Eventos**
  + Mostra a contagem de execuções (por exemplo, 122.387 vezes)
  + Indica frequência de operação
  + Ajuda a identificar métodos chamados com frequência

Para os resultados do exemplo:
+ Alta frequência: 122.387 execuções indicam potencial de otimização
+ Preocupação com a performance: 2.692 microssegundos por tempo médio sugerem ineficiência
+ Impacto crítico: 58,7% do tempo total indica um grande gargalo

JProfiler pode analisar o comportamento do tempo de execução do seu aplicativo para revelar pontos de acesso que podem não ser aparentes por meio da análise estática de código ou do registro em SQL. Essas métricas ajudam você a identificar as operações que precisam de otimização e determinar a estratégia de otimização que seria mais eficaz. Para obter mais informações sobre JProfiler recursos, consulte a [JProfiler documentação](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Ao usar essas três técnicas (registro de SQL, `EXPLAIN` plano de consulta e JProfiler) em combinação, você pode obter uma visão holística das características de desempenho do seu aplicativo. Ao identificar e abordar os hotspots mais críticos de performance, você pode preencher a lacuna de performance entre sua aplicação de mainframe original e seu sistema modernizado baseado em nuvem.

Depois de identificar os hotspots de performance da sua aplicação, você pode aplicar estratégias de otimização, que são explicadas na próxima seção.

**Estratégias de otimização para modernização do mainframe**

Esta seção descreve as principais estratégias para otimizar aplicações que foram modernizadas por meio de sistemas de mainframe. Ele se concentra em três estratégias: usar as existentes APIs, implementar um cache eficaz e otimizar a lógica de negócios.

*Estratégia de otimização: usando a existente APIs*

AWS O Blu Age fornece várias interfaces DAO poderosas APIs que você pode usar para otimizar o desempenho. Duas interfaces principais — DAOManager e o SQLExecution Builder — oferecem recursos para aprimorar o desempenho do aplicativo.

**DAOManager**

DAOManager serve como interface principal para operações de banco de dados em aplicativos modernizados. Ela oferece vários métodos para aprimorar as operações no banco de dados e melhorar a performance da aplicação, principalmente para operações simples de criação, leitura, atualização e exclusão (CRUD) e processamento em lote.
+ **Use SetMaxResults.** Na DAOManager API, você pode usar o **SetMaxResults**método para especificar o número máximo de registros a serem recuperados em uma única operação de banco de dados. Por padrão, DAOManager recupera somente 10 registros por vez, o que pode levar a várias chamadas de banco de dados ao processar grandes conjuntos de dados. Use essa otimização quanda sua aplicação precisar processar um grande número de registros e estiver fazendo várias chamadas ao banco de dados para recuperá-los. Isso é particularmente útil em cenários de processamento em lote em que você está iterando em um grande conjunto de dados. No exemplo a seguir, o código à esquerda (antes da otimização) usa o valor padrão de recuperação de dados de dez registros. O código à direita (após a otimização) é configurado **setMaxResults**para recuperar 100.000 registros por vez.  
![\[Exemplo de uso SetMaxResults para evitar várias chamadas de banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**nota**  
Escolha lotes maiores com cuidado e verifique o tamanho do objeto, pois essa otimização aumenta o espaço ocupado pela memória.
+ ** SetOnGreatorOrEqual Substitua por SetOnEqual.** Essa otimização envolve a alteração do método usado para definir a condição de recuperação de registros. O **SetOnGreatorOrEqual**método recupera registros maiores ou iguais a um valor especificado, enquanto **SetOnEqual**recupera somente registros que correspondam exatamente ao valor especificado.

  Use **SetOnEqual**conforme ilustrado no exemplo de código a seguir, quando você sabe que precisa de correspondências exatas e atualmente está usando o **SetOnGreatorOrEqual**método seguido por **readNextEqual()**. Essa otimização reduz a recuperação desnecessária de dados.  
![\[Exemplo de uso SetOnEqual para recuperar registros com base em uma correspondência exata.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Use operações de gravação e atualização em lote.** Você pode usar operações em lote para agrupar várias operações de gravação ou atualização em uma única transação de banco de dados. Isso reduz o número de chamadas ao banco de dados e pode melhorar significativamente a performance de operações que envolvem vários registros.

  No exemplo a seguir, o código à esquerda executa operações de gravação em um loop, o que diminui a performance da aplicação. Você pode otimizar esse código usando uma operação de gravação em lote: durante cada iteração do loop `WHILE`, você adiciona registros a um lote até que o tamanho do lote atinja um tamanho predeterminado de cem. Em seguida, você pode liberar o lote quando ele atingir o tamanho do lote predeterminado e, em seguida, liberar todos os registros restantes para o banco de dados. Isso é particularmente útil em cenários em que você processa grandes conjuntos de dados que exigem atualizações.  
![\[Exemplo de agrupamento de várias operações em uma única transação de banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Adicione índices.** Adicionar índices é uma otimização em nível de banco de dados que pode melhorar significativamente a performance da consulta. Um índice permite que o banco de dados localize rapidamente linhas com um valor de coluna específico sem escanear a tabela inteira. Use a indexação em colunas que são frequentemente usadas em cláusulas `WHERE`, condições `JOIN` ou declarações `ORDER BY`. Isso é particularmente importante para tabelas grandes ou quando a recuperação rápida de dados é crucial.

**SQLExecutionConstrutor**

SQLExecutionO Builder é uma API flexível que você pode usar para controlar as consultas SQL que serão executadas, buscar somente determinadas colunas, usando e `INSERT` usando nomes `SELECT` de tabelas dinâmicas. No exemplo a seguir, o SQLExecutor Builder usa uma consulta personalizada que você define. 

![\[Exemplo de uso do SQLExecutor Builder com uma consulta personalizada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Escolhendo entre um DAOManager e o SQLExecution Builder**

A escolha entre elas APIs depende do seu caso de uso específico:
+ Use DAOManager quando quiser que o AWS Blu Age Runtime gere as consultas SQL em vez de escrevê-las você mesmo.
+ Escolha o SQLExecution Builder quando precisar escrever consultas SQL para aproveitar os recursos específicos do banco de dados ou escrever consultas SQL ideais.

*Estratégia de otimização: armazenamento em cache*

Em aplicações modernizadas, a implementação de estratégias eficazes de armazenamento em cache pode reduzir significativamente as chamadas ao banco de dados e melhorar os tempos de resposta. Isso ajuda a preencher a lacuna de performance entre os ambientes de mainframe e nuvem.

Em aplicativos AWS Blu Age, implementações simples de cache usam estruturas de dados internas, como mapas de hash ou listas de matrizes, para que você não precise configurar uma solução de cache externa que exija custo e reestruturação de código. Essa abordagem é particularmente eficaz para dados que são acessados com frequência, mas alterados com pouca frequência. Ao implementar o armazenamento em cache, considere as restrições de memória e os padrões de atualização para garantir que os dados em cache permaneçam consistentes e forneçam benefícios reais de performance.

A chave para o sucesso do armazenamento em cache é identificar os dados certos para armazenar em cache. No exemplo a seguir, o código à esquerda sempre lê os dados da tabela, enquanto o código à direita lê os dados da tabela quando o mapa de hash local não tem um valor para uma determinada chave. `cacheMap` é um objeto de mapa de hash criado no contexto do programa e limpo no método de limpeza do contexto do programa.

Armazenamento em cache com DAOManager:

![\[Exemplo de otimizações de cache com. DAOManager\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Armazenamento em cache com o SQLExecution Builder:

![\[Exemplo de otimizações de cache com o Builder. SQLExecution\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Estratégia de otimização: otimização da lógica de negócios*

A otimização da lógica de negócios se concentra na reestruturação do código gerado automaticamente pelo AWS Blu Age para melhor se alinhar aos recursos da arquitetura moderna. Isso se torna necessário quando o código gerado mantém a mesma estrutura lógica do código antigo do mainframe, o que pode não ser ideal para sistemas modernos. O objetivo é melhorar a performance e, ao mesmo tempo, manter a equivalência funcional com a aplicação original.

Essa abordagem de otimização vai além de simples ajustes de API e estratégias de armazenamento em cache. Ela envolve mudanças na forma como a aplicação processa os dados e interage com o banco de dados. As otimizações comuns incluem evitar operações de leitura desnecessárias para atualizações simples, remover chamadas redundantes ao banco de dados e reestruturar os padrões de acesso aos dados para melhor se alinharem à arquitetura moderna de aplicações. Veja a seguir alguns exemplos:
+ **Atualizar dados diretamente no banco de dados. **Reestruture sua lógica de negócios usando atualizações diretas de SQL em vez de várias DAOManager operações com loops. Por exemplo, o código a seguir (lado esquerdo) faz várias chamadas ao banco de dados e usa memória excessiva. Especificamente, ele usa várias operações de leitura e gravação de banco de dados em loops, atualizações individuais em vez de processamento em lote e criação desnecessária de objetos para cada iteração.

  O código otimizado a seguir (lado direito) usa uma única operação de atualização do Direct SQL. Especificamente, ele usa uma única chamada de banco de dados em vez de várias chamadas e não exige loops porque todas as atualizações são tratadas em uma única instrução. Essa otimização proporciona melhor performance e utilização de recursos, além de reduzir a complexidade. Ele evita a injeção de SQL, fornece melhor armazenamento em cache do plano de consulta e ajuda a melhorar a segurança.  
![\[Reestruturando o código usando atualizações diretas de SQL em vez de DAOManager operações com loops.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**nota**  
Sempre use consultas parametrizadas para evitar a injeção de SQL e garantir o gerenciamento adequado das transações.
+ **Reduzir as chamadas redundantes do banco de dados.** Chamadas redundantes de banco de dados podem afetar significativamente a performance da aplicação, principalmente quando ocorrem dentro de loops. Uma técnica de otimização simples, mas eficaz, é evitar repetir a mesma consulta ao banco de dados várias vezes. A comparação de código a seguir demonstra como mover a chamada `retrieve()` do banco de dados para fora do loop evita a execução redundante de consultas idênticas, o que melhora a eficiência.  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Reduzir as chamadas do banco de dados usando a cláusula `JOIN`**** em SQL.** Implemente o SQLExecution Builder para minimizar as chamadas para o banco de dados. SQLExecutionO Builder fornece mais controle sobre a geração de SQL e é particularmente útil para consultas complexas que DAOManager não podem ser processadas com eficiência. Por exemplo, o código a seguir usa várias DAOManager chamadas:

  ```
  List<Employee> employees = daoManager.readAll();
  for(Employee emp : employees) {
      Department dept = deptManager.readById(emp.getDeptId());  // Additional call for each employee
      Project proj = projManager.readById(emp.getProjId());     // Another call for each employee
      processEmployeeData(emp, dept, proj);
  }
  ```

  O código otimizado usa uma única chamada de banco de dados no SQLExecution Builder:

  ```
  SQLExecutionBuilder builder = new SQLExecutionBuilder();
  builder.append("SELECT e.*, d.name as dept_name, p.name as proj_name");
  builder.append("FROM employee e");
  builder.append("JOIN department d ON e.dept_id = d.id");
  builder.append("JOIN project p ON e.proj_id = p.id");
  builder.append("WHERE e.status = ?", "ACTIVE");
  
  List<Map<String, Object>> results = builder.execute();  // Single database call
  for(Map<String, Object> result : results) {
      processComplexData(result);
  }
  ```

*Usar estratégias de otimização em conjunto*

Essas três estratégias funcionam sinergicamente: APIs fornecem as ferramentas para acesso eficiente aos dados, o armazenamento em cache reduz a necessidade de recuperação repetida de dados e a otimização da lógica de negócios garante que elas APIs sejam usadas da maneira mais eficaz possível. O monitoramento e o ajuste regulares dessas otimizações garantem melhorias contínuas na performance, mantendo a confiabilidade e a funcionalidade da aplicação modernizada. A chave para o sucesso está em entender quando e como aplicar cada estratégia com base nas características e nas metas de performance da sua aplicação.

## Ferramentas
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)é uma ferramenta de criação de perfil Java projetada para desenvolvedores e engenheiros de desempenho. Ele analisa aplicativos Java e ajuda a identificar gargalos de desempenho, vazamentos de memória e problemas de segmentação. JProfiler oferece perfis de CPU, memória e thread, bem como monitoramento de banco de dados e máquina virtual Java (JVM) para fornecer informações sobre o comportamento do aplicativo.
**nota**  
Como alternativa JProfiler, você pode usar o [Java VisualVM](https://visualvm.github.io/). Essa é uma ferramenta gratuita de criação de perfil e monitoramento de performance de código aberto para aplicações Java que oferece monitoramento em tempo real do uso da CPU, consumo de memória, gerenciamento de threads e estatísticas de coleta de resíduos. Como o Java VisualVM é uma ferramenta JDK integrada, ele é mais econômico do que para as necessidades básicas de criação de perfil. JProfiler 
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento e desenvolvimento de código aberto para o PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados. Você pode usar o pgAdmin para realizar uma ampla variedade de tarefas, desde escrever consultas SQL simples até desenvolver bancos de dados complexos. Seus recursos incluem uma sintaxe destacando o editor SQL, um editor de código do lado do servidor, um agente de agendamento para tarefas SQL, shell e em lote e suporte para todos os recursos do PostgreSQL para usuários novatos e experientes do PostgreSQL.

## Práticas recomendadas
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identificação de hotspots de performance:
+ Documente as métricas básicas de performance antes de iniciar as otimizações.
+ Estabeleça metas claras de melhoria de performance com base nos requisitos de negócios.
+ Ao fazer o benchmarking, desative o registro em log detalhado, pois isso pode afetar a performance.
+ Configure uma suíte de testes de performance e execute-a periodicamente.
+ Use a versão mais recente do pgAdmin. (As versões mais antigas não oferecem suporte ao plano de consulta `EXPLAIN`.)
+ Para fins de benchmarking, desconecte JProfiler após a conclusão das otimizações, pois isso aumenta a latência.
+ Para fins de benchmarking, certifique-se de executar o servidor no modo de inicialização em vez do modo de depuração, pois o modo de depuração aumenta a latência.

Estratégias de otimização:
+ Configure **SetMaxResults**valores no `application.yaml` arquivo para especificar lotes do tamanho certo de acordo com as especificações do sistema.
+ Configure **SetMaxResults**valores com base no volume de dados e nas restrições de memória.
+ **SetOnGreatorOrEqual**Mude para **SetOnEqual**somente quando ocorrerem chamadas subsequentes`.readNextEqual()`.
+ Nas operações de gravação ou atualização em lote, processe o último lote separadamente, pois ele pode ser menor que o tamanho do lote configurado e pode ser perdido pela operação de gravação ou atualização.

Armazenamento em cache:
+ Os campos que são introduzidos para armazenamento em cache em `processImpl`, que mudam a cada execução, devem sempre ser definidos no contexto de `processImpl`. Os campos também devem ser limpos usando o método `doReset()` ou `cleanUp()`.
+ Ao implementar o armazenamento em cache em memória, dimensione o cache corretamente. Caches muito grandes armazenados na memória podem consumir todos os recursos, o que pode afetar a performance geral da sua aplicação.

SQLExecutionConstrutor:
+ Para consultas que você planeja usar no SQLExecution Builder, use nomes de chave como`PROGRAMNAME_STATEMENTNUMBER`.
+ Ao usar o SQLExecution Builder, sempre verifique o `Sqlcod` campo. Esse campo contém um valor que especifica se a consulta foi executada corretamente ou se encontrou algum erro.
+ Use consultas parametrizadas para evitar a injeção de SQL.

Otimização da lógica de negócios:
+ Mantenha a equivalência funcional ao reestruturar o código e execute testes de regressão e comparação de bancos de dados para o subconjunto relevante de programas.
+ Mantenha snapshots de criação de perfil para comparação.

## Épicos
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Instalação JProfiler e pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale e configure JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 
| Instale e configure o pGadmin. | Nesta etapa, você instala e configura um cliente de banco de dados para consultar seu banco de dados. Este padrão usa um banco de dados PostgreSQL e o pgAdmin como cliente de banco de dados. Se você estiver usando outro mecanismo de banco de dados, siga a documentação do cliente de banco de dados correspondente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 

### Identificar hotspots
<a name="identify-hotspots"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Ative o registro de consultas SQL em seu aplicativo AWS Blu Age. | Ative os registradores para o registro de consultas SQL no `application.properties` arquivo do seu aplicativo AWS Blu Age, conforme explicado na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Gere e analise planos de consulta `EXPLAIN` para identificar hotspots de performance do banco de dados. | Para obter detalhes, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Crie um JProfiler instantâneo para analisar um caso de teste de baixo desempenho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 
| Analise o JProfiler instantâneo para identificar gargalos de desempenho. | Siga estas etapas para analisar o JProfiler instantâneo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Para obter mais informações sobre o uso JProfiler, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture) e a [JProfiler documentação](https://www.ej-technologies.com/jprofiler/docs). | Desenvolvedor de aplicativos | 

### Estabelecer uma linha de base
<a name="establish-a-baseline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Estabeleça uma linha de base de performance antes de implementar as otimizações. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 

### Aplicar as estratégias de otimização
<a name="apply-optimization-strategies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Otimize as chamadas de leitura. | Otimize a recuperação de dados usando o DAOManager **SetMaxResults**método. Para obter mais informações sobre essa abordagem, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos, DAOManager | 
| Refatore a lógica de negócios para evitar várias chamadas para o banco de dados. | Reduza as chamadas ao banco de dados usando uma cláusula `JOIN` SQL. Para obter detalhes e exemplos, consulte *Otimização da lógica de negócios* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos, SQLExecution Construtor | 
| Refatore o código para usar o armazenamento em cache para reduzir a latência das chamadas de leitura. | Para obter informações sobre essa técnica, consulte *Armazenamento em cache* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Reescreva um código ineficiente que usa várias DAOManager operações para operações simples de atualização. | Para obter mais informações sobre a atualização de dados diretamente no banco de dados, consulte *Otimização da lógica de negócios* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 

### Testar as estratégias de otimização
<a name="test-optimization-strategies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide cada alteração de otimização de forma iterativa, mantendo a equivalência funcional. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)O uso de métricas básicas como referência garante uma medição precisa do impacto de cada otimização, mantendo a confiabilidade do sistema. | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ao executar a aplicação moderna, você vê uma exceção com o erro `Query_ID not found`. | Para resolver esse problema:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Você adicionou índices, mas nenhuma melhoria na performance. | Siga estas etapas para garantir que o mecanismo de consulta esteja usando o índice:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Você encontra uma out-of-memory exceção. | Verifique se o código libera a memória mantida pela estrutura de dados. | 
| As operações de gravação em lote resultam na falta de registros na tabela | Revise o código para garantir que uma operação de gravação adicional seja executada quando a contagem de lotes não for zero. | 
| O log do SQL não aparece nos logs da aplicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Recursos relacionados
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Refatorando aplicativos automaticamente com o AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) *(Guia do usuário)AWS Mainframe Modernization *
+ [Documentação do pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentação](https://www.ej-technologies.com/jprofiler/docs)

# Proteja e simplifique o acesso de usuários em um banco de dados de federação Db2 na AWS usando contextos confiáveis
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Resumo
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Muitas empresas estão migrando suas workloads de mainframe antigas para a Amazon Web Services (AWS). Essa migração inclui a mudança do IBM Db2 para z/OS bancos de dados para o Db2 para Linux, Unix e Windows (LUW) na Amazon Elastic Compute Cloud (Amazon). EC2 Durante uma migração em fases do local para a AWS, talvez os usuários precisem acessar dados no IBM Db2 z/OS e no Db2 LUW na EC2 Amazon até que todos os aplicativos e bancos de dados sejam totalmente migrados para o Db2 LUW. Nesses cenários de acesso remoto a dados, a autenticação do usuário pode ser um desafio porque plataformas diferentes usam mecanismos de autenticação diferentes.

Esse padrão aborda como configurar um servidor de federação no Db2 para LUW com o Db2 z/OS como um banco de dados remoto. O padrão usa um contexto confiável para propagar a identidade de um usuário do Db2 LUW para o Db2 z/OS sem precisar se autenticar novamente no banco de dados remoto. Para obter mais informações sobre contextos confiáveis, consulte a seção [Informações adicionais](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional).

## Pré-requisitos e limitações
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Db2 em execução em uma instância da Amazon EC2 
+ Um Db2 remoto para z/OS banco de dados executado no local
+ A rede local conectada à AWS por meio do AWS [ Site-to-SiteVPN ou do AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

## Arquitetura
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Arquitetura de destino**

![\[O mainframe local se conecta por meio do servidor Db2 local e da VPN ao Db2 DB on. EC2\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Ferramentas
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Serviços 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.
+ [O AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

**Outras ferramentas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) é o comando interface de linha de comandos (CLI) do Db2.

## Épicos
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Habilite a federação no banco de dados Db2 LUW executado na AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Habilite a federação no DB2 LUW DB. | Para habilitar a federação no DB2 LUW, execute o comando a seguir.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Reinicie o banco de dados. | Para reiniciar o banco de dados, execute o seguinte comando:<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Catalogue o banco de dados remoto
<a name="catalog-the-remote-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Catalogue o z/OS subsistema remoto do Db2. | Para catalogar o z/OS banco de dados Db2 remoto no Db2 LUW executado na AWS, use o seguinte exemplo de comando.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Catalogue o banco de dados remoto | Para excluir um banco de dados remoto, use o seguinte comando de exemplo.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Crie a definição de servidor remoto
<a name="create-the-remote-server-definition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Colete as credenciais do usuário para o banco de dados Db2 z/OS remoto. | Antes de prosseguir com as próximas etapas, reúna as seguintes informações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Crie o encapsulamento do DRDA. | Para criar o encapsulamento do DRDA, execute o seguinte comando.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Crie a definição do servidor. | Para criar a definição do servidor, execute o comando de exemplo a seguir.<pre>CREATE SERVER ndbserver<br />TYPE DB2/ZOS VERSION 12<br />WRAPPER DRDA<br />AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );</pre>Nessa definição, `FED_PROXY_USER` especifica o usuário proxy que será usado para estabelecer conexões confiáveis com o banco de dados Db2 z/OS . O ID de usuário e a senha de autorização são necessários somente para criar o objeto de servidor remoto no banco de dados Db2 LUW. Eles não serão usados posteriormente durante o runtime. | DBA | 

### Crie mapeamentos de usuários
<a name="create-user-mappings"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um mapeamento de usuário para o usuário proxy. | Para criar um mapeamento de usuário para o usuário do proxy, execute o comando a seguir.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Crie mapeamentos de usuário para cada usuário no Db2 LUW. | Crie mapeamentos de usuário para todos os usuários no banco de dados Db2 LUW na AWS que precisam acessar dados remotos por meio do usuário proxy. Para criar os mapeamentos de usuário, execute o seguinte comando.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>A declaração especifica que um usuário no Db2 LUW (`PERSON1`) pode estabelecer uma conexão confiável com o banco de dados Db2 z/OS remoto (). `USE_TRUSTED_CONTEXT 'Y'` Depois que a conexão é estabelecida por meio do usuário proxy, o usuário pode acessar os dados usando o ID de z/OS usuário do Db2 (`REMOTE_AUTHID 'USERZID'`). | DBA | 

### Crie o objeto de contexto confiável
<a name="create-the-trusted-context-object"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o objeto de contexto confiável. | Para criar o objeto de contexto confiável no z/OS banco de dados Db2 remoto, use o comando de exemplo a seguir.<pre>CREATE TRUSTED CONTEXT CTX_LUW_ZOS<br />BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY<br />ATTRIBUTES (<br />ADDRESS '10.10.10.10'<br />)<br />NO DEFAULT ROLE<br />ENABLE<br />WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;</pre>Nessa definição, `CTX_LUW_ZOS` é um nome arbitrário para o objeto de contexto confiável. O objeto contém o ID do usuário do proxy e o endereço IP do servidor do qual a conexão confiável deve se originar. Neste exemplo, o servidor é o banco de dados Db2 LUW na AWS. Você pode usar o nome do domínio em vez do endereço IP. A cláusula `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indica que a troca da ID de usuário em uma conexão confiável é permitida para cada ID de usuário. Não é necessário fornecer uma senha. | DBA | 

## Recursos relacionados
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [IBM Resource Access Control Facility (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federação IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contextos confiáveis](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Mais informações
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contextos confiáveis do Db2**

Um contexto confiável é um objeto de banco de dados Db2 que define uma relação de confiança entre um servidor federado e um servidor de banco de dados remoto. Para definir um relacionamento confiável, o contexto confiável especifica atributos de confiança. Existem três tipos de atributos de confiança:
+ A ID de autorização do sistema que faz a solicitação inicial de conexão com o banco de dados
+ O endereço IP ou nome de domínio a partir do qual a conexão é feita
+ A configuração de criptografia para comunicações de dados entre o servidor do banco de dados e o cliente do banco de dados

Uma conexão confiável é estabelecida quando todos os atributos de uma solicitação de conexão correspondem aos atributos especificados em qualquer objeto de contexto confiável definido no servidor. Existem dois tipos de conexões confiáveis: implícitas e explícitas. Depois que uma conexão confiável implícita é estabelecida, o usuário herda uma função que não está disponível para ele fora do escopo dessa definição de conexão confiável. Depois que uma conexão confiável explícita é estabelecida, os usuários podem ser ativados na mesma conexão física, com ou sem autenticação. Além disso, os usuários do Db2 podem receber funções que especificam privilégios que devem ser usados somente na conexão confiável. Esse padrão usa uma conexão confiável explícita.

*Contexto confiável nesse padrão*

Após a conclusão do padrão, PERSON1 no Db2, o LUW acessa os dados remotos do Db2 usando um contexto z/OS confiável federado. A conexão para PERSON1 é estabelecida por meio de um usuário proxy se a conexão for originada do endereço IP ou nome de domínio especificado na definição de contexto confiável. Depois que a conexão é estabelecida, o ID de z/OS usuário PERSON1 do Db2 correspondente é trocado sem reautenticação, e o usuário pode acessar os dados ou objetos com base nos privilégios do Db2 configurados para esse usuário.

*Benefícios dos contextos federados confiáveis*
+ Essa abordagem mantém o princípio do privilégio mínimo ao eliminar o uso de um ID de usuário ou ID de aplicativo comum que precisaria de um superconjunto de todos os privilégios exigidos por todos os usuários.
+ A identidade real do usuário que realiza a transação no banco de dados federado e remoto é sempre conhecida e pode ser auditada.
+ O desempenho melhora porque a conexão física está sendo reutilizada entre os usuários sem a necessidade de reautenticação do servidor federado.

# Transfira z/OS dados do Db2 em grande escala para o Amazon S3 em arquivos CSV
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar e Ivan Schuster, Amazon Web Services*

## Resumo
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Um mainframe ainda é um sistema de registro em muitas empresas que contém uma grande quantidade de dados, incluindo entidades de dados mestres com registros de transações comerciais atuais e históricas. Geralmente é isolado e não é facilmente acessado pelos sistemas distribuídos dentro da mesma empresa. Com o surgimento da tecnologia de nuvem e a democratização de big data, as empresas estão interessadas em usar os insights ocultos nos dados do mainframe para desenvolver novos recursos de negócios.

Com esse objetivo, as empresas estão procurando abrir seus dados Db2 de mainframe em seu ambiente de nuvem da Amazon Web Services (AWS). Os motivos comerciais são diversos e os métodos de transferência variam de caso a caso. Talvez você prefira conectar seu aplicativo diretamente ao mainframe ou talvez prefira replicar seus dados quase em tempo real. Se o caso de uso for alimentar um data warehouse ou um data lake, ter uma up-to-date cópia não é mais uma preocupação, e o procedimento descrito nesse padrão pode ser suficiente, especialmente se você quiser evitar custos de licenciamento de produtos de terceiros. Outro caso de uso pode ser a transferência de dados do mainframe para um projeto de migração. Em um cenário de migração, os dados são necessários para realizar o teste de equivalência funcional. A abordagem descrita nesta postagem é uma forma econômica de transferir os dados do Db2 para o ambiente de Nuvem AWS.

Como o Amazon Simple Storage Service (Amazon S3) é um dos serviços mais integrados da AWS, você pode acessar os dados de lá e coletar insights diretamente usando outros serviços da AWS, como Amazon Athena, funções do AWS Lambda ou Amazon. QuickSight Você também pode carregar os dados no Amazon Aurora ou no Amazon DynamoDB usando o AWS Glue ou o AWS Database Migration Service (AWS DMS). Com esse objetivo em mente, isso descreve como descarregar dados do Db2 em arquivos CSV no formato ASCII no mainframe e transferir os arquivos para o Amazon S3.

Para esse fim, [scripts de mainframe](https://github.com/aws-samples/unloaddb2-samples) foram desenvolvidos para ajudar a gerar linguagens de controle de tarefas (JCLs) para descarregar e transferir quantas tabelas do Db2 forem necessárias.

## Pré-requisitos e limitações
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Pré-requisitos **
+ Um usuário do sistema z/OS operacional IBM com autorização para executar scripts Restructured Extended Executor (REXX) e JCL.
+ Acesso ao z/OS Unix System Services (USS) para gerar chaves públicas e privadas SSH (Secure Shell).
+ Um bucket do S3 gravável. Para obter mais informações, consulte [Criar um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) na documentação do Amazon S3.
+ Um servidor habilitado para o AWS Transfer Family SSH File Transfer Protocol (SFTP) usando o **serviço gerenciado** como provedor de identidade e o Amazon S3 como serviço de armazenamento da AWS. Para obter mais informações, consulte [Criar um servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) na documentação do AWS Transfer Family.

**Limitações**
+ Essa abordagem não é adequada para sincronização de dados quase em tempo real ou em tempo real.
+ Os dados só podem ser movidos do Db2 z/OS para o Amazon S3, e não o contrário.

## Arquitetura
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Pilha de tecnologia de origem**
+ Mainframe executando Db2 em z/OS

**Pilha de tecnologias de destino**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ banco de dados de origem

**Arquitetura de origem e destino**

O diagrama a seguir mostra o processo de geração, extração e transferência de z/OS dados do Db2 no formato ASCII CSV para um bucket S3.

![\[Data flow from corporate data center to Nuvem AWS, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Uma lista de tabelas é selecionada para migração de dados do catálogo do Db2.

1. A lista é usada para impulsionar a geração de trabalhos de descarga com as colunas numéricas e de dados no formato externo.

1. Em seguida, os dados são transferidos para o Amazon S3 usando o AWS Transfer Family.

1. Uma tarefa de extração, transformação e carregamento (ETL) do AWS Glue pode transformar os dados e carregá-los em um bucket processado no formato especificado, ou o AWS Glue pode alimentar os dados diretamente no banco de dados.

1. O Amazon Athena e o Amazon QuickSight podem ser usados para consultar e renderizar os dados para impulsionar a análise.

O diagrama a seguir mostra um fluxo lógico de todo o processo.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. O primeiro JCL, chamado TABNAME, usará o utilitário DSNTIAUL do Db2 para extrair e gerar a lista de tabelas que você planeja descarregar do Db2. Para escolher suas tabelas, você deve adaptar manualmente a entrada SQL para selecionar e adicionar critérios de filtro para incluir um ou mais esquemas do Db2.

1. O segundo JCL, chamado REXXEXEC, usará o esqueleto JCL e o programa REXX fornecido para processar a lista de tabelas criada pelo JCL TABNAME e gerar um JCL por nome de tabela. Cada JCL conterá uma etapa para descarregar a tabela e outra etapa para enviar o arquivo para o bucket do S3 usando o protocolo SFTP.

1. A última etapa consiste em executar o JCL para descarregar a tabela e transferir o arquivo para a AWS. Todo o processo pode ser automatizado usando um programador on-premises ou na AWS.

## Ferramentas
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Serviços da AWS**
+ O [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) é um serviço de consultas interativas que permite analisar dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.
+ O [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) é um mecanismo de banco de dados relacional totalmente gerenciado criado para a nuvem e compatível com o MySQL e o PostgreSQL.
+ O [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado. Ele ajuda você a categorizar de forma confiável, limpar, enriquecer e mover dados de forma confiável entre armazenamento de dados e fluxos de dados.
+  QuickSightA [Amazon](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de inteligência de negócios (BI) em escala de nuvem que ajuda você a visualizar, analisar e relatar seus dados em um único painel.
+ O [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) é um serviço de data warehouse em escala de petabytes gerenciado 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 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.
+ O [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) é um serviço de transferência seguro que permite transferir arquivos para dentro e para fora de serviços de armazenamento da AWS.

**Ferramentas de mainframe**
+ O [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) é um protocolo seguro de transferência de arquivos que permite o login remoto e a transferência de arquivos entre servidores. O SSH fornece segurança criptografando todo o tráfego.
+ O [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) é um programa de exemplo fornecido pela IBM para descarregar dados.
+ O [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) é um programa de utilitários em lote fornecido pela IBM para descarregar dados com opções diferentes do DSNTIAUL.
+ O [z/OS OpenSSH é uma porta de SSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) de software de código aberto executada no Unix System Service sob a rede do sistema operacional IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Ele fornece vários utilitários, incluindo ssh-keygen.
+ O script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) é usado para automatizar a geração de JCL com as etapas Db2 Unload e SFTP.

**Código **

O código desse padrão está disponível no repositório GitHub [unloaddb2](https://github.com/aws-samples/unloaddb2-samples).

## Práticas recomendadas
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Para o primeiro descarregamento, o gerado JCLs deve descarregar todos os dados da tabela.

Após o primeiro descarregamento completo, execute descargas incrementais para obter melhor desempenho e economia de custos. Atualize a consulta SQL no conjunto de modelos da JCL para acomodar quaisquer alterações no processo de descarga.

Você pode converter o esquema manualmente ou usando um script no Lambda com o Db2 SYSPUNCH como entrada. Para um processo industrial, a [AWS Schema Conversion Tool (SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)) é a opção preferida.

Por fim, use um programador baseado em mainframe ou um programador na AWS com um agente no mainframe para ajudar a gerenciar e automatizar todo o processo.

## Épicos
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configurar o bucket do S3
<a name="set-up-the-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Para obter instruções, consulte [Criar seu primeiro bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS geral | 

### Configurar o servidor Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um servidor habilitado para SFTP. | Para abrir e criar um servidor SFTP no [console do AWS Transfer Family](https://console.aws.amazon.com/transfer/), faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | AWS geral | 
| Criar um perfil do IAM para o Transfer Family. | Para criar um perfil do AWS Identity and Access Management (IAM) para que a Transfer Family acesse o Amazon S3, siga as instruções em [Criar um perfil e uma política do IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrador da AWS | 
| Adicionar um usuário gerenciado por serviços do Amazon S3. | Para adicionar o usuário gerenciado pelo serviço Amazon S3, siga as instruções na [Documentação da AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) e use seu ID do usuário do mainframe. | AWS geral | 

### Proteger o protocolo de comunicação
<a name="secure-the-communication-protocol"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a chave SSH. | No ambiente do USS do mainframe, execute o comando a seguir.<pre>ssh-keygen -t rsa</pre>Quando for solicitada uma frase secreta, mantenha-a vazia. | Desenvolvedor de mainframe | 
| Fornecer os níveis de autorização corretos para a pasta SSH e os arquivos-chave. | Por padrão, as chaves pública e privada serão armazenadas no diretório do usuário `/u/home/username/.ssh`.Você deve dar a autorização 644 para os arquivos de chave e 700 para a pasta.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Desenvolvedor de mainframe | 
| Copiar o conteúdo da chave pública para seu usuário gerenciado pelo serviço Amazon S3. | Para copiar o conteúdo da chave pública gerada pelo USS, abra o console do [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Desenvolvedor de mainframe | 

### Gere o JCLs
<a name="generate-the-jcls"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gerar a lista de tabelas do Db2 dentro do escopo. | Forneça o SQL de entrada para criar uma lista das tabelas que têm como escopo a migração de dados. Essa etapa exige que você especifique os critérios de seleção consultando a tabela do catálogo Db2 SYSIBM.SYSTABLES, usando uma cláusula WHERE do SQL. Os filtros podem ser personalizados para incluir um esquema específico ou nomes de tabelas que comecem com um prefixo específico ou com base em um timestamp para descarga incremental. A saída é capturada em um conjunto de dados sequencial físico (PS) no mainframe. Esse conjunto de dados funcionará como entrada para a próxima fase da geração do JCL.Antes de usar o JCL TABNAME (você pode renomeá-lo se necessário), faça as seguintes alterações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Trabalho de extração da lista de tabelas do Db2**<pre><Jobcard><br />//* <br />//* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA<br />//* <br />//STEP01  EXEC PGM=IEFBR14<br />//* <br />//DD1      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.TABLIST<br />//* <br />//DD2      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//UNLOAD  EXEC PGM=IKJEFT01,DYNAMNBR=20 <br />//SYSTSPRT DD  SYSOUT=* <br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//         DD  DISP=SHR,DSN=CEE.SCEERUN <br />//         DD  DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD <br />//SYSTSIN  DD  *<br />  DSN SYSTEM(DBCG) <br />  RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - <br />       LIB('DSNC10.DBCG.RUNLIB.LOAD')<br />  END<br />//SYSPRINT DD SYSOUT=*<br />//* <br />//SYSUDUMP DD SYSOUT=*<br />//* <br />//SYSREC00 DD DISP=(NEW,CATLG,DELETE),<br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            DSN=<HLQ1>.DSN81210.TABLIST <br />//* <br />//SYSPUNCH DD DISP=(NEW,CATLG,DELETE), <br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 <br />//            DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//SYSIN    DD * <br />   SELECT CHAR(CREATOR), CHAR(NAME)<br />     FROM SYSIBM.SYSTABLES <br />    WHERE OWNER = '<Schema>' <br />      AND NAME LIKE '<Prefix>%' <br />      AND TYPE = 'T'; <br />/* </pre> | Desenvolvedor de mainframe | 
| Modificar os modelos da JCL. | Os modelos JCL fornecidos com esse padrão contêm um cartão de trabalho genérico e nomes de bibliotecas. No entanto, a maioria dos sites de mainframe terá seus próprios padrões de nomenclatura para nomes do conjunto de dados, nomes de bibliotecas e cartões de trabalho. Por exemplo, uma classe de trabalho específica pode ser necessária para executar trabalhos do Db2. O Job Entry Subsytem é implementado JES2 e JES3 pode impor mudanças adicionais. As bibliotecas de carga padrão podem ter um primeiro qualificador diferente de `SYS1`, que é o padrão da IBM. Portanto, personalize os modelos de acordo com os padrões específicos do seu site antes de executá-los.Faça as seguintes alterações no esqueleto JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Esqueleto JCL de descarga e SFTP**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | Desenvolvedor de mainframe | 
| Gerar o JCL de descarga em massa. | Essa etapa envolve a execução de um script REXX em um ambiente ISPF usando JCL. Forneça a lista de tabelas dentro do escopo criadas na primeira etapa como entrada para a geração de JCL em massa em relação ao nome `TABLIST DD`. O JCL gerará um novo JCL por nome de tabela em um conjunto de dados particionado especificado pelo usuário em relação ao nome `ISPFILE DD`. Aloque essa biblioteca com antecedência. Cada novo JCL terá duas etapas: uma etapa para descarregar a tabela Db2 em um arquivo e uma etapa para enviar o arquivo para o bucket do S3.Faça as seguintes alterações no JCL REXXEXEC (você pode alterar o nome):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Trabalho de geração de JCL em massa**<pre>//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A,      <br />//         TIME=1440,NOTIFY=&SYSUID<br />//* Most of the values required can be updated to your site specific<br />//* values using the command 'TSO ISRDDN' in your ISPF session. <br />//* Update all the lines tagged with //update marker to desired<br />//* site specific values. <br />//ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25<br />//SYSPROC   DD DISP=SHR,DSN=USER.Z23D.CLIST<br />//SYSEXEC   DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB<br />//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU<br />//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSENU<br />//          DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB<br />//ISPMLIB   DD DSN=ISP.SISPMENU,DISP=SHR<br />//ISPTLIB   DD DDNAME=ISPTABL<br />//          DD DSN=ISP.SISPTENU,DISP=SHR<br />//ISPTABL   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPPROF   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPLOG    DD SYSOUT=*,RECFM=VA,LRECL=125<br />//SYSPRINT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSHELP   DD DSN=SYS1.HELP,DISP=SHR <br />//SYSOUT    DD SYSOUT=*<br />//* Input list of tablenames<br />//TABLIST   DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST<br />//* Output pds<br />//ISPFILE   DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN<br />//SYSTSIN   DD *<br />ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>)<br />/*</pre>Antes de usar o script REXX, faça as seguintes alterações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script ZSTEPS REXX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Desenvolvedor de mainframe | 

### Execute o JCLs
<a name="run-the-jcls"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Executar a etapa Db2 Unload. | Após a geração do JCL, você terá JCLs quantas tabelas precisarem ser descarregadas.Esse histórico usa um exemplo gerado pela JCL para explicar a estrutura e as etapas mais importantes.Não é necessária nenhuma ação de sua parte. As informações a seguir são destinadas somente para referência. Se sua intenção é enviar o JCLs que você gerou na etapa anterior, vá para *Enviar a LODnnnnn JCLs* tarefa.Ao descarregar dados do Db2 usando um JCL com o utilitário DSNUTILB Db2 fornecido pela IBM, você deve garantir que os dados descarregados não contêm dados numéricos compactados. Para fazer isso, use o parâmetro DSNUTILB `DELIMITED`.O parâmetro `DELIMITED` tem suporte para o descarregamento dos dados no formato CSV adicionando um caractere como delimitador e aspas duplas ao campo de texto, removendo o preenchimento na coluna VARCHAR e convertendo todos os campos numéricos em FORMATO EXTERNO, incluindo os campos de DATA.O exemplo a seguir mostra a aparência da etapa de descarga no JCL gerado, usando o caractere de vírgula como delimitador.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Desenvolvedor de mainframe, engenheiro de sistemas | 
| Executar a etapa SFTP. | Para usar o protocolo SFTP de um JCL, use o utilitário BPXBATCH. O utilitário SFTP não pode acessar os conjuntos de dados MVS diretamente. Você pode usar o comando copy (`cp`) para copiar o arquivo sequencial `&USRPFX..DB2.UNLOAD.&JOBNAME` para o diretório USS, onde ele se torna `&TABNAME..csv`.Execute o comando `sftp` usando a chave privada (`id_rsa`) e usando o ID de usuário do RACF como nome de usuário para se conectar ao endereço IP do AWS Transfer Family.<pre>SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE;<br /> rm &TABNAME..csv; </pre> | Desenvolvedor de mainframe, engenheiro de sistemas | 
| Envie LODnnnnn JCLs o. | O JCL anterior gerou todas as tabelas LODnnnnn JCL que precisam ser descarregadas, transformadas em CSV e transferidas para o bucket do S3.Execute o `submit` comando em todos os JCLs que foram gerados. | Desenvolvedor de mainframe, engenheiro de sistemas | 

## Recursos relacionados
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Para obter mais informações sobre as diferentes ferramentas e soluções usadas neste documento, consulte o seguinte:
+ [Guia do usuário do z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Exemplos de instruções de controle UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Descarregando arquivos delimitados](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family – Criar um servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family – Trabalhar com usuários gerenciados por serviços](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Mais informações
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Depois de ter seus dados do Db2 no Amazon S3, você tem várias maneiras de desenvolver novos insights. Como o Amazon S3 se integra aos serviços de análise de dados da AWS, você pode consumir ou expor livremente esses dados no lado distribuído. Por exemplo, você pode fazer o seguinte:
+ Crie um [data lake no Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) e extraia informações valiosas usando query-in-place ferramentas de análise e aprendizado de máquina sem mover os dados.
+ Inicie uma [função do Lambda](https://aws.amazon.com/lambda/) configurando um fluxo de trabalho de processamento pós upload integrado ao AWS Transfer Family.
+ Desenvolva novos microsserviços para acessar os dados no Amazon S3 ou [em um banco de dados totalmente gerenciado](https://aws.amazon.com/free/database/?trk=ps_a134p000007CdNEAA0&trkCampaign=acq_paid_search_brand&sc_channel=PS&sc_campaign=acquisition_FR&sc_publisher=Google&sc_category=Database&sc_country=FR&sc_geo=EMEA&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content=Relational%20Database_e&sc_matchtype=e&sc_segment=548727697660&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Database|Solution|FR|EN|Text&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service&ef_id=CjwKCAjwzt6LBhBeEiwAbPGOgcGbQIl1-QsbHfWTgMZSSHEXzSG377R9ZyK3tCcbnHuT45L230FufxoCeEkQAvD_BwE:G:s&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service) usando o [AWS Glue](https://aws.amazon.com/glue/), que é um serviço de integração de dados de tecnologia sem servidor que facilita a descoberta, preparação e combinação de dados para análise, machine learning e desenvolvimento de aplicativos.

Em um caso de uso de migração, como você pode transferir qualquer dado do mainframe para o S3, você pode fazer o seguinte:
+ Retire a infraestrutura física e crie uma estratégia de arquivamento de dados econômica com o Amazon S3 Glacier e o S3 Glacier Deep Archive. 
+ crie soluções de backup e restauração escaláveis, duráveis e seguras com o Amazon S3 e outros serviços da AWS, como o S3 Glacier e o Amazon Elastic File System (Amazon EFS), para aumentar ou substituir os recursos on-premises existentes.

# Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

*Shubham Roy, Subramanyam Malisetty e Harshitha Shashidhar, da Amazon Web Services*

## Resumo
<a name="transform-easytrieve-modern-languages-summary"></a>

[Esse padrão fornece orientação prescritiva para uma transformação mais rápida e de menor risco das cargas de trabalho do mainframe Broadcom [Easytrieve Report](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) Generator (EZT) usando transformação personalizada.AWS Transform](https://aws.amazon.com/transform/custom/) language-to-language Ele aborda os desafios de modernizar cargas de trabalho EZT de mainframe proprietárias e de nicho que são comumente usadas para processamento de dados em lote e geração de relatórios. O padrão substitui abordagens de migração caras, demoradas e propensas a erros, que dependem de ferramentas proprietárias e da rara experiência em mainframe, por uma solução automatizada de IA agente na qual você cria. AWS Transform

Esse padrão fornece uma definição de transformação personalizada pronta para uso para a transformação EZT. A definição usa várias entradas de transformação:
+ [Regras de negócios do EZT extraídas usando AWS Transform para mainframe](https://aws.amazon.com/transform/mainframe/)
+ Documentação de referência de programação do EZT
+ Código-fonte do EZT
+ Conjuntos de dados de entrada e saída do mainframe

AWS Transform custom usa essas entradas para gerar aplicativos funcionalmente equivalentes em linguagens de destino modernas, como Java ou Python.

O processo de transformação usa recursos inteligentes de execução de testes, depuração automatizada e correção iterativa para validar a equivalência funcional em relação às saídas esperadas. Ele também oferece suporte ao aprendizado contínuo, permitindo que a definição de transformação personalizada melhore a precisão e a consistência em transformações sucessivas. Usando esse padrão, as organizações podem reduzir o esforço e o risco de migração, lidar com a dívida técnica do mainframe de nicho e modernizar as cargas de trabalho do EZT AWS para melhorar a agilidade, a confiabilidade, a segurança e a inovação.

## Pré-requisitos e limitações
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Pré-requisitos **
+ Uma AWS conta ativa 
+ Uma carga de trabalho EZT de mainframe com dados de entrada e saída 

**Limitações**

*Limitações do escopo*
+ **Suporte de linguagem** — Somente a transformação de EZT para Java é suportada para esse padrão de transformação específico. 
+ **Fora do escopo** — A transformação de outras linguagens de programação de mainframe requer uma nova definição de transformação AWS Transform personalizada em customizada.

*Limitações do processo*
+ **Dependência de validação** — Sem dados de saída de linha de base, a transformação não pode ser validada. 
+ **Lógica proprietária** — utilitários altamente específicos e desenvolvidos de forma personalizada exigem documentação adicional do usuário e materiais de referência para serem interpretados corretamente pelo agente de IA.

*Limitações técnicas*
+ **Limites de serviço** — Para limites e cotas de serviço AWS Transform personalizados, consulte o [Guia AWS Transform do usuário - Cotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) e a [referência AWS geral - Transformar](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) cotas.

**Versões do produto**
+ AWS Transform CLI — Versão mais recente
+ Node.js — versão 20 ou posterior
+ Git — Versão mais recente
+ Ambiente de destino
  + Java — versão 17 ou posterior
  + Spring Boot — a versão 3.x é o principal alvo para aplicativos refatorados
  + Maven — versão 3.6 ou posterior

## Arquitetura
<a name="transform-easytrieve-modern-languages-architecture"></a>

**Pilha de tecnologia de origem**
+ **Sistema operacional** — IBM z/OS
+ **Linguagem de programação** — Easytrieve, Job control language (JCL)
+ **Banco de dados** — IBM DB2 for z/OS, Virtual Storage Access Method (VSAM), arquivos simples de mainframe

**Pilha de tecnologias de destino**
+ **Sistema operacional** — Amazon Linux
+ **Computação** — Amazon Elastic Compute Cloud (Amazon EC2)
+ **Linguagem de programação** — Java
+ **Banco de dados** Amazon Relational Database Service (Amazon RDS)

**Arquitetura de destino**

![\[diagrama de arquitetura de destino para usar o AWS Transform personalizado para transformar o EZT em código moderno.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Fluxo de trabalho**

Essa solução usa um padrão de transformação de language-to-language migração AWS Transform personalizado para modernizar os aplicativos Easytrieve (EZT) de mainframe para Java por meio de um fluxo de trabalho automatizado de quatro etapas.

*Etapa 1 — Forneça seu código legado AWS Transform para o Mainframe, que:*
+ Analisa o código
+ Extrai a lógica de negócios de alto nível
+ Extrai a lógica comercial detalhada.

*Passo 2 — Crie uma pasta com as entradas necessárias:*
+ Regras de negócios do EZT extraídas usando AWS Transform para mainframe 
+ Documentação de referência de programação do EZT 
+ Código-fonte do EZT
+ Conjuntos de dados de entrada e saída do mainframe

*Etapa 3 — Criar e executar uma definição de transformação personalizada*

1. Use a AWS Transform CLI para descrever os objetivos de transformação em linguagem natural. AWS Transform O custom analisa os guias de programação BRE, código-fonte e EZT para gerar uma definição de transformação personalizada para análise e aprovação do desenvolvedor.

1. Em seguida, invoque a AWS Transform CLI com o código-fonte do projeto. AWS Transform custom cria planos de transformação, converte EZT em Java após aprovação, gera arquivos de suporte, cria o JAR executável e valida os critérios de saída.

1. Use o agente de validação para testar a equivalência funcional em relação à saída do mainframe. O Self-Debugger Agent corrige problemas de forma autônoma. Os resultados finais incluem código Java validado e relatórios de validação de HTML.

**Automação e escala**
+ Arquitetura de execução multimodo de IA agente — a AWS Transform personalização aproveita a IA agente com 3 modos de execução (conversacional, interativo e automação total) para automatizar tarefas complexas de transformação, incluindo análise de código, refatoração, planejamento e teste de transformação.
+ Sistema de feedback de aprendizado adaptável — A plataforma implementa mecanismos de aprendizado contínuo por meio de análise de amostras de código, análise de documentação e integração de feedback do desenvolvedor com definições de transformação versionadas.
+ Arquitetura simultânea de processamento de aplicativos — O sistema permite a execução paralela distribuída de várias operações de transformação de aplicativos simultaneamente em uma infraestrutura escalável.

## Ferramentas
<a name="transform-easytrieve-modern-languages-tools"></a>

**Serviços da AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) é um serviço de IA agente usado para transformar aplicativos EZT legados em linguagens de programação modernas. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 
+ [AWS Transform for mainframe é usado para](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) analisar aplicativos EZT legados para extrair lógica de negócios incorporada e gerar documentação abrangente de regras de negócios, incluindo resumos lógicos, definições de acrônimos e bases de conhecimento estruturadas. Eles servem como dados de entrada AWS Transform personalizados. 
+ 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. O Amazon S3 serve como o principal serviço de armazenamento AWS Transform personalizado para armazenar definições de transformação, repositórios de código e resultados de processamento. 
+ [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 IAM fornece a estrutura de segurança para gerenciamento AWS Transform personalizado de permissões e controle de acesso para operações de transformação.

**Outras ferramentas**
+ AWS Transform A [CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) é a interface de linha de comando AWS Transform personalizada, permitindo que os desenvolvedores definam, executem e gerenciem transformações de código personalizadas por meio de conversas em linguagem natural e modos de execução automatizados. AWS Transform custom suporta sessões interativas (atx custom def exec) e transformações autônomas para modernização escalável de bases de código.
+ Sistema de controle de versão [Git](https://git-scm.com/doc) usado para proteção de filiais, rastreamento de alterações e recursos de reversão durante a aplicação automática de correção. 
+ [Java](https://www.java.com/en/) é a linguagem de programação e o ambiente de desenvolvimento usados nesse padrão. 

**Repositório de código**

O código desse padrão está disponível em [Easytrieve to Modern Languages Transformation with AWS Transform](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) Custom on. GitHub

## Práticas recomendadas
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Estabeleça uma estrutura de projeto padronizada — Crie uma estrutura de quatro pastas (código-fonte, bre-doc, dados de entrada, dados de saída), valide a integridade e documente o conteúdo antes da transformação.
+ Use arquivos de linha de base para validação — Use arquivos de entrada de linha de base de produção, faça byte-by-byte comparação com a saída de linha de base, aceite tolerância zero para desvios.
+ Use todos os documentos de referência disponíveis — Para aumentar a precisão da transformação, forneça todos os documentos de referência disponíveis, como requisitos de negócios e listas de verificação de codificação.
+ Forneça informações para a melhoria da qualidade — a AWS Transform personalização extrai automaticamente os aprendizados das execuções de transformação (feedback do desenvolvedor, problemas de código) e cria itens de conhecimento para eles. Após cada transformação bem-sucedida, revise os itens de conhecimento e aprove aquele que você gostaria que fosse usado em futuras execuções. Isso melhora a qualidade das transformações futuras.

## Épicos
<a name="transform-easytrieve-modern-languages-epics"></a>

### Gere um extrato de regras de negócios (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure AWS Transform para mainframe. | Configure o ambiente e as permissões necessárias AWS Identity and Access Management (IAM) para dar suporte aos fluxos de trabalho de modernização do mainframe. Para obter mais informações, consulte [Transformação de aplicativos de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) na AWS documentação. | Desenvolvedor de aplicativos | 
| Gere documentação do Business Rule Extract (BRE). | Extraia a lógica de negócios do código EZT ou COBOL de origem para gerar documentação funcional. Para obter instruções sobre como iniciar o processo de extração e revisar a saída, consulte [Extrair lógica de negócios](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) na AWS Transform documentação. | Desenvolvedor de aplicativos | 

### Configurar AWS Transform personalizado
<a name="set-up-trn-custom"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Provisione a infraestrutura para AWS Transform fins personalizados. | Implante a infraestrutura pronta para produção necessária para hospedar um ambiente de transformação seguro. Isso inclui uma instância privada do Amazon EC2 configurada com as ferramentas necessárias, as permissões do IAM e as configurações de rede para converter o código do Easytrieve. Para provisionar o ambiente usando infraestrutura como código (IaC), siga as instruções de implantação no repositório [Easytrieve to Modern Languages Transformation](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) with Custom. AWS Transform GitHub  | Desenvolvedor de aplicações e administrador da AWS | 
| Prepare os materiais de entrada para transformação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 

###  Crie uma definição de transformação personalizada
<a name="create-a-custom-transformation-definition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a definição de transformação. | Siga estas etapas para criar a definição de transformação personalizada para a transformação EZT em Java com validação funcional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Publique a definição de transformação. | Depois de analisar e validar a definição de transformação, você pode publicá-la no registro AWS Transform personalizado com um prompt de linguagem natural, fornecendo um nome de definição, como *EasyTrieve-to-Java-Migration*. | Desenvolvedor de aplicativos | 

### Prepare os dados básicos para validação.
<a name="prepare-baseline-data-for-validation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise o resumo da validação da transformação. | Antes de executar a transformação AWS Transform personalizada, verifique se a `input-data` pasta contém os arquivos de dados necessários capturados antes da execução do trabalho em lotes do mainframe. Após a execução do trabalho em lote do mainframe, certifique-se de que a `output-data` pasta capture os arquivos resultantes. Todos os arquivos estão no formato Sequential/Text/DB 2 usando a codificação EBCDIC com base nos requisitos de execução.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Execute o trabalho de transformação personalizado. | Execute o comando AWS Transform CLI, escolhendo a opção não interativa ou interativa:<pre>:# Non-interactive execution (fully autonomous):<br />atx custom def exec \<br />  --transformation-name "Easytrieve-to-Java-Migration" \<br />  --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \<br />  --build-command "mvn clean install" \<br />  --non-interactive \<br />  --trust-all-tools \<br /><br /># Interactive execution (with human oversight):<br />atx custom def exec \<br />  -n "Easytrieve-to-Java-Migration" \<br />  -p ~/root/transform-workspace/mainframe-source/source-code \<br />  -c "mvn clean install"<br /><br /># Resume interrupted execution:<br />atx -resume<br /># OR<br />atx --conversation-id <conversation-id><br /></pre>AWS Transform valida automaticamente por meio de build/test comandos durante a execução da transformação. | Desenvolvedor de aplicativos | 

### Valide e entregue o código testado
<a name="validate-and-deliver-tested-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise o resumo da validação da transformação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Acesse relatórios de validação. | Insira estes comandos para revisar os artefatos de validação detalhados:<pre># Full validation report<br />cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html<br /><br /># Generated code location<br />ls ~/.aws/atx/custom/$LATEST_SESSION/generated/<br /><br /># Execution logs<br />cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log</pre> | Desenvolvedor de aplicativos | 
| Habilite itens de conhecimento para aprendizado contínuo. | Melhore a precisão da transformação futura promovendo itens de conhecimento sugeridos para sua configuração persistente. Depois de uma transformação, o agente armazena padrões identificados e regras de mapeamento em seu diretório de sessão local. Para revisar e aplicar esses itens aprendidos, execute estes comandos na sua instância do Amazon EC2:<pre># List all knowledge items for a specific transformation definition<br />atx custom def list-ki -n <transformation-name><br /><br /># Retrieve the details of a specific knowledge item<br />atx custom def get-ki -n <transformation-name> --id <id><br /><br /># Update the status of a knowledge item (ENABLED or DISABLED)<br />atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED<br /><br /># Update the knowledge item configuration to enable auto-approval<br />atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE</pre> | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| *Configuração do caminho de entrada e saída*Os arquivos de entrada não estão sendo lidos ou os arquivos de saída não estão sendo gravados corretamente.  | Especifique o caminho completo do diretório em que os arquivos de entrada são armazenados e indique claramente o local em que a saída deve ser gravada. Certifique-se de que as permissões de acesso adequadas estejam configuradas para esses diretórios. As melhores práticas incluem usar caminhos absolutos em vez de caminhos relativos para evitar ambigüidade e verificar se todos os caminhos especificados existem com as permissões apropriadas read/write .  | 
| *Retomando as execuções interrompidas*A execução foi interrompida ou precisa ser continuada de onde foi interrompida | Você pode retomar a execução de onde parou fornecendo o ID da conversa no comando da CLI.Encontre o ID da conversa nos registros da sua tentativa de execução anterior.   | 
| *Resolvendo restrições de memória*Ocorre um erro de falta de memória durante a execução. | Você pode pedir AWS Transform para compartilhar o tamanho atual da JVM na memória e, em seguida, aumentar a alocação de memória com base nessas informações. Esse ajuste ajuda a acomodar maiores requisitos de processamento.Considere dividir trabalhos grandes em lotes menores se as restrições de memória persistirem após os ajustes.  | 
| *Abordando discrepâncias no arquivo de saída*Os arquivos de saída não correspondem às expectativas e AWS Transform indicam que nenhuma alteração adicional é possível. | Forneça feedback específico e motivos técnicos explicando por que a saída atual está incorreta. Inclua documentação técnica ou comercial adicional para atender às suas necessidades. Esse contexto detalhado ajuda a AWS Transform corrigir o código para gerar os arquivos de saída adequados. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Recursos relacionados
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentação personalizada](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Gerador de relatórios Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

## Anexos
<a name="attachments-71f15422-42cb-4c7e-94fa-051a4f130445"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

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

**Topics**
+ [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)
+ [Replique bancos de dados de mainframe para AWS usando o Precisely Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)