

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Migrazione e modernizzazione
<a name="migration-modernization-pattern-list"></a>

**Topics**
+ [Migrazione](migration-pattern-list.md)
+ [Modernizzazione](modernization-pattern-list.md)
+ [Mainframe](mainframe-pattern-list.md)

# Migrazione
<a name="migration-pattern-list"></a>

**Topics**
+ [Crea CloudFormation modelli AWS per attività AWS DMS utilizzando Microsoft Excel e Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Inizia con l'individuazione automatica del portafoglio](get-started-with-automated-portfolio-discovery.md)
+ [Esegui la migrazione dei carichi di lavoro Cloudera locali a Cloudera Data Platform su AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Risolvi gli errori di connessione dopo la migrazione di Microsoft SQL Server al cloud AWS](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Riavvia automaticamente l'AWS Replication Agent senza disabilitarlo SELinux dopo il riavvio di un server di origine RHEL](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Re-architetto](migration-rearchitect-pattern-list.md)
+ [Riospitare](migration-rehost-pattern-list.md)
+ [Trasferisci](migration-relocate-pattern-list.md)
+ [Conversione piattaforma](migration-replatform-pattern-list.md)
+ [Modelli di migrazione per carico di lavoro](migration-migration-patterns-by-workload-pattern-list.md)
+ [Altri modelli](migration-more-patterns-pattern-list.md)

# Crea CloudFormation modelli AWS per attività AWS DMS utilizzando 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*

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

Questo modello descrive i passaggi per la creazione automatica di CloudFormation modelli AWS per [AWS Database Migration Service](https://aws.amazon.com/dms/) (AWS DMS) utilizzando Microsoft Excel e Python.

La migrazione dei database con AWS DMS spesso implica la creazione di CloudFormation modelli AWS per il provisioning delle attività AWS DMS. In precedenza, la creazione di CloudFormation modelli AWS richiedeva la conoscenza del linguaggio di programmazione JSON o YAML. Con questo strumento, è necessaria solo una conoscenza di base di Excel e di come eseguire uno script Python utilizzando un terminale o una finestra di comando.

Come input, lo strumento utilizza una cartella di lavoro di Excel che include i nomi delle tabelle da migrare, Amazon Resource Names (ARNs) degli endpoint AWS DMS e le istanze di replica AWS DMS. Lo strumento genera quindi CloudFormation modelli AWS per le attività AWS DMS richieste.

Per passaggi dettagliati e informazioni di base, consulta il post del blog [Create AWS CloudFormation templates for AWS DMS tasks using Microsoft Excel](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/) nel blog AWS Database.

## Prerequisiti e limitazioni
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Microsoft Excel versione 2016 o successiva
+ Python versione 2.7 o successiva
+ **Il modulo **Python xlrd** (installato al prompt dei comandi con il comando: pip install xlrd)**
+ Endpoint di origine e destinazione di AWS DMS e istanza di replica AWS DMS

**Limitazioni**
+ I nomi degli schemi, delle tabelle e delle colonne associate vengono trasformati in caratteri minuscoli negli endpoint di destinazione.
+ Questo strumento non si occupa della creazione di endpoint e istanze di replica AWS DMS.
+ Attualmente, lo strumento supporta solo uno schema per ogni attività AWS DMS.

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

**Stack tecnologico di origine**
+ Un database locale
+ Microsoft Excel

**Stack tecnologico Target**
+  CloudFormation Modelli AWS
+ Un database nel cloud AWS 

**Architettura**

![\[Flusso di lavoro per utilizzare Excel e Python per creare automaticamente CloudFormation modelli per AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/778c7c1e-2647-496f-8afd-52ff1ef02489/images/8fe1550d-8966-41aa-a480-5f7bef20629f.png)


## Tools (Strumenti)
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-tools"></a>
+ [Pycharm IDE](https://aws.amazon.com/pycharm/) o qualsiasi ambiente di sviluppo integrato (IDE) che supporti Python versione 3.6
+ Microsoft Office 2016 (per Microsoft Excel)

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

### Configura la rete, l'istanza di replica AWS DMS e gli endpoint
<a name="configure-the-network-aws-dms-replication-instance-and-endpoints"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Se necessario, richiedi un aumento della quota di servizio. | Richiedi un aumento della quota di servizio per le attività di AWS DMS, se necessario. | Informazioni generali su AWS | 
| Configura la regione AWS, i cloud privati virtuali (VPCs), gli intervalli CIDR, le zone di disponibilità e le sottoreti. |  | Informazioni generali su AWS | 
| Configura l'istanza di replica AWS DMS. | L'istanza di replica AWS DMS può connettersi sia ai database locali che a quelli AWS. | Informazioni generali su AWS | 
| Configura gli endpoint AWS DMS. | Configura gli endpoint per i database di origine e di destinazione. | Informazioni generali su AWS | 

### Prepara i fogli di lavoro per le attività e i tag di AWS DMS
<a name="prepare-the-worksheets-for-aws-dms-tasks-and-tags"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura l'elenco delle tabelle. | Elenca tutte le tabelle coinvolte nella migrazione. | Database | 
| Prepara il foglio di lavoro delle attività. | Prepara il foglio di lavoro di Excel utilizzando l'elenco delle tabelle che hai configurato. | Informazioni generali su AWS, Microsoft Excel | 
| Prepara il foglio di lavoro per i tag. | Dettagli i tag delle risorse AWS da allegare alle attività di AWS DMS. | Informazioni generali su AWS, Microsoft Excel | 

### Scarica ed esegui lo strumento
<a name="download-and-run-the-tool"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica ed estrai lo strumento di generazione dei modelli dal GitHub repository. | GitHub archivio:/ https://github.com/aws-samples/dms-cloudformation-templates-generator |  | 
| Esegui lo strumento. | Segui le istruzioni dettagliate nel post del blog elencato nella sezione «Riferimenti e aiuto». |  | 

## Risorse correlate
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-resources"></a>
+ [Crea CloudFormation modelli AWS per attività AWS DMS utilizzando Microsoft Excel (post sul blog)](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/)
+ [Generatore di CloudFormation modelli DMS (repository) GitHub ](https://github.com/aws-samples/dms-cloudformation-templates-generator/tree/v1.0)
+ [Documentazione in Python](https://www.python.org/)
+ [descrizione e download in formato xlrd](https://pypi.org/project/xlrd/)
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/)
+ [ CloudFormation Documentazione AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)

# Inizia con l'individuazione automatica del portafoglio
<a name="get-started-with-automated-portfolio-discovery"></a>

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

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

La valutazione del portafoglio e la raccolta dei metadati rappresentano una sfida fondamentale durante la migrazione di applicazioni e server su Amazon Web Services (AWS) Cloud, in particolare per le migrazioni di grandi dimensioni con più di 300 server. L'utilizzo di uno strumento di rilevamento automatico del portafoglio può aiutarti a raccogliere informazioni sulle tue applicazioni, come il numero di utenti, la frequenza di utilizzo, le dipendenze e le informazioni sull'infrastruttura dell'applicazione. Queste informazioni sono essenziali per pianificare le ondate di migrazione, in modo da poter assegnare priorità e raggruppare correttamente le applicazioni con caratteristiche simili. L'utilizzo di uno strumento di rilevamento semplifica la comunicazione tra il team del portfolio e i proprietari delle applicazioni, poiché il team del portfolio può convalidare i risultati dello strumento di rilevamento anziché raccogliere manualmente i metadati. Questo modello illustra le considerazioni chiave per la scelta di uno strumento di rilevamento automatizzato e le informazioni su come implementarne e testarne uno nel proprio ambiente.

Questo modello include un modello, che è un punto di partenza per creare la propria lista di controllo di attività di alto livello. Accanto alla lista di controllo c'è un modello per una matrice RACI (responsabile, responsabile, consultata, informata). È possibile utilizzare questa matrice RACI per determinare chi è responsabile di ogni attività inclusa nella lista di controllo.

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

### Seleziona uno strumento di scoperta
<a name="select-a-discovery-tool"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determina se uno strumento di rilevamento è appropriato per il tuo caso d'uso. | Uno strumento di scoperta potrebbe non essere la soluzione migliore per il tuo caso d'uso. Considerate la quantità di tempo necessaria per selezionare, procurare, preparare e implementare uno strumento di scoperta. Possono essere necessarie dalle 4 alle 8 settimane per configurare l'appliance di scansione per uno strumento di rilevamento senza agenti nell'ambiente in uso o per installare gli agenti per tutti i carichi di lavoro pertinenti. Una volta implementato, è necessario attendere 4-12 settimane prima che lo strumento di rilevamento raccolga i metadati mediante la scansione dei carichi di lavoro delle applicazioni e l'analisi dello stack delle applicazioni. Se state migrando meno di 100 server, potreste essere in grado di raccogliere manualmente i metadati e analizzare le dipendenze più velocemente del tempo necessario per distribuire e raccogliere i metadati con uno strumento di rilevamento automatico.  | Responsabile della migrazione, ingegnere addetto alla migrazione | 
| Seleziona uno strumento di scoperta. | Consulta le **considerazioni sulla selezione di uno strumento di rilevamento automatico** nella sezione [Informazioni aggiuntive](#get-started-with-automated-portfolio-discovery-additional). Determina i criteri appropriati per la selezione di uno strumento di rilevamento per il tuo caso d'uso, quindi valuta ogni strumento in base a tali criteri. Per un elenco completo degli strumenti di rilevamento automatizzato, consulta Strumenti di [migrazione Discovery, Planning e Recommendation](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/). | Responsabile della migrazione, ingegnere addetto alla migrazione | 

### Prepararsi per l'installazione
<a name="prepare-for-installation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare la lista di controllo prima dell'implementazione.  | Crea una lista di controllo delle attività da completare prima di distribuire lo strumento. Per un esempio, consulta [Predeployment Checklist](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_Predeployment.htm) sul sito Web della documentazione di Flexera. | Responsabile della costruzione, ingegnere addetto alla migrazione, responsabile della migrazione, amministratore di rete | 
| Prepara i requisiti di rete. | Fornisci le porte, i protocolli, gli indirizzi IP e il routing necessari per l'esecuzione dello strumento e l'accesso ai server di destinazione. Per ulteriori informazioni, consulta la guida all'installazione del tuo strumento di rilevamento. Per un esempio, consulta [Requisiti di implementazione](https://docs.flexera.com/foundationcloudscape/help/RCDeployReq.htm) sul sito Web della documentazione di Flexera. | Ingegnere addetto alla migrazione, amministratore di rete, architetto cloud | 
| Prepara i requisiti relativi all'account e alle credenziali. | Identifica le credenziali necessarie per accedere ai server di destinazione e installare tutti i componenti dello strumento. | Amministratore cloud, General AWS, ingegnere addetto alla migrazione, responsabile della migrazione, amministratore di rete, amministratore AWS | 
| Prepara le appliance su cui installerai lo strumento. | Assicuratevi che i dispositivi su cui installerete i componenti dell'utensile soddisfino le specifiche e i requisiti di piattaforma dello strumento. | Ingegnere addetto alla migrazione, responsabile della migrazione, amministratore di rete | 
| Prepara gli ordini di modifica. | In base al processo di gestione delle modifiche in atto nell'organizzazione, preparate gli eventuali ordini di modifica necessari e assicuratevi che tali ordini di modifica siano approvati. | Costruisci lead, migrazioni leader | 
| Invia i requisiti alle parti interessate. | Invia la checklist di pre-implementazione e i requisiti di rete alle parti interessate. Le parti interessate devono esaminare, valutare e preparare i requisiti necessari prima di procedere con l'implementazione. | Crea un vantaggio, guida la migrazione | 

### Implementa lo strumento
<a name="deploy-the-tool"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il programma di installazione. | Scarica il programma di installazione o l'immagine della macchina virtuale. Le immagini delle macchine virtuali sono generalmente disponibili in formato Open Virtualization Format (OVF). | Crea un lead, un responsabile della migrazione | 
| Estrai i file. | Se si utilizza un programma di installazione, è necessario scaricare ed eseguire il programma di installazione su un server locale. | Crea un lead, un responsabile della migrazione | 
| Implementa lo strumento sui server. | Implementa lo strumento di rilevamento sui server locali di destinazione come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) | Responsabile build, responsabile della migrazione, amministratore di rete | 
| Accedi allo strumento di scoperta. | Segui le istruzioni sullo schermo e accedi per iniziare a usare lo strumento. | Responsabile della migrazione, crea lead | 
| Attiva il prodotto. | Inserisci la tua chiave di licenza. | Crea un lead, un responsabile della migrazione | 
| Configurare lo strumento. | Immettere le credenziali necessarie per accedere ai server di destinazione, ad esempio credenziali per Windows VMware, Simple Network Management Protocol (SNMP) e Secure Shell Protocol (SSH) o database. | Crea lead, responsabile della migrazione | 

### Prova lo strumento
<a name="test-the-tool"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Seleziona i server di test. | Identifica un piccolo set di sottoreti o indirizzi IP non di produzione da utilizzare per testare lo strumento di rilevamento. Ciò consente di convalidare rapidamente le scansioni, identificare e risolvere rapidamente eventuali errori e isolare i test dagli ambienti di produzione. | Crea lead, responsabile della migrazione, amministratore di rete | 
| Inizia la scansione dei server di test selezionati. | Per uno strumento di rilevamento senza agente, inserisci le sottoreti o gli indirizzi IP per i server di test selezionati nella console dello strumento di rilevamento e avvia la scansione.Per uno strumento di rilevamento basato su agenti, installa l'agente sui server di test selezionati. | Responsabile build, responsabile della migrazione, amministratore di rete | 
| Esamina i risultati della scansione. | Esamina i risultati della scansione per i server di test. Se vengono rilevati errori, risolvili e correggili. Documenta gli errori e le soluzioni. Utilizzerai queste informazioni in futuro e potrai aggiungerle al tuo portfolio runbook. | Responsabile build, responsabile della migrazione, amministratore di rete | 
| Scansiona nuovamente i server di test. | Una volta completata la nuova scansione, ripeti la scansione fino a eliminare gli errori. | Responsabile build, responsabile della migrazione, amministratore di rete | 

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

**AWS resources**
+ [Guida alla valutazione del portafoglio di applicazioni per la Cloud AWS migrazione](https://docs.aws.amazon.com/prescriptive-guidance/latest/application-portfolio-assessment-guide/introduction.html)
+ [Strumenti di migrazione Discovery, Planning e Recommendation](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/)

**Guide all'implementazione per strumenti di rilevamento comunemente selezionati**
+ [Implementa l'appliance virtuale RN15 0 (documentazione](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_QSG_DeployRN150.htm) Flexera)
+ [Installazione di Gatherer (documentazione ModelizeIT](https://www.modelizeit.com/documentation/ADC-Gatherer-Install.html))
+ [Installazione On-Prem Analysis](https://www.modelizeit.com/documentation/RejuvenApptor-Install.html) Server (documentazione ModelizeIT)

## Informazioni aggiuntive
<a name="get-started-with-automated-portfolio-discovery-additional"></a>

**Considerazioni sulla scelta di uno strumento di rilevamento automatico**

Ogni strumento di scoperta presenta vantaggi e limiti. Quando selezionate lo strumento appropriato per il vostro caso d'uso, tenete presente quanto segue:
+ Scegliete uno strumento di scoperta in grado di raccogliere la maggior parte, se non tutti, i metadati necessari per raggiungere l'obiettivo di valutazione del portafoglio.
+ Identifica i metadati che devi raccogliere manualmente perché lo strumento non li supporta.
+ Fornisci i requisiti dello strumento di rilevamento alle parti interessate in modo che possano esaminarlo e valutarlo in base ai requisiti interni di sicurezza e conformità, come i requisiti di server, rete e credenziali.
  + Lo strumento richiede l'installazione di un agente nel carico di lavoro pertinente?
  + Lo strumento richiede la configurazione di un'appliance virtuale nel proprio ambiente?
+ Determina i requisiti di residenza dei dati. Alcune organizzazioni non vogliono archiviare i propri dati al di fuori del proprio ambiente. Per risolvere questo problema, potrebbe essere necessario installare alcuni componenti dello strumento nell'ambiente locale.
+ Assicurati che lo strumento supporti il sistema operativo (OS) e la versione del sistema operativo del carico di lavoro pertinente.
+ Determina se il tuo portafoglio include server mainframe, di fascia media e legacy. La maggior parte degli strumenti di rilevamento è in grado di rilevare questi carichi di lavoro come dipendenze, ma alcuni strumenti potrebbero non essere in grado di ottenere dettagli sul dispositivo, come l'utilizzo e le dipendenze del server. Gli strumenti di rilevamento Device42 e ModernizeIT supportano entrambi server mainframe e di fascia media.

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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/8c9d84de-e84a-4b0c-bcaa-389cd90be1f0/attachments/attachment.zip)

# Esegui la migrazione dei carichi di lavoro Cloudera locali a Cloudera Data Platform su 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.*

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

Questo modello descrive i passaggi di alto livello per la migrazione dei carichi di lavoro Cloudera Distributed Hadoop (CDH), Hortonworks Data Platform (HDP) e Cloudera Data Platform (CDP) locali su CDP Public Cloud su AWS. Ti consigliamo di collaborare con Cloudera Professional Services e un integratore di sistemi (SI) per implementare questi passaggi.

Ci sono molte ragioni per cui i clienti Cloudera vogliono spostare i carichi di lavoro CDH, HDP e CDP locali sul cloud. Alcuni motivi tipici includono:
+ Semplifica l'adozione di nuovi paradigmi di piattaforme dati come data lakehouse o data mesh
+ Aumenta l'agilità aziendale, democratizza l'accesso e l'inferenza sugli asset di dati esistenti
+ Riduci il costo totale di proprietà (TCO)
+ Migliora l'elasticità del carico di lavoro
+ Consenti una maggiore scalabilità; riduci drasticamente i tempi di fornitura dei servizi dati rispetto alla base di installazioni legacy in locale
+ Ritirate l'hardware obsoleto; riducete in modo significativo i cicli di aggiornamento dell'hardware
+ Sfrutta pay-as-you-go i prezzi, che sono estesi ai carichi di lavoro Cloudera su AWS con il modello di licenza Cloudera (CCU)
+ Sfrutta i vantaggi di una distribuzione più rapida e di una migliore integrazione con piattaforme di integrazione continua e distribuzione continua (CI/CD)
+ Utilizza un'unica piattaforma unificata (CDP) per più carichi di lavoro

Cloudera supporta tutti i principali carichi di lavoro, tra cui Machine Learning, Data Engineering, Data Warehouse, Operational Database, Stream Processing (CSP) e sicurezza e governance dei dati. Cloudera offre questi carichi di lavoro in locale da molti anni e puoi migrarli sul cloud AWS utilizzando CDP Public Cloud con Workload Manager e Replication Manager. 

Cloudera Shared Data Experience (SDX) fornisce un catalogo di metadati condiviso tra questi carichi di lavoro per facilitare la gestione e le operazioni coerenti dei dati. SDX include anche una sicurezza completa e granulare per la protezione dalle minacce e una governance unificata per funzionalità di audit e ricerca per la conformità a standard come Payment Card Industry Data Security Standard (PCI DSS) e GDPR. 

**La migrazione CDP a colpo d'occhio**


|  |  | 
| --- |--- |
|    Carico di lavoro | Carico di lavoro di origine | CDH, HDP e CDP Private Cloud | 
| --- |--- |--- |
| Ambiente di origine | Windows, LinuxIn locale, in colocation o in qualsiasi ambiente non AWS | 
| Carico di lavoro di destinazione | Cloud pubblico CDP su AWS | 
| Ambiente di destinazione | Modello di implementazione: account clienteModello operativo: piano customer/Cloudera di controllo | 
| ** **** ****Migrazione** | Strategia di migrazione (7R) | Rehost, ripiattaforma o refactor | 
| Si tratta di un aggiornamento della versione Workload? | Sì | 
| Durata della migrazione | Implementazione: circa 1 settimana per creare un account cliente, un cloud privato virtuale (VPC) e un ambiente gestito dai clienti CDP Public Cloud.Durata della migrazione: 1-4 mesi, a seconda della complessità e delle dimensioni del carico di lavoro. | 
| **Costo** | Costo di esecuzione del carico di lavoro su AWS | Ad un livello elevato, il costo di una migrazione del carico di lavoro CDH verso AWS presuppone la creazione di un nuovo ambiente su AWS. Include la contabilizzazione del tempo e dell'impegno del personale, nonché la fornitura di risorse informatiche e la concessione di licenze software per il nuovo ambiente.Il modello di prezzo basato sul consumo del cloud di Cloudera ti offre la flessibilità necessaria per sfruttare le funzionalità di espansione e di scalabilità automatica. Per ulteriori informazioni, consulta le tariffe dei servizi [CDP Public Cloud](https://www.cloudera.com/products/pricing/cdp-public-cloud-service-rates.html) sul sito Web di Cloudera.Cloudera Enterprise [Data Hub](https://www.cloudera.com/products/enterprise-data-hub.html) si basa su Amazon Elastic Compute Cloud EC2 (Amazon) e modella fedelmente i cluster tradizionali. Data Hub può essere [personalizzato](https://docs.cloudera.com/data-hub/cloud/create-cluster-aws/topics/mc-creating-a-cluster.html), ma ciò influirà sui costi.[CDP Public Cloud Data Warehouse](https://docs.cloudera.com/data-warehouse/cloud/index.html), [Cloudera Machine Learning](https://docs.cloudera.com/machine-learning/cloud/product/topics/ml-product-overview.html) e [Cloudera Data Engineering (CDE)](https://docs.cloudera.com/data-engineering/cloud/index.html) sono basati su contenitori e possono essere configurati per scalare automaticamente. | 
| ** **** ****Accordi e quadro di infrastruttura** | Requisiti di sistema | Vedi la sezione [Prerequisiti](#migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs). | 
| SLA | Consulta l'[accordo sul livello di servizio di Cloudera per CDP Public](https://www.cloudera.com/legal/terms-and-conditions/cdp-public-cloud-sla.html) Cloud. | 
| DOTT. | Vedi [Disaster Recovery](https://docs.cloudera.com/cdp-reference-architectures/latest/cdp-ra-operations/topics/cdp-ra-abstract.html) nella documentazione di Cloudera. | 
| Modello operativo e di licenza (per l'account AWS di destinazione) | Modello Bring Your Own License (BYOL) | 
| ** ****Conformità** | Requisiti in materia di sicurezza | Consulta la [panoramica sulla sicurezza di Cloudera nella documentazione di](https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/security-overview/topics/cm-security-overview.html) Cloudera. | 
| [Altre certificazioni di conformità](https://aws.amazon.com/compliance/programs) | Consulta le informazioni sul sito web di Cloudera sulla conformità al [Regolamento generale sulla protezione dei dati (GDPR](https://www.cloudera.com/solutions/lower-business-risks/general-data-protection-regulation.html)) e sul [CDP](https://www.cloudera.com/products/trust-center.html) Trust Center. | 

## Prerequisiti e limitazioni
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs"></a>

**Prerequisiti**
+ [Requisiti dell'account AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html), inclusi account, risorse, servizi e autorizzazioni, come la configurazione di ruoli e policy di AWS Identity and Access Management (IAM)
+ [Prerequisiti per la distribuzione di CDP](https://docs.cloudera.com/cdp-public-cloud/cloud/getting-started/topics/cdp-set_up_cdp_prerequisites.html) dal sito Web di Cloudera

La migrazione richiede i seguenti ruoli e competenze:


| 
| 
| Ruolo | Competenze e responsabilità | 
| --- |--- |
| Responsabile della migrazione | Garantisce il supporto esecutivo, la collaborazione tra i team, la pianificazione, l'implementazione e la valutazione | 
| Cloudera SME | Competenze specialistiche in amministrazione, amministrazione di sistema e architettura CDH, HDP e CDP | 
| Architetto AWS | Competenze nei servizi, nelle reti, nella sicurezza e nelle architetture AWS | 

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

Utilizzare l'architettura appropriata è un passaggio fondamentale per garantire che la migrazione e le prestazioni soddisfino le aspettative. Affinché la migrazione soddisfi i presupposti di questo playbook, l'ambiente di dati di destinazione nel cloud AWS, su istanze ospitate su cloud privato virtuale (VPC) o CDP, deve corrispondere all'ambiente di origine in termini di sistema operativo e versioni del software, nonché delle principali specifiche delle macchine.

Il diagramma seguente (riprodotto con l'autorizzazione della [scheda tecnica di Cloudera Shared Data Experience](https://www.cloudera.com/content/dam/www/marketing/resources/datasheets/cloudera-sdx-datasheet.pdf?daqp=true)) mostra i componenti dell'infrastruttura per l'ambiente CDP e come interagiscono i livelli o i componenti dell'infrastruttura. 

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


L'architettura include i seguenti componenti CDP:
+ Data Hub è un servizio per l'avvio e la gestione di cluster di carichi di lavoro basato su Cloudera Runtime. Puoi utilizzare le definizioni dei cluster in Data Hub per fornire e accedere ai cluster di carichi di lavoro per casi d'uso personalizzati e definire configurazioni di cluster personalizzate. [Per ulteriori informazioni, consulta il sito Web di Cloudera.](https://docs.cloudera.com/data-hub/cloud/index.html)
+ Data Flow and Streaming affronta le principali sfide che le aziende devono affrontare con i dati in movimento. Gestisce quanto segue:
  + Elaborazione di flussi di dati in tempo reale ad alto volume e su larga scala
  + Monitoraggio della provenienza dei dati e della provenienza dei dati in streaming
  + Gestione e monitoraggio delle applicazioni periferiche e delle fonti di streaming

  Per ulteriori informazioni, consulta [Cloudera DataFlow](https://www.cloudera.com/products/dataflow.html) e [CSP](https://www.cloudera.com/products/stream-processing.html) sul sito Web di Cloudera.
+ L'ingegneria dei dati include l'integrazione dei dati, la qualità dei dati e la governance dei dati, che aiutano le organizzazioni a creare e mantenere pipeline e flussi di lavoro di dati. Per ulteriori informazioni, consulta il sito Web di [Cloudera](https://docs.cloudera.com/data-engineering/cloud/index.html). Scopri [il supporto per le istanze spot per facilitare il risparmio sui costi sui carichi di lavoro AWS](https://docs.cloudera.com/data-engineering/cloud/cost-management/topics/cde-spot-instances.html) for Cloudera Data Engineering.
+ Data Warehouse ti**** consente di creare data warehouse e data mart indipendenti che si ridimensionano automaticamente per soddisfare le richieste di carico di lavoro. Questo servizio fornisce istanze di elaborazione isolate e ottimizzazione automatizzata per ogni data warehouse e data mart e consente di ridurre i costi durante le riunioni. SLAs Per ulteriori informazioni, consulta il sito Web di [Cloudera](https://docs.cloudera.com/data-warehouse/cloud/index.html). Scopri come [gestire i costi](https://docs.cloudera.com/data-warehouse/cloud/planning/topics/dw-manage-cloud-costs.html) e l'[auto-scaling](https://docs.cloudera.com/data-warehouse/cloud/auto-scaling/topics/dw-public-cloud-autoscaling-overview.html) per Cloudera Data Warehouse on AWS.
+ Il database operativo in CDP fornisce una base affidabile e flessibile per applicazioni scalabili e ad alte prestazioni. Fornisce un database scalabile in tempo reale, sempre disponibile e che serve dati strutturati tradizionali insieme a nuovi dati non strutturati all'interno di una piattaforma operativa e di magazzino unificata. [Per ulteriori informazioni, consulta il sito Web di Cloudera.](https://www.cloudera.com/products/operational-db.html)
+ Machine Learning è una piattaforma di machine learning nativa per il cloud che unisce funzionalità self-service di data science e ingegneria dei dati in un unico servizio portatile all'interno di un cloud di dati aziendale. Consente l'implementazione scalabile dell'apprendimento automatico e dell'intelligenza artificiale (AI) sui dati ovunque. Per ulteriori informazioni, consulta il sito Web di [Cloudera](https://docs.cloudera.com/machine-learning/cloud/index.html).

**CDP su AWS**

Il diagramma seguente (adattato con l'autorizzazione del sito Web di Cloudera) mostra l'architettura di alto livello di CDP su AWS. CDP implementa il [proprio modello di sicurezza per gestire sia gli account che il flusso](https://docs.cloudera.com/runtime/7.1.0/cdp-security-overview/topics/security-management-console-security.html) di dati. Questi sono integrati con [IAM](https://aws.amazon.com/iam/) tramite l'uso di ruoli [tra](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-aws-req-credential.html) account. 

![\[CDP su architettura di alto livello AWS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/54420517-38b4-4e82-bd19-9ded50ed009c.png)


Il piano di controllo CDP risiede in un account master Cloudera nel proprio VPC. Ogni account cliente ha il proprio account secondario e un VPC unico. I ruoli IAM e le tecnologie SSL su più account indirizzano il traffico di gestione da e verso il piano di controllo ai servizi clienti che risiedono su sottoreti pubbliche instradabili su Internet all'interno del VPC di ciascun cliente. Sul VPC del cliente, Cloudera Shared Data Experience (SDX) offre una sicurezza di livello aziendale con governance e conformità unificate in modo da poter ottenere informazioni dai dati più velocemente. SDX è una filosofia di progettazione incorporata in tutti i prodotti Cloudera. Per ulteriori informazioni su [SDX](https://docs.cloudera.com/cdp-public-cloud/cloud/overview/topics/cdp-services.html) e l'[architettura di rete CDP Public Cloud per AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/aws-refarch/topics/cdp-pc-aws-refarch-overview.html), consulta la documentazione di Cloudera.

## Tools (Strumenti)
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) ti aiuta a eseguire Kubernetes su AWS senza dover installare o gestire il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Automazione e strumenti**
+ Per strumenti aggiuntivi, puoi utilizzare [Cloudera Backup Data Recovery (BDR),](https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_bdr_tutorials.html) AWS [Snowball e AWS Snowmobile](https://aws.amazon.com/snowball/) [per facilitare la migrazione dei dati da CDH](https://aws.amazon.com/snowmobile/), HDP e CDP locali a CDP ospitati da AWS.
+ Per le nuove implementazioni, ti consigliamo di utilizzare la [soluzione AWS Partner per](https://aws.amazon.com/solutions/partners/terraform-modules/cdp-public-cloud/) CDP.

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

### Preparati per la migrazione
<a name="prepare-for-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Coinvolgi il team di Cloudera. | Cloudera persegue un modello di coinvolgimento standardizzato con i propri clienti e può collaborare con il vostro integratore di sistemi (SI) per promuovere lo stesso approccio. Contatta il team clienti di Cloudera in modo che possa fornire indicazioni e le risorse tecniche necessarie per avviare il progetto. Contattando il team di Cloudera si garantisce che tutti i team necessari possano prepararsi per la migrazione all'avvicinarsi della data prevista. Puoi contattare Cloudera Professional Services per spostare l'implementazione di Cloudera dalla fase pilota a quella di produzione in modo rapido, a costi inferiori e con prestazioni ottimali. [Per un elenco completo delle offerte, consulta il sito Web di Cloudera.](https://www.cloudera.com/about/services-and-support/professional-services.html) | Responsabile della migrazione | 
| Crea un ambiente CDP Public Cloud su AWS per il tuo VPC. | Collabora con Cloudera Professional Services o il tuo SI per pianificare e distribuire CDP Public Cloud in un VPC su AWS. | Architetto del cloud, Cloudera SME | 
| Assegna priorità e valuta i carichi di lavoro per la migrazione. | Valuta tutti i carichi di lavoro locali per determinare i carichi di lavoro più facili da migrare. Le applicazioni che non sono mission-critical sono le migliori da spostare per prime, perché avranno un impatto minimo sui clienti. Salva i carichi di lavoro mission-critical per ultimi, dopo aver migrato con successo altri carichi di lavoro.I carichi di lavoro transitori (CDP Data Engineering) sono più facili da migrare rispetto ai carichi di lavoro persistenti (CDP Data Warehouse). È inoltre importante considerare il volume e le posizioni dei dati durante la migrazione. Le sfide possono includere la replica continua dei dati da un ambiente locale al cloud e la modifica delle pipeline di inserimento dei dati per importare i dati direttamente nel cloud. | Responsabile della migrazione | 
| Discutete delle attività di migrazione di CDH, HDP, CDP e applicazioni legacy. | Prendi in considerazione e inizia a pianificare le seguenti attività con Cloudera Workload Manager:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Responsabile della migrazione | 
| Completa i requisiti e i consigli di Cloudera Replication Manager. | Collabora con Cloudera Professional Services e il tuo SI per prepararti a migrare i carichi di lavoro nel tuo ambiente CDP Public Cloud su AWS. La comprensione dei seguenti requisiti e consigli può aiutare a evitare problemi comuni durante e dopo l'installazione del servizio Replication Manager.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Responsabile della migrazione | 

### Esegui la migrazione da CDP ad AWS
<a name="migrate-cdp-to-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione del primo carico di lavoro per dev/test ambienti utilizzando Cloudera Workload Manager. | Il tuo SI può aiutarti a migrare il tuo primo carico di lavoro nel cloud AWS. Questa dovrebbe essere un'applicazione che non sia rivolta ai clienti o che non sia fondamentale per la missione. I candidati ideali per la dev/test migrazione sono le applicazioni che contengono dati che il cloud può facilmente importare, come i carichi di lavoro CDP Data Engineering. Si tratta di un carico di lavoro temporaneo a cui in genere accedono meno utenti, rispetto a un carico di lavoro persistente come un carico di lavoro CDP Data Warehouse, che potrebbe avere molti utenti che necessitano di un accesso ininterrotto. I carichi di lavoro di data engineering non sono persistenti, il che riduce al minimo l'impatto aziendale in caso di problemi. Tuttavia, questi lavori potrebbero essere fondamentali per i report di produzione, quindi dai la priorità ai carichi di lavoro di Data Engineering a basso impatto. | Responsabile della migrazione | 
| Ripetere i passaggi di migrazione se necessario. | Cloudera Workload Manager aiuta a identificare i carichi di lavoro più adatti per il cloud. Fornisce metriche come valutazioni delle prestazioni del cloud, sizing/capacity piani per l'ambiente di destinazione e piani di replica. I migliori candidati per la migrazione sono i carichi di lavoro stagionali, i report ad hoc e i lavori intermittenti che non consumano molte risorse.Cloudera Replication Manager sposta i dati dall'ambiente locale al cloud e dal cloud all'ambiente locale.Ottimizza in modo proattivo carichi di lavoro, applicazioni, prestazioni e capacità dell'infrastruttura per il data warehousing, l'ingegneria dei dati e l'apprendimento automatico utilizzando Workload Manager. [Per una guida completa su come modernizzare un data warehouse, consulta il sito Web di Cloudera.](https://www.cloudera.com/content/dam/www/marketing/resources/webinars/modern-data-warehouse-fundamentals.png.landing.html) | Cloudera PMI | 

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

Documentazione Cloudera:
+ [Registrazione di cluster classici con CDP, Cloudera Manager e Replication Manager:](https://docs.cloudera.com/replication-manager/cloud/operations/topics/rm-requirements-for-bdr-cdh-clusters.html)
  + [Console di gestione](https://docs.cloudera.com/management-console/cloud/overview/topics/mc-management-console.html)
  + [Replica dell'hive di Replication Manager](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-replication-of-data-using-hive.html)
+ [Replica Sentry](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-policy-replication.html) 
+ [Autorizzazioni Sentry](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-ranger-permissions.html)
+ [Lista di controllo per la pianificazione dei cluster Data Hub](https://docs.cloudera.com/data-hub/cloud/cluster-planning/topics/dh-cluster-checklist.html)
+ [Architettura di Workload Manager](https://docs.cloudera.com/workload-manager/cloud/configuration/topics/wm-public-architecture-wm.html)
+ [Requisiti di Replication Manager](https://docs.cloudera.com/replication-manager/cloud/index.html)
+ [Osservabilità della piattaforma dati di Cloudera](https://www.cloudera.com/products/observability.html)
+ [Requisiti AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html)

Documentazione AWS:
+ [Migrazione dei dati del cloud](https://aws.amazon.com/cloud-data-migration/)

# Risolvi gli errori di connessione dopo la migrazione di Microsoft SQL Server al cloud AWS
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud"></a>

*Premkumar Chelladurai, Amazon Web Services*

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

Dopo aver migrato Microsoft SQL Server in esecuzione su Windows Server 2008 R2, 2012 o 2012 R2 su istanze Amazon Elastic Compute Cloud (Amazon EC2) sul cloud Amazon Web Services (AWS), la connessione a SQL Server non riesce e vengono visualizzati i seguenti errori: 
+ `[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`

Questo modello descrive come risolvere questi errori disattivando le funzionalità di Windows Scalable Networking Pack (SNP) a livello di sistema operativo (OS) e interfaccia di rete per SQL Server in esecuzione su Windows Server 2008 R2, 2012 o 2012 R2.

## Prerequisiti e limitazioni
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-prereqs"></a>

**Prerequisiti**
+ Privilegi di amministratore per Windows Server.
+ Se hai utilizzato AWS Application Migration Service come strumento di migrazione, hai bisogno di una delle seguenti versioni di Windows Server:
  + Windows Server 2008 R2 Service Pack 1, 2012 o 2012 R2
+ Se hai utilizzato CloudEndure Migration come strumento di migrazione, hai bisogno di una delle seguenti versioni di Windows Server:
  + Windows Server 2003 R2 Service Pack 3, 2008, 2008 R2 Service Pack 1, 2012 o 2012 R2

## Tools (Strumenti)
<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) — Amazon Elastic Compute Cloud (Amazon EC2) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi usare Amazon EC2 per lanciare tutti o pochi server virtuali di cui hai bisogno, con scalabilità orizzontale o orizzontale. 
+ [Windows Server](https://docs.microsoft.com/en-us/windows-server/): Windows Server è una piattaforma per la creazione di un'infrastruttura di applicazioni, reti e servizi Web connessi.

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

### Disattiva le funzionalità SNP a livello di sistema operativo e elastic network interface
<a name="turn-off-snp-features-at-the-os-and-elastic-network-interface-levels"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Disattiva le funzionalità SNP a livello di sistema operativo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Amministratore AWS, amministratore di sistema AWS, ingegnere addetto alla migrazione, amministratore cloud | 
| Disattiva le funzionalità SNP a livello di elastic network interface. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | Amministratore AWS, amministratore cloud, amministratore di sistema AWS | 

## Risorse correlate
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-resources"></a>
+ [Come risolvere i problemi relativi a funzionalità avanzate di prestazioni di rete come RSS e NetDMA](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/troubleshoot-network-performance-features-rss-netdma)

# Riavvia automaticamente l'AWS Replication Agent senza disabilitarlo SELinux dopo il riavvio di un server di origine 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, Amazon Web Services*

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

AWS Application Migration Service aiuta a semplificare, accelerare e automatizzare la migrazione del carico di lavoro Red Hat Enterprise Linux (RHEL) al cloud Amazon Web Services (AWS). Per aggiungere server di origine a Application Migration Service, installa l'AWS Replication Agent sui server.

Application Migration Service fornisce una replica asincrona a livello di blocco in tempo reale. Ciò significa che è possibile continuare le normali operazioni IT durante l'intero processo di replica. Queste operazioni IT potrebbero richiedere il riavvio o il riavvio del server di origine RHEL durante la migrazione. In tal caso, l'agente di replica AWS non si riavvierà automaticamente e la replica dei dati si interromperà. In genere, puoi impostare Security-Enhanced Linux (SELinux) in modalità **disabilitata** o **permissiva** per riavviare automaticamente AWS Replication Agent. [Tuttavia, le politiche di sicurezza della tua organizzazione potrebbero proibire la disabilitazione e potresti anche dover SELinux rietichettare i file.](https://access.redhat.com/solutions/3176)

Questo modello descrive come riavviare automaticamente AWS Replication Agent senza spegnerlo SELinux quando il server di origine RHEL si riavvia o si riavvia durante una migrazione. 

## Prerequisiti e limitazioni
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un carico di lavoro RHEL locale che desideri migrare nel cloud AWS. 
+ Application Migration Service inizializzato dalla console di Application Migration Service. L'inizializzazione è richiesta solo la prima volta che si utilizza questo servizio. Per istruzioni, consulta la [documentazione di Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mandatory-setup.html).
+ Una [policy AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) esistente per Application Migration Service. Per ulteriori informazioni, consulta la [documentazione di Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html).

**Versioni**
+ RHEL versione 7 o successiva

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

**Servizi AWS**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) è una soluzione altamente automatizzata lift-and-shift (rehosting) che semplifica, accelera e riduce i costi di migrazione delle applicazioni su AWS.

**Comandi Linux**

La tabella seguente fornisce un elenco di comandi Linux che verranno eseguiti sul server di origine RHEL. Questi sono descritti anche nei poemi epici e nelle storie di questo modello. 


| 
| 
| Comando | Description | 
| --- |--- |
| `#systemctl –version` | Identifica la versione del sistema. | 
| `#systemctl list-units --type=service` | Elenca tutti i servizi attivi disponibili sul server RHEL. | 
| `#systemctl list-units --type=service \| grep running` | Elenca tutti i servizi attualmente in esecuzione sul server RHEL. | 
| `#systemctl list-units --type=service \| grep failed` | Elenca tutti i servizi che non sono stati caricati dopo il riavvio o il riavvio del server RHEL. | 
| `restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Modifica il contesto in. `aws-replication-service` | 
| `yum install policycoreutils*` | Installa le utilità principali della policy necessarie per il funzionamento del SELinux sistema. | 
| `ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Cerca nel registro di controllo e crea un modulo per le politiche. | 
| `semodule -i my-modprobe.pp` | Attiva la politica. | 
| `cat my-modprobe.te` | Visualizza il contenuto del `my-modprobe.te` file. | 
| `semodule -l \| grep my-modprobe` | Verifica se la politica è stata caricata nel SELinux modulo. | 

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

### Installa AWS Replication Agent e riavvia il server di origine RHEL
<a name="install-the-aws-replication-agent-and-reboot-the-rhel-source-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un utente di Application Migration Service con una chiave di accesso e una chiave di accesso segreta.  | Per installare AWS Replication Agent, devi creare un utente di Application Migration Service con le credenziali AWS richieste. Per istruzioni, consulta la documentazione di [Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | Tecnico di migrazione | 
| Installa l'agente di replica AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.html) | Tecnico di migrazione | 
| Riavvia o riavvia il server di origine RHEL. | [Riavvia o riavvia il server di origine RHEL quando **lo stato di replica dei dati** viene visualizzato **Stallato** nel dashboard di migrazione.](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html) | Ingegnere della migrazione | 
| Controlla lo stato della replica dei dati. | Attendi un'ora, quindi controlla nuovamente **lo stato della replica dei dati** nella dashboard di migrazione. Dovrebbe essere nello stato **Integro**. | Ingegnere della migrazione | 

### Verifica lo stato di AWS Replication Agent sul server di origine RHEL
<a name="check-aws-replication-agent-status-on-the-rhel-source-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica la versione del sistema. | Apri l'interfaccia a riga di comando per il tuo server di origine RHEL ed esegui il seguente comando per identificare la versione del sistema:`#systemctl –version` | Ingegnere della migrazione | 
| Elenca tutti i servizi attivi. | Per elencare tutti i servizi attivi disponibili sul server RHEL, esegui il comando:`#systemctl list-units --type=service` | Ingegnere della migrazione | 
| Elenca tutti i servizi in esecuzione. | Per elencare tutti i servizi attualmente in esecuzione sul server RHEL, utilizzare il comando:`#systemctl list-units --type=service \| grep running` | Ingegnere della migrazione | 
| Elenca tutti i servizi che non sono stati caricati. | Per elencare tutti i servizi che non sono stati caricati dopo il riavvio o il riavvio del server RHEL, esegui il comando:`#systemctl list-units --type=service \| grep failed` | Ingegnere della migrazione | 

### Crea ed esegui il SELinux modulo
<a name="create-and-run-the-selinux-module"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Cambia il contesto di sicurezza. | Nell'interfaccia a riga di comando per il tuo server di origine RHEL, esegui il seguente comando per modificare il contesto di sicurezza nel servizio di replica AWS:`restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Ingegnere della migrazione | 
| Installa le utilità principali. | Per installare le principali utilità necessarie per il funzionamento del SELinux sistema e le relative politiche, esegui il comando:`yum install policycoreutils*` | Ingegnere della migrazione | 
| Cerca nel registro di controllo e crea un modulo per le politiche. | Eseguire il comando :`ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Ingegnere della migrazione | 
| Visualizza il contenuto del my-modprobe-te file.  | Il `my-modprobe.te` file viene generato dal comando **audit2allow**. Include i SELinux domini, la directory di origine delle politiche e le sottodirectory e specifica le regole e le transizioni dei vettori di accesso associate ai domini. Per visualizzare il contenuto del file, esegui il comando:`cat my modprobe.te` | Ingegnere della migrazione | 
| Attiva la politica. | Per inserire il modulo e rendere attivo il pacchetto di policy, esegui il comando:`semodule -i my-modprobe.pp` | Ingegnere della migrazione | 
| Controlla se il modulo è stato caricato.  | Eseguire il comando :`semodule -l \| grep my-modprobe`Dopo aver caricato il SELinux modulo, non sarà più necessario SELinux impostarlo sulla modalità **disabilitata** o **permissiva** durante la migrazione. | Ingegnere della migrazione | 
| Riavviare o riavviare il server di origine RHEL e verificare lo stato della replica dei dati. | Apri la console AWS Migration Service, passa all'**avanzamento della replica dei dati**, quindi riavvia o riavvia il server di origine RHEL. La replica dei dati dovrebbe ora riprendere automaticamente dopo il riavvio del server di origine RHEL. | Ingegnere della migrazione | 

## Risorse correlate
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-resources"></a>
+ [Documentazione sul servizio di migrazione delle applicazioni](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Materiali per la formazione tecnica](https://docs.aws.amazon.com/mgn/latest/ug/mgn-training.html)
+ [Risoluzione dei problemi di AWS Replication Agent](https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Agent-Issues.html)
+ [Politiche del servizio di migrazione delle applicazioni](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html)

# Re-architetto
<a name="migration-rearchitect-pattern-list"></a>

**Topics**
+ [Converti VARCHAR2 (1) il tipo di dati per Oracle in tipo di dati booleano per Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Crea utenti e ruoli delle applicazioni in Aurora, compatibile con PostgreSQL](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Emula Oracle DR utilizzando un database globale Aurora compatibile con PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [SHA1 Implementa l'hashing per i dati PII durante la migrazione da SQL Server a PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Migrazione incrementale da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL utilizzando Oracle SQL Developer e AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Carica i file BLOB in formato TEXT utilizzando la codifica dei file in Aurora, compatibile con PostgreSQL](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL con e utilizzando e AWS SCT 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)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL in modalità SSL utilizzando AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrazione dei pacchetti pragma Oracle SERIALLY\$1REUSABLE in PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Esegui la migrazione di tabelle esterne Oracle verso Amazon Aurora, compatibile con PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migrazione di indici basati su funzioni da Oracle a PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrazione delle funzioni native di Oracle su PostgreSQL utilizzando le estensioni](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Esegui la migrazione di un database Db2 da Amazon a EC2 Aurora compatibile con MySQL utilizzando AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Esegui la migrazione di un database Microsoft SQL Server da Amazon EC2 ad Amazon DocumentDB utilizzando AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Esegui la migrazione di un database ThoughtSpot Falcon locale su Amazon Redshift](migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift.md)
+ [Esegui la migrazione da Oracle Database ad Amazon RDS for PostgreSQL utilizzando Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Esegui la migrazione di una tabella partizionata Oracle su PostgreSQL utilizzando AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Esegui la migrazione da IBM Db2 su Amazon a EC2 Aurora PostgreSQL compatibile con AWS DMS e AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando viste materializzate e AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Esegui la migrazione da Oracle su Amazon EC2 ad Amazon RDS for MySQL utilizzando AWS DMS e AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for MariaDB utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for MySQL utilizzando AWS DMS e AWS SCT](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for PostgreSQL utilizzando un bystander Oracle e AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Esegui la migrazione di un database Oracle ad Amazon Redshift utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle ad Aurora PostgreSQL utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione dei dati da un database Oracle locale ad Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Esegui la migrazione da SAP ASE ad Amazon RDS per SQL Server utilizzando AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando gli agenti di estrazione dati AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Migrazione delle applicazioni legacy da Oracle Pro\$1C a ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migra le colonne virtuali generate da Oracle a PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Configura la funzionalità Oracle UTL\$1FILE su Aurora, compatibile con PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Convalida gli oggetti del database dopo la migrazione da Oracle ad Amazon Aurora PostgreSQL](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# Converti VARCHAR2 (1) il tipo di dati per Oracle in tipo di dati booleano per Amazon Aurora PostgreSQL
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql"></a>

*Fotocamera Naresh, Amazon Web Services*

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

Durante una migrazione da Amazon Relational Database Service (Amazon RDS) per Oracle a Amazon Aurora PostgreSQL Compatible Edition, potresti riscontrare una mancata corrispondenza dei dati durante la convalida della migrazione in (). AWS Database Migration Service AWS DMS Per evitare questa mancata corrispondenza, puoi convertire il tipo di dati (1) in un tipo di dati booleano. VARCHAR2

VARCHAR2 il tipo di dati memorizza stringhe di testo a lunghezza variabile e VARCHAR2 (1) indica che la stringa è lunga 1 carattere o 1 byte. Per ulteriori informazioni su VARCHAR2, vedere i [tipi di dati integrati in Oracle](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (documentazione Oracle).

In questo modello, nella colonna della tabella dei dati di origine di esempio, i dati VARCHAR2 (1) sono o **Y**, per *Sì*, o **N**, per *No*.  Questo modello include istruzioni per utilizzare AWS DMS and AWS Schema Conversion Tool (AWS SCT) per convertire questo tipo di dati dai valori **Y** e **N** in VARCHAR2 (1) in valori **veri** o **falsi** in booleano.

**Destinatari**

Questo modello è consigliato a coloro che hanno esperienza nella migrazione di database Oracle ad Aurora compatibili con PostgreSQL utilizzando. AWS DMS Una volta completata la migrazione, segui i consigli in [Conversione da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (documentazione).AWS SCT 

## Prerequisiti e limitazioni
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-prereqs"></a>

**Prerequisiti**
+ Un attivo. Account AWS
+ Verifica che il tuo ambiente sia pronto per Aurora, inclusa la configurazione di credenziali, autorizzazioni e un gruppo di sicurezza. Per ulteriori informazioni, consulta [Configurazione dell'ambiente per Amazon Aurora (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_SettingUp_Aurora.html)).
+ Un database Amazon RDS for Oracle di origine che contiene una colonna di tabella VARCHAR2 con (1) dati.
+ Un'istanza di database di destinazione compatibile con Amazon Aurora PostgreSQL. Per ulteriori informazioni, vedere [Creazione di un cluster di database e connessione a un database su un cluster di database Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster) (documentazione Aurora).

**Versioni del prodotto**
+ Amazon RDS for Oracle versione 12.1.0.2 o successiva.
+ AWS DMS versione 3.1.4 o successiva. Per ulteriori informazioni, vedere [Utilizzo di un database Oracle come origine AWS DMS e [Utilizzo di un database PostgreSQL come destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) per](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) (documentazione). AWS DMSAWS DMS Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.
+ AWS Schema Conversion Tool (AWS SCT) versione 1.0.632 o successiva. Ti consigliamo di utilizzare la versione più recente di AWS SCT per il supporto più completo della versione e delle funzionalità.
+ Aurora supporta le versioni di PostgreSQL elencate in Database Engine [Versions for Aurora PostgreSQL compatible (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)).

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

**Stack tecnologico di origine**

Istanza di database Amazon RDS per Oracle

**Stack tecnologico Target**

Istanza di database compatibile con Amazon Aurora PostgreSQL

**Architettura di origine e destinazione**

![\[Modifica dei tipi di dati da VARCHAR2 (1) a booleano\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5d4dc568-20d8-4883-a942-21c81039d8e6/images/9fd82ae2-56e6-439c-b4cd-9e74fe77b480.png)


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

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Database Migration Service () ti aiuta a migrare gli archivi di dati all'interno o tra combinazioni di AWS DMS configurazioni](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) cloud e locali. Cloud AWS 
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle in. Cloud AWS
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

**Altri servizi**
+ [Oracle SQL Developer](https://docs.oracle.com/en/database/oracle/sql-developer/) è un ambiente di sviluppo integrato che semplifica lo sviluppo e la gestione dei database Oracle nelle implementazioni tradizionali e basate sul cloud. In questo modello, utilizzi questo strumento per connetterti all'istanza di database Amazon RDS for Oracle e interrogare i dati.
+ [pgAdmin](https://www.pgadmin.org/docs/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database. In questo modello, si utilizza questo strumento per connettersi all'istanza del database Aurora e interrogare i dati.

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

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un rapporto sulla migrazione del database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | DBA, Sviluppatore | 
| Disabilita i vincoli di chiave esterna sul database di destinazione. | In PostgreSQL, le chiavi esterne vengono implementate utilizzando i trigger. Durante la fase di caricamento completo, AWS DMS carica ogni tabella una alla volta. Si consiglia vivamente di disabilitare i vincoli di chiave esterna durante un caricamento completo utilizzando uno dei seguenti metodi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Se la disabilitazione dei vincoli di chiave esterna non è possibile, create un'attività di AWS DMS migrazione per i dati primari specifica della tabella principale e della tabella figlio. | DBA, Sviluppatore | 
| Disabilita le chiavi primarie e le chiavi univoche sul database di destinazione. | Utilizzando i seguenti comandi, disabilitate le chiavi primarie e i vincoli sul database di destinazione. Ciò consente di migliorare le prestazioni dell'attività di caricamento iniziale.<pre>ALTER TABLE <table> DISABLE PRIMARY KEY;</pre><pre>ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;</pre> | DBA, Sviluppatore | 
| Crea l'attività di caricamento iniziale. | In AWS DMS, crea l'attività di migrazione per il caricamento iniziale. Per istruzioni, consulta [Creazione di un'attività](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Per il metodo di migrazione, scegli **Migra dati esistenti**. Questo metodo di migrazione viene**** richiamato `Full Load` nell'API. Non avviare ancora questa attività. | DBA, Sviluppatore | 
| Modifica le impostazioni dell'attività per l'attività di caricamento iniziale. | Modifica le impostazioni dell'attività per aggiungere la convalida dei dati. Queste impostazioni di convalida devono essere create in un file JSON. Per istruzioni ed esempi, vedere [Specificazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) delle impostazioni delle attività. Aggiungi le seguenti convalide:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Per convalidare il resto della migrazione dei dati, abilita la convalida dei dati nell'attività. Per ulteriori informazioni, consulta Impostazioni dell'attività di [convalida dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.html). | Amministratore AWS, DBA | 
| Crea l'attività di replica continua. | In AWS DMS, crea l'attività di migrazione che mantiene il database di destinazione sincronizzato con il database di origine. Per istruzioni, consulta [Creazione di un'attività](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Per il metodo di migrazione, scegli **Replica solo le modifiche ai dati**. Non iniziate ancora questa attività. | DBA | 

### Verifica le attività di migrazione
<a name="test-the-migration-tasks"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea dati di esempio per i test. | Nel database di origine, crea una tabella di esempio con dati a scopo di test. | Developer | 
| Verifica che non vi siano attività in conflitto. | Utilizza il `pg_stat_activity` per verificare eventuali attività sul server che potrebbero influire sulla migrazione. Per ulteriori informazioni, vedere [The Statistics Collector (documentazione](https://www.postgresql.org/docs/current/monitoring-stats.html) PostgreSQL). | Amministratore AWS | 
| Avvia le attività di AWS DMS migrazione. | Nella AWS DMS console, nella pagina **Dashboard**, avvia le attività di caricamento iniziale e di replica in corso che hai creato nell'epic precedente. | Amministratore AWS | 
| Monitora le attività e gli stati di caricamento delle tabelle. | Durante la migrazione, monitora lo [stato delle attività](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.Status) e gli [stati della tabella](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.CustomizingTasks.TableState). Una volta completata l'attività di caricamento iniziale, nella scheda **Statistiche della tabella**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | Amministratore AWS | 
| Verifica i risultati della migrazione. | Utilizzando pgAdmin, interroga la tabella sul database di destinazione. Una query riuscita indica che i dati sono stati migrati correttamente. | Developer | 
| Aggiungi chiavi primarie e chiavi esterne nel database di destinazione. | Crea la chiave primaria e la chiave esterna nel database di destinazione. Per ulteriori informazioni, vedere [ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html) (sito Web PostgreSQL). | DBA | 
| Pulisci i dati del test. | Nei database di origine e di destinazione, pulisci i dati creati per il test unitario. | Developer | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Completa la migrazione. | Ripeti l'epopea precedente, *testa le attività di migrazione* utilizzando i dati di origine reale. In questo modo i dati vengono migrati dal database di origine a quello di destinazione. | Developer | 
| Verifica che i database di origine e di destinazione siano sincronizzati. | Verifica che i database di origine e di destinazione siano sincronizzati. Per ulteriori informazioni e istruzioni, consulta la sezione [Convalida AWS DMS dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Developer | 
| Arresta il database di origine. | Arresta il database Amazon RDS for Oracle. Per istruzioni, consulta [Arresto temporaneo di un'istanza DB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html). Quando si arresta il database di origine, il caricamento iniziale e le attività di replica in corso AWS DMS vengono interrotte automaticamente. Non è richiesta alcuna azione aggiuntiva per interrompere queste attività. | Developer | 

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

**AWS riferimenti**
+ Esegui la [migrazione di un database Oracle ad Aurora AWS DMSAWS SCT PostgreSQL](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.html) utilizzando e (Prescriptive Guidance)AWS 
+ [Conversione da Oracle ad Amazon RDS per PostgreSQL o Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (documentazione)AWS SCT 
+ [AWS DMSAWS DMS Come](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.html) funziona (documentazione)

**Altri riferimenti**
+ [Tipo di dati booleano (documentazione](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-boolean/) PostgreSQL)
+ Tipi di [dati Oracle integrati](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (documentazione Oracle)
+ [pgAdmin (sito](https://www.pgadmin.org/) web pgAdmin)
+ [SQL Developer](https://www.oracle.com/database/technologies/appdev/sql-developer.html) (sito web Oracle)

**Tutorial e video**
+ [Guida introduttiva con AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Guida introduttiva ad Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Introduzione a AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (video)
+ [Informazioni su Amazon RDS](https://www.youtube.com/watch?v=eMzCI7S1P9M) (video)

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

**Script di convalida dei dati**

**Il seguente script di convalida dei dati converte **1** in **Y** e **0** in N.** Ciò consente di completare correttamente l' AWS DMS attività e di superare la convalida della tabella.

```
{
"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"
        }
```

L'`case`istruzione nello script esegue la convalida. Se la convalida fallisce, AWS DMS inserisce un record nella tabella **public.awsdms\$1validation\$1failures\$1v1** sull'istanza del database di destinazione. Questo record include il nome della tabella, l'ora dell'errore e i dettagli sui valori non corrispondenti nelle tabelle di origine e di destinazione.

**Se non si aggiunge questo script di convalida dei dati all' AWS DMS attività e i dati vengono inseriti nella tabella di destinazione, l' AWS DMS attività mostra lo stato di convalida come Record non corrispondenti.**

Durante la AWS SCT conversione, il task di AWS DMS migrazione modifica il tipo di dati del tipo di dati VARCHAR2 (1) in Boolean e aggiunge un vincolo di chiave primaria sulla colonna. `"NO"`

# Crea utenti e ruoli delle applicazioni in Aurora, compatibile con PostgreSQL
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible"></a>

*Abhishek Verma, Amazon Web Services*

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

Quando esegui la migrazione ad Amazon Aurora PostgreSQL Compatible Edition, gli utenti e i ruoli del database esistenti nel database di origine devono essere creati nel database compatibile con Aurora PostgreSQL. È possibile creare utenti e ruoli in Aurora compatibili con PostgreSQL utilizzando due approcci diversi:
+ Utilizzate utenti e ruoli simili nel database di destinazione e nel database di origine. In questo approccio, i linguaggi di definizione dei dati (DDLs) vengono estratti per utenti e ruoli dal database di origine. Quindi vengono trasformati e applicati al database Aurora di destinazione compatibile con PostgreSQL. Ad esempio, il post sul blog [Use SQL to map users, roles and grants from Oracle to PostgreSQL](https://aws.amazon.com/blogs/database/use-sql-to-map-users-roles-and-grants-from-oracle-to-postgresql) tratta l'utilizzo dell'estrazione da un motore di database sorgente Oracle.
+ Utilizza utenti e ruoli standardizzati che vengono comunemente utilizzati durante lo sviluppo, l'amministrazione e per l'esecuzione di altre operazioni correlate nel database. Ciò include le operazioni di sola lettura, lettura/scrittura, di sviluppo, amministrazione e distribuzione eseguite dai rispettivi utenti.

Questo modello contiene le sovvenzioni necessarie per la creazione di utenti e ruoli in Aurora, compatibile con PostgreSQL, necessarie per l'approccio standardizzato di utenti e ruoli. Le fasi di creazione di utenti e ruoli sono allineate alla politica di sicurezza che prevede la concessione dei privilegi minimi agli utenti del database. La tabella seguente elenca gli utenti, i ruoli corrispondenti e i relativi dettagli nel database.


| 
| 
| Utenti | Roles | Scopo | 
| --- |--- |--- |
| `APP_read` | `APP_RO` | Utilizzato per l'accesso in sola lettura allo schema `APP` | 
| `APP_WRITE` | `APP_RW` | Utilizzato per le operazioni di scrittura e lettura sullo schema `APP` | 
| `APP_dev_user` | `APP_DEV` | Utilizzato a scopo di sviluppo sullo schema`APP_DEV`, con accesso in sola lettura allo schema `APP` | 
| `Admin_User` | `rds_superuser` | Utilizzato per eseguire operazioni di amministratore sul database | 
| `APP` | `APP_DEP` | Utilizzato per creare gli oggetti nell'ambito dello `APP` schema e per la distribuzione degli oggetti nello `APP` schema | 

## Prerequisiti e limitazioni
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-prereqs"></a>

**Prerequisiti**
+ Un account Amazon Web Services (AWS) attivo
+ Un database PostgreSQL, un database Edition compatibile con Amazon Aurora PostgreSQL o un database Amazon Relational Database Service (Amazon RDS) per PostgreSQL

**Versioni del prodotto**
+ Tutte le versioni di PostgreSQL

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

**Stack tecnologico di origine**
+ Qualsiasi database

**Stack tecnologico Target**
+ Compatibile con Amazon Aurora PostgreSQL

**Architettura Target**

Il diagramma seguente mostra i ruoli utente e l'architettura dello schema nel database Aurora compatibile con PostgreSQL.

![\[Ruoli utente e architettura dello schema per il database Aurora compatibile con PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/80105a81-e3d1-4258-b3c1-77f3a5e78592/images/b95cb9bc-8bf7-47d1-92e7-66cfb37d7ce7.png)


                                                                                                                                    

**Automazione e scalabilità**

Questo modello contiene gli utenti, i ruoli e lo script di creazione dello schema, che è possibile eseguire più volte senza alcun impatto sugli utenti esistenti del database di origine o di destinazione.

## Tools (Strumenti)
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-tools"></a>

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.

**Altri servizi**
+ [psql](https://www.postgresql.org/docs/current/app-psql.html) è uno strumento front-end basato su terminale che viene installato con ogni installazione del database PostgreSQL. Dispone di un'interfaccia a riga di comando per l'esecuzione di comandi SQL, PL-PGSQL e del sistema operativo.
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

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

### Crea gli utenti e i ruoli
<a name="create-the-users-and-roles"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'utente di distribuzione. | L'utente di distribuzione `APP` verrà utilizzato per creare e modificare gli oggetti del database durante le distribuzioni. Utilizza gli script seguenti per creare il ruolo utente di distribuzione `APP_DEP` nello schema. `APP` Convalida i diritti di accesso per assicurarti che questo utente abbia solo il privilegio di creare oggetti nello schema richiesto. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crea l'utente di sola lettura. | L'utente di sola lettura `APP_read` verrà utilizzato per eseguire l'operazione di sola lettura nello schema. `APP` Utilizzare gli script seguenti per creare l'utente di sola lettura. Convalida i diritti di accesso per assicurarti che questo utente abbia il privilegio solo di leggere gli oggetti nello schema `APP` e di concedere automaticamente l'accesso in lettura per tutti i nuovi oggetti creati nello schema. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crea l' read/write utente. | L' read/write utente `APP_WRITE` verrà utilizzato per eseguire operazioni di lettura e scrittura sullo schema`APP`. Usa i seguenti script per creare l' read/write utente e concedergli il `APP_RW` ruolo. Convalida i diritti di accesso per assicurarti che questo utente disponga dei privilegi di lettura e scrittura solo sugli oggetti dello schema `APP` e per concedere automaticamente l'accesso in lettura e scrittura per ogni nuovo oggetto creato nello schema. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) |  | 
| Crea l'utente amministratore. | L'utente amministratore `Admin_User` verrà utilizzato per eseguire operazioni di amministrazione sul database. Esempi di queste operazioni sono `CREATE ROLE` e`CREATE DATABASE`. `Admin_User`utilizza il ruolo integrato `rds_superuser` per eseguire operazioni di amministrazione sul database. Utilizza gli script seguenti per creare e testare il privilegio per l'utente amministratore `Admin_User` nel database.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Crea l'utente di sviluppo. | L'utente di sviluppo `APP_dev_user` avrà il diritto di creare gli oggetti nel suo schema locale `APP_DEV` e di leggere l'accesso allo schema`APP`. Utilizzate i seguenti script per creare e testare i privilegi dell'utente `APP_dev_user` nel database.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 

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

**Documentazione PostgreSQL**
+ [CREA RUOLO](https://www.postgresql.org/docs/9.1/sql-createrole.html)
+ [CREA UTENTE](https://www.postgresql.org/docs/8.0/sql-createuser.html)
+ [Ruoli predefiniti](https://www.postgresql.org/docs/14/predefined-roles.html)

 

## Informazioni aggiuntive
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-additional"></a>

**Miglioramento di PostgreSQL 14**

PostgreSQL 14 fornisce una serie di ruoli predefiniti che danno accesso a determinate funzionalità e informazioni privilegiate di uso comune. Gli amministratori (compresi i ruoli che dispongono del `CREATE ROLE` privilegio) possono concedere questi ruoli o altri ruoli nel loro ambiente agli utenti, fornendo loro l'accesso alle funzionalità e alle informazioni specificate.

Gli amministratori possono concedere agli utenti l'accesso a questi ruoli utilizzando il comando. `GRANT` Ad esempio, per concedere il `pg_signal_backend` ruolo a`Admin_User`, è possibile eseguire il comando seguente.

```
GRANT pg_signal_backend TO Admin_User;
```

Il `pg_signal_backend` ruolo ha lo scopo di consentire agli amministratori di abilitare ruoli affidabili e non superutente per inviare segnali ad altri backend. Per ulteriori informazioni, consulta Miglioramento di [PostgreSQL 14](https://www.postgresql.org/docs/14/predefined-roles.html).

**Ottimizzazione dell'accesso**

In alcuni casi, potrebbe essere necessario fornire un accesso più granulare agli utenti (ad esempio, accesso basato su tabelle o accesso basato su colonne). In questi casi, è possibile creare ruoli aggiuntivi per concedere tali privilegi agli utenti. Per ulteriori informazioni, vedere [PostgreSQL Grants](https://www.postgresql.org/docs/8.4/sql-grant.html).

# Emula Oracle DR utilizzando un database globale Aurora compatibile con PostgreSQL
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database"></a>

*HariKrishna Boorgadda, Amazon Web Services*

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

Le migliori pratiche per il disaster recovery (DR) aziendale consistono fondamentalmente nella progettazione e implementazione di sistemi hardware e software con tolleranza ai guasti in grado di sopravvivere a un disastro (*continuità aziendale*) e riprendere le normali operazioni (ripresa *aziendale), con un intervento minimo e, idealmente, senza* perdita di dati. La creazione di ambienti con tolleranza ai guasti per soddisfare gli obiettivi aziendali di disaster recovery può essere costosa e dispendiosa in termini di tempo e richiede un forte impegno da parte dell'azienda.

Oracle Database offre tre diversi approcci al DR che offrono il massimo livello di protezione e disponibilità dei dati rispetto a qualsiasi altro approccio per la protezione dei dati Oracle.
+ Dispositivo di ripristino Oracle Zero Data Loss
+ Oracle Active Data Guard
+ Oracle GoldenGate

Questo modello fornisce un modo per emulare Oracle GoldenGate DR utilizzando un database globale Amazon Aurora. L'architettura di riferimento utilizza Oracle GoldenGate for DR in tre regioni AWS. Lo schema illustra la ripiattaforma dell'architettura di origine nel database globale Aurora nativo per il cloud basato su Amazon Aurora PostgreSQL — Compatible Edition.

I database globali Aurora sono progettati per applicazioni con un'impronta globale. Un singolo database Aurora si estende su più regioni AWS con un massimo di cinque regioni secondarie. I database globali Aurora offrono le seguenti funzionalità:
+ Replica fisica a livello di storage
+ Letture globali a bassa latenza
+ Ripristino di emergenza rapido in caso di interruzioni a livello regionale
+ Migrazioni rapide tra regioni
+ Basso ritardo di replica tra le regioni
+ Little-to-no impatto sulle prestazioni del database

Per ulteriori informazioni sulle caratteristiche e i vantaggi dei database globali di Aurora, consulta [Utilizzo dei database globali di Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-overview). Per ulteriori informazioni sui failover non pianificati e gestiti, consulta [Uso del failover in un database globale Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover).

## Prerequisiti e limitazioni
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Un driver PostgreSQL Java Database Connectivity (JDBC) per la connettività delle applicazioni
+ Un database globale Aurora basato su Amazon Aurora PostgreSQL Compatible Edition
+ Un database Oracle Real Application Clusters (RAC) migrato al database globale Aurora basato sulla compatibilità con Aurora PostgreSQL

**Limitazioni dei database globali Aurora**
+ I database globali Aurora non sono disponibili in tutte le regioni AWS. Per un elenco delle regioni supportate, consulta [Database globali Aurora con 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).
+ Per informazioni sulle funzionalità non supportate e altre limitazioni dei database globali di Aurora, consulta le [Limitazioni dei database globali di Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**Versioni del prodotto**
+ Amazon Aurora PostgreSQL — Compatible Edition versione 10.14 o successiva

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

**Stack tecnologico di origine******
+ Database Oracle RAC a quattro nodi
+ Oracle GoldenGate

**Architettura di origine******

Il diagramma seguente mostra tre cluster con Oracle RAC a quattro nodi in diverse regioni AWS replicati utilizzando Oracle. GoldenGate 

![\[Oracle RAC in una regione principale e due regioni secondarie.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/9fc740fc-d339-422e-beaf-1f65690c9d14.png)


**Stack tecnologico Target**
+ Un database globale Amazon Aurora a tre cluster basato su Aurora PostgreSQL, compatibile con un cluster nella regione principale, due cluster in diverse regioni secondarie

**Architettura Target**

![\[Amazon Aurora in una regione principale e due regioni secondarie.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/8e3deca9-03f2-437c-9341-795ac17e2b42.png)


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

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ I [database globali di Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) si estendono su più regioni AWS, fornendo letture globali a bassa latenza e ripristino rapido da rare interruzioni che potrebbero interessare un'intera regione AWS.

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

### Aggiungi regioni con istanze DB Reader
<a name="add-regions-with-reader-db-instances"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Collega uno o più cluster Aurora secondari. | Nella Console di gestione AWS, scegli Amazon Aurora. Seleziona il cluster primario, scegli **Azioni** e scegli **Aggiungi regione** dall'elenco a discesa. | DBA | 
| Seleziona la classe dell'istanza. | È possibile modificare la classe di istanza del cluster secondario. Tuttavia, si consiglia di mantenerla uguale alla classe di istanza del cluster principale. | DBA | 
| Aggiungi la terza regione. | Ripeti i passaggi di questa epopea per aggiungere un cluster nella terza regione. | DBA | 

### Esegui il failover del database globale Aurora
<a name="fail-over-the-aurora-global-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rimuovi il cluster primario dal database globale Aurora. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.html) | DBA | 
| Riconfigurare l'applicazione per deviare il traffico di scrittura nel nuovo cluster promosso. | Modifica l'endpoint nell'applicazione con quello del cluster appena promosso. | DBA | 
| Interrompi l'esecuzione di operazioni di scrittura sul cluster non disponibile. | Interrompi l'applicazione e qualsiasi attività DML (Data Manipulation Language) sul cluster che hai rimosso. | DBA | 
| Crea un nuovo database globale Aurora. | Ora puoi creare un database globale Aurora con il cluster appena promosso come cluster primario. | DBA | 

### Avvia il cluster primario
<a name="start-the-primary-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Seleziona il cluster primario da avviare dal database globale. | Nella console Amazon Aurora, nella configurazione di Global Database, scegli il cluster primario. | DBA | 
| Avvia il cluster. | Nell'elenco a discesa **Azioni**, scegli **Avvia**. Questo processo potrebbe richiedere del tempo. Aggiorna la schermata per visualizzare lo stato oppure controlla la colonna **Status** per lo stato corrente del cluster una volta completata l'operazione. | DBA | 

### Pulisci le risorse
<a name="clean-up-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare i cluster secondari rimanenti. | Una volta completato il programma pilota di failover, rimuovete i cluster secondari dal database globale. | DBA | 
| Eliminare il cluster primario. | Rimuovi il cluster. | DBA | 

## Risorse correlate
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-resources"></a>
+ [Using Amazon Aurora global databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-detaching)
+ [Soluzioni di disaster recovery Aurora PostgreSQL che utilizzano Amazon Aurora](https://aws.amazon.com/blogs/database/aurora-postgresql-disaster-recovery-solutions-using-amazon-aurora-global-database/) Global Database (post sul blog)

# SHA1 Implementa l'hashing per i dati PII durante la migrazione da SQL Server a 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*

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

Questo modello descrive come implementare l'hashing Secure Hash Algorithm 1 (SHA1) per gli indirizzi e-mail durante la migrazione da SQL Server ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL compatibile. *Un indirizzo e-mail è un esempio di informazioni di identificazione personale (PII).* Le PII sono informazioni che, se visualizzate direttamente o abbinate ad altri dati correlati, possono essere utilizzate per dedurre ragionevolmente l'identità di un individuo. 

Questo modello copre le sfide legate al mantenimento di valori hash coerenti tra diverse regole di confronto di database e codifiche di caratteri e fornisce una soluzione che utilizza funzioni e trigger PostgreSQL. Sebbene questo modello si concentri sull' SHA1 hashing, può essere adattato per altri algoritmi di hashing supportati dal modulo di PostgreSQL. `pgcrypto` Considerate sempre le implicazioni di sicurezza della vostra strategia di hashing e consultate gli esperti di sicurezza se gestite dati sensibili.

## Prerequisiti e limitazioni
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Database SQL Server di origine
+ Database PostgreSQL di destinazione (compatibile con Amazon RDS per PostgreSQL o Aurora PostgreSQL)
+ Esperienza nella codifica PL/PgSQL

**Limitazioni**
+ Questo modello richiede modifiche alle regole di confronto a livello di database in base ai casi d'uso.
+ L'impatto sulle prestazioni su set di dati di grandi dimensioni non è stato valutato.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità regionale, vedi [AWS Servizi per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ Microsoft SQL Server 2012 o versioni successive

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

**Stack tecnologico di origine**
+ SQL Server
+ .NET Framework

**Stack tecnologico di destinazione**
+ PostgreSQL
+ `pgcrypto`estensione

**Automazione e scalabilità**
+ Prendi in considerazione l'implementazione della funzione di hashing come procedura memorizzata per semplificare la manutenzione.
+ Per set di dati di grandi dimensioni, valuta le prestazioni e prendi in considerazione l'elaborazione in batch o le strategie di indicizzazione.

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

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) è un motore di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Database Migration Service () ti aiuta a migrare gli archivi di dati all'interno o tra combinazioni di AWS DMS configurazioni](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) cloud e locali. Cloud AWS 
+ [Amazon Relational Database Service Amazon RDS per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL in. Cloud AWS
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

**Altri strumenti**
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.
+ [SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms) è un ambiente integrato per la gestione di qualsiasi infrastruttura SQL.

## Best practice
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-best-practices"></a>
+ Utilizza le impostazioni di confronto appropriate per gestire i caratteri speciali sul lato del database di destinazione.
+ Esegui test approfonditi con una varietà di indirizzi e-mail, inclusi gli indirizzi con caratteri non ASCII.
+ Mantieni la coerenza nella gestione delle lettere maiuscole e minuscole tra i livelli dell'applicazione e del database.
+ Esegui il benchmark delle prestazioni delle query utilizzando i valori con hash.

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

### Analizza l'implementazione dell'hashing dei sorgenti
<a name="analyze-source-hashing-implementation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rivedi il codice di SQL Server. | Per esaminare il codice di SQL Server che genera gli SHA1 hash, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Ingegnere dei dati, DBA, sviluppatore di app | 
| Documenta l'algoritmo di hashing e le trasformazioni dei dati. | Per documentare l'esatto algoritmo di hashing e le trasformazioni dei dati, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, ingegnere dei dati, DBA | 

### Crea una funzione di hashing PostgreSQL
<a name="create-postgresql-hashing-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea `pgcrypto` estensione. | Per creare l'`pgcrypto`estensione, usa `pgAdmin/psql` per eseguire il seguente comando:<pre>CREATE EXTENSION pgcrypto;</pre> | DBA, ingegnere dei dati | 
| Implementa una funzione PostgreSQL. | Implementa la seguente funzione PostgreSQL per replicare la logica di hashing di SQL Server. A un livello elevato, questa funzione utilizza i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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> | Ingegnere dei dati, DBA, sviluppatore di app | 
| Esegui il test della funzione. | Per testare la funzione, utilizza dati di esempio provenienti da SQL Server per verificare i valori hash corrispondenti. Esegui il comando seguente:<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> | Sviluppatore di app, DBA, ingegnere dei dati | 

### Implementa i trigger per l'hashing automatico
<a name="implement-triggers-for-automatic-hashing"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea trigger su tabelle pertinenti. | Per creare trigger nelle tabelle pertinenti per generare automaticamente valori hash all'inserimento o all'aggiornamento, esegui il comando seguente:<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> | Sviluppatore di app, ingegnere dei dati, DBA | 

### Migrazione dei dati esistenti
<a name="migrate-existing-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Sviluppa o utilizza uno script di migrazione AWS DMS.  | Sviluppa uno script di migrazione o AWS DMS utilizzalo per compilare i valori hash per i dati esistenti (inclusi i valori hash memorizzati come `BIGINT` nel sistema di origine). Completa le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Ingegnere dei dati, sviluppatore di app, DBA | 
| Usa la nuova funzione di hashing PostgreSQL. | Per utilizzare la nuova funzione di hashing PostgreSQL per garantire la coerenza, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, DBA, ingegnere DevOps  | 

### Aggiorna le interrogazioni delle applicazioni
<a name="update-application-queries"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica le domande relative all'applicazione. | Per identificare le query dell'applicazione che utilizzano valori con hash, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, DBA, ingegnere dei dati | 
| Modifica le interrogazioni. | Se necessario, modifica le query per utilizzare la nuova funzione di hashing PostgreSQL. Esegui questa operazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, DBA, ingegnere dei dati | 

### Testa e convalida
<a name="test-and-validate"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire test. | Per eseguire test approfonditi con un sottoinsieme di dati di produzione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, ingegnere dei dati, DBA | 
| Verifica che i valori hash corrispondano. | Per verificare che i valori hash corrispondano tra SQL Server e PostgreSQL, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, ingegnere dei dati, DBA | 
| Verifica la funzionalità dell'applicazione. | Per verificare la funzionalità dell'applicazione utilizzando i dati migrati e la nuova implementazione di hashing, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Sviluppatore di app, DBA, ingegnere dei dati | 

## risoluzione dei problemi
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| I valori hash non corrispondono. | Verifica le codifiche e le regole di confronto dei caratteri tra origine e destinazione. Per ulteriori informazioni, consulta [Gestire le modifiche alle regole di confronto in PostgreSQL su Amazon Aurora e Amazon RDS (Blog](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)).AWS  | 

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

**AWS Blog**
+ [Gestisci le modifiche alle regole di confronto in PostgreSQL su Amazon Aurora e Amazon RDS](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)
+ [Esegui la migrazione di SQL Server ad Amazon Aurora PostgreSQL utilizzando le migliori pratiche e le lezioni apprese sul campo](https://aws.amazon.com/blogs/database/migrate-sql-server-to-amazon-aurora-postgresql-using-best-practices-and-lessons-learned-from-the-field/)

**Altre risorse**
+ [Modulo PostgreSQL pgcrypto (documentazione PostgreSQL](https://www.postgresql.org/docs/current/pgcrypto.html))
+ [Funzioni di attivazione di PostgreSQL (documentazione PostgreSQL](https://www.postgresql.org/docs/current/plpgsql-trigger.html))
+ [Funzione HASHBYTES di SQL Server](https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql) (documentazione Microsoft)

# Migrazione incrementale da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL utilizzando Oracle SQL Developer e 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*

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

Molte strategie e approcci di migrazione si svolgono in più fasi che possono durare da alcune settimane a diversi mesi. Durante questo periodo, è possibile che si verifichino ritardi dovuti all'applicazione di patch o aggiornamenti nelle istanze database Oracle di origine che si desidera migrare su istanze DB PostgreSQL. Per evitare questa situazione, si consiglia di migrare in modo incrementale il codice del database Oracle rimanente al codice del database PostgreSQL.

Questo modello fornisce una strategia di migrazione incrementale senza tempi di inattività per un'istanza DB Oracle da più terabyte che ha un numero elevato di transazioni eseguite dopo la migrazione iniziale e che deve essere migrata su un database PostgreSQL. Puoi utilizzare l' step-by-stepapproccio di questo modello per migrare in modo incrementale un'istanza DB Amazon Relational Database Service (Amazon RDS) per Oracle DB verso un'istanza DB Amazon RDS for PostgreSQL senza accedere alla console di gestione Amazon Web Services (AWS).

Il modello utilizza [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) per trovare le differenze tra due schemi nel database Oracle di origine. Utilizza quindi AWS Schema Conversion Tool (AWS SCT) per convertire gli oggetti dello schema del database Amazon RDS for Oracle in oggetti dello schema del database Amazon RDS for PostgreSQL. È quindi possibile eseguire uno script Python nel prompt dei comandi di Windows per creare oggetti AWS SCT per le modifiche incrementali agli oggetti del database di origine.

**Nota**  
Prima di migrare i carichi di lavoro di produzione, ti consigliamo di eseguire un proof of concept (PoC) per l'approccio di questo modello in un ambiente di test o non di produzione.

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

**Prerequisiti**
+ Un account AWS attivo.
+ Un'istanza database Amazon RDS for Oracle esistente. 
+ Un'istanza database Amazon RDS for PostgreSQL esistente.
+ AWS SCT, installato e configurato con driver JDBC per motori di database Oracle e PostgreSQL. Per ulteriori informazioni su questo argomento, consulta [Installazione di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) e [Installazione dei driver di database richiesti](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers) nella documentazione di AWS SCT. 
+ Oracle SQL Developer, installato e configurato. Per ulteriori informazioni su questo argomento, vedere la documentazione di [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html). 
+ Il `incremental-migration-sct-sql.zip` file (allegato), scaricato sul computer locale.

**Limitazioni**
+ I requisiti minimi per l'istanza DB di origine di Amazon RDS for Oracle sono:
  + Versioni Oracle 10.2 e successive (per le versioni 10.x), 11g (versioni 11.2.0.3.v1 e successive) e fino a 12.2 e 18c per le edizioni Enterprise, Standard, Standard One e Standard Two
+ I requisiti minimi per l'istanza database Amazon RDS for PostgreSQL di destinazione sono:  
  + PostgreSQL versioni 9.4 e successive (per le versioni 9.x), 10.x e 11.x
+ Questo modello utilizza Oracle SQL Developer. I risultati potrebbero variare se si utilizzano altri strumenti per trovare ed esportare le differenze dello schema.
+ [Gli script SQL](https://docs.oracle.com/database/121/AEUTL/sql_rep.htm#AEUTL191) generati da Oracle SQL Developer possono generare errori di trasformazione, il che significa che è necessario eseguire una migrazione manuale.
+ Se le connessioni di test di origine e destinazione di AWS SCT falliscono, assicurati di configurare le versioni dei driver JDBC e le regole in entrata per il gruppo di sicurezza del cloud privato virtuale (VPC) per accettare il traffico in entrata.

**Versioni del prodotto**
+ Istanza Amazon RDS for Oracle DB versione 12.1.0.2 (versione 10.2 e successive)
+ Istanza database Amazon RDS per PostgreSQL versione 11.5 (versione 9.4 e successive)
+ Oracle SQL Developer versione 19.1 e successive
+ AWS SCT versione 1.0.632 e successive

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

**Stack tecnologico di origine**
+ Istanza database Amazon RDS per Oracle

**Stack tecnologico Target**
+ Istanza database Amazon RDS per PostgreSQL

**Architettura di origine e destinazione**

Il diagramma seguente mostra la migrazione di un'istanza DB Amazon RDS for Oracle verso un'istanza DB Amazon RDS for PostgreSQL.

![\[Flusso di lavoro di migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/c7eed517-e496-4e8e-a520-c1e43397419e/images/bfbbed5e-db13-4a22-99aa-1a17f00f5faf.png)


Il diagramma mostra il seguente flusso di lavoro di migrazione:

1. Aprire Oracle SQL Developer e connettersi ai database di origine e di destinazione.

1. Genera un [report sulle differenze](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) e quindi genera il file di script SQL per gli oggetti di differenza dello schema. Per ulteriori informazioni sui report sulle differenze, consulta [Rapporti sulle differenze dettagliati](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) nella documentazione di Oracle.

1. Configura AWS SCT ed esegui il codice Python.

1. Il file di script SQL converte da Oracle a PostgreSQL.

1. Esegui il file di script SQL sull'istanza database PostgreSQL di destinazione. 

**Automazione e scalabilità**

Puoi automatizzare questa migrazione aggiungendo parametri aggiuntivi e modifiche relative alla sicurezza per più funzionalità in un unico programma allo script Python.

## Tools (Strumenti)
<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) — AWS Schema Conversion Tool (AWS SCT) converte lo schema di database esistente da un motore di database a un altro.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) — Oracle SQL Developer è un ambiente di sviluppo integrato (IDE) che semplifica lo sviluppo e la gestione dei database Oracle nelle implementazioni tradizionali e basate sul cloud.

**Codice**

Il `incremental-migration-sct-sql.zip` file (allegato) contiene il codice sorgente completo per questo modello.

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

### Crea il file di script SQL per le differenze dello schema del database di origine
<a name="create-the-sql-scripts-file-for-the-source-database-schema-differences"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui Database Diff in Oracle SQL Developer.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Genera il file di script SQL. | Scegliete **Genera script** per generare le differenze nei file SQL. Questo genera il file di script SQL che AWS SCT utilizza per convertire il database da Oracle a PostgreSQL. | DBA | 

### Usa lo script Python per creare gli oggetti DB di destinazione in AWS SCT
<a name="use-the-python-script-to-create-the-target-db-objects-in-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT con il prompt dei comandi di Windows.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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. Modifica i parametri di configurazione di AWS SCT in base alle tue esigenze, quindi copia il file degli script SQL nella tua directory di lavoro nella `input` sottodirectory. | DBA | 
| Eseguire lo script Python.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
|  Crea gli oggetti in Amazon RDS for PostgreSQL | Esegui i file SQL e crea oggetti nella tua istanza database Amazon RDS for PostgreSQL. | DBA | 

## Risorse correlate
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-resources"></a>
+ [Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [PostgreSQL su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Utilizzo dell'interfaccia utente AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Utilizzo di Oracle come sorgente per AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

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

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/c7eed517-e496-4e8e-a520-c1e43397419e/attachments/attachment.zip)

# Carica i file BLOB in formato TEXT utilizzando la codifica dei file in Aurora, compatibile con PostgreSQL
<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*

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

Spesso durante la migrazione, ci sono casi in cui è necessario elaborare dati strutturati e non strutturati caricati da file su un file system locale. I dati potrebbero anche essere in un set di caratteri diverso dal set di caratteri del database.

Questi file contengono i seguenti tipi di dati:
+ **Metadati**: questi dati descrivono la struttura del file.
+ **Dati semistrutturati**: si tratta di stringhe di testo in un formato specifico, come JSON o XML. Potresti essere in grado di fare affermazioni su tali dati, ad esempio «inizierà sempre con '<'" o «non contiene caratteri di nuova riga».
+ **Testo completo**: questi dati in genere contengono tutti i tipi di caratteri, inclusi i caratteri di nuova riga e le virgolette. Potrebbe anche essere costituito da caratteri multibyte in UTF-8.
+ **Dati binari: questi dati** possono contenere byte o combinazioni di byte, inclusi valori null e marcatori. end-of-file

Caricare una combinazione di questi tipi di dati può essere una sfida.

Il modello può essere utilizzato con database Oracle locali, database Oracle che si trovano su istanze Amazon Elastic Compute Cloud (Amazon EC2) sul cloud Amazon Web Services (AWS) e Amazon Relational Database Service (Amazon RDS) per database Oracle. Ad esempio, questo modello utilizza Amazon Aurora PostgreSQL Compatible Edition.

In Oracle Database, con l'aiuto di un puntatore `BFILE` (file binario), del `DBMS_LOB` pacchetto e delle funzioni di sistema Oracle, è possibile caricare da file e convertirlo in CLOB con codifica dei caratteri. Poiché PostgreSQL non supporta il tipo di dati BLOB durante la migrazione a un database Edition compatibile con Amazon Aurora PostgreSQL, queste funzioni devono essere convertite in script compatibili con PostgreSQL.

Questo modello fornisce due approcci per caricare un file in una singola colonna di database in un database compatibile con Amazon Aurora PostgreSQL:
+ Approccio 1: importi i dati dal tuo bucket Amazon Simple Storage Service (Amazon S3) utilizzando `table_import_from_s3` la funzione dell'estensione con l'opzione `aws_s3` encode.
+ Approccio 2: si codifica in formato esadecimale all'esterno del database, quindi si decodifica per visualizzare all'interno del database. `TEXT`

Si consiglia di utilizzare Approach 1 perché Aurora PostgreSQL Compatible ha un'integrazione diretta con l'estensione. `aws_s3`

Questo modello utilizza l'esempio del caricamento di un file flat contenente un modello di e-mail, con caratteri multibyte e una formattazione distinta, in un database compatibile con Amazon Aurora PostgreSQL.

## Prerequisiti e limitazioni
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Amazon RDS o un'istanza Aurora compatibile con PostgreSQL
+ Una conoscenza di base di SQL e Relational Database Management System (RDBMS)
+ Un bucket Amazon Simple Storage Service (Amazon S3).
+ Conoscenza delle funzioni di sistema in Oracle e PostgreSQL
+ Pacchetto RPM HexDump -XXD-0.1.1 (incluso con Amazon Linux 2)
**Nota**  
Amazon Linux 2 sta per terminare il supporto. Per ulteriori informazioni, consulta [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).

**Limitazioni**
+ Per il tipo di `TEXT` dati, la stringa di caratteri più lunga possibile che può essere memorizzata è di circa 1 GB.

**Versioni del prodotto**
+ [Aurora supporta le versioni di PostgreSQL elencate negli aggiornamenti di Amazon Aurora PostgreSQL.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)

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

**Stack tecnologico Target**
+ Compatibile con Aurora PostgreSQL

**Architettura Target**

*Approccio 1: utilizzo di aws\$1s3.table\$1import\$1from\$1s3*

Da un server locale, un file contenente un modello di e-mail con caratteri multibyte e formattazione personalizzata viene trasferito su Amazon S3. La funzione di database personalizzata fornita da questo modello utilizza la `aws_s3.table_import_from_s3` funzione with `file_encoding` per caricare file nel database e restituire i risultati delle query come tipo di dati. `TEXT`

![\[Processo in quattro fasi dal server locale all'output TEXT dal database Aurora.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/9c46b385-e8a0-4e50-b856-d522c44d79e3.png)


1. I file vengono trasferiti nel bucket S3 di staging.

1. I file vengono caricati nel database compatibile con Amazon Aurora PostgreSQL.

1. Utilizzando il client pgAdmin, la `load_file_into_clob` funzione personalizzata viene distribuita nel database Aurora.

1. La funzione personalizzata utilizza internamente file\$1encoding. `table_import_from_s3` L'output della funzione viene ottenuto utilizzando `array_to_string` e come output. `array_agg` `TEXT`

*Approccio 2: codifica in formato esadecimale all'esterno del database e decodifica per visualizzare il TESTO all'interno del database*

Un file proveniente da un server locale o da un file system locale viene convertito in un dump esadecimale. Quindi il file viene importato in PostgreSQL come campo. `TEXT`

![\[Processo in tre fasi utilizzando Hex dump.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/563038ca-f890-4874-85df-d0f82d99800a.png)


1. Converti il file in un dump esadecimale nella riga di comando utilizzando l'opzione. `xxd -p`

1. Carica i file di dump esadecimali in Aurora PostgreSQL compatibile utilizzando `\copy` l'opzione, quindi decodifica i file di dump esadecimali in formato binario.

1. `TEXT`Codifica i dati binari per restituirli come.

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

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.

**Altri strumenti**
+ [pgAdmin4](https://www.pgadmin.org/) è una piattaforma di amministrazione e sviluppo open source per PostgreSQL. pgAdmin4 può essere utilizzato su Linux, Unix, mac OS e Windows per gestire PostgreSQL.  

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

### Approccio 1: importazione di dati da Amazon S3 ad Aurora, compatibile con PostgreSQL
<a name="approach-1-import-data-from-amazon-s3-to-aurora-postgresql-compatible"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia un' EC2 istanza. | Per istruzioni sull'avvio di un'istanza, consulta [Launch your istance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | DBA | 
| Installa lo strumento pgAdmin del client PostgreSQL. | Scarica e installa [pgAdmin.](https://www.pgadmin.org/download/) | DBA | 
| Creare una policy IAM | Crea una policy AWS Identity and Access Management (IAM) denominata `aurora-s3-access-pol` che garantisca l'accesso al bucket S3 in cui verranno archiviati i file. Usa il codice seguente, sostituendolo `<bucket-name>` con il nome del tuo bucket 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 | 
| Crea un ruolo IAM per l'importazione di oggetti da Amazon S3 ad Aurora, compatibile con PostgreSQL. | Utilizza il codice seguente per creare un ruolo IAM denominato con la relazione di trust. `aurora-s3-import-role` [AssumeRole](https://docs.amazonaws.cn/en_us/STS/latest/APIReference/API_AssumeRole.html) `AssumeRole`consente ad Aurora di accedere ad altri servizi AWS per tuo conto.<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 | 
| Associa il ruolo IAM al cluster. | Per associare il ruolo IAM al cluster di database compatibile con Aurora PostgreSQL, esegui il seguente comando AWS CLI. Passa `<Account-ID>` all'ID dell'account AWS che ospita il database Aurora compatibile con PostgreSQL. Ciò consente al database compatibile con Aurora PostgreSQL di accedere al bucket 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 | 
| Carica l'esempio su Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA, proprietario dell'app | 
| Implementa la funzione personalizzata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | Proprietario dell'app, DBA | 
| Esegui la funzione personalizzata per importare i dati nel database. | Esegui il seguente comando SQL, sostituendo gli elementi tra parentesi angolari con i valori appropriati.<pre>select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Sostituite gli elementi tra parentesi angolari con i valori appropriati, come illustrato nell'esempio seguente, prima di eseguire il comando.<pre>Select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Il comando carica il file da Amazon S3 e restituisce l'output come. `TEXT` | Proprietario dell'app, DBA | 

### Approccio 2: convertire il file modello in un dump esadecimale in un sistema Linux locale
<a name="approach-2-convert-the-template-file-into-a-hex-dump-in-a-local-linux-system"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Converti il file modello in un dump esadecimale. | L'utilità Hexdump visualizza il contenuto dei file binari in formato esadecimale, decimale, ottale o ASCII. Il `hexdump` comando fa parte del pacchetto e viene preinstallato nelle distribuzioni Linux. `util-linux` Anche il pacchetto RPM Hexdump fa parte di Amazon Linux 2. (: Amazon Linux 2 sta per terminare il supporto. Per ulteriori informazioni, consulta [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).)Per convertire il contenuto del file in un dump esadecimale, esegui il seguente comando shell.<pre>xxd -p </path/file.vm> | tr -d '\n' > </path/file.hex></pre>Sostituite il percorso e il file con i valori appropriati, come mostrato nell'esempio seguente.<pre>xxd -p employee.salary.event.notification.email.vm | tr -d '\n' > employee.salary.event.notification.email.vm.hex</pre> | DBA | 
| Carica il file hexdump nello schema del database. | Usa i seguenti comandi per caricare il file hexdump nel database Aurora compatibile con PostgreSQL.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA | 

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

**Riferimenti**
+ [Utilizzo di un database PostgreSQL come destinazione per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Playbook sulla migrazione da Oracle Database 19c ad Amazon Aurora con compatibilità PostgreSQL (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Creazione di politiche IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)
+ [Associazione di un ruolo IAM a un cluster Amazon Aurora MySQL DB](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html)
+ [pgAdmin](https://www.pgadmin.org/)

**Tutorial**
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Esegui la migrazione da Oracle ad Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

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

**funzione personalizzata 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$;
```

**Modello di email**

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

# Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL con e utilizzando e AWS SCT 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*

## Riepilogo
<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>

Questo modello mostra come migrare un'istanza DB Amazon [Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) per Oracle da più terabyte a un'istanza DB [Amazon RDS for PostgreSQL utilizzando](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) (). AWS Command Line Interface AWS CLI L'approccio offre tempi di inattività minimi e non richiede l'accesso a. Console di gestione AWS

Questo modello consente di evitare configurazioni manuali e migrazioni individuali utilizzando le console AWS Schema Conversion Tool (AWS SCT) e AWS Database Migration Service (AWS DMS). La soluzione imposta una configurazione unica per più database ed esegue le migrazioni utilizzando e in. AWS SCT AWS DMS AWS CLI

Il modello viene utilizzato AWS SCT per convertire gli oggetti dello schema del database da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL e quindi viene utilizzato per migrare i dati. AWS DMS Utilizzando gli script Python in AWS CLI, crei AWS SCT oggetti e AWS DMS attività con un modello. CloudFormation 

## Prerequisiti e limitazioni
<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>

**Prerequisiti**
+ Un attivo. Account AWS
+ Un'istanza database Amazon RDS for Oracle esistente.
+ Un'istanza database Amazon RDS for PostgreSQL esistente. 
+ Un'istanza Amazon Elastic Compute Cloud (Amazon EC2) o un computer locale con sistema operativo Windows o Linux per l'esecuzione di script.
+ Comprensione dei seguenti tipi di attività di AWS DMS migrazione:`full-load`,,`cdc`. `full-load-and-cdc`  Per ulteriori informazioni, vedere [Creazione di un'attività](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) nella AWS DMS documentazione. 
+ AWS SCT, installato e configurato con i driver Java Database Connectivity (JDBC) per i motori di database Oracle e PostgreSQL. Per ulteriori informazioni, vedere [Installazione e](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) configurazione nella documentazione. AWS SCT AWS SCT  
+ Il `AWSSchemaConversionToolBatch.jar` file dalla AWS SCT cartella di installazione, copiato nella directory di lavoro.
+ Il `cli-sct-dms-cft.zip` file (allegato), scaricato ed estratto nella directory di lavoro.
+ La versione più recente del motore di istanze AWS DMS di replica. Per ulteriori informazioni, consulta [Come si crea un'istanza di AWS DMS replica](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) nella Supporto AWS documentazione e nelle note di [AWS DMS rilascio](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html). 
+ AWS CLI versione 2, installata e configurata con l'ID della chiave di accesso, la chiave di accesso segreta e Regione AWS il nome predefinito per l' EC2 istanza o il sistema operativo in cui vengono eseguiti gli script. Per ulteriori informazioni, consulta [Installazione o aggiornamento alla versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [Configurazione delle impostazioni contenute AWS CLI nella](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) AWS CLI documentazione. 
+ Familiarità con CloudFormation i modelli. Per ulteriori informazioni, consulta [How CloudFormation works](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html) nella CloudFormation documentazione. 
+ Python versione 3, installato e configurato sull' EC2 istanza o sul sistema operativo in cui vengono eseguiti gli script. Per ulteriori informazioni, consulta la documentazione di [Python](https://docs.python.org/3/). 

**Limitazioni**
+ I requisiti minimi per l'istanza DB di origine di Amazon RDS for Oracle sono: 
  + Versioni Oracle 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0) e 19c (19.0.0.0) per le edizioni Enterprise, Standard, Standard One e Standard Two.
  + Sebbene Amazon RDS supporti Oracle 18c (18.0.0.0), questa versione è obsoleta perché Oracle non fornisce più patch per 18c dopo tale data. end-of-support Per ulteriori informazioni, consulta [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.Deprecate.11204) Oracle nella documentazione di Amazon RDS.
  + Amazon RDS for Oracle 11g non è più supportato.
+ I requisiti minimi per l'istanza database Amazon RDS for PostgreSQL di destinazione sono: 
  + PostgreSQL versioni 9 (9.5 e 9.6), 10.x, 11.x, 12.x e 13.x

**Versioni del prodotto**
+ Istanza database Amazon RDS for Oracle versione 12.1.0.2 e successive
+ Istanza database Amazon RDS for PostgreSQL versione 11.5 e successive
+ AWS CLI versione 2 
+ L'ultima versione di AWS SCT
+ L'ultima versione di Python 3

## Architecture
<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>

**Stack tecnologico di origine**
+ Amazon RDS per Oracle

**Stack tecnologico di destinazione**
+ Amazon RDS per PostgreSQL

**Architettura di origine e destinazione**

Il diagramma seguente mostra la migrazione di un'istanza DB Amazon RDS for Oracle verso un'istanza DB Amazon RDS for PostgreSQL utilizzando script Python. AWS DMS 

![\[Migrazione dell'istanza DB di RDS per Oracle all'istanza DB di RDS per PostgreSQL utilizzando AWS DMS e Python.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5e041494-2e64-4f09-b6ec-0e0cba3a4972/images/77022e13-46fb-4aa8-ab49-85b0ca4c317a.png)


 

Il diagramma mostra il seguente flusso di lavoro di migrazione:

1. Lo script Python utilizza AWS SCT per connettersi alle istanze DB di origine e di destinazione.

1. L'utente inizia AWS SCT con lo script Python, converte il codice Oracle in codice PostgreSQL e lo esegue sull'istanza DB di destinazione.

1. Lo script Python crea attività di AWS DMS replica per le istanze DB di origine e di destinazione.

1. L'utente distribuisce script Python per avviare le attività e quindi interrompe AWS DMS le attività al termine della migrazione dei dati.

**Automazione e scalabilità**

Puoi automatizzare questa migrazione aggiungendo parametri e modifiche relative alla sicurezza allo script Python, per fornire funzionalità aggiuntive. 

## Tools (Strumenti)
<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) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella shell della riga di comando.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare le risorse AWS, a fornirle in modo rapido e coerente e a gestirle durante tutto il loro ciclo di vita in tutte Account AWS le regioni. Questo modello converte il file `.csv` di input in un file `.json` di input utilizzando uno script Python. Il `.json` file viene utilizzato nei AWS CLI comandi per creare uno CloudFormation stack che crea più attività di AWS DMS replica con Amazon Resource Names (ARNs), tipi di migrazione, impostazioni delle attività e mappature delle tabelle.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati verso Cloud AWS o tra combinazioni di configurazioni cloud e locali. Questo modello viene utilizzato AWS DMS per creare, avviare e interrompere le attività con uno script Python eseguito sulla riga di comando e per creare il CloudFormation modello.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Questo modello richiede il `AWSSchemaConversionToolBatch.jar` file dalla directory installata. AWS SCT 

**Codice**

Il `cli-sct-dms-cft.zip` file (allegato) contiene il codice sorgente completo per questo pattern.

## Epiche
<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>

### Configura AWS SCT e crea oggetti di database in AWS CLI
<a name="configure-awssct-and-create-database-objects-in-the-cli"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT per l'esecuzione da AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Esegui lo `run_aws_sct.py` script Python. | Esegui lo script `run_aws_sct.py` Python usando il seguente comando:`$ python run_aws_sct.py database_migration.txt`Lo script Python converte gli oggetti del database da Oracle a PostgreSQL e crea file SQL in formato PostgreSQL. Lo script crea anche il file PDF`Database migration assessment report`, che fornisce consigli dettagliati e statistiche di conversione per gli oggetti del database. | DBA | 
| Crea oggetti in Amazon RDS for PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 

### Configura e crea AWS DMS attività utilizzando e AWS CLI CloudFormation
<a name="configure-and-create-dms-tasks-by-using-the-cli-and-cfn"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di AWS DMS replica. | Accedi a Console di gestione AWS, apri la [AWS DMS console](https://console.aws.amazon.com/dms/v2/) e crea un'istanza di replica configurata in base ai tuoi requisiti.Per ulteriori informazioni, consulta [Creazione di un'istanza di replica](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) nella AWS DMS documentazione e [Come posso creare un'istanza di AWS DMS replica](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) nella documentazione. Supporto AWS  | DBA | 
| Crea l'endpoint di origine. | Sulla AWS DMS console, scegli **Endpoints, quindi crea un endpoint** di origine per il database Oracle in base alle tue esigenze. L'attributo di connessione aggiuntivo deve avere `numberDataTypeScale` un `-2` valore.Per ulteriori informazioni, consulta [Creazione degli endpoint di origine e destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) nella AWS DMS documentazione. | DBA | 
| Crea l'endpoint di destinazione. | Sulla AWS DMS console, scegli **Endpoints e quindi crea un endpoint** di destinazione per il database PostgreSQL in base alle tue esigenze.  Per ulteriori informazioni, consulta [Creazione di endpoint di origine e destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) nella documentazione. AWS DMS  | DevOps ingegnere | 
| Configura i dettagli AWS DMS della replica da eseguire da. AWS CLI | Configurare gli endpoint di AWS DMS origine e di destinazione e i dettagli di replica nel `dms-arn-list.txt` file con l'ARN dell'endpoint di origine, l'ARN dell'endpoint di destinazione e l'ARN dell'istanza di replica utilizzando il seguente 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 | 
| Esegui lo script `dms-create-task.py` Python per creare le AWS DMS attività. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Verifica che AWS DMS le attività siano pronte. | Sulla AWS DMS console, verifica che AWS DMS le tue attività siano in `Ready` stato nella sezione **Stato**. | DBA | 

### Avvia e interrompi le AWS DMS attività utilizzando AWS CLI
<a name="start-and-stop-the-dms-tasks-by-using-the-cli"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia le AWS DMS attività. | Esegui lo script `dms-start-task.py` Python usando il seguente comando:<pre>$ python dms-start-task.py start '<cdc-start-datetime>'</pre>La data e l'ora di inizio devono essere nel `'YYYY-MM-DDTHH:MI:SS'` formato `'DD-MON-YYYY'` o (ad esempio, `'01-Dec-2019'` o`'2018-03-08T12:12:12'`).È possibile esaminare lo stato delle AWS DMS attività nella scheda **Statistiche della tabella** nella pagina **Attività** della AWS DMS console. | DBA | 
| Convalida i dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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)Per ulteriori informazioni, consulta la [convalida AWS DMS dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) nella AWS DMS documentazione. | DBA | 
| Interrompi le AWS DMS attività. | Esegui lo script Python usando il seguente comando:<pre>$ python dms-start-task.py stop</pre>AWS DMS le attività potrebbero interrompersi con uno `failed` stato, a seconda dello stato di convalida. Per ulteriori informazioni, consulta la sezione successiva  | DBA | 

## risoluzione dei problemi
<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 | Soluzione | 
| --- | --- | 
| AWS SCT le connessioni di test di origine e destinazione falliscono. | Configura le versioni dei driver JDBC e le regole in entrata del gruppo di sicurezza VPC per accettare il traffico in entrata. | 
| L'esecuzione del test dell'endpoint di origine o di destinazione non riesce. | Controlla se le impostazioni dell'endpoint e l'istanza di replica sono in stato. `Available` Controlla se lo stato della connessione dell'endpoint è. `Successful` Per ulteriori informazioni, consulta [Come posso risolvere gli errori di connettività degli endpoint AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/) nella documentazione. Supporto AWS  | 
| L'esecuzione a pieno carico non riesce. | Controlla se i database di origine e di destinazione hanno tipi e dimensioni di dati corrispondenti. Per ulteriori informazioni, consulta [Risoluzione dei problemi di migrazione AWS DMS nella](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html) AWS DMS documentazione. | 
| Si verificano errori di esecuzione della convalida. | Controlla se la tabella ha una chiave primaria perché le tabelle a chiave non primaria non vengono convalidate.Se la tabella ha una chiave primaria e sono presenti degli errori, verifica che l'attributo di connessione aggiuntivo nell'endpoint di origine lo abbia. `numberDataTypeScale=-2`Per ulteriori informazioni, consulta [Impostazioni degli endpoint quando si utilizza Oracle come fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) e [Risoluzione dei problemi](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting) nella AWS DMS documentazione. AWS DMS[OracleSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_OracleSettings.html) | 

## Risorse correlate
<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>
+ [Installazione e configurazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)
+ [Introduzione a AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (video)
+ [Esempi di comandi di funzionamento CloudFormation dello stack per e AWS CLI PowerShell](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html)
+ [Navigazione nell'interfaccia utente di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Utilizzo di un database Oracle come fonte per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Connessione ai database Oracle con AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ [Utilizzo di un database PostgreSQL come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Fonti per la migrazione dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Obiettivi per la migrazione dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [cloud formation (documentazione](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html))AWS CLI 
+ [create-stack (documentazione)](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html)AWS CLI  
+ [dms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/index.html) (documentazione)AWS CLI  

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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/5e041494-2e64-4f09-b6ec-0e0cba3a4972/attachments/attachment.zip)

# Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL in modalità SSL utilizzando 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*

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

Questo modello fornisce indicazioni per la migrazione di un'istanza di database Amazon Relational Database Service (Amazon RDS) per Oracle a un database Amazon RDS for PostgreSQL sul cloud Amazon Web Services (AWS). Per crittografare le connessioni tra i database, il modello utilizza l'autorità di certificazione (CA) e la modalità SSL in Amazon RDS e AWS Database Migration Service (AWS DMS).

Il modello descrive una strategia di migrazione online con tempi di inattività minimi o nulli per un database di origine Oracle da più terabyte con un numero elevato di transazioni. Per la sicurezza dei dati, il pattern utilizza SSL per il trasferimento dei dati.

Questo modello utilizza AWS Schema Conversion Tool (AWS SCT) per convertire lo schema del database Amazon RDS for Oracle in uno schema Amazon RDS for PostgreSQL. Quindi il modello utilizza AWS DMS per migrare i dati dal database Amazon RDS for Oracle al database Amazon RDS for PostgreSQL.

## Prerequisiti e limitazioni
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Autorità di certificazione (CA) del database Amazon RDS configurata solo con ***rds-ca-rsa2048-g1*** 
  + Il certificato ***rds-ca-2019*** è scaduto nell'agosto 2024.
  + Il certificato ***rds-ca-2015*** è scaduto il 5 marzo 2020.
+ AWS SCT
+ AWS DMS
+ pgAdmin
+ Strumenti SQL (ad esempio, SQL Developer o SQL\$1Plus)

**Limitazioni**
+ Database Amazon RDS for Oracle: il requisito minimo è per le versioni Oracle 19c per le edizioni Enterprise e Standard Two.
+ Database Amazon RDS per PostgreSQL: il requisito minimo è PostgreSQL versione 12 e successive (per le versioni 9.x e successive).

**Versioni del prodotto**
+ Istanza del database Amazon RDS per Oracle versione 12.1.0.2
+ Istanza del database Amazon RDS per PostgreSQL versione 11.5

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

**Stack tecnologico di origine**
+ Un'istanza di database Amazon RDS for Oracle con versione 12.1.0.2.v18.

**Stack tecnologico Target**
+ AWS DMS
+ Un'istanza di database Amazon RDS for PostgreSQL con versione 11.5.

**Architettura Target**

Il diagramma seguente mostra l'architettura per l'architettura di migrazione dei dati tra i database Oracle (source) e PostgreSQL (target). L'architettura include quanto segue:
+ Un cloud privato virtuale (VPC)
+ Una zona di disponibilità
+ Una sottorete privata
+ Un database Amazon RDS per Oracle
+ Un'istanza di replica AWS DMS
+ Un database RDS per PostgreSQL

Per crittografare le connessioni per i database di origine e destinazione, è necessario abilitare la modalità CA e SSL in Amazon RDS e AWS DMS.

![\[Spostamento dei dati tra RDS per Oracle e AWS DMS e tra AWS DMS e RDS per PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7098e2a3-b456-4e14-8881-c97145aef483/images/55b50ff7-1e6a-4ff0-9bcd-2fd419d5316a.png)


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

**Servizi AWS**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle nel cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS) per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL nel cloud AWS.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

**Altri servizi**
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

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

Amazon RDS fornisce nuovi certificati CA come una best practice di sicurezza AWS. Per informazioni sui nuovi certificati e sulle regioni AWS supportate, consulta [Utilizzare SSL/TLS per crittografare una connessione a un'istanza o un cluster DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html).

Se la tua istanza RDS utilizza attualmente un certificato `rds-ca-2019` CA e desideri eseguire l'aggiornamento`rds-ca-rsa2048-g1`, segui le istruzioni in [Aggiornamento del certificato CA modificando l'istanza o il cluster DB o](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating) [Aggiornamento del certificato CA applicando la](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update) manutenzione.

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

### Configurazione dell'istanza Amazon RDS for Oracle
<a name="configure-the-amazon-rds-for-oracle-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'istanza del database Oracle. | Accedi al tuo account AWS, apri la Console di gestione AWS e accedi alla console Amazon RDS. Sulla console, scegli **Crea database**, quindi scegli **Oracle**. | Informazioni generali su AWS, DBA | 
| Configura i gruppi di sicurezza. | Configura i gruppi di sicurezza in entrata e in uscita. | Informazioni generali su AWS | 
| Crea un gruppo di opzioni. | Crea un gruppo di opzioni nello stesso VPC e gruppo di sicurezza del database Amazon RDS for Oracle. **Per **Opzione**, scegli SSL.** Per **Porta**, scegli **2484** (per connessioni SSL). | Informazioni generali su AWS | 
| Configura le impostazioni delle opzioni. | Utilizzare le seguenti impostazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Modifica l'istanza DB RDS for Oracle. | Imposta il certificato CA come **rds-ca-rsa2048-g1**. In Gruppo di **opzioni, allega il gruppo** di opzioni creato in precedenza. | DBA, AWS generale | 
| Verifica che l'istanza DB RDS per Oracle sia disponibile. | Assicurati che l'istanza del database Amazon RDS for Oracle sia attiva e funzionante e che lo schema del database sia accessibile.Per connetterti a RDS for Oracle DB, usa il `sqlplus` comando dalla riga di 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 | 
| Crea oggetti e dati nel database RDS for Oracle. | Crea oggetti e inserisci dati nello schema. | DBA | 

### Configurazione dell'istanza Amazon RDS per PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il database RDS per PostgreSQL. | Nella pagina **Crea database** della console Amazon RDS, scegli **PostgreSQL** per creare un'istanza di database Amazon RDS for PostgreSQL. | DBA, AWS generale | 
| Configura i gruppi di sicurezza. | Configura i gruppi di sicurezza in entrata e in uscita. | Informazioni generali su AWS | 
| Per creare un gruppo di parametri. | Se utilizzi PostgreSQL versione 11.x, crea un gruppo di parametri per impostare i parametri SSL. Nella versione 12 di PostgreSQL, il gruppo di parametri SSL è abilitato per impostazione predefinita. | Informazioni generali su AWS | 
| Modifica parametri. | Modificate il `rds.force_ssl` parametro in `1` (attivo).Per impostazione predefinita, il `ssl` parametro è `1` (attivo). Impostando il `rds.force_ssl` parametro su`1`, si forza la connessione di tutte le connessioni solo tramite la modalità SSL. | Informazioni generali su AWS | 
| Modifica l'istanza DB RDS per PostgreSQL. | **Imposta il certificato CA come 2048-g1. rds-ca-rsa** Allega il gruppo di parametri predefinito o il gruppo di parametri creato in precedenza, a seconda della versione di PostgreSQL in uso. | DBA, AWS generale | 
| Verifica che l'istanza DB RDS per PostgreSQL sia disponibile. | Assicurati che il database Amazon RDS for PostgreSQL sia attivo e funzionante.Il `psql` comando stabilisce una connessione SSL con `sslmode` set dalla riga di comando.Un'opzione consiste `sslmode=1` nell'impostare il parametro nel gruppo di parametri e utilizzare una `psql` connessione senza includere il `sslmode` parametro nel comando.L'output seguente mostra che la connessione SSL è stata stabilita.<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>Una seconda opzione consiste `sslmode=1` nell'impostare il gruppo di parametri e includere il `sslmode` parametro nel `psql` comando.L'output seguente mostra che la connessione SSL è stata stabilita.<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 | 

### Configurazione ed esecuzione di AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS SCT. | Installa la versione più recente dell'applicazione AWS SCT. | Informazioni generali su AWS | 
| Configura AWS SCT con i driver JDBC. | [Scarica i driver Java Database Connectivity (JDBC) per 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)Per configurare i driver in AWS SCT, scegli **Impostazioni, Impostazioni** **globali**, **Driver**. | Informazioni generali su AWS | 
| Crea il progetto AWS SCT. | Crea il progetto e il report AWS SCT, utilizzando Oracle come motore DB di origine e Amazon RDS for PostgreSQL come motore DB di destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Convalida gli oggetti del database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA, AWS generale | 

### Configurazione ed esecuzione di AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Importa il certificato. | Scarica il [pacchetto di certificati (PEM) per la tua](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions) regione AWS.Il pacchetto contiene sia i certificati `rds-ca-2019` intermedi che quelli root. Il pacchetto contiene anche i certificati `rds-ca-rsa2048-g1` CA `rds-ca-rsa4096-g1` e `rds-ca-ecc384-g1` root. L'application trust store deve registrare solo il certificato CA principale. | Informazioni generali su AWS | 
| Crea l'endpoint di origine. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Per ulteriori informazioni, consulta [Usare un database Oracle come sorgente per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | Informazioni generali su AWS | 
| Crea l'endpoint di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Per ulteriori informazioni, consulta [Usare un database PostgreSQL come destinazione per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html). | Informazioni generali su AWS | 
| Testa gli endpoint. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Crea attività di migrazione. | Per creare un'attività di migrazione per l'acquisizione dei dati a pieno carico e modifica (CDC) o per la convalida dei dati, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Pianifica il ciclo di produzione. | Conferma i tempi di inattività con le parti interessate, come i proprietari delle applicazioni, per eseguire AWS DMS nei sistemi di produzione. | Responsabile della migrazione | 
| Esegui l'attività di migrazione di . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Convalida i dati. | Esamina i risultati e i dati delle attività di migrazione nei database Oracle di origine e PostgreSQL di destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA | 
| Interrompi l'attività di migrazione. | Dopo aver completato con successo la convalida dei dati, interrompi l'attività di migrazione. | Informazioni generali su AWS | 

### Pulisci le risorse
<a name="clean-up-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Elimina le attività di AWS DMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Elimina gli endpoint AWS DMS. | **Seleziona gli endpoint di origine e di destinazione che hai creato, scegli **Azioni** e scegli Elimina.** | Informazioni generali su AWS | 
| Elimina l'istanza di replica AWS DMS. | **Scegli l'istanza di replica, scegli **Azioni**, quindi scegli Elimina.** | Informazioni generali su AWS | 
| Eliminare il database PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Elimina il database Oracle. | Sulla console Amazon RDS, seleziona l'istanza del database Oracle, scegli **Azioni**, quindi scegli **Elimina**. | Informazioni generali su AWS | 

## risoluzione dei problemi
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Le connessioni di test di origine e destinazione di AWS SCT non funzionano. | Configura le versioni dei driver JDBC e le regole in entrata del gruppo di sicurezza VPC per accettare il traffico in entrata. | 
| L'esecuzione del test dell'endpoint Oracle Source non riesce. | Controlla le impostazioni dell'endpoint e se l'istanza di replica è disponibile. | 
| L'esecuzione a pieno carico dell'attività AWS DMS non riesce. | Verifica se i database di origine e di destinazione hanno tipi e dimensioni di dati corrispondenti. | 
| L'attività di convalida e migrazione di AWS DMS restituisce errori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | 

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

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

**Connessione DB SSL**
+ [Utilizzo SSL/TLS per crittografare una connessione a un'istanza DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
  + [Utilizzo di SSL con un'istanza RDS per Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.SSL.html)
  + [Protezione delle connessioni a RDS per PostgreSQL con SSL/TLS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.Security.html)
  + [Scarica pacchetti di certificati per regioni AWS specifiche](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions)
    + [Scarica il certificato principale CA-2019](https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem) (scaduto ad agosto 2024)
+ [Lavorare con i gruppi di opzioni](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html)
  + [Aggiungere opzioni alle istanze di Oracle DB](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)
+ [Lavorare con gruppi di parametri](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)
+ [Parametro di connessione PostgreSQL sslmode](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)
+ [Utilizzo di SSL da JDBC](https://jdbc.postgresql.org/documentation/ssl/)
+ [Rotazione del certificato SSL/TLS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html)
  + [Aggiornamento del certificato CA modificando l'istanza o il cluster di database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating)
  + [Aggiornamento del certificato CA applicando la manutenzione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update)

**AWS SCT**
+ [Strumento di conversione dello schema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Guida per l'utente di AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Utilizzo dell'interfaccia utente AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Utilizzo di Oracle Database come sorgente per 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/)
+ [Guida per l'utente di AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
  + [Utilizzo di un database Oracle come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
  + [Utilizzo di un database PostgreSQL come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Utilizzo di SSL con AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.SSL.html)
+ [Migrazione di applicazioni che eseguono database relazionali su AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

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

I certificati Amazon RDS Certificate Authority sono `rds-ca-2019` scaduti nell'agosto 2024. Se utilizzi o prevedi di utilizzare SSL o TLS con verifica del certificato per connetterti alle istanze DB RDS o ai cluster DB Multi-AZ, prendi in considerazione l'utilizzo di uno dei nuovi certificati CA:,, o. `rds-ca-rsa2048-g1` `rds-ca-rsa4096-g1` `rds-ca-ecc384-g1`

# Migrazione dei pacchetti pragma Oracle SERIALLY\$1REUSABLE in PostgreSQL
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql"></a>

*Vinay Paladi, Amazon Web Services*

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

Questo modello fornisce un step-by-step approccio per la migrazione dei pacchetti Oracle definiti come pragma SERIALLY\$1REUSABLE su PostgreSQL su Amazon Web Services (AWS). Questo approccio mantiene la funzionalità del pragma SERIALLY\$1REUSABLE.

PostgreSQL non supporta il concetto di pacchetti e il pragma SERIALLY\$1REUSABLE. Per ottenere funzionalità simili in PostgreSQL, puoi creare schemi per pacchetti e distribuire tutti gli oggetti correlati (come funzioni, procedure e tipi) all'interno degli schemi. Per ottenere la funzionalità del pragma SERIALLY\$1REUSABLE, lo script di funzione wrapper di esempio fornito in questo modello utilizza un pacchetto di estensione AWS [Schema](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) Conversion Tool (AWS SCT).

[Per ulteriori informazioni, consulta SERIALLY\$1REUSABLE Pragma nella documentazione Oracle.](https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems046.htm)

## Prerequisiti e limitazioni
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ La versione più recente di AWS SCT e i driver richiesti
+ Un database Amazon Aurora compatibile con PostgreSQL Edition o un database Amazon Relational Database Service (Amazon RDS) per PostgreSQL 

**Versioni del prodotto**
+ Database Oracle versione 10g e successive

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

**Stack tecnologico di origine**
+ Database Oracle locale

**Stack tecnologico Target**
+ Compatibile con [Aurora PostgreSQL o Amazon RDS per PostgreSQL](https://aws.amazon.com/rds/aurora/details/postgresql-details/)
+ AWS SCT

**Architettura di migrazione**

![\[Dati Oracle DB locali che vengono trasferiti in AWS utilizzando AWS SCT, file.sql, conversione manuale in PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/fe3c45d2-6ea4-43b5-adb1-18f068f126b9/images/2dc90708-e300-4251-9d12-de97b6588b72.png)


## Tools (Strumenti)
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-tools"></a>

**Servizi AWS**
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [Amazon Relational Database Service (Amazon RDS) per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL nel cloud AWS.

**Altri strumenti**
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

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

### Esegui la migrazione del pacchetto Oracle utilizzando AWS SCT
<a name="migrate-the-oracle-package-by-using-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT. | Configura la connettività AWS SCT al database di origine. Per ulteriori informazioni, consulta [Using Oracle Database as a source for AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) | DBA, Sviluppatore | 
| Converti lo script. | Usa AWS SCT per convertire il pacchetto Oracle selezionando il database di destinazione come compatibile con Aurora PostgreSQL. | DBA, Sviluppatore | 
| Salva i file.sql. | Prima di salvare il file.sql, modifica l'opzione **Project Settings** in AWS SCT su **File singolo per fase**. AWS SCT separerà il file.sql in più file.sql in base al tipo di oggetto. | DBA, Sviluppatore | 
| Cambia il codice. | Apri la `init` funzione generata da AWS SCT e modificala come mostrato nell'esempio nella sezione *Informazioni aggiuntive*. Aggiungerà una variabile per ottenere la funzionalità. `pg_serialize = 0` | DBA, Sviluppatore | 
| Prova la conversione. | Implementa la `init` funzione nel database Aurora compatibile con PostgreSQL e verifica i risultati. | DBA, Sviluppatore | 

## Risorse correlate
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-resources"></a>
+ [Strumento di conversione dello schema AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Caratteristiche di Amazon Aurora](https://aws.amazon.com/rds/aurora/postgresql-features/)
+ [SERIALLY\$1REUSABLE Pragma](https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/seriallyreusable_pragma.htm#LNPLS01346)

## Informazioni aggiuntive
<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()
```

# Esegui la migrazione di tabelle esterne Oracle verso Amazon Aurora, compatibile con PostgreSQL
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible"></a>

*anuradha chintha e Rakesh Raghav, Amazon Web Services*

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

Le tabelle esterne offrono a Oracle la possibilità di interrogare i dati archiviati all'esterno del database in file flat. È possibile utilizzare il driver ORACLE\$1LOADER per accedere a qualsiasi dato memorizzato in qualsiasi formato che possa essere caricato dall'utilità SQL\$1Loader. Non è possibile utilizzare Data Manipulation Language (DML) su tabelle esterne, ma è possibile utilizzare tabelle esterne per operazioni di interrogazione, join e ordinamento.

Amazon Aurora PostgreSQL Compatible Edition non offre funzionalità simili alle tabelle esterne di Oracle. È invece necessario utilizzare la modernizzazione per sviluppare una soluzione scalabile che soddisfi i requisiti funzionali e sia parsimoniosa.

Questo modello fornisce i passaggi per la migrazione di diversi tipi di tabelle esterne Oracle all'edizione compatibile con Aurora PostgreSQL sul cloud Amazon Web Services (AWS) utilizzando l'estensione. `aws_s3`

Consigliamo di testare a fondo questa soluzione prima di implementarla in un ambiente di produzione.

## Prerequisiti e limitazioni
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Interfaccia a riga di comando di AWS (CLI AWS)
+ Un'istanza di database compatibile con Aurora PostgreSQL disponibile.
+ Un database Oracle locale con una tabella esterna
+ API PG.Client
+ File di dati 

**Limitazioni**
+ Questo modello non fornisce la funzionalità necessaria per sostituire le tabelle esterne Oracle. Tuttavia, i passaggi e il codice di esempio possono essere ulteriormente migliorati per raggiungere gli obiettivi di modernizzazione del database.
+ I file non devono contenere il carattere che viene utilizzato come delimitatore nelle funzioni di `aws_s3` esportazione e importazione.

**Versioni del prodotto**
+ Per importare da Amazon S3 in RDS per PostgreSQL, il database deve eseguire PostgreSQL versione 10.7 o successiva.

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

**Stack tecnologico di origine**
+ Oracle

**Architettura di origine**

![\[Diagramma dei file di dati inseriti in una directory e in una tabella nel database Oracle locale.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/3fbc507d-b0fa-4e05-b999-043dc7327ed7.png)


**Stack tecnologico Target**
+ Compatibile con Amazon Aurora PostgreSQL
+ Amazon CloudWatch
+ AWS Lambda
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)

**Architettura Target**

Il diagramma seguente mostra una rappresentazione di alto livello della soluzione.

![\[La descrizione si trova dopo il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/5421540e-d2e3-4361-89cc-d8415fcb21fd.png)


1. I file vengono caricati nel bucket S3.

1. Viene avviata la funzione Lambda.

1. La funzione Lambda avvia la chiamata alla funzione DB.

1. Secrets Manager fornisce le credenziali per l'accesso al database.

1. A seconda della funzione DB, viene creato un allarme SNS.

**Automazione e scalabilità**

Qualsiasi aggiunta o modifica alle tabelle esterne può essere gestita con la manutenzione dei metadati.

## Tools (Strumenti)
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-tools"></a>
+ Compatibile con [Amazon Aurora PostgreSQL — Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) Edition è un motore di database relazionale completamente gestito, compatibile con PostgreSQL e conforme ad ACID che combina la velocità e l'affidabilità dei database commerciali di fascia alta con l'economicità dei database open source.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — AWS Command Line Interface (AWS CLI) è uno strumento unificato per gestire i servizi AWS. Con un solo strumento da scaricare e configurare, puoi controllare più servizi AWS dalla riga di comando e automatizzarli tramite script.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html): Amazon CloudWatch monitora le risorse e l'utilizzo di Amazon S3.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): AWS Lambda è un servizio di elaborazione serverless che supporta l'esecuzione di codice senza effettuare il provisioning o la gestione di server, creare una logica di scalabilità del cluster in base al carico di lavoro, mantenere integrazioni di eventi o gestire i runtime. In questo modello, Lambda esegue la funzione di database ogni volta che un file viene caricato su Amazon S3.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) — AWS Secrets Manager è un servizio per l'archiviazione e il recupero delle credenziali. Utilizzando Secrets Manager, puoi sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice.
+ [Amazon S3 — Amazon Simple](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) Storage Service (Amazon S3) fornisce un livello di storage per ricevere e archiviare file per il consumo e la trasmissione da e verso il cluster Aurora compatibile con PostgreSQL.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) — L'estensione `aws_s3` integra la compatibilità con Amazon S3 e Aurora PostgreSQL.
+ [Amazon SNS — Amazon Simple](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) Notification Service (Amazon SNS) coordina e gestisce la consegna o l'invio di messaggi tra editori e clienti. In questo modello, Amazon SNS viene utilizzato per inviare notifiche.

**Codice**

Ogni volta che un file viene inserito nel bucket S3, è necessario creare e richiamare una funzione DB dall'applicazione di elaborazione o dalla funzione Lambda. Per i dettagli, consulta il codice (allegato).

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

### Crea un file esterno
<a name="create-an-external-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungere un file esterno al database di origine. | Crea un file esterno e spostalo nella `oracle` directory. | DBA | 

### Configurare la destinazione (compatibile con Aurora PostgreSQL)
<a name="configure-the-target-aurora-postgresql-compatible"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un database Aurora PostgreSQL. | Crea un'istanza DB nel tuo cluster compatibile con Amazon Aurora PostgreSQL. | DBA | 
| Crea uno schema, un'estensione aws\$1s3 e tabelle. | *Usa il codice riportato `ext_tbl_scripts` nella sezione Informazioni aggiuntive.* Le tabelle includono tabelle effettive, tabelle intermedie, tabelle di errore e di registro e una metatabella. | DBA, Sviluppatore | 
| Crea la funzione DB. | Per creare la funzione DB, utilizzate il codice sotto `load_external_table_latest` la funzione nella sezione *Informazioni aggiuntive*. | DBA, Sviluppatore | 

### Creazione e configurazione della funzione Lambda
<a name="create-and-configure-the-lambda-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un ruolo. | Crea un ruolo con autorizzazioni per accedere ad Amazon S3 e Amazon Relational Database Service (Amazon RDS). Questo ruolo verrà assegnato a Lambda per l'esecuzione del pattern. | DBA | 
| Creazione della funzione Lambda | Crea una funzione Lambda che legga il nome del file da Amazon S3 (ad esempio`file_key = info.get('object', {}).get('key')`) e chiami la funzione DB (ad esempio`curs.callproc("load_external_tables", [file_key])`) con il nome del file come parametro di input.A seconda del risultato della chiamata alla funzione, verrà avviata una notifica SNS (ad esempio,). `client.publish(TopicArn='arn:',Message='fileloadsuccess',Subject='fileloadsuccess')`In base alle esigenze aziendali, è possibile creare una funzione Lambda con codice aggiuntivo, se necessario. Per ulteriori informazioni, consulta la documentazione di [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html). | DBA | 
| Configura un trigger di evento del bucket S3. | Configura un meccanismo per chiamare la funzione Lambda per tutti gli eventi di creazione di oggetti nel bucket S3. | DBA | 
| Crea un segreto. | Crea un nome segreto per le credenziali del database utilizzando Secrets Manager. Passa il segreto nella funzione Lambda. | DBA | 
| Carica i file di supporto Lambda. | Carica un file.zip che contiene i pacchetti di supporto Lambda e lo script Python allegato per la connessione a Aurora PostgreSQL compatibile. Il codice Python richiama la funzione che hai creato nel database. | DBA | 
| Creare un argomento SNS. | Crea un argomento SNS per inviare posta in caso di successo o fallimento del caricamento dei dati. | DBA | 

### Aggiungi l'integrazione con Amazon S3
<a name="add-integration-with-amazon-s3"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Sulla console Amazon S3, crea un bucket S3 con un nome univoco che non contenga barre iniziali. Il nome di un bucket S3 è unico a livello globale e lo spazio dei nomi è condiviso da tutti gli account AWS. | DBA | 
| Crea politiche IAM. | Per creare le policy di AWS Identity and Access Management (IAM), usa il codice `s3bucketpolicy_for_import` nella sezione *Informazioni aggiuntive*. | DBA | 
| Crea ruoli. | Crea due ruoli per la compatibilità con Aurora PostgreSQL, un ruolo per l'importazione e un ruolo per l'esportazione. Assegna le politiche corrispondenti ai ruoli. | DBA | 
| Collega i ruoli al cluster compatibile con Aurora PostgreSQL. | In **Gestisci ruoli**, collega i ruoli di importazione ed esportazione al cluster Aurora PostgreSQL. | DBA | 
| Crea oggetti di supporto compatibili con Aurora PostgreSQL. | *Per gli script delle tabelle, usa il codice riportato nella sezione Informazioni aggiuntive. `ext_tbl_scripts`*Per la funzione personalizzata, usa il codice riportato `load_external_Table_latest` nella sezione *Informazioni aggiuntive*. | DBA | 

### Elabora un file di test
<a name="process-a-test-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica un file nel bucket S3. | Per caricare un file di test nel bucket S3, usa la console o il seguente comando nella CLI di AWS. <pre>aws s3 cp /Users/Desktop/ukpost/exttbl/"testing files"/aps s3://s3importtest/inputext/aps</pre>Non appena il file viene caricato, un evento bucket avvia la funzione Lambda, che esegue la funzione compatibile con Aurora PostgreSQL. | DBA | 
| Controlla i dati e i file di registro e di errore. | La funzione compatibile con Aurora PostgreSQL carica i file nella tabella principale e crea `.log` file nel bucket S3. `.bad` | DBA | 
| Monitora la soluzione. | Nella CloudWatch console Amazon, monitora la funzione Lambda. | DBA | 

## Risorse correlate
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-resources"></a>
+ [Integrazione con Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Utilizzo dell'edizione compatibile con Amazon Aurora 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/)
+ [Configurazione delle notifiche Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)

## Informazioni aggiuntive
<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/*"
            ]
        }
    ]
}
```

**Esempio di funzione DB 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$
```

# Migrazione di indici basati su funzioni da Oracle a PostgreSQL
<a name="migrate-function-based-indexes-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi e Navakanth Talluri, Amazon Web Services*

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

Gli indici sono un modo comune per migliorare le prestazioni del database. Un indice consente al server del database di trovare e recuperare righe specifiche molto più velocemente di quanto potrebbe fare senza un indice. Ma gli indici aggiungono anche un sovraccarico all'intero sistema di database, quindi devono essere usati in modo sensato. Gli indici basati su funzioni, che si basano su una funzione o un'espressione, possono includere più colonne ed espressioni matematiche. Un indice basato su funzioni migliora le prestazioni delle query che utilizzano l'espressione dell'indice. 

A livello nativo, PostgreSQL non supporta la creazione di indici basati su funzioni utilizzando funzioni la cui volatilità è definita stabile. Tuttavia, è possibile creare funzioni simili con volatilità e utilizzarle nella creazione di indici. `IMMUTABLE`

Una `IMMUTABLE` funzione non può modificare il database ed è garantito che restituirà gli stessi risultati con gli stessi argomenti per sempre. Questa categoria consente all'ottimizzatore di valutare preventivamente la funzione quando una query la richiama con argomenti costanti. 

Questo modello aiuta a migrare gli indici basati sulle funzioni Oracle quando vengono utilizzati con funzioni come `to_char``to_date`, e verso `to_number` l'equivalente PostgreSQL.

## Prerequisiti e limitazioni
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account Amazon Web Services (AWS) attivo
+ Un'istanza di database Oracle di origine con il servizio listener configurato e funzionante
+ Familiarità con i database PostgreSQL

**Limitazioni**
+ Il limite di dimensione del database è di 64 TB.
+ Le funzioni utilizzate nella creazione dell'indice devono essere IMMUTABILI.

**Versioni del prodotto**
+ Tutte le edizioni del database Oracle per le versioni 11g (versioni 11.2.0.3.v1 e successive) e fino a 12.2 e 18c
+ PostgreSQL 9.6 e versioni successive

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

**Stack tecnologico di origine**
+ Un database Oracle in locale o su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) o un'istanza Amazon RDS for Oracle DB

**Stack tecnologico Target**
+ Qualsiasi motore PostgreSQL

## Tools (Strumenti)
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-tools"></a>
+ **pGAdmin** 4 è uno strumento di gestione open source per Postgres. Lo strumento pgAdmin 4 fornisce un'interfaccia grafica per la creazione, la manutenzione e l'utilizzo di oggetti di database.
+ **Oracle SQL Developer** è un ambiente di sviluppo integrato (IDE) per lo sviluppo e la gestione di database Oracle in implementazioni tradizionali e cloud.

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

### Crea un indice basato su funzioni utilizzando una funzione predefinita
<a name="create-a-function-based-index-using-a-default-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un indice basato su funzioni su una colonna utilizzando la funzione to\$1char. | Utilizzate il codice seguente per creare l'indice basato sulle funzioni.<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> PostgreSQL non consente la creazione di un indice basato su funzioni senza la clausola. `IMMUTABLE` | DBA, sviluppatore di app | 
| Verifica la volatilità della funzione. | Per controllare la volatilità della funzione, usa il codice nella sezione *Informazioni aggiuntive*.   | DBA | 

### Crea indici basati su funzioni utilizzando una funzione wrapper
<a name="create-function-based-indexes-using-a-wrapper-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una funzione wrapper. | *Per creare una funzione wrapper, usa il codice nella sezione Informazioni aggiuntive.* | Sviluppatore PostgreSQL | 
| Crea un indice utilizzando la funzione wrapper. | Utilizzate il codice nella sezione *Informazioni aggiuntive* per creare una funzione definita dall'utente con la parola chiave `IMMUTABLE` nello stesso schema dell'applicazione e fate riferimento ad essa nello script di creazione dell'indice.Se una funzione definita dall'utente viene creata in uno schema comune (dall'esempio precedente), aggiornatela come illustrato. `search_path`<pre>ALTER ROLE <ROLENAME> set search_path=$user, COMMON;</pre> | DBA, sviluppatore PostgreSQL | 

### Convalida la creazione dell'indice
<a name="validate-index-creation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la creazione dell'indice. | Verifica che l'indice debba essere creato, in base ai modelli di accesso alle query. | DBA | 
| Verifica che l'indice possa essere usato. | Per verificare se l'indice basato sulla funzione viene rilevato da PostgreSQL Optimizer, esegui un'istruzione SQL utilizzando explain o explain analyze. *Usa il codice nella sezione Informazioni aggiuntive.* Se possibile, raccogli anche le statistiche della tabella.Se notate il piano di spiegazione, l'ottimizzatore PostgreSQL ha scelto un indice basato sulle funzioni a causa della condizione del predicato. | DBA | 

## Risorse correlate
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-resources"></a>
+ [Indici basati sulle funzioni (documentazione Oracle)](https://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_indexes.htm#ADFNS00505)
+ [Indici sulle espressioni (documentazione](https://www.postgresql.org/docs/9.4/indexes-expressional.html) PostgreSQL)
+ [Volatilità di PostgreSQL (documentazione PostgreSQL](https://www.postgresql.org/docs/current/xfunc-volatility.html))
+ [PostgreSQL search\$1path (documentazione PostgreSQL](https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH))
+ [Playbook sulla migrazione da Oracle Database 19c ad Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html) 

## Informazioni aggiuntive
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-additional"></a>

**Crea una funzione wrapper**

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

**Crea un indice utilizzando la funzione wrapper**

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

**Controlla la volatilità della funzione**

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

**Verifica che l'indice possa essere utilizzato**

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

# Migrazione delle funzioni native di Oracle su PostgreSQL utilizzando le estensioni
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Singal, Amazon Web Services*

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

Questo modello di migrazione fornisce step-by-step indicazioni per la migrazione di un'istanza di database Amazon Relational Database Service (Amazon RDS) per Oracle verso un database Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL Edition modificando le estensioni and nel codice integrato nativo di PostgreSQL (). `aws_oracle_ext` `orafce` `psql` Ciò consentirà di risparmiare tempo di elaborazione.

Il modello descrive una strategia di migrazione manuale offline senza tempi di inattività per un database di origine Oracle da più terabyte con un numero elevato di transazioni.

Il processo di migrazione utilizza AWS Schema Conversion Tool (AWS SCT) con le `orafce` estensioni `aws_oracle_ext` e per convertire uno schema di database Amazon RDS for Oracle in uno schema di database compatibile con Amazon RDS for PostgreSQL o Aurora PostgreSQL. Quindi il codice viene modificato manualmente in codice integrato nativo supportato da PostgreSQL. `psql` Questo perché le chiamate di estensione influiscono sull'elaborazione del codice sul server di database PostgreSQL e non tutto il codice di estensione è completamente conforme o compatibile con il codice PostgreSQL.

Questo modello si concentra principalmente sulla migrazione manuale dei codici SQL utilizzando AWS SCT e le estensioni `aws_oracle_ext` e. `orafce` Le estensioni già utilizzate vengono convertite in funzionalità integrate native di `psql` PostgreSQL (). Quindi rimuovete tutti i riferimenti alle estensioni e convertite i codici di conseguenza.

## Prerequisiti e limitazioni
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Sistema operativo (Windows o Mac) o EC2 istanza Amazon (attiva e funzionante) 
+ Oracle

**Limitazioni**

Non tutte le funzioni Oracle che utilizzano `aws_oracle_ext` o `orafce` le estensioni possono essere convertite in funzioni PostgreSQL native. Potrebbe essere necessario rielaborarlo manualmente per compilarlo con le librerie PostgreSQL.

Uno svantaggio dell'utilizzo delle estensioni AWS SCT è la lentezza delle prestazioni nell'esecuzione e nel recupero dei risultati. *Il suo costo può essere compreso dal semplice piano EXPLAIN di [PostgreSQL (piano di esecuzione di una dichiarazione) sulla migrazione delle funzioni Oracle alla `SYSDATE` funzione `NOW()` PostgreSQL tra tutti e tre i codici `aws_oracle_ext` (`orafce`, `psql` e predefinito), come spiegato](https://www.postgresql.org/docs/current/sql-explain.html) nella sezione Controllo del confronto delle prestazioni del documento allegato.*

**Versioni del prodotto**
+ **Fonte:** database Amazon RDS for Oracle 10.2 e versioni successive (per 10.x), 11g (11.2.0.3.v1 e versioni successive) e fino a 12.2, 18c e 19c (e versioni successive) per Enterprise Edition, Standard Edition, Standard Edition 1 e Standard Edition 2
+ **Target**: database compatibile con Amazon RDS for PostgreSQL o Aurora PostgreSQL 9.4 e versioni successive (per 9.x), 10.x, 11.x, 12.x, 13.x e 14.x (e versioni successive)
+ **AWS SCT**: versione più recente (questo modello è stato testato con 1.0.632)
+ **Oracle**: ultima versione (questo pattern è stato testato con 3.9.0)

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

**Stack di tecnologia di origine**
+ Un'istanza di database Amazon RDS for Oracle con la versione 12.1.0.2.v18

**Stack tecnologico Target**
+ Un'istanza di database compatibile con Amazon RDS for PostgreSQL o Aurora PostgreSQL con versione 11.5

**Architettura di migrazione del database**

Il diagramma seguente rappresenta l'architettura di migrazione del database tra i database Oracle di origine e PostgreSQL di destinazione. L'architettura include AWS Cloud, un cloud privato virtuale (VPC), zone di disponibilità, una sottorete privata, un database Amazon RDS per Oracle, AWS SCT, Amazon RDS per PostgreSQL o Aurora PostgreSQL, estensioni per Oracle (and) e file SQL (Structured Query Language). `aws_oracle_ext` `orafce`

![\[Il processo è spiegato nell'elenco seguente.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Avvia l'istanza DB di Amazon RDS for Oracle (database di origine).

1. Usa AWS SCT con `aws_oracle_ext` i pacchetti di `orafce` estensione per convertire il codice sorgente da Oracle a PostreSQL.

1. La conversione produce file.sql migrati supportati da PostgreSQL.

1. Converti manualmente i codici di estensione Oracle non convertiti in codici `psql` PostgreSQL ().

1. La conversione manuale produce file.sql convertiti supportati da PostgreSQL.

1. Esegui questi file.sql sulla tua istanza database Amazon RDS for PostgreSQL (DB di destinazione).

## Tools (Strumenti)
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Strumenti**

*Servizi AWS*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) - AWS Schema Conversion Tool (AWS SCT) converte lo schema di database esistente da un motore di database a un altro. Puoi convertire lo schema relazionale OLTP (Online Transactional Processing) o lo schema di data warehouse. Lo schema convertito è adatto per un'istanza DB Amazon RDS for MySQL, un cluster DB Amazon Aurora, un'istanza DB Amazon RDS for PostgreSQL o un cluster Amazon Redshift. Lo schema convertito può essere utilizzato anche con un database su un' EC2 istanza Amazon o archiviato come dati in un bucket Amazon S3.

  AWS SCT fornisce un'interfaccia utente basata su progetti per convertire automaticamente lo schema del database di origine in un formato compatibile con l'istanza Amazon RDS di destinazione. 

  Puoi utilizzare AWS SCT per eseguire la migrazione da un database di origine Oracle a uno qualsiasi degli obiettivi elencati in precedenza. Utilizzando AWS SCT, puoi esportare le definizioni degli oggetti del database di origine come schema, viste, stored procedure e funzioni. 

  Puoi usare AWS SCT per convertire i dati da Oracle ad Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL Compatible Edition. 

  In questo modello, usi AWS SCT per convertire e migrare il codice Oracle in PostgreSQL utilizzando le estensioni `aws_oracle_ext` e `orafce` migrando manualmente i codici di estensione in codice integrato predefinito o nativo. `psql`
+ Il pacchetto di estensione [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) è un modulo aggiuntivo che emula le funzioni presenti nel database di origine necessarie per la conversione degli oggetti nel database di destinazione. Prima di poter installare il pacchetto di estensione AWS SCT, devi convertire lo schema del database.

  Quando converti lo schema del database o del data warehouse, AWS SCT aggiunge uno schema aggiuntivo al database di destinazione. Questo schema implementa le funzioni di sistema SQL del database di origine richieste durante la scrittura dello schema convertito nel database di destinazione. Lo schema aggiuntivo viene chiamato schema del pacchetto di estensione.

  Lo schema del pacchetto di estensione per i database OLTP è denominato in base al database di origine. Per i database Oracle, lo schema del pacchetto di estensione è`AWS_ORACLE_EXT`.

*Altri strumenti*
+ [Oracle: Orafce](https://github.com/orafce/orafce) è un modulo che implementa funzioni, tipi di dati e pacchetti compatibili con Oracle. È uno strumento open source con una licenza Berkeley Source Distribution (BSD) in modo che chiunque possa utilizzarlo. Il `orafce` modulo è utile per la migrazione da Oracle a PostgreSQL perché ha molte funzioni Oracle implementate in PostgreSQL.

 

**Codice**

Per un elenco di tutto il codice comunemente usato e migrato da Oracle a PostgreSQL per evitare l'uso del codice di estensione AWS SCT, consulta il documento allegato.

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

### Configurazione del database di origine Amazon RDS for Oracle
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'istanza del database Oracle. | Crea un'istanza di database compatibile con Amazon RDS for Oracle o Aurora PostgreSQL dalla console Amazon RDS. | Informazioni generali su AWS, DBA | 
| Configura i gruppi di sicurezza. | Configura i gruppi di sicurezza in entrata e in uscita. | Informazioni generali su AWS | 
| Crea il database. | Crea il database Oracle con gli utenti e gli schemi necessari. | Informazioni generali su AWS, DBA | 
| Crea gli oggetti. | Crea oggetti e inserisci dati nello schema. | DBA | 

### Configurazione del database di destinazione Amazon RDS for PostgreSQL
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza del database PostgreSQL. | Crea un'istanza di database Amazon RDS for PostgreSQL o Amazon Aurora PostgreSQL dalla console Amazon RDS. | Informazioni generali su AWS, DBA | 
| Configura i gruppi di sicurezza. | Configura i gruppi di sicurezza in entrata e in uscita. | Informazioni generali su AWS | 
| Crea il database. | Crea il database PostgreSQL con gli utenti e gli schemi necessari. | Informazioni generali su AWS, DBA | 
| Convalida le estensioni. | Assicurati che `aws_oracle_ext` e `orafce` siano installati e configurati correttamente nel database PostgreSQL. | DBA | 
| Verifica che il database PostgreSQL sia disponibile. | Assicurati che il database PostgreSQL sia attivo e funzionante. | DBA | 

### Migra lo schema Oracle in PostgreSQL utilizzando AWS SCT e le estensioni
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS SCT. | Installa la versione più recente di AWS SCT. | DBA | 
| Configura AWS SCT. | Configura AWS SCT con i driver Java Database Connectivity (JDBC) per Oracle () `ojdbc8.jar` e PostgreSQL (). `postgresql-42.2.5.jar` | DBA | 
| Abilita il pacchetto di estensione o il modello di estensione AWS SCT. | In AWS SCT **Project Settings**, abilita l'implementazione di funzioni integrate con `aws_oracle_ext` ed `orafce` estensioni per lo schema del database Oracle. | DBA | 
| Convertire lo schema. | In AWS SCT, scegli **Converti schema** per convertire lo schema da Oracle a PostgreSQL e generare i file.sql. | DBA | 

### Converti il codice di estensione AWS SCT in codice psql
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convertire manualmente il codice. | Converti manualmente ogni riga di codice supportato dall'estensione in codice integrato `psql` predefinito, come dettagliato nel documento allegato. Ad esempio, change `AWS_ORACLE_EXT.SYSDATE()` o `ORACLE.SYSDATE()` to. `NOW()` | DBA | 
| Convalida il codice | (Facoltativo) Convalida ogni riga di codice eseguendola temporaneamente nel database PostgreSQL. | DBA | 
| Crea oggetti nel database PostgreSQL. | Per creare oggetti nel database PostgreSQL, esegui i file.sql generati da AWS SCT e modificati nei due passaggi precedenti. | DBA | 

## Risorse correlate
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Database
  + [Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Lavorare con Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [Piano PostgreSQL EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Panoramica dello Schema Conversion Tool di AWS](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [Guida per l'utente di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Utilizzo dell'interfaccia utente AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Utilizzo di Oracle Database come sorgente per AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Estensioni per AWS SCT
  + [Utilizzo del pacchetto di estensione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Funzionalità Oracle (en)](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [Oracle PGXN](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Informazioni aggiuntive
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Per ulteriori informazioni, segui i comandi dettagliati, con sintassi ed esempi, per convertire manualmente il codice nel documento allegato.

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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)

# Esegui la migrazione di un database Db2 da Amazon a EC2 Aurora compatibile con MySQL utilizzando 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*

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

Dopo aver migrato il [database IBM Db2 for LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation) su Amazon [Elastic Compute Cloud ( EC2Amazon](https://docs.aws.amazon.com/ec2/)), prendi in considerazione la possibilità di riprogettare il database passando a un database nativo per il cloud di Amazon Web Services (AWS). Questo modello riguarda la migrazione di un database IBM [Db2](https://www.ibm.com/docs/en/db2/11.5) for LUW in esecuzione su un' EC2 istanza Amazon verso un database [Edition](https://docs.aws.amazon.com/ec2/) compatibile con [Amazon Aurora MySQL su AWS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html).  

Il modello descrive una strategia di migrazione online con tempi di inattività minimi per un database di origine Db2 da più terabyte con un numero elevato di transazioni. 

Questo modello utilizza [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) per convertire lo schema del database Db2 in uno schema compatibile con Aurora MySQL. Quindi il modello utilizza [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) per migrare i dati dal database Db2 al database Aurora compatibile con MySQL. Saranno necessarie conversioni manuali per il codice che non viene convertito da AWS SCT.

## Prerequisiti e limitazioni
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo con un cloud privato virtuale (VPC)
+ AWS SCT
+ AWS DMS

**Versioni del prodotto**
+ Versione più recente di AWS SCT
+ Db2 per Linux versione 11.1.4.4 e successive

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

**Stack tecnologico di origine**
+ DB2/Linux x86-64 bit montato su un'istanza EC2  

**Stack tecnologico Target**
+ Un'istanza di database Edition compatibile con Amazon Aurora MySQL

**Architettura di origine e destinazione**

Il diagramma seguente mostra l'architettura di migrazione dei dati tra i database Aurora compatibili con MySQL di origine e Db2 di destinazione. L'architettura sul cloud AWS include un cloud privato virtuale (VPC) (Virtual Private Cloud), una zona di disponibilità, una sottorete pubblica per l'istanza Db2 e l'istanza di replica AWS DMS e una sottorete privata per il database Aurora compatibile con MySQL.

![\[Architettura di migrazione dei dati tra database compatibili con MySQL di origine e Aurora di destinazione.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5abfccc4-148c-4794-8d80-e3c122679125/images/f30664f8-2d6a-4448-8d5c-cff3988a52c7.png)


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

**Servizi AWS**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) è un motore di database relazionale completamente gestito creato per il cloud e compatibile con MySQL e PostgreSQL.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. AWS SCT supporta come sorgente IBM Db2 per le versioni LUW 9.1, 9.5, 9.7, 10.1, 10.5, 11.1 e 11.5.

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

Per le best practice, consulta [Best practice for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html).

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

### Configura il database IBM Db2 di origine
<a name="configure-the-source-ibm-db2-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il database IBM Db2 su Amazon. EC2 | Puoi creare un database IBM Db2 su un' EC2 istanza utilizzando un'Amazon Machine Image (AMI) da AWS Marketplace o installando il software Db2 su un'istanza. EC2 Avvia un' EC2 istanza selezionando un AMI per IBM Db2 (ad esempio, [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)), che è simile a un database locale. | DBA, AWS generale | 
| Configura i gruppi di sicurezza. | Configura le regole in entrata del gruppo di sicurezza VPC per SSH (Secure Shell) e TCP con le porte 22 e 50000, rispettivamente. | Informazioni generali su AWS | 
| Crea l'istanza del database. | Crea una nuova istanza (utente) e un database (schema) oppure usa l'`db2inst1`istanza e il database di esempio predefiniti.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Verifica che l'istanza DB Db2 sia disponibile. | Per confermare che l'istanza del database Db2 è attiva e in esecuzione, usa il `Db2pd -` comando. | DBA | 

### Configurare il database Aurora di destinazione compatibile con MySQL
<a name="configure-the-target-aurora-mysql-compatible-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il database Aurora compatibile con MySQL. | Crea un database di compatibilità Amazon Aurora con MySQL dal servizio AWS RDS[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, AWS generale | 
| Configura i gruppi di sicurezza. | Configura le regole in entrata del gruppo di sicurezza VPC per le connessioni SSH e TCP. | Informazioni generali su AWS | 
| Verifica che il database Aurora sia disponibile. | Per assicurarti che il database Aurora compatibile con MySQL sia attivo e funzionante, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 

### Configurazione ed esecuzione di AWS SCT
<a name="configure-and-run-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS SCT. | Scarica e installa l'ultima versione di [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) (l'ultima versione corrente 1.0.628). | Informazioni generali su AWS | 
| Configura AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Crea un progetto AWS SCT. | Crea un progetto e un report AWS SCT che utilizzi Db2 per LUW come motore DB di origine e compatibile con Aurora MySQL per il motore DB di destinazione.Per identificare i privilegi necessari per connettersi a un database Db2 for LUW, consulta [Usare Db2 LUW come sorgente per AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html). | Informazioni generali su AWS | 
| Convalida gli oggetti. | Scegli **Carica schema**, convalida gli oggetti. Aggiorna eventuali oggetti errati sul database di destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, AWS generale | 

### Configurazione ed esecuzione di AWS DMS
<a name="configure-and-run-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica. | Accedi alla Console di gestione AWS, accedi al servizio AWS DMS e crea un'istanza di replica con impostazioni valide per il gruppo di sicurezza VPC che hai configurato per i database di origine e di destinazione. | Informazioni generali su AWS | 
| Crea endpoint. | Crea l'endpoint di origine per il database Db2 e crea l'endpoint di destinazione per il database Aurora compatibile con MySQL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Crea attività di migrazione. | Crea una singola attività di migrazione o più attività di migrazione per il pieno carico e la convalida CDC o dei dati:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Pianifica il ciclo di produzione. | Conferma i tempi di inattività con le parti interessate, come i proprietari delle applicazioni, per eseguire AWS DMS nei sistemi di produzione. | Responsabile della migrazione | 
| Esegui le attività di migrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Informazioni generali su AWS | 
| Convalida i dati. | Esamina i risultati e i dati delle attività di migrazione nei database Db2 di origine e MySQL di destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Interrompi le attività di migrazione. | Una volta completata correttamente la convalida dei dati, interrompi le attività di migrazione di convalida. | Informazioni generali su AWS | 

## risoluzione dei problemi
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Le connessioni di test di origine e destinazione di AWS SCT non funzionano. | Configura le versioni dei driver JDBC e le regole in entrata del gruppo di sicurezza VPC per accettare il traffico in entrata. | 
| L'esecuzione del test dell'endpoint sorgente Db2 non riesce. | Configura l'impostazione di connessione aggiuntiva. `CurrentLSN=<scan>;` | 
| L' AWSDMS operazione non riesce a connettersi alla sorgente Db2 e viene restituito il seguente errore.`database is recoverable if either or both of the database configuration parameters LOGARCHMETH1 and LOGARCHMETH2 are set to ON` | Per evitare l'errore, esegui i seguenti comandi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | 

## Risorse correlate
<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/)
+ [Guide EC2 per gli utenti di Amazon](https://docs.aws.amazon.com/ec2/)

**Database**
+ [Database IBM Db2](https://www.ibm.com/products/db2-database)
+ [Amazon Aurora](https://aws.amazon.com/rds/aurora/)
+ [Lavorare con Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)

**AWS SCT**
+ [Conversione dello schema AWS DMS](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Guida per l'utente di AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Utilizzo dell'interfaccia utente AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Utilizzo di IBM Db2 LUW come sorgente per 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/)
+ [Guida per l'utente di AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Fonti per la migrazione dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Obiettivi per la migrazione dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [AWS Database Migration Service e AWS Schema Conversion Tool ora supportano IBM Db2 LUW come sorgente (post](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-aws-schema-conversion-tool-now-support-ibm-db2-as-a-source/) di blog)
+ [Migrazione di applicazioni che eseguono database relazionali su AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

# Esegui la migrazione di un database Microsoft SQL Server da Amazon EC2 ad Amazon DocumentDB utilizzando 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*

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

Questo modello descrive come utilizzare AWS Database Migration Service (AWS DMS) per migrare un database Microsoft SQL Server ospitato su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) verso un database Amazon DocumentDB (con compatibilità MongoDB).

Il task di replica AWS DMS legge la struttura delle tabelle del database SQL Server, crea la raccolta corrispondente in Amazon DocumentDB ed esegue una migrazione a pieno carico.

Puoi anche utilizzare questo modello per migrare un'istanza DB SQL Server o Amazon Relational Database Service (Amazon RDS) per SQL Server locale su Amazon DocumentDB. Per ulteriori informazioni, consulta la guida [Migrazione dei database Microsoft SQL Server al cloud AWS sul sito Web AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/welcome.html) Prescriptive Guidance.

## Prerequisiti e limitazioni
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database SQL Server esistente su un'istanza. EC2 
+ Ruolo fisso del database (**db\$1owner**) assegnato ad AWS DMS nel database SQL Server. Per ulteriori informazioni, consulta [Ruoli a livello di database nella documentazione](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15) di SQL Server. 
+ Familiarità con l'uso delle `mongoimport` utilità `mongodump``mongorestore`,`mongoexport`, e per [spostare dati da e verso un cluster 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), installato e configurato.

**Limitazioni**
+ Il limite di dimensione del cluster in Amazon DocumentDB è di 64 TB. Per ulteriori informazioni, consulta [Limiti del cluster](https://docs.aws.amazon.com/documentdb/latest/developerguide/limits.html#limits-cluster) nella documentazione di Amazon DocumentDB. 
+ AWS DMS non supporta l'unione di più tabelle di origine in un'unica raccolta Amazon DocumentDB.
+ Se AWS DMS elabora modifiche da una tabella di origine senza una chiave primaria, ignorerà le colonne LOB (Large Object) nella tabella di origine.

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

**Stack tecnologico di origine**
+ Amazon EC2

**Stack tecnologico Target**
+ Amazon DocumentDB

**Architettura di destinazione**

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


## Tools (Strumenti)
<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) — AWS Database Migration Service (AWS DMS) ti aiuta a migrare i database in modo semplice e sicuro.
+ [Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html) — Amazon DocumentDB (con compatibilità MongoDB) è un servizio di database veloce, affidabile e completamente gestito.
+ [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) — Amazon Elastic Compute Cloud (Amazon EC2) fornisce capacità di calcolo scalabile nel cloud AWS.
+ [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15): SQL Server è un sistema di gestione di database relazionali.
+ [SQL Server Management Studio (SSMS): SSMS](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15) è uno strumento per la gestione di SQL Server, incluso l'accesso, la configurazione e l'amministrazione dei componenti di SQL Server.

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

### Creare e configurare un VPC
<a name="create-and-configure-a-vpc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un VPC. | Accedi alla Console di gestione AWS e apri la console Amazon VPC. Crea un cloud privato virtuale (VPC) con un intervallo di blocchi IPv4 CIDR. | Amministratore di sistema | 
| Crea gruppi di sicurezza e rete. ACLs | Sulla console Amazon VPC, crea gruppi di sicurezza e liste di controllo degli accessi alla rete (rete ACLs) per il tuo VPC, in base alle tue esigenze. Puoi anche utilizzare le impostazioni predefinite per queste configurazioni. Per ulteriori informazioni su questa e altre storie, consulta la sezione «Risorse correlate». | Amministratore di sistema | 

### Creare e configurare il cluster Amazon DocumentDB
<a name="create-and-configure-the-amazon-documentdb-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
|  Crea un cluster Amazon DocumentDB. | Apri la console Amazon DocumentDB e scegli «Clusters». Scegli «Crea» e crea un cluster Amazon DocumentDB con un'istanza. Importante: assicurati di configurare questo cluster con i gruppi di sicurezza del tuo VPC. | Amministratore di sistema  | 
|  Installa la shell mongo. | La shell mongo è un'utilità da riga di comando che si utilizza per connettersi al cluster Amazon DocumentDB e interrogarlo. Per installarlo, esegui il comando «/etc/yum.repos.d/mongodb-org-3.6.repo» per creare il file del repository. Esegui il comando «sudo yum install mongodb-org-shell -y" per installare la shell mongo. Per crittografare i dati in transito, scarica la chiave pubblica per Amazon DocumentDB, quindi connettiti alla tua istanza Amazon DocumentDB. Per ulteriori informazioni su questi passaggi, consulta la sezione «Risorse correlate». | Amministratore di sistema  | 
| Crea un database nel cluster Amazon DocumentDB.  | Esegui il comando «use» con il nome del tuo database per creare un database nel tuo cluster Amazon DocumentDB. | Amministratore di sistema  | 

### Crea e configura l'istanza di replica AWS DMS
<a name="create-and-configure-the-aws-dms-replication-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza di replica AWS DMS. | Apri la console AWS DMS e scegli «Crea istanza di replica». Inserisci un nome e una descrizione per l'attività di replica. Scegli la classe di istanza, la versione del motore, lo storage, il VPC, Multi-AZ e rendili accessibili al pubblico. Scegli la scheda «Avanzate» per configurare le impostazioni di rete e crittografia. Specificate le impostazioni di manutenzione, quindi scegliete «Crea istanza di replica». | Amministratore di sistema  | 
| Configura il database SQL Server.  | Accedi a Microsoft SQL Server e aggiungi una regola in entrata per la comunicazione tra l'endpoint di origine e l'istanza di replica AWS DMS. Utilizza l'indirizzo IP privato dell'istanza di replica come origine. Importante: l'istanza di replica e l'endpoint di destinazione devono trovarsi sullo stesso VPC. Utilizza una fonte alternativa nel gruppo di sicurezza se VPCs sono diverse per l'origine e le istanze di replica. | Amministratore di sistema  | 

### Crea e testa gli endpoint di origine e di destinazione in AWS DMS
<a name="create-and-test-the-source-and-target-endpoints-in-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea gli endpoint del database di origine e di destinazione. | Apri la console AWS DMS e scegli «Connetti gli endpoint del database di origine e di destinazione». Specificate le informazioni di connessione per i database di origine e di destinazione. Se necessario, scegli la scheda «Avanzate» per impostare i valori per «Attributi di connessione aggiuntivi». Scarica e usa il pacchetto di certificati nella configurazione del tuo endpoint. | Amministratore di sistema  | 
| Verifica la connessione dell'endpoint.  | Scegli «Esegui test» per testare la connessione. Risolvi eventuali messaggi di errore verificando le impostazioni del gruppo di sicurezza e le connessioni all'istanza di replica AWS DMS sia dall'istanza del database di origine che da quella di destinazione. | Amministratore di sistema  | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'attività di migrazione AWS DMS.  | Nella console AWS DMS, scegli «Attività», «Crea attività». Specificate le opzioni dell'attività, inclusi i nomi degli endpoint di origine e di destinazione e i nomi delle istanze di replica. In «Tipo di migrazione» scegli «Migra i dati esistenti» e «Replica solo le modifiche ai dati». Scegli «Avvia attività». | Amministratore di sistema  | 
| Esegui l'attività di migrazione di AWS DMS. | In «Impostazioni attività», specifica le impostazioni per la modalità di preparazione della tabella, ad esempio «Non fare nulla», «Elimina tabelle sulla destinazione», «Truncate» e «Includi colonne LOB nella replica». Imposta una dimensione LOB massima che AWS DMS accetterà e scegli «Abilita registrazione». Lascia le «Impostazioni avanzate» ai valori predefiniti e scegli «Crea attività». | Amministratore di sistema  | 
| Monitora la migrazione. | Nella console AWS DMS, scegli «Attività» e scegli l'attività di migrazione. Scegli «Task monitoring» per monitorare la tua attività. L'attività si interrompe quando la migrazione a pieno carico è completa e vengono applicate le modifiche memorizzate nella cache. | Amministratore di sistema  | 

### Testa e verifica la migrazione
<a name="test-and-verify-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
|  Connettiti al cluster Amazon DocumentDB utilizzando la shell mongo. | Apri la console Amazon DocumentDB, scegli il tuo cluster in «Clusters». Nella scheda «Connettività e sicurezza», scegli «Connettiti a questo cluster con la shell mongo». | Amministratore di sistema  | 
| Verifica i risultati della migrazione. | Esegui il comando «use» con il nome del tuo database, quindi esegui il comando «show collections». Esegui il comando «db. .count ();» con il nome del tuo database. Se i risultati corrispondono al database di origine, la migrazione è avvenuta con successo. | Amministratore di sistema  | 

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

**Creare e configurare un VPC**
+ [Crea un gruppo di sicurezza per il tuo VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ [Crea un ACL di rete](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

** **

**Creare e configurare il cluster Amazon DocumentDB**
+ [Crea un cluster Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-cluster)
+ [Installa la shell mongo per Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-mongoshell)
+ [Connettiti al tuo cluster Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-connectcluster)

** **

**Crea e configura l'istanza di replica AWS DMS**
+ [Usa istanze di replica pubbliche e private](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate)

** **

**Crea e testa gli endpoint di origine e di destinazione in AWS DMS**
+ [Usa Amazon DocumentDB come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/target.docdb.html)
+ [Usa un database SQL Server come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Usa gli endpoint AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)

** **

**Migra i dati**
+ [Migrazione ad Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-migration.html)

** **

**Altre risorse**
+ [Limitazioni all'uso di SQL Server come sorgente per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.Limitations) 
+ [Come usare Amazon DocumentDB per creare e gestire applicazioni su larga scala](https://aws.amazon.com/blogs/database/how-to-use-amazon-documentdb-with-mongodb-compatibility-to-build-and-manage-applications-at-scale/)

# Esegui la migrazione di un database ThoughtSpot Falcon locale su Amazon Redshift
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift"></a>

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

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

I data warehouse locali richiedono tempi e risorse di amministrazione significativi, in particolare per set di dati di grandi dimensioni. Anche il costo finanziario della costruzione, della manutenzione e della crescita di questi magazzini è molto elevato. Per aiutare a gestire i costi, mantenere bassa la complessità di estrazione, trasformazione e caricamento (ETL) e fornire prestazioni man mano che i dati crescono, è necessario scegliere costantemente quali dati caricare e quali archiviare.

Migrando i [database ThoughtSpot Falcon](https://docs.thoughtspot.com/software/latest/data-caching) locali sul cloud Amazon Web Services (AWS), puoi accedere a data lake e data warehouse basati sul cloud che aumentano l'agilità aziendale, la sicurezza e l'affidabilità delle applicazioni, oltre a ridurre i costi complessivi dell'infrastruttura. Amazon Redshift aiuta a ridurre in modo significativo i costi e le spese operative di un data warehouse. Puoi anche utilizzare Amazon Redshift Spectrum per analizzare grandi quantità di dati nel suo formato nativo senza caricarli.

Questo modello descrive i passaggi e il processo per la migrazione di un database ThoughtSpot Falcon da un data center locale a un database Amazon Redshift sul cloud AWS.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database ThoughtSpot Falcon ospitato in un data center locale

**Versioni del prodotto**
+ ThoughtSpot versione 7.0.1 

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

![\[Migrazione di un database ThoughtSpot Falcon da un data center locale ad Amazon Redshift.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/b0ca29f4-b269-4b57-b386-738693a6b334/images/2b483990-1f30-439c-ba13-dc0cb0650360.png)


 

Il diagramma mostra il flusso di lavoro seguente:

1. I dati sono ospitati in un database relazionale locale.

1. AWS Schema Conversion Tool (AWS SCT) converte il linguaggio di definizione dei dati (DDL) compatibile con Amazon Redshift.

1. Dopo aver creato le tabelle, puoi migrare i dati utilizzando AWS Database Migration Service (AWS DMS).

1. I dati vengono caricati in Amazon Redshift.

1. I dati vengono archiviati in Amazon Simple Storage Service (Amazon S3) se utilizzi Redshift Spectrum o se hai già ospitato i dati in Amazon S3.

## Tools (Strumenti)
<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): AWS Data Migration Service (AWS DMS) ti aiuta a migrare i database in modo rapido e sicuro su AWS.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) — Amazon Redshift è un servizio di data warehouse veloce, completamente gestito e su scala petabyte che semplifica ed economica l'analisi efficiente di tutti i dati utilizzando gli strumenti di business intelligence esistenti.
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — AWS Schema Conversion Tool (AWS SCT) converte lo schema di database esistente da un motore di database a un altro.

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

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica la configurazione Amazon Redshift appropriata. | Identifica la configurazione del cluster Amazon Redshift appropriata in base ai tuoi requisiti e al volume di dati. Per ulteriori informazioni, consulta i [cluster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) nella documentazione di Amazon Redshift. | DBA | 
| Cerca Amazon Redshift per valutare se soddisfa i tuoi requisiti. | Usa [Amazon Redshift FAQs](https://aws.amazon.com/redshift/faqs/) per capire e valutare se Amazon Redshift soddisfa i tuoi requisiti. | DBA | 

### Prepara il cluster Amazon Redshift di destinazione
<a name="prepare-the-target-amazon-redshift-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cluster Amazon Redshift. | Accedi alla Console di gestione AWS, apri la console Amazon Redshift e crea un cluster Amazon Redshift in un cloud privato virtuale (VPC). Per ulteriori informazioni, consulta [Creazione di un cluster in un VPC nella documentazione](https://docs.aws.amazon.com/redshift/latest/mgmt/getting-started-cluster-in-vpc.html) di Amazon Redshift. | DBA | 
| Esegui un PoC per la progettazione del tuo database Amazon Redshift. | Segui le best practice di Amazon Redshift eseguendo un proof of concept (PoC) per la progettazione del tuo database. Per ulteriori informazioni, consulta [Condurre un proof of concept per Amazon](https://docs.aws.amazon.com/redshift/latest/dg/proof-of-concept-playbook.html) Redshift nella documentazione di Amazon Redshift. | DBA | 
| Crea utenti del database. | Crea gli utenti nel tuo database Amazon Redshift e concedi i ruoli appropriati per l'accesso allo schema e alle tabelle.  Per ulteriori informazioni, consulta [Concedere i privilegi di accesso per un utente o un gruppo](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) di utenti nella documentazione di Amazon Redshift. | DBA | 
| Applica le impostazioni di configurazione al database di destinazione. | Applica le impostazioni di configurazione al database Amazon Redshift in base ai tuoi requisiti. Per ulteriori informazioni sull'abilitazione dei parametri a livello di database, sessione e server, consulta il [riferimento alla configurazione nella documentazione di](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) Amazon Redshift. | DBA | 

### Crea oggetti nel cluster Amazon Redshift
<a name="create-objects-in-the-amazon-redshift-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea manualmente tabelle con DDL in Amazon Redshift. | (Facoltativo) Se utilizzi AWS SCT, le tabelle vengono create automaticamente. Tuttavia, se si verificano errori durante la replica DDLs, è necessario creare manualmente le tabelle | DBA | 
| Crea tabelle esterne per Redshift Spectrum. | Crea una tabella esterna con uno schema esterno per Amazon Redshift Spectrum. Per creare tabelle esterne, devi essere il proprietario dello schema esterno o un [superutente del database](https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html). Per ulteriori informazioni, consulta [Creazione di tabelle esterne per Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html) Spectrum nella documentazione di Amazon Redshift. | DBA | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Usa AWS DMS per migrare i dati. | Dopo aver creato il DDL delle tabelle nel database Amazon Redshift, migra i dati su Amazon Redshift utilizzando AWS DMS.Per passaggi e istruzioni dettagliate, consulta [Usare un database Amazon Redshift come destinazione per AWS DMS nella documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html). | DBA | 
| Utilizzate il comando COPY per caricare i dati. | Usa il `COPY` comando Amazon Redshift per caricare i dati da Amazon S3 ad Amazon Redshift.Per ulteriori informazioni, consulta [Utilizzo del comando COPY per il caricamento da Amazon S3 nella documentazione](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html) di Amazon Redshift. | DBA | 

### Convalida il cluster Amazon Redshift
<a name="validate-the-amazon-redshift-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida i record di origine e di destinazione.  | Convalida il conteggio delle tabelle per i record di origine e di destinazione che sono stati caricati dal sistema di origine. | DBA | 
| Implementa le best practice di Amazon Redshift per l'ottimizzazione delle prestazioni. | Implementa le best practice di Amazon Redshift per la progettazione di tabelle e database. Per ulteriori informazioni, consulta il post sul blog [Le 10 migliori tecniche di ottimizzazione delle prestazioni per Amazon Redshift](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-techniques-for-amazon-redshift/). | DBA | 
| Ottimizza le prestazioni delle query. | Amazon Redshift utilizza query basate su SQL per interagire con dati e oggetti nel sistema. Il linguaggio di manipolazione dei dati (DML) è il sottoinsieme di SQL che puoi utilizzare per visualizzare, aggiungere, modificare ed eliminare dati. DDL è il sottoinsieme di SQL utilizzato per aggiungere, modificare ed eliminare oggetti di database come tabelle e viste.Per ulteriori informazioni, consulta [Tuning query performance](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html) nella documentazione di Amazon Redshift. | DBA | 
| Implementa WLM.  | È possibile utilizzare la gestione del carico di lavoro (WLM) per definire più code di interrogazioni e indirizzare le query alle code appropriate in fase di esecuzione.Per ulteriori informazioni, consulta [Implementazione della gestione del carico di lavoro](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) nella documentazione di Amazon Redshift. | DBA | 
| Lavora con il ridimensionamento simultaneo. | Utilizzando la funzionalità Concurrency Scaling, è possibile supportare un numero virtualmente illimitato di utenti e query simultanee, con prestazioni di query costantemente elevate.Per ulteriori informazioni, consulta [Working with concurrency scaling nella documentazione di](https://docs.aws.amazon.com/redshift/latest/dg/concurrency-scaling.html) Amazon Redshift. | DBA | 
| Utilizza le best practice di Amazon Redshift per la progettazione di tabelle. | Quando pianifichi il tuo database, alcune importanti decisioni sulla progettazione delle tabelle possono influenzare fortemente le prestazioni complessive delle query.Per ulteriori informazioni sulla scelta dell'opzione di progettazione delle tabelle più appropriata, consulta le [best practice di Amazon Redshift per la progettazione di tabelle nella documentazione](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) di Amazon Redshift. | DBA | 
| Crea viste materializzate in Amazon Redshift. | Una vista materializzata contiene un set di risultati precalcolato basato su una query SQL su una o più tabelle di base. È possibile emettere `SELECT` istruzioni per interrogare una vista materializzata nello stesso modo in cui si esegue una query su altre tabelle o viste del database.Per ulteriori informazioni, consulta [Creazione di viste materializzate in Amazon](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html) Redshift nella documentazione di Amazon Redshift. | DBA | 
| Definire le giunzioni tra le tabelle. | Per cercare più di una tabella contemporaneamente ThoughtSpot, è necessario definire i join tra le tabelle specificando le colonne che contengono i dati corrispondenti su due tabelle. Queste colonne rappresentano la fine `primary key` `foreign key` del join.Puoi definirli utilizzando il `ALTER TABLE` comando in Amazon Redshift o. ThoughtSpot Per ulteriori informazioni, consulta [ALTER TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html) nella documentazione di Amazon Redshift. | DBA | 

### Configura ThoughtSpot la connessione ad Amazon Redshift
<a name="set-up-thoughtspot-connection-to-amazon-redshift"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
|  Aggiungi una connessione Amazon Redshift. | Aggiungi una connessione Amazon Redshift al tuo database Falcon locale ThoughtSpot .Per ulteriori informazioni, consulta [Aggiungere una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-add-connection.html) nella ThoughtSpot documentazione. | DBA | 
| Modifica la connessione Amazon Redshift. | Puoi modificare la connessione Amazon Redshift per aggiungere tabelle e colonne.Per ulteriori informazioni, consulta [Modificare una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-edit-connection.html) nella ThoughtSpot documentazione. | DBA | 
| Rimappa la connessione Amazon Redshift. | Modifica i parametri di connessione modificando il file di mappatura dei sorgenti .yaml creato quando hai aggiunto la connessione Amazon Redshift. Ad esempio, puoi rimappare la tabella o la colonna esistente su una tabella o colonna diversa in una connessione al database esistente. ThoughtSpot consiglia di controllare le dipendenze prima e dopo aver rimappato una tabella o una colonna in una connessione per assicurarsi che vengano visualizzate come richiesto.Per ulteriori informazioni, consulta [Rimappare una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-remap-connection.html) nella ThoughtSpot documentazione. | DBA | 
| Elimina una tabella dalla connessione Amazon Redshift.  | (Facoltativo) Se tenti di rimuovere una tabella in una connessione Amazon Redshift, ThoughtSpot verifica le dipendenze e mostra un elenco di oggetti dipendenti. Puoi scegliere gli oggetti elencati per eliminarli o rimuovere la dipendenza. È quindi possibile rimuovere la tabella.Per ulteriori informazioni, consulta [Eliminare una tabella da una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table.html) nella ThoughtSpot documentazione. | DBA | 
|  Elimina una tabella con oggetti dipendenti da una connessione Amazon Redshift. | (Facoltativo) Se tenti di eliminare una tabella con oggetti dipendenti, l'operazione viene bloccata. Viene visualizzata una `Cannot delete` finestra con un elenco di collegamenti agli oggetti dipendenti. Una volta rimosse tutte le dipendenze, è possibile eliminare la tabellaPer ulteriori informazioni, consulta [Eliminare una tabella con oggetti dipendenti da una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table-dependencies.html) nella ThoughtSpot documentazione. | DBA | 
| Elimina una connessione Amazon Redshift. | (Facoltativo) Poiché una connessione può essere utilizzata in più sorgenti di dati o visualizzazioni, è necessario eliminare tutte le fonti e le attività che utilizzano tale connessione prima di poter eliminare la connessione Amazon Redshift.Per ulteriori informazioni, consulta [Eliminare una connessione Amazon Redshift](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-connection.html) nella ThoughtSpot documentazione. | DBA | 
|  Controlla il riferimento di connessione per Amazon Redshift. | Assicurati di fornire le informazioni richieste per la tua connessione Amazon Redshift utilizzando il [riferimento Connection](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-connection-reference.html) nella ThoughtSpot documentazione. | DBA | 

## Informazioni aggiuntive
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-additional"></a>
+ [Analisi basata sull'intelligenza artificiale su qualsiasi scala con Amazon ThoughtSpot Redshift](https://aws.amazon.com/blogs/apn/ai-driven-analytics-at-any-scale-with-thoughtspot-and-amazon-redshift/)
+ [Prezzi di Amazon Redshift](https://aws.amazon.com/redshift/pricing/)
+ [Guida introduttiva ad AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html) 
+ [Guida introduttiva ad Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Utilizzo di agenti di estrazione dei dati](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Chick-fil-A migliora la velocità di acquisizione delle informazioni con ThoughtSpot e AWS](https://www.thoughtspot.com/sites/default/files/pdf/ThoughtSpot-Chick-fil-A-AWS-Case-Study.pdf) 

# Esegui la migrazione da Oracle Database ad Amazon RDS for PostgreSQL utilizzando 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*

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

Questo modello mostra come migrare un database Oracle su Amazon Relational Database Service (Amazon RDS) per PostgreSQL utilizzando Oracle Cloud Infrastructure (OCI). GoldenGate

Utilizzando Oracle GoldenGate, puoi replicare i dati tra il tuo database di origine e uno o più database di destinazione con tempi di inattività minimi.

**Nota**  
Il database Oracle di origine può essere locale o su un'istanza Amazon Elastic Compute Cloud EC2 (Amazon). È possibile utilizzare una procedura simile quando si utilizzano strumenti di replica locali.

## Prerequisiti e limitazioni
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Una GoldenGate licenza Oracle
+ Driver Java Database Connectivity (JDBC) per la connessione al database PostgreSQL
+ Schema e tabelle creati con [AWS Schema Conversion Tool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/) sul database Amazon RDS for PostgreSQL di destinazione

**Limitazioni**
+ Oracle GoldenGate può replicare solo i dati delle tabelle esistenti (caricamento iniziale) e le modifiche in corso (acquisizione dei dati di modifica)

**Versioni del prodotto**
+ Oracle Database Enterprise Edition 10g o versioni successive 
+ Oracle GoldenGate 12.2.0.1.1 per Oracle o versioni più recenti
+ Oracle GoldenGate 12.2.0.1.1 per PostgreSQL o versioni più recenti

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

Il diagramma seguente mostra un esempio di flusso di lavoro per la migrazione di un database Oracle ad Amazon RDS for PostgreSQL utilizzando Oracle: GoldenGate

![\[Flusso di lavoro di migrazione dal database Oracle locale ad Amazon RDS for PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/384f0eaf-8582-474a-a7f4-ec1048a4feb3/images/de541887-0d5f-4a9a-b136-ce2599355cb8.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Il [processo Oracle GoldenGate Extract](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-6419F3A9-71EC-4D14-9C41-3BAA1E3CA19C) viene eseguito sul database di origine per estrarre i dati.

1. Il [processo Oracle GoldenGate Replicat](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-5EF0326C-9058-4C40-8925-98A223388C95) fornisce i dati estratti al database Amazon RDS for PostgreSQL di destinazione.

## Tools (Strumenti)
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-tools"></a>
+ [Oracle](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) ti GoldenGate aiuta a progettare, eseguire, orchestrare e monitorare la replica dei dati e le soluzioni di elaborazione dei dati in streaming nell'infrastruttura Oracle Cloud.
+ [Amazon Relational Database Service (Amazon RDS) per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL nel cloud AWS.

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

### Scarica e installa Oracle GoldenGate
<a name="download-and-install-oracle-goldengate"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica Oracle GoldenGate. | Scarica le seguenti versioni di Oracle GoldenGate:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html)[Per scaricare il software, consulta Oracle Downloads sul sito Web di Oracle. GoldenGate ](https://www.oracle.com/middleware/technologies/goldengate-downloads.html) | DBA | 
| Installa Oracle GoldenGate for Oracle sul server Oracle Database di origine. | Per istruzioni, consulta la [ GoldenGate documentazione di Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 
| Installa il database Oracle GoldenGate per PostgreSQL sull'istanza Amazon. EC2  | [Per istruzioni, consulta la documentazione di Oracle. GoldenGate ](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm) | DBA | 

### Configura Oracle GoldenGate sui database di origine e di destinazione
<a name="configure-oracle-goldengate-on-the-source-and-target-databases"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Oracle GoldenGate for Oracle Database sul database di origine. | Per istruzioni, consulta la [ GoldenGate documentazione di Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm).Assicurati di configurare quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 
| Configura Oracle GoldenGate per PostgreSQL sul database di destinazione. | Per istruzioni, vedere la [Parte VI Uso di Oracle GoldenGate per PostgreSQL](https://docs.oracle.com/en/middleware/goldengate/core/19.1/gghdb/using-oracle-goldengate-postgresql.html) sul sito Web di Oracle.Assicurati di configurare quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 

### Configura l'acquisizione dei dati
<a name="configure-the-data-capture"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il processo di estrazione nel database di origine. | Nel database Oracle di origine, crea un file di estrazione per estrarre i dati.Per istruzioni, consulta [ADD EXTRACT](https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands006.htm#GWURF122) nella documentazione di Oracle.Il file di estrazione include la creazione del file dei parametri di estrazione e della directory del file trail. | DBA | 
| Configura una pompa di dati per trasferire il file trail dal database di origine al database di destinazione. | Crea un file di parametri EXTRACT e una directory di file trail seguendo le istruzioni in [PARFILE](https://docs.oracle.com/database/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm#SUTIL859) in *Database Utilities* sul sito Web di Oracle.Per ulteriori informazioni, consulta [What is a](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-88674F53-1E07-4C00-9868-598F82D7113C) Trail? in *Fusion Middleware Understanding Oracle GoldenGate sul sito* Web di Oracle. | DBA | 
| Configura la replica sull' EC2 istanza Amazon. | Crea un file dei parametri di replica e una directory dei file trail.Per ulteriori informazioni sulla creazione di file di parametri di replica, vedere la sezione [3.5 Convalida di un file di parametri](https://docs.oracle.com/en/middleware/goldengate/core/21.3/admin/using-oracle-goldengate-parameter-files.html#GUID-1E32A9AD-25DB-4243-93CD-E643E7116215) nella documentazione di Oracle Database.Per ulteriori informazioni sulla creazione di una directory di file trail, vedere [Creazione di un trail nella documentazione](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/creating-trail.html) di Oracle Cloud.Assicurati di aggiungere una voce della tabella dei checkpoint nel file GLOBALS nella destinazione.Per ulteriori informazioni, consulta [Cos'è un replicato](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GGCON-GUID-5EF0326C-9058-4C40-8925-98A223388C95)? in *Fusion Middleware Understanding Oracle GoldenGate sul sito Web di Oracle*. | DBA | 

### Configurare la replica dei dati
<a name="configure-the-data-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Nel database di origine, create un file di parametri per estrarre i dati per il caricamento iniziale. | Segui le istruzioni in [Creazione di un file di parametri in GGSCI nella documentazione](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) di Oracle Cloud.Assicurati che il Manager sia in esecuzione sulla destinazione. | DBA | 
| Nel database di destinazione, create un file di parametri per replicare i dati per il caricamento iniziale. | Segui le istruzioni in [Creazione di un file di parametri in GGSCI](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) nella documentazione di Oracle Cloud.Assicurati di aggiungere e avviare il processo Replicat. | DBA | 

### Passare al database Amazon RDS for PostgreSQL
<a name="cut-over-to-the-amazon-rds-for-postgresql-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Interrompi il processo Replicat e assicurati che i database di origine e di destinazione siano sincronizzati. | Confronta il numero di righe tra i database di origine e di destinazione per assicurarti che la replica dei dati abbia avuto successo. | DBA | 
| Configura il supporto del linguaggio di definizione dei dati (DDL). | Esegui lo script DDL per creare trigger, sequenze, sinonimi e chiavi referenziali su PostgreSQL.È possibile utilizzare qualsiasi applicazione client SQL standard per connettersi a un database nel cluster DB. Ad esempio, puoi usare [pgAdmin](https://www.pgadmin.org/) per connetterti alla tua istanza DB. | DBA | 

## Risorse correlate
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-resources"></a>
+ [Amazon RDS per *PostgreSQL* (Guida per l'utente di Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) RDS)
+ [ EC2 Documentazione Amazon](https://docs.aws.amazon.com/ec2/)
+ [Metodi e database di elaborazione GoldenGate supportati](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD112) da Oracle (documentazione Oracle)

# Esegui la migrazione di una tabella partizionata Oracle su PostgreSQL utilizzando AWS DMS
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms"></a>

*Saurav Mishra e Eduardo Valentim, Amazon Web Services*

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

Questo modello descrive come velocizzare il caricamento di una tabella partizionata da Oracle a PostgreSQL utilizzando AWS Database Migration Service (AWS DMS), che non supporta il partizionamento nativo. Il database PostgreSQL di destinazione può essere installato su Amazon Elastic Compute Cloud (Amazon) oppure può essere un'istanza DB Edition compatibile con EC2 Amazon PostgreSQL o Amazon Aurora Edition Service (Amazon RDS) per PostgreSQL. 

Il caricamento di una tabella partizionata include i seguenti passaggi:

1. Crea una tabella principale simile alla tabella delle partizioni di Oracle, ma non include alcuna partizione.

1. Crea tabelle secondarie che erediteranno dalla tabella principale creata nel passaggio 1.

1. Create una funzione di procedura e un trigger per gestire gli inserti nella tabella principale.

Tuttavia, poiché il trigger viene attivato per ogni inserto, il caricamento iniziale con AWS DMS può essere molto lento.

Per velocizzare i caricamenti iniziali da Oracle a PostgreSQL 9.0, questo modello crea un task AWS DMS separato per ogni partizione e carica le tabelle secondarie corrispondenti. Si crea quindi un trigger durante il cutover. 

La versione 10 di PostgreSQL supporta il partizionamento nativo. Tuttavia, in alcuni casi potresti decidere di utilizzare il partizionamento ereditato. Per ulteriori informazioni, vedere la sezione Informazioni [aggiuntive](#migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional).

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine con una tabella partizionata
+ Un database PostgreSQL su AWS

**Versioni del prodotto**
+ PostgreSQL 9.0

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

**Stack tecnologico di origine**
+ Una tabella partizionata in Oracle

**Stack tecnologico Target**
+ Una tabella partizionata in PostgreSQL (su Amazon, Amazon RDS for PostgreSQL o Aurora PostgreSQL EC2)

**Architettura Target**

![\[I dati delle tabelle partizionati in Oracle vengono spostati su un task AWS DMS per ogni partizione, quindi in PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)


## Tools (Strumenti)
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.

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

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea le tabelle in PostgreSQL. | Crea le tabelle principali e secondarie corrispondenti in PostgreSQL con le condizioni di controllo richieste per le partizioni. | DBA | 
| Crea il task AWS DMS per ogni partizione. | Includi la condizione di filtro della partizione nel task AWS DMS. Mappare le partizioni alle tabelle secondarie PostgreSQL corrispondenti. | DBA | 
| Esegui le attività di AWS DMS utilizzando l'acquisizione dei dati a pieno carico e modifica (CDC). | Assicurati che il `StopTaskCachedChangesApplied` parametro sia impostato su `true` e che il `StopTaskCachedChangesNotApplied` parametro sia impostato su. `false` | DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Interrompi le attività di replica. | Prima di interrompere le attività, verificate che l'origine e la destinazione siano sincronizzate. | DBA | 
| Crea un trigger nella tabella principale. | Poiché la tabella principale riceverà tutti i comandi di inserimento e aggiornamento, create un trigger che indirizzerà questi comandi alle rispettive tabelle secondarie in base alla condizione di partizionamento. | DBA | 

## Risorse correlate
<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)
+ [Partizionamento delle tabelle (documentazione PostgreSQL)](https://www.postgresql.org/docs/10/ddl-partitioning.html)

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

Sebbene la versione 10 di PostgreSQL supporti il partizionamento nativo, potresti decidere di utilizzare il partizionamento ereditato per i seguenti casi d'uso:
+ Il partizionamento impone una regola secondo cui tutte le partizioni devono avere lo stesso set di colonne del set principale, ma l'ereditarietà delle tabelle supporta i figli con colonne aggiuntive.
+ L'ereditarietà delle tabelle supporta ereditarietà multiple.
+ Il partizionamento dichiarativo supporta solo il partizionamento di elenchi e intervalli. Con l'ereditarietà delle tabelle, puoi dividere i dati come desideri. Tuttavia, se l'esclusione dei vincoli non è in grado di eliminare efficacemente le partizioni, le prestazioni delle query ne risentiranno.
+ Alcune operazioni richiedono un blocco più forte quando si utilizza il partizionamento dichiarativo rispetto a quando si utilizza l'ereditarietà delle tabelle. Ad esempio, l'aggiunta o la rimozione di una partizione da o verso una tabella partizionata richiede un `ACCESS EXCLUSIVE` blocco sulla tabella principale, mentre un blocco è sufficiente per l'ereditarietà regolare. `SHARE UPDATE EXCLUSIVE`

Quando utilizzi partizioni di lavoro separate, puoi anche ricaricare le partizioni in caso di problemi di convalida di AWS DMS. Per un migliore controllo delle prestazioni e della replica, esegui attività su istanze di replica separate.

# Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for 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*

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

Questo modello fornisce indicazioni per la migrazione di un'istanza Amazon Relational Database Service (Amazon RDS) per Oracle DB a un'istanza DB Amazon RDS for MySQL su Amazon Web Services (AWS). Il modello utilizza AWS Database Migration Service (AWS DMS) e AWS Schema Conversion Tool (AWS SCT). 

Il modello fornisce le migliori pratiche per gestire la migrazione delle procedure archiviate. Inoltre, illustra le modifiche al codice per supportare il livello applicativo. 

## Prerequisiti e limitazioni
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database sorgente Amazon RDS for Oracle.
+ Un database di destinazione Amazon RDS for MySQL. I database di origine e di destinazione devono trovarsi nello stesso cloud privato virtuale (VPC). Se ne utilizzi più VPCs o devi disporre delle autorizzazioni di accesso richieste.
+ Gruppi di sicurezza che consentono la connettività tra i database di origine e di destinazione, AWS SCT, il server delle applicazioni e AWS DMS.
+ Un account utente con il privilegio richiesto per eseguire AWS SCT sul database di origine.
+ Registrazione supplementare abilitata per l'esecuzione di AWS DMS sul database di origine.

**Limitazioni**
+ Il limite di dimensione del database Amazon RDS di origine e destinazione è di 64 TB. Per informazioni sulle dimensioni di Amazon RDS, consulta la [documentazione AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).
+ Oracle non fa distinzione tra maiuscole e minuscole per gli oggetti del database, ma MySQL no. AWS SCT può gestire questo problema durante la creazione di un oggetto. Tuttavia, è necessario un po' di lavoro manuale per supportare la totale indistinzione tra maiuscole e minuscole.
+ Questa migrazione non utilizza le estensioni MySQL per abilitare le funzioni native di Oracle. AWS SCT gestisce la maggior parte della conversione, ma è necessario del lavoro per modificare il codice manualmente.
+ Nell'applicazione sono necessarie modifiche al driver Java Database Connectivity (JDBC).

**Versioni del prodotto**
+ Amazon RDS for Oracle 12.2.0.1 e versioni successive. Per le versioni di RDS for Oracle attualmente supportate, consulta la [documentazione AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.database-versions.html).
+ Amazon RDS for MySQL 8.0.15 e versioni successive. [Per le versioni RDS for MySQL attualmente supportate, consulta la documentazione AWS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html)
+ AWS DMS versione 3.3.0 e successive. Consulta la documentazione AWS per ulteriori informazioni sugli [endpoint di origine](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html) e di [destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) supportati da AWS DMS.
+ AWS SCT versione 1.0.628 e successive.  Consulta la [matrice di supporto degli endpoint di origine e destinazione di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) nella documentazione AWS.

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

**Stack tecnologico di origine**
+ Amazon RDS per Oracle. Per ulteriori informazioni, consulta [Usare un database Oracle come sorgente per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). 

**Stack tecnologico Target**
+ Amazon RDS per MySQL. Per ulteriori informazioni, consulta [Usare un database compatibile con MySQL come destinazione per](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) AWS DMS.

**Architettura di migrazione**

Nel diagramma seguente, AWS SCT copia e converte gli oggetti dello schema dal database di origine Amazon RDS for Oracle e invia gli oggetti al database di destinazione Amazon RDS for MySQL. AWS DMS replica i dati dal database di origine e li invia all'istanza Amazon RDS for MySQL.

![\[AWS SCT, AWS DMS e Amazon RDS distribuiti in una sottorete privata.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e1efa7c2-47c1-4677-80bc-6b19250fc0d6/images/b54a8442-9ab9-4074-b8f6-a08f87fa2f52.jpeg)


## Tools (Strumenti)
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-tools"></a>
+ [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS. Questo modello utilizza [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle [e Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html).
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

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

### Preparati per la migrazione
<a name="prepare-for-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni e i motori del database di origine e di destinazione. |  | DBA | 
|  Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, SysAdmin | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto (capacità, funzionalità di archiviazione, funzionalità di rete). |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin  | 
| Scegli una strategia di migrazione delle applicazioni. | Valuta se preferisci un periodo di inattività totale o parziale per le attività successive. | DBA, proprietario dell'app SysAdmin | 

### Configurare l'infrastruttura
<a name="configure-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un VPC e delle sottoreti. |  | SysAdmin | 
| Crea gruppi di sicurezza e liste di controllo degli accessi alla rete (). ACLs |  | SysAdmin | 
| Configura e avvia l'istanza Amazon RDS for Oracle. |  | DBA, SysAdmin | 
| Configura e avvia l'istanza Amazon RDS for MySQL.  |  | DBA, SysAdmin | 
| Preparare un test case per la convalida della conversione del codice. | Ciò contribuirà al test unitario del codice convertito. | DBA, Sviluppatore | 
| Configura l'istanza AWS DMS. |  |  | 
| Configura gli endpoint di origine e destinazione in AWS DMS. |  |  | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera lo script del database di destinazione utilizzando AWS SCT. | Verifica l'accuratezza del codice convertito da AWS SCT. Sarà necessario un po' di lavoro manuale. | DBA, Sviluppatore | 
| In AWS SCT, scegli l'impostazione «Case Insensitive». | In AWS SCT, scegli Project Settings, Target Case Sensitivity, Case Insensitive. | DBA, Sviluppatore | 
| In AWS SCT, scegli di non utilizzare la funzione nativa Oracle. | In Project Settings, controlla le funzioni TO\$1 CHAR/TO\$1NUMBER/TO \$1DATE. | DBA, Sviluppatore | 
| Apporta modifiche al codice «sql%notfound». | Potrebbe essere necessario convertire il codice manualmente. |  | 
| Interrogazione su tabelle e oggetti nelle stored procedure (utilizzare query minuscole). |  | DBA, Sviluppatore | 
| Crea lo script principale dopo aver apportato tutte le modifiche, quindi distribuisci lo script principale nel database di destinazione. |  | DBA, Sviluppatore | 
| Esegui il test unitario delle procedure memorizzate e delle chiamate alle applicazioni utilizzando dati di esempio.  |  |  | 
| Pulisci i dati creati durante il test unitario. |  | DBA, Sviluppatore | 
| Elimina i vincoli di chiave esterna sul database di destinazione. | Questo passaggio è necessario per caricare i dati iniziali. Se non vuoi eliminare i vincoli di chiave esterna, devi creare un'attività di migrazione per i dati specifici delle tabelle primarie e secondarie. | DBA, Sviluppatore | 
| Rilascia le chiavi primarie e le chiavi univoche sul database di destinazione. | Questo passaggio consente di ottenere prestazioni migliori per il carico iniziale. | DBA, Sviluppatore | 
| Abilita la registrazione supplementare sul database di origine.  |  | DBA | 
| Crea un'attività di migrazione per il carico iniziale in AWS DMS, quindi eseguila. | Scegli l'opzione per migrare i dati esistenti. | DBA | 
| Aggiungi le chiavi primarie e le chiavi esterne al database di destinazione. | I vincoli devono essere aggiunti dopo il caricamento iniziale. | DBA, Sviluppatore | 
| Crea un'attività di migrazione per la replica continua. | La replica continua mantiene il database di destinazione sincronizzato con il database di origine. | DBA | 

### Migrazione delle applicazioni
<a name="migrate-applications"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Sostituisci le funzioni native di Oracle con le funzioni native di MySQL. |  | Proprietario dell'app | 
| Assicurati che vengano utilizzati solo nomi in minuscolo per gli oggetti del database nelle query SQL. |  | DBA, proprietario dell'app SysAdmin | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Arresta il server delle applicazioni. |  | Proprietario dell'app | 
| Verifica che i database di origine e di destinazione siano sincronizzati. |  | DBA, proprietario dell'app | 
| Arresta l'istanza DB di Amazon RDS for Oracle. |  | DBA | 
| Interrompi l'attività di migrazione. | Questa operazione si interromperà automaticamente dopo aver completato il passaggio precedente. | DBA | 
| Cambia la connessione JDBC da Oracle a MySQL. |  | Proprietario dell'app, DBA | 
| Avvia l'applicazione. |  | DBA SysAdmin, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rivedi e convalida i documenti del progetto. |  | DBA, SysAdmin | 
| Raccogli le metriche relative ai tempi di migrazione, alla percentuale di attività manuali rispetto a quelle eseguite con strumenti, ai risparmi sui costi, ecc. |  | DBA, SysAdmin | 
| Blocca ed elimina le istanze AWS DMS. |  | DBA | 
| Rimuovi gli endpoint di origine e di destinazione. |  | DBA | 
| Rimuovi le attività di migrazione. |  | DBA | 
| Scatta uno snapshot dell'istanza DB di Amazon RDS for Oracle. |  | DBA | 
| Elimina l'istanza DB di Amazon RDS for Oracle. |  | DBA | 
| Chiudi ed elimina tutte le altre risorse AWS temporanee che hai utilizzato. |  | DBA, SysAdmin | 
| Chiudi il progetto e fornisci eventuali feedback. |  | DBA | 

## Risorse correlate
<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)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Esegui la migrazione da IBM Db2 su Amazon a EC2 Aurora PostgreSQL compatibile con AWS DMS e 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*

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

Questo modello fornisce indicazioni per la migrazione di un database IBM Db2 su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) verso un'istanza DB Edition compatibile con Amazon Aurora PostgreSQL. Questo modello utilizza AWS Database Migration Service (AWS DMS) e AWS Schema Conversion Tool (AWS SCT) per la migrazione dei dati e la conversione dello schema.

Il modello mira a una strategia di migrazione online con tempi di inattività minimi o nulli per un database IBM Db2 da più terabyte con un numero elevato di transazioni. Ti consigliamo di convertire le colonne in chiavi primarie (PKs) e chiavi esterne (FKs) con il tipo di dati `BIGINT` in `INT` o in PostgreSQL `NUMERIC` per prestazioni migliori. 

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

**Prerequisiti**
+ Un account AWS attivo 
+ Un database IBM Db2 di origine su un'istanza EC2 

**Versioni del prodotto**
+ DB2/LINUXX8664 versione 11.1.4.4 e successive

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

**Stack tecnologico di origine******
+ Un database Db2 su un'istanza EC2  

**Stack tecnologico Target**
+ Un'istanza DB Aurora compatibile con PostgreSQL versione 10.18 o successiva

**Architettura di migrazione del database******

![\[Utilizzo di AWS DMS per migrare da IMB Db2 su Amazon EC2 a Aurora compatibile con PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5e737fab-3e04-4887-9fb0-d1c88503b57d/images/789fabcc-8052-40d5-a746-986d799576e9.png)


## Tools (Strumenti)
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare i database nel cloud AWS o tra combinazioni di configurazioni cloud e locali. Il database di origine rimane pienamente operativo durante la migrazione, riducendo al minimo i tempi di inattività delle applicazioni che si basano sul database. Puoi utilizzare AWS DMS per migrare i tuoi dati da e verso i database commerciali e open source più utilizzati. AWS DMS supporta migrazioni eterogenee tra diverse piattaforme di database, come IBM Db2 verso Aurora PostgreSQL versione 10.18 o superiore. Per i dettagli, consulta [Sources for Data Migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) e [Targets for Data Migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) nella documentazione di AWS DMS.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte degli oggetti del codice del database, tra cui viste, stored procedure e funzioni, in un formato compatibile con il database di destinazione. Tutti gli oggetti che non vengono convertiti automaticamente sono chiaramente contrassegnati in modo che possano essere convertiti manualmente per completare la migrazione. AWS SCT può anche scansionare il codice sorgente dell'applicazione alla ricerca di istruzioni SQL incorporate e convertirle. 

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

### Configura l'ambiente
<a name="set-up-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza DB compatibile con Aurora PostgreSQL. | Per creare l'istanza DB, segui le istruzioni nella [documentazione AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). Per il tipo di motore, scegli **Amazon Aurora**. Per l'edizione, scegli l'edizione compatibile con **Amazon Aurora PostgreSQL**.L'istanza DB Aurora compatibile con PostgreSQL versione 10.18 o successiva deve trovarsi nello stesso cloud privato virtuale (VPC) del database IBM Db2 di origine. | Amazon RDS | 

### Converti lo schema del tuo database
<a name="convert-your-database-schema"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa e verifica AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Amministratore AWS, DBA, ingegnere addetto alla migrazione | 
| Avvia AWS SCT e crea un progetto. | Per avviare lo strumento AWS SCT e creare un nuovo progetto per eseguire un rapporto di valutazione della migrazione del database, segui le istruzioni nella documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Launching) | Ingegnere della migrazione | 
| Aggiungi server di database e crea una regola di mappatura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Ingegnere della migrazione | 
| Crea un rapporto di valutazione della migrazione del database.  | Crea il report di valutazione della migrazione del database seguendo i passaggi nella [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) | Ingegnere della migrazione | 
| Visualizza il rapporto di valutazione. | Utilizza la scheda **Riepilogo** del rapporto di valutazione della migrazione del database per visualizzare il rapporto e analizzare i dati. Questa analisi ti aiuterà a determinare la complessità della migrazione. Per ulteriori informazioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html) | Ingegnere della migrazione | 
| Convertire lo schema. | Per convertire gli schemi del database di origine:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Per ulteriori informazioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Converting) | Ingegnere della migrazione | 
| Applica lo schema del database convertito all'istanza DB di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Per ulteriori informazioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.ApplyingConversion) | Ingegnere della migrazione | 

### Migra i tuoi dati
<a name="migrate-your-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un gruppo di parametri VPC e DB.  | Configura un gruppo di parametri VPC e DB e configura le regole e i parametri in entrata necessari per la migrazione. Per istruzioni, consulta la [documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Prerequisites.html).Per il gruppo di sicurezza VPC, seleziona sia l' EC2 istanza per Db2 che l'istanza DB Aurora compatibile con PostgreSQL. Questa istanza di replica deve trovarsi nello stesso VPC delle istanze DB di origine e di destinazione. | Ingegnere della migrazione | 
| Prepara le istanze DB di origine e di destinazione. | Prepara le istanze DB di origine e di destinazione per la migrazione. In un ambiente di produzione, il database di origine esisterà già.Per il database di origine, il nome del server deve essere il Domain Name System (DNS) pubblico dell' EC2 istanza in cui è in esecuzione Db2. Come nome utente, è possibile utilizzare `db2inst1` seguito dalla porta, che sarà 5000 per IBM Db2.  | Ingegnere della migrazione | 
| Crea un EC2 client Amazon e degli endpoint. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Ingegnere della migrazione | 
| Crea un'istanza di replica. | Crea un'istanza di replica utilizzando la console AWS DMS e specifica gli endpoint di origine e destinazione. L'istanza di replica esegue la migrazione dei dati tra gli endpoint. Per ulteriori informazioni, consulta la [documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html).  | Ingegnere della migrazione | 
| Crea un'attività AWS DMS per migrare i dati. | [Crea un'attività per caricare le tabelle IBM Db2 di origine nell'istanza database PostgreSQL di destinazione seguendo i passaggi nella documentazione di 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/it_it/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Ingegnere della migrazione | 

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

**Riferimenti**
+ [Documentazione Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)
+ [Documentazione FDW (Foreign Data Wrapper) di PostgreSQL](https://www.postgresql.org/docs/10/postgres-fdw.html) 
+ [Documentazione PostgreSQL IMPORT FOREIGN SCHEMA](https://www.postgresql.org/docs/10/sql-importforeignschema.html) 
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/index.html)  
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 

**Tutorial e video**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/) (procedura dettagliata)
+ [Introduzione ad Amazon EC2 - Elastic Cloud Server e hosting con AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (video)

# Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando AWS DMS SharePlex
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms"></a>

*Kumar Babu PG, Amazon Web Services*

## Riepilogo
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-summary"></a>

Questo modello descrive come migrare un database Oracle 8i o 9i locale su Amazon Relational Database Service (Amazon RDS) per PostgreSQL o Amazon Aurora PostgreSQL. AWS Database Migration Service (AWS DMS) non supporta Oracle 8i o 9i come origine, quindi Quest SharePlex replica i dati da un database 8i o 9i locale a un database Oracle intermedio (Oracle 10g o 11g), compatibile con AWS DMS.

Dall'istanza Oracle intermedia, lo schema e i dati vengono migrati al database PostgreSQL su AWS utilizzando AWS Schema Conversion Tool (AWS SCT) e AWS DMS. Questo metodo consente di ottenere uno streaming continuo di dati dal database Oracle di origine all'istanza database PostgreSQL di destinazione con un ritardo di replica minimo. In questa implementazione, il downtime è limitato al tempo necessario per creare o convalidare tutte le chiavi esterne, i trigger e le sequenze sul database PostgreSQL di destinazione.

La migrazione utilizza un'istanza Amazon Elastic Compute Cloud (Amazon EC2) con Oracle 10g o 11g installato per ospitare le modifiche dal database Oracle di origine. AWS DMS utilizza questa istanza Oracle intermedia come origine per lo streaming dei dati verso Amazon RDS for PostgreSQL o Aurora PostgreSQL. La replica dei dati può essere messa in pausa e ripresa dal database Oracle locale all'istanza Oracle intermedia. Può anche essere messo in pausa e ripreso dall'istanza Oracle intermedia al database PostgreSQL di destinazione in modo da poter convalidare i dati utilizzando la convalida dei dati AWS DMS o uno strumento di convalida dei dati personalizzato.

## Prerequisiti e limitazioni
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle 8i o 9i di origine in un data center locale 
+ AWS Direct Connect configurato tra il data center locale e AWS 
+ Driver Java Database Connectivity (JDBC) per i connettori AWS SCT installati su un computer locale o sull'istanza EC2 in cui è installato AWS SCT
+ Familiarità con [l'uso di un database Oracle come sorgente AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiarità con [l'uso di un database PostgreSQL come target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ Familiarità con la replica dei dati Quest SharePlex 

 

**Limitazioni**
+ Il limite di dimensione del database è di 64 TB
+ Il database Oracle locale deve essere Enterprise Edition

 

**Versioni del prodotto**
+ Oracle 8i o 9i per il database di origine
+ Oracle 10g o 11g per il database intermedio 
+ PostgreSQL 9.6 o versione successiva

## Architecture
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle 8i o 9i 
+ Quest SharePlex 

 

**Stack tecnologico Obiettivo**
+ Amazon RDS per PostgreSQL o Aurora PostgreSQL 

** **

**Architettura di origine e destinazione**

![\[Architecture diagram showing migration from on-premises Oracle database to AWS cloud using various services.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/b6c30668-fc2e-4293-a59a-e01fd151f4bb/images/25082670-0bf3-4b20-8c80-99c6633b046f.png)


## Tools (Strumenti)
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-tools"></a>
+ **AWS DMS** — [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (AWS DMS) ti aiuta a migrare i database in modo rapido e sicuro. Il database di origine rimane pienamente operativo durante la migrazione, riducendo al minimo i tempi di inattività delle applicazioni che si basano sul database. AWS DMS può migrare i dati da e verso i database commerciali e open source più utilizzati. 
+ **AWS SCT** — [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) rende prevedibili le migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte degli oggetti del codice del database, tra cui viste, stored procedure e funzioni, in un formato compatibile con il database di destinazione. Gli oggetti che non possono essere convertiti automaticamente sono chiaramente contrassegnati in modo che possano essere convertiti manualmente per completare la migrazione. AWS SCT può anche scansionare il codice sorgente dell'applicazione alla ricerca di istruzioni SQL incorporate e convertirle come parte di un progetto di conversione dello schema del database. Durante questo processo, AWS SCT esegue l'ottimizzazione del codice nativo del cloud convertendo le funzioni legacy di Oracle e SQL Server nelle loro equivalenti AWS, per aiutarti a modernizzare le tue applicazioni durante la migrazione dei database. Una volta completata la conversione dello schema, AWS SCT può aiutare a migrare i dati da una serie di data warehouse ad Amazon Redshift utilizzando agenti di migrazione dei dati integrati.
+ **Quest SharePlex** — [Quest SharePlex](https://www.quest.com/register/120420/?gclid=Cj0KCQiA6IHwBRCJARIsALNjViVSt9fHqAsf9XbWkoCwKKyQqollR_5kSxNhBagh9s3spQT4IQCaVy0aAmCnEALw_wcB) è uno strumento di replica Oracle-to-Oracle dei dati per spostare i dati con tempi di inattività minimi e nessuna perdita di dati.

## Epiche
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-epics"></a>

### Crea l' EC2 istanza e installa Oracle
<a name="create-the-ec2-instance-and-install-oracle"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la rete per Amazon EC2. | Crea il cloud privato virtuale (VPC), le sottoreti, il gateway Internet, le tabelle di routing e i gruppi di sicurezza. | AWS SysAdmin | 
| Crea la nuova EC2 istanza. | Seleziona l'Amazon Machine Image (AMI) per l' EC2 istanza. Scegli la dimensione dell'istanza e configura i dettagli dell'istanza: il numero di istanze (1), il VPC e la sottorete del passaggio precedente, assegnazione automatica dell'IP pubblico e altre opzioni. Aggiungi spazio di archiviazione, configura i gruppi di sicurezza e avvia l'istanza. Quando richiesto, create e salvate una key pair per il passaggio successivo. | AWS SysAdmin | 
| Installa Oracle sull' EC2 istanza. | Acquisisci le licenze e i file binari Oracle richiesti e installa Oracle 10g o 11g sull'istanza. EC2  | DBA | 

### Configura SharePlex su un' EC2 istanza e configura la replica dei dati
<a name="set-up-shareplex-on-an-ec2-instance-and-configure-data-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare SharePlex. | Crea un' EC2 istanza Amazon e installa i SharePlex file binari compatibili con Oracle 8i o 9i. | AWS SysAdmin, DBA | 
| Configura la replica dei dati. | Segui le SharePlex best practice per configurare la replica dei dati da un database Oracle 8i/9i locale a un'istanza Oracle 10g/11g. | DBA | 

### Convertire lo schema del database Oracle in PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT. | Crea un nuovo report, quindi connettiti a Oracle come origine e PostgreSQL come destinazione. Nelle impostazioni del progetto, apri la scheda SQL Scripting e modifica lo script SQL di destinazione in File multipli. | DBA | 
| Convertire lo schema del database Oracle. | Nella scheda Azione, scegli Genera report, Converti schema e quindi Salva come SQL. | DBA | 
| Modifica gli script SQL generati da AWS SCT. |  | DBA | 

### Crea e configura l'istanza database Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS. | Nella console Amazon RDS, crea una nuova istanza DB PostgreSQL. | AWS SysAdmin, DBA | 
| Configura l'istanza DB. | Specificate la versione del motore DB, la classe dell'istanza DB, l'implementazione Multi-AZ, il tipo di storage e lo storage allocato. Immettere l'identificatore dell'istanza DB, un nome utente principale e una password principale. | AWS SysAdmin, DBA | 
| Configura rete e sicurezza. | Specificare il VPC, il gruppo di sottoreti, l'accessibilità pubblica, la preferenza della zona di disponibilità e i gruppi di sicurezza. | AWS SysAdmin, DBA | 
| Configura le opzioni del database. | Specificare il nome del database, la porta, il gruppo di parametri, la crittografia e la chiave principale. | AWS SysAdmin, DBA | 
| Configurare i backup. | Specificate il periodo di conservazione del backup, la finestra di backup, l'ora di inizio, la durata e se copiare i tag nelle istantanee. | AWS SysAdmin, DBA | 
| Configura le opzioni di monitoraggio. | Abilita o disabilita il monitoraggio avanzato e le informazioni sulle prestazioni. | AWS SysAdmin, DBA | 
| Configura le opzioni di manutenzione. | Specificare l'aggiornamento automatico della versione secondaria, la finestra di manutenzione e il giorno, l'ora e la durata di inizio. | AWS SysAdmin, DBA | 
| Esegui gli script di pre-migrazione da AWS SCT. | Nell'istanza Amazon RDS, esegui questi script: create\$1database.sql, create\$1sequence.sql, create\$1table.sql, create\$1view.sql e create\$1function.sql. | AWS SysAdmin, DBA | 

### Migra i dati utilizzando AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di replica in AWS DMS. | Completa i campi per il nome, la classe dell'istanza, il VPC (come per l' EC2 istanza), Multi-AZ e l'accessibilità pubblica. Nella sezione di configurazione avanzata, specifica lo storage allocato, il gruppo di sottoreti, la zona di disponibilità, i gruppi di sicurezza VPC e la chiave principale di AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di origine. | Specificare il nome dell'endpoint, il tipo, il motore di origine (Oracle), il nome del server (nome DNS EC2 privato Amazon), la porta, la modalità SSL, il nome utente, la password, il SID, il VPC (specifica il VPC che ha l'istanza di replica) e l'istanza di replica. Per testare la connessione, scegli Run Test, quindi crea l'endpoint. Puoi anche configurare le seguenti impostazioni avanzate: maxFileSize e numberDataType Scale. | AWS SysAdmin, DBA | 
| Crea l'attività di replica AWS DMS. | Specificare il nome dell'attività, l'istanza di replica, gli endpoint di origine e di destinazione e l'istanza di replica. Per il tipo di migrazione, scegli «Migra i dati esistenti e replica le modifiche in corso». Deseleziona la casella di controllo «Avvia attività al momento della creazione». | AWS SysAdmin, DBA | 
| Configura le impostazioni delle attività di replica di AWS DMS. | Per la modalità di preparazione della tabella di destinazione, scegli «Non fare nulla». Interrompi l'attività dopo il completamento del caricamento completo per creare le chiavi primarie. Specificate la modalità LOB limitata o completa e attivate le tabelle di controllo. Facoltativamente, è possibile configurare l'impostazione CommitRate avanzata. | DBA | 
| Configura le mappature delle tabelle. | Nella sezione mappature delle tabelle, crea una regola di inclusione per tutte le tabelle in tutti gli schemi inclusi nella migrazione, quindi crea una regola di esclusione. Aggiungi tre regole di trasformazione per convertire i nomi di schema, tabella e colonna in lettere minuscole e aggiungi tutte le altre regole necessarie per questa migrazione specifica. | DBA | 
| Avvia l’attività . | Avvia l'attività di replica. Accertatevi che il carico sia in esecuzione a pieno carico. Esegui ALTER SYSTEM SWITCH LOGFILE sul database Oracle primario per avviare l'attività. | DBA | 
| Esegui gli script di migrazione intermedia da AWS SCT. | In Amazon RDS for PostgreSQL, esegui questi script: create\$1index.sql e create\$1constraint.sql. | DBA | 
| Riavviare l'attività per continuare l'acquisizione dei dati delle modifiche (CDC). | Nell'istanza DB Amazon RDS for PostgreSQL, esegui VACUUM e riavvia l'attività AWS DMS per applicare le modifiche CDC memorizzate nella cache. | DBA | 

### Passa al database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla i log e le tabelle dei metadati di AWS DMS. | Convalida eventuali errori e correggili se necessario. | DBA | 
| Interrompi tutte le dipendenze Oracle. | Chiudi i listener sul database Oracle ed esegui ALTER SYSTEM SWITCH LOGFILE. Interrompi l'attività AWS DMS quando non mostra alcuna attività. | DBA | 
| Esegui gli script post-migrazione da AWS SCT. | In Amazon RDS for PostgreSQL, esegui questi script: create\$1foreign\$1key\$1constraint.sql e create\$1triggers.sql. | DBA | 
| Completa eventuali passaggi aggiuntivi di Amazon RDS for PostgreSQL. | Incrementa le sequenze in modo che corrispondano a quelle di Oracle, se necessario, esegui VACUUM e ANALYZE e scatta un'istantanea per verificare la conformità. | DBA | 
| Apri le connessioni ad Amazon RDS for PostgreSQL. | Rimuovi i gruppi di sicurezza AWS DMS da Amazon RDS for PostgreSQL, aggiungi gruppi di sicurezza di produzione e indirizza le tue applicazioni verso il nuovo database. | DBA | 
| Pulisci le risorse AWS DMS. | Rimuovi gli endpoint, le attività di replica, le istanze di replica e l'istanza. EC2  | SysAdmin, DBA | 

## Risorse correlate
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-resources"></a>
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Prezzi di Amazon RDS per PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Utilizzo di un database Oracle come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Utilizzo di un database PostgreSQL come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Documentazione Quest SharePlex ](https://support.quest.com/shareplex/9.0.2/technical-documents)

# Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando viste materializzate e AWS DMS
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms"></a>

*Kumar Babu PG e Pragnesh Patel, Amazon Web Services*

## Riepilogo
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-summary"></a>

Questo modello descrive come migrare un database Oracle 8i o 9i legacy locale verso Amazon Relational Database Service (Amazon RDS) per PostgreSQL o Amazon Aurora PostgreSQL Compatible Edition. 

AWS Database Migration Service (AWS DMS) non supporta Oracle 8i o 9i come sorgente, quindi questo modello utilizza un'istanza di database Oracle intermedia compatibile con AWS DMS, come Oracle 10g o 11g. Utilizza anche la funzionalità di viste materializzate per migrare i dati dall'istanza Oracle 8i/9i di origine all'istanza Oracle 10g/11g intermedia.

AWS Schema Conversion Tool (AWS SCT) converte lo schema del database e AWS DMS migra i dati nel database PostgreSQL di destinazione. 

Questo modello aiuta gli utenti che desiderano migrare dai database Oracle legacy con tempi di inattività minimi del database. In questa implementazione, il tempo di inattività sarebbe limitato al tempo necessario per creare o convalidare tutte le chiavi, i trigger e le sequenze esterne sul database di destinazione. 

Il modello utilizza istanze Amazon Elastic Compute Cloud (Amazon EC2) con un database Oracle 10g/11g installato per aiutare AWS DMS a trasmettere i dati. Puoi sospendere temporaneamente la replica in streaming dal database Oracle locale all'istanza Oracle intermedia per consentire ad AWS DMS di recuperare il ritardo sulla convalida dei dati o di utilizzare un altro strumento di convalida dei dati. L'istanza DB PostgreSQL e il database Oracle intermedio avranno gli stessi dati quando AWS DMS avrà terminato la migrazione delle modifiche correnti.

## Prerequisiti e limitazioni
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle 8i o 9i di origine in un data center locale 
+ AWS Direct Connect configurato tra il data center locale e AWS
+ Driver Java Database Connectivity (JDBC) per i connettori AWS SCT installati su un computer locale o sull'istanza EC2 in cui è installato AWS SCT
+ Familiarità con [l'uso di un database Oracle come sorgente AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiarità con [l'uso di un database PostgreSQL come target AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Limitazioni**
+ Il limite di dimensione del database è di 64 TB

**Versioni del prodotto**
+ Oracle 8i o 9i per il database di origine
+ Oracle 10g o 11g per il database intermedio
+ PostgreSQL 10.17 o versione successiva

## Architecture
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle 8i o 9i 

**Stack tecnologico Target**
+ Compatibile con Amazon RDS per PostgreSQL o Aurora PostgreSQL

**Architettura Target**

![\[Architettura per la migrazione da un database Oracle legacy ad Amazon RDS o Aurora\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/8add9b21-1b62-46a2-bb8e-0350f36a924a/images/f34f9b0f-f1da-4c27-a385-71b12d16c375.png)


## Tools (Strumenti)
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) aiuta a migrare i database in modo rapido e sicuro. Il database di origine rimane pienamente operativo durante la migrazione, riducendo al minimo i tempi di inattività delle applicazioni che si basano sul database. AWS DMS può migrare i tuoi dati da e verso i database commerciali e open source più utilizzati. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) converte automaticamente lo schema del database di origine e la maggior parte degli oggetti del codice del database, incluse viste, stored procedure e funzioni, in un formato compatibile con il database di destinazione. Gli oggetti che non possono essere convertiti automaticamente sono contrassegnati in modo chiaro in modo che possano essere convertiti manualmente per completare la migrazione. AWS SCT può anche scansionare il codice sorgente dell'applicazione alla ricerca di istruzioni SQL incorporate e convertirle come parte di un progetto di conversione dello schema del database. Durante questo processo, AWS SCT esegue l'ottimizzazione del codice nativo del cloud convertendo le funzioni legacy di Oracle e SQL Server nelle loro equivalenti AWS, per aiutarti a modernizzare le tue applicazioni durante la migrazione dei database. Una volta completata la conversione dello schema, AWS SCT può aiutare a migrare i dati da una serie di data warehouse ad Amazon Redshift utilizzando agenti di migrazione dei dati integrati.  

## Best practice
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-best-practices"></a>

Per le best practice per l'aggiornamento delle viste materializzate, consulta la seguente documentazione Oracle:
+ [Aggiornamento delle viste materializzate](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG-GUID-64068234-BDB0-4C12-AE70-75571046A586)
+ [Aggiornamento rapido per le viste materializzate](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8361)

## Epiche
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-epics"></a>

### Installa Oracle su un' EC2 istanza e crea viste materializzate
<a name="install-oracle-on-an-ec2-instance-and-create-materialized-views"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la rete per l' EC2 istanza. | Crea il cloud privato virtuale (VPC), le sottoreti, il gateway Internet, le tabelle di routing e i gruppi di sicurezza. | AWS SysAdmin | 
| Crea l' EC2 istanza. | Seleziona l'Amazon Machine Image (AMI) per l' EC2 istanza. Scegli la dimensione dell'istanza e configura i dettagli dell'istanza: il numero di istanze (1), il VPC e la sottorete del passaggio precedente, assegnazione automatica dell'IP pubblico e altre opzioni. Aggiungi spazio di archiviazione, configura i gruppi di sicurezza e avvia l'istanza. Quando richiesto, create e salvate una key pair per il passaggio successivo. | AWS SysAdmin | 
| Installa Oracle sull' EC2 istanza. | Acquisisci le licenze e i file binari Oracle richiesti e installa Oracle 10g o 11g sull'istanza. EC2  | DBA | 
| Configurare la rete Oracle. | Modifica o aggiungi voci `listener.ora` per connetterti al database Oracle 8i/9i di origine locale, quindi crea i collegamenti al database. | DBA | 
| Crea viste materializzate. | Identifica gli oggetti del database da replicare nel database Oracle 8i/9i di origine, quindi crea viste materializzate per tutti gli oggetti utilizzando il database link. | DBA | 
| Implementa script per aggiornare le viste materializzate agli intervalli richiesti. | Sviluppa e distribuisci script per aggiornare le viste materializzate a intervalli richiesti sull'istanza Amazon EC2 Oracle 10g/11g. Utilizza l'opzione di aggiornamento incrementale per aggiornare le viste materializzate. | DBA | 

### Convertire lo schema del database Oracle in PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT. | Crea un nuovo report, quindi connettiti a Oracle come origine e PostgreSQL come destinazione. Nelle impostazioni del progetto, apri la scheda **SQL** Scripting. Cambia lo script SQL di destinazione in **File multipli**. (AWS SCT non supporta i database Oracle 8i/9i, quindi è necessario ripristinare il dump basato solo sullo schema sull'istanza Oracle 10g/11g intermedia e utilizzarlo come sorgente per AWS SCT.) | DBA | 
| Convertire lo schema del database Oracle. | Nella scheda **Azione**, scegli **Genera report**, **Converti schema** e quindi **Salva come SQL**. | DBA | 
| Modifica gli script SQL. | Apporta modifiche in base alle migliori pratiche. Ad esempio, passa a tipi di dati adatti e sviluppa equivalenti PostgreSQL per funzioni specifiche di Oracle. | DBA, devDBA | 

### Crea e configura l'istanza DB di Amazon RDS per ospitare il database convertito
<a name="create-and-configure-the-amazon-rds-db-instance-to-host-the-converted-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS. | Nella console Amazon RDS, crea una nuova istanza DB PostgreSQL. | AWS SysAdmin, DBA | 
| Configura l'istanza DB. | Specificate la versione del motore DB, la classe dell'istanza DB, l'implementazione Multi-AZ, il tipo di storage e lo storage allocato. Immettere l'identificatore dell'istanza DB, un nome utente principale e una password principale. | AWS SysAdmin, DBA | 
| Configura rete e sicurezza. | Specificare il VPC, il gruppo di sottoreti, l'accessibilità pubblica, la preferenza della zona di disponibilità e i gruppi di sicurezza. | DBA, SysAdmin | 
| Configurare le opzioni del database. | Specificare il nome del database, la porta, il gruppo di parametri, la crittografia e la chiave principale. | DBA, AWS SysAdmin | 
| Configurare i backup. | Specificate il periodo di conservazione del backup, la finestra di backup, l'ora di inizio, la durata e se copiare i tag nelle istantanee. | AWS SysAdmin, DBA | 
| Configura le opzioni di monitoraggio. | Abilita o disabilita il monitoraggio avanzato e gli approfondimenti sulle prestazioni. | AWS SysAdmin, DBA | 
| Configura le opzioni di manutenzione. | Specificare l'aggiornamento automatico della versione secondaria, la finestra di manutenzione e il giorno, l'ora e la durata di inizio. | AWS SysAdmin, DBA | 
| Esegui gli script di pre-migrazione da AWS SCT. | Sull'istanza Amazon RDS for PostgreSQL di destinazione, crea lo schema del database utilizzando gli script SQL di AWS SCT con altre modifiche. Queste potrebbero includere l'esecuzione di più script e includere la creazione di utenti, la creazione di database, la creazione di schemi, tabelle, viste, funzioni e altri oggetti di codice. | AWS SysAdmin, DBA | 

### Migra i dati utilizzando AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di replica in AWS DMS. | Completa i campi per il nome, la classe dell'istanza, il VPC (come per l' EC2 istanza), Multi-AZ e l'accessibilità pubblica. Nella sezione di configurazione avanzata, specifica lo storage allocato, il gruppo di sottoreti, la zona di disponibilità, i gruppi di sicurezza VPC e la chiave AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di origine. | Specificare il nome dell'endpoint, il tipo, il motore di origine (Oracle), il nome del server (il nome DNS privato dell' EC2 istanza), la porta, la modalità SSL, il nome utente, la password, il SID, il VPC (specificare il VPC che ha l'istanza di replica) e l'istanza di replica. Per testare la connessione, scegli **Esegui** test, quindi crea l'endpoint. Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize**e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Connetti AWS DMS ad Amazon RDS per PostgreSQL. | Crea un gruppo di sicurezza per la migrazione per le connessioni VPCs, se il tuo database PostgreSQL si trova in un altro VPC. | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di destinazione. | Specificare il nome dell'endpoint, il tipo, il motore di origine (PostgreSQL), il nome del server (endpoint Amazon RDS), la porta, la modalità SSL, il nome utente, la password, il nome del database, il VPC (specifica il VPC che contiene l'istanza di replica) e l'istanza di replica. **Per testare la connessione, scegli Esegui test, quindi crea l'endpoint.** Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize**e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Crea l'attività di replica AWS DMS. | Specificare il nome dell'attività, l'istanza di replica, gli endpoint di origine e di destinazione e l'istanza di replica. Per il tipo di migrazione, scegli **Migra i dati esistenti e replica** le modifiche in corso. **Deseleziona la casella di controllo Avvia attività alla creazione**. | AWS SysAdmin, DBA | 
| Configura le impostazioni delle attività di replica di AWS DMS. | Per la modalità di preparazione della tabella di destinazione, scegli **Non fare nulla**. Interrompi l'operazione al termine del caricamento completo (per creare le chiavi primarie). Specificate la modalità LOB limitata o completa e attivate le tabelle di controllo. Facoltativamente, è possibile configurare l'impostazione **CommitRate**avanzata. | DBA | 
| Configura le mappature delle tabelle. | Nella sezione **Mappature delle tabelle**, crea una regola di inclusione per tutte le tabelle in tutti gli schemi inclusi nella migrazione, quindi crea una regola di esclusione. Aggiungi tre regole di trasformazione per convertire i nomi di schema, tabella e colonna in lettere minuscole e aggiungi tutte le altre regole necessarie per questa migrazione specifica. | DBA | 
| Avvia l’attività . | Avvia l'attività di replica. Accertatevi che il carico sia in esecuzione a pieno carico. Esegui `ALTER SYSTEM SWITCH LOGFILE` sul database Oracle primario per avviare il task. | DBA | 
| Esegui gli script di migrazione intermedia da AWS SCT. | In Amazon RDS for PostgreSQL, esegui i `create_index.sql` seguenti `create_constraint.sql` script: e (se lo schema completo non è stato inizialmente creato). | DBA | 
| Riprendi l'attività per continuare l'acquisizione dei dati delle modifiche (CDC). | Esegui `VACUUM` sull'istanza DB Amazon RDS for PostgreSQL e riavvia l'attività AWS DMS per applicare le modifiche CDC memorizzate nella cache. | DBA | 

### Passa al database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla i log e le tabelle di convalida di AWS DMS. | Controlla e correggi eventuali errori di replica o convalida. | DBA | 
| Smetti di usare il database Oracle locale e le sue dipendenze. | Arresta tutte le dipendenze Oracle, spegni i listener sul database Oracle ed esegui. `ALTER SYSTEM SWITCH LOGFILE` Interrompi l'attività AWS DMS quando non mostra alcuna attività. | DBA | 
| Esegui gli script post-migrazione da AWS SCT. | In Amazon RDS for PostgreSQL, esegui questi script:. `create_foreign_key_constraint.sql and create_triggers.sql` Assicurati che le sequenze siano aggiornate. | DBA | 
| Completa i passaggi aggiuntivi di Amazon RDS for PostgreSQL. | Incrementa le sequenze in modo che corrispondano a quelle di Oracle, se necessario, esegui `VACUUM` e scatta un'istantanea per `ANALYZE` garantire la conformità. | DBA | 
| Apri le connessioni ad Amazon RDS for PostgreSQL. | Rimuovi i gruppi di sicurezza AWS DMS da Amazon RDS for PostgreSQL, aggiungi gruppi di sicurezza di produzione e indirizza le tue applicazioni verso il nuovo database. | DBA | 
| Pulisci gli oggetti AWS DMS. | Rimuovi gli endpoint, le attività di replica, le istanze di replica e l'istanza. EC2  | SysAdmin, DBA | 

## Risorse correlate
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-resources"></a>
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Prezzi di Amazon RDS per PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Utilizzo di un database Oracle come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Utilizzo di un database PostgreSQL come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

# Esegui la migrazione da Oracle su Amazon EC2 ad Amazon RDS for MySQL utilizzando AWS DMS e 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, Nessuno*

## Riepilogo
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

La gestione dei database Oracle sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) richiede risorse e può essere costosa. Lo spostamento di questi database su un'istanza database Amazon Relational Database Service (Amazon RDS) per MySQL semplificherà il tuo lavoro ottimizzando il budget IT complessivo. Amazon RDS for MySQL offre anche funzionalità come Multi-AZ, scalabilità e backup automatici. 

Questo modello illustra la migrazione di un database Oracle di origine su Amazon EC2 verso un'istanza database Amazon RDS for MySQL di destinazione. Utilizza AWS Database Migration Service (AWS DMS) per migrare i dati e AWS Schema Conversion Tool (AWS SCT) per convertire lo schema e gli oggetti del database di origine in un formato compatibile con Amazon RDS for MySQL. 

## Prerequisiti e limitazioni
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database di origine con servizi di istanza e listener in esecuzione, in modalità ARCHIVELOG
+ Un database Amazon RDS for MySQL di destinazione, con spazio di archiviazione sufficiente per la migrazione dei dati

**Limitazioni**
+ AWS DMS non crea uno schema sul database di destinazione; devi farlo. Il nome dello schema deve già esistere per la destinazione. Le tabelle dello schema di origine vengono importate in user/schema, che AWS DMS utilizza per connettersi all'istanza di destinazione. Per migrare più schemi, devi creare più attività di replica. 

**Versioni del prodotto**
+ Tutte le edizioni del database Oracle per le versioni 10.2 e successive, 11g e fino a 12.2 e 18c. Per l'elenco più recente delle versioni supportate, consulta [Utilizzo di un database Oracle come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Utilizzo di un database compatibile con MySQL come destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) per AWS DMS. Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni dei database Oracle supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ AWS DMS supporta le versioni 5.5, 5.6 e 5.7 di MySQL. 

## Architecture
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**
+ Un database Oracle su un'istanza EC2  

**Stack tecnologico Target**
+ Istanza database Amazon RDS per MySQL

**Architettura di migrazione dei dati**

![\[Utilizzo di AWS DMS per migrare da Oracle su Amazon EC2 ad Amazon RDS for MySQL\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/c00f908c-f348-41dd-a31c-3931b990777a.png)


**Architettura di origine e destinazione**

![\[Utilizzo di AWS DMS e AWS SCT per migrare da Oracle su Amazon EC2 ad Amazon RDS for MySQL\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/e7ba7ac0-3094-4142-b355-fb192e242432.png)


## Tools (Strumenti)
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) è un servizio Web che puoi utilizzare per migrare i dati dal tuo database locale, su un'istanza DB Amazon RDS o in un database su un'istanza EC2, verso un database su un servizio AWS come Amazon RDS for MySQL o un'istanza EC2. Puoi anche migrare un database da un servizio AWS a un database locale. È possibile migrare i dati tra motori di database eterogenei o omogenei.
+ **AWS SCT** - [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) rende prevedibili le migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte degli oggetti del codice del database, tra cui viste, stored procedure e funzioni, in un formato compatibile con il database di destinazione. Dopo aver convertito lo schema del database e gli oggetti di codice utilizzando AWS SCT, puoi utilizzare AWS DMS per migrare i dati dal database di origine al database di destinazione per completare i tuoi progetti di migrazione.

## Epiche
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica le versioni e i motori del database di origine e di destinazione. |  | DBA/Sviluppatore | 
| Identifica l'istanza di replica DMS. |  | DBA/Sviluppatore | 
| Identifica i requisiti di archiviazione come il tipo e la capacità di archiviazione. |  | DBA/Sviluppatore | 
| Identifica i requisiti di rete come latenza e larghezza di banda. |  |  DBA/Sviluppatore | 
| Identifica i requisiti hardware per le istanze del server di origine e di destinazione (in base all'elenco di compatibilità e ai requisiti di capacità di Oracle). |  | DBA/Sviluppatore | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA/Sviluppatore | 
| Installa i driver AWS SCT e Oracle. |  | DBA/Sviluppatore | 
| Determina una strategia di backup. |  | DBA/Sviluppatore | 
| Determina i requisiti di disponibilità. |  | DBA/Sviluppatore | 
| Identifica la strategia di migrazione e commutazione delle applicazioni. |  | DBA/Sviluppatore | 
| Seleziona il tipo di istanza DB corretto in base alla capacità, allo storage e alle funzionalità di rete. |  | DBA/Sviluppatore | 

### Configura l'ambiente
<a name="configure-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) L'origine, la destinazione e l'istanza di replica devono trovarsi nello stesso VPC. È inoltre utile averle nella stessa zona di disponibilità. |  | Developer | 
| Crea i gruppi di sicurezza necessari per l'accesso al database. |  |  Developer | 
| Genera e configura una key pair. |  | Developer | 
| Configura sottoreti, zone di disponibilità e blocchi CIDR. |  | Developer | 

### Configura l'origine: database Oracle sull'istanza EC2
<a name="configure-the-source-oracle-database-on-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Oracle Database su Amazon EC2 con gli utenti e i ruoli richiesti. |  | DBA | 
|  Esegui i tre passaggi nella colonna successiva per accedere a Oracle dall'esterno dell'istanza EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.html) | DBA | 
| Quando Amazon EC2 viene riavviato, il DNS pubblico cambia. Assicurati di aggiornare il DNS pubblico di Amazon EC2 in 'tnsnames' e 'listener' o usa un indirizzo IP elastico. |  | DBA/Sviluppatore | 
| Configura il gruppo di sicurezza dell'istanza EC2 in modo che l'istanza di replica e i client richiesti possano accedere al database di origine. |  | DBA/Sviluppatore | 

### Configurare la destinazione: Amazon RDS for MySQL
<a name="configure-the-target-amazon-rds-for-mysql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura e avvia l'istanza DB Amazon RDS for MySQL. |  | Developer | 
| Crea il tablespace necessario nell'istanza database Amazon RDS for MySQL. |  | DBA | 
| Configurare il gruppo di sicurezza in modo che l'istanza di replica e i client richiesti possano accedere al database di destinazione. |  | Developer | 

### Configura AWS SCT e crea uno schema nel database di destinazione
<a name="configure-aws-sct-and-create-a-schema-in-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa i driver AWS SCT e Oracle. |  | Developer | 
| Inserisci i parametri appropriati e connettiti all'origine e alla destinazione. |  | Developer | 
| Genera un rapporto di conversione dello schema. |  | Developer | 
| Se necessario, correggete il codice e lo schema, in particolare tablespace e virgolette, ed eseguiteli sul database di destinazione. |  |  Developer | 
| Convalida lo schema sull'origine rispetto alla destinazione prima di migrare i dati. |  | Developer | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Per l'acquisizione di dati a pieno carico e modifica (CDC) o solo per CDC, è necessario impostare un attributo di connessione aggiuntivo. |  | Developer | 
| All'utente specificato nelle definizioni del database Oracle di origine AWS DMS devono essere concessi tutti i privilegi richiesti. Per un elenco completo, consulta https://docs.aws.amazon.com/dms/ latest/userguide/CHAP \$1source.oracle.html \$1CHAP\$1Source .Oracle.Self-Managed. |  | DBA/Sviluppatore | 
| Abilita la registrazione supplementare nel database di origine. |  | DBA/Sviluppatore | 
| Per l'acquisizione di dati a pieno carico e modifica (CDC) o solo per CDC, abilita la modalità ARCHIVELOG nel database di origine. |  | DBA | 
| Crea endpoint di origine e destinazione e testa le connessioni. |  | Developer | 
| Quando gli endpoint sono collegati correttamente, crea un'attività di replica. |  | Developer | 
| Seleziona solo CDC (o) a pieno carico più CDC nell'attività per acquisire le modifiche per la sola replica continua (o) a pieno carico più le modifiche in corso, rispettivamente. |  | Developer | 
| Esegui l'attività di replica e monitora i CloudWatch log di Amazon. |  |  Developer | 
| Convalida i dati nei database di origine e di destinazione. |  | Developer | 

### Migra la tua applicazione e taglia
<a name="migrate-your-application-and-cut-over"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui i passaggi per la tua strategia di migrazione delle applicazioni. |  | DBA, sviluppatore, proprietario dell'app | 
| Segui i passaggi per la tua strategia di cutover/switch-over delle applicazioni. |  | DBA, sviluppatore, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida lo schema e i dati nei database di origine e di destinazione. |  | DBA/Sviluppatore | 
| Raccogli le metriche in base alle tempistiche necessarie per la migrazione, la percentuale di utilizzo manuale rispetto agli strumenti, i risparmi sui costi, ecc. |  |  DBA/Developer/AppOwner | 
| Esamina i documenti e gli artefatti del progetto. |  | DBA/Developer/AppOwner | 
| Chiudi le risorse AWS temporanee. |  | DBA/Sviluppatore | 
| Chiudi il progetto e fornisci feedback. |  | DBA/Developer/AppOwner | 

## Risorse correlate
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-resources"></a>
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 
+ [Sito web AWS DMS](https://aws.amazon.com/dms/)
+ [Post sul blog di AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/) 
+ [Strategie di migrazione di Oracle Database su AWS](https://d1.awsstatic.com/whitepapers/strategies-for-migrating-oracle-database-to-aws.pdf) 
+ [Amazon RDS per Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/) 
+ [Domande frequenti Oracle](https://aws.amazon.com/oracle/faq/) 
+ [Amazon EC2](https://aws.amazon.com/ec2/) 
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Licenza del software Oracle nell'ambiente di cloud computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

# Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for MariaDB utilizzando AWS DMS e 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*

## Riepilogo
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-summary"></a>

Questo modello illustra i passaggi per la migrazione di un database Oracle su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) a un'istanza Amazon Relational Database Service (Amazon RDS) per MariaDB. Il modello utilizza AWS Data Migration Service (AWS DMS) per la migrazione dei dati e AWS Schema Conversion Tool (AWS SCT) per la conversione dello schema. 

La gestione dei database Oracle sulle EC2 istanze richiede più risorse ed è più costosa rispetto all'utilizzo di un database su Amazon RDS. Amazon RDS semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud. Amazon RDS offre una capacità ridimensionabile e conveniente, automatizzando al contempo attività amministrative dispendiose in termini di tempo come il provisioning dell'hardware, la configurazione del database, l'applicazione di patch e i backup.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database Oracle di origine con servizi di istanza e listener attivi e funzionanti. Questo database deve essere in modalità ARCHIVELOG.
+ Familiarità con [l'utilizzo di un database Oracle come sorgente per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html).
+ Familiarità con [l'uso di Oracle come fonte per AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html).

**Limitazioni**
+ Limite di dimensione del database: 64 TB 

**Versioni del prodotto**
+ Tutte le edizioni del database Oracle per le versioni 10.2 e successive, 11g e fino a 12.2 e 18c. Per l'elenco più recente delle versioni supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e la [tabella delle versioni di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) nella documentazione AWS.
+ Amazon RDS supporta le versioni 10.3, 10.4, 10.5 e 10.6 di MariadB Server Community Server. Per l'elenco più recente delle versioni supportate, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html).

## Architecture
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**
+ Un database Oracle su un'istanza EC2 

**Stack tecnologico Target**
+ Amazon RDS per MariaDB

**Architettura di migrazione dei dati**

![\[Utilizzo di AWS DMS per la migrazione.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/ed191145-e5c2-4d61-8827-31f081450c03.png)


**Architettura Target**

![\[Utilizzo di AWS SCT per la migrazione.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/0171f548-37dd-4110-851c-7e74dfff3732.png)


## Tools (Strumenti)
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) rende prevedibili le migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte degli oggetti del codice del database, tra cui viste, stored procedure e funzioni, in un formato compatibile con il database di destinazione. Dopo aver convertito lo schema del database e gli oggetti di codice utilizzando AWS SCT, puoi utilizzare AWS DMS per migrare i dati dal database di origine al database di destinazione per completare i tuoi progetti di migrazione. Per ulteriori informazioni, consulta [Using Oracle as a Source for AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) nella documentazione di AWS SCT.
+ [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) (AWS DMS) ti aiuta a migrare i database in AWS in modo rapido e sicuro. Il database di origine rimane pienamente operativo durante la migrazione, riducendo al minimo i tempi di inattività delle applicazioni che si basano sul database. AWS DMS può migrare i tuoi dati da e verso i database commerciali e open source più utilizzati. AWS DMS supporta migrazioni omogenee da Oracle a Oracle, nonché migrazioni eterogenee tra diverse piattaforme di database, come Oracle o Microsoft SQL Server verso Amazon Aurora. Per ulteriori informazioni sulla migrazione dei database Oracle, consulta [Using an Oracle Database as a Source for AWS DMS nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) di AWS DMS.

## Epiche
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-epics"></a>

### Piano per la migrazione
<a name="plan-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica le versioni e i motori di database. | Identifica le versioni e i motori del database di origine e di destinazione. | DBA, Sviluppatore | 
| Identifica l'istanza di replica. | Identifica l'istanza di replica AWS DMS. | DBA, sviluppatore | 
| Identifica i requisiti di archiviazione. | Identifica il tipo e la capacità di storage. | DBA, sviluppatore | 
| Identifica i requisiti di rete. | Identifica la latenza e la larghezza di banda della rete. | DBA, sviluppatore | 
| Identifica i requisiti hardware. | Identifica i requisiti hardware per le istanze del server di origine e di destinazione (in base all'elenco di compatibilità e ai requisiti di capacità di Oracle). | DBA, sviluppatore | 
| Identifica i requisiti di sicurezza. | Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. | DBA, Sviluppatore | 
| Installa i driver. | Installa i driver AWS SCT e Oracle più recenti. | DBA, Sviluppatore | 
| Determina una strategia di backup. |  | DBA, Sviluppatore | 
| Determina i requisiti di disponibilità. |  | DBA, Sviluppatore | 
| Scegli una migration/switchover strategia applicativa. |  | DBA, Sviluppatore | 
| Selezionare il tipo di istanza . | Seleziona il tipo di istanza corretto in base alla capacità, allo storage e alle funzionalità di rete. | DBA, Sviluppatore | 

### Configura l'ambiente
<a name="configure-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC))  | Le istanze di origine, destinazione e replica devono trovarsi nello stesso VPC e nella stessa zona di disponibilità (scelta consigliata). | Developer | 
| Crea gruppi di sicurezza. | Creare i gruppi di sicurezza necessari per l'accesso al database. | Developer | 
| Genera una coppia di chiavi. | Genera e configura una key pair. | Developer | 
| Configura altre risorse. | Configura sottoreti, zone di disponibilità e blocchi CIDR. | Developer | 

### Configura la fonte
<a name="configure-the-source"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia l' EC2 istanza. | Per istruzioni, consulta la [ EC2 documentazione di Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | Developer | 
| Installa il database Oracle. | Installa il database Oracle sull' EC2 istanza, con gli utenti e i ruoli richiesti. | DBA | 
| Segui i passaggi indicati nella descrizione del task per accedere a Oracle dall'esterno dell' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.html) | DBA | 
| Aggiorna il DNS EC2 pubblico di Amazon. | Dopo il riavvio dell' EC2 istanza, il DNS pubblico cambia. Assicurati di aggiornare il DNS EC2 pubblico di Amazon in `tnsnames` e`listener`, oppure usa un indirizzo IP elastico. | DBA, Sviluppatore | 
| Configura il gruppo di sicurezza dell' EC2 istanza. | Configura il gruppo di sicurezza dell' EC2 istanza in modo che l'istanza di replica e i client richiesti possano accedere al database di origine. | DBA, Sviluppatore | 

### Configura l'ambiente Amazon RDS for MariaDB di destinazione
<a name="configure-the-target-amazon-rds-for-mariadb-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia l'istanza DB RDS. | Configura e avvia l'istanza DB Amazon RDS for MariaDB. | Developer | 
| Crea tablespace. | Crea tutti i tablespace necessari nel database Amazon RDS MariaDB. | DBA | 
| Configurare un gruppo di sicurezza. | Configura un gruppo di sicurezza in modo che l'istanza di replica e i client richiesti possano accedere al database di destinazione. | Developer | 

### Configurazione di AWS SCT
<a name="configure-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa i driver. | Installa i driver AWS SCT e Oracle più recenti. | Developer | 
| Connect (Connetti). | Inserisci i parametri appropriati e poi connettiti all'origine e alla destinazione. | Developer | 
| Genera un rapporto di conversione dello schema. | Genera un report di conversione dello schema AWS SCT. | Developer | 
| Correggi il codice e lo schema secondo necessità. | Apportate le correzioni necessarie al codice e allo schema (in particolare tablespace e virgolette). | DBA, Sviluppatore | 
| Convalidare lo schema. | Convalida lo schema sull'origine rispetto alla destinazione prima di caricare i dati. | Developer | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Imposta un attributo di connessione. | Per l'acquisizione dei dati a pieno carico e modifica (CDC) o solo per CDC, imposta un attributo di connessione aggiuntivo. Per ulteriori informazioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html). | Developer | 
| Abilita la registrazione supplementare. | Abilita la registrazione supplementare sul database di origine. | DBA, Sviluppatore | 
| Abilita la modalità di registro di archiviazione. | Per il caricamento completo e il CDC (o solo per CDC), abilita la modalità di registro di archiviazione sul database di origine. | DBA | 
| Crea e testa gli endpoint. | Crea endpoint di origine e destinazione e testa le connessioni. Per ulteriori informazioni, consulta la [documentazione di Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | Developer | 
| Crea un'attività di replica. | Quando gli endpoint sono collegati correttamente, crea un'attività di replica. Per ulteriori informazioni, consulta la [documentazione di Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html). | Developer | 
| Scegli il tipo di replica. | Scegli **CDC only** o **Full load plus CDC** nell'attività di acquisizione delle modifiche solo per la replica continua o rispettivamente per le modifiche a pieno carico e in corso. | Developer | 
| Avvia e monitora l'attività. | Avvia l'attività di replica e monitora i CloudWatch log di Amazon. Per ulteriori informazioni, consulta la [documentazione di Amazon DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Developer | 
| Convalida i dati. | Convalida i dati nei database di origine e di destinazione. | Developer | 

### Migra le applicazioni e trasferiscile al database di destinazione
<a name="migrate-applications-and-cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni scelta. |  | DBA, proprietario dell'app, sviluppatore | 
| Segui la cutover/switchover strategia applicativa scelta. |  | DBA, proprietario dell'app, sviluppatore | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida lo schema e i dati. | Assicurati che lo schema e i dati siano convalidati correttamente nell'origine rispetto alla destinazione prima della chiusura del progetto. | DBA, Sviluppatore | 
| Raccogli le metriche. | Raccogli le metriche relative al tempo di migrazione, alla percentuale di attività manuali rispetto a quelle eseguite con l'utensile, al risparmio sui costi e a criteri simili. | DBA, proprietario dell'app, sviluppatore | 
| Consulta la documentazione. | Esamina i documenti e gli artefatti del progetto. | DBA, proprietario dell'app, sviluppatore | 
| Chiudi le risorse. | Chiudi le risorse AWS temporanee. | DBA, Sviluppatore | 
| Chiudi il progetto. | Chiudi il progetto di migrazione e fornisci eventuali feedback. | DBA, proprietario dell'app, sviluppatore | 

## Risorse correlate
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-resources"></a>
+ [Panoramica di MariaDB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)
+ [Dettagli del prodotto Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/features)
+ [Utilizzo di un database Oracle come sorgente per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Strategie per la migrazione dei database Oracle su AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html)
+ [Licenza del software Oracle nell'ambiente di cloud computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)
+ [Amazon RDS per Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/)
+ [Panoramica di AWS DMS](https://aws.amazon.com/dms/)
+ [Post sul blog di AWS DMS](https://aws.amazon.com/blogs/database/tag/dms/)
+ [ EC2 Panoramica di Amazon](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)

# Esegui la migrazione di un database Oracle locale ad Amazon RDS for MySQL utilizzando AWS DMS e 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*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Questo modello illustra la migrazione di un database Oracle locale a un'istanza DB Amazon Relational Database Service (Amazon RDS) per MySQL. Utilizza AWS Database Migration Service (AWS DMS) per migrare i dati e AWS Schema Conversion Tool (AWS SCT) per convertire lo schema e gli oggetti del database di origine in un formato compatibile con Amazon RDS for MySQL. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine in un data center locale 

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ Tutte le edizioni del database Oracle per le versioni 11g (versioni 11.2.0.3.v1 e successive) e fino a 12.2 e 18c. Per l'elenco più recente delle versioni supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni dei database Oracle supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ AWS DMS attualmente supporta le versioni di MySQL 5.5, 5.6 e 5.7. Per l'elenco più recente delle versioni supportate, consulta [Using a MySQL compatible Database as a Target for AWS DMS nella documentazione AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). 

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locale

**Stack tecnologico Target**
+ Istanza database Amazon RDS per MySQL

**Architettura di migrazione dei dati**

![\[Cloud AWS architecture showing data migration from on-premises to RDS via VPC, Internet Gateway, and AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0385e5ad-a1ca-4c29-945b-592321d95f9d/images/c872e033-b13a-4436-b503-0632b5d437ae.png)


 

## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Database Migration Services](https://docs.aws.amazon.com/dms/latest/userguide/) (AWS DMS) ti aiuta a migrare database relazionali, data warehouse, database NoSQL e altri tipi di archivi dati. Puoi utilizzare AWS DMS per migrare i dati nel cloud AWS, tra istanze locali (attraverso la configurazione di un cloud AWS) oppure tra combinazioni di configurazioni locali e cloud.
+ **AWS SCT** - [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) viene utilizzato per convertire lo schema del database da un motore di database a un altro. Il codice personalizzato convertito dallo strumento include viste, procedure memorizzate e funzioni. Qualsiasi codice che lo strumento non è in grado di convertire automaticamente è contrassegnato in modo chiaro in modo che sia possibile convertirlo autonomamente.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione e il motore del database di origine e di destinazione. |  | DBA | 
|  Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, SysAdmin | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin  | 
| Identifica la strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (VPC) e sottoreti. |  | SysAdmin | 
| Crea i gruppi di sicurezza e gli elenchi di controllo degli accessi alla rete (). ACLs |  | SysAdmin | 
| Configura e avvia un'istanza database Amazon RDS. |  | DBA, SysAdmin | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione dello schema del database utilizzando AWS SCT. |  | DBA | 
| Migra i dati utilizzando AWS DMS. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Usa AWS SCT per analizzare e convertire il codice SQL all'interno del codice dell'applicazione. | Per ulteriori informazioni, consulta https://docs.aws.amazon.com/SchemaConversionTool/ latest/userguide/CHAP \$1Converting.app.html. | Proprietario dell'app | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA SysAdmin, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | DBA, SysAdmin | 
| Raccogli le metriche in tempo utile per la migrazione, percentuale di risorse manuali rispetto a quelle relative agli strumenti, risparmi sui costi, ecc. |  | DBA, SysAdmin | 
| Chiudi il progetto e fornisci feedback. |  |  | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-related-resources"></a>

**Riferimenti**
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutorial e video**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Esegui la migrazione di un database Oracle locale ad Amazon RDS for PostgreSQL utilizzando un bystander Oracle e 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*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-summary"></a>

Questo modello descrive come migrare un database Oracle locale verso uno dei seguenti servizi di database AWS compatibili con PostgreSQL con tempi di inattività minimi:
+ Amazon Relational Database Service (Amazon RDS) per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

La soluzione utilizza AWS Database Migration Service (AWS DMS) per migrare i dati, AWS Schema Conversion Tool (AWS SCT) per convertire lo schema del database e un database Oracle bystander per aiutare a gestire la migrazione. In questa implementazione, il tempo di inattività è limitato al tempo necessario per creare o convalidare tutte le chiavi esterne del database. 

La soluzione utilizza anche istanze Amazon Elastic Compute Cloud (Amazon EC2) con un database Oracle bystander per aiutare a controllare il flusso di dati tramite AWS DMS. Puoi sospendere temporaneamente la replica in streaming dal database Oracle locale al bystander Oracle per attivare AWS DMS per recuperare il ritardo sulla convalida dei dati o per utilizzare un altro strumento di convalida dei dati. L'istanza DB Amazon RDS for PostgreSQL o l'istanza DB Aurora compatibile con PostgreSQL e il database bystander avranno gli stessi dati al termine della migrazione delle modifiche correnti da parte di AWS DMS. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine in un data center locale con un database di standby Active Data Guard configurato
+ AWS Direct Connect configurato tra il data center locale e AWS Secrets Manager per l'archiviazione dei segreti del database
+ Driver Java Database Connectivity (JDBC) per connettori AWS SCT, installati su un computer locale o sull'istanza EC2 in cui è installato AWS SCT
+ Familiarità con [l'utilizzo di un database Oracle come fonte per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Familiarità con [l'uso di un database PostgreSQL come destinazione per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) DMS

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ AWS DMS supporta tutte le edizioni del database Oracle per le versioni 10.2 e successive (per le versioni 10.x), 11g e fino a 12.2, 18c e 19c. Per l'elenco più recente delle versioni supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni dei database Oracle supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ AWS DMS supporta le versioni 9.4 e successive di PostgreSQL (per le versioni 9.x), 10.x, 11.x, 12.x e 13.x. Per le informazioni più recenti, consulta [Using a PostgreSQL Database as a Target for AWS DMS nella documentazione AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html).

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Un database Oracle locale
+ Un'EC2 istanza che contiene un astante per il database Oracle

**Stack tecnologico Target**
+ Amazon RDS per PostgreSQL o istanza PostgreSQL Aurora, PostgreSQL 9.3 e versioni successive

**Architettura Target**

Il diagramma seguente mostra un esempio di flusso di lavoro per la migrazione di un database Oracle a un database AWS compatibile con PostgreSQL utilizzando AWS DMS e un bystander Oracle:

![\[Migrazione di un database Oracle locale a PostgreSQL su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-epics"></a>

### Convertire lo schema del database Oracle in PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT. | Crea un nuovo report e connettiti a Oracle come origine e PostgreSQL come destinazione. In **Impostazioni del progetto**, vai alla scheda **SQL** Scripting. Cambia lo **script SQL di destinazione** in **più file**. Questi file verranno utilizzati in seguito e denominati come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Convertire lo schema del database Oracle. | Nella scheda **Azione**, scegli **Genera rapporto**. Quindi, scegli **Converti schema** e scegli **Salva come SQL**. | DBA | 
| Modifica gli script. | **Ad esempio, potresti voler modificare lo script se un numero nello schema di origine è stato convertito in formato numerico in PostgreSQL, ma desideri invece utilizzare BIGINT per prestazioni migliori.** | DBA | 

### Crea e configura l'istanza database Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS. | Nella regione AWS corretta, crea una nuova istanza DB PostgreSQL. Per ulteriori informazioni, consulta [Creazione di un'istanza DB PostgreSQL e connessione a un database su un'istanza DB PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) nella documentazione di Amazon RDS. | AWS SysAdmin, DBA | 
| Configura le specifiche dell'istanza DB. | Specificate la versione del motore DB, la classe dell'istanza DB, l'implementazione Multi-AZ, il tipo di storage e lo storage allocato. Immettere l'identificatore dell'istanza DB, un nome utente principale e una password principale. | AWS SysAdmin, DBA | 
| Configura rete e sicurezza. | Specificare il cloud privato virtuale (VPC), il gruppo di sottoreti, l'accessibilità pubblica, la preferenza della zona di disponibilità e i gruppi di sicurezza. | DBA, SysAdmin | 
| Configurare le opzioni del database. | Specificare il nome del database, la porta, il gruppo di parametri, la crittografia e la chiave KMS. | AWS SysAdmin, DBA | 
| Configurare i backup. | Specificate il periodo di conservazione del backup, la finestra di backup, l'ora di inizio, la durata e se copiare i tag nelle istantanee. | AWS SysAdmin, DBA | 
| Configura le opzioni di monitoraggio. | Attiva o disattiva il monitoraggio avanzato e gli approfondimenti sulle prestazioni. | AWS SysAdmin, DBA | 
| Configura le opzioni di manutenzione. | Specificare l'aggiornamento automatico della versione secondaria, la finestra di manutenzione e il giorno, l'ora e la durata di inizio. | AWS SysAdmin, DBA | 
| Esegui gli script di pre-migrazione da AWS SCT. | Sull'istanza Amazon RDS, esegui i seguenti script generati da AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 

### Configura il bystander Oracle in Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la rete per Amazon EC2. | Crea il nuovo VPC, le sottoreti, il gateway Internet, le tabelle di routing e i gruppi di sicurezza. | AWS SysAdmin | 
| Crea l' EC2 istanza. | Nella regione AWS appropriata, crea una nuova EC2 istanza. Seleziona Amazon Machine Image (AMI), scegli la dimensione dell'istanza e configura i dettagli dell'istanza: numero di istanze (1), VPC e sottorete creati nell'attività precedente, assegnazione automatica dell'IP pubblico e altre opzioni. Aggiungi storage, configura i gruppi di sicurezza e avvia. Quando richiesto, create e salvate una key pair per il passaggio successivo. | AWS SysAdmin | 
| Connect il database di origine Oracle all' EC2 istanza. | Copia l'indirizzo IP IPv4 pubblico e il DNS in un file di testo e connettiti utilizzando SSH nel modo seguente: **ssh -i «your\$1file.pem» EC2-user@<your-IP** - -DNS>. address-or-public | AWS SysAdmin | 
| Configura l'host iniziale per un passante in Amazon. EC2 | Configura chiavi SSH, profilo bash, ORATAB e link simbolici. Crea directory Oracle. | AWS SysAdmin, amministratore Linux | 
| Configura la copia del database per un passante in Amazon EC2 | Usa RMAN per creare una copia del database, abilitare la registrazione supplementare e creare il file di controllo in standby. Al termine della copia, posizionate il database in modalità di ripristino. | AWS SysAdmin, DBA | 
| Configura Oracle Data Guard. | Modifica il file **listener.ora** e avvia il listener. Imposta una nuova destinazione di archiviazione. Metti lo spettatore in modalità di ripristino, sostituisci i file temporanei per evitare future danneggiamenti, installa un crontab se necessario per evitare che la directory di archivio si esaurisca lo spazio e modifica il **manage-trclog-files-oraclefile.cfg** come sorgente e standby. | AWS SysAdmin, DBA | 
| Prepara il database Oracle per sincronizzare la spedizione. | Aggiungi i file di registro in standby e modifica la modalità di ripristino. Modifica il log shipping in **SYNC AFFIRM** sia sulla sorgente primaria che sulla sorgente standby. Passa ai log primari, conferma tramite l'alert log di Amazon EC2 bystander che stai utilizzando i file di log di standby e conferma che il redo stream scorra in SYNC. | AWS SysAdmin, DBA | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di replica in AWS DMS. | Completa i campi per il nome, la classe dell'istanza, il VPC (come l' EC2 istanza Amazon), Multi-AZ e l'accessibilità pubblica. In **Advance**, specifica lo storage allocato, il gruppo di sottoreti, la zona di disponibilità, i gruppi di sicurezza VPC e la chiave AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di origine. | Specificare il nome dell'endpoint, il tipo, il motore di origine (Oracle), il nome del server (nome DNS EC2 privato Amazon), la porta, la modalità SSL, il nome utente, la password, il SID, il VPC (specifica il VPC che ha l'istanza di replica) e l'istanza di replica. Per testare la connessione, scegli **Run** Test, quindi crea l'endpoint. Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize**e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Connetti AWS DMS ad Amazon RDS per PostgreSQL. | Crea un gruppo di sicurezza di migrazione per le connessioni tra. VPCs | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di destinazione. | Specificare il nome dell'endpoint, il tipo, il motore di origine (PostgreSQL), il nome del server (endpoint Amazon RDS), la porta, la modalità SSL, il nome utente, la password, il nome del database, il VPC (specifica il VPC che contiene l'istanza di replica) e l'istanza di replica. **Per testare la connessione, scegli Esegui test, quindi crea l'endpoint.** Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize **e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Crea l'attività di replica AWS DMS. | Specificare il nome dell'attività, l'istanza di replica, gli endpoint di origine e di destinazione e l'istanza di replica. Per il tipo di migrazione, scegli **Migra i dati esistenti e replica** le modifiche in corso. **Deseleziona la casella di controllo Avvia attività alla creazione**. | AWS SysAdmin, DBA | 
| Configura le impostazioni delle attività di replica di AWS DMS. | Per la modalità di preparazione della tabella di destinazione, scegli **Non fare nulla**. Interrompi l'operazione dopo il completamento del caricamento completo (per creare le chiavi primarie). Specificate la modalità LOB limitata o completa e attivate le tabelle di controllo. Facoltativamente, è possibile configurare l'impostazione **CommitRate**avanzata. | DBA | 
| Configura le mappature delle tabelle. | **Nella sezione **Mappature delle tabelle**, crea una regola di **inclusione** per tutte le tabelle in tutti gli schemi inclusi nella migrazione, quindi crea una regola di esclusione.** Aggiungi tre regole di trasformazione per convertire i nomi di schema, tabella e colonna in lettere minuscole e aggiungi tutte le altre regole necessarie per questa migrazione specifica. | DBA | 
| Avvia l’attività . | Avvia l'attività di replica. Accertatevi che il carico sia in esecuzione a pieno carico. Esegui **ALTER SYSTEM SWITCH LOGFILE** sul database Oracle primario per avviare l'attività. | DBA | 
| Esegui gli script di migrazione intermedia da AWS SCT. | In Amazon RDS for PostgreSQL, esegui i seguenti script generati da AWS SCT: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Riavviare l'attività per continuare l'acquisizione dei dati delle modifiche (CDC). | Esegui **VACUUM** sull'istanza DB Amazon RDS for PostgreSQL e riavvia l'attività AWS DMS per applicare le modifiche CDC memorizzate nella cache. | DBA | 

### Passa al database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla i log e le tabelle di convalida di AWS DMS per eventuali errori. | Controlla e correggi eventuali errori di replica o convalida. | DBA | 
| Interrompi tutte le dipendenze Oracle. | Arresta tutte le dipendenze Oracle, spegni i listener sul database Oracle ed esegui **ALTER SYSTEM** SWITCH LOGFILE. Interrompi l'attività AWS DMS quando non mostra alcuna attività. | DBA | 
| Esegui gli script post-migrazione da AWS SCT. | In Amazon RDS for PostgreSQL, esegui i seguenti script generati da AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 
| Completa i passaggi aggiuntivi di Amazon RDS for PostgreSQL. | Incrementa le sequenze in modo che corrispondano a quelle di Oracle, se necessario, esegui **VACUUM** e **ANALYZE** e scatta un'istantanea per garantire la conformità. | DBA | 
| Apri le connessioni ad Amazon RDS for PostgreSQL. | Rimuovi i gruppi di sicurezza AWS DMS da Amazon RDS for PostgreSQL, aggiungi gruppi di sicurezza di produzione e indirizza le tue applicazioni verso il nuovo database. | DBA | 
| Pulisci gli oggetti AWS DMS. | Rimuovi gli endpoint, le attività di replica, le istanze di replica e l'istanza. EC2  | SysAdmin, DBA | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Prezzi di Amazon RDS per PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 

# Esegui la migrazione di un database Oracle ad Amazon Redshift utilizzando AWS DMS e 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*

## Riepilogo
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-summary"></a>

Questo modello fornisce indicazioni per la migrazione dei database Oracle a un data warehouse cloud Amazon Redshift nel cloud Amazon Web Services (AWS) utilizzando AWS Database Migration Service (AWS DMS) e AWS Schema Conversion Tool (AWS SCT). Il modello copre i database Oracle di origine che sono locali o installati su un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Copre anche Amazon Relational Database Service (Amazon RDS) per database Oracle.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-prereqs"></a>

**Prerequisiti**
+ Un database Oracle in esecuzione in un data center locale o nel cloud AWS
+ Un account AWS attivo
+ Familiarità con [l'utilizzo di un database Oracle come fonte per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Familiarità con [l'uso di un database Amazon Redshift come destinazione per](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) AWS DMS
+ Conoscenza di Amazon RDS, Amazon Redshift, le tecnologie di database applicabili e SQL
+ Driver Java Database Connectivity (JDBC) per connettori AWS SCT, su cui è installato AWS SCT

**Versioni del prodotto**
+ Per i database Oracle autogestiti, AWS DMS supporta tutte le edizioni dei database Oracle per le versioni 10.2 e successive (per le versioni 10). *x*), 11g e fino a 12.2, 18c e 19c. Per i database Amazon RDS for Oracle gestiti da AWS, AWS DMS supporta tutte le edizioni dei database Oracle per le versioni 11g (versioni 11.2.0.4 e successive) e fino a 12.2, 18c e 19c. Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.

## Architecture
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**

Una delle seguenti:
+ Un database Oracle locale
+ Un database Oracle su un'istanza EC2 
+ Un'istanza DB Amazon RDS per Oracle

**Stack tecnologico Target**
+ Amazon Redshift

**Architettura di destinazione**

*Da un database Oracle in esecuzione nel cloud AWS ad Amazon Redshift:*

![\[Migrazione di un database Oracle nel cloud AWS verso un data warehouse Amazon Redshift.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/7140e819-81d6-45c4-805b-8e10828076a7.png)


*Da un database Oracle in esecuzione in un data center locale ad Amazon Redshift:*

![\[Migrazione di un database Oracle locale a un data warehouse Amazon Redshift.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/d6654b48-0e1b-4b01-a261-5a640be01fd7.png)


## Tools (Strumenti)
<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) - AWS Data Migration Service (AWS DMS) ti aiuta a migrare i database su AWS in modo rapido e sicuro. Il database di origine rimane pienamente operativo durante la migrazione, riducendo al minimo i tempi di inattività delle applicazioni che si basano sul database. AWS DMS può migrare i dati da e verso i database commerciali e open source più utilizzati. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) - AWS Schema Conversion Tool (AWS SCT) può essere utilizzato per convertire lo schema di database esistente da un motore di database a un altro. Supporta vari motori di database, tra cui Oracle, SQL Server e PostgressSQL, come sorgenti.

## Epiche
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database. | Convalida le versioni del database di origine e di destinazione e assicurati che siano supportate da AWS DMS. Per informazioni sulle versioni supportate di Oracle Database, consulta [Using an Oracle database as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Per informazioni sull'utilizzo di Amazon Redshift come destinazione, consulta [Usare un database Amazon Redshift come destinazione per](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) AWS DMS. | DBA | 
| Crea un VPC e un gruppo di sicurezza. | Nel tuo account AWS, crea un cloud privato virtuale (VPC), se non esiste. Crea un gruppo di sicurezza per il traffico in uscita verso i database di origine e destinazione. Per ulteriori informazioni, consulta la documentazione di [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Amministratore di sistema | 
| Installa AWS SCT. | Scarica e installa la versione più recente di AWS SCT e i driver corrispondenti. Per ulteriori informazioni, consulta [Installazione, verifica e aggiornamento di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html). | DBA | 
| Crea un utente per il task AWS DMS. | Crea un utente AWS DMS nel database di origine e concedigli i privilegi READ. Questo utente verrà utilizzato sia da AWS SCT che da AWS DMS. | DBA | 
| Verifica la connettività DB. | Verifica la connettività all'istanza DB di Oracle. | DBA | 
| Crea un nuovo progetto in AWS SCT. | Apri lo strumento AWS SCT e crea un nuovo progetto. | DBA | 
| Analizza lo schema Oracle da migrare. | Usa AWS SCT per analizzare lo schema da migrare e generare un rapporto di valutazione della migrazione del database. Per ulteriori informazioni, consulta [Creazione di un report di valutazione della migrazione del database](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.Create.html) nella documentazione di AWS SCT. | DBA | 
| Esamina il rapporto di valutazione. | Esamina il rapporto per verificare la fattibilità della migrazione. Alcuni oggetti DB potrebbero richiedere la conversione manuale. Per ulteriori informazioni sul report, consulta [Visualizzazione del rapporto di valutazione](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html) nella documentazione di AWS SCT. | DBA | 

### Preparare il database di destinazione
<a name="prepare-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cluster Amazon Redshift. | Crea un cluster Amazon Redshift all'interno del VPC creato in precedenza. Per ulteriori informazioni, consulta i [cluster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) nella documentazione di Amazon Redshift. | DBA | 
| Crea utenti del database. | Estrai l'elenco di utenti, ruoli e concessioni dal database di origine Oracle. Crea utenti nel database Amazon Redshift di destinazione e applica i ruoli del passaggio precedente. | DBA | 
| Valuta i parametri del database. | Esamina le opzioni del database, i parametri, i file di rete e i link al database dal database di origine Oracle e valuta la loro applicabilità alla destinazione.             | DBA | 
| Applica tutte le impostazioni pertinenti all'obiettivo.  | Per ulteriori informazioni su questo passaggio, consulta il [riferimento alla configurazione](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) nella documentazione di Amazon Redshift. | DBA | 

### Crea oggetti nel database di destinazione
<a name="create-objects-in-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un utente AWS DMS nel database di destinazione. | Crea un utente AWS DMS nel database di destinazione e concedigli i privilegi di lettura e scrittura. Convalida la connettività da AWS SCT. | DBA | 
| Converti lo schema, esamina il report SQL e salva eventuali errori o avvisi. | Per ulteriori informazioni, consulta [Conversione degli schemi di database utilizzando AWS SCT nella documentazione di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html). | DBA | 
| Applica le modifiche allo schema al database di destinazione o salvale come file.sql. | Per istruzioni, consulta [Salvare e applicare lo schema convertito in AWS SCT nella documentazione](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.DW.html#CHAP_Converting.DW.SaveAndApply) di AWS SCT. | DBA | 
| Convalida gli oggetti nel database di destinazione. | Convalida gli oggetti creati nel passaggio precedente nel database di destinazione. Riscrivi o riprogetta gli oggetti che non sono stati convertiti correttamente. | DBA | 
| Disabilita le chiavi esterne e i trigger. | Disabilita qualsiasi chiave esterna e trigger. Questi possono causare problemi di caricamento dei dati durante il processo di caricamento completo durante l'esecuzione di AWS DMS. | DBA | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica di AWS DMS. | Accedi alla Console di gestione AWS e apri la console AWS DMS. Nel pannello di navigazione, scegli Istanze di **replica, **Crea** istanza** di replica. Per istruzioni dettagliate, consulta il [passaggio 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance) in *Getting started with AWS DMS* nella documentazione di AWS DMS. | DBA | 
| Crea endpoint di origine e destinazione. | Crea endpoint di origine e di destinazione, verifica la connessione dall'istanza di replica agli endpoint di origine e di destinazione. Per istruzioni dettagliate, consulta il [passaggio 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints) in *Getting started with AWS DMS* nella documentazione di AWS DMS. | DBA | 
| Creare un'attività di replica. | Creare un'attività di replica e selezionare il metodo di migrazione appropriato. Per istruzioni dettagliate, consulta il [passaggio 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) in *Getting started with AWS DMS* nella documentazione di AWS DMS. | DBA | 
| Avvia la replica dei dati. | Avvia l'attività di replica e monitora i log per eventuali errori. | DBA | 

### Migra la tua applicazione
<a name="migrate-your-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea server di applicazioni. | Crea i nuovi server delle applicazioni su AWS. | Proprietario dell'applicazione | 
| Esegui la migrazione del codice dell'applicazione. | Migrare il codice dell'applicazione sui nuovi server. | Proprietario dell'applicazione | 
| Configurare il server delle applicazioni. | Configura il server delle applicazioni per il database e i driver di destinazione. | Proprietario dell'applicazione | 
| Ottimizza il codice dell'applicazione. | Ottimizza il codice dell'applicazione per il motore di destinazione. | Proprietario dell'applicazione | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida gli utenti. | Nel database Amazon Redshift di destinazione, convalida gli utenti e concedi loro ruoli e privilegi. | DBA | 
| Verifica che l'applicazione sia bloccata. | Assicuratevi che l'applicazione sia bloccata, per evitare ulteriori modifiche. | Proprietario dell'applicazione | 
| Convalida i dati. | Convalida i dati nel database Amazon Redshift di destinazione. | DBA | 
| Abilita chiavi esterne e trigger. | Abilita chiavi esterne e trigger nel database Amazon Redshift di destinazione. | DBA | 
| Connect al nuovo database. | Configura l'applicazione per la connessione al nuovo database Amazon Redshift. | Proprietario dell'applicazione | 
| Eseguire i controlli finali. | Esegui un controllo finale e completo del sistema prima di andare in diretta. | DBA, proprietario dell'applicazione | 
| Trasmetti in diretta. | Trasmetti online il database Amazon Redshift di destinazione. | DBA | 

### Chiudi il progetto di migrazione
<a name="close-the-migration-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. | Chiudi le risorse AWS temporanee come l'istanza di replica AWS DMS e l' EC2 istanza utilizzata per AWS SCT.  | DBA, amministratore di sistema | 
| Rivedi i documenti.  | Rivedi e convalida i documenti del progetto di migrazione.     | DBA, amministratore di sistema | 
| Raccogli le metriche. | Raccogli informazioni sul progetto di migrazione, ad esempio il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle eseguite con l'ausilio di strumenti e il risparmio totale sui costi.  | DBA, amministratore di sistema | 
| Chiudi il progetto. | Chiudi il progetto e fornisci feedback. | DBA, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-resources"></a>

**Riferimenti**
+ [Guida per l'utente di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Guida per l'utente di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Guida introduttiva ad Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

**Tutorial e video**
+ [Scopri di più su AWS SCT e AWS DMS](https://www.youtube.com/watch?v=kJs9U4ys5FE) (presentazione da AWS re:Invent 2019)
+ [Guida introduttiva ad AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)

# Esegui la migrazione di un database Oracle ad Aurora PostgreSQL utilizzando 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*

## Riepilogo
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-summary"></a>

Questo modello descrive come migrare un database Oracle verso l'edizione compatibile con Amazon Aurora PostgreSQL utilizzando AWS Data Migration Service (AWS DMS) e AWS Schema Conversion Tool (AWS SCT). 

Il modello copre i database Oracle di origine locali, i database Oracle installati su istanze Amazon Elastic Compute Cloud (Amazon EC2) e Amazon Relational Database Service (Amazon RDS) per i database Oracle. Il pattern converte questi database in Aurora PostgreSQL compatibili.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database Oracle in un data center locale o nel cloud AWS.
+ Client SQL installati su un computer locale o su un' EC2 istanza.
+ Driver Java Database Connectivity (JDBC) per connettori AWS SCT, installati su un computer locale o su un'istanza EC2 in cui è installato AWS SCT. 

**Limitazioni**
+ Limite di dimensione del database: 128 TB 
+ Se il database di origine supporta un'applicazione commerciale off-the-shelf (COTS) o è specifico del fornitore, potrebbe non essere possibile convertirlo in un altro motore di database. Prima di utilizzare questo pattern, verifica che l'applicazione supporti la compatibilità con Aurora PostgreSQL.  

**Versioni del prodotto**
+ Per i database Oracle autogestiti, AWS DMS supporta tutte le edizioni dei database Oracle per le versioni 10.2 e successive (per le versioni 10.x), 11g e fino a 12.2, 18c e 19c. Per l'elenco più recente delle versioni di database Oracle supportate (sia autogestite che Amazon RDS for Oracle), [consulta Utilizzo di un database Oracle come origine per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS e [Utilizzo di un database PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) come destinazione per AWS DMS. 
+ Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni dei database Oracle supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ Aurora supporta le versioni di PostgreSQL elencate nelle versioni di Amazon [Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) PostgreSQL e nelle versioni del motore.

## Architecture
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**

Una delle seguenti:
+ Un database Oracle locale
+ Un database Oracle su un'istanza EC2  
+ Un'istanza DB Amazon RDS per Oracle

**Stack tecnologico Target**
+ Compatibile con Aurora PostgreSQL 

**Architettura Target**

![\[Architettura di destinazione per la migrazione dei database Oracle verso Aurora PostgreSQL compatibile.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/68beb634-926e-4908-97b1-edcd23e06a2b.png)


**Architettura di migrazione dei dati**
+ Da un database Oracle in esecuzione nel cloud AWS   
![\[Architettura di migrazione dei dati per un database Oracle su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/7fc32019-3db1-485b-93e5-6d5539be048c.png)

   
+ Da un database Oracle in esecuzione in un data center locale  
![\[Architettura di migrazione dei dati per un database Oracle in un data center locale.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/c70d8774-aef7-4414-9766-ce8f25757c4b.png)

## Tools (Strumenti)
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

## Epiche
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare il database di origine. | Per preparare il database di origine, consulta [Using Oracle Database as a source for AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) nella documentazione di AWS SCT. | DBA | 
| Crea un' EC2 istanza per AWS SCT. | Crea e configura un' EC2 istanza per AWS SCT, se necessario. | DBA | 
| Scarica AWS SCT. | Scarica la versione più recente di AWS SCT e i driver associati. Per ulteriori informazioni, consulta [Installazione, verifica e aggiornamento di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) nella documentazione di AWS SCT. | DBA | 
| Aggiungi utenti e autorizzazioni. | Aggiungi e convalida gli utenti e le autorizzazioni prerequisiti nel database di origine. | DBA | 
| Crea un progetto AWS SCT. | Crea un progetto AWS SCT per il carico di lavoro e connettiti al database di origine. Per istruzioni, consulta [Creazione di un progetto AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Project) e [Aggiungere server di database](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers) nella documentazione di AWS SCT. | DBA | 
| Valuta la fattibilità. | Genera un rapporto di valutazione, che riepiloga le azioni da intraprendere per gli schemi che non possono essere convertiti automaticamente e fornisce stime degli sforzi di conversione manuali. Per ulteriori informazioni, consulta [Creazione e revisione del report di valutazione della migrazione del database](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) nella documentazione di AWS SCT. | DBA | 

### Preparare il database di destinazione
<a name="prepare-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza database Amazon RDS di destinazione. | Crea un'istanza database Amazon RDS di destinazione utilizzando Amazon Aurora come motore di database. Per istruzioni, consulta [Creazione di un'istanza database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) nella documentazione di Amazon RDS. | DBA | 
| Estrai utenti, ruoli e autorizzazioni. | Estrai l'elenco di utenti, ruoli e autorizzazioni dal database di origine. | DBA | 
| Mappa gli utenti. | Mappare gli utenti esistenti del database ai nuovi utenti del database. | Proprietario dell'app | 
| Creare utenti. | Crea utenti nel database di destinazione. | DBA, proprietario dell'app | 
| Applica ruoli. | Applica i ruoli del passaggio precedente al database di destinazione. | DBA | 
| Controlla opzioni, parametri, file di rete e collegamenti al database. | Esamina le opzioni, i parametri, i file di rete e i collegamenti al database di origine, quindi valuta la loro applicabilità al database di destinazione. | DBA | 
| Applica le impostazioni. | Applica tutte le impostazioni pertinenti al database di destinazione. | DBA | 

### Trasferisci oggetti
<a name="transfer-objects"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la connettività AWS SCT. | Configura la connettività AWS SCT al database di destinazione. | DBA | 
| Converti lo schema utilizzando AWS SCT. | AWS SCT converte automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Qualsiasi codice che lo strumento non è in grado di convertire automaticamente è chiaramente contrassegnato in modo da poterlo convertire manualmente. | DBA | 
| Esamina il rapporto. | Esamina il report SQL generato e salva eventuali errori e avvisi. | DBA | 
| Applica modifiche automatiche allo schema. | Applica modifiche automatiche allo schema al database di destinazione o salvale come file.sql. | DBA | 
| Convalida gli oggetti. | Verifica che AWS SCT abbia creato gli oggetti sulla destinazione.  | DBA | 
| Gestisci gli elementi che non sono stati convertiti. | Riscrivi, rifiuta o riprogetta manualmente gli elementi che non sono stati convertiti automaticamente. | DBA, proprietario dell'app | 
| Applica le autorizzazioni per ruoli e utenti. | Applica il ruolo generato e le autorizzazioni utente ed esamina le eventuali eccezioni. | DBA | 

### Migrare i dati
<a name="migrate-the-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determina il metodo. | Determina il metodo per la migrazione dei dati. | DBA | 
| Crea un'istanza di replica. | Crea un'istanza di replica dalla console AWS DMS. Per ulteriori informazioni, consulta [Lavorare con un'istanza di replica AWS DMS nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) di AWS DMS. | DBA | 
| Crea gli endpoint di origine e di destinazione. | Per creare endpoint, segui le istruzioni in [Creazione di endpoint di origine e destinazione nella documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | DBA | 
| Creare un'attività di replica. | Per creare un'attività, consulta [Working with AWS DMS tasks](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) nella documentazione di AWS DMS. | DBA | 
| Avvia l'attività di replica e monitora i log. | Per ulteriori informazioni su questo passaggio, consulta [Monitoraggio delle attività di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html) nella documentazione di AWS DMS. | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza e converti gli elementi SQL nel codice dell'applicazione. | Usa AWS SCT per analizzare e convertire gli elementi SQL nel codice dell'applicazione. Quando converti lo schema del database da un motore a un altro, è anche necessario aggiornare il codice SQL nelle applicazioni, per interagire con il nuovo motore di database al posto di quello precedente. Puoi visualizzare, analizzare, modificare e salvare il codice SQL convertito. | Proprietario dell'app | 
| Crea server di applicazioni. | Crea i nuovi server delle applicazioni su AWS. | Proprietario dell'app | 
| Esegui la migrazione del codice dell'applicazione. | Migrare il codice dell'applicazione sui nuovi server. | Proprietario dell'app | 
| Configura i server delle applicazioni. | Configura i server delle applicazioni per il database e i driver di destinazione. | Proprietario dell'app | 
| Correggi il codice. | Correggi qualsiasi codice specifico del motore di database di origine dell'applicazione. | Proprietario dell'app | 
| Ottimizza il codice. | Ottimizza il codice dell'applicazione per il motore di database di destinazione. | Proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferiscilo al database di destinazione. | Esegui il cutover sul nuovo database. | DBA | 
| Blocca l'applicazione. | Blocca l'applicazione da eventuali ulteriori modifiche. | Proprietario dell'app | 
| Convalida le modifiche. | Verifica che tutte le modifiche siano state propagate al database di destinazione. | DBA | 
| Reindirizzamento al database di destinazione. | Indirizza i nuovi server delle applicazioni verso il database di destinazione. | Proprietario dell'app | 
| Controllate tutto. | Esegui un controllo finale e completo del sistema. | Proprietario dell'app | 
| Trasmetti in diretta. | Completa le attività finali di cutover. | Proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse temporanee. | Chiudi le risorse AWS temporanee come l'istanza di replica AWS DMS e l' EC2 istanza utilizzata per AWS SCT. | DBA, proprietario dell'app | 
| Aggiorna il feedback. | Aggiorna il feedback sul processo AWS DMS per i team interni. | DBA, proprietario dell'app | 
| Modifica il processo e i modelli. | Rivedi il processo AWS DMS e, se necessario, migliora il modello. | DBA, proprietario dell'app | 
| Convalida i documenti. | Rivedi e convalida i documenti del progetto. | DBA, proprietario dell'app | 
| Raccogli le metriche. | Raccogli le metriche per valutare i tempi di migrazione, la percentuale di risparmio sui costi manuali rispetto a quelli degli strumenti e così via. | DBA, proprietario dell'app | 
| Chiudi il progetto. | Chiudi il progetto di migrazione e fornisci feedback alle parti interessate. | DBA, proprietario dell'app | 

## Risorse correlate
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-resources"></a>

**Riferimenti**
+ [Utilizzo di un database Oracle come sorgente per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Utilizzo di un database PostgreSQL come destinazione per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Playbook di migrazione da Oracle Database 11g/12c ad Amazon Aurora con compatibilità PostgreSQL (9.6.x)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Playbook sulla migrazione da Oracle Database 19c ad Amazon Aurora con compatibilità PostgreSQL (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Migrazione di un database Amazon RDS for Oracle verso Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/dms/latest/sbs/chap-oracle-postgresql.html)
+ [Servizio di migrazione dei dati AWS](https://aws.amazon.com/dms/)
+ [Strumento di conversione dello schema AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Esegui la migrazione da Oracle ad Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Tutorial e video**
+ [Procedure dettagliate per la migrazione del database Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS Data Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (video)
+ [Migrazione di un database Oracle a PostgreSQL](https://www.youtube.com/watch?v=ibtNkChGFkw) (video)

## Informazioni aggiuntive
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-additional"></a>

.

# Esegui la migrazione dei dati da un database Oracle locale ad Aurora PostgreSQL
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql"></a>

*Michelle Deng e Shunan Xiang, Amazon Web Services*

## Riepilogo
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-summary"></a>

Questo modello fornisce indicazioni per la migrazione dei dati da un database Oracle locale all'edizione compatibile con Amazon Aurora PostgreSQL. Mira a una strategia di migrazione dei dati online con tempi di inattività minimi per database Oracle da più terabyte che contengono tabelle di grandi dimensioni con attività DML (High Data Manipulation Language). Un database di standby Oracle Active Data Guard viene utilizzato come origine per scaricare la migrazione dei dati dal database primario. La replica dal database primario Oracle allo standby può essere sospesa durante il pieno carico per evitare errori ORA-01555. 

Le colonne di tabella nelle chiavi primarie (PKs) o nelle chiavi esterne (FKs), con tipo di dati NUMBER, vengono comunemente utilizzate per memorizzare numeri interi in Oracle. Ti consigliamo di convertirli in INT o BIGINT in PostgreSQL per prestazioni migliori. Puoi utilizzare AWS Schema Conversion Tool (AWS SCT) per modificare la mappatura dei tipi di dati predefinita per le colonne PK e FK. (Per ulteriori informazioni, consulta il post AWS sul blog [Convertire il tipo di dati NUMBER da Oracle a PostgreSQL](https://aws.amazon.com/blogs/database/convert-the-number-data-type-from-oracle-to-postgresql-part-2/).) La migrazione dei dati in questo modello utilizza AWS Database Migration Service (AWS DMS) sia per l'acquisizione dei dati a pieno carico che per quella di modifica (CDC).

Puoi anche utilizzare questo modello per migrare un database Oracle locale su Amazon Relational Database Service (Amazon RDS) per PostgreSQL o un database Oracle ospitato su Amazon Elastic Compute Cloud (Amazon) verso Amazon RDS for PostgreSQL o Aurora PostgreSQL compatibile. EC2

## Prerequisiti e limitazioni
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database di origine Oracle in un data center locale con configurazione in standby Active Data Guard 
+ AWS Direct Connect configurato tra il data center locale e il cloud AWS
+ Familiarità con [l'utilizzo di un database Oracle come fonte per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Familiarità con [l'uso di un database PostgreSQL come destinazione per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) DMS

**Limitazioni**
+ I cluster di database Amazon Aurora possono essere creati con un massimo di 128 TiB di storage. Le istanze di database Amazon RDS for PostgreSQL possono essere create con un massimo di 64 TiB di storage. Per le informazioni più recenti sullo storage, consulta lo [storage e l'affidabilità di Amazon Aurora e lo storage](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html) di [istanze DB Amazon RDS nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) AWS.

**Versioni del prodotto**
+ AWS DMS supporta tutte le edizioni del database Oracle per le versioni 10.2 e successive (per le versioni 10.x), 11g e fino a 12.2, 18c e 19c. Per l'elenco più recente delle versioni supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) nella documentazione AWS. 

## Architecture
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locali con configurazione in standby Oracle Active Data Guard 

**Stack tecnologico Target**
+ Compatibile con Aurora PostgreSQL 

**Architettura di migrazione dei dati**

![\[Migrazione di un database Oracle verso Aurora PostgreSQL compatibile\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/49f9b03e-6d33-4ac0-94ad-d3e6d02e6d63/images/0038a36b-fb7d-4f2d-8376-8d38290b0736.png)


## Tools (Strumenti)
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-tools"></a>
+ **AWS DMS** - [AWS Database Migration Service](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) supporta diversi database di origine e destinazione. Consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) nella documentazione di AWS DMS per un elenco delle versioni ed edizioni del database Oracle di origine e destinazione supportate. Se il database di origine non è supportato da AWS DMS, devi selezionare un altro metodo per la migrazione dei dati nella Fase 6 (nella sezione *Epics*). **Nota importante:** poiché si tratta di una migrazione eterogenea, è necessario innanzitutto verificare se il database supporta un'applicazione commerciale (COTS). off-the-shelf Se l'applicazione è COTS, consulta il fornitore per confermare che la compatibilità con Aurora PostgreSQL sia supportata prima di procedere. Per ulteriori informazioni, consulta le [procedure dettagliate per la Step-by-Step migrazione di AWS DMS nella documentazione](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) AWS.
+ **AWS SCT** - L'[AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.htm) (AWS SCT) facilita le migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Il codice personalizzato convertito dallo strumento include viste, procedure memorizzate e funzioni. Qualsiasi codice che lo strumento non è in grado di convertire automaticamente è contrassegnato in modo chiaro in modo che sia possibile convertirlo autonomamente. 

## Epiche
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database di origine e di destinazione. |  | DBA | 
| Installa AWS SCT e i driver. |  | DBA | 
| Aggiungi e convalida gli utenti dei prerequisiti AWS SCT e il database grants-source. |  | DBA | 
| Crea un progetto AWS SCT per il carico di lavoro e connettiti al database di origine. |  | DBA | 
| Genera un rapporto di valutazione e valuta la fattibilità. |  | DBA, proprietario dell'app | 

### Preparare il database di destinazione
<a name="prepare-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un database di destinazione compatibile con Aurora PostgreSQL. |  | DBA | 
| Estrai l'elenco degli utenti, dei ruoli e delle concessioni dal database di origine. |  | DBA | 
| Associa gli utenti esistenti del database ai nuovi utenti del database. |  | Proprietario dell'app | 
| Crea utenti nel database di destinazione. |  | DBA | 
| Applica i ruoli del passaggio precedente al database Aurora di destinazione compatibile con PostgreSQL. |  | DBA | 
| Esamina le opzioni del database, i parametri, i file di rete e i collegamenti al database dal database di origine e valuta la loro applicabilità al database di destinazione. |  | DBA, proprietario dell'app | 
| Applica tutte le impostazioni pertinenti al database di destinazione. |  | DBA | 

### Prepararsi per la conversione del codice oggetto del database
<a name="prepare-for-database-object-code-conversion"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la connettività AWS SCT al database di destinazione. |  | DBA | 
| Converti lo schema in AWS SCT e salva il codice convertito come file.sql. |  | DBA, proprietario dell'app | 
| Converti manualmente tutti gli oggetti del database che non sono stati convertiti automaticamente. |  | DBA, proprietario dell'app | 
| Ottimizza la conversione del codice del database. |  | DBA, proprietario dell'app | 
| Separa il file.sql in più file.sql in base al tipo di oggetto. |  | DBA, proprietario dell'app | 
| Convalida gli script SQL nel database di destinazione. |  | DBA, proprietario dell'app | 

### Preparati per la migrazione dei dati
<a name="prepare-for-data-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica di AWS DMS. |  | DBA | 
| Crea gli endpoint di origine e di destinazione.  | Se il tipo di dati di PKs and FKs viene convertito da NUMBER in Oracle a BIGINT in PostgreSQL, valuta la possibilità di specificare l'attributo di connessione `numberDataTypeScale=-2` quando crei l'endpoint di origine. | DBA | 

### Migrazione dei dati: a pieno carico
<a name="migrate-data-ndash-full-load"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea lo schema e le tabelle nel database di destinazione. |  | DBA | 
|  Crea attività a pieno carico di AWS DMS raggruppando tabelle o suddividendo una tabella di grandi dimensioni in base alle dimensioni della tabella. |  | DBA | 
| Arresta le applicazioni sui database Oracle di origine per un breve periodo. |  | Proprietario dell'app | 
| Verificare che il database di standby Oracle sia sincrono con il database primario e interrompere la replica dal database primario al database di standby. |  | DBA, proprietario dell'app | 
| Avvia le applicazioni sul database Oracle di origine. |  | Proprietario dell'app | 
| Avvia le attività di caricamento completo di AWS DMS in parallelo dal database di standby Oracle al database Aurora compatibile con PostgreSQL. |  | DBA | 
| Crea PKs indici secondari dopo il completamento del caricamento completo. |  | DBA | 
| Convalida i dati. |  | DBA | 

### Migrazione dei dati — CDC
<a name="migrate-data-ndash-cdc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea attività di replica continue di AWS DMS specificando un'ora di inizio CDC o un numero di modifica del sistema (SCN) personalizzato quando lo standby di Oracle era sincronizzato con il database primario e prima che le applicazioni fossero riavviate nell'attività precedente. |  | DBA | 
| Avvia le attività di AWS DMS in parallelo per replicare le modifiche in corso dal database di standby Oracle al database Aurora compatibile con PostgreSQL. |  | DBA | 
| Ristabilisci la replica dal database primario Oracle al database di standby. |  | DBA | 
| Monitora i log e arresta le applicazioni sul database Oracle quando il database di destinazione Aurora PostgreSQL compatibile è quasi sincrono con il database Oracle di origine. |  | DBA, proprietario dell'app | 
| Interrompi le attività di AWS DMS quando la destinazione è completamente sincronizzata con il database Oracle di origine. |  | DBA | 
| Crea FKs e convalida i dati nel database di destinazione. |  | DBA | 
| Crea funzioni, viste, trigger, sequenze e altri tipi di oggetti nel database di destinazione. |  | DBA | 
| Applica le concessioni di ruolo nel database di destinazione. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Usa AWS SCT per analizzare e convertire le istruzioni SQL all'interno del codice dell'applicazione. |  | Proprietario dell'app | 
| Crea nuovi server di applicazioni su AWS. |  | Proprietario dell'app | 
| Esegui la migrazione del codice dell'applicazione sui nuovi server. |  | Proprietario dell'app | 
| Configura il server delle applicazioni per il database e i driver di destinazione. |  | Proprietario dell'app | 
| Corregge qualsiasi codice specifico del motore di database di origine dell'applicazione. |  | Proprietario dell'app | 
| Ottimizza il codice dell'applicazione per il database di destinazione. |  | Proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Indirizza il nuovo server delle applicazioni verso il database di destinazione. |  | DBA, proprietario dell'app | 
| Esegui controlli di integrità. |  | DBA, proprietario dell'app | 
| Trasmetti in diretta. |  | DBA, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app | 
| Raccogli le metriche relative al tempo di migrazione, alla percentuale di utilizzo manuale rispetto a quello degli strumenti, al risparmio sui costi e a dati simili. |  | DBA, proprietario dell'app | 
| Chiudi il progetto e fornisci feedback. |  | DBA, proprietario dell'app | 

## Risorse correlate
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-resources"></a>

**Riferimenti**
+ [Compatibile con Oracle Database ad Aurora PostgreSQL: Migration Playbook](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Migrazione di un Amazon RDS per Oracle Database su Amazon Aurora MySQL](https://docs.aws.amazon.com/dms/latest/sbs/chap-rdsoracle2aurora.html)
+ [Sito web AWS DMS](https://aws.amazon.com/dms/)
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Sito web AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Esegui la migrazione da Oracle ad Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

**Tutorial**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/) 
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [ Step-by-StepProcedure dettagliate di AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/dms-sbs-welcome.html)

# Esegui la migrazione da SAP ASE ad Amazon RDS per SQL Server utilizzando AWS DMS
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms"></a>

*Amit Kumar, Amazon Web Services*

## Riepilogo
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un database SAP Adaptive Server Enterprise (ASE) a un'istanza DB Amazon Relational Database Service (Amazon RDS) che esegue Microsoft SQL Server. Il database di origine può essere collocato in un data center locale o su un'istanza Amazon Elastic Compute Cloud EC2 (Amazon). Il modello utilizza AWS Database Migration Service (AWS DMS) per migrare i dati e (facoltativamente) strumenti di ingegneria del software assistita da computer (CASE) per convertire lo schema del database. 

## Prerequisiti e limitazioni
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database SAP ASE in un data center locale o su un'istanza EC2 
+ Un database Amazon RDS for SQL Server di destinazione attivo e funzionante

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ Solo versione SAP ASE 15.7 o 16.x. Per le informazioni più recenti, consulta [Using an SAP Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html).
+ Per i database di destinazione Amazon RDS, AWS DMS supporta [le versioni di Microsoft SQL Server su Amazon RDS per le](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) edizioni Enterprise, Standard, Web ed Express. Per le informazioni più recenti sulle versioni supportate, consulta la [documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.  

## Architecture
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Un database SAP ASE locale o su un'istanza Amazon EC2 

**Stack tecnologico Target**
+ Un'istanza DB di Amazon RDS per SQL Server

**Architettura di origine e destinazione**

*Da un database SAP ASE su Amazon EC2 a un'istanza DB Amazon RDS for SQL Server:*

![\[Architettura di destinazione per SAP ASE su Amazon EC2 su Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/957bdcf0-ab58-4b6d-a71a-d0ecbc31822c.png)


*Da un database SAP ASE locale a un'istanza DB Amazon RDS for SQL Server:*

![\[Architettura di destinazione per SAP ASE su Amazon RDS for SQL Server in locale\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/65aab2f5-0e63-4c34-97e2-cd4ac23751a4.png)


## Tools (Strumenti)
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-tools"></a>
+ [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) è un servizio Web che puoi utilizzare per migrare i dati dal tuo database locale, su un'istanza DB Amazon RDS o in un database su un' EC2 istanza, verso un database su un servizio AWS come Amazon RDS for SQL Server o un'istanza. EC2 Puoi anche migrare un database da un servizio AWS a un database locale. È possibile migrare i dati tra motori di database eterogenei o omogenei.
+ [https://erwin.com/products/erwin-data-modeler/](https://erwin.com/products/erwin-data-modeler/)

## Epiche
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin | 
| Identifica la strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (VPC) e sottoreti. |  | SysAdmin | 
| Crea gruppi di sicurezza e liste di controllo degli accessi alla rete (). ACLs |  | SysAdmin | 
| Configura e avvia un'istanza database Amazon RDS. |  | SysAdmin | 

### Migrazione dei dati - opzione 1
<a name="migrate-data---option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione manuale dello schema del database o utilizza uno strumento CASE come erwin Data Modeler o SAP. PowerDesigner |  | DBA | 

### Migrazione dei dati - opzione 2
<a name="migrate-data---option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra i dati con AWS DMS. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA SysAdmin, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell' SysAdminapp | 
| Raccogli parametri come il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle automatizzate e il risparmio sui costi. |  | DBA, proprietario dell'app SysAdmin | 
| Chiudi il progetto e fornisci feedback. |  | DBA SysAdmin, proprietario dell'app | 

## Risorse correlate
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-resources"></a>

**Riferimenti**
+ [Sito web AWS DMS](https://aws.amazon.com/dms/)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Utilizzo di un database SAP ASE come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)
+ [Limitazioni per RDS Custom for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html)

**Tutorial e video**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando AWS DMS
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms"></a>

*Marcelo Fernandes, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando AWS Data Migration Service (AWS DMS). 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Microsoft SQL Server di origine in un data center locale
+ [Prerequisiti completati per l'utilizzo di un database Amazon Redshift come destinazione per AWS DMS, come discusso nella documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html#CHAP_Target.Redshift.Prerequisites)

**Versioni del prodotto**
+ Edizioni SQL Server 2005-2019, Enterprise, Standard, Workgroup, Developer e Web. Per l'elenco più recente delle versioni supportate, consulta [Using a Microsoft SQL Server Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) nella documentazione AWS. 

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Un database Microsoft SQL Server locale 

**Stack tecnologico Target**
+ Amazon Redshift

**Architettura di migrazione dei dati**

 

![\[Architettura per la migrazione di un database SQL Server locale su Amazon Redshift utilizzando AWS DMS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/65b2be1b-740e-4d4d-99a8-f77c4ea6553d/images/3a094bf2-be31-4d83-8dd2-9dc078321055.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) è un servizio di migrazione dei dati che supporta diversi tipi di database di origine e destinazione. Per informazioni sulle versioni e le edizioni del database Microsoft SQL Server supportate per l'uso con AWS DMS, consulta Using a [Microsoft SQL Server Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) nella documentazione di AWS DMS. Se AWS DMS non supporta il tuo database di origine, devi selezionare un metodo alternativo per la migrazione dei dati.

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione e il motore del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, amministratore di sistema | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, amministratore di sistema | 
| Identifica la strategia di migrazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) | Per ulteriori informazioni, consulta [Lavorare con un'istanza DB in un VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) nella documentazione AWS. | Amministratore di sistema | 
| Crea gruppi di sicurezza. |  | Amministratore di sistema | 
| Configura e avvia un cluster Amazon Redshift. | Per ulteriori informazioni, consulta [Creare un cluster Amazon Redshift di esempio nella documentazione](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html) di Amazon Redshift. | DBA, amministratore di sistema | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione dei dati dal database Microsoft SQL Server utilizzando AWS DMS. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse temporanee. |  | DBA, amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli parametri come il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle automatizzate e il risparmio sui costi. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto e fornisci feedback. |  | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-resources"></a>

**Riferimenti**
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/index.html)
+ [Documentazione Amazon Redshift](https://docs.aws.amazon.com/redshift/)
+ [Prezzi di Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutorial e video**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Utilizzo di un database Amazon Redshift come destinazione per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando gli agenti di estrazione dati 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*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-summary"></a>

Questo modello descrive i passaggi per la migrazione di un database di origine Microsoft SQL Server locale a un database di destinazione Amazon Redshift utilizzando gli agenti di estrazione dei dati AWS Schema Conversion Tool (AWS SCT). Un agente è un programma esterno che è integrato con AWS SCT ma esegue la trasformazione dei dati altrove e interagisce con altri servizi AWS per tuo conto.   

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-prereqs"></a>

**Prerequisiti**
+ Un database di origine Microsoft SQL Server utilizzato per il carico di lavoro del data warehouse in un data center locale
+ Un account AWS attivo

**Versioni del prodotto**
+ Microsoft SQL Server versione 2008 o successiva. Per l'elenco più recente delle versioni supportate, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-architecture"></a>

****stack tecnologico Source****
+ Un database Microsoft SQL Server locale

****stack tecnologico Target****
+ Amazon Redshift

**Architettura di migrazione dei dati**

![\[Migrazione di un database SQL Server su Amazon Redshift utilizzando agenti di estrazione dati AWS SCT.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6975f67a-0705-47b4-a1b8-90aaa2597a04/images/dbff958b-7601-442e-9e23-4d07edd0ccfd.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-tools"></a>
+ [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) gestisce migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Quando i database di origine e di destinazione sono molto diversi, puoi utilizzare un agente AWS SCT per eseguire ulteriori trasformazioni dei dati. Per ulteriori informazioni, consulta [Migrazione dei dati da un data warehouse locale ad Amazon Redshift nella documentazione AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.dw.html).

## Best practice
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-best-practices"></a>
+ [Le migliori pratiche per AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_BestPractices.html)
+ [Best practice per Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/best-practices.html)

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni e i motori del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, SysAdmin | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto (capacità, funzionalità di archiviazione, funzionalità di rete). |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin | 
| Scegli una strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

### Configurare l'infrastruttura
<a name="configure-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (VPC) e sottoreti. |  | SysAdmin | 
| Crea gruppi di sicurezza. |  | SysAdmin | 
| Configura e avvia il cluster Amazon Redshift. |  | SysAdmin | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra i dati utilizzando gli agenti di estrazione dati AWS SCT. |  | DBA | 

### Migrazione delle applicazioni
<a name="migrate-applications"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni scelta. |  | DBA SysAdmin, proprietario dell'app | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA SysAdmin, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell' SysAdminapp | 
| Raccogli parametri come il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle automatizzate e il risparmio sui costi. |  | DBA, proprietario dell'app SysAdmin | 
| Chiudi il progetto e fornisci qualsiasi feedback. |  | DBA SysAdmin, proprietario dell'app | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-resources"></a>

**Riferimenti**
+ [Guida per l'utente di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Utilizzo di agenti di estrazione dati](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Prezzi di Amazon Redshift](https://aws.amazon.com/redshift/pricing/)

**Tutorial e video**
+ [Guida introduttiva allo Schema Conversion Tool di AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)
+ [Nozioni di base su Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

# Migrazione delle applicazioni legacy da Oracle Pro\$1C a ECPG
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg"></a>

*Sai Parthasaradhi e Mahesh Balumuri, Amazon Web Services*

## Riepilogo
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-summary"></a>

La maggior parte delle applicazioni legacy con codice SQL incorporato utilizza il precompilatore Oracle Pro\$1C per accedere al database. Quando esegui la migrazione di questi database Oracle ad Amazon Relational Database Service (Amazon RDS) per PostgreSQL o Amazon Aurora PostgreSQL Compatible Edition, devi convertire il codice dell'applicazione in un formato compatibile con il precompilatore di PostgreSQL, chiamato ECPG. Questo modello descrive come convertire il codice Oracle Pro\$1C nel suo equivalente in PostgreSQL ECPG. 

[Per ulteriori informazioni su Pro\$1C, consulta la documentazione Oracle.](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) Per una breve introduzione a ECPG, vedere la sezione Informazioni [aggiuntive](#migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional).

## Prerequisiti e limitazioni
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database compatibile con Amazon RDS per PostgreSQL o Aurora PostgreSQL
+ Un database Oracle in esecuzione in locale

## Tools (Strumenti)
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-tools"></a>
+ I pacchetti PostgreSQL elencati nella sezione successiva.
+ [AWS CLI — L'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)AWS Command Line Interface (AWS CLI) è uno strumento open source per interagire con i servizi AWS tramite comandi nella shell della riga di comando. Con una configurazione minima, puoi eseguire comandi AWS CLI che implementano funzionalità equivalenti a quelle fornite dalla Console di gestione AWS basata su browser da un prompt dei comandi.

## Epiche
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-epics"></a>

### Imposta l'ambiente di compilazione su CentOS o RHEL
<a name="set-the-build-environment-on-centos-or-rhel"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa i pacchetti PostgreSQL. | Installa i pacchetti PostgreSQL richiesti utilizzando i seguenti comandi.<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> | Sviluppatore di app, ingegnere DevOps  | 
| Installa i file di intestazione e le librerie. | Installa il `postgresql12-devel` pacchetto, che contiene i file di intestazione e le librerie, utilizzando i seguenti comandi. Installa il pacchetto sia nell'ambiente di sviluppo che in quello di runtime per evitare errori nell'ambiente di runtime.<pre>dnf -y install postgresql12-devel<br />yum install ncompress zip ghostscript jq unzip wget git -y</pre>Solo per l'ambiente di sviluppo, esegui anche i seguenti comandi.<pre>yum install zlib-devel make -y<br />ln -s /usr/pgsql-12/bin/ecpg /usr/bin/</pre> | Sviluppatore di app, DevOps ingegnere | 
| Configura la variabile del percorso di ambiente. | Imposta il percorso dell'ambiente per le librerie client PostgreSQL.<pre>export PATH=$PATH:/usr/pgsql-12/bin</pre> | Sviluppatore di app, ingegnere DevOps  | 
| Installa software aggiuntivo se necessario. | Se necessario, installare **pgLoader** in sostituzione di **SQL\$1Loader in 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 state chiamando delle applicazioni Java dai moduli Pro\$1C, installate Java.<pre>yum install java -y</pre>Installa **ant** per compilare il codice Java.<pre>yum install ant -y</pre> | Sviluppatore di app, DevOps ingegnere | 
| Installare l'interfaccia a riga di comando di AWS. | Installa l'AWS CLI per eseguire comandi per interagire con servizi AWS come AWS Secrets Manager e Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dalle tue applicazioni.<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> | Sviluppatore di app, ingegnere DevOps  | 
| Identifica i programmi da convertire. | Identifica le applicazioni che desideri convertire da Pro\$1C a ECPG. | Sviluppatore di app, proprietario dell'app | 

### Converti il codice Pro\$1C in ECPG
<a name="convert-pro-c-code-to-ecpg"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rimuovi le intestazioni indesiderate. | Rimuovi le `include ` intestazioni che non sono richieste in PostgreSQL, ad esempio, e. `oci.h` `oratypes` `sqlda` | Proprietario dell'app, sviluppatore dell'app | 
| Aggiorna le dichiarazioni delle variabili. | Aggiungi `EXEC SQL` istruzioni per tutte le dichiarazioni di variabili utilizzate come variabili host.Rimuovi `EXEC SQL VAR` le dichiarazioni come le seguenti dall'applicazione.<pre>EXEC SQL VAR query IS STRING(2048);</pre> | Sviluppatore di app, proprietario dell'app | 
| Aggiorna la funzionalità ROWNUM. | La `ROWNUM` funzione non è disponibile in PostgreSQL. Sostituiscila con la funzione `ROW_NUMBER` window nelle query SQL.Codice 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>Codice 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> | Sviluppatore di app, proprietario dell'app | 
| Aggiorna i parametri della funzione per utilizzare le variabili alias. | In PostgreSQL, i parametri delle funzioni non possono essere usati come variabili host. Sovrascrivili utilizzando una variabile alias.Codice 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>Codice 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> | Sviluppatore di app, proprietario dell'app | 
| Aggiorna i tipi di struttura. | Definisci `struct` i tipi `EXEC SQL BEGIN` e `END` i blocchi specificando `typedef` se le variabili `struct` di tipo vengono utilizzate come variabili host. Se i `struct` tipi sono definiti nei file header (`.h`), includi i file con le istruzioni `EXEC SQL` include.Codice Pro\$1C:File di intestazione () `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>Codice ECPG:File di intestazione () `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>File 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>File 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> | Sviluppatore di app, proprietario dell'app | 
| Modifica la logica da recuperare dai cursori. | Per recuperare più righe dai cursori utilizzando variabili di matrice, modificate il codice da utilizzare. `FETCH FORWARD`Codice Pro\$1C:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL FETCH filename_cursor into :aPoeFiles;</pre>Codice 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> | Sviluppatore di app, proprietario dell'app | 
| Modifica le chiamate ai pacchetti che non hanno valori restituiti. | Le funzioni dei pacchetti Oracle che non hanno valori restituiti devono essere chiamate con una variabile indicatore. Se l'applicazione include più funzioni con lo stesso nome o se le funzioni di tipo sconosciuto generano errori di runtime, digita i valori nei tipi di dati.Codice 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>Codice 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> | Sviluppatore di app, proprietario dell'app | 
| Riscrivi le variabili SQL\$1CURSOR. | Riscrivi la variabile e la sua implementazione. `SQL_CURSOR`Codice 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>Codice 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> | Sviluppatore di app, proprietario dell'app | 
| Applica modelli di migrazione comuni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-legacy-applications-from-oracle-pro-c-to-ecpg.html) | Sviluppatore di app, proprietario dell'app | 
| Abilita il debug, se necessario.  | Per eseguire il programma ECPG in modalità debug, aggiungete il seguente comando all'interno del blocco funzionale principale.<pre>ECPGdebug(1, stderr); </pre> | Sviluppatore dell'app, proprietario dell'app | 

### Compila programmi ECPG
<a name="compile-ecpg-programs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un file eseguibile per ECPG. | Se disponete di un file sorgente SQL C incorporato denominato`prog1.pgc`, potete creare un programma eseguibile utilizzando la seguente sequenza di comandi.<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> | Sviluppatore di app, proprietario dell'app | 
| Crea un make file per la compilazione. | Create un make file per compilare il programma ECPG, come mostrato nel seguente file di esempio.<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> | Sviluppatore di app, proprietario dell'app | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Test del codice. | Verifica il codice dell'applicazione convertito per assicurarti che funzioni correttamente. | Sviluppatore di app, proprietario dell'app, tecnico di test | 

## Risorse correlate
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-resources"></a>
+ [ECPG - SQL integrato in C](https://www.postgresql.org/docs/current/static/ecpg.html) (documentazione PostgreSQL)
+ [Gestione degli errori](https://www.postgresql.org/docs/12/ecpg-errors.html) (documentazione PostgreSQL)
+ [Perché utilizzare il precompilatore Oracle Pro\$1C/C\$1\$1](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) (documentazione Oracle)

## Informazioni aggiuntive
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional"></a>

PostgreSQL ha un precompilatore SQL incorporato, ECPG, che è equivalente al precompilatore Oracle Pro\$1C. ECPG converte i programmi C che hanno istruzioni SQL incorporate in codice C standard sostituendo le chiamate SQL con chiamate a funzioni speciali. I file di output possono quindi essere elaborati con qualsiasi catena di strumenti del compilatore C.

**File di input e output**

ECPG converte ogni file di input specificato nella riga di comando nel file di output C corrispondente. Se il nome di un file di input non ha un'estensione di file, viene utilizzato l'estensione.pgc. L'estensione del file viene sostituita da `.c` per costruire il nome del file di output. Tuttavia, è possibile sovrascrivere il nome del file di output predefinito utilizzando l'`-o`opzione.

Se utilizzate un trattino (`-`) come nome del file di input, ECPG legge il programma dallo standard input e scrive sullo standard output, a meno che non lo sovrascriviate utilizzando l'opzione. `-o`

**File di intestazione**

Quando il compilatore PostgreSQL compila i file di codice C preelaborati, cerca i file di intestazione ECPG nella directory PostgreSQL. `include` Pertanto, potrebbe essere necessario utilizzare l'`-I`opzione per indirizzare il compilatore alla directory corretta (ad esempio,). `-I/usr/local/pgsql/include`

**Libraries** (Librerie)

I programmi che utilizzano codice C con SQL incorporato devono essere collegati alla `libecpg` libreria. Ad esempio, è possibile utilizzare le opzioni ` -L/usr/local/pgsql/lib -lecpg` del linker.

Le applicazioni ECPG convertite richiamano le funzioni della `libpq` libreria tramite la libreria SQL incorporata (`ecpglib`) e comunicano con il server PostgreSQL utilizzando il protocollo standard. frontend/backend 

# Migra le colonne virtuali generate da Oracle a PostgreSQL
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi, Rajesh Madiwale e Ramesh Pathuri, Amazon Web Services*

## Riepilogo
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-summary"></a>

Nella versione 11 e precedenti, PostgreSQL non fornisce una funzionalità direttamente equivalente a una colonna virtuale Oracle. La gestione delle colonne virtuali generate durante la migrazione da Oracle Database a PostgreSQL versione 11 o precedente è difficile per due motivi: 
+ Le colonne virtuali non sono visibili durante la migrazione.
+ PostgreSQL non supporta `generate` l'espressione prima della versione 12.

Tuttavia, esistono soluzioni alternative per emulare funzionalità simili. Quando utilizzi AWS Database Migration Service (AWS DMS) per migrare i dati da Oracle Database a PostgreSQL versione 11 e precedenti, puoi utilizzare le funzioni di attivazione per popolare i valori in colonne virtuali generate. Questo modello fornisce esempi di codice Oracle Database e PostgreSQL che è possibile utilizzare per questo scopo. Su AWS, puoi utilizzare Amazon Relational Database Service (Amazon RDS) per PostgreSQL o Amazon Aurora PostgreSQL Compatible Edition per il tuo database PostgreSQL.

A partire dalla versione 12 di PostgreSQL, sono supportate le colonne generate. Le colonne generate possono essere calcolate istantaneamente in base ai valori di altre colonne oppure calcolate e archiviate. [Le colonne generate da PostgreSQL sono simili alle colonne virtuali](https://www.postgresql.org/docs/12/ddl-generated-columns.html) Oracle.

## Prerequisiti e limitazioni
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine 
+ Database PostgreSQL di destinazione (su Amazon RDS per PostgreSQL o Aurora PostgreSQL compatibile)
+ [Esperienza](https://www.postgresql.org/docs/current/plpgsql.html) nella codifica PL/PgSQL

**Limitazioni**
+ Si applica solo alle versioni di PostgreSQL precedenti alla 12. 
+ Si applica alla versione 11g o successiva del database Oracle.
+ Le colonne virtuali non sono supportate negli strumenti di migrazione dei dati.
+ Si applica solo alle colonne definite nella stessa tabella.
+ Se una colonna generata virtuale fa riferimento a una funzione deterministica definita dall'utente, non può essere utilizzata come colonna chiave di partizionamento.
+ L'output dell'espressione deve essere un valore scalare. Non può restituire un tipo di dati fornito da Oracle, un tipo definito dall'utente o. `LOB` `LONG RAW`
+ Gli indici definiti in base alle colonne virtuali sono equivalenti agli indici basati su funzioni in PostgreSQL.
+ Le statistiche delle tabelle devono essere raccolte.

## Tools (Strumenti)
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-tools"></a>
+ [pgAdmin](https://www.pgadmin.org/) 4 è uno strumento di gestione open source per PostgreSQL. Questo strumento fornisce un'interfaccia grafica che semplifica la creazione, la manutenzione e l'uso degli oggetti del database.
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/) è un ambiente di sviluppo gratuito e integrato per lavorare con SQL nei database Oracle in implementazioni tradizionali e cloud. 

## Epiche
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-epics"></a>

### Crea tabelle di database di origine e di destinazione
<a name="create-source-and-target-database-tables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare una tabella del database Oracle di origine. | In Oracle Database, crea una tabella con colonne virtuali generate utilizzando la seguente istruzione.<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>In questa tabella di origine, i dati nella `STATUS` colonna vengono migrati tramite AWS DMS al database di destinazione. La `FLAG` colonna, tuttavia, viene popolata utilizzando `generate by` funzionalità, quindi non è visibile ad AWS DMS durante la migrazione. Per implementare la funzionalità di`generated by`, è necessario utilizzare i trigger e le funzioni nel database di destinazione per compilare i valori nella `FLAG` colonna, come illustrato nella prossima epopea. | DBA, sviluppatore di app | 
| Crea una tabella PostgreSQL di destinazione su AWS. | Crea una tabella PostgreSQL su AWS utilizzando la seguente istruzione.<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>In questa tabella, la `status` colonna è una colonna standard. La `flag` colonna sarà una colonna generata in base ai dati contenuti nella `status` colonna. | DBA, sviluppatore di app | 

### Crea una funzione di attivazione per gestire la colonna virtuale in PostgreSQL
<a name="create-a-trigger-function-to-handle-the-virtual-column-in-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un trigger PostgreSQL. | In PostgreSQL, crea un trigger.<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, sviluppatore di app | 
| Crea una funzione trigger PostgreSQL. | In PostgreSQL, crea una funzione per il trigger. Questa funzione popola una colonna virtuale che viene inserita o aggiornata dall'applicazione o da AWS DMS e convalida i dati.<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, sviluppatore di app | 

### Testa la migrazione dei dati utilizzando AWS DMS
<a name="test-data-migration-by-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica. | Per creare un'istanza di replica, segui le [istruzioni nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) di AWS DMS. L'istanza di replica deve trovarsi nello stesso cloud privato virtuale (VPC) dei database di origine e di destinazione. | DBA, sviluppatore di app | 
| Crea endpoint di origine e destinazione. | Per creare gli endpoint, segui [le istruzioni nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) di AWS DMS. | DBA, sviluppatore di app | 
| Verifica le connessioni degli endpoint. | **È possibile testare le connessioni degli endpoint specificando il VPC e l'istanza di replica e scegliendo Esegui test.** | DBA, sviluppatore di app | 
| Crea e avvia un'attività a pieno carico. | Per istruzioni, consulta [Creazione di un'attività](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) e [Impostazioni di caricamento completo](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.html) nella documentazione di AWS DMS. | DBA, sviluppatore di app | 
| Convalida i dati per la colonna virtuale. | Confronta i dati nella colonna virtuale nei database di origine e di destinazione. È possibile convalidare i dati manualmente o scrivere uno script per questo passaggio. | DBA, sviluppatore di app | 

## Risorse correlate
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-resources"></a>
+ [Guida introduttiva ad AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (documentazione AWS DMS)
+ [Utilizzo di un database Oracle come origine per AWS DMS (documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) AWS DMS)
+ [Utilizzo di un database PostgreSQL come destinazione per AWS DMS (documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html))
+ [Colonne generate in PostgreSQL (documentazione PostgreSQL](https://www.postgresql.org/docs/12/ddl-generated-columns.html))
+ [Funzioni di attivazione](https://www.postgresql.org/docs/12/plpgsql-trigger.html) (documentazione PostgreSQL)
+ [Colonne virtuali](https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402) in Oracle Database (documentazione Oracle)

# Configura la funzionalità Oracle UTL\$1FILE su Aurora, compatibile con PostgreSQL
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible"></a>

*Rakesh Raghav e anuradha chintha, Amazon Web Services*

## Riepilogo
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-summary"></a>

Durante il tuo percorso di migrazione da Oracle ad Amazon Aurora PostgreSQL Compatible Edition sul cloud Amazon Web Services (AWS), potresti incontrare diverse sfide. Ad esempio, la migrazione di codice che si basa sull'utilità Oracle è sempre una sfida. `UTL_FILE` In Oracle PL/SQL, il `UTL_FILE` pacchetto viene utilizzato per operazioni sui file, come lettura e scrittura, insieme al sistema operativo sottostante. L'`UTL_FILE`utilità funziona sia per i sistemi server che per quelli client. 

Amazon Aurora PostgreSQL Compatible è un'offerta di database gestiti. Per questo motivo, non è possibile accedere ai file sul server del database. Questo modello illustra l'integrazione tra Amazon Simple Storage Service (Amazon S3) e la compatibilità con Amazon Aurora PostgreSQL per ottenere un sottoinsieme di funzionalità. `UTL_FILE` Grazie a questa integrazione, possiamo creare e consumare file senza utilizzare strumenti o servizi di estrazione, trasformazione e caricamento (ETL) di terze parti.

Facoltativamente, puoi configurare il CloudWatch monitoraggio di Amazon e le notifiche Amazon SNS.

Consigliamo di testare a fondo questa soluzione prima di implementarla in un ambiente di produzione.

## Prerequisiti e limitazioni
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Esperienza in AWS Database Migration Service (AWS DMS)
+ Esperienza nella codifica PL/pgSQL 
+ Un cluster compatibile con Amazon Aurora PostgreSQL
+ Un bucket S3

**Limitazioni**

Questo modello non fornisce la funzionalità necessaria per sostituire l'utilità Oracle. `UTL_FILE` Tuttavia, i passaggi e il codice di esempio possono essere ulteriormente migliorati per raggiungere gli obiettivi di modernizzazione del database.

**Versioni del prodotto**
+ Amazon Aurora versione 11.9 compatibile con PostgreSQL

## Architecture
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-architecture"></a>

**Stack tecnologico Target**
+ Compatibile con Amazon Aurora PostgreSQL
+ Amazon CloudWatch
+ Amazon Simple Notification Service (Amazon SNS)
+ Simple Storage Service (Amazon S3)

**Architettura Target**

Il diagramma seguente mostra una rappresentazione di alto livello della soluzione.

![\[I file di dati vengono caricati in un bucket S3, elaborati utilizzando l'estensione aws_s3 e inviati all'istanza Aurora.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/3aeecd46-1f87-41f9-a9cd-f8181f92e83f/images/4a6c5f5c-58fb-4355-b243-d09a15c1cec6.png)


1. I file vengono caricati dall'applicazione nel bucket S3.

1. L'`aws_s3`estensione accede ai dati, utilizzando PL/pgSQL, e carica i dati su Aurora PostgreSQL Compatible.

## Tools (Strumenti)
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-tools"></a>
+ Compatibile con [Amazon Aurora PostgreSQL — Amazon Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Edition è un motore di database relazionale completamente gestito, compatibile con PostgreSQL e conforme agli ACID. Combina la velocità e l'affidabilità dei database commerciali di fascia alta con l'economicità dei database open source.
+ [AWS CLI — L'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)AWS Command Line Interface (AWS CLI) è uno strumento unificato per gestire i servizi AWS. Con un solo strumento da scaricare e configurare, puoi controllare più servizi AWS dalla riga di comando e automatizzarli tramite script.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html): Amazon CloudWatch monitora le risorse e l'utilizzo di Amazon S3.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) è uno storage per Internet. In questo modello, Amazon S3 fornisce un livello di storage per ricevere e archiviare file per il consumo e la trasmissione da e verso il cluster Aurora compatibile con PostgreSQL.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) — L'estensione `aws_s3` integra la compatibilità con Amazon S3 e Aurora PostgreSQL.
+ [Amazon SNS — Amazon Simple](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) Notification Service (Amazon SNS) coordina e gestisce la consegna o l'invio di messaggi tra editori e clienti. In questo modello, Amazon SNS viene utilizzato per inviare notifiche.
+ [pgAdmin](https://www.pgadmin.org/docs/) — pgAdmin è uno strumento di gestione open source per Postgres. pgAdmin 4 fornisce un'interfaccia grafica per la creazione, la manutenzione e l'utilizzo di oggetti di database.

**Codice**

Per ottenere la funzionalità richiesta, il pattern crea più funzioni con denominazione simile a. `UTL_FILE` La sezione *Informazioni aggiuntive* contiene il codice base per queste funzioni.

Nel codice, sostituiscilo `testaurorabucket` con il nome del bucket S3 di test. Sostituisci `us-east-1` con la regione AWS in cui si trova il bucket S3 di test.

## Epiche
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-epics"></a>

### Integra la compatibilità con Amazon S3 e Aurora PostgreSQL
<a name="integrate-amazon-s3-and-aurora-postgresql-compatible"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le politiche IAM. | Crea policy AWS Identity and Access Management (IAM) che garantiscono l'accesso al bucket S3 e agli oggetti in esso contenuti. Per il codice, consulta la sezione *Informazioni aggiuntive*. | Amministratore AWS, DBA | 
| Aggiungi i ruoli di accesso di Amazon S3 ad Aurora PostgreSQL. | Crea due ruoli IAM: un ruolo per l'accesso in lettura e un ruolo per l'accesso in scrittura ad Amazon S3. Collega i due ruoli al cluster compatibile con Aurora PostgreSQL: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.html)[Per ulteriori informazioni, consulta la documentazione compatibile con Aurora PostgreSQL sull'importazione [e](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html) l'esportazione di dati su Amazon S3.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html) | Amministratore AWS, DBA | 

### Configura le estensioni in Aurora, compatibile con PostgreSQL
<a name="set-up-the-extensions-in-aurora-postgresql-compatible"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'estensione aws\$1commons. | L'`aws_commons`estensione è una dipendenza dell'estensione. `aws_s3` | DBA, Sviluppatore | 
| Crea l'estensione aws\$1s3. | L'`aws_s3`estensione interagisce con Amazon S3. | DBA, Sviluppatore | 

### Convalida l'integrazione compatibile con Amazon S3 e Aurora PostgreSQL
<a name="validate-amazon-s3-and-aurora-postgresql-compatible-integration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova a importare file da Amazon S3 in Aurora PostgreSQL. | Per testare l'importazione di file in Aurora PostgreSQL compatibile, crea un file CSV di esempio e caricalo nel bucket S3. Crea una definizione di tabella basata sul file CSV e carica il file nella tabella utilizzando la funzione. `aws_s3.table_import_from_s3` | DBA, Sviluppatore | 
| Prova a esportare file da Aurora PostgreSQL ad Amazon S3. | Per testare l'esportazione di file da Aurora PostgreSQL compatibile, crea una tabella di test, popolala con dati, quindi esporta i dati utilizzando la funzione. `aws_s3.query_export_to_s3` | DBA, Sviluppatore | 

### Per imitare l'utilità UTL\$1FILE, create funzioni wrapper
<a name="to-mimic-the-utl_file-utility-create-wrapper-functions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea lo schema utl\$1file\$1utility. | Lo schema mantiene unite le funzioni del wrapper. Per creare lo schema, esegui il comando seguente.<pre>CREATE SCHEMA utl_file_utility;</pre> | DBA, Sviluppatore | 
| Crea il tipo file\$1type. | Per creare il `file_type` tipo, utilizzate il codice seguente.<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/Sviluppatore | 
| Crea la funzione init. | La `init` funzione inizializza una variabile comune come o. `bucket` `region` Per il codice, consultate la sezione *Informazioni aggiuntive*. | DBA/Sviluppatore | 
| Crea le funzioni wrapper. | Crea le funzioni `fopen` wrapper e. `put_line` `fclose` Per il codice, vedere la sezione *Informazioni aggiuntive*. | DBA, Sviluppatore | 

### Prova le funzioni del wrapper
<a name="test-the-wrapper-functions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova le funzioni del wrapper in modalità scrittura. | *Per testare le funzioni del wrapper in modalità scrittura, utilizzate il codice fornito nella sezione Informazioni aggiuntive.* | DBA, Sviluppatore | 
| Prova le funzioni del wrapper in modalità append. | *Per testare le funzioni del wrapper in modalità di aggiunta, utilizzate il codice fornito nella sezione Informazioni aggiuntive.* | DBA, Sviluppatore | 

## Risorse correlate
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-resources"></a>
+ [Integrazione con 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)

## Informazioni aggiuntive
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-additional"></a>

**Configura le politiche IAM**

Crea le seguenti politiche.


| 
| 
| Nome policy | 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> | 

**Crea la funzione init**

Per inizializzare variabili comuni, come `bucket` o`region`, create la `init` funzione utilizzando il codice seguente.

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

**Create le funzioni wrapper**

Crea le funzioni `fopen``put_line`, e `fclose` wrapper.

*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$;
```

*chiudere*

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

**Metti alla prova le tue funzioni di configurazione e wrapper**

Usa i seguenti blocchi di codice anonimi per testare la tua configurazione.

*Prova la modalità di scrittura*

Il codice seguente scrive un file denominato `s3inttest` nel bucket 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;
$$
```

*Prova la modalità di aggiunta*

Il codice seguente aggiunge righe al `s3inttest` file creato nel test precedente.

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

**Notifiche Amazon SNS**

Facoltativamente, puoi configurare il CloudWatch monitoraggio di Amazon e le notifiche Amazon SNS sul bucket S3. Per ulteriori informazioni, consulta [Monitoraggio di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html) e [Configurazione delle notifiche Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

# Convalida gli oggetti del database dopo la migrazione da Oracle ad 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*

## Riepilogo
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-summary"></a>

Questo modello descrive un step-by-step approccio per convalidare gli oggetti dopo la migrazione di un database Oracle in Amazon Aurora PostgreSQL Compatible Edition.

[Questo modello delinea gli scenari di utilizzo e le fasi per la convalida degli oggetti del database; per informazioni più dettagliate, consulta [Convalida degli oggetti del database dopo la migrazione utilizzando AWS SCT e AWS DMS sul blog di AWS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/) Database.](https://aws.amazon.com/blogs/)

## Prerequisiti e limitazioni
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database Oracle locale che è stato migrato a un database Aurora compatibile con PostgreSQL. 
+ Credenziali di accesso a cui è applicata la RDSData FullAccess policy di [Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), per il database Aurora compatibile con PostgreSQL. 
+ Questo modello utilizza l'[editor di query per i cluster DB Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), disponibile nella console Amazon Relational Database Service (Amazon RDS). Tuttavia, puoi utilizzare questo pattern con qualsiasi altro editor di query. 

**Limitazioni**
+ **Gli oggetti Oracle SYNONYM non sono disponibili in PostgreSQL ma possono essere parzialmente convalidati tramite viste o query SET search\$1path.**
+ L'editor di query Amazon RDS è disponibile solo in [alcune regioni AWS e per alcune versioni di MySQL e PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html).

## Architecture
<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/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7c028960-6dea-46ad-894d-e42cefd50c03/images/be5f8ae3-f5af-4c5e-9440-09ab410beaa1.png)


 

## Tools (Strumenti)
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-tools"></a>

**Strumenti**
+ [Amazon Aurora PostgreSQL Compatible Edition — Aurora PostgreSQL Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) è un motore di database relazionale completamente gestito, compatibile con PostgreSQL e conforme ad ACID che combina la velocità e l'affidabilità dei database commerciali di fascia alta con la semplicità e l'economicità dei database open source.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud AWS. Offre una capacità ridimensionabile a un costo conveniente per un database relazionale standard del settore e gestisce task comuni di amministrazione del database.
+ [Query Editor per Aurora Severless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html): l'editor di query ti aiuta a eseguire query SQL nella console Amazon RDS. È possibile eseguire qualsiasi istruzione SQL valida sul cluster DB Aurora Serverless, incluse le istruzioni di manipolazione e definizione dei dati.

Per convalidare gli oggetti, utilizza gli script completi nel file «Script di convalida degli oggetti» nella sezione «Allegati». Utilizzate la seguente tabella come riferimento.


| 
| 
| Oggetto Oracle | Script da usare | 
| --- |--- |
| Pacchetti | Query 1 | 
| Tabelle | Query 3 | 
| Visualizzazioni | Interrogazione 5 | 
| Sequenze | Interrogazione 7 | 
| Triggers |  Interrogazione 9 | 
| Chiavi primarie | Interrogazione 11 | 
| Indici | Interrogazione 13 | 
| Vincoli check | Interrogazione 15 | 
| Chiavi esterne  | Interrogazione 17  | 


| 
| 
| Oggetto PostgreSQL | Script da usare | 
| --- |--- |
| Pacchetti | Query 2 | 
| Tabelle | Interrogazione 4 | 
| Visualizzazioni | Interrogazione 6 | 
| Sequenze | Interrogazione 8 | 
| Triggers | Interrogazione 10 | 
| Chiavi primarie | Interrogazione 12 | 
| Indici | Interrogazione 14 | 
| Vincoli check | Interrogazione 16 | 
| Chiavi esterne | Interrogazione 18 | 

## Epiche
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-epics"></a>

### Convalida gli oggetti nel database Oracle di origine
<a name="validate-objects-in-the-source-oracle-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la query di convalida dei «pacchetti» nel database Oracle di origine.  | Scarica e apri il file «Script di convalida degli oggetti» dalla sezione «Allegati». Connect al database Oracle di origine tramite il programma client. Esegui lo script di convalida «Query 1" dal file «Script di convalida degli oggetti». Importante: inserisci il tuo nome utente Oracle anziché «your\$1schema» nelle query. Assicurati di registrare i risultati delle query. | Sviluppatore, DBA | 
| Esegui la query di convalida «tables».  | Esegui lo script «Query 3" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «views».  | Esegui lo script «Query 5" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la convalida del conteggio delle «sequenze».  | Esegui lo script «Query 7" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «triggers».  | Esegui lo script «Query 9" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida delle «chiavi primarie».  | Esegui lo script «Query 11" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida degli «indici».  | Esegui lo script di convalida «Query 13" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «check constraints».  | Esegui lo script «Query 15" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida delle «chiavi esterne».  | Esegui lo script di convalida «Query 17" dal file «Script di convalida degli oggetti». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 

### Convalida gli oggetti nel database Aurora di destinazione compatibile con PostgreSQL
<a name="validate-objects-in-the-target-aurora-postgresql-compatible-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Connect al database di destinazione compatibile con Aurora PostgreSQL utilizzando l'editor di query. | Accedi alla Console di gestione AWS e apri la console Amazon RDS. Nell'angolo in alto a destra, scegli la regione AWS in cui hai creato il database Aurora compatibile con PostgreSQL. Nel riquadro di navigazione, scegli «Database» e scegli il database di destinazione compatibile con Aurora PostgreSQL. In «Azioni», scegli «Interrogazione». Importante: se non ti sei mai connesso al database prima, si apre la pagina «Connetti al database». È quindi necessario inserire le informazioni del database, come nome utente e password. | Sviluppatore, DBA | 
| Esegui la query di convalida dei «pacchetti». | Esegui lo script «Query 2" dal file «Script di convalida degli oggetti» nella sezione «Allegati». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «tables».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 4" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «views».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 6" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la convalida del conteggio delle «sequenze».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 8" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «triggers».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 10" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida delle «chiavi primarie».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 12" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida degli «indici».  | Tornate all'editor di query per il database Aurora compatibile con PostgreSQL ed eseguite lo script «Query 14" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida «check constraints».  | Esegui lo script «Query 16" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 
| Esegui la query di convalida delle «chiavi esterne».  | Esegui lo script di convalida «Query 18" dal file «Object validation scripts». Assicurati di registrare i risultati della query. | Sviluppatore, DBA | 

### Confronta i record di convalida del database di origine e di destinazione
<a name="compare-source-and-target-database-validation-records"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Confronta e convalida entrambi i risultati delle query.  | Confronta i risultati delle query dei database compatibili con Oracle e Aurora PostgreSQL per convalidare tutti gli oggetti. Se tutti corrispondono, allora tutti gli oggetti sono stati convalidati correttamente. | Sviluppatore, DBA | 

## Risorse correlate
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-resources"></a>
+ [Convalida degli oggetti del database dopo una migrazione utilizzando AWS SCT e AWS DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/)
+ [Caratteristiche di Amazon Aurora: edizione compatibile con PostgreSQL](https://aws.amazon.com/rds/aurora/postgresql-features/)

## Allegati
<a name="attachments-7c028960-6dea-46ad-894d-e42cefd50c03"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/7c028960-6dea-46ad-894d-e42cefd50c03/attachments/attachment.zip)

# Riospitare
<a name="migration-rehost-pattern-list"></a>

**Topics**
+ [Accelera la scoperta e la migrazione dei carichi di lavoro Microsoft su AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Creare un processo di approvazione per le richieste del firewall durante una migrazione di rehosting a AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)
+ [Acquisisci e migra istanze EC2 Windows in un account AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Esegui la migrazione di un database Couchbase Server su Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Esegui la migrazione di Db2 for LUW ad Amazon EC2 utilizzando la spedizione di log per ridurre i tempi di interruzione](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Esegui la migrazione di Db2 per LUW ad Amazon EC2 con disaster recovery ad alta disponibilità](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Esegui la migrazione di applicazioni ospitate da IIS su Amazon utilizzando appcmd.exe EC2](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2 utilizzando Application Migration Service](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Esegui la migrazione di un carico di lavoro F5 BIG-IP su F5 BIG-IP VE su Cloud AWS](migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud.md)
+ [Esegui la migrazione di un'applicazione web Go locale su AWS Elastic Beanstalk utilizzando il metodo binario](migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.md)
+ [Esegui la migrazione di un server SFTP locale a Using AWS AWS Transfer for SFTP](migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp.md)
+ [Migra una macchina virtuale locale su Amazon EC2 utilizzando AWS Application Migration Service](migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.md)
+ [Esegui la migrazione di piccoli set di dati da locale ad Amazon S3 utilizzando AWS SFTP](migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp.md)
+ [Esegui la migrazione di un database Oracle locale a Oracle su Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Esegui la migrazione di un database Oracle locale su Amazon EC2 utilizzando Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Migra i sistemi RHEL BYOL verso istanze con licenza AWS inclusa utilizzando AWS MGN](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Rehosting dei carichi di lavoro locali nel cloud AWS: lista di controllo per la migrazione](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Configura un'infrastruttura Multi-AZ per SQL Server Always On FCI utilizzando Amazon FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)
+ [Usa le query BMC Discovery per estrarre i dati di migrazione per la pianificazione della migrazione](use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning.md)

# Accelera la scoperta e la migrazione dei carichi di lavoro Microsoft su AWS
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws"></a>

*Ali Alzand, Amazon Web Services*

## Riepilogo
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-summary"></a>

Questo modello mostra come utilizzare il [ PowerShell modulo Migration Validator Toolkit](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads) per scoprire e migrare i carichi di lavoro Microsoft su AWS. Il modulo funziona eseguendo più controlli e convalide per le attività comuni associate a qualsiasi carico di lavoro Microsoft. Ad esempio, il modulo verifica le istanze che potrebbero avere più dischi collegati o le istanze che utilizzano molti indirizzi IP. Per un elenco completo dei controlli che il modulo può eseguire, consulta la sezione [Controlli](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads#checks) nella pagina del modulo. GitHub 

Il PowerShell modulo Migration Validator Toolkit può aiutare l'organizzazione a ridurre il tempo e l'impegno necessari per scoprire quali applicazioni e servizi sono in esecuzione sui carichi di lavoro Microsoft. Il modulo può anche aiutarti a identificare le configurazioni dei tuoi carichi di lavoro per scoprire se le tue configurazioni sono supportate su AWS. Il modulo fornisce anche consigli sui passaggi successivi e sulle operazioni di mitigazione, in modo da evitare configurazioni errate prima, durante o dopo la migrazione.

## Prerequisiti e limitazioni
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-prereqs"></a>

**Prerequisiti**
+ Account amministratore locale
+ PowerShell 4.0

**Limitazioni**
+ Funziona solo su Microsoft Windows Server 2012 R2 o versioni successive

## Tools (Strumenti)
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-tools"></a>

**Strumenti**
+ PowerShell 4.0

**Deposito di codici**

[Il PowerShell modulo Migration Validator Toolkit per questo modello è disponibile nell'archivio -microsoft-workloads. GitHub migration-validator-toolkit-for](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads)

## Epiche
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-epics"></a>

### Esegui il PowerShell modulo Migration Validator Toolkit su un singolo target
<a name="run-the-migration-validator-toolkit-powershell-module-on-a-single-target"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica, estrai, importa e richiama il modulo. | Scegliete uno dei seguenti metodi per scaricare e distribuire il modulo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Esegui lo script PowerShell **In PowerShell, esegui il seguente codice di esempio:<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>Il codice scarica il modulo da un file.zip. Quindi, il codice estrae, importa e richiama il modulo.**Scarica ed estrai il file.zip**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Clona il repository GitHub **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Amministratore di sistema | 
| Richiama il modulo manualmente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)[Formato tabella-formato](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 dell'elenco dei [formati](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>[Formato di uscita: GridView](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> | Amministratore di sistema | 

### Esegui il modulo Migration Validator Toolkit PowerShell su più destinazioni
<a name="run-the-migration-validator-toolkit-powershell-module-on-multiple-targets"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il file.zip o clona il GitHub repository. | Scegli una delle seguenti opzioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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> | Amministratore di sistema | 
| Aggiorna l'elenco server.csv. | Se hai scaricato il file.zip, procedi nel seguente modo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Amministratore di sistema | 
| Invoca il modulo. | È possibile utilizzare qualsiasi computer all'interno del dominio che utilizza un utente di dominio con accesso amministratore ai computer di destinazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers</pre>Il file.csv di output viene salvato `MigrationValidatorToolkit\Outputs\folder` con il nome del prefisso. `DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS` | Amministratore di sistema | 

## risoluzione dei problemi
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| `MigrationValidatorToolkit`scrive informazioni su esecuzioni, comandi ed errori nei file di registro sull'host in esecuzione. | È possibile visualizzare i file di registro manualmente nella seguente posizione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | 

## Risorse correlate
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-resources"></a>
+ [Opzioni, strumenti e best practice per la migrazione dei carichi di lavoro Microsoft su AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-microsoft-workloads-aws/introduction.html) Guidance)
+ [Modelli di migrazione Microsoft](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-migration-patterns-by-workload-microsoft-pattern-list.html) (AWS Prescriptive Guidance)
+ [Servizi di migrazione cloud gratuiti su AWS](https://aws.amazon.com/free/migration/) (documentazione AWS)
+ [Azioni predefinite dopo il lancio (documentazione](https://docs.aws.amazon.com/mgn/latest/ug/predefined-post-launch-actions.html) di marketing delle applicazioni)

## Informazioni aggiuntive
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-additional"></a>

**Domande frequenti**

*Dove posso eseguire il modulo Migration Validator Toolkit? PowerShell *

È possibile eseguire il modulo su Microsoft Windows Server 2012 R2 o versioni successive.

*Quando posso eseguire questo modulo?*

Ti consigliamo di eseguire il modulo durante la [fase di valutazione](https://aws.amazon.com/cloud-migration/how-to-migrate/) del percorso di migrazione.

*Il modulo modifica i miei server esistenti?*

No. Tutte le azioni in questo modulo sono di sola lettura.

*Quanto tempo occorre per eseguire il modulo?*

L'esecuzione del modulo richiede in genere da 1 a 5 minuti, ma dipende dall'allocazione delle risorse del server.

*Di quali autorizzazioni ha bisogno il modulo per funzionare?*

È necessario eseguire il modulo da un account amministratore locale.

*Posso eseguire il modulo su server fisici?*

Sì, purché il sistema operativo sia Microsoft Windows Server 2012 R2 o versione successiva.

*Come posso eseguire il modulo su larga scala per più server?*

Per eseguire il modulo su più computer aggiunti a un dominio su larga scala, segui i passaggi indicati nel modulo Esegui il * PowerShell modulo Run the Migration Validator Toolkit su più obiettivi* di questa guida. Per i computer non aggiunti al dominio, utilizzate una chiamata remota o eseguite il modulo localmente seguendo i passaggi descritti nel modulo Esegui il modulo Esegui il modulo *Migration Validator Toolkit su un singolo obiettivo* di questa guida. PowerShell 

# Creare un processo di approvazione per le richieste del firewall durante una migrazione di rehosting a AWS
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Riepilogo
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-summary"></a>

Se desideri utilizzare [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)o attivare [Cloud Migration Factory AWS per una migrazione](https://aws.amazon.com/solutions/implementations/cloud-migration-factory-on-aws/) di rehosting verso Cloud AWS, uno dei prerequisiti è mantenere aperte le porte TCP 443 e 1500. In genere, l'apertura di queste porte firewall richiede l'approvazione del team di sicurezza delle informazioni (). InfoSec

Questo modello delinea il processo per ottenere l'approvazione di una richiesta di firewall da parte di un InfoSec team durante una migrazione di rehost verso. Cloud AWSÈ possibile utilizzare questo processo per evitare che la richiesta relativa al firewall venga respinta dal InfoSec team, operazione che può diventare costosa e dispendiosa in termini di tempo. Il processo di richiesta del firewall prevede due fasi di revisione e approvazione tra consulenti di AWS migrazione e responsabili che collaborano con i team addetti all'applicazione InfoSec e all'apertura delle porte del firewall.

Questo modello presuppone che stiate pianificando una migrazione di rehosting con AWS consulenti o specialisti della migrazione della vostra organizzazione. È possibile utilizzare questo modello se l'organizzazione non dispone di un processo di approvazione del firewall o di un modulo di approvazione generale per la richiesta del firewall. Per ulteriori informazioni su questo argomento, consulta la sezione *Limitazioni* di questo modello. Per ulteriori informazioni sui requisiti di rete per Application Migration Service, consulta [Requisiti di rete](https://docs.aws.amazon.com/mgn/latest/ug/Network-Requirements.html) nella documentazione di Application Migration Service.

## Prerequisiti e limitazioni
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-prereqs"></a>

**Prerequisiti**
+ Una migrazione riospitata pianificata con AWS consulenti o specialisti della migrazione della vostra organizzazione
+ Le informazioni necessarie sulla porta e sull'IP per migrare lo stack
+ Diagrammi delle architetture di stato esistenti e future
+ Informazioni sul firewall relative all'infrastruttura, alle porte e al flusso di traffico locali e di destinazione zone-to-zone
+ Una lista di controllo per la revisione delle richieste di firewall (in allegato)
+ Un documento di richiesta del firewall, configurato in base ai requisiti dell'organizzazione
+ Un elenco di contatti per i revisori e gli approvatori del firewall, che include i seguenti ruoli:
  + Richiedente della **richiesta relativa al firewall: AWS specialista o consulente in materia** di migrazione. Il mittente della richiesta di firewall può anche essere uno specialista della migrazione della vostra organizzazione.
  + **Firewall Request Reviewer**: in genere, si tratta del punto di contatto unico (SPOC) di. AWS
  + **Firewall Request Approver**: un membro del team InfoSec .

**Limitazioni**
+ Questo modello descrive un processo generico di approvazione delle richieste di firewall. I requisiti possono variare a seconda delle singole organizzazioni.
+ Assicurati di tenere traccia delle modifiche al documento di richiesta del firewall.

La tabella seguente mostra i casi d'uso di questo pattern.


| 
| 
| La tua organizzazione dispone di un processo di approvazione del firewall esistente? | La tua organizzazione dispone già di un modulo di richiesta per il firewall?  | Azione suggerita | 
| --- |--- |--- |
| Sì  | Sì | Collabora con AWS consulenti o specialisti della migrazione per implementare il processo della tua organizzazione. | 
| No | Sì | Utilizza il processo di approvazione del firewall di questo pattern. Rivolgiti a un AWS consulente o a uno specialista della migrazione della tua organizzazione per inviare il modulo di approvazione generale della richiesta del firewall. | 
| No | No | Utilizzate il processo di approvazione del firewall di questo pattern. Rivolgiti a un AWS consulente o a uno specialista della migrazione della tua organizzazione per inviare il modulo di approvazione generale della richiesta del firewall. | 

## Architecture
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-architecture"></a>

Il diagramma seguente mostra i passaggi del processo di approvazione della richiesta del firewall.

![\[Procedura per la richiesta di approvazione del firewall da parte di un InfoSec team durante una migrazione di rehosting su AWS Cloud.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cf9b58ad-ab6f-43d3-92da-968529c8d042/images/c672f7ce-6e9f-4dbc-bf2c-4272a6c4432b.png)


## Tools (Strumenti)
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-tools"></a>

È possibile utilizzare strumenti di scansione come [Palo Alto Networks](https://www.paloaltonetworks.com/) o [SolarWinds](https://www.solarwinds.com/)per analizzare e convalidare firewall e indirizzi IP.

## Epiche
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-epics"></a>

### Analizza la richiesta del firewall
<a name="analyze-the-firewall-request"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza le porte e gli indirizzi IP. | Il mittente della richiesta di firewall completa un'analisi iniziale per comprendere le porte e gli indirizzi IP del firewall richiesti. Al termine, richiedono che il InfoSec team apra le porte richieste e mappi gli indirizzi IP. | Ingegnere del cloud AWS, specialista della migrazione | 

### Convalida la richiesta del firewall
<a name="validate-the-firewall-request"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le informazioni sul firewall. | L' Cloud AWS ingegnere pianifica un incontro con il tuo InfoSec team. Durante questa riunione, l'ingegnere esamina e convalida le informazioni sulla richiesta del firewall.In genere, chi invia la richiesta del firewall è la stessa persona del richiedente del firewall. Questa fase di convalida può diventare iterativa in base al feedback fornito dall'approvatore se qualcosa viene osservato o consigliato. | Ingegnere del cloud AWS, specialista della migrazione | 
| Aggiorna il documento di richiesta del firewall. | Dopo che il InfoSec team ha condiviso il feedback, il documento di richiesta del firewall viene modificato, salvato e ricaricato. Questo documento viene aggiornato dopo ogni iterazione.Si consiglia di archiviare questo documento in una cartella di archiviazione controllata dalla versione. Ciò significa che tutte le modifiche vengono tracciate e applicate correttamente. | Ingegnere del cloud AWS, specialista della migrazione | 

### Invia la richiesta relativa al firewall
<a name="submit-the-firewall-request"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia la richiesta del firewall. | Dopo che l'approvatore della richiesta firewall ha approvato la richiesta di approvazione generale del firewall, il Cloud AWS tecnico invia la richiesta al firewall. La richiesta specifica le porte che devono essere aperte e gli indirizzi IP necessari per mappare e aggiornare il. Account AWSÈ possibile fornire suggerimenti o fornire feedback dopo l'invio della richiesta del firewall. Ti consigliamo di automatizzare questo processo di feedback e di inviare eventuali modifiche tramite un meccanismo di flusso di lavoro definito.  | Ingegnere del cloud AWS, specialista della migrazione | 

## Allegati
<a name="attachments-cf9b58ad-ab6f-43d3-92da-968529c8d042"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/cf9b58ad-ab6f-43d3-92da-968529c8d042/attachments/attachment.zip)

# Acquisisci e migra istanze EC2 Windows in un account 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*

## Riepilogo
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-summary"></a>

Questo modello spiega il step-by-step processo di migrazione e acquisizione di istanze Windows di Amazon Elastic Compute Cloud ( EC2Amazon) in un account Amazon Web Services (AWS) Managed Services (AMS). AMS può aiutarti a gestire l'istanza in modo più efficiente e sicuro. AMS offre flessibilità operativa, migliora la sicurezza e la conformità e aiuta a ottimizzare la capacità e ridurre i costi.

Questo modello inizia con un'istanza di EC2 Windows che hai migrato a una sottorete di staging nel tuo account AMS. Sono disponibili diversi servizi e strumenti di migrazione per eseguire questa attività, come AWS Application Migration Service.

Per apportare una modifica al tuo ambiente gestito da AMS, devi creare e inviare una richiesta di modifica (RFC) per una particolare operazione o azione. Utilizzando un RFC AMS workload ingest (WIGS), si inserisce l'istanza nell'account AMS e si crea un'Amazon Machine Image (AMI) personalizzata. Quindi crei l' EC2 istanza gestita da AMS inviando un'altra RFC per creare uno stack. EC2 Per ulteriori informazioni, consulta [AMS Workload Ingest nella documentazione AMS](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html).

## Prerequisiti e limitazioni
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo e gestito da AMS
+ Una landing zone esistente
+ Autorizzazioni per apportare modifiche nel VPC gestito da AMS
+ Un'istanza Amazon EC2 Windows in una sottorete di staging nel tuo account AMS
+ Completamento dei [prerequisiti generali](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-instance-prereqs.html) per la migrazione dei carichi di lavoro utilizzando AMS WIGS
+ Completamento dei [prerequisiti di Windows per la migrazione](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-prereqs-win.html) dei carichi di lavoro utilizzando AMS WIGS

**Limitazioni**
+ Questo modello si riferisce alle EC2 istanze che utilizzano Windows Server. Questo modello non si applica alle istanze che eseguono altri sistemi operativi, come Linux.

## Architecture
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-architecture"></a>

**Stack di tecnologia di origine**

Istanza Amazon EC2 Windows in una sottorete di staging nel tuo account AMS

**Stack tecnologico Target**

Istanza Amazon EC2 Windows gestita da AWS Managed Services (AMS)

**Architettura Target**

![\[Processo per migrare e importare istanze Amazon EC2 Windows in un account AWS Managed Services.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/393c21cb-b6c6-4446-b597-b62e29fdb7f8/images/0b2fa855-7460-49f8-9e7f-3485e6ce1745.png)


## Tools (Strumenti)
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi usare Amazon EC2 per lanciare tutti o pochi server virtuali di cui hai bisogno, con scalabilità orizzontale o orizzontale.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Managed Services (AMS)](https://docs.aws.amazon.com/managedservices/?id=docs_gateway) ti aiuta a operare in modo più efficiente e sicuro fornendo una gestione continua della tua infrastruttura AWS, tra cui monitoraggio, gestione degli incidenti, guida alla sicurezza, supporto di patch e backup per i carichi di lavoro AWS.

**Altri servizi**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)è un programma di gestione dell'automazione e della configurazione di Microsoft che funziona su Windows, Linux e macOS.

## Epiche
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-epics"></a>

### Configura le impostazioni sull'istanza
<a name="configure-settings-on-the-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Modifica le impostazioni del client DNS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 
| Modifica le impostazioni di Windows Update. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 
| Attiva il firewall. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Tecnico di migrazione | 

### Prepara l'istanza per AMS WIGS
<a name="prepare-the-instance-for-ams-wigs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pulisci e prepara l'istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 
| Ripara il file sppnp.dll. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Tecnico di migrazione | 
| Esegui lo script di convalida pre-WIG. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 
| Crea l'AMI failsafe. | Una volta superata la convalida pre-WIG, crea un'AMI di pre-ingestione come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html)Per ulteriori informazioni, consulta [AMI \$1 Create](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-ami-create.html) nella documentazione AMS. | Ingegnere della migrazione | 

### Acquisisci e convalida l'istanza
<a name="ingest-and-validate-the-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia la RFC per creare lo stack di acquisizione del carico di lavoro. | Invia una richiesta di modifica (RFC) per avviare AMS WIGS. Per istruzioni, consulta [Workload Ingest Stack: Creating](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-workload-ingest-col.html) nella documentazione AMS. Questo avvia l'acquisizione del carico di lavoro e installa tutto il software richiesto da AMS, inclusi gli strumenti di backup, il software di EC2 gestione Amazon e il software antivirus. | Ingegnere della migrazione | 
| Convalida la migrazione riuscita. | Una volta completata l'acquisizione del carico di lavoro, puoi visualizzare l'istanza gestita da AMS e l'AMI inserita da AMS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 

### Avvia l'istanza nell'account AMS di destinazione
<a name="launch-the-instance-in-the-target-ams-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia la RFC per creare uno EC2 stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingegnere della migrazione | 

## Risorse correlate
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-resources"></a>

**Prontuario AWS**
+ [Automatizza le attività di pre-inserimento del carico di lavoro per AWS Managed Services su Windows](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automate-pre-workload-ingestion-activities-for-aws-managed-services-on-windows.html)
+ [Crea automaticamente un RFC in 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)

**Documentazione AMS**
+ [Inserimento del carico di lavoro AMS](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html)
+ [In che modo la migrazione cambia la tua risorsa](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-changes.html)
+ [Migrazione dei carichi di lavoro: processo standard](https://docs.aws.amazon.com/managedservices/latest/appguide/mp-migrate-stack-process.html)

**Risorse di marketing**
+ [AWS Managed Services](https://aws.amazon.com/managed-services/)
+ [AWS Managed Services FAQs](https://aws.amazon.com/managed-services/faqs/)
+ [Risorse AWS Managed Services](https://aws.amazon.com/managed-services/resources/)
+ [Caratteristiche di AWS Managed Services](https://aws.amazon.com/managed-services/features/)

# Esegui la migrazione di un database Couchbase Server su Amazon EC2
<a name="migrate-couchbase-server-ec2"></a>

*Subhani Shaik, Amazon Web Services*

## Riepilogo
<a name="migrate-couchbase-server-ec2-summary"></a>

Questo modello descrive come migrare Couchbase Server da un ambiente locale ad Amazon Elastic Compute Cloud (Amazon) on. EC2 AWS

Couchbase Server è un database NoSQL (documento JSON) distribuito che fornisce funzionalità di database relazionali. La migrazione di un database Couchbase Server a AWS può fornire maggiore scalabilità, migliori prestazioni, efficienza dei costi, maggiore sicurezza, gestione semplificata e portata globale, a vantaggio delle applicazioni che richiedono alta disponibilità e accesso ai dati a bassa latenza. È inoltre possibile accedere a funzionalità avanzate tramite servizi gestiti. AWS 

Couchbase Server on AWS offre le seguenti funzionalità chiave: 
+ Architettura incentrata sulla memoria
+ Alta disponibilità, disaster recovery e bilanciamento del carico
+ Implementazione multimaster e multiregione per prestazioni ottimali

Per ulteriori informazioni sui vantaggi principali, consulta la sezione [Informazioni aggiuntive](#migrate-couchbase-server-ec2-additional) e il sito Web di [Couchbase](https://www.couchbase.com/partners/amazon/).

## Prerequisiti e limitazioni
<a name="migrate-couchbase-server-ec2-prereqs"></a>

**Prerequisiti**
+ Un sistema attivo Account AWS con un cloud privato virtuale (VPC), due zone di disponibilità, sottoreti private e un gruppo di sicurezza. Per istruzioni, consulta [Creare un VPC nella documentazione](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) di Amazon Virtual Private Cloud (Amazon VPC).
+ Connettività abilitata tra ambienti di origine e destinazione. [Per informazioni sulle porte TCX utilizzate da Couchbase Server, consulta la documentazione di Couchbase.](https://docs.couchbase.com/server/current/install/install-ports.html)

## Architecture
<a name="migrate-couchbase-server-ec2-architecture"></a>

Il diagramma seguente mostra l'architettura di alto livello per la migrazione di Couchbase Server a. AWS

![\[Architettura di migrazione per il rehosting di Couchbase Server su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4cedced2-3528-4f12-b19e-7d389e820cc1/images/ac22133a-895f-4999-b1e1-57f69e83a326.png)


Dal cluster Couchbase locale, i dati si spostano attraverso un gateway per il cliente utilizzando. [AWS Direct Connect](https://aws.amazon.com/directconnect/) I dati passano attraverso un router e un Direct Connect percorso e raggiungono il VPC tramite un gateway [AWS Virtual Private Network (Site-to-Site VPN)](https://aws.amazon.com/vpn/). Il VPC contiene un' EC2 istanza che esegue Couchbase Server. L' AWS infrastruttura include anche [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) per il controllo degli accessi, [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) per la crittografia dei dati, [Amazon Elastic Block Store (Amazon EBS) per lo storage a blocchi e Amazon](https://aws.amazon.com/ebs/) [Simple Storage Service (Amazon S3) per lo storage](https://aws.amazon.com/s3/) dei dati.

## Tools (Strumenti)
<a name="migrate-couchbase-server-ec2-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)collega la rete interna a una Direct Connect posizione tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, è possibile creare interfacce virtuali direttamente al pubblico Servizi AWS ignorando i provider di servizi Internet nel percorso di rete.

## Best practice
<a name="migrate-couchbase-server-ec2-best-practices"></a>
+ [Installazione e configurazione di Couchbase](https://docs.couchbase.com/server/current/install/install-intro.html) su diverse piattaforme operative
+ [Le migliori pratiche](https://docs.couchbase.com/server/current/cloud/couchbase-cloud-deployment.html#aws-best-practices) per la distribuzione di Couchbase Server su AWS
+ [Creazione di un cluster Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/create-cluster.html)
+ [Best practice in materia di prestazioni per le applicazioni Couchbase](https://docs.couchbase.com/dotnet-sdk/current/project-docs/performance.html)
+ [Le migliori pratiche di sicurezza per Couchbase](https://docs.couchbase.com/server/current/learn/security/security-overview.html) Server
+ [Le migliori pratiche di archiviazione](https://www.couchbase.com/forums/t/what-is-the-best-document-storage-strategy-in-couchbase/1573) per i database di Couchbase Server

## Epiche
<a name="migrate-couchbase-server-ec2-epics"></a>

### Implementa un' EC2 istanza Amazon per Couchbase Server
<a name="deploy-an-ec2-instance-for-couchbase-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Apri la EC2 console Amazon. | Accedi [Console di gestione AWS](https://console.aws.amazon.com/)e apri la [ EC2 console Amazon](https://console.aws.amazon.com/ec2/). | DevOps ingegnere, amministratore di Couchbase | 
| Implementa un' EC2 istanza Amazon. | Avvia un' EC2 istanza che corrisponda alle configurazioni del server Couchbase locale. Per ulteriori informazioni su come distribuire un' EC2 istanza, consulta [Launch an Amazon EC2 istance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella EC2 documentazione di Amazon. | DevOps ingegnere, amministratore di Couchbase | 

### Installa e configura Couchbase Server su Amazon EC2
<a name="install-and-configure-couchbase-server-on-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa un cluster Couchbase. | Consulta le [linee guida per la distribuzione di Couchbase Server](https://docs.couchbase.com/server/current/install/install-production-deployment.html) prima di installare Couchbase Server su Amazon. EC2[Per installare Couchbase Server, consulta la documentazione di Couchbase Server](https://docs.couchbase.com/server/current/install/install-intro.html) | Amministratore di Couchbase | 
| Configura il cluster. | Per configurare il cluster, consulta le [opzioni di configurazione del cluster](https://docs.couchbase.com/cloud/clusters/databases.html#cluster-configuration-options) nella documentazione di Couchbase. | Amministratore di Couchbase | 

### Aggiungi un nuovo nodo e ribilancia il cluster Couchbase
<a name="add-a-new-node-and-rebalance-the-couchbase-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi un nodo per l' EC2 istanza. | Aggiungi l' EC2 istanza appena distribuita su cui è installato Couchbase al cluster locale esistente. Per istruzioni, consulta [Aggiungi un nodo e ribilanciamento nella documentazione del server Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html). | Amministratore di Couchbase | 
| Ribilanciare il cluster. | Il processo di ribilanciamento rende il nodo appena aggiunto con l' EC2 istanza un membro attivo del cluster Couchbase. Per istruzioni, consulta [Aggiungi un nodo e ribilanciamento nella documentazione del server Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) | Amministratore di Couchbase | 

### Riconfigurazione delle connessioni
<a name="reconfigure-connections"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rimuovi i nodi locali e ribilanciali. | È ora possibile rimuovere i nodi locali dal cluster. Dopo aver rimosso i nodi, segui il processo di ribilanciamento per ridistribuire dati, indici, elaborazione degli eventi e elaborazione delle query tra i nodi disponibili nel cluster. Per istruzioni, consulta [Rimuovere un nodo e ribilanciare nella documentazione del server Couchbase](https://docs.couchbase.com/server/current/manage/manage-nodes/remove-node-and-rebalance.html). | Amministratore di Couchbase | 
| Aggiorna i parametri di connessione. | Aggiorna i parametri di connessione dell'applicazione per utilizzare il nuovo indirizzo EC2 IP Amazon, in modo che l'applicazione possa connettersi al nuovo nodo. | Sviluppatore di applicazioni Couchbase | 

## Risorse correlate
<a name="migrate-couchbase-server-ec2-resources"></a>
+ [Servizi Couchbase Server](https://docs.couchbase.com/server/current/learn/services-and-indexes/services/services.html)
+ [Distribuisci Couchbase Server utilizzando Marketplace AWS](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html)
+ [Connect a Couchbase Server](https://docs.couchbase.com/server/current/guides/connect.html)
+ [Gestisci i bucket](https://docs.couchbase.com/server/current/manage/manage-buckets/bucket-management-overview.html)
+ [Replica tra data center (XDCR)](https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-overview.html)
+ [Contratto di licenza di Couchbase Inc.](https://www.couchbase.com/LA20190115/)

## Informazioni aggiuntive
<a name="migrate-couchbase-server-ec2-additional"></a>

**Vantaggi principali**

La migrazione del database Couchbase a offre i seguenti vantaggi: AWS 

**Scalabilità**. È possibile aumentare o ridurre il cluster Couchbase in base alla richiesta senza dover gestire l'hardware fisico, in modo da poter gestire facilmente i volumi di dati e l'utilizzo delle applicazioni fluttuanti. AWS fornisce:
+ opzioni di ridimensionamento verticale e orizzontale
+ Funzionalità di [implementazione globali](https://aws.amazon.com/about-aws/global-infrastructure/)
+ Bilanciamento del carico su tutto Regioni AWS
+ [Soluzioni di scalabilità del database](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/)
+ Ottimizzazione della [distribuzione dei contenuti](https://aws.amazon.com/solutions/content-delivery/)

**Ottimizzazione delle prestazioni**. AWS fornisce un'infrastruttura di rete ad alte prestazioni e [tipi di istanze ottimizzati](https://aws.amazon.com/ec2/instance-types/) per garantire un accesso rapido ai dati e una bassa latenza per il database Couchbase.
+ Opzioni di [elaborazione ad alte prestazioni](https://aws.amazon.com/hpc/) (HPC)
+ Distribuzione globale di contenuti tramite [Amazon CloudFront](https://aws.amazon.com/cloudfront/)
+ Molteplici [opzioni di archiviazione](https://aws.amazon.com/products/storage/)
+ [Servizi di database](https://aws.amazon.com/products/databases/) avanzati, tra cui Amazon Relational Database Service (Amazon RDS) e Amazon DynamoDB
+ Connessioni a bassa latenza con [Direct Connect](https://aws.amazon.com/directconnect/)

**Ottimizzazione dei costi.** Seleziona il tipo e la configurazione di istanza appropriati per bilanciare prestazioni e costi in base al carico di lavoro. Paghi solo per le risorse che utilizzi. Ciò può potenzialmente ridurre i costi operativi eliminando la necessità di gestire l'hardware locale e sfruttando Cloud AWS le economie di scala.
+ [Le istanze riservate](https://aws.amazon.com/ec2/pricing/reserved-instances/) possono aiutarti a pianificare in anticipo e ridurre sostanzialmente i costi quando utilizzi Couchbase su. AWS
+ La [scalabilità automatica impedisce l'](https://aws.amazon.com/autoscaling/)eccessivo approvvigionamento e aiuta a ottimizzare l'utilizzo e l'efficienza in termini di costi.

**Sicurezza migliorata.** Approfitta delle solide funzionalità di sicurezza disponibili AWS, come la crittografia dei dati, i controlli di accesso e i gruppi di sicurezza per proteggere i dati sensibili archiviati in Couchbase. Vantaggi aggiuntivi:
+ Il [modello di responsabilitàAWS condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) distingue chiaramente tra sicurezza *del* cloud (AWS responsabilità) e sicurezza *nel* cloud (responsabilità del cliente).
+ [AWS la conformità](https://aws.amazon.com/compliance/) supporta i principali standard di sicurezza.
+ AWS offre opzioni di [crittografia](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/welcome.html) avanzate.
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) ti aiuta a gestire l'accesso sicuro alle tue risorse.

**Gestione semplificata**. AWS fornisce servizi gestiti per Couchbase, quindi puoi concentrarti sullo sviluppo di applicazioni anziché sulla gestione dell'infrastruttura sottostante.

**Copertura globale**. Puoi distribuire il tuo cluster Couchbase su più cluster Regioni AWS per ottenere una bassa latenza per gli utenti di tutto il mondo. Puoi distribuire i tuoi database interamente nel cloud o in un ambiente ibrido. Puoi proteggere i tuoi dati con una sicurezza integrata di livello aziendale e una sincronizzazione bidirezionale rapida ed efficiente dei dati dall'edge al cloud. Allo stesso tempo, puoi semplificare lo sviluppo con un modello di programmazione coerente per la creazione di app web e mobili.

**Continuità aziendale**:
+ **Backup e ripristino dei dati**. In caso di problemi, è possibile utilizzare [AWS Backup](https://aws.amazon.com/backup/)per garantire la resilienza dei dati e un facile ripristino. Per le opzioni di disaster recovery, consulta la documentazione di [AWS Well-Architected](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html) Framework.
+ **Distribuzione multiregionale di Couchbase**: per distribuire un database Couchbase in un AWS ambiente multiregionale, puoi abbonarti a Couchbase Server in [Marketplace AWS](https://aws.amazon.com/marketplace/pp/prodview-zy5g2wqmqdyzw), utilizzare [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)modelli per creare cluster Couchbase separati in ciascuna regione e quindi configurare la replica interregionale per sincronizzare i dati tra le regioni. Questa configurazione garantisce un'elevata disponibilità e ridondanza geografica tra più regioni. Per ulteriori informazioni, consulta [Distribuire Couchbase Server Using Marketplace AWS nella documentazione di Couchbase](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html).

**Agilità dell'infrastruttura:**
+ Approvvigionamento e [disattivazione rapidi delle risorse](https://aws.amazon.com/products/management-and-governance/use-cases/provisioning-and-orchestration/)
+ [Copertura globale dell'infrastruttura](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Scalabilità automatica in](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) base alla domanda
+ [Infrastructure as Code (IaC)](https://aws.amazon.com/what-is/iac/) per implementazioni coerenti
+ Diversi [tipi di istanze](https://aws.amazon.com/ec2/instance-types/) ottimizzate per carichi di lavoro diversi

**Abilitazione dell'innovazione:**
+ [Accesso alle tecnologie più recenti, tra cui [AI/ML](https://aws.amazon.com/ai/generative-ai/), [IoT](https://aws.amazon.com/iot/) e analisi](https://aws.amazon.com/big-data/datalakes-and-analytics/)
+ [Servizi gestiti](https://aws.amazon.com/blogs/architecture/reduce-operational-load-using-aws-managed-services-for-your-data-solutions/), che riducono il sovraccarico operativo
+ [Pratiche moderne di sviluppo di applicazioni](https://aws.amazon.com/modern-apps/)
+ Opzioni di elaborazione [serverless](https://aws.amazon.com/serverless/)

**Eccellenza operativa**:
+ [Monitoraggio e registrazione centralizzati](https://docs.aws.amazon.com/prescriptive-guidance/latest/designing-control-tower-landing-zone/logging-monitoring.html)
+ [Gestione automatizzata delle risorse](https://aws.amazon.com/systems-manager/)
+ Funzionalità di [manutenzione predittiva](https://aws.amazon.com/what-is/predictive-maintenance/)
+ [Visibilità migliorata sull'](https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-cloudwatch-provides-centralized-visibility-telemetry-configurations/)utilizzo delle risorse
+ [Processi di implementazione semplificati](https://aws.amazon.com/blogs/mt/streamline-change-processes-and-improve-governance-with-aws-well-architected/)

Opportunità di **modernizzazione**:
+ Architettura di [microservizi](https://aws.amazon.com/microservices/)
+ [DevOps](https://aws.amazon.com/devops/)implementazione delle pratiche
+ sviluppo di applicazioni [native per il cloud](https://aws.amazon.com/what-is/cloud-native/)
+ [Modernizzazione delle applicazioni legacy](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-modernizing-applications/welcome.html)

**Vantaggi competitivi:**
+ [Tempi di commercializzazione più rapidi](https://aws.amazon.com/blogs/smb/accelerate-time-to-market-and-business-growth-with-an-automated-software-as-a-service-platform/)
+ [Esperienza del cliente](https://aws.amazon.com/blogs/publicsector/improving-customer-experience-for-the-public-sector-using-aws-services/) migliorata
+ [Processo decisionale basato sui dati](https://aws.amazon.com/data/data-driven-decision-making/)
+ [Business intelligence migliorata](https://aws.amazon.com/what-is/business-intelligence/)

# Esegui la migrazione di Db2 for LUW ad Amazon EC2 utilizzando la spedizione di log per ridurre i tempi di interruzione
<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*

## Riepilogo
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Quando i clienti migrano i loro carichi di lavoro IBM Db2 for LUW (Linux, UNIX e Windows) su Amazon Web Services (AWS), utilizzare Amazon Elastic Compute Cloud (Amazon) con il modello Bring Your Own License (BYOL) è il modo più veloce. EC2 Tuttavia, la migrazione di grandi quantità di dati da Db2 locale ad AWS può essere una sfida, soprattutto quando la finestra di interruzione è breve. Molti clienti cercano di impostare la finestra di interruzione su meno di 30 minuti, il che lascia poco tempo per il database stesso.

Questo modello illustra come eseguire una migrazione Db2 con una breve finestra di interruzione utilizzando la spedizione dei log delle transazioni. Questo approccio si applica a Db2 su una piattaforma Linux little-endian.

## Prerequisiti e limitazioni
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su EC2 un'istanza che corrisponde ai layout del file system locale
+ Un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) accessibile all'istanza EC2 
+ Una policy e un ruolo di AWS Identity and Access Management (IAM) per effettuare chiamate programmatiche ad Amazon S3
+ Fuso orario e orologi di sistema sincronizzati su Amazon EC2 e sul server locale
+ La rete locale connessa ad AWS tramite AWS [ Site-to-SiteVPN o AWS](https://aws.amazon.com/vpn/) [Direct Connect](https://aws.amazon.com/directconnect/)

**Limitazioni**
+ L'istanza locale Db2 e Amazon EC2 devono appartenere alla stessa famiglia di [piattaforme](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ Il carico di lavoro locale di Db2 deve essere registrato. Per bloccare qualsiasi transazione non registrata, impostala nella configurazione del database. `blocknonlogged=yes`

**Versioni del prodotto**
+ Db2 per LUW versione 11.5.9 e successive

## Architecture
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Stack tecnologico di origine**
+ Db2 su Linux x86\$164****

**Stack tecnologico Target**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Simple Storage Service (Amazon S3)
+ AWS Site-to-Site VPN o Direct Connect

**Architettura Target**

Il diagramma seguente mostra un'istanza Db2 in esecuzione in locale con una connessione di rete privata virtuale (VPN) a Db2 su Amazon. EC2 Le linee tratteggiate rappresentano il tunnel VPN tra il tuo data center e il cloud AWS.

![\[Flusso di lavoro per eseguire una migrazione Db2 entro una breve finestra di interruzione utilizzando la spedizione dei log delle transazioni.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Tools (Strumenti)
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, puoi creare interfacce virtuali direttamente ai servizi AWS pubblici bypassando i provider di servizi Internet nel tuo percorso di rete.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ti aiuta a trasferire il traffico tra le istanze che avvii su AWS e la tua rete remota.

**Altri strumenti**
+ [db2cli è il comando CLI](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) interattivo di Db2.

## Best practice
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Sul database di destinazione, utilizza gli [endpoint gateway per Amazon S3 per](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) accedere all'immagine di backup del database e ai file di log in Amazon S3.
+ Sul database di origine, usa [AWS PrivateLink per Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) per inviare l'immagine di backup del database e i file di log ad Amazon S3.

## Epiche
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Impostazione delle variabili di ambiente
<a name="set-environment-variables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Imposta le variabili di ambiente. | Questo modello utilizza i seguenti nomi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)È possibile modificarli per adattarli al proprio ambiente. | DBA | 

### Configura il server Db2 locale
<a name="configure-the-on-premises-db2-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare AWS CLI. | Per scaricare e installare la versione più recente dell'interfaccia a riga di comando di AWS, esegui i seguenti comandi:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Amministratore Linux | 
| Configura una destinazione locale per i log di archivio Db2. | Per mantenere il database di destinazione su Amazon EC2 sincronizzato con il database di origine locale, è necessario recuperare i log delle transazioni più recenti dall'origine.In questa configurazione, `/db2logs` viene impostato da `LOGARCHMETH2` on the source come area di staging. I log archiviati in questa directory verranno sincronizzati in Amazon S3 e vi si accederà da Db2 su Amazon. EC2 Il pattern utilizza `LOGARCHMETH2` because `LOGARCHMETH1` potrebbe essere stato configurato per utilizzare uno strumento di un fornitore di terze parti a cui il comando AWS CLI non può accedere. Per recuperare i log, esegui il seguente comando: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Esegui un backup del database online. | Esegui un backup del database online e salvalo nel file system di backup locale: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configura il bucket S3 e la policy IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Crea un bucket S3 per il server locale a cui inviare le immagini Db2 di backup e i file di log su AWS. Il bucket sarà accessibile anche da Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Amministratore di sistema AWS | 
|  Creare una policy IAM | Il `db2bucket.json` file contiene la policy IAM per accedere al bucket 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>Per creare la policy, usa il seguente comando AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> L'output JSON mostra l'Amazon Resource Name (ARN) per la policy, `aws_account_id` dove rappresenta l'ID del tuo account:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Collega la policy IAM al ruolo IAM utilizzato dall' EC2 istanza. | Nella maggior parte degli ambienti AWS, un' EC2 istanza in esecuzione ha un ruolo IAM impostato dall'amministratore di sistema. Se il ruolo IAM non è impostato, crea il ruolo e scegli **Modifica il ruolo IAM** sulla EC2 console per associare il ruolo all' EC2 istanza che ospita il database Db2. Collega la policy IAM al ruolo IAM con la policy ARN:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Dopo aver allegato la policy, qualsiasi EC2 istanza associata al ruolo IAM può accedere al bucket S3. | Amministratore AWS, amministratore di sistema AWS | 

### Inviare l'immagine di backup del database di origine e i file di log ad Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura l'AWS CLI sul server Db2 locale. | Configura la CLI AWS con `Access Key ID` e `Secret Access Key` generata nel passaggio precedente:<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>  | Amministratore AWS, amministratore di sistema AWS | 
| Invia l'immagine di backup ad Amazon S3. | In precedenza, un backup del database online veniva salvato nella directory `/backup` locale. Per inviare l'immagine di backup al bucket S3, esegui il seguente comando:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Amministratore AWS, ingegnere addetto alla migrazione | 
| Invia i log di archivio Db2 ad Amazon S3. | Sincronizza i log di archivio Db2 locali con il bucket S3 a cui può accedere l'istanza Db2 di destinazione su Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Esegui questo comando periodicamente utilizzando cron o altri strumenti di pianificazione. La frequenza dipende dalla frequenza con cui il database di origine archivia i file di registro delle transazioni.  | Amministratore AWS, ingegnere addetto alla migrazione | 

### Connetti Db2 su Amazon EC2 ad Amazon S3 e avvia la sincronizzazione del database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un PKCS12 keystore. | Db2 utilizza un keystore di crittografia Public-Key Cryptography Standards (PKCS) per proteggere la chiave di accesso AWS. Crea un keystore e configura l'istanza Db2 di origine per utilizzarlo:<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 | 
| Crea l'alias di accesso allo storage Db2. | Per creare l'[alias di accesso allo storage](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), utilizzate la seguente sintassi dello script:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ad esempio, lo script potrebbe avere il seguente aspetto: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Imposta l'area di staging. | Per impostazione predefinita, Db2 utilizza `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` come area di gestione temporanea per caricare e scaricare file da e verso Amazon S3. Il percorso predefinito si trova nella home `sqllib/tmp/RemoteStorage.xxxx` directory dell'istanza, con `xxxx` riferimento al numero di partizione Db2. Si noti che l'area di gestione temporanea deve avere una capacità sufficiente per contenere le immagini di backup e i file di registro. È possibile utilizzare il registro per indirizzare l'area di gestione temporanea in una directory diversa.Consigliamo inoltre di utilizzare `DB2_ENABLE_COS_SDK=ON` e il collegamento alla `awssdk` libreria per bypassare l'area di staging di Amazon S3 per il backup e il ripristino del database: `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`<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 | 
| Ripristina il database dall'immagine di backup. | Ripristina il database di destinazione su Amazon EC2 dall'immagine di backup nel bucket S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Esegui il rollforward del database. | Una volta completato il ripristino, il database di destinazione verrà messo in stato di attesa di rollforward. Configura `LOGARCHMETH1` e `LOGARCHMETH2` in modo che Db2 sappia dove trovare i file di registro delle transazioni:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Avvia il rollforward del database:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Questo comando elabora tutti i file di registro che sono stati trasferiti nel bucket S3. Eseguilo periodicamente in base alla frequenza del `s3 sync` comando sui server Db2 locali. Ad esempio, se `s3 sync` viene eseguito ogni ora e sono necessari 10 minuti per sincronizzare tutti i file di registro, imposta il comando in modo che venga eseguito 10 minuti dopo ogni ora.  | DBA | 

### Porta Db2 su Amazon EC2 online durante la finestra di cutover
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Porta online il database di destinazione. | Durante la finestra di cutover, effettuate una delle seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Dopo la sincronizzazione dell'ultimo log delle transazioni in Amazon S3, esegui `ROLLFORWARD` il comando per l'ultima volta:<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>Porta online il database di destinazione e indirizza le connessioni dell'applicazione a Db2 su Amazon EC2. | DBA | 

## risoluzione dei problemi
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Se più database hanno lo stesso nome di istanza e lo stesso nome di database su host diversi (DEV, QA, PROD), i backup e i log potrebbero andare nella stessa sottodirectory. | Usa diversi bucket S3 per DEV, QA e PROD e aggiungi il nome host come prefisso della sottodirectory per evitare confusione. | 
| Se sono presenti più immagini di backup nella stessa posizione, al momento del ripristino verrà visualizzato il seguente errore:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Nel `restore` comando, aggiungi il timestamp del backup:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Risorse correlate
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operazioni di backup e ripristino Db2 tra diversi sistemi operativi e piattaforme hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configura 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)
+ [Metodo di archiviazione dei log secondario Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)

# Esegui la migrazione di Db2 per LUW ad Amazon EC2 con disaster recovery ad alta disponibilità
<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*

## Riepilogo
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-summary"></a>

Quando i clienti migrano il loro carico di lavoro IBM Db2 LUW (Linux, UNIX e Windows) su Amazon Web Services (AWS), utilizzare Amazon Elastic Compute Cloud (Amazon EC2) con il modello Bring Your Own License (BYOL) è il modo più veloce. Tuttavia, la migrazione di grandi quantità di dati da Db2 locale ad AWS può essere una sfida, soprattutto quando la finestra di interruzione è breve. Molti clienti cercano di impostare la finestra di interruzione su meno di 30 minuti, il che lascia poco tempo per il database stesso.

Questo modello illustra come eseguire una migrazione Db2 con una breve finestra di interruzione utilizzando Db2 High Availability Disaster Recovery (HADR). Questo approccio si applica ai database Db2 che si trovano sulla piattaforma Linux little-endian e non utilizzano Data Partitioning Feature (DPF).

## Prerequisiti e limitazioni
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su un'istanza Amazon EC2 che corrisponde ai layout del file system locale
+ Un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) accessibile all'istanza EC2
+ Una policy e un ruolo di AWS Identity and Access Management (IAM) per effettuare chiamate programmatiche ad Amazon S3
+ Fuso orario e orologi di sistema sincronizzati su Amazon EC2 e sul server locale
+ La rete locale connessa ad AWS tramite AWS [ Site-to-SiteVPN o AWS](https://aws.amazon.com/vpn/) [Direct Connect](https://aws.amazon.com/directconnect/)
+ Comunicazione tra il server locale e Amazon EC2 su porte HADR

**Limitazioni**
+ [L'istanza locale Db2 e Amazon EC2 devono appartenere alla stessa famiglia di piattaforme.](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ HADR non è supportato in un ambiente di database partizionato.
+ HADR non supporta l'uso di raw I/O (accesso diretto al disco) per i file di registro del database.
+ HADR non supporta la registrazione infinita.
+ `LOGINDEXBUILD`deve essere impostato su`YES`, il che aumenterà l'utilizzo del registro per la ricostruzione dell'indice.
+ Il carico di lavoro locale di Db2 deve essere registrato. Impostato `blocknonlogged=yes` nella configurazione del database per bloccare tutte le transazioni non registrate.

**Versioni del prodotto**
+ Db2 per LUW versione 11.5.9 e successive

## Architecture
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-architecture"></a>

**Stack tecnologico di origine**
+ Db2 su Linux x86\$164****

**Stack tecnologico Target**
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Simple Storage Service (Amazon S3)
+  Site-to-SiteVPN AWS

**Architettura Target**

Nel diagramma seguente, Db2 locale viene eseguito `db2-server1` come principale. Ha due obiettivi di standby HADR. Un target di standby è in locale ed è opzionale. L'altro obiettivo in standby è Amazon EC2. `db2-ec2` Dopo che il database viene trasferito ad AWS, `db2-ec2` diventa il database principale.

![\[Flusso di lavoro per migrare con una breve finestra di interruzione un Db2 locale utilizzando Db2 HADR.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2db43e4b-f0ea-4a92-96da-4cafb7d3368b/images/5295420e-3cd8-4127-9a18-ade971c36339.png)


1. I log vengono trasmessi in streaming dal database locale primario al database locale in standby.

1. Utilizzando Db2 HADR, i log vengono trasmessi in streaming dal database locale primario tramite Site-to-Site VPN a Db2 su Amazon EC2.

1. I log di backup e archiviazione di Db2 vengono inviati dal database locale primario al bucket S3 su AWS.

## Tools (Strumenti)
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-tools"></a>

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, puoi creare interfacce virtuali direttamente ai servizi AWS pubblici bypassando i provider di servizi Internet nel tuo percorso di rete.
+ [Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/)) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ti aiuta a trasferire il traffico tra le istanze che avvii su AWS e la tua rete remota.

**Altri strumenti**
+ [db2cli è il comando CLI](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) interattivo di Db2.

## Best practice
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-best-practices"></a>
+ Sul database di destinazione, utilizza gli [endpoint gateway per Amazon S3 per](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) accedere all'immagine di backup del database e ai file di log in Amazon S3.
+ Sul database di origine, usa [AWS PrivateLink per Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) per inviare l'immagine di backup del database e i file di log ad Amazon S3.

## Epiche
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-epics"></a>

### Impostazione delle variabili di ambiente
<a name="set-environment-variables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Imposta le variabili di ambiente. | Questo modello utilizza i seguenti nomi e porte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)È possibile modificarle per adattarle al proprio ambiente. | DBA | 

### Configura il server Db2 locale
<a name="configure-the-on-premises-db2-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS CLI. | Per scaricare e installare la versione più recente di AWS CLI, esegui i seguenti comandi:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Amministratore Linux | 
| Configura una destinazione locale per i log di archivio Db2. | Condizioni quali lavori di aggiornamento intensivi in batch e rallentamenti della rete possono causare un ritardo nel server di standby HADR. Per recuperare il ritardo, il server di standby necessita dei log delle transazioni del server primario. La sequenza di posizioni in cui richiedere i log è la seguente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)In questa configurazione, `/db2logs` viene impostata da `LOGARCHMETH2` on the source come area di staging. I log archiviati in questa directory verranno sincronizzati in Amazon S3 e accessibili da Db2 su Amazon EC2. Il modello utilizza `LOGARCHMETH2` because `LOGARCHMETH1` potrebbe essere stato configurato per utilizzare uno strumento di un fornitore di terze parti a cui il comando AWS CLI non può accedere:<pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Esegui un backup del database online. | Esegui un backup del database online e salvalo nel file system di backup locale:<pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configura il bucket S3 e la policy IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Crea un bucket S3 per il server locale a cui inviare le immagini Db2 di backup e i file di log su AWS. Il bucket sarà accessibile da Amazon EC2:<pre>aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1 </pre> | Amministratore AWS | 
| Creare una policy IAM | Il `db2bucket.json` file contiene la policy IAM per l'accesso al 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>Per creare la policy, usa il seguente comando AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3hapolicy \<br />      --policy-document file://db2bucket.json </pre>L'output JSON mostra l'Amazon Resource Name (ARN) per la policy, `aws_account_id` dove rappresenta l'ID del tuo account:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Allega la policy IAM al ruolo IAM. | Di solito, all'istanza EC2 con Db2 in esecuzione viene assegnato un ruolo IAM dall'amministratore di sistema. Se non viene assegnato alcun ruolo IAM, puoi scegliere **Modifica ruolo IAM** sulla console Amazon EC2.Collega la policy IAM al ruolo IAM associato all'istanza EC2. Dopo aver allegato la policy, l'istanza EC2 può accedere al bucket S3:<pre>aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole   </pre> |  | 

### Inviare l'immagine di backup del database di origine e i file di log ad Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS CLI sul server Db2 locale. | Configura l'interfaccia a riga di comando di AWS con `Access Key ID` e `Secret Access Key` che hai generato in precedenza:<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> | Amministratore AWS, amministratore di sistema AWS | 
| Invia l'immagine di backup ad Amazon S3. | In precedenza, un backup del database online veniva salvato nella directory `/backup` locale. Per inviare l'immagine di backup al bucket S3, esegui il seguente comando:<pre>aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup</pre> | Amministratore AWS, amministratore di sistema AWS | 
| Invia i log di archivio Db2 ad Amazon S3. | Sincronizza i log di archivio Db2 locali con il bucket Amazon S3 a cui può accedere l'istanza Db2 di destinazione su Amazon EC2:<pre>aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS</pre>Esegui questo comando periodicamente utilizzando cron o altri strumenti di pianificazione. La frequenza dipende dalla frequenza con cui il database di origine archivia i file di registro delle transazioni. |  | 

### Connetti Db2 su Amazon EC2 ad Amazon S3 e avvia la sincronizzazione iniziale del database
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-initial-database-sync"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un PKCS12 keystore. | Db2 utilizza un keystore di crittografia Public-Key Cryptography Standards (PKCS) per proteggere la chiave di accesso AWS. Crea un keystore e configura il Db2 sorgente per utilizzarlo:<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 | 
| Crea l'alias di accesso allo storage Db2. | Db2 utilizza un alias di accesso allo storage per accedere ad Amazon S3 direttamente con `INGEST` i comandi`LOAD`,`BACKUP DATABASE`, o. `RESTORE DATABASE` Perché hai assegnato un ruolo IAM all'istanza EC2 `USER` e `PASSWORD` non sei obbligatorio:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ad esempio, lo script potrebbe avere il seguente aspetto: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'" ` | DBA | 
| Imposta l'area di staging. | Ti consigliamo di utilizzare `DB2_ENABLE_COS_SDK=ON` e il link alla `awssdk` libreria per bypassare l'area di staging di Amazon S3 per il backup e il ripristino del database: `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`<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 | 
| Ripristina il database dall'immagine di backup. | Ripristina il database di destinazione su Amazon EC2 dall'immagine di backup nel bucket S3:<pre>db2 create db sample on /data1<br />db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing</pre> | DBA | 

### Configura HADR senza HADR in locale
<a name="set-up-hadr-with-no-hadr-on-premises"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il server Db2 locale come principale. | Aggiorna le impostazioni di configurazione del database per HADR su `db2-server1` (l'origine locale) come principale. Imposta `HADR_SYNCMODE` sulla `SUPERASYNC` modalità, che ha il tempo di risposta delle transazioni più breve:`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`Sono previsti alcuni ritardi di rete tra il data center locale e AWS. (È possibile impostare un `HADR_SYNCMODE` valore diverso in base all'affidabilità della rete. Per ulteriori informazioni, vedere la sezione [Risorse correlate](#migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources)). | DBA | 
| Cambia la destinazione dell'archivio dei log del database di destinazione. | Modifica la destinazione dell'archivio di log del database di destinazione in modo che corrisponda all'ambiente 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 | 
| Configura HADR per Db2 sul server Amazon EC2. | Aggiorna la configurazione del database per HADR in modalità standby: `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` | DBA | 
| Verifica la configurazione HADR. | Verificare i parametri HADR sui server Db2 di origine e di destinazione.Per verificare la configurazione su`db2-server1`, esegui il seguente 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> Per verificare la configurazione attivata`db2-ec2`, esegui il seguente 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>I `HADR_REMOTE_SVC` parametri `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`, e indicano una configurazione HADR principale e una in standby. | DBA | 
| Avvia l'istanza Db2 HADR. | Avvia prima l'istanza Db2 HADR sul server di standby: `db2-ec2`<pre>db2 start hadr on db sample as standby<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Avvia Db2 HADR sul server primario (di origine): `db2-server1`<pre>db2 start hadr on db sample as primary<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>La connessione HADR tra Db2 locale e Amazon EC2 è stata ora stabilita con successo. Il server primario Db2 `db2-server1` avvia lo streaming dei record dei log delle transazioni in tempo reale. `db2-ec2` | DBA | 

### Configura HADR quando HADR esiste in locale
<a name="set-up-hadr-when-hadr-exists-on-premises"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi Db2 su Amazon EC2 come standby ausiliario. | Se HADR è in esecuzione sull'istanza Db2 locale, puoi aggiungere Db2 su Amazon EC2 come standby ausiliario eseguendo i seguenti comandi su: `HADR_TARGET_LIST` `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 | 
| Aggiungi le informazioni di standby ausiliarie ai server locali. | Aggiornamento `HADR_TARGET_LIST` sui due server locali (primario e standby).Su`db2-server1`, esegui il codice seguente:`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.``db2-server2`Attivo, esegui il codice seguente:`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 | 
| Verifica la configurazione HADR. | Verificare i parametri HADR sui server Db2 di origine e di destinazione.Attivo`db2-server1`, esegui il codice seguente:<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>`db2-server2`Attivo, esegui il codice seguente:<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>`db2-ec2`Attivo, esegui il codice seguente:<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>I `HADR_TARGET_LIST` parametri `HADR_LOCAL_HOST``HADR_LOCAL_SVC`,`HADR_REMOTE_HOST`,`HADR_REMOTE_SVC`, e indicano una configurazione HADR principale e due in standby. |  | 
| Arresta e avvia Db2 HADR. | `HADR_TARGET_LIST`è ora configurato su tutti e tre i server. Ogni server Db2 conosce gli altri due. Arresta e riavvia HADR (breve interruzione) per sfruttare la nuova configurazione.Attivo`db2-server1`, esegui i seguenti comandi:<pre>db2 stop hadr on db sample<br />db2 deactivate db sample<br />db2 activate db sample</pre>`db2-server2`Attivo, esegui i seguenti comandi:<pre>db2 deactivate db sample<br />db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>`db2-ec2`Attivo, esegui i seguenti comandi:<pre>db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>`db2-server1`Attivo, esegui i seguenti comandi:<pre>db2 start hadr on db sample as primary<br />SQL1766W  The command completed successfully</pre>La connessione HADR tra Db2 locale e Amazon EC2 è ora stabilita con successo. Il server primario Db2 `db2-server1` avvia lo streaming dei record dei log delle transazioni su entrambi `db2-server2` e `db2-ec2` in tempo reale.  | DBA | 

### Imposta Db2 su Amazon EC2 come principale durante la finestra di cutover
<a name="make-db2-on-amazon-ec2-as-primary-during-the-cutover-window"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verificare che non vi sia alcun ritardo HADR sul server di standby. | Controllate lo stato HADR dal server primario. `db2-server1` Non allarmatevi quando `HADR_STATE` è in `REMOTE_CATCHUP` stato, il che è normale quando `HADR_SYNCMODE` è impostato su. `SUPERASYNC` Poi `PRIMARY_LOG_TIME` e `STANDBY_REPLAY_LOG_TIME` mostrano che sono sincronizzati:<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 | 
| Esegui HADR Takeover. | Per completare la migrazione, crea `db2-ec2` il database primario eseguendo il comando HADR takeover. Utilizzate il comando `db2pd` per verificare il `HADR_ROLE` valore:<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>Per completare la migrazione verso AWS, indirizza le connessioni dell'applicazione a Db2 su Amazon EC2. |  | 

## Risoluzione dei problemi
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Se utilizzi NAT per motivi di firewall e sicurezza, l'host può avere due indirizzi IP (uno interno e uno esterno), il che può causare un errore di controllo dell'indirizzo IP HADR. Il `START HADR ON DATABASE` comando restituirà il seguente messaggio:`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.` | Per [supportare HADR in un ambiente NAT,](https://www.ibm.com/docs/en/db2/11.5?topic=support-hadr-nat) è possibile configurarlo `HADR_LOCAL_HOST` con l'indirizzo interno ed esterno. Ad esempio, se il server Db2 ha il nome interno `host1` e il nome esterno`host1E`, `HADR_LOCAL_HOST` può essere. `HADR_LOCAL_HOST: "host1 \| host1E"` | 

## Risorse correlate
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources"></a>
+ [Operazioni di backup e ripristino Db2 tra diversi sistemi operativi e piattaforme hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configura Db2 STORAGE ACCESS ALIAS e REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Disaster recovery ad alta disponibilità Db2](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)
+ [hadr\$1syncmode - Modalità di sincronizzazione HADR per le scritture di log nel parametro di configurazione dello stato peer](https://www.ibm.com/docs/en/db2/11.5?topic=dcp-hadr-syncmode-hadr-synchronization-mode-log-writes-in-peer-state)

# Esegui la migrazione di applicazioni ospitate da IIS su Amazon utilizzando appcmd.exe EC2
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd"></a>

*Deepak Kumar, Amazon Web Services*

## Riepilogo
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-summary"></a>

Quando esegui la migrazione di applicazioni ospitate da Internet Information Services (IIS) su istanze Amazon Elastic Compute Cloud (Amazon EC2), devi affrontare diverse sfide di autenticazione. Queste sfide includono il reinserimento delle credenziali di dominio per le identità dei pool di applicazioni e la potenziale rigenerazione delle chiavi macchina per la corretta funzionalità del sito web. È possibile utilizzarlo AWS Directory Service per stabilire relazioni di fiducia con Active Directory locale o creare una nuova Active Directory gestita in. AWS Questo modello descrive un approccio di migrazione pulito che utilizza la funzionalità di backup e ripristino di IIS su EC2 istanze Amazon. L'approccio utilizza appcmd.exe per disinstallare e reinstallare IIS sulle EC2 istanze di destinazione, permettendo una corretta migrazione dei siti Web ospitati su IIS, delle identità dei pool di applicazioni e delle chiavi di macchina. 

## Prerequisiti e limitazioni
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS per il server di destinazione.
+ Un server IIS di origine funzionale con siti Web ospitati su di esso.
+ Comprensione dei principi di funzionamento di IIS come amministrazione e configurazione.
+ Accesso da amministratore di sistema sia sul server di origine che su quello di destinazione.
+ Migrazione completata del server IIS di origine verso la destinazione Account AWS. Puoi utilizzare strumenti di migrazione come AWS Application Migration Service un approccio basato su snapshot di Amazon Machine Image (AMI) o altri strumenti di migrazione.

**Limitazioni**
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per informazioni sulla disponibilità per regione, consulta [AWS Servizi per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ IIS 8.5 o IIS 10.0

## Architecture
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-architecture"></a>

**Stack di tecnologia di origine**
+ Windows Server con IIS 8.5 o IIS 10.0 installato

**Stack tecnologico Target**
+ Windows Server con IIS 8.5 o IIS 10.0 installato
+ Application Migration Service

**Architettura di destinazione**

Il diagramma seguente mostra i componenti del flusso di lavoro e dell'architettura per questo modello.

![\[Flusso di lavoro per migrare applicazioni ospitate da IIS su Amazon. EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2f9f7757-b2bc-4077-b51a-700de521424c/images/36aa9b7a-d0aa-4fa4-be47-9fee43b53c22.png)


La soluzione include i seguenti passaggi:

1. [Installa](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) e configura l'agente di AWS replica sul server IIS di origine nel data center aziendale. Questo agente avvia il processo di replica e gestisce il trasferimento dei dati verso. AWS

1. L'agente di AWS replica stabilisce una [connessione sicura](https://docs.aws.amazon.com/mgn/latest/ug/Agent-Related-FAQ.html#How-Communication-Secured) all'Application Migration Service e inizia a replicare i dati del server di origine, incluse le configurazioni IIS, i siti Web e i file delle applicazioni.

1. Application Migration Service avvia EC2 le istanze nella sottorete dell'applicazione con i dati replicati. L' EC2 istanza di destinazione esegue IIS e contiene le applicazioni migrate con i volumi Amazon Elastic Block Store (Amazon EBS) associati. Dopo la replica iniziale, Application Migration Service continua a sincronizzare le modifiche finché non sei [pronto per passare al nuovo](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html#ready-for-cutover1) ambiente.

## Tools (Strumenti)
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-tools"></a>

**Servizi AWS**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)ti aiuta a riospitare (*lift and shift*) le applicazioni Cloud AWS senza modifiche e con tempi di inattività minimi.
+ [Amazon Elastic Block Store (Amazon EBS) fornisce volumi di storage a livello di blocco da utilizzare con le istanze Amazon](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html). EC2 
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.

**Altri strumenti**
+ [Internet Information Services (IIS)](https://www.iis.net/overview) per Windows Server è un server Web con un'architettura scalabile e aperta per l'hosting di qualsiasi cosa sul Web. IIS offre una serie di strumenti di amministrazione, tra cui strumenti di amministrazione e da riga di comando (ad esempio, appcmd.exe), codice e script gestiti e APIs supporto per Windows PowerShell .

## Epiche
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-epics"></a>

### Esegui il backup di IIS all'origine prima della migrazione
<a name="back-up-iis-at-source-prior-to-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea backup di siti Web ospitati su IIS, chiave di configurazione e chiave. `WAS` | Per creare backup per siti Web ospitati su IIS, la chiave di configurazione (`iisConfigurationKey`) e la `WAS` chiave (`iisWasKey`), utilizzate appcmd.exe sul server di origine. Utilizza le fasi seguenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html)Per esportare la chiave di configurazione e la `WAS` chiave, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Amministratore IIS | 

### Disinstalla e reinstalla IIS sul server di destinazione
<a name="uninstall-and-reinstall-iis-on-the-target-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Disinstalla IIS sul server di destinazione. | Per disinstallare IIS sul server di destinazione, attenersi alla seguente procedura: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Amministratore IIS | 
| Installa IIS sul server di destinazione. | Per installare IIS sul server di destinazione, attenersi alla seguente procedura: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Amministratore IIS | 

### Ripristina i siti Web e la configurazione IIS dai backup
<a name="restore-iis-websites-and-configuration-from-the-backups"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ripristina i siti Web e la configurazione IIS. | Per ripristinare i backup IIS creati dal server di origine sul server di destinazione, attenersi alla seguente procedura:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | Amministratore IIS | 

## Risorse correlate
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-resources"></a>

**AWS documentazione**
+ [Installazione del AWS Replication Agent](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) (AWS Application Migration Service documentazione)

**AWS Linee guida prescrittive**
+ [Esegui la migrazione di una macchina virtuale locale su Amazon utilizzando 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)
+ [Utilizzo delle AMIs nostre istantanee di Amazon EBS per i backup](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/ec2-backup.html#amis-snapshots)

**Risorse Microsoft**
+ [Identità del pool di applicazioni](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/was-service-svchost-process-operation/understanding-identities#application-pool-identities)
+ [Documentazione IIS](https://learn.microsoft.com/en-us/iis/)
+ [Documentazione IIS 8 appcmd.exe](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635852(v=ws.11))
+ [Documentazione IIS 10 appcmd.exe](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/new-features-introduced-in-iis-10)
+ [Potenti strumenti di amministrazione](https://learn.microsoft.com/en-us/iis/overview/powerful-admin-tools)

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2 utilizzando Application Migration Service
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn"></a>

*Senthil Ramasamy, Amazon Web Services*

## Riepilogo
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-summary"></a>

Questo modello descrive i passaggi per la migrazione di un database Microsoft SQL Server da un data center locale a un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Utilizza AWS Application Migration Service (AWS MGN) per riospitare il database utilizzando una migrazione automatizzata. lift-and-shift AWS MGN esegue la replica a livello di blocco del server del database di origine.

## Prerequisiti e limitazioni
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Un database Microsoft SQL Server di origine in un data center locale

**Limitazioni**
+ La larghezza di banda della rete potrebbe essere limitata tra il data center locale e. AWS
+ AWS MGN è limitato ai database ospitati su server autonomi con archiviazione dedicata. Non supporta la migrazione di sistemi di database in cluster e di sistemi di database in cui la velocità di modifica supera il throughput di rete.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la [pagina Endpoint e quote del servizio](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ Tutte le versioni del database Microsoft SQL Server
+ Sistemi operativi Windows e Linux che [supportano AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)

## Architecture
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-architecture"></a>

**Stack tecnologico di origine**

Un database Microsoft SQL Server locale

**Stack tecnologico Target**

Un database Microsoft SQL Server su un' EC2 istanza Amazon

**Architettura Target**

![\[Replica i dati da un data center aziendale locale su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a459eaef-c256-4691-a7ec-2304f634228c/images/d8d6cee7-f42c-4686-bf92-6e6d39adfb17.png)


Questa architettura utilizza AWS MGN per replicare i dati da un data center aziendale locale a. AWS Il diagramma mostra il processo di replica dei dati, le comunicazioni tramite API e le fasi di test e cutover.

1. Replica dei dati:
   + AWS MGN replica i dati dal data center aziendale locale AWS e avvia la replica continua delle modifiche.
   + I server di replica nella sottorete di staging ricevono ed elaborano i dati.

1. Comunicazione tramite API:
   + I server di replica si connettono agli AWS endpoint delle API MGN EC2, Amazon e Amazon Simple Storage Service (Amazon S3) tramite la porta TCP 443.
   + AWS MGN gestisce la migrazione.
   + Amazon EC2 gestisce le operazioni delle istanze.

1. Test e cutover:
   + Le istanze di test vengono avviate nella sottorete operativa utilizzando dati replicati.
   + Dopo il successo dei test, AWS MGN crea istanze cutover per la migrazione finale.

## Tools (Strumenti)
<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) vi aiuta a riospitare (*lift and shift) le applicazioni Cloud AWS senza modifiche e* con tempi di inattività minimi.
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, è possibile creare interfacce virtuali direttamente ai AWS servizi pubblici ignorando i provider di servizi Internet nel percorso di rete.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

## Best practice
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-best-practices"></a>
+ Configura gli endpoint regionali delle API per AWS MGN EC2, Amazon e Amazon S3 nel cloud privato virtuale (VPC) per vietare l'accesso pubblico da Internet.
+ Configura le impostazioni di avvio di AWS MGN per avviare i server di database di destinazione in una sottorete privata.
+ Consenti solo le porte necessarie nei gruppi di sicurezza del database.
+ Segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le [best practice relative alla [concessione dei privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla sicurezza nella documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) IAM.

## Epiche
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-epics"></a>

### Configura AWS MGN
<a name="set-up-aws-mgn"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS MGN. | Cercate il file AWS Application Migration Service nel Console di gestione AWS e avviate il processo di configurazione. **Questo creerà un modello di replica e ti reindirizzerà alla pagina dei server di origine della console MGN.** Durante la configurazione del servizio MGN, scegliete un ruolo di servizio dall'elenco generato. | DBA, ingegnere addetto alla migrazione | 
| Aggiungi server di origine. | Aggiungi i dettagli del server di database di origine locale, quindi aggiungi il server. | DBA, ingegnere addetto alla migrazione | 
| Installa l'agente AWS MGN sul server di origine. | Scarica il programma di installazione dell'agente AWS MGN sul tuo sistema locale e trasferiscilo sul server del database di origine. [Per convalidare l'hash del programma di installazione, vedere Convalida del programma di installazione di Replication Agent scaricato AWS per Windows 2012.](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html#installer-hash-table-2012) | DBA, ingegnere addetto alla migrazione | 

### Installa l'agente AWS MGN sui computer di origine
<a name="install-aws-mgn-agent-on-source-machines"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera credenziali IAM del client. | Prima di installare l'agente AWS MGN, genera AWS le credenziali creando un nuovo utente IAM con le autorizzazioni appropriate.Per ulteriori informazioni, consulta le [policy gestite da AWS AWS Application Migration Service e la](https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html) [generazione delle AWS credenziali richieste](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | DBA, ingegnere addetto alla migrazione | 
| Installa l'agente sul server di origine. | Installare l'agente sul computer di origine che ospita il database Microsoft SQL Server. Per ulteriori informazioni, vedere [Installazione dell'agente di AWS replica sui server Windows](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html).Fornisci le seguenti credenziali AWS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Le tue AWS credenziali uniche consentono all'agente AWS MGN di autenticare ed eseguire attività di migrazione. | Proprietario dell'app, DBA, ingegnere addetto alla migrazione | 
| Scegli i dischi da replicare. | Dopo aver inserito AWS le credenziali, il programma di installazione verifica che il server soddisfi i requisiti minimi per l'installazione dell'agente (ad esempio, se il server dispone di spazio su disco sufficiente per installare l'agente MGN). AWS Il programma di installazione visualizza le etichette dei volumi e i dettagli di archiviazione.Per replicare il database utilizzando il servizio AWS MGN, selezionate i dischi applicabili sul server di origine. Immettete il percorso di ogni disco, separato da virgole. Se desideri replicare tutti i dischi, lascia il percorso vuoto. Dopo aver confermato i dischi selezionati, l'installazione procede. | DBA, ingegnere addetto alla migrazione | 
| Monitora l'avanzamento della sincronizzazione. | AWS Replication Agent avvia il processo di sincronizzazione acquisendo prima un'istantanea dei dischi selezionati e quindi replicando i dati.È possibile monitorare l'avanzamento della sincronizzazione dalla pagina del server di **origine** nella console MGN. AWS Per ulteriori informazioni, consultate [Monitoraggio del server nel ciclo di vita della migrazione](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html). | DBA, ingegnere addetto alla migrazione | 

### Replica con AWS MGN
<a name="replication-using-aws-mgn"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Gestisci l'avanzamento della replica. | Dopo aver avviato la sincronizzazione iniziale, il server di origine viene visualizzato nella console AWS MGN, dove è possibile gestire e monitorare la migrazione. La console visualizza il tempo stimato per la replica completa, basato sulla dimensione totale dei dischi selezionati e sulla larghezza di banda di rete disponibile. | DBA, ingegnere addetto alla migrazione | 
| Verifica la sincronizzazione. | Dopo la completa sincronizzazione dei dischi sul server di origine, verifica che tutti i dischi selezionati siano elencati come completamente sincronizzati e che non vengano segnalati errori nella console.La console AWS MGN trasferirà quindi automaticamente lo stato del ciclo di vita della migrazione a **Pronto per il test, a indicare che l'ambiente replicato in AWS è pronto per** il test di prestazioni e funzionalità. | Proprietario dell'app, DBA, ingegnere addetto alla migrazione | 

### Prova e taglia
<a name="test-and-cut-over"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le impostazioni di avvio. | Scegliete il server di origine nella console AWS MGN e aggiornate le impostazioni di avvio per l'istanza di test di destinazione. Dalla pagina dei **dettagli del server** di origine, accedete alla scheda **Impostazioni di avvio** per configurare l'istanza di test.Scegli un tipo di istanza conveniente e un tipo di volume Amazon Elastic Block Store (Amazon EBS), quindi configura i gruppi di sicurezza e i requisiti di rete. [Per ulteriori informazioni, consulta le impostazioni di Launch.](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html) | DBA, ingegnere addetto alla migrazione | 
| Avvia l'istanza di test di destinazione. | Passa alla console AWS MGN del tuo computer di origine sincronizzato e avvia un'istanza di test di destinazione scegliendo **Test and cut over e** quindi **Launch test** instances.Questo crea un job di avvio che distribuisce l'istanza di test utilizzando le impostazioni configurate. L'istanza viene avviata Cloud AWS e replica l'ambiente del server del database di origine. Monitora l'avanzamento del **lancio dalla pagina Cronologia** dei lanci, dove puoi tenere traccia della creazione dell'istanza e risolvere eventuali problemi. | DBA, ingegnere addetto alla migrazione | 
| Convalida l'istanza di test di destinazione. | Convalida il server di EC2 database Amazon:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Esegui test di convalida per garantire che il database funzioni come previsto. | DBA, ingegnere addetto alla migrazione | 
| Rinomina il server. | AWS La migrazione a MGN prevede una copia a livello di storage del server di origine locale. L' EC2 istanza di SQL Server contiene solo i dettagli del server di origine originale nei file binari, pertanto aggiorna le informazioni binarie in modo che riflettano il nome del nuovo server.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | DBA, ingegnere addetto alla migrazione | 
| Avvia l'istanza cutover. | **Nella console AWS MGN, nella pagina **Server di origine**, confermate che lo stato del ciclo di vita della migrazione del server sia Pronto per il cutover.** Configura le impostazioni di avvio per l'istanza cutover, assicurandoti che rispecchino il tuo ambiente locale.Prima di iniziare il cutover, chiudi il database locale, per garantire quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Avviate l'istanza cutover nella console MGN. AWS Quando l'istanza cutover è operativa, accedete all'istanza ed eseguite i seguenti test:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | Proprietario dell'app, DBA, ingegnere addetto alla migrazione, responsabile della migrazione | 

## risoluzione dei problemi
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| La sincronizzazione iniziale fallisce nella fase di autenticazione. | Si tratta di un problema di connettività di rete. Il server di replica non può connettersi a AWS MGN. | 

## Risorse correlate
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-resources"></a>

**Documentazione AWS**
+ [Guida introduttiva con AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/getting-started.html)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html)
+ [Cos'è Microsoft SQL Server su Amazon EC2?](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-overview.html)

**Video**
+ [Esecuzione di una migrazione Lift and Shift con AWS Application Migration Service](https://www.youtube.com/watch?v=tB0sAR3aCb4) (video)

# Esegui la migrazione di un carico di lavoro F5 BIG-IP su F5 BIG-IP VE su Cloud AWS
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud"></a>

*Deepak Kumar, Amazon Web Services*

## Riepilogo
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-summary"></a>

Le organizzazioni stanno cercando di migrare verso il per Cloud AWS aumentare la loro agilità e resilienza. Dopo aver migrato le tue soluzioni di sicurezza e gestione del traffico [F5 BIG-IP](https://www.f5.com/products/big-ip-services) verso Cloud AWS, puoi concentrarti sull'agilità e sull'adozione di modelli operativi di alto valore nell'architettura aziendale.

[Questo modello descrive come migrare un carico di lavoro F5 BIG-IP verso un carico di lavoro F5 BIG-IP Virtual Edition (VE) su.](https://www.f5.com/products/big-ip-services/virtual-editions) Cloud AWS Il carico di lavoro verrà migrato mediante il rehosting dell'ambiente esistente e l'implementazione di aspetti del replatforming, come l'individuazione dei servizi e le integrazioni delle API. [AWS CloudFormation i modelli](https://github.com/F5Networks/f5-aws-cloudformation) accelerano la migrazione del carico di lavoro verso. Cloud AWS

Questo modello è destinato ai team di ingegneria tecnica e architettura che stanno migrando le soluzioni di sicurezza e gestione del traffico di F5 e accompagna la guida [Migrating from F5 BIG-IP to F5 BIG-IP VE sul sito web on the Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html). Cloud AWS AWS 

## Prerequisiti e limitazioni
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-prereqs"></a>

**Prerequisiti**
+ Un carico di lavoro F5 BIG-IP locale esistente.
+ Licenze F5 esistenti per le versioni BIG-IP VE.
+  Account AWS Un attivo.
+ Un cloud privato virtuale (VPC) esistente configurato con uscita tramite un gateway NAT o un indirizzo IP elastico e configurato con accesso ai seguenti endpoint: Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), () e Amazon. AWS Security Token Service AWS STS CloudWatch Puoi anche modificare l'architettura [VPC modulare e scalabile](https://aws.amazon.com/quickstart/architecture/vpc/) Quick Start come elemento costitutivo per le tue implementazioni. 
+ Una o due zone di disponibilità esistenti, a seconda delle esigenze. 
+ Tre sottoreti private esistenti in ogni zona di disponibilità.
+ AWS CloudFormation modelli, [disponibili nel repository GitHub F5](https://github.com/F5Networks/f5-aws-cloudformation/blob/master/template-index.md). 

Durante la migrazione, puoi anche utilizzare quanto segue, a seconda delle tue esigenze:
+ Un'[estensione F5 Cloud Failover](https://clouddocs.f5.com/products/extensions/f5-cloud-failover/latest/) per gestire la mappatura elastica degli indirizzi IP, la mappatura IP secondaria e le modifiche alla tabella di routing. 
+ Se utilizzi più zone di disponibilità, dovrai utilizzare le F5 Cloud Failover Extensions per gestire la mappatura elastica degli IP sui server virtuali.
+ È consigliabile prendere in considerazione l'utilizzo di [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/) o un altro modello di infrastruttura come codice (IaC) per gestire le configurazioni. La preparazione delle configurazioni in un modello IAc e l'utilizzo di repository di codice contribuiranno alla migrazione e alle attività di gestione continue.

**Competenza**
+ Questo modello richiede familiarità con il modo in cui uno o più centri dati VPCs possono essere collegati ai data center esistenti. Per ulteriori informazioni su questo argomento, consulta le [opzioni di connettività Network-to-Amazon VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) nella documentazione di Amazon VPC. 
+ [È inoltre richiesta familiarità con i prodotti e i moduli F5, tra cui [Traffic Management Operating System (TMOS), Local Traffic](https://www.f5.com/services/resources/white-papers/tmos-redefining-the-solution)[Manager (LTM), Global Traffic Manager (GTM)](https://www.f5.com/products/big-ip-services/local-traffic-manager)[, Access Policy Manager (APM)](https://techdocs.f5.com/kb/en-us/products/big-ip_gtm/manuals/product/gtm-concepts-11-5-0/1.html#unique_9842886)[, Application Security Manager (ASM)](https://www.f5.com/products/security/access-policy-manager)[, Advanced [Firewall Manager (](https://www.f5.com/products/security/advanced-firewall-manager)](https://www.f5.com/pdf/products/big-ip-application-security-manager-overview.pdf)AFM) e BIG-IQ.](https://www.f5.com/products/automation-and-orchestration/big-iq)

**Versioni del prodotto**
+ [Si consiglia di utilizzare F5 BIG-IP [versione 13.1](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-ve-13-1-0.html) o successiva, sebbene il modello supporti F5 BIG-IP versione 12.1 o successiva.](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-12-1-4.html)

## Architecture
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-architecture"></a>

**Stack tecnologico di origine**
+ Carico di lavoro F5 BIG-IP

**Stack tecnologico Target**
+ Amazon CloudFront
+ CloudWatch
+ Amazon EC2
+ Simple Storage Service (Amazon S3)
+ Amazon VPC
+ AWS Global Accelerator
+ AWS STS
+ AWS Transit Gateway
+ F5 BIG-IP VE

**Architettura Target**

![\[Architettura per migrare un carico di lavoro F5 BIG-IP verso un carico di lavoro F5 BIG-IP VE.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/586fe806-fac1-48d3-9eb1-45a6c86430dc/images/16d7fc09-1ffe-4721-b503-d971db84cbae.png)


## Tools (Strumenti)
<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)ti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita attraverso e. Account AWS Regioni AWS
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) accelera la distribuzione dei tuoi contenuti web distribuendoli attraverso una rete mondiale di data center, che riduce la latenza e migliora le prestazioni.   
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/ec2/)) fornisce capacità di elaborazione scalabile in. Puoi avviare tutti i server virtuali di cui hai bisogno e scalarli rapidamente verso Cloud AWS l'alto o verso il basso.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) consente di richiedere credenziali temporanee con privilegi limitati per gli utenti.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)è un hub centrale che collega cloud privati virtuali (VPCs) e reti locali.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.

## Epiche
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-epics"></a>

### Scoperta e valutazione
<a name="discovery-and-assessment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Valuta le prestazioni di F5 BIG-IP. | Raccogli e registra le metriche delle prestazioni delle applicazioni sul server virtuale e le metriche dei sistemi che verranno migrati. Ciò contribuirà a dimensionare correttamente l' AWS infrastruttura di destinazione per una migliore ottimizzazione dei costi. | Architetto F5, ingegnere e architetto di rete, ingegnere | 
| Valuta il sistema operativo e la configurazione di F5 BIG-IP. | Valuta quali oggetti verranno migrati e se è necessario mantenere una struttura di rete, ad esempio. VLANs | Architetto F5, ingegnere | 
| Valuta le opzioni di licenza F5. | Valuta la licenza e il modello di consumo necessari. Questa valutazione deve essere basata sulla valutazione del sistema operativo e della configurazione di F5 BIG-IP. | Architetto F5, ingegnere | 
| Valuta le applicazioni pubbliche. | Determina quali applicazioni richiederanno indirizzi IP pubblici. Allinea tali applicazioni alle istanze e ai cluster richiesti per soddisfare i requisiti relativi alle prestazioni e agli accordi sul livello di servizio (SLA). | Architetto F5, architetto del cloud, architetto di rete, ingegnere, team di app | 
| Valuta le applicazioni interne. | Valuta quali applicazioni verranno utilizzate dagli utenti interni. Assicurati di sapere dove si trovano gli utenti interni all'interno dell'organizzazione e in che modo tali ambienti si connettono a Cloud AWS. È inoltre necessario assicurarsi che tali applicazioni possano utilizzare il Domain Name System (DNS) come parte del dominio predefinito. | F5 Architect, Cloud Architect, Network Architect, Engineer, App Teams | 
| Finalizza l'AMI. | Non tutte le versioni F5 BIG-IP vengono create come Amazon Machine Images (). AMIs Puoi utilizzare lo strumento F5 BIG-IP Image Generator se disponi di versioni specifiche richieste di Quick-Fix Engineering (QFE). Per ulteriori informazioni su questo strumento, consultate la sezione «Risorse correlate». | Architetto F5, architetto cloud, ingegnere | 
| Finalizza i tipi e l'architettura delle istanze. | Decidi i tipi di istanza, l'architettura VPC e l'architettura interconnessa. | Architetto F5, architetto del cloud, architetto di rete, ingegnere | 

### Attività complete relative alla sicurezza e alla conformità
<a name="complete-security-and-compliance-related-activities"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Documenta le politiche di sicurezza esistenti di F5. | Raccogli e documenta le politiche di sicurezza F5 esistenti. Assicurati di crearne una copia in un repository di codice sicuro. | Architetto F5, ingegnere | 
| Crittografa l'AMI. | (Facoltativo) L'organizzazione potrebbe richiedere la crittografia dei dati inattivi. Per ulteriori informazioni sulla creazione di un'immagine Bring Your Own License (BYOL) personalizzata, consulta la sezione «Risorse correlate». | Architetto F5, ingegnere, architetto cloud, ingegnere | 
| Rafforza i dispositivi. | Ciò contribuirà a proteggere da potenziali vulnerabilità. | Architetto F5, ingegnere | 

### Configura il tuo nuovo ambiente AWS
<a name="configure-your-new-aws-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea account edge e di sicurezza. | Accedi a Console di gestione AWS e crea il servizio Account AWS che fornirà e gestirà i servizi edge e di sicurezza. Questi account potrebbero essere diversi dagli account utilizzati VPCs per servizi e applicazioni condivisi. Questo passaggio può essere completato come parte di una landing zone. | Architetto del cloud, ingegnere | 
| Implementa l'edge e la sicurezza VPCs. | Imposta e configura quanto VPCs necessario per fornire servizi perimetrali e di sicurezza. | Architetto del cloud, ingegnere | 
| Connect al data center di origine. | Connect al data center di origine che ospita il carico di lavoro F5 BIG-IP. | Architetto del cloud, architetto di rete, ingegnere | 
| Implementa le connessioni VPC. | Connect il servizio edge e di sicurezza VPCs all'applicazione VPCs. | Architetto di rete, ingegnere | 
| Distribuisci le istanze. | Distribuisci le istanze utilizzando i CloudFormation modelli della sezione «Risorse correlate». | Architetto F5, ingegnere | 
| Testa e configura il failover delle istanze. | Assicurati che il modello AWS Advanced HA iApp o l'estensione F5 Cloud Failover siano configurati e funzionino correttamente. | Architetto F5, ingegnere | 

### Configurazione delle reti
<a name="configure-networking"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare la topologia VPC. | Apri la console Amazon VPC e assicurati che il tuo VPC disponga di tutte le sottoreti e le protezioni necessarie per l'implementazione di F5 BIG-IP VE. | Architetto di rete, architetto F5, architetto cloud, ingegnere | 
| Prepara i tuoi endpoint VPC. | Prepara gli endpoint VPC per Amazon EC2, Amazon S3 AWS STS e se un carico di lavoro F5 BIG-IP non ha accesso a un gateway NAT o a un indirizzo IP elastico su un'interfaccia TMM. | Architetto del cloud, ingegnere | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migrare la configurazione. | Migrare la configurazione F5 BIG-IP a F5 BIG-IP VE su. Cloud AWS | Architetto F5, ingegnere | 
| Associa il secondario IPs. | Gli indirizzi IP dei server virtuali hanno una relazione con gli indirizzi IP secondari assegnati alle istanze. Assegna indirizzi IP secondari e assicurati che sia selezionata l'opzione «Consenti rimappa/riassegnazione». | Architetto F5, ingegnere | 

### Configurazioni di test
<a name="test-configurations"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le configurazioni del server virtuale. | Prova i server virtuali. | F5 Architect, App Teams | 

### Finalizza le operazioni
<a name="finalize-operations"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea la strategia di backup. | I sistemi devono essere spenti per creare un'istantanea completa. Per ulteriori informazioni, vedere «Aggiornamento di una macchina virtuale F5 BIG-IP» nella sezione «Risorse correlate». | Architetto F5, architetto cloud, ingegnere | 
| Crea il runbook di failover del cluster. | Assicurati che il processo del runbook di failover sia completo. | Architetto F5, ingegnere | 
| Configura e convalida la registrazione. | Configura F5 Telemetry Streaming per inviare i log alle destinazioni richieste. | Architetto F5, ingegnere | 

### Completa il cutover
<a name="complete-the-cutover"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Passate al nuovo schieramento. |  | Architetto F5, architetto del cloud, architetto di rete, ingegnere, AppTeams | 

## Risorse correlate
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-resources"></a>

**Guida alla migrazione**
+ [Migrazione da F5 BIG-IP a F5 BIG-IP VE su Cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html)

**Risorse F5**
+ [CloudFormation modelli nel repository F5 GitHub ](https://github.com/F5Networks/f5-aws-cloudformation)
+ [F5 dentro Marketplace AWS](https://aws.amazon.com/marketplace/seller-profile?id=74d946f0-fa54-4d9f-99e8-ff3bd8eb2745)
+ [Panoramica di F5 BIG-IP VE](https://www.f5.com/products/big-ip-services/virtual-editions) 
+ [Esempio Quickstart - BIG-IP Virtual Edition con WAF (LTM \$1 ASM)](https://github.com/F5Networks/f5-aws-cloudformation-v2/tree/main/examples/quickstart)
+ [Servizi applicativi F5 su AWS: una panoramica (video)](https://www.youtube.com/watch?v=kutVjRHOAXo)
+ [Guida per l'utente di F5 Application Services 3 Extension](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/)
+ [Documentazione sul cloud F5](https://clouddocs.f5.com/training/community/public-cloud/html/intro.html)
+ [Wiki REST di F5 iControl](https://clouddocs.f5.com/api/icontrol-rest/)
+ [F5 Panoramica dei singoli file di configurazione (11.x - 15.x)](https://support.f5.com/csp/article/K13408)
+ [Whitepaper F5](https://www.f5.com/services/resources/white-papers)
+ [Strumento di generazione di immagini F5 BIG-IP](https://clouddocs.f5.com/cloud/public/v1/ve-image-gen_index.html)
+ [Aggiornamento di una macchina virtuale 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)
+ [Panoramica dell'opzione «platform-migrate» dell'archivio UCS](https://support.f5.com/csp/article/K82540512)

# Esegui la migrazione di un'applicazione web Go locale su AWS Elastic Beanstalk utilizzando il metodo binario
<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*

## Riepilogo
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-summary"></a>

Questo modello descrive come migrare un'applicazione web Go locale su AWS Elastic Beanstalk. Dopo la migrazione dell'applicazione, Elastic Beanstalk crea il file binario per il bundle di origine e lo distribuisce su un'istanza Amazon Elastic Compute Cloud (Amazon). EC2

Trattandosi di una strategia di migrazione rehost, l'approccio di questo pattern è rapido e non richiede modifiche al codice, il che significa meno tempo di test e migrazione. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un'applicazione web Go locale.
+ Un GitHub repository che contiene il codice sorgente dell'applicazione Go. Se non lo utilizzi GitHub, esistono altri modi per [creare un bundle di sorgenti dell'applicazione per Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html).

**Versioni del prodotto**
+ La versione Go più recente supportata da Elastic Beanstalk. Per ulteriori informazioni, consulta la documentazione di [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go).

## Architecture
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-architecture"></a>

**Stack tecnologico di origine**
+ Un'applicazione web Go locale 

**Stack tecnologico Target**
+ AWS Elastic Beanstalk
+ Amazon CloudWatch

**Architettura Target****

![\[Architettura per la migrazione di un'applicazione Go su Elastic Beanstalk\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cd8d660d-5621-4ea7-8f97-7a1e321c57d3/images/1df543d9-7073-43d8-abd3-f1f7e57278eb.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-tools"></a>
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html) distribuisce e gestisce rapidamente le applicazioni nel cloud AWS senza che gli utenti debbano conoscere l'infrastruttura che esegue tali applicazioni. Elastic Beanstalk riduce la complessità della gestione senza limitare le scelte o il controllo.
+ [GitHub](https://github.com/)è un sistema di controllo delle versioni distribuito open source.

## Epiche
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-epics"></a>

### Crea il file.zip del pacchetto sorgente dell'applicazione web Go
<a name="create-the-go-web-application-source-bundle-zip-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il pacchetto sorgente per l'applicazione Go.  | Apri il GitHub repository che contiene il codice sorgente dell'applicazione Go e prepara il pacchetto sorgente. Il pacchetto sorgente contiene un file `application.go` sorgente nella directory principale, che ospita il pacchetto principale dell'applicazione Go. Se non lo utilizzate GitHub, consultate la precedente sezione *Prerequisiti* di questo schema per scoprire altri modi per creare il bundle di sorgenti dell'applicazione. | Amministratore di sistema, sviluppatore di applicazioni | 
| Creazione di un file di configurazione. | Crea una `.ebextensions` cartella nel tuo pacchetto sorgente, quindi crea un `options.config` file all'interno di questa cartella. Per ulteriori informazioni, consulta la documentazione di [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html). | Amministratore di sistema, sviluppatore di applicazioni | 
|  Crea il file.zip del pacchetto sorgente. | Eseguire il seguente comando seguente.<pre>git archive -o ../godemoapp.zip HEAD</pre>Questo crea il file.zip del bundle di origine. Scaricate e salvate il file.zip come file locale. Il file.zip non può superare i 512 MB e non può includere una cartella principale o una directory di primo livello. | Amministratore di sistema, sviluppatore di applicazioni | 

### Esegui la migrazione dell'applicazione web Go su Elastic Beanstalk
<a name="migrate-the-go-web-application-to-elastic-beanstalk"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scegli l'applicazione Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html)[Per istruzioni su come creare un'applicazione Elastic Beanstalk, consulta la documentazione di Elastic Beanstalk.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) | Amministratore di sistema, sviluppatore di applicazioni | 
| Avvia l'ambiente del server web Elastic Beanstalk.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Amministratore di sistema, sviluppatore di applicazioni | 
| Carica il file.zip del bundle sorgente su Elastic Beanstalk. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Amministratore di sistema, sviluppatore di applicazioni | 
| Prova l'applicazione web Go distribuita. | Verrai reindirizzato alla pagina di panoramica dell'applicazione Elastic Beanstalk. Nella parte superiore della panoramica, accanto a **Environment ID**, scegli l'URL che termina con `elasticbeanstalk.com` per accedere all'applicazione. L'applicazione deve utilizzare questo nome nel file di configurazione come variabile di ambiente e visualizzarlo sulla pagina Web. | Amministratore di sistema, sviluppatore di applicazioni | 

## risoluzione dei problemi
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Impossibile accedere all'applicazione tramite un Application Load Balancer. | Controlla il gruppo target che contiene l'applicazione Elastic Beanstalk. Se non è integro, accedi all'istanza di Elastic Beanstalk e `nginx.conf` controlla la configurazione del file per verificare che venga indirizzato all'URL corretto dello stato di integrità. Potrebbe essere necessario modificare l'URL del controllo dello stato del gruppo target. | 

## Risorse correlate
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-resources"></a>
+ [Versioni della piattaforma Go supportate da Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go)
+ [Utilizzo dei file di configurazione con Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)
+ [Creazione di un'applicazione di esempio in Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) 

# Esegui la migrazione di un server SFTP locale a Using 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*

## Riepilogo
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-summary"></a>

Questo modello descrive come migrare una soluzione di trasferimento file locale che utilizza il Secure Shell (SSH) File Transfer Protocol (SFTP) verso il utilizzando il servizio. Cloud AWS AWS Transfer for SFTP Gli utenti generalmente si connettono a un server SFTP tramite il relativo nome di dominio o tramite IP fisso. Questo modello copre entrambi i casi.

AWS Transfer for SFTP è membro di AWS Transfer Family. È un servizio di trasferimento sicuro che è possibile utilizzare per trasferire file da e verso i servizi di AWS archiviazione tramite SFTP. Puoi utilizzarlo AWS Transfer for SFTP con Amazon Simple Storage Service (Amazon S3) o Amazon Elastic File System (Amazon EFS). Questo modello utilizza Amazon S3 per lo storage.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS.
+ Un nome di dominio SFTP esistente o un IP SFTP fisso.

**Limitazioni**
+ L'oggetto più grande che è possibile trasferire in una richiesta è attualmente di 5 GiB. Per file di dimensioni superiori a 100 MiB, prendi in considerazione l'utilizzo del caricamento multiparte di [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html).

## Architecture
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-architecture"></a>

**Stack tecnologico di origine**
+ File flat locali o file di dump del database.

**Stack tecnologico Target**
+ AWS Transfer for SFTP
+ Simple Storage Service (Amazon S3)
+ Amazon Virtual Private Cloud (Amazon VPC) (Amazon VPC)
+ AWS Identity and Access Management Ruoli e politiche (IAM)
+ Indirizzi IP elastici
+ Gruppi di sicurezza
+ Amazon CloudWatch Logs (opzionale)

**Architettura Target**

![\[Usa AWS Transfer for SFTP per migrare un server SFTP locale nel cloud AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/ec0a905c-edef-48ba-9b5e-ea4a4040d320/images/f42aa711-bfe0-4ac6-9f66-5c18a1dd1c7a.png)


**Automazione e scalabilità**

Per automatizzare l'architettura di destinazione per questo modello, utilizza i CloudFormation modelli allegati:
+ `amazon-vpc-subnets.yml`fornisce un cloud privato virtuale (VPC) con due sottoreti pubbliche e due private.
+ `amazon-sftp-server.yml`fornisce il server SFTP.
+ `amazon-sftp-customer.yml`aggiunge utenti.

## Tools (Strumenti)
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-tools"></a>

**Servizi AWS**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ti aiuta a centralizzare i log di tutti i tuoi sistemi e applicazioni, Servizi AWS così puoi monitorarli e archiviarli in modo sicuro.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati. Questo modello utilizza Amazon S3 come sistema di storage per i trasferimenti di file.
+ [AWS Transfer for SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)ti aiuta a trasferire file da e verso i servizi di AWS storage tramite il protocollo SFTP.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.

## Epiche
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-epics"></a>

### Crea un VPC
<a name="create-a-vpc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un VPC con sottoreti. | Apri la [Console Amazon VPC](https://console.aws.amazon.com/vpc/). Crea un cloud privato virtuale (VPC) con due sottoreti pubbliche. (La seconda sottorete offre un'elevata disponibilità.)oppurePuoi implementare il CloudFormation modello allegato nella [CloudFormation console](https://console.aws.amazon.com/cloudformation) per automatizzare le attività di questa epopea. `amazon-vpc-subnets.yml` | Sviluppatore, amministratore di sistema | 
| Aggiungi un gateway Internet. | Esegui il provisioning di un gateway Internet e collegalo al VPC. | Sviluppatore, amministratore di sistema | 
| Esegui la migrazione di un IP esistente. | Collega un IP esistente all'indirizzo IP elastico. Puoi creare un indirizzo IP elastico dal tuo pool di indirizzi e utilizzarlo. | Sviluppatore, amministratore di sistema | 

### Esegui il provisioning di un server SFTP
<a name="provision-an-sftp-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un server SFTP. | Apri la [AWS Transfer Family console](https://console.aws.amazon.com/transfer/). Segui le istruzioni riportate nella AWS Transfer Family documentazione relativa alla [creazione di un endpoint con accesso a Internet per il tuo server per creare un server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint) SFTP con un endpoint connesso a Internet. Per il **tipo di endpoint**, scegli **VPC ospitato**. Per **Access**, scegli **Internet** Facing. Per **VPC**, scegli il VPC che hai creato nell'epopea precedente.oppurePuoi implementare il CloudFormation modello allegato nella [CloudFormation console](https://console.aws.amazon.com/cloudformation) per automatizzare le attività di questa epopea. `amazon-sftp-server.yml` | Sviluppatore, amministratore di sistema | 
| Esegui la migrazione del nome di dominio. | Allega il nome di dominio esistente al nome host personalizzato. Se utilizzi un nuovo nome di dominio, usa l'alias **DNS di Amazon Route 53**. Per un nome di dominio esistente, scegli **Altro** DNS. Per ulteriori informazioni, consulta [Lavorare con nomi host personalizzati](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html) nella AWS Transfer Family documentazione. | Sviluppatore, amministratore di sistema | 
| Aggiungi un ruolo CloudWatch di registrazione. | (Facoltativo) se desideri abilitare CloudWatch la registrazione, crea un `Transfer` ruolo con le operazioni dell'API CloudWatch Logs`logs:CreateLogGroup`,`logs:CreateLogStream`, ` logs:DescribeLogStreams` e. `logs:PutLogEvents` Per ulteriori informazioni, consulta [Log activity with CloudWatch](https://docs.aws.amazon.com/transfer/latest/userguide/monitoring.html#monitoring-enabling) nella AWS Transfer Family documentazione. | Sviluppatore, amministratore di sistema | 
| Salva e invia. | Scegli **Save** (Salva). Per **Azioni**, scegli **Avvia** e attendi che il server SFTP venga creato con lo stato **Online**. | Sviluppatore, amministratore di sistema | 

### Mappa gli indirizzi IP elastici sul server SFTP
<a name="map-elastic-ip-addresses-to-the-sftp-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Arresta il server in modo da poter modificare le impostazioni. | Sulla [AWS Transfer Family console](https://console.aws.amazon.com/transfer/), scegli **Server, quindi seleziona il server** SFTP che hai creato. In **Actions (Operazioni)**, scegliere **Stop (Arresta)**. Quando il server è offline, scegli **Modifica** per modificarne le impostazioni. | Sviluppatore, amministratore di sistema | 
| Scegli zone di disponibilità e sottoreti. | Nella sezione **Zone di disponibilità, scegli le zone** di disponibilità e le sottoreti per il tuo VPC. | Sviluppatore, amministratore di sistema | 
| Aggiungi indirizzi IP elastici. | Per **IPv4 Indirizzi**, scegli un indirizzo IP elastico per ogni sottorete, quindi scegli **Salva**. | Sviluppatore, amministratore di sistema | 

### Aggiungere utenti
<a name="add-users"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un ruolo IAM per consentire agli utenti di accedere al bucket S3. | Crea un ruolo IAM `Transfer`**** e aggiungi ` s3:ListBucket`` s3:GetBucketLocation`, e `s3:PutObject` con il nome del bucket S3 come risorsa. Per ulteriori informazioni, consulta [Creare un ruolo e una policy IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html) nella AWS Transfer Family documentazione.oppurePuoi implementare il CloudFormation modello allegato nella [CloudFormation console](https://console.aws.amazon.com/cloudformation) per automatizzare le attività di questa epopea. `amazon-sftp-customer.yml` | Sviluppatore, amministratore di sistema | 
| Crea un bucket S3. | Crea un bucket S3 per l'applicazione. | Sviluppatore, amministratore di sistema | 
| Crea cartelle opzionali. | (Facoltativo) Se desideri archiviare i file per gli utenti separatamente, in cartelle Amazon S3 specifiche, aggiungi le cartelle appropriate. | Sviluppatore, amministratore di sistema | 
| Crea una chiave pubblica SSH. | Per creare una coppia di chiavi SSH, consulta [Generare chiavi SSH](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#sshkeygen) nella AWS Transfer Family documentazione. | Sviluppatore, amministratore di sistema | 
| Aggiungere gli utenti. | Sulla [AWS Transfer Family console](https://console.aws.amazon.com/transfer/), scegli **Server, seleziona il server** SFTP che hai creato, quindi scegli **Aggiungi utente**. Per **Home directory**, scegli il bucket S3 che hai creato. Per la **chiave pubblica SSH**, specificare la parte della chiave pubblica della coppia di chiavi SSH. **Aggiungi utenti per il server SFTP, quindi scegli Aggiungi.** | Sviluppatore, amministratore di sistema | 

### Prova il server SFTP
<a name="test-the-sftp-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna il gruppo di sicurezza. | Nella sezione **Gruppi di sicurezza** del server SFTP, aggiungi l'IP della macchina di test per ottenere l'accesso SFTP. | Developer | 
| Utilizzate un'utilità client SFTP per testare il server. | Eseguite il test dei trasferimenti di file utilizzando qualsiasi utilità client SFTP. Per un elenco di client e istruzioni, consultate [Trasferimento di file utilizzando un client](https://docs.aws.amazon.com/transfer/latest/userguide/transfer-file.html) nella AWS Transfer Family documentazione. | Developer | 

## Risorse correlate
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-resources"></a>
+ [AWS Transfer Family Guida per l'utente](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [Guida per l'utente di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [Indirizzi IP elastici](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) nella EC2 documentazione di Amazon

## Allegati
<a name="attachments-ec0a905c-edef-48ba-9b5e-ea4a4040d320"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/ec0a905c-edef-48ba-9b5e-ea4a4040d320/attachments/attachment.zip)

# Migra una macchina virtuale locale su Amazon EC2 utilizzando 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*

## Riepilogo
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-summary"></a>

Per quanto riguarda la migrazione delle applicazioni, le organizzazioni possono adottare approcci diversi per riospitare (lift and shift) i server dell'applicazione dall'ambiente locale al cloud Amazon Web Services (AWS). Un modo consiste nel fornire nuove istanze Amazon Elastic Compute Cloud (Amazon EC2) e quindi installare e configurare l'applicazione da zero. Un altro approccio consiste nell'utilizzare servizi di migrazione nativi di AWS o di terze parti per migrare più server contemporaneamente.

Questo modello descrive i passaggi per la migrazione di una macchina virtuale (VM) supportata su un' EC2 istanza Amazon sul cloud AWS utilizzando AWS Application Migration Service. Puoi utilizzare l'approccio descritto in questo modello per migrare una o più macchine virtuali manualmente, una per una o automaticamente creando script di automazione appropriati in base ai passaggi descritti. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo in una delle regioni AWS che supportano Application Migration Service
+ Connettività di rete tra il server di origine e il EC2 server di destinazione tramite una rete privata utilizzando AWS Direct Connect o una rete privata virtuale (VPN) o tramite Internet

**Limitazioni**
+ Per l'elenco aggiornato delle regioni supportate, consulta le [regioni AWS supportate](https://docs.aws.amazon.com/mgn/latest/ug/supported-regions.html).
+ Per un elenco dei sistemi operativi supportati, consulta la sezione [Sistemi operativi supportati](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html) e la sezione *Generale* di [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

## Architecture
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-architecture"></a>

**Stack tecnologico di origine**
+ Un server fisico, virtuale o ospitato nel cloud che esegue un sistema operativo supportato da Amazon EC2

**Stack tecnologico Target**
+ Un' EC2 istanza Amazon che esegue lo stesso sistema operativo della macchina virtuale di origine
+ Amazon Elastic Block Store (Amazon EBS)

**Architettura di origine e destinazione**

Il diagramma seguente mostra l'architettura di alto livello e i componenti principali della soluzione. Nel data center locale sono presenti macchine virtuali con dischi locali. In AWS, è disponibile un'area di staging con server di replica e un'area di risorse migrate con EC2 istanze per test e cutover. Entrambe le sottoreti contengono volumi EBS.

![\[Componenti principali per migrare una macchina virtuale supportata su un' EC2 istanza Amazon sul cloud AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/f8396fad-7ee9-4f75-800f-e819f509e151.png)


1. Inizializza AWS Application Migration Service.

1. Configura la configurazione e il reporting del server dell'area di staging, incluse le risorse dell'area di staging.

1. Installa gli agenti sui server di origine e utilizza la replica continua dei dati a livello di blocco (compressa e crittografata).

1. Automatizza l'orchestrazione e la conversione del sistema per abbreviare la finestra intermedia.

**Architettura di rete**

Il diagramma seguente mostra l'architettura di alto livello e i componenti principali della soluzione dal punto di vista della rete, inclusi i protocolli e le porte necessari per la comunicazione tra i componenti principali nel data center locale e su AWS.

![\[Componenti di rete, inclusi protocolli e porte per la comunicazione tra data center e AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/2f594daa-ddba-4841-8785-6067e8d83c2f.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-tools"></a>
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ti aiuta a riospitare (*lift and shift*) le applicazioni nel cloud AWS senza modifiche e con tempi di inattività minimi.

## Best practice
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-best-practices"></a>
+ Non mettere offline il server di origine né eseguire un riavvio fino al completamento del cutover sull'istanza di destinazione EC2 .
+ Offri agli utenti ampie opportunità di eseguire test di accettazione degli utenti (UAT) sul server di destinazione per identificare e risolvere eventuali problemi. Idealmente, questo test dovrebbe iniziare almeno due settimane prima del termine.
+ Monitora frequentemente lo stato della replica del server sulla console di Application Migration Service per identificare tempestivamente i problemi.
+ Utilizza credenziali AWS Identity and Access Management (IAM) temporanee per l'installazione dell'agente anziché credenziali utente IAM permanenti.

## Epiche
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-epics"></a>

### Generazione di credenziali AWS
<a name="generate-aws-credentials"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il ruolo IAM di AWS Replication Agent. | Accedi con autorizzazioni amministrative all'account AWS.Sulla [console](https://console.aws.amazon.com/iam/) AWS Identity and Access Management (IAM), crea un ruolo IAM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html) | Amministratore AWS, ingegnere addetto alla migrazione | 
| Genera credenziali di sicurezza temporanee. | Su una macchina con AWS Command Line Interface (AWS CLI) installata, accedi con autorizzazioni amministrative. In alternativa (all'interno di una regione AWS supportata), sulla Console di gestione AWS, accedi con autorizzazioni amministrative all'account AWS e apri AWS CloudShell.Genera credenziali temporanee con il seguente comando, sostituendolo `<account-id>` con l'ID dell'account AWS.`aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/MGN_Agent_Installation_Role --role-session-name mgn_installation_session_role`Dall'output del comando, copia i valori per `AccessKeyId` **`SecretAccessKey`**, e **`SessionToken`**. ****Conservali in un luogo sicuro per un uso successivo.Queste credenziali temporanee scadranno dopo un'ora. Se hai bisogno di credenziali dopo un'ora, ripeti i passaggi precedenti. | Amministratore AWS, ingegnere addetto alla migrazione | 

### Inizializza Application Migration Service e crea il modello di impostazioni di replica
<a name="initialize-application-migration-service-and-create-the-replication-settings-template"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Inizializza il servizio. | Sulla console, accedi con le autorizzazioni amministrative all'account AWS.Scegli **Application Migration Service**, quindi scegli **Inizia**. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Crea e configura il modello di impostazioni di replica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Application Migration Service creerà automaticamente tutti i ruoli IAM necessari per facilitare la replica dei dati e l'avvio dei server migrati. | Amministratore AWS, ingegnere addetto alla migrazione | 

### Installa gli agenti di replica AWS sui computer di origine
<a name="install-aws-replication-agents-on-source-machines"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Tieni a portata di mano le credenziali AWS richieste. | Quando esegui il file di installazione su un server di origine, dovrai inserire le credenziali temporanee generate in precedenza, tra cui`AccessKeyId`, `SecretAccessKey` e. `SessionToken` | Ingegnere addetto alla migrazione, amministratore AWS | 
| Per i server Linux, installa l'agente. | Copia il comando di installazione, accedi ai server di origine ed esegui il programma di installazione. Per istruzioni dettagliate, consulta la [documentazione AWS](https://docs.aws.amazon.com/mgn/latest/ug/linux-agent.html). | Amministratore AWS, ingegnere addetto alla migrazione | 
| Per i server Windows, installa l'agente. | Scarica il file di installazione su ogni server, quindi esegui il comando di installazione. Per istruzioni dettagliate, consulta la [documentazione AWS](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html). | Amministratore AWS, ingegnere addetto alla migrazione | 
| Attendi il completamento della replica iniziale dei dati. | Una volta installato l'agente, il server di origine verrà visualizzato nella console di Application Migration Service, nella sezione **Server di origine**. Attendi che il server venga sottoposto alla replica iniziale dei dati. | Amministratore AWS, ingegnere addetto alla migrazione | 

### Configura le impostazioni di avvio
<a name="configure-launch-settings"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Specificare i dettagli del server. | Nella console di Application Migration Service, scegli la sezione **Server di origine**, quindi scegli un nome di server dall'elenco per accedere ai dettagli del server. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Configura le impostazioni di avvio.  | Scegli la scheda **Impostazioni di avvio**. Puoi configurare una varietà di impostazioni, incluse le impostazioni generali di avvio e le impostazioni del modello di EC2 avvio. Per istruzioni dettagliate, consulta la [documentazione AWS](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | Amministratore AWS, ingegnere addetto alla migrazione | 

### Esegui un test
<a name="perform-a-test"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova i server di origine. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)I server verranno avviati. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Verifica che il test sia stato completato con successo. | Una volta avviato completamente il server di test, lo stato **Avvisi** nella pagina mostrerà **Avviato** per ogni server. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Testa il server. | Esegui test sul server di test per assicurarti che funzioni come previsto. | Amministratore AWS, ingegnere addetto alla migrazione | 

### Pianifica ed esegui un cutover
<a name="schedule-and-perform-a-cutover"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pianifica una finestra di taglio. | Pianifica un periodo di tempo limite adeguato con i team competenti. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Esegui il cutover. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Il **ciclo di vita della migrazione** del server di origine passerà a **Cutover** in corso. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Verifica che il cutover sia stato completato correttamente. | Dopo l'avvio completo dei server di cutover, lo stato **Avvisi** nella pagina **Server di origine mostrerà **Avviato** per ogni server**. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Testa il server. | Esegui dei test sul server cutover per assicurarti che funzioni come previsto. | Amministratore AWS, ingegnere addetto alla migrazione | 
| Finalizza il cutover. | Scegli **Test e Cutover**, quindi seleziona **Finalize cutover per finalizzare il processo di migrazione**. | Amministratore AWS, ingegnere addetto alla migrazione | 

## Risorse correlate
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-resources"></a>
+ [AWS Servizio della migrazione di applicazioni](https://aws.amazon.com/application-migration-service/)
+ [Guida per l'utente di AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)

# Esegui la migrazione di piccoli set di dati da locale ad Amazon S3 utilizzando 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*

## Riepilogo
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-summary"></a>

Questo modello descrive come migrare piccoli set di dati (5 TB o meno) dai data center locali ad Amazon Simple Storage Service (Amazon S3) utilizzando (). AWS Transfer for SFTP AWS SFTP I dati possono essere dump di database o file flat.

## Prerequisiti e limitazioni
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Un AWS Direct Connect collegamento stabilito tra il data center e AWS

**Limitazioni**
+ I file di dati devono pesare meno di 5 TB. Per file superiori a 5 TB, puoi eseguire un caricamento in più parti su Amazon S3 o scegliere un altro metodo di trasferimento dei dati. 

## Architecture
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-architecture"></a>

**Stack tecnologico di origine**
+ File flat o dump di database locali

**Stack tecnologico Target**
+ Simple Storage Service (Amazon S3)

**Architettura di origine e destinazione**

![\[Diagram showing data flow from on-premises servers to Cloud AWS services via Direct Connect and VPN.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a9c016ff-3e68-4714-ac51-46cb4727397a/images/5c5bb9ea-d552-44e8-8d0d-df341f84f55d.png)


## Tools (Strumenti)
<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)— Consente il trasferimento di file direttamente da e verso Amazon S3 utilizzando Secure File Transfer Protocol (SFTP).
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)— Stabilisce una connessione di rete dedicata dai data center locali a. AWS
+ [Endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html): consentono di connettere privatamente un VPC a servizi endpoint VPC supportati Servizi AWS e forniti AWS PrivateLink da senza un gateway Internet, un dispositivo NAT (Network Address Translation), una connessione VPN o una connessione. Direct Connect Le istanze in un VPC non richiedono indirizzi IP pubblici per comunicare con le risorse del servizio.

## Epiche
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Documenta gli attuali requisiti SFTP. |  | Proprietario dell'applicazione, SA | 
| Identifica i requisiti di autenticazione. | I requisiti possono includere l'autenticazione basata su chiave, il nome utente o la password o il provider di identità (IdP). | Proprietario dell'applicazione, SA | 
| Identifica i requisiti di integrazione delle applicazioni. |  | Proprietario dell'applicazione | 
| Identifica gli utenti che richiedono il servizio. |  | Proprietario dell'applicazione | 
| Determina il nome DNS per l'endpoint del server SFTP. |  | Rete | 
| Determinare la strategia di backup. |  | SA, DBA (se i dati vengono trasferiti)  | 
| Identifica la migrazione delle applicazioni o la strategia di cutover. |  | Proprietario dell'applicazione, SA, DBA | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea uno o più cloud privati virtuali (VPCs) e sottoreti nel tuo. Account AWS |  | Proprietario dell'applicazione, AMS | 
| Crea i gruppi di sicurezza e l'elenco di controllo degli accessi alla rete (ACL). |  | Sicurezza, rete, AMS | 
| Crea il bucket Amazon S3. |  | Proprietario dell'applicazione, AMS | 
| Crea il ruolo AWS Identity and Access Management (IAM). | Crea una policy IAM che includa le autorizzazioni per consentire l'accesso AWS SFTP al tuo bucket Amazon S3. Questa policy IAM determina il livello di accesso da fornire agli utenti SFTP. Crea un'altra policy IAM con AWS SFTP cui stabilire una relazione di fiducia. | Sicurezza, AMS | 
| Associa un dominio registrato (opzionale). | Se hai il tuo dominio registrato, puoi associarlo al server SFTP. È possibile indirizzare il traffico SFTP verso l'endpoint del server SFTP da un dominio o da un sottodominio. | Rete, AMS | 
| Crea un server SFTP. | Specificate il tipo di provider di identità utilizzato dal servizio per autenticare gli utenti. | Proprietario dell'applicazione, AMS | 
| Aprire un client SFTP. | Aprire un client SFTP e configurare la connessione per utilizzare l'host dell'endpoint SFTP. AWS SFTP supporta qualsiasi client SFTP standard. I client SFTP più utilizzati includono OpenSSH, WinSCP, Cyberduck e. FileZilla È possibile ottenere il nome host del server SFTP dalla console. AWS SFTP  | Proprietario dell'applicazione, AMS | 

### Pianifica e testa
<a name="plan-and-test"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pianifica la migrazione delle applicazioni. | Pianifica le modifiche necessarie alla configurazione dell'applicazione, imposta la data di migrazione e determina la pianificazione del test. | Proprietario dell'applicazione, AMS | 
| Testa l'infrastruttura. | Esegui il test in un ambiente non di produzione. | Proprietario dell'applicazione, AMS | 

## Risorse correlate
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-resources"></a>

**Riferimenti**
+ [AWS Transfer for SFTP Guida per l'utente](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS Direct Connect resources](https://aws.amazon.com/directconnect/resources/) 
+ [Endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)

**Tutorial e video**
+ [AWS Transfer for SFTP (video)](https://www.youtube.com/watch?v=wcnGez5PP1E)
+ [AWS Transfer for SFTP guida per l'utente](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS SA Whiteboarding - Direct Connect (video)](https://www.youtube.com/watch?v=uP68iqyuqTg)

# Esegui la migrazione di un database Oracle locale a Oracle su Amazon EC2
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2"></a>

*Baji Shaik e Pankaj Choudhary, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-summary"></a>

Questo modello illustra i passaggi per la migrazione di un database Oracle locale a Oracle su un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Descrive due opzioni per la migrazione: utilizzando AWS Data Migration Service (AWS DMS) o utilizzando strumenti Oracle nativi come RMAN, Data Pump import/export, tablespace trasportabili e Oracle. GoldenGate 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine in un data center locale

**Limitazioni**
+ Il sistema operativo (OS) di destinazione deve essere supportato da Amazon EC2. Per un elenco completo dei sistemi supportati, consulta [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

**Versioni del prodotto**
+ Oracle Database versioni 10.2 e successive (per le versioni 10.x), 11g e fino a 12.2 e 18c per le edizioni Enterprise, Standard, Standard One e Standard Two Per l'elenco più recente delle versioni supportate da AWS DMS, consulta «Database locali e di EC2 istanze Amazon» in [Sources for Data Migration nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) di AWS DMS.  

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-architecture"></a>

**Stack tecnologico di origine**
+ Un database Oracle locale

**Stack tecnologico Target**
+ Un'istanza di database Oracle su Amazon EC2

**Architettura Target**

![\[Configurazione della replica per un database Oracle su Amazon EC2.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/386d5b14-8633-4ecc-98fb-59872de99d41.png)


**Architettura di migrazione dei dati**

*Utilizzando AWS DMS:*

![\[Migrazione di un database Oracle locale su Amazon con EC2 AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/14954066-d22b-486a-a432-265296752878.png)


*Utilizzo di strumenti Oracle nativi:*

![\[Migrazione di un database Oracle locale su Amazon EC2 con gli strumenti Oracle.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/82ba5fcb-8640-45fa-b432-2702dedc0774.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-tools"></a>
+ **AWS DMS -** [AWS Database Migration Services](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) supporta diversi tipi di database di origine e destinazione. Per informazioni sulle versioni e le edizioni del database supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.  
+ **Strumenti Oracle nativi:** RMAN, importazione/esportazione di Data Pump, tablespace trasportabili, Oracle GoldenGate                                                         

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
|  Convalida le versioni dei database di origine e di destinazione. |  | DBA | 
|  Identifica la versione del sistema operativo di destinazione. |  | DBA, SysAdmin | 
| Identifica i requisiti hardware per l'istanza del server di destinazione in base all'elenco di compatibilità e ai requisiti di capacità di Oracle. |  | DBA, SysAdmin | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Identifica i requisiti di rete (latenza e larghezza di banda). |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza degli network/host accessi per i database di origine e di destinazione. |  | DBA, SysAdmin | 
| Identifica un elenco di utenti del sistema operativo necessari per l'installazione del software Oracle. |  | DBA, SysAdmin | 
| Scarica AWS Schema Conversion Tool (AWS SCT) e i driver. |  | DBA | 
| Crea un progetto AWS SCT per il carico di lavoro e connettiti al database di origine. |  | DBA | 
| Genera file SQL per la creazione di oggetti (tabelle, indici, sequenze, ecc.). |  | DBA | 
| Determinare una strategia di backup. |  | DBA, SysAdmin  | 
| Determinare i requisiti di disponibilità. |  | DBA | 
| Identifica la strategia di migrazione/commutazione delle applicazioni. |  | DBA, proprietario dell'app SysAdmin | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (VPC) e sottoreti nel tuo account AWS. |  | SysAdmin | 
| Crea gruppi di sicurezza e liste di controllo degli accessi alla rete (). ACLs |  | SysAdmin | 
| Configura e avvia l' EC2 istanza. |  | SysAdmin | 

### Installa il software Oracle
<a name="install-the-oracle-software"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea gli utenti e i gruppi del sistema operativo necessari per il software Oracle. |  | DBA, SysAdmin | 
| Scarica la versione richiesta del software Oracle. |  |  | 
| Installa il software Oracle sull' EC2 istanza. |  | DBA, SysAdmin | 
| Crea oggetti come tabelle, chiavi primarie, viste e sequenze utilizzando gli script generati da AWS SCT. |  | DBA | 

### Migrazione dei dati - opzione 1
<a name="migrate-data---option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti Oracle nativi o strumenti di terze parti per migrare oggetti e dati del database. | Gli strumenti Oracle includono l'importazione/esportazione di Data Pump, RMAN, tablespace trasportabili e. GoldenGate | DBA | 

### Migrazione dei dati - opzione 2
<a name="migrate-data---option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determinare il metodo di migrazione. |  | DBA | 
| Crea un'istanza di replica nella console AWS DMS. |  | DBA | 
| Crea endpoint di origine e destinazione. |  | DBA | 
| Creare un'attività di replica. |  | DBA | 
| Abilita Change Data Capture (CDC) per acquisire le modifiche per una replica continua. |  | DBA | 
| Esegui l'attività di replica e monitora i log. |  | DBA | 
| Crea oggetti secondari come indici e chiavi esterne al termine del caricamento completo. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA SysAdmin, proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di cutover/switch-over dell'applicazione. |  | DBA, proprietario dell'app SysAdmin | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse temporanee di AWS Secrets Manager. |  | DBA, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell' SysAdminapp | 
| Raccogli le metriche in tempo utile per la migrazione, percentuale di utilizzo manuale rispetto allo strumento, risparmi sui costi, ecc. |  | DBA, proprietario dell'app SysAdmin | 
| Chiudi il progetto e fornisci feedback. |  |  | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-resources"></a>

**Riferimenti**
+ [Strategie per la migrazione dei database Oracle su AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html) 
+ [Migrazione dei database Oracle sul cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/)
+ [ EC2 Sito web Amazon](https://aws.amazon.com/ec2/)
+ [Sito web AWS DMS](https://aws.amazon.com/dms/)
+ [Post sul blog di AWS DMS](https://aws.amazon.com/blogs/database/category/dms/)
+ [ EC2 Prezzi Amazon](https://aws.amazon.com/ec2/pricing/)
+ [Licenza del software Oracle nell'ambiente di cloud computing](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

**Tutorial e video**
+ [Guida introduttiva ad Amazon EC2](https://aws.amazon.com/ec2/getting-started/)
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Introduzione ad Amazon EC2 - Elastic Cloud Server e hosting con AWS (video)](https://www.youtube.com/watch?v=TsRBftzZsQo) 

# Esegui la migrazione di un database Oracle locale su Amazon EC2 utilizzando 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*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

Durante la migrazione dei database, è necessario considerare fattori quali i motori e le versioni dei database di origine e di destinazione, gli strumenti e i servizi di migrazione e i periodi di inattività accettabili. Se stai migrando un database Oracle locale su Amazon Elastic Compute Cloud (Amazon EC2), puoi utilizzare strumenti Oracle, come Oracle Data Pump e Oracle Recovery Manager (RMAN). Per ulteriori informazioni sulle strategie, consulta [Migrazione dei database Oracle al cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html).

Oracle Data Pump ti aiuta a estrarre il backup logico e coerente del database e a ripristinarlo sull' EC2 istanza di destinazione. Questo modello descrive come migrare un database Oracle locale su un' EC2 istanza utilizzando Oracle Data Pump e il `NETWORK_LINK` parametro, con tempi di inattività minimi. Il `NETWORK_LINK` parametro avvia un'importazione tramite un collegamento al database. Il client Oracle Data Pump Import (impdp) sull' EC2 istanza di destinazione si connette al database di origine, recupera i dati da esso e li scrive direttamente nel database sull'istanza di destinazione. In questa soluzione non vengono utilizzati file di backup o *dump*.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un database Oracle locale che:
  + Non è un database Oracle Real Application Clusters (RAC)
  + Non è un database Oracle Automatic Storage Management (Oracle ASM)
  + È in modalità lettura-scrittura.
+ Hai creato un collegamento AWS Direct Connect tra il tuo data center locale e AWS. Per ulteriori informazioni, consulta [Creare una connessione](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (documentazione Direct Connect).

**Versioni del prodotto**
+ Oracle Database 10g release 1 (10.1) e successive

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**Stack tecnologico di origine**
+ Un server di database Oracle autonomo (non RAC e non ASM) in un data center locale

**Stack tecnologico Target**
+ Un database Oracle in esecuzione su Amazon EC2

**Architettura Target**

Il [pilastro dell'affidabilità](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) di AWS Well-Architected Framework consiglia di creare backup dei dati per contribuire a fornire disponibilità e resilienza elevate. Per ulteriori informazioni, consulta [Architecting for high availability](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2) in *Best Practices for Running Oracle Database on AWS*. Questo modello imposta i database primari e in standby sulle EC2 istanze utilizzando Oracle Active Data Guard. Per un'elevata disponibilità, le EC2 istanze devono trovarsi in zone di disponibilità diverse. Tuttavia, le zone di disponibilità possono trovarsi nella stessa regione AWS o in diverse regioni AWS.

Active Data Guard fornisce l'accesso in sola lettura a un database fisico in standby e applica continuamente le modifiche da ripetere dal database principale. In base al Recovery Point Objective (RPO) e al Recovery Time Objective (RTO), puoi scegliere tra opzioni di redo transport sincrone e asincrono.

L'immagine seguente mostra l'architettura di destinazione se le EC2 istanze primarie e di standby si trovano in diverse regioni AWS.

![\[Applicazione che si connette al nuovo database sull'istanza principale EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**Architettura di migrazione dei dati**

Dopo aver completato la configurazione dell'architettura di destinazione, si utilizza Oracle Data Pump per migrare i dati e gli schemi locali sull'istanza principale. EC2 Durante il cutover, le applicazioni non possono accedere al database locale o al database di destinazione. Queste applicazioni vengono chiuse finché non possono essere connesse al nuovo database di destinazione sull'istanza principale EC2 .

L'immagine seguente mostra l'architettura durante la migrazione dei dati. In questa architettura di esempio, le EC2 istanze primarie e di standby si trovano in diverse regioni AWS.

![\[Il DB di origine si connette al DB di destinazione. Le applicazioni vengono disconnesse dall'origine e dalla destinazione DBs\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**Servizi AWS**
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, puoi creare interfacce virtuali direttamente ai servizi AWS pubblici bypassando i provider di servizi Internet nel tuo percorso di rete.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.

**Altri strumenti e servizi**
+ [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) ti aiuta a creare, mantenere, gestire e monitorare i database in standby.
+ [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html) ti aiuta a spostare dati e metadati da un database all'altro a velocità elevate.

## Best practice
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [Best Practice per l'esecuzione di Oracle Database su AWS](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [Importazione di dati utilizzando NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### Configura le EC2 istanze su AWS
<a name="set-up-the-ec2-instances-on-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica la configurazione hardware di origine per l'host locale e i parametri del kernel. | Convalida la configurazione locale, comprese le dimensioni dello storage, input/output le operazioni al secondo (IOPS) e la CPU. Questo è importante per le licenze Oracle, che si basano sui core della CPU. | DBA, SysAdmin | 
| Crea l'infrastruttura su AWS. | Crea cloud privati virtuali (VPCs), sottoreti private, gruppi di sicurezza, elenchi di controllo degli accessi alla rete (ACLs), tabelle di routing e gateway Internet. Per ulteriori informazioni, consulta gli argomenti seguenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | Amministratore di sistema DBA, AWS | 
| Configura le EC2 istanze utilizzando Active Data Guard. | Configura EC2 le istanze AWS utilizzando una configurazione Active Data Guard, come descritto in [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html). La versione di Oracle Database sull' EC2 istanza può essere diversa dalla versione locale perché questo modello utilizza backup logici. Tenere presente quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)Per ulteriori informazioni, consulta:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | Amministratore di sistema DBA, AWS | 

### Esegui la migrazione del database su Amazon EC2
<a name="migrate-the-database-to-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dblink al database locale dall'istanza. EC2  | Crea un database link (dblink) tra il database Oracle sull' EC2 istanza e il database Oracle locale. Per ulteriori informazioni, vedere [Utilizzo dell'importazione da Network Link per spostare i dati](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806) (documentazione Oracle). | DBA | 
| Verifica la connessione tra l' EC2 istanza e l'host locale. | Usa il dblink per confermare che la connessione tra l' EC2 istanza e il database locale funzioni. Per istruzioni, consulta [CREATE DATABASE LINK](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm) (documentazione Oracle). | DBA | 
| Arresta tutte le applicazioni connesse al database locale. | Dopo l'approvazione del periodo di inattività del database, chiudi tutte le applicazioni e i job dipendenti che si connettono al database locale. Puoi farlo direttamente dall'applicazione o dal database usando cron. Per ulteriori informazioni, consulta [Utilizzare l'utilità Crontab per pianificare le attività su Oracle Linux](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html). | DBA, sviluppatore di app | 
| Pianifica il processo di migrazione dei dati.  | Sull'host di destinazione, usa il comando `impdb` per pianificare l'importazione di Data Pump. Questo collega il database di destinazione all'host locale e avvia la migrazione dei dati. Per ulteriori informazioni, vedere [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) (documentazione Oracle). | DBA | 
| Convalida la migrazione dei dati. | La convalida dei dati è un passaggio fondamentale. Per la convalida dei dati, puoi utilizzare strumenti personalizzati o strumenti Oracle, come una combinazione di query dblink e SQL. | DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Metti il database di origine in modalità di sola lettura. | Verificate che l'applicazione sia chiusa e che non siano state apportate modifiche al database di origine. Aprire il database di origine in modalità di sola lettura. In questo modo è possibile evitare transazioni aperte. Per ulteriori informazioni, vedere `ALTER DATABASE` nelle [istruzioni SQL](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540) (documentazione Oracle). | DBA, DevOps ingegnere, sviluppatore di app | 
| Convalida il conteggio e i dati degli oggetti. | Per convalidare i dati e l'oggetto, utilizza strumenti personalizzati o strumenti Oracle, come una combinazione di query dblink e SQL. | DBA, sviluppatore di app | 
| Connect le applicazioni al database sull' EC2 istanza principale. | Modificate l'attributo di connessione dell'applicazione in modo che punti al nuovo database creato sull' EC2 istanza principale. | DBA, sviluppatore di app | 
| Convalida le prestazioni dell'applicazione. | Avvia l'applicazione. Convalida la funzionalità e le prestazioni dell'applicazione utilizzando [Automated Workload Repository](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (documentazione Oracle). | Sviluppatore di app, ingegnere, DevOps DBA | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**Riferimenti AWS**
+ [Migrazione dei database Oracle sul cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Amazon EC2 per Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [Migrazione di database Oracle voluminosi su AWS per ambienti multipiattaforma](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPCs e sottoreti](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [Tutorial: creare un VPC da utilizzare con un'istanza di database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Riferimenti Oracle**
+ [Configurazioni 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)
+ [Importazione di Data Pump](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)

# Migra i sistemi RHEL BYOL verso istanze con licenza AWS inclusa utilizzando AWS MGN
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn"></a>

*Mike Kuznetsov, Amazon Web Services*

## Riepilogo
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-summary"></a>

Quando migri i tuoi carichi di lavoro su AWS utilizzando AWS Application Migration Service (AWS MGN), potresti dover sollevare e spostare (reospitare) le istanze di Red Hat Enterprise Linux (RHEL) e modificare la licenza dal modello Bring Your Own License (BYOL) predefinito a un modello AWS License Included (LI) durante la migrazione. AWS MGN supporta un approccio scalabile che utilizza ID Amazon Machine Image (AMI). Questo modello descrive come effettuare la modifica della licenza sui server RHEL durante la migrazione del rehost su larga scala. Spiega inoltre come modificare la licenza per un sistema RHEL già in esecuzione su Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute Cloud (Amazon EC2).

## Prerequisiti e limitazioni
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-prereqs"></a>

**Prerequisiti**
+ Accesso all'account AWS di destinazione
+ AWS MGN inizializzato nell'account AWS e nella regione di destinazione per la migrazione (non richiesto se hai già effettuato la migrazione dal tuo sistema locale ad AWS)
+ Un server RHEL di origine con una licenza RHEL valida

## Architecture
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-architecture"></a>

Questo modello copre due scenari:
+ Migrazione di un sistema da locale direttamente a un'istanza AWS LI utilizzando AWS MGN. Per questo scenario, segui le istruzioni del primo capitolo epico (*Migrazione all'istanza LI - opzione 1*) e del terzo capitolo.
+ Modifica del modello di licenza da BYOL a LI per un sistema RHEL precedentemente migrato e già in esecuzione su Amazon EC2. *Per questo scenario, segui le istruzioni contenute nella seconda pagina epica (*Migrate to LI instance* - opzione 2) e nella terza epic.*

**Nota**  
La terza epopea riguarda la riconfigurazione della nuova istanza RHEL per utilizzare i server Red Hat Update Infrastructure (RHUI) forniti da AWS. Questo processo è lo stesso per entrambi gli scenari.

## Tools (Strumenti)
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-tools"></a>

**Servizi AWS**
+ [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ti aiuta a reospitare (lift and shift) le applicazioni nel cloud AWS senza modifiche e con tempi di inattività minimi.

## Epiche
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-epics"></a>

### Migrazione all'istanza LI - opzione 1 (per un sistema RHEL locale)
<a name="migrate-to-li-instance---option-1-for-an-on-premises-rhel-system"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trova l'ID AMI dell'istanza RHEL AWS LI nella regione di destinazione. | Visita [AWS Marketplace](https://aws.amazon.com/marketplace) o usa la [console Amazon EC2](https://console.aws.amazon.com/ec2/) per trovare l'ID AMI RHEL che corrisponde alla versione del sistema di origine RHEL (ad esempio, RHEL-7.7) e annota l'ID AMI. Sulla console Amazon EC2, puoi filtrare AMIs utilizzando uno dei seguenti termini di ricerca:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Amministratore cloud | 
| Configura le impostazioni di avvio di AWS MGN.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)AWS MGN utilizzerà ora questa versione del modello di lancio per avviare istanze di test o cutover. Per ulteriori informazioni, consulta la [documentazione di AWS MGN.](https://docs.aws.amazon.com/mgn/latest/ug/ec2-launch.html) | Amministratore del cloud | 
| Convalida le impostazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Amministratore cloud | 
| Avvia la nuova istanza LI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Amministratore cloud | 

### Migrazione a un'istanza LI - opzione 2 (per un'istanza RHEL BYOL EC2)
<a name="migrate-to-li-instance---option-2-for-a-rhel-byol-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra la tua istanza RHEL BYOL EC2 su un'istanza AWS LI. | Puoi cambiare i sistemi RHEL precedentemente migrati su AWS come BYOL in istanze AWS LI spostando i relativi dischi (volumi Amazon Elastic Block Store) e collegandoli a una nuova istanza LI. Per effettuare questo passaggio, segui questi passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Amministratore cloud | 

### Riconfigurazione del sistema operativo RHEL per utilizzare RHUI fornito da AWS: entrambe le opzioni
<a name="reconfigure-rhel-os-to-use-aws-provided-rhui-ndash-both-options"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Annulla la registrazione del sistema operativo dalla sottoscrizione e dalla licenza Red Hat. | Dopo la migrazione e il completamento con successo, il sistema RHEL deve essere rimosso dalla sottoscrizione Red Hat per interrompere l'utilizzo della licenza Red Hat ed evitare una doppia fatturazione.Per rimuovere RHEL OS dalla sottoscrizione Red Hat, seguite la procedura descritta nella documentazione di [Red Hat Subscription Management (](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/installation_guide/chap-subscription-management-unregistering)RHSM). Utilizzare il comando CLI :  <pre>subscription-manager unregister</pre>Puoi anche disabilitare il plugin di gestione delle sottoscrizioni per interrompere il controllo dello stato dell'abbonamento a ogni chiamata **yum**. Per fare ciò, modifica il file di configurazione `/etc/yum/pluginconf.d/subscription-manager.conf` e modifica il parametro `enabled=1` in`enabled=0`. | Linux o amministratore di sistema | 
| Sostituisci la vecchia configurazione di aggiornamento (RHUI, rete Red Hat Satellite, repository yum) con la RHUI fornita da AWS. | È necessario riconfigurare il sistema RHEL migrato per utilizzare i server RHUI forniti da AWS. Ciò consente di accedere ai server RHUI all'interno delle regioni AWS senza richiedere l'infrastruttura di aggiornamento esterna. La modifica prevede il seguente processo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)Ecco i passaggi e i comandi dettagliati:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Linux o amministratore di sistema | 
| Convalida la configurazione. | Nell'istanza di destinazione migrata, verifica che la nuova configurazione sia corretta:<pre>sudo yum clean all <br />sudo yum repolist </pre> | Linux o amministratore di sistema | 

## Risorse correlate
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-resources"></a>
+ [Guida per l'utente di AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Ottieni il supporto di un pacchetto client AWS RHUI IMDSv2](https://access.redhat.com/solutions/5009491) (articolo della Red Hat Knowledgebase)
+ [Modelli di lancio di Amazon EC2 (documentazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) Amazon EC2)

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2"></a>

*Senthil Ramasamy, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-summary"></a>

Questo modello descrive come migrare un database Microsoft SQL Server locale a Microsoft SQL Server su un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Include due opzioni per la migrazione: utilizzando AWS Database Migration Service (AWS DMS) o utilizzando strumenti nativi di Microsoft SQL Server come backup e ripristino, Copy Database Wizard o copia e collega il database. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-prereqs"></a>

**Prerequisiti**
+ Un account attivo AWS 
+ Un sistema operativo supportato da Amazon EC2 (per un elenco completo delle versioni del sistema operativo supportate, consulta [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/))
+ Un database di origine Microsoft SQL Server in un data center locale

**Versioni del prodotto**
+ Per i database locali e di EC2 istanze Amazon, AWS DMS supporta: 
  + Versioni di SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 e 2019 
  + Edizioni Enterprise, Standard, Workgroup, Developer e Web
+ Per l'elenco più recente delle versioni supportate, vedere [Utilizzo di un database Microsoft SQL Server come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html).   

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-architecture"></a>

**Stack tecnologico di origine**
+ Database Microsoft SQL Server locale

**Stack tecnologico Target**
+ Database Microsoft SQL Server su un' EC2 istanza

**Architettura Target**

![\[Istanze primarie e in standby di Microsoft SQL Server su EC2 istanze in due zone di disponibilità.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/53e2c27d-ceb4-4d88-a022-93dd0b343eaf.png)


**Architettura di migrazione dei dati**
+ Usando AWS DMS

![\[Migrazione dei dati di SQL Server locali su un' EC2 istanza utilizzando AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/1cbe32ea-e285-4cac-9153-4428bad9b229.png)

+ Utilizzo di strumenti nativi di SQL Server 

![\[Migrazione dei dati di SQL Server locali su un' EC2 istanza utilizzando strumenti nativi di SQL Server.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/ad2caf54-7399-4038-91a3-acba9fa7da29.png)


## Tools (Strumenti)
<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/) consente di migrare i dati da e verso database commerciali e open source ampiamente utilizzati, tra cui Oracle, SQL Server, MySQL e PostgreSQL. Puoi utilizzarli AWS DMS per migrare i dati in Cloud AWS, tra istanze locali (tramite una Cloud AWS configurazione) o tra combinazioni di configurazioni cloud e locali.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
+ Gli strumenti nativi di Microsoft SQL Server includono backup e ripristino, Copia guidata del database e copia e allega database.

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database di origine e di destinazione. |  | DBA | 
| Identifica la versione del sistema operativo di destinazione. |  | DBA, amministratore di sistema | 
| Identifica i requisiti hardware per l'istanza del server di destinazione in base all'elenco di compatibilità e ai requisiti di capacità di Microsoft SQL Server. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione per tipo e capacità. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di rete, tra cui latenza e larghezza di banda. |  | DBA, amministratore di sistema | 
| Scegli il tipo di EC2 istanza in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete e all'host per i database di origine e di destinazione. |  | DBA, amministratore di sistema | 
| Identificare un elenco di utenti necessari per l'installazione del software Microsoft SQL Server. |  | DBA, amministratore di sistema | 
| Determinare la strategia di backup. |  | DBA | 
| Determinare i requisiti di disponibilità. |  | DBA | 
| Identifica la migrazione delle applicazioni e la strategia di cutover. |  | DBA, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (VPC) e sottoreti. |  | Amministratore di sistema | 
| Crea gruppi di sicurezza e una lista di controllo degli accessi alla rete (ACL). |  | Amministratore di sistema | 
| Configura e avvia un' EC2 istanza. |  | Amministratore di sistema | 

### Installa il software
<a name="install-the-software"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare gli utenti e i gruppi necessari per il software Microsoft SQL Server. |  | DBA, amministratore di sistema | 
| Scarica il software Microsoft SQL Server. |  | DBA, amministratore di sistema | 
| Installa il software Microsoft SQL Server sull' EC2 istanza e configura il server. |  | DBA, amministratore di sistema | 

### Migrazione dei dati - opzione 1
<a name="migrate-the-data---option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti nativi di Microsoft SQL Server o strumenti di terze parti per migrare gli oggetti e i dati del database. | Gli strumenti includono backup e ripristino, Copy Database Wizard e copia e allega il database. Per ulteriori informazioni, vedere la guida [Migrazione dei database di Microsoft SQL Server a](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/). Cloud AWS | DBA | 

### Migrazione dei dati - opzione 2
<a name="migrate-the-data---option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione dei dati utilizzando AWS DMS. | Per ulteriori informazioni sull'utilizzo AWS DMS, consulta i collegamenti nella sezione [Risorse correlate](#migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources). | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. | Utilizzate AWS Schema Conversion Tool (AWS SCT) per analizzare e modificare il codice SQL incorporato nel codice sorgente dell'applicazione. | DBA, proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di commutazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi tutte le AWS risorse temporanee. | Le risorse temporanee includono l'istanza AWS DMS di replica e l' EC2 istanza for AWS SCT. | DBA, amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli le metriche necessarie per la migrazione, la percentuale di risparmio sui costi manuali rispetto a quelli relativi agli strumenti e così via. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto e fornisci feedback. |  | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources"></a>

**Riferimenti**
+ [Migrazione dei database Microsoft SQL Server verso Cloud 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 Prezzi Amazon](https://aws.amazon.com/ec2/pricing/)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Prodotti Microsoft su AWS](https://aws.amazon.com/windows/products/)
+ [Licenze Microsoft su AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server su AWS](https://aws.amazon.com/windows/products/sql/)

**Tutorial e video**
+ [Guida introduttiva ad](https://aws.amazon.com/ec2/getting-started/) Amazon EC2
+ [Nozioni di base su ](https://aws.amazon.com/dms/getting-started/)AWS Database Migration Service
+ [Unisci un' EC2 istanza Amazon al tuo Simple AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_join_instance.html)
+ [Unisci un' EC2 istanza Amazon alla tua 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)(video)
+ [Introduzione ad Amazon EC2 — Elastic Cloud Server & Hosting con AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (video)

# Rehosting dei carichi di lavoro locali nel cloud AWS: lista di controllo per la migrazione
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Riepilogo
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-summary"></a>

Il rehosting dei carichi di lavoro locali nel cloud Amazon Web Services (AWS) prevede le seguenti fasi di migrazione: pianificazione, pre-discovery, discovery, build, test e cutover. Questo modello delinea le fasi e le attività correlate. Le attività sono descritte a un livello elevato e supportano circa il 75% di tutti i carichi di lavoro delle applicazioni. È possibile implementare queste attività nell'arco di due o tre settimane in un ciclo di sprint agile.

È necessario esaminare e verificare queste attività con il team di migrazione e i consulenti. Dopo la revisione, è possibile raccogliere gli input, eliminare o rivalutare le attività necessarie per soddisfare i requisiti e modificare altre attività per supportare almeno il 75% dei carichi di lavoro delle applicazioni nel portafoglio. È quindi possibile utilizzare uno strumento di gestione dei progetti agile come Atlassian Jira o Rally Software per importare le attività, assegnarle alle risorse e tenere traccia delle attività di migrazione. 

Lo schema presuppone che tu stia utilizzando [AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html) per riospitare i tuoi carichi di lavoro, ma puoi usare il tuo strumento di migrazione preferito.

Amazon Macie può aiutarti a identificare i dati sensibili nelle tue knowledge base, archiviati come fonti di dati, log di invocazione di modelli e archivi di richieste nei bucket Amazon Simple Storage Service (Amazon S3). [Per ulteriori informazioni, consulta la documentazione di Macie.](https://docs.aws.amazon.com/macie/latest/user/data-classification.html)

## Prerequisiti e limitazioni
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-prereqs"></a>

**Prerequisiti**
+ Strumento di gestione dei progetti per tenere traccia delle attività di migrazione (ad esempio, Atlassian Jira o Rally Software)
+ Strumento di migrazione per il rehosting dei carichi di lavoro su AWS (ad esempio, [Cloud Migration](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html) Factory)

## Architecture
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-architecture"></a>

**Piattaforma di origine**
+ Stack di sorgenti locale (incluse tecnologie, applicazioni, database e infrastruttura)  

**Piattaforma di destinazione**
+ Stack di obiettivi AWS Cloud (tra cui tecnologie, applicazioni, database e infrastruttura) 

**Architettura**

Il diagramma seguente illustra il rehosting (scoperta e migrazione di server da un ambiente di origine locale ad AWS) utilizzando Cloud Migration Factory e AWS Application Migration Service.

![\[Rehosting dei server su AWS utilizzando Cloud Migration Factory e Application Migration Service\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/images/735ad65b-2646-4803-82c9-f7f93369b3a5.png)


## Tools (Strumenti)
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-tools"></a>
+ Puoi utilizzare uno strumento di migrazione e gestione dei progetti a tua scelta.

## Epiche
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-epics"></a>

### Fase di pianificazione
<a name="planning-phase"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Gestisci il backlog precedente alla scoperta. | Conduci la sessione di lavoro sulla gestione del backlog pre-discovery con i responsabili di reparto e i proprietari delle applicazioni.  | Responsabile del progetto, Agile Scrum Leader | 
|  Conduci la sessione di lavoro sulla pianificazione dello sprint. | Come esercizio di analisi, distribuisci le applicazioni che desideri migrare tra sprint e wave. | Responsabile di progetto, Agile Scrum Leader | 

### Fase di pre-scoperta
<a name="pre-discovery-phase"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Conferma la conoscenza dell'applicazione. | Conferma e documenta il proprietario dell'applicazione e la sua conoscenza dell'applicazione. Stabilisci se esiste un'altra persona di riferimento per le domande tecniche. | Specialista in migrazione (intervistatore) | 
| Determinare i requisiti di conformità delle applicazioni. | Verifica con il proprietario dell'applicazione che l'applicazione non deve soddisfare i requisiti per il Payment Card Industry Data Security Standard (PCI DSS), il Sarbanes-Oxley Act (SOX), le informazioni di identificazione personale (PII) o altri standard. Se esistono requisiti di conformità, i team devono completare i controlli di conformità sui server che verranno migrati. | Specialista in migrazione (intervistatore) | 
| Conferma i requisiti di rilascio della versione di produzione.  | Confermate i requisiti per il rilascio dell'applicazione migrata in produzione (come la data di rilascio e la durata del periodo di inattività) con il proprietario dell'applicazione o il contatto tecnico. | Specialista in migrazione (intervistatore) | 
| Ottieni l'elenco dei server. | Ottieni l'elenco dei server associati all'applicazione di destinazione. | Specialista in migrazione (intervistatore) | 
| Ottieni il diagramma logico che mostra lo stato attuale. | Ottenete il diagramma dello stato corrente dell'applicazione dall'architetto aziendale o dal proprietario dell'applicazione. | Specialista in migrazione (intervistatore) | 
| Crea un diagramma logico che mostri lo stato di destinazione. | Crea un diagramma logico dell'applicazione che mostri l'architettura di destinazione su AWS. Questo diagramma dovrebbe illustrare i server, la connettività e i fattori di mappatura. | Architetto aziendale, imprenditore | 
| Ottieni informazioni sul server. | Raccogli informazioni sui server associati all'applicazione, inclusi i dettagli di configurazione. | Specialista in migrazione (intervistatore) | 
| Aggiungi informazioni sul server al modello di scoperta. | Aggiungere informazioni dettagliate sul server al modello di rilevamento dell'applicazione (vedere `mobilize-application-questionnaire.xlsx` nell'allegato per questo modello). Questo modello include tutti i dettagli relativi alla sicurezza, all'infrastruttura, al sistema operativo e alla rete relativi all'applicazione. | Specialista in migrazione (intervistatore) | 
| Pubblica il modello di rilevamento delle applicazioni. | Condividi il modello di rilevamento delle applicazioni con il proprietario dell'applicazione e il team di migrazione per un accesso e un utilizzo comuni. | Specialista in migrazione (intervistatore) | 

### Fase di scoperta
<a name="discovery-phase"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Conferma l'elenco dei server. | Confermate l'elenco dei server e lo scopo di ciascun server con il proprietario dell'applicazione o il responsabile tecnico. | Specialista in migrazione | 
| Identifica e aggiungi gruppi di server. | Identifica gruppi di server come server Web o server di applicazioni e aggiungi queste informazioni al modello di rilevamento delle applicazioni. Seleziona il livello dell'applicazione (web, applicazione, database) a cui deve appartenere ogni server. | Specialista in migrazione | 
| Compila il modello di scoperta dell'applicazione. | Completa i dettagli del modello di rilevamento delle applicazioni con l'aiuto del team di migrazione, del team dell'applicazione e di AWS. | Specialista in migrazione | 
| Aggiungi i dettagli mancanti del server (team del middleware e del sistema operativo). | Chiedi ai team del middleware e del sistema operativo (OS) di esaminare il modello di individuazione delle applicazioni e aggiungere eventuali dettagli mancanti sul server, incluse le informazioni sul database. | Specialista in migrazione | 
| Ottieni le regole inbound/outbound del traffico (team di rete). | Chiedi al team di rete di ottenere le regole inbound/outbound del traffico per i server di origine e di destinazione. Il team di rete deve inoltre aggiungere le regole firewall esistenti, esportarle in un formato di gruppo di sicurezza e aggiungere i sistemi di bilanciamento del carico esistenti al modello di rilevamento delle applicazioni. | Specialista in migrazione | 
| Identifica i tag richiesti. | Determina i requisiti di etichettatura per l'applicazione. | Specialista in migrazione | 
| Crea i dettagli della richiesta del firewall. | Acquisisci e filtra le regole del firewall necessarie per comunicare con l'applicazione.  | Specialista in migrazione, architetto di soluzioni, responsabile della rete  | 
| Aggiorna il tipo di EC2 istanza. | Aggiorna il tipo di istanza Amazon Elastic Compute Cloud (Amazon EC2) da utilizzare nell'ambiente di destinazione, in base ai requisiti dell'infrastruttura e del server.  | Specialista in migrazione, architetto di soluzioni, responsabile della rete | 
| Identifica il diagramma dello stato attuale. | Identifica o crea il diagramma che mostra lo stato corrente dell'applicazione. Questo diagramma verrà utilizzato nella richiesta di sicurezza delle informazioni (InfoSec).  | Specialista in migrazione, Solutions architect | 
| Finalizza il diagramma degli stati futuri. | Finalizza il diagramma che mostra lo stato futuro (di destinazione) dell'applicazione. Questo diagramma verrà utilizzato anche nella richiesta. InfoSec   | Specialista in migrazione, Solutions architect | 
| Crea richieste di assistenza per firewall o gruppi di sicurezza. | Crea richieste di servizi per firewall o gruppi di sicurezza (per sviluppo/QA, preproduzione e produzione). Se utilizzi Cloud Migration Factory, includi porte specifiche per la replica se non sono già aperte.  | Specialista in migrazione, architetto di soluzioni, responsabile della rete | 
| Esamina le richieste del firewall o del gruppo di sicurezza (InfoSec team). | In questo passaggio, il InfoSec team esamina e approva le richieste del firewall o del gruppo di sicurezza create nel passaggio precedente.  | InfoSec ingegnere, specialista in migrazione | 
| Implementa le richieste dei gruppi di sicurezza del firewall (team di rete). | Dopo che il InfoSec team ha approvato le richieste del firewall, il team di rete implementa le regole inbound/outbound firewall richieste.  | Specialista in migrazione, architetto di soluzioni, responsabile della rete | 

### Fase di costruzione (ripetere per ambienti di sviluppo/QA, preproduzione e produzione)
<a name="build-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Importa i dati dell'applicazione e del server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.html)Se non utilizzi Cloud Migration Factory, segui le istruzioni per configurare lo strumento di migrazione. | Specialista in migrazione, amministratore cloud | 
| Verifica i prerequisiti per i server di origine. | Connect con i server di origine inclusi nell'ambito per verificare prerequisiti come la porta TCP 1500, la porta TCP 443, lo spazio libero nel volume root, la versione.NET Framework e altri parametri. Questi sono necessari per la replica. Per ulteriori informazioni, consulta la [Guida all'implementazione di 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). | Specialista in migrazione, amministratore cloud | 
| Crea una richiesta di servizio per installare gli agenti di replica.  | Crea una richiesta di servizio per installare gli agenti di replica sui server interessati per lo sviluppo/QA, la preproduzione o la produzione. | Specialista in migrazione, amministratore cloud | 
| Installa gli agenti di replica. | Installa gli agenti di replica sui server di origine pertinenti sui computer di sviluppo/QA, di preproduzione o di produzione. [Per ulteriori informazioni, consulta la Guida all'implementazione di 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) | Specialista in migrazione, amministratore cloud | 
| Invia gli script post-lancio. | Application Migration Service supporta gli script post-lancio per aiutarti ad automatizzare le attività a livello di sistema operativo, come l'installazione o la disinstallazione del software dopo l'avvio delle istanze di destinazione. Questo passaggio invia gli script post-avvio ai computer Windows o Linux, a seconda dei server identificati per la migrazione. Per istruzioni, consulta la Guida all'implementazione di [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). | Specialista in migrazione, amministratore cloud | 
| Verifica lo stato della replica. | Conferma automaticamente lo stato di replica per i server di origine pertinenti utilizzando lo script fornito. **Lo script si ripete ogni cinque minuti fino a quando lo stato di tutti i server di origine nell'ondata data diventa Healthy.** Per istruzioni, consulta la [Guida all'implementazione di 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). | Specialista in migrazione, amministratore cloud | 
| Crea l'utente amministratore. | Potrebbe essere necessario un amministratore locale o un utente sudo sui computer di origine per risolvere eventuali problemi dopo l'interruzione della migrazione dai server di origine interessati ad AWS. Il team di migrazione utilizza questo utente per accedere al server di destinazione quando il server di autenticazione (ad esempio, il server DC o LDAP) non è raggiungibile. Per istruzioni su questo passaggio, consulta la Guida all'[implementazione di Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/step4.html#add-a-user-to-the-admin-group). | Specialista della migrazione, amministratore del cloud | 
| Convalida il modello di lancio. | Convalida i metadati del server per assicurarti che funzionino correttamente e non contengano dati non validi. Questo passaggio convalida sia i metadati di test che quelli di cutover. Per istruzioni, consulta la Guida all'implementazione di [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). | Specialista in migrazione, amministratore cloud | 

### Fase di test (ripetizione per ambienti di sviluppo/QA, preproduzione e produzione)
<a name="test-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una richiesta di assistenza. | Crea una richiesta di servizio per il team dell'infrastruttura e gli altri team per eseguire il trasferimento delle applicazioni alle istanze di sviluppo/QA, di pre-produzione o di produzione.  | Specialista in migrazione, amministratore cloud | 
| Configura un sistema di bilanciamento del carico (opzionale). | Configura i load balancer richiesti, come un [Application Load Balancer o un load](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) [balancer F5](https://www.f5.com/resources/white-papers/load-balancing-101-nuts-and-bolts) con iRules. | Specialista in migrazione, amministratore cloud | 
| Avvia istanze per i test. | Avvia tutte le macchine di destinazione per una determinata ondata in Application Migration Service in modalità test. Per ulteriori informazioni, consulta la [Guida all'implementazione di 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). | Specialista della migrazione, amministratore del cloud | 
| Verifica lo stato dell'istanza di destinazione. | Verifica lo stato dell'istanza di destinazione controllando il processo di avvio di tutti i server di origine inclusi nell'ambito della stessa ondata. L'avvio delle istanze di destinazione può richiedere fino a 30 minuti. Puoi controllare lo stato manualmente accedendo alla EC2 console Amazon, cercando il nome del server di origine e rivedendo la colonna **Controllo dello stato**. I **controlli di stato 2/2 superati** indicano che l'istanza è integra dal punto di vista dell'infrastruttura. | Specialista in migrazione, amministratore del cloud | 
| Modifica le voci DNS. | Modifica le voci del Domain Name System (DNS). (Utilizzare `resolv.conf` o `host.conf` per un ambiente Microsoft Windows). Configura ogni EC2 istanza in modo che punti al nuovo indirizzo IP di questo host.Assicurati che non vi siano conflitti DNS tra i server locali e i server cloud AWS. Questo passaggio e i passaggi seguenti sono facoltativi, a seconda dell'ambiente in cui è ospitato il server. | Specialista in migrazione, amministratore del cloud | 
| Verifica la connettività agli host di backend a partire dalle EC2 istanze. | Controlla gli accessi utilizzando le credenziali di dominio per i server migrati. | Specialista in migrazione, amministratore cloud | 
| Aggiorna il record DNS A. | Aggiorna il record DNS A per ogni host in modo che punti al nuovo indirizzo IP EC2 privato di Amazon. | Specialista in migrazione, amministratore cloud | 
| Aggiorna il record DNS CNAME. | Aggiorna il record DNS CNAME per i nomi virtuali IPs (load balancer) in modo che punti al cluster per i server Web e applicativi. | Specialista in migrazione, amministratore cloud | 
| Testa l'applicazione negli ambienti applicabili. | Accedi alla nuova EC2 istanza e testa l'applicazione negli ambienti di sviluppo/QA, di preproduzione e produzione. | Specialista in migrazione, amministratore cloud | 
| Contrassegna come pronto per il cutover. | Al termine del test, modifica lo stato del server di origine per indicare che è pronto per il cutover, in modo che gli utenti possano avviare un'istanza cutover. Per istruzioni, consulta la Guida all'[implementazione di 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). | Specialista in migrazione, amministratore cloud | 

### Fase di cutover
<a name="cutover-phase"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un piano di distribuzione della produzione. | Crea un piano di distribuzione della produzione (incluso un piano di backout). | Specialista in migrazione, amministratore cloud | 
| Notifica al team operativo i tempi di inattività. | Notifica al team operativo la pianificazione dei tempi di inattività dei server. Alcuni team potrebbero richiedere un ticket di richiesta di modifica o di richiesta di servizio (CR/SR) per questa notifica. | Specialista in migrazione, amministratore cloud | 
| Replica le macchine di produzione. | Replica le macchine di produzione utilizzando Application Migration Service o un altro strumento di migrazione. | Specialista in migrazione, amministratore cloud | 
| Chiudi i server di origine pertinenti. | Dopo aver verificato lo stato di replica dei server di origine, è possibile spegnere i server di origine per interrompere le transazioni dalle applicazioni client ai server. È possibile spegnere i server di origine nella finestra di dialogo. Per ulteriori informazioni, consulta la [Guida all'implementazione di 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). | Amministratore cloud | 
| Avvia istanze per cutover. | Avvia tutte le macchine di destinazione per una determinata ondata in Application Migration Service in modalità cutover. Per ulteriori informazioni, consulta la [Guida all'implementazione di 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). | Specialista in migrazione, amministratore cloud | 
| Recupera l'istanza IPs di destinazione. | Recuperate le istanze IPs di destinazione. Se l'aggiornamento DNS è un processo manuale nel tuo ambiente, dovrai ottenere i nuovi indirizzi IP per tutte le istanze di destinazione. Per ulteriori informazioni, consulta la Guida all'[implementazione di 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). | Specialista in migrazione, amministratore cloud | 
| Verifica le connessioni al server di destinazione. | Dopo aver aggiornato i record DNS, connettiti alle istanze di destinazione con il nome host per verificare le connessioni. Per ulteriori informazioni, consulta la Guida all'[implementazione di 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). | Specialista in migrazione, amministratore cloud | 

## Risorse correlate
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-resources"></a>
+ [Come migrare](https://aws.amazon.com/migrate-modernize-build/cloud-migration/how-to-migrate/)
+ [Guida all'implementazione di AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html)
+ [Automatizzazione delle migrazioni di server su larga scala con Cloud Migration Factory](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-factory-cloudendure/welcome.html)
+ [Guida per l'utente di AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Programma di accelerazione della migrazione AWS](https://aws.amazon.com/migration-acceleration-program/)

## Allegati
<a name="attachments-8e2d2d72-30cc-4e98-8abd-ac2ef95e599b"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/attachments/attachment.zip)

# Configura un'infrastruttura Multi-AZ per SQL Server Always On FCI utilizzando 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*

## Riepilogo
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-summary"></a>

Se è necessario migrare rapidamente un gran numero di istanze di Microsoft SQL Server Always On Failover Cluster (FCIs), questo modello può aiutare a ridurre al minimo i tempi di provisioning. Utilizzando l'automazione e Amazon FSx for Windows File Server, riduce gli sforzi manuali, gli errori causati dall'uomo e il tempo necessario per implementare un gran numero di cluster.

Questo modello configura l'infrastruttura per SQL Server FCIs in una distribuzione Multi-Availability Zone (Multi-AZ) su Amazon Web Services (AWS). Il provisioning dei servizi AWS necessari per questa infrastruttura è automatizzato utilizzando CloudFormation modelli [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html). L'installazione di SQL Server e la creazione di nodi di cluster su un'istanza [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) vengono eseguite utilizzando PowerShell comandi.

Questa soluzione utilizza un file system Multi-AZ [Amazon FSx for Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) ad alta disponibilità come testimone condiviso per l'archiviazione dei file di database SQL Server. Il FSx file system Amazon e le istanze EC2 Windows che ospitano SQL Server sono uniti allo stesso dominio AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD).

## Prerequisiti e limitazioni
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un utente AWS con autorizzazioni sufficienti per effettuare il provisioning di risorse utilizzando modelli AWS CloudFormation 
+ AWS Directory Service per Microsoft Active Directory
+ Credenziali in AWS Secrets Manager per l'autenticazione su AWS Managed Microsoft AD in una coppia chiave-valore:
  + `ADDomainName`: <Domain Name>
  + `ADDomainJoinUserName`: <Domain Username>
  + `ADDomainJoinPassword`: <Domain User Password>
  + `TargetOU`: <Target OU Value>
**Nota**  
Utilizzerai lo stesso nome chiave nell'automazione di AWS Systems Manager per l'attività di join di AWS Managed Microsoft AD.
+ File multimediali di SQL Server per l'installazione di SQL Server e creazione di account di servizio o dominio Windows, che verranno utilizzati durante la creazione del cluster
+ Un cloud privato virtuale (VPC), con due sottoreti pubbliche in zone di disponibilità separate, due sottoreti private nelle zone di disponibilità, un gateway Internet, gateway NAT, associazioni di tabelle di routing e un jump server

**Versioni del prodotto**
+ Windows Server 2012 R2 e Microsoft SQL Server 2016

## Architecture
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-architecture"></a>

**Stack tecnologico di origine**
+ SQL Server locale con FCIs utilizzo di un'unità condivisa

**Stack tecnologico Target**
+  EC2 Istanze AWS
+ File server Amazon FSx per Windows
+ Guida introduttiva di AWS Systems Manager Automation
+ Configurazioni di rete (VPC, sottoreti, gateway Internet, gateway NAT, jump server, gruppi di sicurezza)
+ AWS Secrets Manager
+ AWS Managed Microsoft AD
+ Amazon EventBridge
+ AWS Identity and Access Management (IAM)

**Architettura Target**

Il diagramma seguente mostra un account AWS in una singola regione AWS, con un VPC che include due zone di disponibilità, due sottoreti pubbliche con gateway NAT, un jump server nella prima sottorete pubblica, due sottoreti private, ciascuna con EC2 un'istanza per un nodo SQL Server in un gruppo di sicurezza dei nodi e un file system FSx Amazon che si connette a ciascuno dei nodi SQL Server. Sono inclusi anche AWS Directory Service EventBridge, Amazon, AWS Secrets Manager e AWS Systems Manager.

![\[Architettura Multi-AZ con risorse in sottoreti pubbliche e private, con gruppi di sicurezza dei nodi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f09c0164-be2d-4665-a574-7ec29fd25082/images/543829a9-e130-4542-9c4e-7518c6cbe967.png)


**Automazione e scalabilità**
+ Puoi utilizzare AWS Systems Manager per unirti ad AWS Managed Microsoft AD ed eseguire l'installazione di SQL Server.

## Tools (Strumenti)
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-tools"></a>

**Servizi AWS**
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.
+ [AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) offre diversi modi per utilizzare Microsoft Active Directory (AD) con altri servizi AWS come Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) per SQL Server e FSx Amazon per Windows File Server.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, funzioni AWS Lambda, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altri account AWS.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ti aiuta a sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ti aiuta a gestire le applicazioni e l'infrastruttura in esecuzione nel cloud AWS. Semplifica la gestione delle applicazioni e delle risorse, riduce i tempi di rilevamento e risoluzione dei problemi operativi e ti aiuta a gestire le tue risorse AWS in modo sicuro su larga scala.

**Altri strumenti**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)è un programma di gestione dell'automazione e della configurazione di Microsoft che funziona su Windows, Linux e macOS. Questo modello utilizza PowerShell script.

**Deposito di codice**

Il codice per questo pattern è disponibile nel repository GitHub [aws-windows-failover-cluster-automation](https://github.com/aws-samples/aws-windows-failover-cluster-automation).

## Best practice
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-best-practices"></a>
+ I ruoli IAM utilizzati per implementare questa soluzione devono rispettare il principio del privilegio minimo. Per ulteriori informazioni, consulta la [documentazione di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Segui le [ CloudFormation best practice di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html).

## Epiche
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-epics"></a>

### Implementa l'infrastruttura
<a name="deploy-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa lo CloudFormation stack Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps ingegnere | 
| Implementa lo stack di infrastruttura. | Dopo una corretta implementazione dello stack Systems Manager, crea lo `infra` stack, che include nodi di EC2 istanza, gruppi di sicurezza, il file system Amazon FSx for Windows File Server e il ruolo IAM.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps ingegnere | 

### Configura Windows SQL Server Always On FCI
<a name="set-up-the-windows-sql-server-always-on-fci"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa gli strumenti di Windows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps ingegnere, DBA | 
| Preimposta gli oggetti del computer del cluster in Active Directory Domain Services. | [Per preimpostare il cluster name object (CNO) in Active Directory Domain Services (AD DS) e preimpostare un oggetto computer virtuale (VCO) per un ruolo in cluster, segui le istruzioni nella documentazione di Windows Server.](https://learn.microsoft.com/en-us/windows-server/failover-clustering/prestage-cluster-adds) | AWS DevOps, DBA, DevOps ingegnere | 
| Crea il WSFC. | Per creare il cluster Windows Server Failover Clustering (WSFC), procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DBA, DevOps ingegnere | 
| Installa il cluster di failover di SQL Server. | Dopo aver configurato il cluster WSFC, installa il cluster SQL Server sull'istanza principale (node1).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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, DevOps ingegnere | 
| Aggiungi un nodo secondario al cluster. | Per aggiungere SQL Server al nodo secondario (nodo 2), esegui il PowerShell comando seguente.<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, DevOps ingegnere | 
| Prova la FCI di SQL Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | DBA, ingegnere DevOps  | 

### Eseguire la pulizia delle risorse
<a name="clean-up-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare le risorse. | Per ripulire le risorse, utilizza il processo di eliminazione CloudFormation dello stack AWS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)Una volta completata l'eliminazione dello stack, gli stack saranno nello stato in cui si trova. `DELETE_COMPLETE` Per impostazione predefinita, gli stack nello `DELETE_COMPLETE` stato non vengono visualizzati nella CloudFormation console. Per visualizzare gli stack eliminati, devi modificare il filtro di visualizzazione dello stack come descritto in [Visualizzazione degli stack eliminati sulla console AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-deleted-stacks.html). CloudFormation Se l'eliminazione non è riuscita, uno stack sarà nello stato. `DELETE_FAILED` Per le soluzioni, consulta [Delete stack fail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) nella CloudFormation documentazione. | AWS DevOps, DBA, DevOps ingegnere | 

## risoluzione dei problemi
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Errore CloudFormation del modello AWS | Se il CloudFormation modello fallisce durante la distribuzione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 
| Connessione AWS Managed Microsoft AD non riuscita | Per risolvere i problemi di iscrizione, segui questi passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 

## Risorse correlate
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-resources"></a>
+ [Semplifica le distribuzioni ad alta disponibilità di Microsoft SQL Server utilizzando Amazon FSx per Windows File Server](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/)
+ [Utilizzo FSx per Windows File Server con Microsoft SQL Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html)

# Usa le query BMC Discovery per estrarre i dati di migrazione per la pianificazione della migrazione
<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*

## Riepilogo
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-summary"></a>

Questa guida fornisce esempi di query e procedure per aiutarvi a estrarre dati dall'infrastruttura e dalle applicazioni locali utilizzando BMC Discovery. Lo schema mostra come utilizzare le query BMC Discovery per scansionare l'infrastruttura ed estrarre informazioni su software, servizi e dipendenze. I dati estratti sono necessari per le fasi di valutazione e mobilitazione di una migrazione su larga scala verso il cloud Amazon Web Services (AWS). Puoi utilizzare questi dati per prendere decisioni critiche su quali applicazioni migrare insieme come parte del tuo piano di migrazione.

## Prerequisiti e limitazioni
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-prereqs"></a>

**Prerequisiti**
+ Una licenza per BMC Discovery (precedentemente BMC ADDM) o la versione software as a service (SaaS) di BMC Helix Discovery
+ [Versione locale o SaaS di BMC Discovery, installata](https://docs.bmc.com/docs/discovery/221/installing-1050933835.html) 
**Nota**  
Per le versioni locali di BMC Discovery, è necessario installare l'applicazione su una rete client con accesso a tutti i dispositivi di rete e server che sono oggetto di una migrazione tra più data center. L'accesso alla rete client deve essere fornito in base alle istruzioni di installazione dell'applicazione. Se è richiesta la scansione delle informazioni di Windows Server, è necessario configurare un dispositivo di gestione proxy Windows nella rete.
+ [Accesso alla rete](https://docs.bmc.com/docs/discovery/221/network-ports-used-for-discovery-communications-1050933821.html) per consentire all'applicazione di scansionare i dispositivi tra i data center, se si utilizza BMC Helix Discovery

**Versioni del prodotto**
+ 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

## Architecture
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-architecture"></a>

Il diagramma seguente mostra come gli asset manager possono utilizzare le query BMC Discovery per scansionare applicazioni modellate BMC in ambienti SaaS e locali.

![\[Architettura che utilizza BMC Discovery per estrarre informazioni su software, servizi e dipendenze.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5e549882-8deb-4459-8891-e39bbf80e320/images/0ebb3e68-5828-45aa-86f4-c741c7b6cd94.jpeg)


Il diagramma mostra il seguente flusso di lavoro: Un asset manager utilizza BMC Discovery o BMC Helix Discovery per scansionare le istanze di database e software in esecuzione su server virtuali ospitati su più server fisici. Lo strumento può modellare applicazioni con componenti che si estendono su più server virtuali e fisici.

**Stack tecnologico**
+ BMC Discovery
+ BMC Helix Discovery

## Tools (Strumenti)
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-tools"></a>
+ [BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) è uno strumento di rilevamento dei data center che consente di individuare automaticamente il data center.
+ [BMC Helix Discovery](https://www.bmc.com/it-solutions/bmc-helix-discovery.html) è un sistema di rilevamento e modellazione delle dipendenze basato su SaaS che consente di modellare dinamicamente gli asset di dati e le relative dipendenze.

## Best practice
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-best-practices"></a>

È consigliabile mappare i dati delle applicazioni, delle dipendenze e dell'infrastruttura durante la migrazione al cloud. La mappatura consente di comprendere la complessità dell'ambiente corrente e le dipendenze tra i vari componenti.

Le informazioni sugli asset fornite da queste interrogazioni sono importanti per diversi motivi:

1. **Pianificazione**: la comprensione delle dipendenze tra i componenti consente di pianificare il processo di migrazione in modo più efficace. Ad esempio, potrebbe essere necessario migrare prima alcuni componenti per garantire che altri possano essere migrati correttamente.

1. **Valutazione dei rischi**: la mappatura delle dipendenze tra i componenti può aiutarti a identificare eventuali rischi o problemi potenziali che possono sorgere durante il processo di migrazione. Ad esempio, potresti scoprire che alcuni componenti si basano su tecnologie obsolete o non supportate che potrebbero causare problemi nel cloud.

1. **Architettura cloud**: la mappatura dei dati delle applicazioni e dell'infrastruttura può anche aiutarti a progettare un'architettura cloud adatta che soddisfi le tue esigenze organizzative. Ad esempio, potrebbe essere necessario progettare un'architettura a più livelli per supportare requisiti di alta disponibilità o scalabilità.

Nel complesso, la mappatura dei dati delle applicazioni, delle dipendenze e dell'infrastruttura è un passaggio cruciale nel processo di migrazione al cloud. L'esercizio di mappatura può aiutarti a comprendere meglio il tuo ambiente attuale, identificare eventuali problemi o rischi potenziali e progettare un'architettura cloud adeguata.

## Epiche
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-epics"></a>

### Identifica e valuta gli strumenti di scoperta
<a name="identify-and-evaluate-discovery-tooling"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica i proprietari di ITSM. | Identifica i proprietari dell'IT Service Management (ITSM) (di solito contattando i team di supporto operativo). | Responsabile della migrazione | 
| Controlla CMDB.  | Identifica il numero di database di gestione della configurazione (CMDBs) che contengono informazioni sugli asset, quindi identifica le fonti di tali informazioni. | Responsabile della migrazione | 
| Identifica gli strumenti di scoperta e verifica l'utilizzo di BMC Discovery. | Se la tua organizzazione utilizza BMC Discovery per inviare dati sull'ambiente allo strumento CMDB, verifica l'ambito e la copertura delle sue scansioni. Ad esempio, controlla se BMC Discovery sta scansionando tutti i data center e se i server di accesso si trovano in zone perimetrali. | Responsabile della migrazione | 
| Verifica il livello di modellazione delle applicazioni. | Verifica se le applicazioni sono modellate in BMC Discovery. In caso contrario, consigliamo di utilizzare lo strumento BMC Discovery per modellare quali istanze software in esecuzione forniscono un'applicazione e un servizio aziendale. | Ingegnere addetto alla migrazione, responsabile della migrazione | 

### Estrarre i dati dell'infrastruttura
<a name="extract-infrastructure-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Estrai dati su server fisici e virtuali. | Per estrarre dati dai server fisici e virtuali scansionati da BMC Discovery, utilizzare [Query Builder per eseguire la seguente query](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html):<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>È possibile utilizzare i dati estratti per determinare le dimensioni delle istanze appropriate per la migrazione. | Ingegnere addetto alla migrazione, responsabile della migrazione | 
| Estrai dati su applicazioni modellate. | Se le applicazioni sono modellate in BMC Discovery, è possibile estrarre dati sui server che eseguono il software applicativo. Per ottenere i nomi dei server, utilizzare [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) per eseguire la seguente query:<pre>search SoftwareInstance show key as 'ApplicationID', #RunningSoftware:HostedSoftware:Host:Host.key as 'ReferenceID', type, name</pre>Le applicazioni sono modellate in BMC Discovery mediante una raccolta di istanze software in esecuzione. L'applicazione dipende da tutti i server che eseguono il software applicativo. | Proprietario dell'applicazione BMC Discovery | 
| Estrarre dati dai database. | Per ottenere un elenco di tutti i database analizzati e dei server su cui sono in esecuzione questi database, utilizzate [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) per eseguire la seguente query:<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> | Proprietario dell'app | 
| Estrai dati sulla comunicazione con il server. | Per ottenere informazioni su tutte le comunicazioni di rete tra i server raccolte da BMC Discovery dai registri storici delle comunicazioni di rete, utilizzare [Query Builder per eseguire la seguente query](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html):<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> | Proprietario dell'applicazione BMC Discovery | 
| Estrai i dati sulla scoperta delle applicazioni. | Per ottenere informazioni sulle dipendenze delle applicazioni, utilizzate [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) per eseguire la seguente query:<pre>search SoftwareInstance show key as 'SRC App ID', #Dependant:Dependency:DependedUpon:SoftwareInstance.key as 'DEST App ID'</pre> | Proprietario dell'applicazione BMC Discovery | 
| Estrai dati sui servizi aziendali. | Per estrarre dati sui servizi aziendali forniti dagli host, utilizza [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html) per eseguire la seguente query:<pre>search Host show name, #Host:HostedSoftware:AggregateSoftware:BusinessService.name as 'Name'</pre> | Proprietario dell'applicazione BMC Discovery | 

## risoluzione dei problemi
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Una query non viene eseguita o contiene colonne non popolate. | Esamina i record degli asset in BMC Discovery e determina quali campi sono necessari. Quindi, sostituite questi campi nella query utilizzando [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html). | 
| I dettagli di una risorsa dipendente non vengono compilati. | Ciò è probabilmente dovuto alle autorizzazioni di accesso o alla connettività di rete. Lo strumento di rilevamento potrebbe non disporre delle autorizzazioni necessarie per accedere a determinate risorse, in particolare se si trovano su reti o ambienti diversi.Ti consigliamo di lavorare a stretto contatto con esperti in materia di discovery per garantire che tutte le risorse pertinenti vengano identificate. | 

## Risorse correlate
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-resources"></a>

**Riferimenti**
+ [Diritto alla licenza BMC Discovery](https://docs.bmc.com/docs/discovery/bmc-discovery-licensing-entitlement-531336348.html) (documentazione BMC)
+ [Caratteristiche e componenti di BMC Discovery (documentazione](https://docs.bmc.com/docs/discovery/221/bmc-discovery-features-and-components-1052418000.html) BMC)
+ [Guida per l'utente di BMC Discovery (documentazione](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) BMC)
+ [Ricerca di dati (su BMC Discovery) (documentazione BMC)](https://docs.bmc.com/docs/discovery/120/searching-for-data-911457232.html)
+ [Individuazione e analisi del portafoglio per la migrazione](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-portfolio-discovery/welcome.html) (AWS Prescriptive Guidance)

**Tutorial e video**
+ [BMC Discovery: Webinar - Le migliori pratiche per la creazione di report sulle interrogazioni (parte 1) ()](https://www.youtube.com/watch?v=iwXy6x40kO8) YouTube

# Trasferisci
<a name="migration-relocate-pattern-list"></a>

**Topics**
+ [Migrazione di un database Amazon RDS for Oracle su Account AWS un altro database Regione AWS e AWS DMS utilizzo per la replica continua](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Esegui la migrazione di un'istanza database Amazon RDS su un altro VPC o account](migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.md)
+ [Esegui la migrazione di un cluster Amazon Redshift in una regione AWS in Cina](migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china.md)
+ [Trasporta i database PostgreSQL tra due istanze DB Amazon RDS utilizzando pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)

# Migrazione di un database Amazon RDS for Oracle su Account AWS un altro database Regione AWS e AWS DMS utilizzo per la replica continua
<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*

## Riepilogo
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-summary"></a>


| 
| 
| Attenzione: gli utenti IAM dispongono di credenziali a lungo termine, il che rappresenta un rischio per la sicurezza. Per ridurre questo rischio, si consiglia di fornire a questi utenti solo le autorizzazioni necessarie per eseguire l'attività e di rimuoverli quando non sono più necessari. | 
| --- |

Questo modello illustra i passaggi per la migrazione di un database di origine Amazon Relational Database Service (Amazon RDS) per Oracle su un altro database e. Account AWS Regione AWS Il modello utilizza uno snapshot DB per un caricamento completo dei dati una tantum e abilita AWS Database Migration Service ()AWS DMS la replica continua.

## Prerequisiti e limitazioni
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-prereqs"></a>

**Prerequisiti**
+ Un file attivo Account AWS che contiene il database Amazon RDS for Oracle di origine, che è stato crittografato utilizzando una chiave AWS Key Management Service non predefinita AWS KMS()
+ Attivo Account AWS in un database diverso Regione AWS da quello di origine, da utilizzare per il database Amazon RDS for Oracle di destinazione
+ Peering su cloud privato virtuale (VPC) tra l'origine e la destinazione VPCs
+ Familiarità con [l'utilizzo di un database Oracle come fonte per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiarità con [l'utilizzo di un database Oracle come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 

**Versioni del prodotto**
+ Versioni Oracle 11g (versioni 11.2.0.3.v1 e successive) e fino a 12.2 e 18c. Per l'elenco più recente delle versioni ed edizioni supportate, vedere [Utilizzo di un database Oracle come origine per AWS DMS e con utilizzo di un](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) [database Oracle come destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) nella documentazione. AWS DMS AWS Per le versioni Oracle supportate da Amazon RDS, consulta [Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html). 

## Architecture
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-architecture"></a>

**Stack tecnologici di origine e destinazione**
+ Istanza database Amazon RDS per Oracle

![\[Account AWS di origine che si connette all'account AWS di destinazione che contiene le regioni di origine e di destinazione\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/e17fa7fe-d924-4f35-9707-b93572fa1227.png)


**Architettura di replica continua**

![\[DB su un' EC2 istanza che si connette tramite peering VPC a un'istanza di replica e Amazon RDS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/b60b3500-5d29-487a-bbab-0ae9f3f386aa.png)


## Tools (Strumenti)
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-tools"></a>

**Strumenti utilizzati per il caricamento completo dei dati una tantum**
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) crea uno snapshot del volume di storage dell'istanza DB, eseguendo il backup dell'intera istanza DB e non solo dei singoli database. Quando crei uno snapshot DB è necessario identificare qual è l'istanza database di cui stai effettuando il backup e dare un nome allo snapshot DB in modo da poterlo usare successivamente per il ripristino. La quantità di tempo necessaria per creare uno snapshot varia a seconda della dimensione dei database. Poiché lo snapshot include l'intero volume d'archiviazione, la dimensione dei file, come i file temporanei, influisce sulla quantità di tempo necessaria per creare lo snapshot. Per ulteriori informazioni sull'uso degli snapshot DB, consulta [Creazione di uno snapshot DB nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) di Amazon RDS. 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) crea una**** chiave per la**** crittografia**** Amazon RDS. Quando crei un'istanza DB crittografata, puoi anche fornire l'identificatore della [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)chiave per la tua chiave di crittografia. Se non specifichi un identificatore di [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)chiave, Amazon RDS utilizza la chiave di crittografia predefinita per la tua nuova istanza DB. [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)crea la tua chiave di crittografia predefinita per il tuo. Account AWS La tua Account AWS ha una chiave di crittografia predefinita diversa per ciascuno Regione AWS. Per questo modello, l'istanza database di Amazon RDS deve essere crittografata utilizzando una chiave non predefinita [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html). Per ulteriori informazioni sull'uso delle [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)chiavi per la crittografia Amazon RDS, [consulta Encrypting Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) nella documentazione di Amazon RDS.

**Strumenti utilizzati per la replica continua**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) viene utilizzato per replicare le modifiche in corso e per mantenere sincronizzati i database di origine e di destinazione. Per ulteriori informazioni sull'utilizzo AWS DMS per la replica continua, consulta [Lavorare con un'istanza di AWS DMS replica nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html). AWS DMS 

## Epiche
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-epics"></a>

### Configura la tua fonte Account AWS
<a name="configure-your-source-aws-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare l'istanza database Oracle di origine. | Lascia che l'istanza DB di Amazon RDS for Oracle venga eseguita in modalità ARCHIVELOG e imposta il periodo di conservazione. Per i dettagli, consulta [Lavorare con un database Oracle AWS gestito come fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed) per. AWS DMS | DBA | 
| Imposta la registrazione supplementare per l'istanza database Oracle di origine. | Imposta la registrazione supplementare a livello di database e tabella per l'istanza DB Amazon RDS for Oracle. Per i dettagli, consulta [Lavorare con un AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed) database Oracle gestito come fonte per. AWS DMS | DBA | 
| Aggiorna la politica AWS KMS chiave nell'account di origine. | Aggiorna la policy delle AWS KMS chiavi nell'origine Account AWS per consentire alla destinazione Account AWS di utilizzare la AWS KMS chiave Amazon RDS crittografata. Per i dettagli, consulta la [AWS KMS documentazione](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts). | SysAdmin | 
| Crea uno snapshot Amazon RDS DB manuale dell'istanza DB di origine. |  | Utente AWS IAM | 
| Condividi lo snapshot Amazon RDS manuale e crittografato con la destinazione. Account AWS | Per i dettagli, consulta [Condivisione di uno snapshot DB.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html) | Utente AWS IAM | 

### Configura il tuo obiettivo Account AWS
<a name="configure-your-target-aws-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Allega una politica. | Nella destinazione Account AWS, allega una policy AWS Identity and Access Management (IAM) all'utente IAM root, per consentire all'utente IAM di copiare uno snapshot DB crittografato utilizzando la AWS KMS chiave condivisa. | SysAdmin | 
| Passa alla fonte Regione AWS. |  | Utente AWS IAM | 
| Copia l'istantanea condivisa. | Nella console Amazon RDS, nel riquadro **Snapshot**, scegli **Shared with Me** e seleziona lo snapshot condiviso. Copia lo snapshot nello Regione AWS stesso database di origine utilizzando Amazon Resource Name (ARN) per AWS KMS la chiave utilizzata dal database di origine. Per i dettagli, consulta [Copiare uno](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) snapshot DB. | Utente AWS IAM | 
| Passa alla destinazione Regione AWS e crea una nuova AWS KMS chiave. |  | Utente AWS IAM | 
| Copia l'istantanea. | Passa alla fonte Regione AWS. Sulla console Amazon RDS, nel riquadro **Snapshot**, scegli **Owned by Me** e seleziona lo snapshot copiato. Copia lo snapshot sulla destinazione Regione AWS utilizzando la AWS KMS chiave per la nuova destinazione. Regione AWS | Utente AWS IAM | 
| Ripristinare lo snapshot: | Passa al bersaglio Regione AWS. Sulla console Amazon RDS, nel riquadro **Snapshot**, scegli **Owned by Me**. Seleziona lo snapshot copiato e ripristinalo su un'istanza DB Amazon RDS for Oracle. Per i dettagli, consulta [Ripristino da uno snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Utente AWS IAM | 

### Prepara il tuo database di origine per la replica continua
<a name="prepare-your-source-database-for-ongoing-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un utente Oracle con le autorizzazioni appropriate. | Crea un utente Oracle con i privilegi richiesti per Oracle come fonte per. AWS DMS Per i dettagli, consulta la [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | DBA | 
| Configura il database di origine per Oracle LogMiner o Oracle Binary Reader. |  | DBA | 

### Prepara il database di destinazione per la replica continua
<a name="prepare-your-target-database-for-ongoing-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un utente Oracle con le autorizzazioni appropriate. | Crea un utente Oracle con i privilegi richiesti per Oracle come destinazione per. AWS DMS Per i dettagli, consulta la [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.Privileges). | DBA | 

### Crea componenti AWS DMS
<a name="create-dms-components"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di replica nella destinazione Regione AWS. | Crea un'istanza di replica nel VPC della destinazione. Regione AWS[Per i dettagli, consulta la documentazione.AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance) | Utente AWS IAM | 
| Crea endpoint di origine e destinazione con la crittografia richiesta e testa le connessioni. | Per i dettagli, consulta la [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints). | DBA | 
| Crea attività di replica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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)[Per i dettagli, consultate la documentazione.AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) | Utente IAM | 
| Avvia le attività e monitorale. | Per i dettagli, consulta la [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Utente AWS IAM | 
| Abilita la convalida dell'attività, se necessario. | Si noti che l'abilitazione della convalida ha un impatto sulle prestazioni della replica. [Per i dettagli, consulta la documentazione.AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) | Utente AWS IAM | 

## Risorse correlate
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-resources"></a>
+ [Modifica di una politica chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)
+ [Creazione di uno snapshot Amazon RDS DB manuale](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)
+ [Condivisione di uno snapshot Amazon RDS DB manuale](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)
+ [Copiare uno snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) 
+ [Ripristino da uno snapshot Amazon RDS DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) 
+ [Iniziare con AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) 
+ [Utilizzo di un database Oracle come fonte per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) 
+ [Utilizzo di un database Oracle come destinazione per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 
+ [AWS DMS configurazione tramite peering VPC](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer) 
+ [Come posso condividere istantanee manuali di Amazon RDS DB o snapshot di cluster DB con un altro? Account AWS](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (articolo dell'AWS Knowledge Center) 

# Esegui la migrazione di un'istanza database Amazon RDS su un altro VPC o account
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account"></a>

*Dhrubajyoti Mukherjee, Amazon Web Services*

## Riepilogo
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un'istanza DB Amazon Relational Database Service (Amazon RDS) da un cloud privato virtuale (VPC) a un altro nello stesso account AWS o da un account AWS a un altro account AWS.

Questo modello è utile se desideri migrare le istanze database di Amazon RDS su un altro VPC o account per motivi di separazione o sicurezza (ad esempio, quando desideri posizionare lo stack di applicazioni e il database in modo diverso). VPCs 

La migrazione di un'istanza DB verso un altro account AWS prevede passaggi come l'acquisizione di uno snapshot manuale, la condivisione e il ripristino dello snapshot nell'account di destinazione. Questo processo può richiedere molto tempo, a seconda delle modifiche al database e dei tassi di transazione. Inoltre, causa tempi di inattività del database, quindi pianifica in anticipo la migrazione. Prendi in considerazione una strategia di blue/green implementazione per ridurre al minimo i tempi di inattività. In alternativa, puoi valutare AWS Data Migration Service (AWS DMS) per ridurre al minimo i tempi di inattività dovuti alla modifica. Tuttavia, questo modello non copre questa opzione. Per ulteriori informazioni, consulta la [documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html).

## Prerequisiti e limitazioni
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Autorizzazioni AWS Identity and Access Management (IAM) richieste per VPC, sottoreti e console Amazon RDS

**Limitazioni**
+ Le modifiche a un VPC provocano il riavvio del database, con conseguenti interruzioni delle applicazioni. Si consiglia di eseguire la migrazione durante i periodi di picco più bassi.
+ Limitazioni durante la migrazione di Amazon RDS su un altro VPC:
  + L'istanza DB da migrare deve essere una singola istanza senza standby. Non deve essere membro di un cluster.
  + Amazon RDS non deve trovarsi in più zone di disponibilità.
  + Amazon RDS non deve avere alcuna replica di lettura.
  + Il gruppo di sottoreti creato nel VPC di destinazione deve avere sottoreti della zona di disponibilità in cui è in esecuzione il database di origine.
+ Limitazioni durante la migrazione di Amazon RDS a un altro account AWS:
  + La condivisione di istantanee crittografate con la chiave di servizio predefinita per Amazon RDS non è attualmente supportata.

## Architecture
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-architecture"></a>

**Migrazione a un VPC nello stesso account AWS**

Il diagramma seguente mostra il flusso di lavoro per la migrazione di un'istanza DB Amazon RDS su un VPC diverso nello stesso account AWS.

![\[Flusso di lavoro per la migrazione di un'istanza DB Amazon RDS su un altro VPC nello stesso account AWS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/73e16544-6276-4f03-9ae2-42b8c7c20315.png)


I passaggi sono i seguenti. Consulta la sezione [Epic](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics) per istruzioni dettagliate.

1. Crea un gruppo di sottoreti DB nel VPC di destinazione. Un gruppo di sottoreti DB è una raccolta di sottoreti che è possibile utilizzare per specificare un VPC specifico quando si creano istanze DB.

1. Configura l'istanza DB di Amazon RDS nel VPC di origine per utilizzare il nuovo gruppo di sottoreti DB.

1. Applica le modifiche per migrare il database Amazon RDS al VPC di destinazione.

**Migrazione a un altro account AWS**

Il diagramma seguente mostra il flusso di lavoro per la migrazione di un'istanza DB Amazon RDS su un altro account AWS.

![\[Flusso di lavoro per la migrazione di un'istanza DB Amazon RDS su un altro account AWS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/5536e69e-3965-4ca2-8a0b-2573659b5f8f.png)


I passaggi sono costituiti dai seguenti. Consulta la sezione [Epic](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics) per istruzioni dettagliate.

1. Accedi all'istanza database Amazon RDS nell'account AWS di origine.

1. Crea uno snapshot Amazon RDS nell'account AWS di origine.

1. Condividi lo snapshot Amazon RDS con l'account AWS di destinazione.

1. Accedi allo snapshot Amazon RDS nell'account AWS di destinazione.

1. Crea un'istanza database Amazon RDS nell'account AWS di destinazione.

## Tools (Strumenti)
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-tools"></a>

**Servizi AWS**
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare le risorse AWS in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di AWS.

## Best practice
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-best-practices"></a>
+ [Se il downtime del database è un problema durante la migrazione di un'istanza DB Amazon RDS su un altro account, ti consigliamo di utilizzare AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) Questo servizio fornisce la replica dei dati, che causa meno di cinque minuti di interruzione.

## Epiche
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics"></a>

### Esegui la migrazione a un altro VPC nello stesso account AWS
<a name="migrate-to-a-different-vpc-in-the-same-aws-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un nuovo VPC. | Sulla [console Amazon VPC](https://console.aws.amazon.com/vpc/), crea un nuovo VPC e sottoreti con le proprietà e gli intervalli di indirizzi IP desiderati. Per istruzioni dettagliate, consulta la documentazione di [Amazon VPC.](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) | Amministratore | 
| Creazione di un gruppo di sottoreti del database. | Sulla [console Amazon RDS](https://console.aws.amazon.com/rds/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Per ulteriori informazioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.CreateDBSubnetGroup). | Amministratore | 
| Modifica l'istanza DB di Amazon RDS per utilizzare il nuovo gruppo di sottoreti. | Sulla console Amazon RDS:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Una volta completata la migrazione al VPC di destinazione, il gruppo di sicurezza predefinito del VPC di destinazione viene assegnato all'istanza database di Amazon RDS. Puoi configurare un nuovo gruppo di sicurezza per quel VPC con le regole in entrata e in uscita richieste per la tua istanza DB.In alternativa, utilizza l'AWS Command Line Interface (AWS CLI) per eseguire la migrazione al VPC di destinazione fornendo esplicitamente il nuovo ID del gruppo di sicurezza VPC. Esempio:<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> | Amministratore | 

### Esegui la migrazione a un altro account AWS
<a name="migrate-to-a-different-aws-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un nuovo VPC e un nuovo gruppo di sottoreti nell'account AWS di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Amministratore | 
| Condividi uno snapshot manuale del database e condividilo con l'account di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Amministratore | 
| Avvia una nuova istanza database Amazon RDS. | Avvia una nuova istanza Amazon RDS DB dallo snapshot condiviso nell'account AWS di destinazione. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Amministratore | 

## Risorse correlate
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-resources"></a>
+ [Documentazione Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)
+ [Come posso modificare il VPC per un'istanza DB RDS?](https://aws.amazon.com/premiumsupport/knowledge-center/change-vpc-rds-db-instance/) (Articolo AWS Re:Post)
+ [In che modo posso trasferire la proprietà delle risorse Amazon RDS a un altro account AWS?](https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-rds/) (Articolo AWS Re:Post)
+ [In che modo posso condividere snapshot manuali di Amazon RDS DB o snapshot di cluster Aurora DB con un altro account AWS?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Articolo AWS Re:Post)
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

# Esegui la migrazione di un cluster Amazon Redshift in una regione AWS in Cina
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china"></a>

*Jing Yan, Amazon Web Services*

## Riepilogo
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-summary"></a>

Questo modello fornisce un step-by-step approccio per migrare un cluster Amazon Redshift in una regione AWS in Cina da un'altra regione AWS.

Questo modello utilizza i comandi SQL per ricreare tutti gli oggetti del database e utilizza il comando UNLOAD per spostare questi dati da Amazon Redshift a un bucket Amazon Simple Storage Service (Amazon S3) nella regione di origine. I dati vengono quindi migrati in un bucket S3 nella regione AWS in Cina. Il comando COPY viene utilizzato per caricare i dati dal bucket S3 e trasferirli al cluster Amazon Redshift di destinazione.

Amazon Redshift attualmente non supporta funzionalità interregionali come la copia di snapshot nelle regioni AWS in Cina. Questo modello fornisce un modo per aggirare tale limitazione. Puoi anche invertire i passaggi di questo schema per migrare i dati da una regione AWS in Cina a un'altra regione AWS.

## Prerequisiti e limitazioni
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-prereqs"></a>

*Prerequisiti*
+ Account AWS attivi sia in una regione cinese che in una regione AWS al di fuori della Cina
+ Cluster Amazon Redshift esistenti sia in una regione cinese che in una regione AWS al di fuori della Cina

*Limitazioni*
+ Si tratta di una migrazione offline, il che significa che il cluster Amazon Redshift di origine non può eseguire operazioni di scrittura durante la migrazione.

## Architecture
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-architecture"></a>

**Stack tecnologico di origine**
+ Cluster Amazon Redshift in una regione AWS al di fuori della Cina

**Stack tecnologico Target**
+ Cluster Amazon Redshift in una regione AWS in Cina

**Architettura Target**

![\[Migrazione dei dati del cluster Amazon Redshift in un bucket S3 in una regione AWS a un bucket in una regione della Cina.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f7d241d9-b700-406b-95a0-3e47e7f0fa60/images/b6016e3d-76db-4176-8f99-f804da94d3f2.png)


## Tools (Strumenti)
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-tools"></a>

**Strumenti**
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) — Amazon Simple Storage Service (Amazon S3) è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni. Puoi utilizzare Amazon S3 per archiviare dati da Amazon Redshift e copiare dati da un bucket S3 ad Amazon Redshift.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html) — Amazon Redshift è un servizio di data warehouse completamente gestito su scala di petabyte nel cloud. 
+ [psql — psql](https://www.postgresql.org/docs/8.4/app-psql.html) è un front-end basato su terminale per PostgreSQL. 

## Epiche
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-epics"></a>

### Preparati per la migrazione nella regione di origine
<a name="prepare-for-migration-in-the-source-region"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia e configura un' EC2 istanza nella regione di origine. | Accedi alla Console di gestione AWS e apri la console Amazon Elastic Compute Cloud (Amazon EC2). La tua regione attuale viene visualizzata nella barra di navigazione nella parte superiore dello schermo. Questa regione non può essere una regione AWS in Cina. Dalla dashboard della EC2 console Amazon, scegli «Launch instance» e crea e configura un' EC2 istanza. Importante: assicurati che i gruppi EC2 di sicurezza per le regole in entrata consentano l'accesso illimitato alla porta TCP 22 dal tuo computer di origine. Per istruzioni su come avviare e configurare un' EC2 istanza, consulta la sezione «Risorse correlate». | DBA, Sviluppatore | 
| Installa lo strumento psql. | Scarica e installa PostgreSQL. Amazon Redshift non fornisce lo strumento psql, è installato con PostgreSQL. Per ulteriori informazioni sull'uso di psql e sull'installazione degli strumenti PostgreSQL, consulta la sezione «Risorse correlate». | DBA | 
| Registra i dettagli del cluster Amazon Redshift.  | Apri la console Amazon Redshift e scegli «Clusters» nel pannello di navigazione. Quindi scegli il nome del cluster Amazon Redshift dall'elenco. Nella scheda «Proprietà», nella sezione «Configurazioni del database», registra il «Nome del database» e «Porta». <databasename>Apri la sezione «Dettagli di connessione» e registra l' "Endpoint», che è nel formato «endpoint:<port>/». Importante: assicurati che i gruppi di sicurezza di Amazon Redshift per le regole in entrata consentano l'accesso illimitato alla porta TCP 5439 dalla tua istanza. EC2  | DBA | 
| Connect psql al cluster Amazon Redshift.  | <userid><databasename><port>Al prompt dei comandi, specifica le informazioni di connessione eseguendo il comando «psql -h -U -d <endpoint>-p». <userid>Alla richiesta della password psql, inserisci la password per l'utente "». Verrai quindi connesso al cluster Amazon Redshift e potrai inserire comandi in modo interattivo. | DBA | 
| Crea un bucket S3.  | Apri la console Amazon S3 e crea un bucket S3 per contenere i file esportati da Amazon Redshift. Per istruzioni su come creare un bucket S3, consulta la sezione «Risorse correlate». | DBA, AWS Generale | 
| Crea una policy IAM che supporti lo scaricamento dei dati. | Apri la console AWS Identity and Access Management (IAM) e scegli «Policies». Scegli «Crea policy» e scegli la scheda «JSON». Copia e incolla la politica IAM per lo scaricamento dei dati dalla sezione «Informazioni aggiuntive». Importante: sostituisci «s3\$1bucket\$1name» con il nome del tuo bucket S3. Scegli «Rivedi la politica» e inserisci un nome e una descrizione per la politica. Scegli «Crea politica». | DBA | 
| Crea un ruolo IAM per consentire l'operazione UNLOAD per Amazon Redshift. | Apri la console IAM e scegli «Ruoli». Scegli «Crea ruolo» e scegli «Servizio AWS» in «Seleziona il tipo di entità affidabile». Scegli «Redshift» per il servizio, scegli «Redshift — Personalizzabile», quindi scegli «Avanti». Scegli la policy «Scarica» che hai creato in precedenza e scegli «Avanti». Inserisci un «Nome ruolo» e scegli «Crea ruolo». | DBA | 
| Associa il ruolo IAM al cluster Amazon Redshift.  | Apri la console Amazon Redshift e scegli «Gestisci ruoli IAM». Scegli «Ruoli disponibili» dal menu a discesa e scegli il ruolo che hai creato in precedenza. Scegli «Applica modifiche». Quando lo «Stato» del ruolo IAM in «Gestisci i ruoli IAM» è visualizzato come «In-Sync», puoi eseguire il comando UNLOAD. | DBA | 
| Interrompi le operazioni di scrittura sul cluster Amazon Redshift. | Devi ricordarti di interrompere tutte le operazioni di scrittura sul cluster Amazon Redshift di origine fino al completamento della migrazione. | DBA | 

### Prepararsi alla migrazione nella regione di destinazione
<a name="prepare-for-migration-in-the-target-region"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia e configura un' EC2 istanza nella regione di destinazione. | Accedi alla Console di gestione AWS per una regione in Cina, Pechino o Ningxia. Dalla EC2 console Amazon, scegli «Launch instance» e crea e configura un' EC2 istanza. Importante: assicurati che i gruppi EC2 di sicurezza Amazon per le regole in entrata consentano l'accesso illimitato alla porta TCP 22 dal tuo computer di origine. Per ulteriori istruzioni su come avviare e configurare un' EC2 istanza, consulta la sezione «Risorse correlate». | DBA | 
| Registra i dettagli del cluster Amazon Redshift.  | Apri la console Amazon Redshift e scegli «Clusters» nel pannello di navigazione. Quindi scegli il nome del cluster Amazon Redshift dall'elenco. Nella scheda «Proprietà», nella sezione «Configurazioni del database», registra il «Nome del database» e «Porta». <databasename>Apri la sezione «Dettagli di connessione» e registra l' "Endpoint», che è nel formato «endpoint:<port>/». Importante: assicurati che i gruppi di sicurezza di Amazon Redshift per le regole in entrata consentano l'accesso illimitato alla porta TCP 5439 dalla tua istanza. EC2  | DBA | 
| Connect psql al cluster Amazon Redshift.  | <userid><databasename><port>Al prompt dei comandi, specifica le informazioni di connessione eseguendo il comando «psql -h -U -d <endpoint>-p». <userid>Alla richiesta della password psql, inserisci la password per l'utente "». Verrai quindi connesso al cluster Amazon Redshift e potrai inserire comandi in modo interattivo. | DBA | 
| Crea un bucket S3.  | Apri la console Amazon S3 e crea un bucket S3 per contenere i file esportati da Amazon Redshift. Per assistenza su questa e altre storie, consulta la sezione «Risorse correlate». | DBA | 
| Crea una policy IAM che supporti la copia dei dati. | Apri la console IAM e scegli «Policies». Scegli «Crea policy» e scegli la scheda «JSON». Copia e incolla la politica IAM per la copia dei dati dalla sezione «Informazioni aggiuntive». Importante: sostituisci «s3\$1bucket\$1name» con il nome del tuo bucket S3. Scegli «Rivedi la politica», inserisci un nome e una descrizione per la politica. Scegli «Crea politica». | DBA | 
| Crea un ruolo IAM per consentire l'operazione COPY per Amazon Redshift. | Apri la console IAM e scegli «Ruoli». Scegli «Crea ruolo» e scegli «Servizio AWS» in «Seleziona il tipo di entità affidabile». Scegli «Redshift» per il servizio, scegli «Redshift — Personalizzabile», quindi scegli «Avanti». Scegli la policy «Copia» che hai creato in precedenza e scegli «Avanti». Inserisci un «Nome ruolo» e scegli «Crea ruolo». | DBA | 
| Associa il ruolo IAM al cluster Amazon Redshift.  | Apri la console Amazon Redshift e scegli «Gestisci ruoli IAM». Scegli «Ruoli disponibili» dal menu a discesa e scegli il ruolo che hai creato in precedenza. Scegli «Applica modifiche». Quando lo «Stato» del ruolo IAM in «Gestisci i ruoli IAM» è visualizzato come «In-Sync», puoi eseguire il comando «COPY». | DBA | 

### Verifica i dati di origine e le informazioni sugli oggetti prima di iniziare la migrazione
<a name="verify-source-data-and-object-information-before-beginning-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica le righe nelle tabelle Amazon Redshift di origine. | Utilizza gli script nella sezione «Informazioni aggiuntive» per verificare e registrare il numero di righe nelle tabelle Amazon Redshift di origine. Ricorda di dividere i dati in modo uniforme per gli script UNLOAD e COPY. Ciò migliorerà l'efficienza di scaricamento e caricamento dei dati, poiché la quantità di dati coperta da ogni script sarà bilanciata. | DBA | 
| Verifica il numero di oggetti di database nel cluster Amazon Redshift di origine. | Utilizza gli script nella sezione «Informazioni aggiuntive» per verificare e registrare il numero di database, utenti, schemi, tabelle, viste e funzioni definite dall'utente (UDFs) nel cluster Amazon Redshift di origine. | DBA | 
| Verifica i risultati delle istruzioni SQL prima della migrazione. | Alcune istruzioni SQL per la convalida dei dati devono essere ordinate in base alle situazioni aziendali e relative ai dati effettive. Questo serve a verificare i dati importati per garantire che siano coerenti e visualizzati correttamente. | DBA | 

### Migra dati e oggetti nella regione di destinazione
<a name="migrate-data-and-objects-to-the-target-region"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera script DDL di Amazon Redshift.  | Genera script DDL (Data Definition Language) utilizzando i collegamenti dalla sezione «Istruzioni SQL per interrogare Amazon Redshift» nella sezione «Informazioni aggiuntive». Questi script DDL devono includere le query «create user», «create schema», «privilegi sullo schema to user», «create table/view», «privilegi sugli oggetti da usare» e «create function». | DBA | 
| Crea oggetti nel cluster Amazon Redshift per la regione di destinazione. | Esegui gli script DDL utilizzando l'AWS Command Line Interface (AWS CLI) nella regione AWS in Cina. Questi script creeranno oggetti nel cluster Amazon Redshift per la regione di destinazione. | DBA | 
| Scarica i dati di origine del cluster Amazon Redshift nel bucket S3. | Esegui il comando UNLOAD per scaricare i dati dal cluster Amazon Redshift nella regione di origine nel bucket S3. | DBA, Sviluppatore  | 
| Trasferisci i dati del bucket Region S3 di origine nel bucket Region S3 di destinazione. | Trasferisci i dati dal bucket Region S3 di origine al bucket S3 di destinazione. Poiché il comando «\$1 aws s3 sync» non può essere utilizzato, assicurati di utilizzare la procedura descritta nell'articolo «Trasferimento di dati Amazon S3 dalle regioni AWS alle regioni AWS in Cina» nella sezione «Risorse correlate». | Developer | 
|  Carica i dati nel cluster Amazon Redshift di destinazione.  | Nello strumento psql per la tua regione di destinazione, esegui il comando COPY per caricare i dati dal bucket S3 al cluster Amazon Redshift di destinazione. | DBA | 

### Verifica i dati nelle regioni di origine e di destinazione dopo la migrazione
<a name="verify-the-data-in-the-source-and-target-regions-after-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica e confronta il numero di righe nelle tabelle di origine e di destinazione. | Verifica e confronta il numero di righe della tabella nelle regioni di origine e di destinazione per assicurarti che tutte vengano migrate. | DBA | 
| Verifica e confronta il numero di oggetti del database di origine e di destinazione. | Verifica e confronta tutti gli oggetti del database nelle regioni di origine e di destinazione per assicurarti che tutti vengano migrati. | DBA | 
| Verifica e confronta i risultati degli script SQL nelle regioni di origine e di destinazione. | Esegui gli script SQL preparati prima della migrazione. Verifica e confronta i dati per assicurarti che i risultati SQL siano corretti. | DBA | 
| Reimposta le password di tutti gli utenti nel cluster Amazon Redshift di destinazione.  | Una volta completata la migrazione e verificato tutti i dati, devi reimpostare tutte le password utente per il cluster Amazon Redshift nella regione AWS in Cina. | DBA | 

## Risorse correlate
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-resources"></a>
+ [Trasferimento di dati Amazon S3 dalle regioni AWS alle regioni AWS in Cina](https://aws.amazon.com/cn/blogs/storage/transferring-amazon-s3-data-from-aws-regions-to-aws-regions-in-china/)
+ [Creazione di un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Reimpostazione di una password utente Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html)
+ [documentazione psql](https://www.postgresql.org/docs/8.4/static/app-psql.html)

## Informazioni aggiuntive
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-additional"></a>

*Politica IAM per lo scarico dei dati*

```
{
  "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/*"]
    }
  ]
}
```

*Politica IAM per la copia dei dati*

```
{
  "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/*"]
    }
  ]
}
```

*Istruzioni SQL per interrogare 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;
```

*Script SQL per generare istruzioni 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)
+ [Genera script TBL\$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)
+ [Genera user\$1grant\$1revoke\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_user_grant_revoke_ddl.sql)
+ [Genera udf\$1ddl](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_udf_ddl.sql)

# Trasporta i database PostgreSQL tra due istanze DB Amazon RDS utilizzando 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*

## Riepilogo
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

**Questo modello descrive i passaggi per la migrazione di database estremamente grandi tra due istanze DB di Amazon Relational Database Service (Amazon RDS) per PostgreSQL utilizzando l'estensione pg\$1transport.** Questa estensione fornisce un meccanismo di trasporto fisico per spostare i singoli database. Trasmettendo i file di database con un'elaborazione minima, fornisce un metodo estremamente veloce per migrare database di grandi dimensioni tra istanze DB con tempi di inattività minimi. Questa estensione utilizza un modello pull in cui l'istanza DB di destinazione importa il database dall'istanza DB di origine.

## Prerequisiti e limitazioni
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Prerequisiti**
+ Entrambe le istanze DB devono eseguire la stessa versione principale di PostgreSQL.
+ Il database non deve esistere sulla destinazione. In caso contrario, il trasporto non riesce.
+ Nessuna estensione diversa da **pg\$1transport** deve essere abilitata nel database di origine.
+ **Tutti gli oggetti del database di origine devono trovarsi nel tablespace pg\$1default predefinito.**
+ Il gruppo di sicurezza dell'istanza DB di origine dovrebbe consentire il traffico proveniente dall'istanza DB di destinazione.
+ Installa un client PostgreSQL [come](https://www.postgresql.org/docs/11/app-psql.html) psql o utilizza l'istanza database Amazon [PgAdmin](https://www.pgadmin.org/)RDS PostgreSQL. Puoi installare il client nel tuo sistema locale o utilizzare un'istanza Amazon Elastic Compute Cloud (Amazon EC2). In questo modello, utilizziamo psql su un' EC2 istanza.

**Limitazioni**
+ Non puoi trasportare database tra diverse versioni principali di Amazon RDS for PostgreSQL.
+ I privilegi di accesso e la proprietà dal database di origine non vengono trasferiti al database di destinazione.
+ Non è possibile trasportare database su repliche di lettura o su istanze principali di repliche di lettura.
+ Non è possibile utilizzare i tipi di dati **reg** in nessuna tabella di database che si prevede di trasportare con questo metodo.
+ È possibile eseguire fino a 32 trasporti totali (incluse importazioni ed esportazioni) contemporaneamente su un'istanza DB.
+ Non è possibile rinominare le tabelle. include/exclude Tutto viene migrato così com'è.

**Attenzione**
+ Eseguite dei backup prima di rimuovere l'estensione, poiché rimuovendo l'estensione vengono rimossi anche gli oggetti dipendenti e alcuni dati fondamentali per il funzionamento del database.
+ Considera la classe di istanza e i processi in esecuzione su altri database sull'istanza di origine quando determini il numero di worker e `work_mem` i valori per **pg\$1transport**.
+ All'avvio del trasporto, tutte le connessioni sul database di origine vengono interrotte e il database viene messo in modalità di sola lettura.

**Nota**  
Quando il trasporto è in esecuzione su un database, non influisce sugli altri database sullo stesso server. ****

**Versioni del prodotto**
+ Amazon RDS per PostgreSQL 10.10 e versioni successive e Amazon RDS for PostgreSQL 11.5 e versioni successive. Per informazioni sulla versione più recente, consulta [Trasporto di database PostgreSQL tra istanze DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) nella documentazione di Amazon RDS.

## Architecture
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Trasporto di database PostgreSQL tra istanze database Amazon RDS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Tools (Strumenti)
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport fornisce un meccanismo di trasporto fisico** per spostare ogni database. Tramite lo streaming dei file di database con un'elaborazione minima, il trasporto fisico sposta i dati molto più velocemente rispetto ai tradizionali processi di dump e load e richiede tempi di inattività minimi. Transportable Database di PostgreSQL utilizza un modello pull in cui l'istanza database di destinazione importa il database dall'istanza database di origine. Questa estensione viene installata sulle istanze DB quando si preparano gli ambienti di origine e di destinazione, come spiegato in questo schema.
+ [psql](https://www.postgresql.org/docs/11/app-psql.html) ti consente di connetterti e lavorare con le tue istanze DB PostgreSQL. Per installare **psql** sul tuo sistema, consulta la pagina dei download di [PostgreSQL](https://www.postgresql.org/download/).

## Epiche
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Crea il gruppo di parametri di destinazione
<a name="create-the-target-parameter-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un gruppo di parametri per il sistema di destinazione. | Specificate un nome di gruppo che lo identifichi come gruppo di parametri di destinazione; ad esempio,`pgtarget-param-group`. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificate i parametri per il gruppo di parametri. | Imposta i seguenti parametri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Per ulteriori informazioni su questi parametri, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Crea il gruppo di parametri di origine
<a name="create-the-source-parameter-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un gruppo di parametri per il sistema di origine. | Specificate un nome di gruppo che lo identifichi come gruppo di parametri di origine; ad esempio,`pgsource-param-group`. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificate i parametri per il gruppo di parametri. | Imposta i seguenti parametri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Per ulteriori informazioni su questi parametri, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Prepara l'ambiente di destinazione
<a name="prepare-the-target-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una nuova istanza DB Amazon RDS for PostgreSQL in cui trasportare il database di origine. | Determina la classe dell'istanza e la versione di PostgreSQL in base ai tuoi requisiti aziendali. | DBA, amministratore di sistema, architetto del database | 
| Modifica il gruppo di sicurezza della destinazione per consentire le connessioni sulla porta dell'istanza DB dall' EC2 istanza. | Per impostazione predefinita, la porta per l'istanza PostgreSQL è 5432. Se stai usando un'altra porta, le connessioni a quella porta devono essere aperte per l'istanza. EC2  | DBA, amministratore di sistema | 
| Modifica l'istanza e assegna il nuovo gruppo di parametri di destinazione. | Ad esempio, `pgtarget-param-group`. | DBA | 
| Riavvia l'istanza database Amazon RDS di destinazione.  | I parametri `shared_preload_libraries` e `max_worker_processes` sono parametri statici e richiedono il riavvio dell'istanza. | DBA, amministratore di sistema | 
| Connect al database dall' EC2 istanza usando psql. | Utilizza il comando : <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crea l'estensione pg\$1transport. | Esegui la seguente query come utente con il ruolo: `rds_superuser`<pre>create extension pg_transport;</pre> | DBA | 

### Preparare l'ambiente di origine
<a name="prepare-the-source-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Modifica il gruppo di sicurezza dell'origine per consentire le connessioni sulla porta dell'istanza DB dall'istanza Amazon e dall' EC2 istanza DB di destinazione | Per impostazione predefinita, la porta per l'istanza PostgreSQL è 5432. Se stai usando un'altra porta, le connessioni a quella porta devono essere aperte per l'istanza. EC2  | DBA, amministratore di sistema | 
| Modifica l'istanza e assegna il nuovo gruppo di parametri di origine. | Ad esempio, `pgsource-param-group`. | DBA | 
| Riavvia l'istanza database Amazon RDS di origine.  | I parametri `shared_preload_libraries` e `max_worker_processes` sono parametri statici e richiedono il riavvio dell'istanza. | DBA | 
| Connect al database dall' EC2 istanza usando psql. | Utilizza il comando : <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crea l'estensione pg\$1transport e rimuovi tutte le altre estensioni dai database da trasportare. | Il trasporto avrà esito negativo se nel database di origine sono installate estensioni diverse da **pg\$1transport**. Questo comando deve essere eseguito da un utente con il ruolo. `rds_superuser` | DBA | 

### Esegui il trasporto
<a name="perform-the-transport"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui una corsa a secco. | Usa la `transport.import_from_server` funzione per eseguire prima una corsa a secco:<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>L'ultimo parametro di questa funzione (impostato su`true`) definisce il funzionamento a secco. Questa funzione visualizza tutti gli errori che si possono verificare durante l'esecuzione del trasporto principale. Risolvete gli errori prima di eseguire il trasporto principale.  | DBA | 
| Se l'esecuzione a secco ha esito positivo, avvia il trasporto del database. | Esegui la `transport.import_from_server` funzione per eseguire il trasporto. Si collega alla fonte e importa i dati. <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>L'ultimo parametro di questa funzione (impostato su`false`) indica che non si tratta di un funzionamento a secco. | DBA | 
| Eseguire le fasi successive al trasporto. | Una volta completato il trasporto del database:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Risorse correlate
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [documentazione pg\$1transport](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migrazione di database utilizzando database trasportabili RDS PostgreSQL](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/) (post sul blog)
+ [Download PostgreSQL](https://www.postgresql.org/download/linux/redhat/)
+ [utilità psql](https://www.postgresql.org/docs/11/app-psql.html)
+ [Creazione di un gruppo di parametri database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Modifica i parametri in un gruppo di parametri DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [Download PostgreSQL](https://www.postgresql.org/download/)

# Conversione piattaforma
<a name="migration-replatform-pattern-list"></a>

**Topics**
+ [Esportazione di un database Microsoft SQL Server in Amazon S3 utilizzando AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Esegui la migrazione dei valori Oracle CLOB su singole righe in PostgreSQL su AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Esegui la migrazione PeopleSoft da Oracle ad Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Esegui la migrazione della funzionalità Oracle ROWID a PostgreSQL su AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Esegui la migrazione dei codici di errore del database Oracle a un database compatibile con Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Esegui la migrazione di SAP ASE su Amazon Aurora, compatibile EC2 con PostgreSQL utilizzando AWS SCT e AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)
+ [Migrazione dei certificati SSL di Windows su un Application Load Balancer utilizzando ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Esegui la migrazione di una coda di messaggistica da Microsoft Azure Service Bus ad Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Esegui la migrazione di un database Oracle JD Edwards EnterpriseOne su AWS utilizzando Oracle Data Pump e AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Esegui la migrazione di un PeopleSoft database Oracle su AWS utilizzando AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Esegui la migrazione di un database MySQL locale su Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Esegui la migrazione dei dati da Microsoft Azure Blob ad Amazon S3 utilizzando Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migrazione da Couchbase Server a Couchbase Capella su AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)
+ [Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con Auto Scaling](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Esegui la migrazione di un'applicazione.NET da Microsoft Azure App Service ad AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Esegui la migrazione da Oracle WebLogic ad Apache Tomcat (ToMee) su Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for Oracle utilizzando AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon OpenSearch Service utilizzando Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle utilizzando Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Esegui la migrazione da PostgreSQL su Amazon RDS per PostgreSQL utilizzando EC2 pglogical](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Esegui la migrazione di un database PostgreSQL locale su Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale a Microsoft SQL Server su Amazon EC2 con Linux](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando server collegati](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando metodi di backup e ripristino nativi](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Esegui la migrazione di un database Microsoft SQL Server su Aurora MySQL utilizzando AWS DMS e AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database MariaDB locale su Amazon RDS for MariaDB utilizzando strumenti nativi](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Esegui la migrazione di un database MySQL locale su Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Esegui la migrazione dei database MySQL locali su Aurora MySQL utilizzando Percona, Amazon EFS e Amazon S3 XtraBackup](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Esegui la migrazione di applicazioni Java locali su AWS utilizzando AWS App2Container](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migrazione di file system condivisi in una migrazione di AWS grandi dimensioni](migrate-shared-file-systems-in-an-aws-large-migration.md)
+ [Esegui la migrazione di un database Oracle ad Amazon RDS for Oracle utilizzando gli adattatori flat file GoldenGate Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Modifica le applicazioni Python e Perl per supportare la migrazione dei database da Microsoft SQL Server a Amazon Aurora PostgreSQL Compatible Edition](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)

# Esportazione di un database Microsoft SQL Server in Amazon S3 utilizzando AWS DMS
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms"></a>

*Sweta Krishna, Amazon Web Services*

## Riepilogo
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-summary"></a>

Le organizzazioni spesso devono copiare i database su Amazon Simple Storage Service (Amazon S3) per la migrazione dei database, il backup e il ripristino, l'archiviazione dei dati e l'analisi dei dati. Questo modello descrive come esportare un database Microsoft SQL Server in Amazon S3. Il database di origine può essere ospitato in locale o su Amazon Elastic Compute Cloud (Amazon EC2) o Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server sul cloud Amazon Web Services (AWS).

I dati vengono esportati utilizzando AWS Database Migration Service (AWS DMS). Per impostazione predefinita, AWS DMS scrive dati CDC (full load and change data capture) in formato con valori separati da virgole (.csv). Per uno storage più compatto e opzioni di interrogazione più veloci, questo modello utilizza l'opzione di formato Apache Parquet (.parquet).

## Prerequisiti e limitazioni
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un ruolo AWS Identity and Access Management (IAM) per l'account con accesso in scrittura, eliminazione e tag al bucket S3 di destinazione e AWS DMS (`dms.amazonaws.com`) aggiunto come entità affidabile a questo ruolo IAM
+ Un database Microsoft SQL Server locale (o Microsoft SQL Server su un' EC2 istanza o un database Amazon RDS for SQL Server)
+ Connettività di rete tra il cloud privato virtuale (VPC) su AWS e la rete locale fornita da AWS Direct Connect o una rete privata virtuale (VPN)

**Limitazioni**
+ Un bucket S3 abilitato per VPC (gateway VPC) non è attualmente supportato nelle versioni di AWS DMS precedenti alla 3.4.7.
+ Le modifiche apportate alla struttura della tabella di origine durante il caricamento completo non sono supportate.
+ La modalità LOB (full large binary object) di AWS DMS non è supportata.

**Versioni del prodotto**
+ Microsoft SQL Server versioni 2005 o successive per le edizioni Enterprise, Standard, Workgroup e Developer.
+ Il supporto per Microsoft SQL Server versione 2019 come sorgente è disponibile nelle versioni 3.3.2 e successive di AWS DMS.

## Architecture
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Un database Microsoft SQL Server locale (o Microsoft SQL Server su un' EC2 istanza o un database Amazon RDS for SQL Server)**** 

**Stack tecnologico Target**
+ AWS Direct Connect
+ AWS DMS
+ Simple Storage Service (Amazon S3)

**Architettura di destinazione**

![\[I dati migrano dal database SQL Server tramite Direct Connect in AWS DMS e quindi nel bucket S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/75b8b20f-a1a8-4633-9816-1b370cc7e92c/images/85bd433c-4a0a-4825-8661-e53f53265191.png)


## Tools (Strumenti)
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) collega la rete interna a una posizione Direct Connect tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, puoi creare interfacce virtuali direttamente ai servizi AWS pubblici bypassando i provider di servizi Internet nel tuo percorso di rete.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

## Epiche
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione del database. | Convalida la versione del database di origine e assicurati che sia supportata da AWS DMS. Per informazioni sulle versioni supportate del database SQL Server, consulta [Using a Microsoft SQL Server database as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). | DBA | 
| Crea un VPC e un gruppo di sicurezza. | Nel tuo account AWS, crea un VPC e un gruppo di sicurezza. Per ulteriori informazioni, consulta la documentazione di [Amazon VPC.](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) | Amministratore di sistema | 
| Crea un utente per il task AWS DMS. | Crea un utente AWS DMS nel database di origine e concedigli le autorizzazioni READ. Questo utente verrà utilizzato da AWS DMS. | DBA | 
| Verifica la connettività DB. | Verifica la connettività all'istanza DB di SQL Server dall'utente AWS DMS. | DBA | 
| Crea un bucket S3. | Crea il bucket S3 di destinazione. Questo bucket conterrà i dati della tabella migrati. | Amministratore di sistema | 
| Crea una politica e un ruolo IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.html) | Amministratore di sistema | 

### Migra i dati utilizzando AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica di AWS DMS. | Accedi alla Console di gestione AWS e apri la console AWS DMS. Nel pannello di navigazione, scegli Istanze di **replica, **Crea** istanza** di replica. Per istruzioni, consulta il [passaggio 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.ReplicationInstance) nella documentazione di AWS DMS. | DBA | 
| Crea endpoint di origine e destinazione. | Crea endpoint di origine e destinazione. Verifica la connessione dall'istanza di replica agli endpoint di origine e di destinazione. Per istruzioni, consulta il [passaggio 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Endpoints) nella documentazione di AWS DMS. | DBA | 
| Creare un'attività di replica. | Crea un'attività di replica e seleziona Full load o full load with change data capture (CDC) per migrare i dati da SQL Server al bucket S3. Per istruzioni, consulta il [passaggio 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks) nella documentazione di AWS DMS. | DBA | 
| Avvia la replica dei dati. | Avvia l'attività di replica e monitora i log per eventuali errori. | DBA | 

### Convalida i dati
<a name="validate-the-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida i dati migrati. | Sulla console, accedi al bucket S3 di destinazione. Apri la sottocartella con lo stesso nome del database di origine. Verifica che la cartella contenga tutte le tabelle che sono state migrate dal database di origine. | DBA | 

### Eseguire la pulizia delle risorse
<a name="clean-up-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi ed elimina le risorse AWS temporanee. | Chiudi le risorse AWS temporanee che hai creato per la migrazione dei dati, come l'istanza di replica AWS DMS, ed eliminale dopo aver convalidato l'esportazione. | DBA | 

## Risorse correlate
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-resources"></a>
+ [Guida per l'utente di AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Utilizzo di un database Microsoft SQL Server come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Utilizzo di Amazon S3 come destinazione per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html)
+ [Utilizzo di un bucket S3 come destinazione AWS DMS (AWS](https://repost.aws/knowledge-center/s3-bucket-dms-target) re:Post)

## Informazioni aggiuntive
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-additional"></a>

Utilizza il codice seguente per aggiungere una policy IAM con autorizzazioni per i bucket S3 per il ruolo AWS DMS. Sostituisci `bucketname` con il nome del tuo 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*"
             ]
         }
     ]
 }
```

# Esegui la migrazione dei valori Oracle CLOB su singole righe in PostgreSQL su AWS
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws"></a>

*Sai Krishna Namburu e Sindhusha Paturu, Amazon Web Services*

## Riepilogo
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-summary"></a>

Questo modello descrive come suddividere i valori di Oracle Character Large Object (CLOB) in singole righe in Amazon Aurora PostgreSQL Compatible Edition e Amazon Relational Database Service (Amazon RDS) per PostgreSQL. PostgreSQL non supporta il tipo di dati CLOB.

Le tabelle con partizioni a intervalli vengono identificate nel database Oracle di origine e il nome della tabella, il tipo di partizione, l'intervallo della partizione e altri metadati vengono acquisiti e caricati nel database di destinazione. Puoi caricare dati CLOB di dimensioni inferiori a 1 GB nelle tabelle di destinazione come testo utilizzando AWS Database Migration Service (AWS DMS) oppure puoi esportare i dati in formato CSV, caricarli in un bucket Amazon Simple Storage Service (Amazon S3) e migrarli nel database PostgreSQL di destinazione.

Dopo la migrazione, puoi utilizzare il codice PostgreSQL personalizzato fornito con questo modello per dividere i dati CLOB in singole righe in base al nuovo identificatore `CHR(10)` di caratteri di riga () e compilare la tabella di destinazione.**** 

## Prerequisiti e limitazioni
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-prereqs"></a>

**Prerequisiti**
+ Una tabella di database Oracle con partizioni e record a intervalli con un tipo di dati CLOB.
+ Un database compatibile con Aurora PostgreSQL o Amazon RDS for PostgreSQL con una struttura di tabella simile alla tabella di origine (stesse colonne e tipi di dati).

**Limitazioni**
+ Il valore CLOB non può superare 1 GB.
+ Ogni riga della tabella di destinazione deve avere un nuovo identificatore di carattere di riga.

**Versioni del prodotto**
+ Oracle 12c
+ Aurora Postgres 11.6

## Architecture
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-architecture"></a>

Il diagramma seguente mostra una tabella Oracle di origine con dati CLOB e la tabella PostgreSQL equivalente nella versione 11.6 compatibile con Aurora PostgreSQL.

![\[Tabella CLOB di origine e tabella PostgreSQL di destinazione equivalente.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/55806ee7-6a9f-4058-9a47-a07de68223ca/images/79b9d4b9-6f20-4db5-8ca8-2a599769a498.png)


## Tools (Strumenti)
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-tools"></a>

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [Amazon Relational Database Service (Amazon RDS) per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL nel cloud AWS.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Altri strumenti**

Puoi utilizzare i seguenti strumenti client per connetterti, accedere e gestire i tuoi database Aurora compatibili con PostgreSQL e Amazon RDS for PostgreSQL. (Questi strumenti non vengono utilizzati all'interno di questo schema).
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.
+ [DBeaver](https://dbeaver.io/)è uno strumento di database open source per sviluppatori e amministratori di database. È possibile utilizzare lo strumento per manipolare, monitorare, analizzare, amministrare e migrare i dati.

## Best practice
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-best-practices"></a>

Per le best practice per la migrazione del database da Oracle a PostgreSQL, consulta il [post sul blog AWS Best practice for migrating an Oracle database to Amazon RDS PostgreSQL o Amazon Aurora PostgreSQL: considerazioni sul processo di migrazione e sull'infrastruttura](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/).

Per le best practice per la configurazione del task AWS DMS per la migrazione di oggetti binari di grandi dimensioni, consulta [Migrating large binary objects () LOBs nella](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html#CHAP_BestPractices.LOBS) documentazione di AWS DMS.

## Epiche
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-epics"></a>

### Identifica i dati CLOB
<a name="identify-the-clob-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza i dati CLOB. | Nel database Oracle di origine, analizza i dati CLOB per vedere se contengono intestazioni di colonna, in modo da poter determinare il metodo di caricamento dei dati nella tabella di destinazione. Per analizzare i dati di input, utilizzare la seguente query.`SELECT * FROM clobdata_or;  ` | Developer | 
| Caricate i dati CLOB nel database di destinazione. | Esegui la migrazione della tabella con dati CLOB a una tabella provvisoria (staging) nel database di destinazione Aurora o Amazon RDS. Puoi utilizzare AWS DMS o caricare i dati come file CSV in un bucket Amazon S3.Per informazioni sull'utilizzo di AWS DMS per questa attività, consulta [Utilizzo di un database Oracle come origine](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Utilizzo di un database PostgreSQL come destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) nella documentazione di AWS DMS.Per informazioni sull'utilizzo di Amazon S3 per questa attività, consulta [Using Amazon S3 come target nella documentazione di](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html) AWS DMS. | Ingegnere addetto alla migrazione, DBA | 
| Convalida la tabella PostgreSQL di destinazione. | Convalida i dati di destinazione, incluse le intestazioni, rispetto ai dati di origine utilizzando le seguenti query nel database di destinazione.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre>Confronta i risultati con i risultati delle query del database di origine (dal primo passaggio). | Developer | 
| Dividi i dati CLOB in righe separate. | Esegui il codice PostgreSQL personalizzato fornito nella sezione Informazioni [aggiuntive per dividere i](#migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional) dati CLOB e inserirli in righe separate nella tabella PostgreSQL di destinazione. | Developer | 

### Convalida i dati.
<a name="validate-the-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida i dati nella tabella di destinazione. | Convalida i dati inseriti nella tabella di destinazione utilizzando le seguenti query.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre> | Developer | 

## Risorse correlate
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-resources"></a>
+ [Tipo di dati CLOB](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021) (documentazione Oracle)
+ [Tipi di dati](https://www.postgresql.org/docs/11/datatype.html) (documentazione PostgreSQL)

## Informazioni aggiuntive
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional"></a>

**Funzione PostgreSQL per la suddivisione dei dati 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' ;
```

**Esempi di input e output**

Puoi usare i seguenti esempi per provare il codice PostgreSQL prima di migrare i tuoi dati.

Crea un database Oracle con tre righe di input.

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

Viene visualizzato il seguente output.


|  |  | 
| --- |--- |
| id | dati grezzi | 
| 1 | linea di test 1 linea di test 2 linea di test 3 | 

Carica i dati di origine in una tabella intermedia PostgreSQL () per l'elaborazione. `clobdata_pg`

```
SELECT * FROM clobdata_pg;

CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR );

<Run the code in the additional information section.>

SELECT * FROM clobdatatarget;
```

Questo mostra il seguente output.


|  |  | 
| --- |--- |
| id1 | data | 
| 1 | linea di test 1 | 
| 2 | linea di test 2 | 
| 3 | linea di test 3 | 

# Esegui la migrazione PeopleSoft da Oracle ad Amazon RDS Custom
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom"></a>

*Gaurav Gupta, Amazon Web Services*

## Riepilogo
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) è una soluzione ERP (Enterprise Resource Planning) per processi a livello aziendale. PeopleSoft ha un'architettura a tre livelli: client, applicazione e database. PeopleSoft può essere eseguito su [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)). Ora puoi eseguire anche PeopleSoft [Amazon RDS Custom](https://aws.amazon.com/rds/custom/), che fornisce l'accesso al sistema operativo sottostante.

[Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) è un servizio di database gestito per applicazioni legacy, personalizzate e confezionate che richiedono l'accesso al sistema operativo e all'ambiente di database sottostanti. Quando migri il tuo database Oracle su Amazon RDS Custom, Amazon Web Services (AWS) può gestire le attività di backup e l'alta disponibilità, mentre puoi concentrarti sulla manutenzione PeopleSoft dell'applicazione e delle funzionalità. Per i fattori chiave da considerare per una migrazione, consulta [le strategie di migrazione del database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Questo modello si concentra sui passaggi per migrare un PeopleSoft database da Amazon Elastic Compute Cloud (Amazon EC2) ad Amazon RDS Custom utilizzando un backup Oracle Recovery Manager (RMAN). Utilizza un file system condiviso [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) tra l'istanza EC2 e Amazon RDS Custom, sebbene sia possibile utilizzare anche Amazon FSx o qualsiasi unità condivisa. Il modello utilizza un backup completo RMAN (a volte indicato come backup di livello 0). 

## Prerequisiti e limitazioni
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-prereqs"></a>

**Prerequisiti**
+ Un database sorgente Oracle versione 19C in esecuzione su Amazon EC2 con Oracle Linux 7, Oracle Linux 8, Red Hat Enterprise Linux (RHEL) 7 o RHEL 8. Negli esempi di questo modello, il nome del database di origine è`FSDMO92`, ma questo non è un requisito.
**Nota**  
È inoltre possibile utilizzare questo modello con i database di origine Oracle locali. È necessario disporre della connettività di rete appropriata tra la rete locale e un cloud privato virtuale (VPC).
+ Un'istanza PeopleSoft demo 9.2.
+ Un unico livello di PeopleSoft applicazione. Tuttavia, è possibile adattare questo modello per lavorare con più livelli di applicazione.
+ Amazon RDS Custom configurato con almeno 8 GB di spazio di swap.

**Limitazioni**

Questo modello non supporta le seguenti configurazioni:
+ Impostazione del `ARCHIVE_LAG_TARGET` parametro del database su un valore esterno all'intervallo 60-7200
+ Disattivazione della modalità di registro dell'istanza DB () `NOARCHIVELOG`
+ Disattivazione dell'attributo ottimizzato Amazon Elastic Block Store (Amazon EBS) dell'istanza EC2
+ Modifica dei volumi EBS originali collegati all'istanza EC2
+ Aggiungere nuovi volumi EBS o modificare il tipo di volume da gp2 a gp3
+ Modifica del formato di estensione per il parametro (richiesto) `LOG_ARCHIVE_FORMAT` `*.arc`
+ Multiplexazione o modifica della posizione e del nome del file di controllo (deve essere così) `/rdsdbdata/db/*DBNAME*/controlfile/control-01.ctl`

Per ulteriori informazioni su queste e altre configurazioni non supportate, consulta la documentazione di [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-troubleshooting.html#custom-troubleshooting.fix-unsupported).

**Versioni del prodotto**

Per le versioni e le classi di istanze di Oracle Database supportate da Amazon RDS Custom, consulta [Requisiti e limitazioni per Amazon RDS Custom for](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html) Oracle.

## Architecture
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-architecture"></a>

**Stack tecnologico Target**
+ Application Load Balancer
+ Amazon EFS
+ Amazon RDS Custom per Oracle
+ AWS Secrets Manager
+ Amazon Simple Storage Service (Amazon S3)

**Architettura di destinazione**

Il seguente diagramma di architettura rappresenta un PeopleSoft sistema in esecuzione in una singola [zona di disponibilità](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) su AWS. È possibile accedere al livello dell'applicazione tramite un [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/). Sia l'applicazione che i database si trovano in sottoreti private e l'istanza di database Amazon RDS Custom e Amazon EC2 utilizzano un file system condiviso Amazon EFS per archiviare e accedere ai file di backup RMAN. Amazon S3 viene utilizzato per creare il motore Oracle RDS personalizzato e per archiviare i metadati dei redo logs.

![\[Server Web, server di app, Amazon RDS Custom, un'istanza DB EC2 e Amazon EFS in sottoreti private.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bd423dfe-f3c8-42d9-ac84-bf3d093c52bc/images/0e9a6431-e6c7-4047-ae6c-85311938041f.jpeg)


## Tools (Strumenti)
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-tools"></a>

**Strumenti**

*Servizi AWS*
+ [Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) è un servizio di database gestito per applicazioni legacy, personalizzate e confezionate che richiedono l'accesso al sistema operativo e all'ambiente di database sottostanti. Automatizza le attività di amministrazione del database, come backup e alta disponibilità. 
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi nel cloud AWS. Questo modello utilizza un file system condiviso Amazon EFS per archiviare e accedere ai file di backup RMAN.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ti aiuta a sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice. In questo modello, si recuperano le password degli utenti del database da Secrets Manager per creare gli `ADMIN` utenti `RDSADMIN` e modificare le password `sys` e`system`.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra istanze Amazon Elastic Compute Cloud (Amazon EC2), contenitori e indirizzi IP in una o più zone di disponibilità. Questo modello utilizza un Application Load Balancer.

*Altri strumenti*
+ Oracle Recovery Manager (RMAN) fornisce supporto per il backup e il ripristino per i database Oracle. Questo modello utilizza RMAN per eseguire un backup a caldo del database Oracle di origine su Amazon EC2 che viene ripristinato su Amazon RDS Custom.

## Best practice
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-best-practices"></a>
+ Per i parametri di inizializzazione del database, personalizza il pfile standard fornito dall'istanza database personalizzata di Amazon RDS PeopleSoft anziché utilizzare lo spfile dal database di origine Oracle. Questo perché gli spazi bianchi e i commenti causano problemi durante la creazione di repliche di lettura in Amazon RDS Custom. Per ulteriori informazioni sui parametri di inizializzazione del database, vedere la nota di supporto Oracle 1100831.1 (richiede un account Oracle [Support](https://support.oracle.com/portal/)).
+ Amazon RDS Custom utilizza la gestione automatica della memoria Oracle per impostazione predefinita. Se desideri utilizzare il kernel Hugemem, puoi configurare Amazon RDS Custom per utilizzare invece la gestione automatica della memoria condivisa.
+ Lascia il parametro abilitato per impostazione `memory_max_target` predefinita. Il framework lo utilizza in background per creare repliche di lettura.
+ Abilita Oracle Flashback Database. Questa funzionalità è utile per ripristinare lo standby in scenari di test di failover (non di switchover).

## Epiche
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-epics"></a>

### Configura l'istanza DB e il file system
<a name="set-up-the-db-instance-and-file-system"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza DB. | Nella console Amazon RDS, crea un'istanza Amazon RDS Custom for Oracle DB con un nome DB chiamato FSDMO92 (o il nome del database di origine).Per istruzioni, consulta [Working with Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html) nella documentazione di AWS e il post di 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/). Ciò garantisce che il nome del database sia impostato sullo stesso nome del database di origine. (Se lasciato vuoto, l'istanza EC2 e il nome del database verranno impostati su`ORCL`.) | DBA | 

### Esegui un backup completo RMAN del database Amazon EC2 di origine
<a name="perform-an-rman-full-backup-of-the-source-amazon-ec2-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea uno script di backup. | Crea uno script di backup RMAN per eseguire il backup del database sul file system Amazon EFS che hai montato (`/efs`nell'esempio seguente). Puoi utilizzare il codice di esempio o eseguire uno degli script RMAN esistenti.<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 | 
| Esegui lo script di backup. | Per eseguire lo script di backup RMAN, accedi come utente Oracle Home ed esegui lo script.<pre>$  chmod a+x rman_backup.sh<br />$ ./rman_backup.sh &</pre> | DBA | 
| Verifica la presenza di errori e annota il nome del file di backup. | Verificate la presenza di errori nel file di registro RMAN. Se tutto sembra a posto, elenca il backup del file di controllo eseguendo il comando seguente.<pre>RMAN> list backup of controlfile;<br /><br />using target database control file instead of recovery catalog<br /></pre>Annotate il nome del file di output.<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>Utilizzerai il file di controllo del backup `/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL` quando ripristini il database su Amazon RDS Custom. | DBA | 

### Chiudi il livello di applicazione di origine
<a name="shut-down-the-source-application-tier"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi l'applicazione.  | Per chiudere il livello di applicazione di origine, utilizzate l'`psadmin`utilità o l'utilità della riga di `psadmin` comando.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA, Amministratore PeopleSoft  | 

### Configurazione del database Amazon RDS Custom di destinazione
<a name="configure-the-target-amazon-rds-custom-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il pacchetto rpm nfs-utils. | Per installare il `nfs-utils rpm` pacchetto, esegui il comando seguente.<pre>$ yum install -y nfs-utils<br /></pre> | DBA | 
| Monta lo storage EFS. | Ottieni il comando di montaggio di Amazon EFS dalla pagina della console Amazon EFS. Monta il file system EFS sull'istanza Amazon RDS utilizzando un client Network File System (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 | 

### Rilascia il database iniziale e crea le directory in cui archiviare i file del database
<a name="drop-the-starter-database-and-create-the-directories-to-store-the-database-files"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Metti in pausa la modalità di automazione. | Devi mettere in pausa la [modalità di automazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing) sulla tua istanza database personalizzata Amazon RDS prima di procedere con i passaggi successivi, per assicurarti che l'automazione non interferisca con l'attività di ripristino RMAN.Puoi mettere in pausa l'automazione utilizzando la console AWS o il comando AWS Command Line Interface (AWS CLI) (assicurati di aver prima configurato l'[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)).<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>Quando specifichi la durata della pausa, assicurati di lasciare abbastanza tempo per il ripristino RMAN. Questo dipende dalla dimensione del database di origine, quindi modificate il valore 360 di conseguenza.Inoltre, assicuratevi che il tempo totale dell'automazione sospesa non si sovrapponga alla finestra di backup o di manutenzione del database. | DBA | 
| Crea e modifica il file dei parametri per PeopleSoft | Per creare e modificare il pfile per PeopleSoft, usa il pfile standard creato con l'istanza database personalizzata di Amazon RDS. Aggiungi i parametri necessari. PeopleSoft[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Elimina il database iniziale. | Per eliminare il database Amazon RDS Custom esistente, usa il codice seguente.<pre>$ sqlplus / as sysdba<br />SQL> shutdown immediate;<br />SQL> startup mount exclusive restrict;<br />SQL> drop database;<br />SQL> exit</pre> |  | 
| Ripristina il database Amazon RDS Custom dal backup. | Ripristina il database utilizzando lo script seguente. Lo script ripristinerà prima il control file e poi ripristinerà l'intero database dalle parti di backup archiviate sul mount 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 | 

### Recupera le password da Secrets Manager, crea utenti e modifica le password
<a name="retrieve-passwords-from-secrets-manager-create-users-and-change-passwords"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Recupera la password da Secrets Manager. | Puoi eseguire questo passaggio utilizzando la console AWS o l'interfaccia a riga di comando AWS. I passaggi seguenti mostrano le istruzioni per la console.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Creare l'utente RDSADMIN. | `RDSADMIN`è l'utente del database per il monitoraggio e l'orchestrazione dell'istanza database personalizzata di Amazon RDS. Poiché il database iniziale è stato eliminato e il database di destinazione è stato ripristinato dall'origine utilizzando RMAN, devi ricreare questo utente dopo l'operazione di ripristino per assicurarti che il monitoraggio di Amazon RDS Custom funzioni come previsto. È inoltre necessario creare un profilo e un tablespace separati per l'utente. `RDSADMIN`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Crea l'utente principale. | Poiché il database iniziale è stato eliminato e il database di destinazione è stato ripristinato dall'origine utilizzando RMAN, è necessario ricreare l'utente principale. In questo esempio, il nome utente principale è. `admin`<pre>SQL> create user admin identified by <password>;<br />SQL> grant dba to admin</pre> | DBA | 
| Cambia le password di sistema. | Modifica le password di sistema utilizzando la password recuperata da Secrets Manager.<pre>SQL> alter user sys identified by xxxxxxxxxxx;<br />SQL> alter user system identified by xxxxxxxxxx;</pre>Se non modifichi queste password, Amazon RDS Custom visualizza il messaggio di errore «L'utente di monitoraggio del database o le credenziali utente sono cambiate». | DBA | 

### Configura le voci TNS per Amazon RDS Custom e PeopleSoft
<a name="configure-the-tns-entries-for-amazon-rds-custom-and-peoplesoft"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il file tnsnames. | Per connetterti al database dal livello dell'applicazione, configura il `tnsnames.ora` file in modo da poterti connettere al database dal livello dell'applicazione. Nell'esempio seguente, è possibile notare che esiste un collegamento software al `tnsnames.ora` file, ma per impostazione predefinita il file è vuoto. <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/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Crea il softlink spfile
<a name="create-the-spfile-softlink"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il softlink spfile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Esegui le fasi successive alla migrazione
<a name="perform-post-migration-steps"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida lo schema, le connessioni e le attività di manutenzione. | Per finalizzare la migrazione, esegui le seguenti attività.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

## Risorse correlate
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-resources"></a>
+ [Utilizzo di Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html)
+ [Amazon RDS Custom for Oracle — Nuove funzionalità di controllo nell'ambiente di database](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) (post di blog)
+ [Integrazione di Amazon RDS Custom per Oracle con Amazon EFS](https://aws.amazon.com/blogs/database/integrate-amazon-rds-custom-for-oracle-with-amazon-efs/) (post di blog)
+ [Configurazione di Amazon RDS come PeopleSoft database Oracle (white paper](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf) AWS)

# Esegui la migrazione della funzionalità Oracle ROWID a PostgreSQL su AWS
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws"></a>

*Rakesh Raghav e Ramesh Pathuri, Amazon Web Services*

## Riepilogo
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-summary"></a>

Questo modello descrive le opzioni per la migrazione della funzionalità delle `ROWID` pseudocolonne in Oracle Database a un database PostgreSQL in Amazon Relational Database Service (Amazon RDS) per PostgreSQL, Amazon Aurora PostgreSQL Compatible Edition o Amazon Elastic Compute Cloud (Amazon). EC2

In un database Oracle, la pseudocolonna è l'indirizzo fisico di una riga in una tabella. `ROWID` Questa pseudocolonna viene utilizzata per identificare in modo univoco una riga anche se la chiave primaria non è presente in una tabella. PostgreSQL ha una pseudocolonna simile `ctid` chiamata, ma non può essere usata come. `ROWID` Come spiegato nella documentazione di [PostgreSQL](https://www.postgresql.org/docs/current/ddl-system-columns.html)`ctid`, potrebbe cambiare se viene aggiornato o dopo ogni processo. `VACUUM`

Esistono tre modi per creare la funzionalità `ROWID` pseudocolonna in PostgreSQL:
+ Usa una colonna chiave primaria invece di identificare una riga `ROWID` in una tabella.
+ Utilizzate una primary/unique chiave logica (che potrebbe essere una chiave composita) nella tabella. 
+ Aggiungi una colonna con valori generati automaticamente e rendila una primary/unique chiave da `ROWID` imitare.

Questo modello illustra tutte e tre le implementazioni e descrive i vantaggi e gli svantaggi di ciascuna opzione.

## Prerequisiti e limitazioni
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Esperienza di codifica procedurale Language/PostgreSQL (PL/pgSQL)
+ Fonte Oracle Database
+ Un cluster compatibile con Amazon RDS per PostgreSQL o Aurora PostgreSQL o un'istanza per ospitare il database PostgreSQL EC2 

**Limitazioni**
+ Questo modello fornisce `ROWID` soluzioni alternative per la funzionalità. PostgreSQL non fornisce un equivalente a in Oracle Database. `ROWID`

**Versioni del prodotto**
+ PostgreSQL 11.9 o versione successiva

## Architecture
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-architecture"></a>

**Stack tecnologico di origine**
+ database Oracle

**Stack tecnologico Target**
+ Compatibile con Aurora PostgreSQL, Amazon RDS per PostgreSQL o un'istanza con un database PostgreSQL EC2 

![\[Conversione di un database Oracle in PostgreSQL su AWS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9a2ce994-4f68-4975-aab2-796cc20a3c82/images/6e7c2ef6-f440-476a-9003-f1f166718e15.png)


**Opzioni di implementazione**

Esistono tre opzioni per ovviare alla mancanza di `ROWID` supporto in PostgreSQL, a seconda che la tabella abbia una chiave primaria o un indice univoco, una chiave primaria logica o un attributo di identità. La scelta dipende dalle tempistiche del progetto, dalla fase di migrazione corrente e dalle dipendenze dall'applicazione e dal codice del database.


| 
| 
| Opzione | Description | Vantaggi | Svantaggi | 
| --- |--- |--- |--- |
| **Chiave primaria o indice univoco** | Se la tabella Oracle ha una chiave primaria, puoi utilizzare gli attributi di questa chiave per identificare in modo univoco una riga.  | Nessuna dipendenza dalle funzionalità proprietarie del database.Impatto minimo sulle prestazioni, poiché i campi chiave primari sono indicizzati. | Richiede modifiche al codice dell'applicazione e del database su cui si basa il passaggio `ROWID` ai campi della chiave primaria.  | 
| **Chiave logica primary/unique ** | Se la tabella Oracle ha una chiave primaria logica, è possibile utilizzare gli attributi di questa chiave per identificare in modo univoco una riga. Una chiave primaria logica è costituita da un attributo o da un insieme di attributi che possono identificare in modo univoco una riga, ma non viene applicata al database tramite un vincolo. | Nessuna dipendenza dalle funzionalità proprietarie del database. | Richiede modifiche al codice dell'applicazione e del database su cui si basa il passaggio `ROWID` ai campi chiave primari.Impatto significativo sulle prestazioni se gli attributi della chiave primaria logica non sono indicizzati. Tuttavia, è possibile aggiungere un indice univoco per evitare problemi di prestazioni. | 
| **Attributo di identità** | se la tua tabella Oracle non ha una chiave primaria, puoi creare un campo aggiuntivo come`GENERATED ALWAYS AS IDENTITY`. Questo attributo genera un valore univoco ogni volta che i dati vengono inseriti nella tabella, quindi può essere utilizzato per identificare in modo univoco una riga per le operazioni DML (Data Manipulation Language). | Nessuna dipendenza dalle funzionalità proprietarie del database.Il database PostgreSQL popola l'attributo e ne mantiene l'unicità. | Richiede modifiche al codice dell'applicazione e del database su `ROWID` cui si basa il passaggio all'attributo di identità.Impatto significativo sulle prestazioni se il campo aggiuntivo non è indicizzato. Tuttavia, puoi aggiungere un indice per evitare problemi di prestazioni. | 

## Tools (Strumenti)
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-tools"></a>
+ [Amazon Relational Database Service (Amazon RDS) per PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) ti aiuta a configurare, gestire e scalare un database relazionale PostgreSQL nel cloud AWS.
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando. **In questo modello, puoi utilizzare l'AWS CLI per eseguire comandi SQL tramite pgAdmin.**
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di gestione open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

## Epiche
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-epics"></a>

### Identifica le tabelle di origine
<a name="identify-the-source-tables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica le tabelle Oracle che utilizzano l'`ROWID`attributo. | Utilizza AWS Schema Conversion Tool (AWS SCT) per identificare le tabelle Oracle con `ROWID` funzionalità. Per ulteriori informazioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID)oppureIn Oracle, usa la `DBA_TAB_COLUMNS` vista per identificare le tabelle che hanno un `ROWID` attributo. Questi campi possono essere utilizzati per memorizzare caratteri alfanumerici da 10 byte. Determina l'utilizzo e convertili in un `VARCHAR` campo, se necessario. | DBA o sviluppatore | 
| Identifica il codice che fa riferimento a queste tabelle. | Usa AWS SCT per generare un rapporto di valutazione della migrazione per identificare le procedure interessate da`ROWID`. Per ulteriori informazioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.html)oppureNel database Oracle di origine, utilizza il campo di testo della `dba_source` tabella per identificare gli oggetti che utilizzano `ROWID` funzionalità. | DBA o sviluppatore | 

### Determina l'utilizzo della chiave primaria
<a name="determine-primary-key-usage"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica le tabelle che non dispongono di chiavi primarie. | Nel database Oracle di origine, utilizzare `DBA_CONSTRAINTS` per identificare le tabelle che non dispongono di chiavi primarie. Queste informazioni ti aiuteranno a determinare la strategia per ogni tabella. Esempio:<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 o sviluppatore | 

### Identifica e applica la soluzione
<a name="identify-and-apply-the-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Applica le modifiche alle tabelle con una chiave primaria definita o logica.  | Apportate le modifiche al codice dell'applicazione e del database mostrate nella sezione [Informazioni aggiuntive](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional) per utilizzare una chiave primaria univoca o una chiave primaria logica per identificare una riga nella tabella. | DBA o sviluppatore | 
| Aggiungi un campo aggiuntivo alle tabelle che non hanno una chiave primaria definita o logica. | Aggiungi un attributo di tipo`GENERATED ALWAYS AS IDENTITY`. Apporta le modifiche al codice dell'applicazione e del database mostrate nella sezione [Informazioni aggiuntive](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional). | DBA o sviluppatore | 
| Aggiungi un indice se necessario. | Aggiungi un indice al campo aggiuntivo o alla chiave logica primaria per migliorare le prestazioni SQL. | DBA o sviluppatore | 

## Risorse correlate
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-resources"></a>
+ [PostgreSQL CTID (documentazione PostgreSQL](https://www.postgresql.org/docs/current/ddl-system-columns.html))
+ [Colonne generate](https://www.postgresql.org/docs/current/ddl-generated-columns.html) (documentazione PostgreSQL)
+ [Pseudocolonna ROWID](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html#GUID-F6E0FBD2-983C-495D-9856-5E113A17FAF1) (documentazione Oracle)

## Informazioni aggiuntive
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional"></a>

Le sezioni seguenti forniscono esempi di codice Oracle e PostgreSQL per illustrare i tre approcci.

**Scenario 1: utilizzo di una chiave unica primaria**

Negli esempi seguenti, si crea la tabella `testrowid_s1` con `emp_id` come chiave primaria.

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

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

**Scenario 2: utilizzo di una chiave logica primaria**

Negli esempi seguenti, si crea la tabella `testrowid_s2` con `emp_id` come chiave primaria logica.

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

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

**Scenario 3: utilizzo di un attributo di identità**

Negli esempi seguenti, si crea la tabella `testrowid_s3` senza chiave primaria e utilizzando un attributo di identità.

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

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

# Esegui la migrazione dei codici di errore del database Oracle a un database compatibile con 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*

## Riepilogo
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Questo modello mostra come migrare i codici di errore di Oracle Database [su un database Edition compatibile con Amazon Aurora PostgreSQL utilizzando](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) una tabella di metadati predefinita.

I codici di errore del database Oracle non hanno sempre un codice di errore PostgreSQL corrispondente. Questa differenza nei codici di errore può rendere difficile la configurazione della logica di elaborazione delle procedure o delle funzioni nell'architettura PostgreSQL di destinazione.

È possibile semplificare il processo memorizzando i codici di errore del database di origine e di destinazione significativi per il PL/pgSQL programma in una tabella di metadati. Quindi, configura la tabella per contrassegnare i codici di errore del database Oracle validi e mapparli agli equivalenti PostgreSQL prima di continuare con la logica di processo rimanente. Se il codice di errore del database Oracle non è presente nella tabella dei metadati, il processo termina con l'eccezione. È quindi possibile esaminare manualmente i dettagli dell'errore e aggiungere il nuovo codice di errore alla tabella se il programma lo richiede.

Utilizzando questa configurazione, il database compatibile con Amazon Aurora PostgreSQL può gestire gli errori allo stesso modo del database Oracle di origine.

**Nota**  
La configurazione di un database PostgreSQL per gestire correttamente i codici di errore del database Oracle richiede in genere modifiche al database e al codice dell'applicazione.

## Prerequisiti e limitazioni
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine con servizi di istanza e listener attivi e funzionanti
+ Un cluster compatibile con Amazon Aurora PostgreSQL che è attivo e funzionante
+ Familiarità con Oracle Database
+ Familiarità con i database PostgreSQL

## Architecture
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

Il diagramma seguente mostra un esempio di flusso di lavoro di database compatibile con Amazon Aurora PostgreSQL per la convalida e la gestione dei codici di errore dei dati:

![\[Convalida e gestione del codice di errore dei dati per un database compatibile con Aurora PostgreSQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Una tabella contiene i codici e le classificazioni di errore del database Oracle e i codici di errore e le classificazioni di errore PostgreSQL equivalenti. La tabella include una colonna **valid\$1error che classifica se codici di errore** specifici e predefiniti sono validi o meno.

1. **Quando una PL/pgSQL funzione (**func\$1processdata**) genera un'eccezione, richiama una seconda funzione (error\$1validation). PL/pgSQL **

1. La funzione error\$1validation accetta il codice di **errore del database Oracle** come argomento di input. Quindi, la funzione confronta il codice di errore in entrata con la tabella per verificare se l'errore è incluso nella tabella.

1. Se il codice di errore del database Oracle è incluso nella tabella, la funzione **error\$1validation** restituisce un valore **TRUE** e la logica del processo continua. Se il codice di errore non è incluso nella tabella, la funzione restituisce un valore **FALSE** e la logica del processo esce con un'eccezione.

1. Quando la funzione restituisce un valore **FALSE**, i dettagli dell'errore vengono esaminati manualmente dal responsabile funzionale dell'applicazione per determinarne la validità.

1. Il nuovo codice di errore viene quindi aggiunto manualmente alla tabella oppure no. Se il codice di errore è valido e aggiunto alla tabella, la funzione **error\$1validation** restituisce un valore **TRUE** la volta successiva che si verifica l'eccezione. Se il codice di errore non è valido e il processo deve fallire quando si verifica l'eccezione, il codice di errore non viene aggiunto alla tabella.

**Stack tecnologico**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Oracle SQL Developer

## Tools (Strumenti)
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di amministrazione e sviluppo open source per PostgreSQL. Fornisce un'interfaccia grafica che semplifica la creazione, la manutenzione e l'uso degli oggetti del database.
+ [Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) è un ambiente di sviluppo gratuito e integrato che semplifica lo sviluppo e la gestione di Oracle Database sia nelle implementazioni tradizionali che in quelle cloud.

## Epiche
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Esegui la migrazione dei codici di errore del database Oracle al tuo database compatibile con Amazon Aurora PostgreSQL
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una tabella nel database compatibile con Amazon Aurora PostgreSQL. | Esegui il seguente comando [PostgreSQL CREATE TABLE:](https://www.postgresql.org/docs/current/sql-createtable.html)<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> | Sviluppatore PostgreSQL, Oracle, per PostgreSQL RDS/Aurora  | 
| Aggiungere i codici di errore PostgreSQL e i codici di errore del database Oracle corrispondenti alla tabella. | **Esegui il comando [PostgreSQL](https://www.postgresql.org/docs/current/sql-insert.html) INSERT per aggiungere i valori del codice di errore richiesti alla tabella error\$1codes.****I codici di errore PostgreSQL devono utilizzare il tipo di dati variabile del carattere (valore SQLSTATE).** **I codici di errore Oracle devono utilizzare il tipo di dati numerico (valore SQLCODE).****Esempio di istruzioni Insert:**<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 rilevi eccezioni Java Database Connectivity (JDBC) specifiche di Oracle, devi sostituirle con eccezioni generiche tra database o passare a eccezioni specifiche di PostgreSQL. | Sviluppatore PostgreSQL, Oracle, per PostgreSQL RDS/Aurora  | 
| Crea una funzione per convalidare i codici di errore PL/pgSQL . | Crea una PL/pgSQL funzione eseguendo il comando [PostgreSQL CREATE FUNCTION](https://www.postgresql.org/docs/current/sql-createfunction.html). Assicurati che la funzione esegua le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | Sviluppatore PostgreSQL, Oracle, per PostgreSQL RDS/Aurora  | 
| Esamina manualmente i nuovi codici di errore man mano che vengono registrati dalla funzione. PL/pgSQL  | Esamina manualmente i nuovi codici di errore.**Se un nuovo codice di errore è valido per il tuo caso d'uso, aggiungilo alla tabella **error\$1codes** eseguendo il comando PostgreSQL INSERT.**oppureSe un nuovo codice di errore non è valido per il tuo caso d'uso, non aggiungerlo alla tabella. La logica del processo continuerà a fallire e terminerà con un'eccezione quando si verifica l'errore. | Sviluppatore PostgreSQL, Oracle, per PostgreSQL RDS/Aurora  | 

## Risorse correlate
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Appendice A. Codici di errore PostgreSQL (documentazione PostgreSQL](https://www.postgresql.org/docs/11/errcodes-appendix.html))

Messaggi di errore del database (documentazione di Oracle [Database](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm))

# Esegui la migrazione di SAP ASE su Amazon Aurora, compatibile EC2 con PostgreSQL utilizzando AWS SCT e 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*

## Riepilogo
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-summary"></a>

Questo modello descrive come migrare un database SAP Adaptive Server Enterprise (SAP ASE) ospitato su un'istanza Amazon Elastic Compute Cloud (Amazon) verso l'edizione compatibile con EC2 Amazon Aurora PostgreSQL utilizzando AWS Schema Conversion Tool (AWS SCT) e AWS Database Migration Service (AWS DMS). Il modello si concentra sia sulle conversioni DDL (Data Definition Language) per gli oggetti archiviati sia sulla migrazione dei dati.

La compatibilità con Aurora PostgreSQL supporta i carichi di lavoro OLTP (Online Transaction Processing). Questo servizio gestito fornisce configurazioni scalabili automaticamente su richiesta. Può avviare, spegnere, scalare o ridurre automaticamente il database in base alle esigenze dell'applicazione. È possibile eseguire il database nel cloud senza gestire alcuna istanza di database. La compatibilità con Aurora PostgreSQL offre un'opzione conveniente per carichi di lavoro poco frequenti, intermittenti o imprevedibili.

Il processo di migrazione consiste in due fasi principali:
+ Conversione dello schema del database utilizzando AWS SCT
+ Migrazione dei dati utilizzando AWS DMS

Istruzioni dettagliate per entrambe le fasi sono fornite nella sezione *Epics*. Per informazioni sulla risoluzione dei problemi specifici dell'utilizzo di AWS DMS con i database SAP ASE, consulta [Risoluzione dei problemi con SAP ASE](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SAP) nella documentazione di AWS DMS.

## Prerequisiti e limitazioni
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database SAP ASE di origine su un' EC2 istanza con server, database e servizi di listener attivi e funzionanti
+ Un database di destinazione compatibile con Aurora PostgreSQL

**Limitazioni**
+ Il numero di porta per le connessioni deve essere 5432.
+ La funzionalità [huge\$1pages](https://www.postgresql.org/docs/9.6/static/runtime-config-resource.html) è attiva per impostazione predefinita ma può essere modificata.
+ Point-in-time la granularità del ripristino (PITR) è di 5 minuti.
+ La replica tra regioni non è attualmente disponibile.
+ La dimensione massima di archiviazione per un database Aurora è di 128 TiB.
+ È possibile creare fino a 15 repliche di lettura.
+ Il limite di dimensione della tabella è vincolato solo dalla dimensione del volume del cluster Aurora, quindi la dimensione massima della tabella per un cluster DB compatibile con Aurora PostgreSQL è di 32 TiB. Ti consigliamo di seguire le migliori pratiche per la progettazione delle tabelle, come il partizionamento di tabelle di grandi dimensioni.

**Versioni del prodotto**
+ Database di origine: AWS DMS attualmente supporta SAP ASE 15, 15.5, 15.7 e 16.x. Consulta la [AWS DMS User Guide](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html) per le informazioni più recenti sul supporto della versione SAP ASE.
+ Database di destinazione: PostgreSQL 9.4 e versioni successive (per la versione 9.x), 10.x, 11.x, 12.x, 13.x e 14.x. Consulta la [AWS DMS User Guide](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) per le ultime versioni di PostgreSQL supportate.
+ Amazon Aurora 1.x o versione successiva. Per le informazioni più recenti, consulta le versioni del motore [e le versioni del motore compatibili con Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) nella documentazione di Aurora.

## Architecture
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Database SAP ASE in esecuzione su Amazon EC2

**Stack tecnologico Target**
+ Database Aurora compatibile con PostgreSQL

**Architettura di migrazione**

![\[Migrazione di un database SAP ASE su Aurora compatibile con PostgreSQL utilizzando AWS SCT e AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/07fbdea1-0242-40ae-8e5f-2ce4a620a047/images/a3b018f3-2e7b-4c37-a218-870c56132acb.png)


## Tools (Strumenti)
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-tools"></a>
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) supporta diversi database di origine e destinazione. Per ulteriori informazioni, consulta [Sources for Data Migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) e [Targets for Data Migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) nella documentazione di AWS DMS. Per il supporto più completo della versione e delle funzionalità, ti consigliamo di utilizzare la versione più recente di AWS DMS. 

## Epiche
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-epics"></a>

### Configura l'ambiente
<a name="set-up-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura l'accesso alla rete nell' EC2 istanza di origine. | Configura i gruppi di sicurezza nell' EC2 istanza che ospita il database SAP ASE di origine.Per istruzioni, consulta [i gruppi EC2 di sicurezza Amazon per le istanze Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html?icmpid=docs_ec2_console) nella EC2 documentazione di Amazon. | Amministratore di sistema | 
| Crea il tuo cluster DB di destinazione compatibile con Aurora PostgreSQL. | Installa, configura e avvia un cluster compatibile con Aurora PostgreSQL per il tuo database di destinazione.Per ulteriori informazioni, consulta [Creazione di un cluster Amazon Aurora DB nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) di Aurora. | DBA | 
| Imposta l'autorizzazione per il cluster DB di destinazione. | Configura gruppi di sicurezza e firewall per il database di destinazione.Per istruzioni, consulta [Creazione di un cluster Amazon Aurora DB nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) di Aurora. | DBA, amministratore di sistema | 

### Converti lo schema del tuo database con AWS SCT
<a name="convert-your-database-schema-with-aws-sct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia AWS SCT. | Avvia AWS SCT seguendo le istruzioni nella documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)AWS SCT fornisce un'interfaccia utente basata su progetti per convertire automaticamente lo schema del database di origine SAP ASE in un formato compatibile con l'istanza DB Aurora PostgreSQL di destinazione. | DBA | 
| Crea endpoint AWS SCT. | Crea endpoint per i database SAP ASE di origine e PostgreSQL di destinazione.Per istruzioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers) | DBA | 
| Crea un rapporto di valutazione. | Crea un rapporto di valutazione della migrazione del database per valutare la migrazione e rilevare eventuali oggetti e funzioni incompatibili.Per istruzioni, consulta la [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) | DBA | 
| Convertire lo schema. | Converti lo schema del database seguendo le istruzioni nella [documentazione di AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) | DBA | 
| Convalida gli oggetti del database. | Se AWS SCT non è in grado di convertire un oggetto di database, ne identificherà il nome e altri dettagli. È necessario convertire questi oggetti manualmente.Per identificare queste discrepanze, segui le istruzioni nel post del blog AWS [Convalida gli oggetti del database dopo la migrazione da SAP ASE ad Amazon RDS for PostgreSQL o 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 | 

### Analizza la migrazione di AWS DMS
<a name="analyze-the-aws-dms-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database di origine e di destinazione. | Verifica la compatibilità delle versioni del database SAP ASE con AWS DMS. Per ulteriori informazioni, consulta [Sources for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.title) e [Targets for AWS DMS nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) di AWS DMS. | DBA | 
| Identifica i requisiti per il tipo e la capacità di archiviazione. | Scegli la capacità di archiviazione appropriata per il database di destinazione in base alle dimensioni del database di origine. | DBA, amministratore di sistema | 
| Scegli il tipo di istanza, la capacità e altre caratteristiche dell'istanza di replica. | Scegli il tipo di istanza, la capacità, le funzionalità di archiviazione e le funzionalità di rete che soddisfano i tuoi requisiti.Per indicazioni, consulta [Scelta dell'istanza di replica AWS DMS giusta per la migrazione nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html) di AWS DMS. | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete. | Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione.Segui le indicazioni in [Configurazione di una rete per un'istanza di replica nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html) di AWS DMS. | DBA, amministratore di sistema | 

### Migrare i dati
<a name="migrate-the-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra i dati creando un'attività di migrazione in AWS DMS. | Per migrare i dati, crea un'attività e segui le istruzioni nella documentazione di [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. | DBA | 
| Convalida i dati. | Per verificare che i tuoi dati siano stati migrati con precisione dal database di origine al database di destinazione, segui le [linee guida sulla convalida dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) fornite nella documentazione di AWS DMS. | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica la strategia di migrazione delle applicazioni. | Scegli una delle [sette strategie (7R)](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html) per la migrazione delle applicazioni sul cloud. | DBA, proprietario dell'app, amministratore di sistema | 
| Segui la strategia di migrazione delle applicazioni. | Completa le attività del database identificate dal team dell'applicazione, incluso l'aggiornamento dei dettagli di connessione DNS per il database di destinazione e l'aggiornamento delle query dinamiche.  | DBA, proprietario dell'app, amministratore di sistema | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. | Passa la connessione dal database di origine al database di destinazione. Per ulteriori informazioni, consulta la sezione [Cut over](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/cut-over.html) della *strategia di migrazione per i database relazionali*. | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. | Termina tutte le attività di migrazione, le istanze di replica, gli endpoint e altre risorse AWS SCT e AWS DMS. Per ulteriori informazioni, consulta la [documentazione di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Deleting). | DBA, amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. | Convalida tutti i passaggi della documentazione del progetto per assicurarti che tutte le attività siano state completate con successo. | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto. | Chiudi il progetto di migrazione e fornisci eventuali feedback. | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-resources"></a>

**Riferimenti**
+ [Abilita connessioni crittografate per le istanze DB PostgreSQL in Amazon RDS (AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html))
+ [Trasporta i database PostgreSQL tra due istanze DB Amazon RDS utilizzando pg\$1transport](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg_transport.html) (AWS Prescriptive Guidance)
+ [Prezzi di Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Best practice con Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraPostgreSQL.BestPractices.html) (documentazione Amazon Aurora)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Utilizzo di un database SAP ASE come origine per AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)

**Tutorial e video**
+ [Guida introduttiva ad AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (video)

# Migrazione dei certificati SSL di Windows su un Application Load Balancer utilizzando ACM
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm"></a>

*Chandra Sekhar Yaratha e Igor Kovalchuk, Amazon Web Services*

## Riepilogo
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-summary"></a>

Il modello fornisce linee guida per l'utilizzo di AWS Certificate Manager (ACM) per migrare i certificati Secure Sockets Layer (SSL) esistenti da siti Web ospitati su server locali o istanze Amazon Elastic Compute Cloud (Amazon EC2) su Microsoft Internet Information Services (IIS). I certificati SSL possono quindi essere utilizzati con Elastic Load Balancing on AWS. 

SSL protegge i dati, conferma la tua identità, migliora il posizionamento nei motori di ricerca, aiuta a soddisfare i requisiti del Payment Card Industry Data Security Standard (PCI DSS) e migliora la fiducia dei clienti. Gli sviluppatori e i team IT che gestiscono questi carichi di lavoro desiderano che le loro applicazioni e infrastrutture Web, inclusi il server IIS e Windows Server, rimangano conformi alle loro politiche di base.

Questo modello prevede l'esportazione manuale dei certificati SSL esistenti da Microsoft IIS, la loro conversione dal formato Personal Information Exchange (PFX) al formato Private Enhanced Mail (PEM) supportato da ACM e quindi l'importazione in ACM nel tuo account AWS. Descrive inoltre come creare un Application Load Balancer per l'applicazione e configurare Application Load Balancer per utilizzare i certificati importati. Le connessioni HTTPS vengono quindi terminate sull'Application Load Balancer e non è necessario un ulteriore sovraccarico di configurazione sul server Web. Per ulteriori informazioni, consulta [Creare un listener HTTPS per l'Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html).

I server Windows utilizzano file con estensione pfx o p12 per contenere il file della chiave pubblica (certificato SSL) e il relativo file di chiave privata univoco. L'Autorità di certificazione (CA) ti fornisce il tuo file di chiave pubblica. Utilizzate il server per generare il file di chiave privata associato in cui è stata creata la richiesta di firma del certificato (CSR).

## Prerequisiti e limitazioni
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) su AWS con almeno una sottorete privata e una pubblica in ogni zona di disponibilità utilizzata dai tuoi obiettivi
+ IIS versione 8.0 o successiva in esecuzione su Windows Server 2012 o versione successiva
+ Un'applicazione Web in esecuzione su IIS
+ Accesso dell'amministratore al server IIS

## Architecture
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-architecture"></a>

**Stack tecnologico di origine**
+ Implementazione del server Web IIS con SSL per garantire che i dati vengano trasmessi in modo sicuro in una connessione crittografata (HTTPS) 

**Architettura di origine**

![\[Architettura di origine per la migrazione dei certificati SSL di Windows su Application Load Balancer tramite ACM\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/e63efb6f-205b-4e20-a043-6bc954470191.png)


**Stack tecnologico Target**
+ Certificati ACM nel tuo account AWS
+ Un Application Load Balancer configurato per utilizzare certificati importati
+ Istanze di Windows Server nelle sottoreti private

**Architettura Target**

![\[Architettura di destinazione per la migrazione dei certificati SSL di Windows su Application Load Balancer tramite ACM\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/45ac7fba-fbad-4c74-9b1f-80ca212dae08.png)


 

## Tools (Strumenti)
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-tools"></a>
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) ti aiuta a creare, archiviare e rinnovare certificati e chiavi SSL/TLS X.509 pubblici e privati che proteggono i tuoi siti Web e le tue applicazioni AWS.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra EC2 istanze, contenitori e indirizzi IP in una o più zone di disponibilità.

## Best practice
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-best-practices"></a>
+ Applica i reindirizzamenti del traffico da HTTP a HTTPS.
+ Configura correttamente i gruppi di sicurezza per il tuo Application Load Balancer per consentire il traffico in entrata solo verso porte specifiche.
+ Avvia le tue EC2 istanze in diverse zone di disponibilità per garantire un'elevata disponibilità.
+ Configura il dominio dell'applicazione in modo che punti al nome DNS dell'Application Load Balancer anziché al suo indirizzo IP.
+ [Assicurati che l'Application Load Balancer abbia configurato i controlli di integrità a livello di applicazione.](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)
+ Configura la soglia per i controlli sanitari.
+ Usa [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) per monitorare l'Application Load Balancer.

## Epiche
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-epics"></a>

### Esporta un file.pfx
<a name="export-a-pfx-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esporta il file.pfx da Windows Server. | Per esportare il certificato SSL come file.pfx dal gestore IIS locale in Windows Server:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Il file.pfx dovrebbe ora essere salvato nella posizione e nel percorso specificati. | Amministratore di sistema | 

### Convertire il certificato con codifica PFX in formato PEM
<a name="convert-the-pfx-encoded-certificate-to-pem-format"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica e installa il toolkit OpenSSL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Amministratore di sistema | 
| Convertire il certificato con codifica PFX in formato PEM. | I seguenti passaggi convertono il file di certificato firmato e codificato in PFX in tre file in formato PEM:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Per convertire il certificato codificato PFX:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Amministratore di sistema | 

### Importa un certificato in ACM
<a name="import-a-certificate-into-acm"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparati a importare il certificato. | Nella [console ACM](https://console.aws.amazon.com/acm/home), scegli **Importa un certificato**. | Amministratore cloud | 
| Fornisci l'ente del certificato. | Per **Organismo del certificato**, incolla il certificato con codifica PEM che desideri importare. Per ulteriori informazioni sui comandi e sui passaggi descritti in questa e in altre attività di questa epopea, consulta [Importazione di un](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html) certificato nella documentazione ACM. | Amministratore cloud | 
| Fornisci la chiave privata del certificato. | Per **Certificate private key (Chiave privata certificato)**, incolla la chiave privata non crittografata, con codifica PEM, corrispondente alla chiave pubblica del certificato. | Amministratore cloud | 
| Fornisci la catena di certificati. | Per **Certificate Chain, incolla la catena** di certificati con codifica PEM, che è memorizzata nel file. `CertificateChain.pem` | Amministratore cloud | 
| Importa il certificato. | Seleziona **Review and import** (Riconsulta e importa). Verifica che le informazioni sul certificato siano corrette, quindi scegli **Importa**. | Amministratore cloud | 

### Creazione di un Application Load Balancer
<a name="create-an-application-load-balancer"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea e configura il sistema di bilanciamento del carico e i listener. | Segui le istruzioni nella [documentazione di Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) per configurare un gruppo target, registrare i target e creare un Application Load Balancer e un listener. Aggiungi un secondo listener (HTTPS) per la porta 443. | Amministratore cloud | 

## risoluzione dei problemi
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Windows PowerShell non riconosce il comando OpenSSL anche dopo averlo aggiunto al percorso di sistema. | Assicurati `$env:path` che includa la posizione dei binari OpenSSL.In caso contrario, esegui il seguente comando in: PowerShell<pre>$env:path = $env:path + ";C:\OpenSSL-Win64\bin"</pre> | 

## Risorse correlate
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-resources"></a>

**Importazione di un certificato in ACM**
+ [Console ACM](https://console.aws.amazon.com/acm/home)
+ [Certificato e formato della chiave per l'importazione](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html)
+ [Importazione di un certificato](https://aws.amazon.com/blogs/security/how-to-import-pfx-formatted-certificates-into-aws-certificate-manager-using-openssl/)
+ [Guida per l'utente di AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)

**Creazione di un Application Load Balancer**
+ [Creare un Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [Guida per l'utente di Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)

# Esegui la migrazione di una coda di messaggistica da Microsoft Azure Service Bus ad Amazon SQS
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

## Riepilogo
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-summary"></a>

Questo modello descrive come migrare un'applicazione web.NET Framework o.NET Core o console dall'uso della piattaforma di messaggistica in coda Microsoft Azure Service Bus ad Amazon Simple Queue Service (Amazon SQS).

Le applicazioni utilizzano i servizi di messaggistica per inviare e ricevere dati da altre applicazioni. Questi servizi aiutano a creare microservizi, sistemi distribuiti e applicazioni serverless disaccoppiati e altamente scalabili nel cloud.

Le code dei bus di servizio di Azure fanno parte di un'infrastruttura di messaggistica di Azure più ampia che supporta l'accodamento e la messaggistica. publish/subscribe  

Amazon SQS è un servizio di accodamento dei messaggi completamente gestito che consente di disaccoppiare e scalare microservizi, sistemi distribuiti e applicazioni serverless. Amazon SQS elimina la complessità e il sovraccarico associati alla gestione e al funzionamento del middleware orientato ai messaggi e consente agli sviluppatori di concentrarsi sulla differenziazione del lavoro. Con Amazon SQS, puoi inviare, archiviare e ricevere messaggi tra componenti software a qualsiasi volume, senza perdere messaggi o richiedere la disponibilità di altri servizi.

## Prerequisiti e limitazioni
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Un'applicazione web o console DI.NET Framework o .NET Core che usa le code dei bus di servizio di Azure (codice di esempio allegato)

**Versioni del prodotto**
+ .NET Framework 3.5 o versione successiva oppure .NET Core 1.0.1, 2.0.0 o versione successiva

## Architecture
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-architecture"></a>

**Stack tecnologico di origine**
+ Un'applicazione web.NET (Core o Framework) o console che usa una coda del bus di servizio di Azure per inviare messaggi

 

**Stack tecnologico Target**
+ Amazon SQS

## Tools (Strumenti)
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**Strumenti**
+ Microsoft Visual Studio

**Codice**

Per creare una policy di AWS Identity and Access management (IAM) per Amazon SQS:

1. Accedi alla Console di gestione AWS, quindi apri la console di IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

2. Nel pannello di navigazione sulla sinistra, selezionare **Policies** (Policy) e fare clic su **Create Policy** (Crea policy).

3. Scegli la scheda **JSON** e incolla il seguente codice:

```
{
   "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. Scegli **Review policy**, digita un nome, quindi scegli **Crea policy**.

5. Collega la policy appena creata al tuo ruolo IAM esistente o crea un nuovo ruolo.

## Epiche
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-epics"></a>

### Configurare Amazon SQS in AWS
<a name="set-up-amazon-sqs-in-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per Amazon SQS. | Crea la policy IAM che fornirà l'accesso ad Amazon SQS. Consulta la sezione Codice per un esempio di policy. | Ingegnere di sistema | 
| Crea un profilo AWS. | Crea un nuovo profilo eseguendo AWS Tools for PowerShell command Set-AWSCredential. Questo comando memorizza la chiave di accesso e la chiave segreta nel file di credenziali predefinito sotto il nome del profilo specificato. Collega la policy Amazon SQS che hai creato in precedenza a questo account. Conserva l'ID della chiave di accesso AWS e la chiave di accesso segreta. Questi saranno necessari nei passaggi successivi. | Ingegnere di sistema | 
| Crea una coda SQS. | È possibile creare una coda standard o una coda FIFO (First In-First Out). Per istruzioni, consulta il link nella sezione Riferimenti. | Ingegnere di sistema | 

### Modifica il codice dell'applicazione.NET
<a name="revise-your-net-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS Toolkit per Visual Studio. | Questo toolkit è un'estensione per Microsoft Visual Studio e semplifica la creazione e la distribuzione di applicazioni.NET in AWS. Per istruzioni di installazione e utilizzo, consulta il link nella sezione Riferimenti. | Sviluppatore di applicazioni | 
| Installa il pacchetto AWSSDK .SQS. NuGet  | Puoi installare AWSSDK .SQS scegliendo «Manage NuGet Package» in Visual Studio o eseguendo il comando « AWSSDKInstall-Package .SQS». | Sviluppatore di applicazioni | 
| Crea un AWSCredentials oggetto nella tua applicazione.NET. | L'applicazione di esempio nell'allegato mostra come creare un AWSCredentials oggetto Basic, che eredita da AWSCredentials. È possibile utilizzare l'ID della chiave di accesso e la chiave di accesso segreta utilizzati in precedenza oppure lasciare che l'oggetto li scelga dalla cartella.aws come parte del profilo utente in fase di esecuzione. | Sviluppatore di applicazioni | 
| Crea un oggetto client SQS. | Crea un oggetto client SQS (AmazonSQSClient) per.NET Framework. Fa parte dello spazio dei nomi Amazon.sqs. Questo oggetto è richiesto al posto di IQueue Client, che fa parte di Microsoft.Azure. ServiceBus spazio dei nomi. | Sviluppatore di applicazioni | 
| Chiama il SendMessageAsync metodo per inviare messaggi alla coda SQS. | Cambia il codice che invia il messaggio alla coda per utilizzare il. amazonSqsClient SendMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 
| Chiama il ReceiveMessageAsync metodo per ricevere messaggi dalla coda SQS. | Cambia il codice che riceve il messaggio per utilizzare il. amazonSqsClient ReceiveMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 
| Chiama il DeleteMessageAsync metodo per eliminare i messaggi dalla coda SQS. | Per eliminare i messaggi, modifica il codice dal QueueClient. CompleteAsync metodo per. amazonSqsClient DeleteMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 

## Risorse correlate
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [Guida per gli sviluppatori dell'SDK AWS per .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Messaggistica tramite Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Creazione e utilizzo di una coda Amazon SQS con l'SDK AWS per.NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Inviare un messaggio Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Ricevi un messaggio da una coda Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Eliminazione di un messaggio da una coda Amazon SQS](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)

## Informazioni aggiuntive
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Questo modello include due applicazioni di esempio (consulta la sezione allegati):
+ **AzureSbTestApp**include codice che usa la coda del bus di servizio di Azure.
+ **AmazonSqsTestApp**utilizza Amazon SQS. Si tratta di un'applicazione console che utilizza.NET Core 2.2 e include esempi per l'invio e la ricezione di messaggi.

Note:
+ QueueClient è un oggetto di IQueue Client, che fa parte di Microsoft.Azure. ServiceBus namespace (incluso in Microsoft.Azure). ServiceBus NuGet pacchetto).
+ amazonSqsClient è un oggetto di AmazonSQSClient, che fa parte dello spazio dei nomi Amazon.sqs (incluso nel pacchetto.SQS). AWSSDK NuGet 
+ A seconda di dove è in esecuzione il codice, ad esempio se è in esecuzione EC2, il ruolo deve avere l'autorizzazione per scrivere nella coda SQS.

## Allegati
<a name="attachments-25334709-7000-4f60-87ed-ea41acb41a99"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)

# Esegui la migrazione di un database Oracle JD Edwards EnterpriseOne su AWS utilizzando Oracle Data Pump e 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*

## Riepilogo
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-summary"></a>

Puoi migrare ed eseguire il tuo database JD Edwards su [Amazon Relational EnterpriseOne Database Service (Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) RDS). Quando migri il tuo database su Amazon RDS, AWS può occuparsi delle attività di backup e della configurazione ad alta disponibilità, in modo che tu possa concentrarti sulla manutenzione EnterpriseOne dell'applicazione e delle sue funzionalità. Per un elenco completo dei fattori chiave da considerare durante il processo di migrazione, consulta [le strategie di migrazione del database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Esistono diversi modi per migrare un EnterpriseOne database, tra cui:
+ Utilizzo di Oracle Universal Batch Engine (UBE) R98403 per la creazione di schemi e tabelle e utilizzo di AWS Database Migration Service (AWS DMS) per la migrazione
+ Utilizzo di strumenti nativi DB per la creazione di schemi e tabelle e utilizzo di AWS DMS per la migrazione
+ Utilizzo di strumenti nativi DB per la migrazione di dati esistenti (a pieno carico) e utilizzo di AWS DMS per attività di change data capture (CDC)

Questo modello copre la terza opzione. Spiega come migrare i EnterpriseOne database locali su Amazon RDS for Oracle utilizzando Oracle Data Pump con [AWS DMS](https://aws.amazon.com/dms) e la sua funzionalità CDC.

[Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) è una soluzione ERP (Enterprise Resource Planning) per organizzazioni che producono, costruiscono, distribuiscono, forniscono assistenza o gestiscono prodotti o risorse fisiche. JD Edwards EnterpriseOne supporta vari hardware, sistemi operativi e piattaforme di database.

Quando si migrano applicazioni ERP critiche come JD Edwards EnterpriseOne, ridurre al minimo i tempi di inattività è fondamentale. AWS DMS riduce al minimo i tempi di inattività supportando sia la replica a pieno carico che quella continua dal database di origine al database di destinazione. AWS DMS fornisce anche monitoraggio e registrazione in tempo reale per la migrazione, che possono aiutarti a identificare e risolvere eventuali problemi che potrebbero causare interruzioni.

Quando replichi le modifiche con AWS DMS, devi specificare un orario o un numero di modifica del sistema (SCN) come punto di partenza per leggere le modifiche dai log del database. È fondamentale mantenere questi log accessibili sul server per un determinato periodo di tempo (consigliamo 15 giorni) per garantire che AWS DMS abbia accesso a queste modifiche.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un database Amazon RDS for Oracle fornito nel tuo ambiente cloud AWS come database di destinazione. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html).
+ Un EnterpriseOne database in esecuzione in locale o su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) su AWS.
**Nota**  
Questo modello è progettato per la migrazione da locale ad AWS, ma è stato testato utilizzando un EnterpriseOne database su un'istanza EC2. Se prevedi di migrare dal tuo ambiente locale, devi configurare la connettività di rete appropriata.
+ Dettagli dello schema. Identifica lo schema del database Oracle (ad esempio DV920) per cui intendi migrare. EnterpriseOne Prima di iniziare il processo di migrazione, raccogli i seguenti dettagli sullo schema:
  + Dimensioni dello schema
  + Il numero di oggetti per tipo di oggetto
  + Il numero di oggetti non validi

**Limitazioni**
+ Devi creare tutti gli schemi che desideri sul database Amazon RDS for Oracle di destinazione: AWS DMS non li crea per te. (La sezione [Epics](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics) descrive come utilizzare Data Pump per esportare e importare schemi.) Il nome dello schema deve già esistere per il database Oracle di destinazione. Le tabelle dello schema di origine vengono importate nell'utente o nello schema e AWS DMS utilizza l'account amministratore o di sistema per connettersi all'istanza di destinazione. Per migrare più schemi, puoi creare più attività di replica. Puoi anche migrare i dati verso schemi diversi su un'istanza di destinazione. A tale scopo, utilizza le regole di trasformazione dello schema sulle mappature delle tabelle AWS DMS.
+ Questo modello è stato testato con un set di dati dimostrativo. Ti consigliamo di convalidare la compatibilità del set di dati e della personalizzazione.
+ Questo modello utilizza un EnterpriseOne database in esecuzione su Microsoft Windows. Tuttavia, puoi utilizzare lo stesso processo con altri sistemi operativi supportati da AWS DMS.

## Architecture
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-architecture"></a>

Il diagramma seguente mostra un sistema in esecuzione EnterpriseOne su un database Oracle come database di origine e un database Amazon RDS for Oracle come database di destinazione. I dati vengono esportati dal database Oracle di origine e importati nel database Amazon RDS for Oracle di destinazione utilizzando Oracle Data Pump e replicati per gli aggiornamenti CDC utilizzando AWS DMS.

![\[Diagram showing data replication from on-premises Oracle to Amazon RDS using AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. Oracle Data Pump estrae i dati dal database di origine e i dati vengono inviati alla destinazione del database Amazon RDS for Oracle.

1. I dati CDC vengono inviati dal database di origine a un endpoint di origine in AWS DMS.

1. Dall'endpoint di origine, i dati vengono inviati all'istanza di replica AWS DMS, dove viene eseguita l'attività di replica.

1. Una volta completata l'attività di replica, i dati vengono inviati all'endpoint di destinazione in AWS DMS.

1. Dall'endpoint di destinazione, i dati vengono inviati all'istanza del database Amazon RDS for Oracle.

## Tools (Strumenti)
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-tools"></a>

**Servizi AWS**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle nel cloud AWS.

**Altri servizi**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ti aiuta a spostare dati e metadati da un database all'altro ad alta velocità.

## Best practice
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-best-practices"></a>

**Migrating LOBs** (Migrazione in corso)

Se il database di origine contiene oggetti binari di grandi dimensioni (LOBs) che devono essere migrati al database di destinazione, AWS DMS offre le seguenti opzioni:
+ **Modalità LOB completa**: AWS DMS migra tutto LOBs dal database di origine a quello di destinazione indipendentemente dalle dimensioni. Sebbene la migrazione sia più lenta rispetto alle altre modalità, il vantaggio è che i dati non vengono troncati. Per prestazioni migliori, è possibile creare un'attività separata sulla nuova istanza di replica per migrare le tabelle con dimensioni superiori a pochi LOBs megabyte.
+ **Modalità LOB limitata**: specifichi la dimensione massima dei dati delle colonne LOB, che consente ad AWS DMS di preallocare le risorse e applicarle in blocco. LOBs Se la dimensione delle colonne LOB supera la dimensione specificata nell'attività, AWS DMS tronca i dati e invia avvisi al file di registro di AWS DMS. È possibile migliorare le prestazioni utilizzando la modalità LOB limitata se la dimensione dei dati LOB rientra nella dimensione LOB limitata.
+ **Modalità LOB in linea**: è possibile migrare LOBs senza troncare i dati o rallentare le prestazioni dell'attività eseguendo repliche sia di piccole che di grandi dimensioni. LOBs Innanzitutto, specificate un valore per il `InlineLobMaxSize` parametro, che è disponibile solo quando la modalità LOB completa è impostata su. `true` Il task AWS DMS trasferisce le piccole operazioni LOBs in linea, il che è più efficiente. Quindi, AWS DMS migra i file di grandi dimensioni LOBs eseguendo una ricerca dalla tabella di origine. Tuttavia, la modalità LOB in linea funziona solo durante la fase di pieno carico.

**Generazione di valori di sequenza**

Durante il processo CDC di AWS DMS, i numeri di sequenza incrementali non vengono replicati dal database di origine. Per evitare discrepanze nei valori di sequenza, devi generare il valore di sequenza più recente dall'origine per tutte le sequenze e applicarlo al database Amazon RDS for Oracle di destinazione.

**AWS Secrets Manager**

Per aiutarti a gestire le tue credenziali, ti consigliamo di seguire le istruzioni contenute nel post del blog [Manage your AWS DMS endpoint Credentials with AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/).

**Prestazioni**
+ **Istanze di replica** ‒ Per indicazioni sulla scelta della dimensione migliore dell'istanza, consulta [Selezione della dimensione migliore per un'istanza di replica](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html) nella documentazione di AWS DMS.
+ **Opzioni di connettività** ‒ Per evitare problemi di latenza, ti consigliamo di scegliere l'opzione di connettività giusta. AWS Direct Connect fornisce il percorso più breve per accedere alle risorse AWS, poiché è una connessione dedicata tra i data center aziendali e AWS. Durante il transito, il traffico di rete rimane sulla rete globale AWS e non passa mai su Internet. In questo modo si riduce la possibilità di incorrere in rallentamenti o aumenti imprevisti della latenza rispetto all'utilizzo di una VPN o della rete Internet pubblica.
+ **Larghezza di banda di rete** ‒ Per ottimizzare le prestazioni, verificate che la velocità di trasmissione della rete sia elevata. Se utilizzi un tunnel VPN tra il database di origine locale e AWS DMS, assicurati che la larghezza di banda sia sufficiente per il tuo carico di lavoro.
+ **Parallelismo delle attività** ‒ È possibile accelerare la replica dei dati caricando più tabelle in parallelo durante il pieno carico. Questo modello utilizza gli endpoint RDBMS, quindi questa opzione si applica solo al processo di caricamento completo. Il parallelismo delle attività è controllato dal `MaxFullLoadSubTasks` parametro, che determina quante sottoattività a pieno carico vengono eseguite in parallelo. Per impostazione predefinita, questo parametro è impostato su 8, il che significa che otto tabelle (se selezionate nella mappatura delle tabelle) vengono caricate insieme durante la modalità completa. È possibile modificare questo parametro nella sezione delle impostazioni dell'attività a caricamento completo dello script JSON relativo all'attività.
+ **Parallelismo delle tabelle** ‒ AWS DMS consente inoltre di caricare un'unica tabella di grandi dimensioni utilizzando più thread paralleli. Ciò è particolarmente utile per le tabelle di origine Oracle che contengono miliardi di record oltre a più partizioni e sottopartizioni. Se la tabella di origine non è partizionata, puoi utilizzare i limiti delle colonne per i carichi paralleli.
+ **Suddividi i carichi** ‒ Quando dividi i carichi tra più attività o istanze AWS DMS, ricorda i limiti delle transazioni quando acquisisci le modifiche.

## Epiche
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics"></a>

### Usa Oracle Data Pump per esportare lo schema EnterpriseOne
<a name="use-oracle-data-pump-to-export-the-enterpriseone-schema"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera l'SCN. | Quando il database di origine è attivo e utilizzato dall' EnterpriseOne applicazione, avvia l'esportazione dei dati con Oracle Data Pump. È innanzitutto necessario generare un numero di modifica del sistema (SCN) dal database di origine sia per la coerenza dei dati durante l'esportazione con Oracle Data Pump sia come punto di partenza per CDC in AWS DMS.Per generare l'SCN corrente dal database di origine, utilizza la seguente istruzione SQL:<pre>SQL> select current_scn from v$database;<br /><br />CURRENT_SCN<br />-----------<br />   30009727</pre>Salva l'SCN generato. Utilizzerai l'SCN per esportare i dati e creare l'attività di replica AWS DMS. | DBA | 
| Crea il file dei parametri. | Per creare un file di parametri per l'esportazione dello schema, è possibile utilizzare il codice seguente.<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>Potete anche definirne uno personalizzato `DATA_PUMP_DIR` utilizzando i seguenti comandi, in base alle vostre esigenze.<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 | 
| Esporta lo schema. | Per eseguire l'esportazione, utilizzare l'`expdp`utilità come segue:<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 | 

### Utilizzare Oracle Data Pump per importare lo schema EnterpriseOne
<a name="use-oracle-data-pump-to-import-the-enterpriseone-schema"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci il file di dump nell'istanza di destinazione. | Per trasferire i file utilizzando l'`DBMS_FILE_TRANSFER`utilità, è necessario creare un collegamento al database dal database di origine all'istanza Amazon RDS for Oracle. Dopo aver stabilito il collegamento, puoi utilizzare l'utilità per trasferire i file Data Pump direttamente all'istanza Amazon RDS.In alternativa, puoi trasferire i file Data Pump [su Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) e quindi importarli nell'istanza Amazon RDS for Oracle. Per ulteriori informazioni su questa opzione, consulta la sezione [Informazioni aggiuntive](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional).Per creare un link al database `ORARDSDB` che si connette all'utente master di Amazon RDS nell'istanza DB di destinazione, esegui i seguenti comandi sul database di origine:<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 | 
| Prova il link al database. | Verifica il collegamento al database per assicurarti di poterti connettere al database di destinazione Amazon RDS for Oracle utilizzando`sqlplus`.<pre>SQL> select name from v$database@orardsdb;<br /><br />NAME<br />---------<br />ORCL<br /></pre> | DBA | 
| Trasferisci il file di dump nel database di destinazione. | Per copiare il file di dump nel database Amazon RDS for Oracle, puoi utilizzare la directory `DATA_PUMP_DIR` predefinita oppure creare una directory personalizzata utilizzando il codice seguente, che deve essere eseguito sull'istanza Amazon RDS di destinazione:<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'DMS_TARGET_PUMP_DIR');<br /><br />PL/SQL procedure successfully completed.</pre>Lo script seguente copia un file di dump denominato `EXPORT_DMS_DATA.DMP` dall'istanza di origine in un database Amazon RDS for Oracle di destinazione utilizzando il collegamento al database denominato. `orardsdb` È necessario eseguire lo script sull'istanza del database di origine.<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 | 
| Elenca il file di dump nel database di destinazione. | Una volta completata la PL/SQL procedura, puoi elencare il file di dump dei dati nel database Amazon RDS for Oracle utilizzando il codice seguente:<pre>select * from table (rdsadmin.rds_file_util.listdir(p_directory => 'DMS_TARGET_PUMP_DIR'));</pre> | DBA | 
| Crea utenti specifici per JDE nell'istanza di destinazione. | Crea un profilo e un ruolo JD Edwards utilizzando questi comandi nell'istanza di destinazione:<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>Concedi le autorizzazioni richieste al ruolo:<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 | 
| Crea tablespace nell'istanza di destinazione. | Crea i tablespace richiesti nell'istanza di destinazione utilizzando i seguenti comandi per gli schemi coinvolti in questa migrazione:<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 | 
| Avvia l'importazione sul database di destinazione. | Prima di iniziare il processo di importazione, configura ruoli, schemi e tablespace sul database Amazon RDS for Oracle di destinazione utilizzando il file di dump dei dati.Per eseguire l'importazione, accedi al database di destinazione con l'account utente principale di Amazon RDS e usa il nome della stringa di connessione nel `tnsnames.ora` file, che include Amazon RDS for Oracle Database. `tns-entry` Se necessario, puoi includere un'opzione di rimappatura per importare il file di dump dei dati in una tablespace diversa o con un nome di schema diverso.Per avviare l'importazione, utilizzate il codice seguente:<pre>impdp admin@orardsdb directory=DMS_TARGET_PUMP_DIR logfile=import.log dumpfile=EXPORT_DMS_DATA.DMP</pre>Per garantire una corretta importazione, controllate il file di log di importazione per eventuali errori ed esaminate i dettagli come il conteggio degli oggetti, il conteggio delle righe e gli oggetti non validi. Se sono presenti oggetti non validi, ricompilali. Inoltre, confrontate gli oggetti del database di origine e di destinazione per confermare che corrispondano. | DBA | 

### Esegui il provisioning di un'istanza di replica AWS DMS con gli endpoint di origine e di destinazione
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire il download del modello . | Scarica il modello AWS CloudFormation [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) per effettuare il provisioning dell'istanza di replica AWS DMS e dei relativi endpoint di origine e destinazione. | Amministratore del cloud, DBA | 
| Inizia la creazione dello stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Amministratore cloud, DBA | 
| Specificare i parametri. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Amministratore cloud, DBA | 
| Creare lo stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Il provisioning dovrebbe essere completato in circa 5-10 minuti. È completo quando la pagina AWS CloudFormation Stacks mostra **CREATE\$1COMPLETE**. | Amministratore cloud, DBA | 
| Configura gli endpoint. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Amministratore cloud, DBA | 
| Prova la connettività. | Dopo che gli endpoint di origine e di destinazione hanno mostrato lo stato come **Attivo**, verifica la connettività. Scegli **Esegui test** per ogni endpoint (origine e destinazione) per assicurarti che lo stato risulti positivo. | Amministratore cloud, DBA | 

### Crea un'attività di replica AWS DMS per la replica in tempo reale
<a name="create-an-aws-dms-replication-task-for-live-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'attività di replica. | Crea l'attività di replica di AWS DMS utilizzando i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Dopo aver creato l'attività, AWS DMS migra le modifiche in corso all'istanza del database Amazon RDS for Oracle dall'SCN fornito in modalità di avvio CDC. Puoi anche verificare la migrazione esaminando i log. CloudWatch  | Amministratore cloud, DBA | 
| Ripetere l'operazione di replica. | Ripeti i passaggi precedenti per creare attività di replica per altri schemi JD Edwards che fanno parte della migrazione. | Amministratore cloud, DBA, amministratore JDE CNC | 

### Convalida lo schema del database sul database Amazon RDS for Oracle di destinazione
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida il trasferimento dei dati. | Dopo l'avvio del task AWS DMS, puoi controllare la scheda **Table statistics** nella pagina **Tasks** per vedere le modifiche apportate ai dati.Puoi monitorare lo stato della replica in corso nella console nella pagina **Attività di migrazione del database**.Per ulteriori informazioni, consulta la [convalida dei dati di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Amministratore del cloud, DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Interrompi la replica. | Interrompere la procedura di replica e interrompere i servizi applicativi di origine. | Amministratore cloud, DBA | 
| Avvia l'applicazione JD Edwards. | Avvia la presentazione JD Edwards di destinazione e l'applicazione a livello logico su AWS e indirizzala al database Amazon RDS for Oracle.Quando accedi all'applicazione, dovresti notare che tutte le connessioni sono ora stabilite con il database Amazon RDS for Oracle. | Amministratore DBA, JDE CNC | 
| Disattiva il database di origine. | Dopo aver confermato che non ci sono più connessioni, puoi disattivare il database di origine. | DBA | 

## Risoluzione dei problemi
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Viene visualizzato un messaggio di avviso per abilitare la [registrazione supplementare nel database di](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) origine per la replica in corso | Immettete questi comandi per abilitare la registrazione supplementare:<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> | 
| AWS DMS ha disattivato la registrazione supplementare. | La registrazione supplementare è disattivata per impostazione predefinita in AWS DMS. Per attivarlo per un endpoint Oracle di origine:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| La registrazione supplementare non è abilitata a livello di CDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Viene visualizzato il messaggio di errore: «Test Endpoint failed: Application-Status: 1020912, Application-Message: non è supportato in ambiente Oracle PDB L'inizializzazione dell'endpoint non LogMiner è riuscita». | Se viene visualizzato questo messaggio di errore, è possibile utilizzare Binary Reader anziché. LogMinerIn **Impostazioni endpoint**, aggiungi questa riga agli attributi di connessione aggiuntivi per il tuo database di origine:<pre>useLogMinerReader=N;useBfile=Y;</pre> | 

## Risorse correlate
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-resources"></a>
+ [Guida introduttiva ad AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Best practice per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrazione dei database Oracle sul cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Riferimento al tipo di risorsa AWS Database Migration Service per AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DMS.html)
+ [Gestisci le credenziali degli endpoint AWS DMS con AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/)
+ [Risoluzione dei problemi di migrazione in AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle.RecordsMissing)
+ [Le migliori pratiche per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)

## Informazioni aggiuntive
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional"></a>

**Trasferimento di file tramite Amazon S3**

Per trasferire i file su Amazon S3, puoi utilizzare l'AWS CLI o la console Amazon S3. Dopo aver trasferito i file su Amazon S3, puoi utilizzare l'istanza Amazon RDS for Oracle per importare i file Data Pump da Amazon S3.

Se scegli di trasferire il file di dump utilizzando l'integrazione con Amazon S3 come metodo alternativo, procedi nel seguente modo:

1. Crea un bucket S3.

1. Esporta i dati dal database di origine utilizzando Oracle Data Pump.

1. Carica i file Data Pump nel bucket S3.

1. Scarica i file Data Pump dal bucket S3 al database Amazon RDS for Oracle di destinazione.

1. Esegui l'importazione utilizzando i file Data Pump.

**Nota**  
Per trasferire file di dati di grandi dimensioni tra istanze S3 e RDS, ti consigliamo di utilizzare la funzionalità [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html).

# Esegui la migrazione di un PeopleSoft database Oracle su AWS utilizzando AWS DMS
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms"></a>

*sampath kathirvel, Amazon Web Services*

## Riepilogo
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) è una soluzione ERP (Enterprise Resource Planning) per processi a livello aziendale. PeopleSoft ha un'architettura a tre livelli: client, applicazione e database. PeopleSoft può essere eseguito su [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)).

Se migri il tuo database Oracle su Amazon RDS, Amazon Web Services (AWS) può occuparsi delle attività di backup e dell'elevata disponibilità, lasciandoti libero di concentrarti sulla manutenzione PeopleSoft dell'applicazione e delle sue funzionalità. Per un elenco completo dei fattori chiave da considerare durante il processo di migrazione, consulta [le strategie di migrazione del database Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Questo modello fornisce una soluzione per la migrazione dei database Oracle locali su Amazon RDS for Oracle utilizzando Oracle Data Pump con [AWS Database Migration Service (AWS DMS) e la sua funzionalità di acquisizione dei dati di modifica (CDC)](https://aws.amazon.com/dms).

Durante la migrazione di applicazioni ERP critiche come PeopleSoft Oracle, è fondamentale ridurre al minimo i tempi di inattività. AWS DMS riduce al minimo i tempi di inattività supportando sia la replica a pieno carico che quella continua dal database di origine al database di destinazione. AWS DMS fornisce anche il monitoraggio e la registrazione in tempo reale della migrazione, che possono aiutarti a identificare e risolvere eventuali problemi che potrebbero causare tempi di inattività.

Quando si replicano le modifiche con AWS DMS, è necessario specificare un orario o un numero di modifica del sistema (SCN) come punto di partenza per consentire ad AWS DMS di leggere le modifiche dai log del database. È fondamentale mantenere questi log accessibili sul server per un determinato periodo di tempo per garantire che AWS DMS abbia accesso a queste modifiche.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-prereqs"></a>

**Prerequisiti**
+ Hai effettuato il provisioning del database Amazon RDS for Oracle nel tuo ambiente cloud AWS come database di destinazione.
+ Un PeopleSoft database Oracle in esecuzione in locale o su Amazon Elastic Compute Cloud (Amazon EC2) nel cloud AWS.
**Nota**  
Questo modello è progettato per la migrazione da locale ad AWS, ma è stato testato utilizzando Oracle Database su un' EC2 istanza Amazon. Per la migrazione da locale, dovrai configurare la connettività di rete appropriata.
+ Dettagli dello schema. Quando si esegue la migrazione di un' PeopleSoft applicazione Oracle ad Amazon RDS for Oracle, è necessario identificare lo schema di database Oracle (ad esempio`SYSADM`) da migrare. Prima di iniziare il processo di migrazione, raccogli i seguenti dettagli sullo schema:
  + Dimensione
  + Il numero di oggetti per tipo di oggetto
  + Il numero di oggetti non validi.

  Queste informazioni saranno utili nel processo di migrazione.

**Limitazioni**
+ Questo scenario è stato testato solo con il database PeopleSoft DEMO. Non è stato testato con un set di dati di grandi dimensioni.

## Architecture
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-architecture"></a>

Il diagramma seguente mostra un'istanza che esegue un database Oracle come database di origine e un database Amazon RDS for Oracle come database di destinazione. I dati vengono esportati e importati dal database Oracle di origine al database Amazon RDS for Oracle di destinazione utilizzando Oracle Data Pump e replicati per le modifiche CDC utilizzando AWS DMS.

![\[Processo in cinque fasi dall'istanza DB locale ad Amazon RDS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. La fase iniziale prevede l'estrazione dei dati dal database di origine utilizzando Oracle Data Pump, seguita dall'invio alla destinazione del database Amazon RDS for Oracle.

1. I dati vengono inviati dal database di origine a un endpoint di origine in AWS DMS.

1. Dall'endpoint di origine, i dati vengono inviati all'istanza di replica AWS DMS, dove viene eseguita l'attività di replica.

1. Una volta completata l'attività di replica, i dati vengono inviati all'endpoint di destinazione in AWS DMS.

1. Dall'endpoint di destinazione, i dati vengono inviati all'istanza del database Amazon RDS for Oracle.

## Tools (Strumenti)
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-tools"></a>

**Servizi AWS**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle nel cloud AWS.

**Altri servizi**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ti aiuta a spostare dati e metadati da un database all'altro a velocità elevate.

## Best practice
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-best-practices"></a>

**Migrating LOBs** (Migrazione in corso)

Se il database di origine contiene oggetti binari di grandi dimensioni (LOBs) che devono essere migrati al database di destinazione, AWS DMS offre le seguenti opzioni:
+ **Modalità LOB completa**: AWS DMS migra tutto LOBs dal database di origine a quello di destinazione indipendentemente dalle dimensioni. Sebbene la migrazione sia più lenta, il vantaggio è che i dati non vengono troncati. Per prestazioni migliori, è possibile creare un'attività separata sulla nuova istanza di replica per migrare le tabelle con dimensioni superiori a pochi megabyte. LOBs 
+ **Modalità LOB limitata**: specifichi la dimensione massima dei dati delle colonne LOB, che consente ad AWS DMS di preallocare le risorse e applicarle in blocco. LOBs Se la dimensione delle colonne LOB supera la dimensione specificata nell'attività, AWS DMS tronca i dati e invia avvisi al file di registro di AWS DMS. È possibile migliorare le prestazioni utilizzando la modalità LOB limitata se la dimensione dei dati LOB rientra nella dimensione LOB limitata.
+ **Modalità LOB in linea**: è possibile migrare LOBs senza troncare i dati o rallentare le prestazioni dell'attività eseguendo repliche sia di piccole che di grandi dimensioni. LOBs Innanzitutto, specificate un valore per il InlineLobMaxSize parametro, che è disponibile solo quando la modalità Full LOB è impostata su true. Il task AWS DMS trasferisce le piccole operazioni LOBs in linea, il che è più efficiente. Quindi, AWS DMS migra i file di grandi dimensioni LOBs eseguendo una ricerca dalla tabella di origine. Tuttavia, la modalità LOB in linea funziona solo durante la fase di pieno carico.

**Generazione di valori di sequenza**

Tieni presente che durante il processo di acquisizione dei dati di modifica con AWS DMS, i numeri di sequenza incrementali non vengono replicati dal database di origine. Per evitare discrepanze nei valori di sequenza, devi generare il valore di sequenza più recente dall'origine per tutte le sequenze e applicarlo al database Amazon RDS for Oracle di destinazione.

**Gestione delle credenziali**

Per proteggere le tue risorse AWS, ti consigliamo di seguire le [best practice](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) per AWS Identity and Access Management (IAM).

## Epiche
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-epics"></a>

### Esegui il provisioning di un'istanza di replica AWS DMS con gli endpoint di origine e di destinazione
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire il download del modello . | Scarica il CloudFormation modello AWS [DMS\$1Instance.yaml per effettuare il provisioning dell'istanza di replica AWS](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) DMS e dei relativi endpoint di origine e destinazione. | Amministratore cloud, DBA | 
| Inizia la creazione dello stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Amministratore cloud, DBA | 
| Specificare i parametri. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Amministratore cloud, DBA | 
| Creare lo stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Il provisioning dovrebbe essere completato in circa 5-10 minuti. È completo quando la pagina AWS CloudFormation Stacks mostra **CREATE\$1COMPLETE**. | Amministratore del cloud, DBA | 
| Configura gli endpoint. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Amministratore cloud, DBA | 
| Prova la connettività. | Dopo che gli endpoint di origine e di destinazione hanno mostrato lo stato Attivo, verifica la connettività. Scegli **Esegui test** per ogni endpoint (origine e destinazione) per assicurarti che lo stato risulti positivo. | Amministratore cloud, DBA | 

### Esporta lo PeopleSoft schema dal database Oracle locale utilizzando Oracle Data Pump
<a name="export-the-peoplesoft-schema-from-the-on-premises-oracle-database-by-using-oracle-data-pump"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera l'SCN. | Quando il database di origine è attivo e utilizzato dall'applicazione, avvia l'esportazione dei dati con Oracle Data Pump. È innanzitutto necessario generare un numero di modifica del sistema (SCN) dal database di origine sia per la coerenza dei dati durante l'esportazione con Oracle Data Pump sia come punto di partenza per l'acquisizione dei dati di modifica in AWS DMS.Per generare l'SCN corrente dal database di origine, inserisci la seguente istruzione 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>Salva l'SCN generato da utilizzare quando esporti i dati e per creare l'attività di replica AWS DMS. | DBA | 
| Crea il file dei parametri. | Per creare un file di parametri per l'esportazione dello schema, è possibile utilizzare il codice seguente.<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>Potete anche definirne uno personalizzato `DATA_PUMP_DIR` utilizzando i seguenti comandi, in base alle vostre esigenze.<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 | 
| Esporta lo schema. | Per eseguire l'esportazione, utilizzare l'`expdp`utilità.<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 | 

### Importa lo PeopleSoft schema nel database Amazon RDS for Oracle utilizzando Oracle Data Pump
<a name="import-the-peoplesoft-schema-into-the-amazon-rds-for-oracle-database-by-using-oracle-data-pump"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci il file di dump nell'istanza di destinazione. | Per trasferire i file utilizzando`DBMS_FILE_TRANSFER`, devi creare un collegamento al database dal database di origine all'istanza Amazon RDS for Oracle. Dopo aver stabilito il collegamento, puoi utilizzare l'utilità per trasferire i file Data Pump direttamente all'istanza RDS.In alternativa, puoi trasferire i file Data Pump [su Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) e quindi importarli nell'istanza Amazon RDS for Oracle. Per ulteriori informazioni su questa opzione, consulta la sezione Informazioni aggiuntive.Per creare un link al database `ORARDSDB` che si connette all'utente master di Amazon RDS nell'istanza DB di destinazione, esegui i seguenti comandi sul database di origine.<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 | 
| Prova il link al database. | Verifica il collegamento al database per assicurarti di poterti connettere utilizzando sqlplus al database di destinazione Amazon RDS for Oracle.<pre>SQL><br />SQL> select name from v$database@orardsdb;<br />NAME<br />---------<br />ORCL<br />SQL></pre> | DBA | 
| Trasferisci il file di dump nel database di destinazione. | Per copiare il file di dump sul database Amazon RDS for Oracle, puoi utilizzare la directory `DATA_PUMP_DIR` predefinita o creare la tua directory utilizzando il codice seguente.<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);</pre>Lo script seguente copia un file di dump denominato `export_dms_sample_data_01.dmp` dall'istanza di origine in un database Amazon RDS for Oracle di destinazione utilizzando il collegamento al database denominato. `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 | 
| Elenca il file di dump nel database di destinazione. | Una volta completata la PL/SQL procedura, puoi elencare il file di dump dei dati nel database Amazon RDS for Oracle utilizzando il codice seguente.<pre>SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));</pre> | DBA | 
| Avvia l'importazione sul database di destinazione. | Prima di iniziare il processo di importazione, configura ruoli, schemi e tablespace sul database Amazon RDS for Oracle di destinazione utilizzando il file di dump dei dati.Per eseguire l'importazione, accedi al database di destinazione con l'account utente principale di Amazon RDS e usa il nome della stringa di connessione nel `tnsnames.ora` file, che include Amazon RDS for Oracle Database. `tns-entry` Se necessario, puoi includere un'opzione di rimappatura per importare il file di dump dei dati in una tablespace diversa o con un nome di schema diverso.Per avviare l'importazione, utilizzate il codice seguente.<pre>impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp</pre>Per garantire una corretta importazione, controllate il file di log di importazione per eventuali errori ed esaminate i dettagli come il conteggio degli oggetti, il conteggio delle righe e gli oggetti non validi. Se sono presenti oggetti non validi, ricompilali. Inoltre, confrontate gli oggetti del database di origine e di destinazione per confermare che corrispondano. | DBA | 

### Crea un'attività di replica AWS DMS utilizzando CDC per eseguire la replica in tempo reale
<a name="create-an-aws-dms-replication-task-using-cdc-to-perform-live-replication"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'attività di replica. | Crea l'attività di replica di AWS DMS utilizzando i seguenti passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Dopo aver creato l'attività, migra il CDC all'istanza del database Amazon RDS for Oracle dall'SCN fornito in modalità di avvio CDC. Puoi anche verificare esaminando i log. CloudWatch  | Amministratore cloud, DBA | 

### Convalida lo schema del database sul database Amazon RDS for Oracle di destinazione
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida il trasferimento dei dati. | Dopo l'avvio del task AWS DMS, puoi controllare la scheda **Table statistics** nella pagina **Tasks** per vedere le modifiche apportate ai dati.Puoi monitorare lo stato della replica in corso nella console nella pagina **Attività di migrazione del database**.Per ulteriori informazioni, consulta la [convalida dei dati di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Amministratore del cloud, DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Interrompi la replica. | Interrompere la procedura di replica e interrompere i servizi applicativi di origine. | Amministratore cloud, DBA | 
| Avvia il livello PeopleSoft intermedio. | Avvia l'applicazione di livello PeopleSoft intermedio di destinazione in AWS e indirizzala al database Amazon RDS for Oracle recentemente migrato.Quando accedi all'applicazione, dovresti notare che tutte le connessioni alle app sono ora stabilite con il database Amazon RDS for Oracle. | DBA, amministratore PeopleSoft  | 
| Disattiva il database di origine. | Dopo aver verificato che non vi sono più connessioni al database di origine, è possibile disattivarlo. | DBA | 

## Risorse correlate
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-resources"></a>
+ [Guida introduttiva ad AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Best practice per AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migrazione dei database Oracle sul cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Informazioni aggiuntive
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-additional"></a>

**Trasferimento di file tramite Amazon S3**

Per trasferire i file su Amazon S3, puoi utilizzare l'AWS CLI o la console Amazon S3. Dopo aver trasferito i file su Amazon S3, puoi utilizzare l'istanza Amazon RDS for Oracle per importare i file Data Pump da Amazon S3.

Se scegli di trasferire il file di dump utilizzando l'integrazione con Amazon S3 come metodo alternativo, procedi nel seguente modo:

1. Crea un bucket S3.

1. Esporta i dati dal database di origine utilizzando Oracle Data Pump.

1. Carica i file Data Pump nel bucket S3.

1. Scarica i file Data Pump dal bucket S3 al database Amazon RDS for Oracle di destinazione.

1. Esegui l'importazione utilizzando i file Data Pump.

**Nota**  
Per trasferire file di dati di grandi dimensioni tra istanze S3 e RDS, si consiglia di utilizzare la funzionalità Amazon S3 Transfer Acceleration.

**Attiva la registrazione supplementare**

Se si riceve un messaggio di avviso per abilitare la [registrazione supplementare nel database di](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) origine per la replica continua, utilizzare la procedura seguente.

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

# Esegui la migrazione di un database MySQL locale su Amazon RDS for MySQL
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql"></a>

*Lorenzo Mota, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un database MySQL locale ad Amazon Relational Database Service (Amazon RDS) per MySQL. Il modello illustra l'uso di AWS Database Migration Service (AWS DMS) o di strumenti MySQL nativi **come** mysqldump per una migrazione completa del database. Questo modello è destinato principalmente agli architetti di soluzioni. DBAs Può essere utilizzato in progetti piccoli o grandi come procedura di test (consigliamo almeno un ciclo di test) o come procedura di migrazione finale. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-prereqs"></a>

**Prerequisiti**
+ Un AWS account attivo
+ Un database sorgente MySQL in un data center locale

**Limitazioni**
+ [Limite di dimensione del database: 64 TB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Versioni del prodotto**
+ Versioni MySQL 5.5, 5.6, 5.7, 8.0. Per l'elenco più recente delle versioni supportate, consulta [MySQL su Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) AWS RDS nella documentazione. Se lo stai utilizzando AWS DMS, vedi anche [Utilizzo di un database compatibile con MySQL come destinazione per le versioni di AWS DMS MySQL attualmente](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) supportate da. AWS DMS

## Architecture
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-architecture"></a>

**Stack di tecnologia di origine**
+ Un database MySQL locale

**Stack tecnologico Target**
+ Un'istanza database Amazon RDS che esegue MySQL

**Architettura Target**

Il diagramma seguente mostra l'implementazione di destinazione di Amazon RDS for MySQL dopo la migrazione.

![\[Scegli come target l'implementazione di Amazon RDS for MySQL dopo il cutover.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/2e10114e-e389-4d24-9b6a-fa56beee5369.png)


**AWS architettura di migrazione dei dati**

**Utilizzando AWS DMS:**

Il diagramma seguente mostra l'architettura di migrazione dei dati utilizzata AWS DMS per inviare modifiche complete e incrementali fino al cutover. La connessione di rete da locale a AWS dipende dalle esigenze dell'utente e non rientra nell'ambito di questo schema.

![\[Architettura di migrazione dei dati verso AWS quando usi AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/ecc9b282-1897-4971-99ed-83223b17000d.png)


**Utilizzo di strumenti MySQL nativi:**

Il diagramma seguente mostra l'architettura di migrazione dei dati quando si utilizzano strumenti MySQL nativi. I file di dump di esportazione vengono copiati su Amazon Simple Storage Service (Amazon S3) e importati nel database Amazon RDS for MySQL prima del cutover. AWS La connessione di rete da locale a AWS dipende dalle tue esigenze e non rientra nell'ambito di questo schema.

 

![\[Migrazione dei dati verso l'architettura AWS quando utilizzi strumenti MySQL nativi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/3bbec989-c3eb-473e-ba4a-032d6a4271c5.png)


**Note:**
+ A seconda dei requisiti di downtime e delle dimensioni del database, l'utilizzo AWS DMS o di uno strumento CDC (Change Data Capture) riduce al minimo i tempi di cutover. AWS DMS può aiutare a ridurre al minimo il tempo necessario per raggiungere il nuovo obiettivo (in genere minuti). Una strategia offline con **mysqldump** può essere sufficiente se le dimensioni del database e la latenza di rete consentono una finestra breve. (Si consiglia di eseguire il test per ottenere un orario approssimativo.)
+ Di solito una strategia CDC come quella AWS DMS richiede un monitoraggio e una complessità maggiori rispetto alle opzioni offline. 

## Tools (Strumenti)
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-tools"></a>
+ **Servizi AWS**: [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) consente di migrare gli archivi di dati verso Cloud AWS o tra combinazioni di configurazioni cloud e locali. Per informazioni sui database di origine e destinazione MySQL supportati AWS DMS da, [vedere Migrazione](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) di database compatibili con MySQL a. AWS Se il database di origine non è supportato da AWS DMS, è necessario scegliere un altro metodo per migrare i dati.
+ [Strumenti **MySQL nativi: mysqldump**](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+ **Strumenti di terze** [parti:](https://www.percona.com/software/mysql-database/percona-xtrabackup) Percona XtraBackup

## Epiche
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database. | Convalida le versioni del database di origine e di destinazione. | DBA | 
| Identifica i requisiti hardware. | Identifica i requisiti hardware per il server di destinazione. | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione. | Identifica i requisiti di storage (come il tipo e la capacità di storage) per il database di destinazione. | DBA, amministratore di sistema | 
| Scegliere il tipo di istanza. | Scegli il tipo di istanza di destinazione in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. | DBA, amministratore di sistema | 
| Identifica i requisiti di accesso alla rete. | Identifica i requisiti di sicurezza per l'accesso alla rete per i database di origine e di destinazione.  | DBA, amministratore di sistema | 
| Identifica gli oggetti non supportati. | Identifica gli oggetti non supportati (se presenti) e determina lo sforzo di migrazione. | DBA | 
| Identifica le dipendenze. | Identifica eventuali dipendenze dai database remoti. | DBA | 
| Determinare la strategia di migrazione delle applicazioni.  | Determinare la strategia per la migrazione delle applicazioni client.  | DBA, proprietario dell'app, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) | Configura tabelle di routing, gateway Internet, gateway NAT e sottoreti. Per ulteriori informazioni, consulta [VPCs Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) nella documentazione di Amazon RDS. | Amministratore di sistema | 
| Crea gruppi di sicurezza. | Configura porte e intervalli CIDR o specifici IPs a seconda delle tue esigenze. La porta predefinita per MySQL è 3306. Per ulteriori informazioni, consulta [Controllare l'accesso con gruppi di sicurezza](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) nella documentazione di Amazon RDS. | Amministratore di sistema | 
| Configura e avvia un'istanza DB Amazon RDS for MySQL. | Per istruzioni, consulta [Creazione di un'istanza database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateInstance.html) nella documentazione di Amazon RDS. Verifica le versioni supportate. | Amministratore di sistema | 

### Migrazione dei dati ‒ opzione 1 (utilizzando strumenti nativi)
<a name="migrate-data-option-1-using-native-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti MySQL nativi o strumenti di terze parti per migrare oggetti e dati del database. | [Per istruzioni, consulta la documentazione degli strumenti MySQL [come](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) mysqldump e Percona (per la migrazione fisica). XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup) Per ulteriori informazioni sulle opzioni, consulta il post del blog [Opzioni di migrazione per MySQL ad Amazon RDS for MySQL o Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/migration-options-for-mysql-to-amazon-rds-for-mysql-or-amazon-aurora-mysql/). | DBA | 

### Migrazione dei dati ‒ opzione 2 (utilizzando) AWS DMS
<a name="migrate-data-option-2-using-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione dei dati con AWS DMS. | Per istruzioni, consulta la [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html). | DBA | 

### Esegui le attività preliminari prima del cutover
<a name="perform-preliminary-tasks-before-cutover"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Corregge le discrepanze nel conteggio degli oggetti. | Raccogli il conteggio degli oggetti dal database di origine e dal nuovo database di destinazione. Correggi le discrepanze nel database di destinazione. | DBA | 
| Controlla le dipendenze. | Verifica se le dipendenze (collegamenti) da e verso altri database sono valide e funzionano come previsto. | DBA | 
| Esegui dei test. | Se si tratta di un ciclo di test, esegui test delle query, raccogli metriche e risolvi i problemi. | DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Passa al database di destinazione. | Passa le applicazioni client alla nuova infrastruttura. | DBA, proprietario dell'app, amministratore di sistema | 
| Fornisci supporto per i test. | Fornire supporto per i test funzionali delle applicazioni.  | DBA | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse. | Chiudi le AWS risorse temporanee che hai creato per la migrazione.  | DBA, amministratore di sistema | 
| Convalida i documenti del progetto.  | Rivedi e convalida i documenti del progetto.  | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli le metriche. | Raccogli parametri come il tempo necessario per la migrazione, la percentuale di sforzi manuali rispetto a quelli automatizzati, i risparmi sui costi e così via. | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto.  | Chiudi il progetto e fornisci feedback.  | DBA, proprietario dell'app, amministratore di sistema | 
| Disattiva il database di origine. | Una volta completate tutte le attività di migrazione e cutover, disattivate il database locale. | DBA, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-resources"></a>

**Riferimenti**
+ [Strategia di migrazione per database relazionali](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/welcome.html)
+ [AWS DMS website](https://aws.amazon.com/dms/)
+ [AWS DMS documentazione](https://docs.aws.amazon.com/dms/)
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Amazon VPC e Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Implementazioni Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/)
+ [Esegui la migrazione dei database MySQL locali su Aurora MySQL utilizzando Percona, Amazon EFS e Amazon S3 XtraBackup](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)
+ [Archiviazione delle istanze database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Tutorial**
+ [Guida introduttiva con AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server"></a>

*Henrique Lobao, Jonathan Pereira Cruz e Vishal Singh, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-summary"></a>

Questo modello fornisce indicazioni per la migrazione da un database Microsoft SQL Server locale ad Amazon Relational Database Service (Amazon RDS) per SQL Server. Descrive due opzioni per la migrazione: utilizzando AWS Data Migration Service (AWS DMS) o utilizzando strumenti nativi di Microsoft SQL Server come Copy Database Wizard.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Microsoft SQL Server di origine in un data center locale

**Limitazioni**
+ Limite di dimensione del database: 16 TB

**Versioni del prodotto**
+ Per l'elenco più recente delle versioni e delle funzionalità supportate, consulta [Microsoft SQL Server su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) nella documentazione AWS. Se utilizzi AWS DMS, consulta anche [Utilizzo di un database Microsoft SQL Server come destinazione per le versioni di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html) per SQL Server supportate da AWS DMS. 

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-architecture"></a>

**Stack tecnologico di origine**
+ Un database Microsoft SQL Server locale

**Stack tecnologico Target**
+ Un'istanza DB di Amazon RDS per SQL Server 

**Architettura di origine e destinazione**

*Utilizzo di AWS DMS:*

![\[Architettura per la migrazione da SQL Server locale ad Amazon RDS utilizzando AWS DMS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/69b9877c-2d56-4d64-8475-a3dae789c5de.png)


*Utilizzo di strumenti nativi di SQL Server:*

![\[Architettura per la migrazione da SQL Server locale ad Amazon RDS utilizzando strumenti SQL Server\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/45ee14e4-3c7e-4b35-a2c9-3e8e3c7e6cee.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) supporta diversi tipi di database di origine e destinazione. Per i dettagli, consulta le procedure [ Step-by-Stepdettagliate di AWS DMS](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html). Se AWS DMS non supporta il database di origine, seleziona un altro metodo per la migrazione dei dati. 
+ Gli strumenti nativi di Microsoft SQL Server includono il backup e il ripristino, la procedura guidata di copia del database, la copia e il collegamento del database.

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione e il motore del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, amministratore di sistema | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, amministratore di sistema | 
| Identifica la strategia di migrazione delle applicazioni. |  | DBA, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  | Amministratore di sistema | 
| Crea gruppi di sicurezza. |  | Amministratore di sistema | 
| Configura e avvia un'istanza database Amazon RDS. |  | DBA, amministratore di sistema | 

### Migrazione dei dati - opzione 1
<a name="migrate-data---option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti nativi di SQL Server o strumenti di terze parti per migrare oggetti e dati del database. |  | DBA | 

### Migrazione dei dati - opzione 2
<a name="migrate-data---option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra i dati con AWS DMS. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli parametri come il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle automatizzate e il risparmio sui costi. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto e fornisci feedback. |  | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-resources"></a>

**Riferimenti**
+ [Implementazione di Microsoft SQL Server su Amazon Web Services](https://d1.awsstatic.com/whitepapers/RDS/Deploying_SQLServer_on_AWS.pdf) 
+ [Sito web AWS DMS](https://aws.amazon.com/dms/)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)
+ [Prodotti Microsoft su AWS](https://aws.amazon.com/windows/products/)
+ [Licenze Microsoft su AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server su AWS](https://aws.amazon.com/windows/products/sql/)
+ [Utilizzo dell'autenticazione di Windows con un'istanza DB di Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html)
+ [Implementazioni Multi-AZ di Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)

**Tutorial e video**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (video)](https://www.youtube.com/watch?v=igRfulrrYCo)  

# Esegui la migrazione dei dati da Microsoft Azure Blob ad Amazon S3 utilizzando 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*

## Riepilogo
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-summary"></a>

Questo modello descrive come usare [Rclone](https://rclone.org/) per migrare i dati dallo storage di oggetti Microsoft Azure Blob a un bucket Amazon Simple Storage Service (Amazon S3). È possibile utilizzare questo modello per eseguire una migrazione una tantum o una sincronizzazione continua dei dati. Rclone è un programma a riga di comando scritto in Go e viene utilizzato per spostare i dati tra varie tecnologie di archiviazione dei provider di cloud.

## Prerequisiti e limitazioni
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Dati archiviati nel servizio contenitore Azure Blob

## Architecture
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-architecture"></a>

**Stack tecnologico di origine**
+ Contenitore di archiviazione Azure Blob

**Stack tecnologico Target**
+ Bucket Amazon S3
+ Istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux

**Architettura**

![\[Migrazione dei dati da Microsoft Azure ad Amazon S3\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)


## Tools (Strumenti)
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-tools"></a>
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Rclone è un programma](https://rclone.org/) **a riga di comando open source ispirato a rsync.** Viene utilizzato per gestire i file su molte piattaforme di archiviazione cloud.

## Best practice
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-best-practices"></a>

Quando esegui la migrazione dei dati da Azure ad Amazon S3, tieni presente queste considerazioni per evitare costi inutili o velocità di trasferimento lente:
+ Crea la tua infrastruttura AWS nella stessa regione geografica dell'account di archiviazione di Azure e del contenitore Blob, ad esempio, la `us-east-1` regione AWS (Virginia settentrionale) e la regione Azure. `East US`
+ Se possibile, evita di usare NAT Gateway, perché comporta costi di trasferimento dei dati sia per la larghezza di banda in ingresso che in uscita.
+ Usa un [endpoint gateway VPC per Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) per aumentare le prestazioni.
+ Prendi in considerazione l'utilizzo di un' EC2 istanza basata su processore AWS Graviton2 (ARM) per costi inferiori e prestazioni più elevate rispetto alle istanze Intel x86. Rclone è fortemente compilato in modo incrociato e fornisce un binario ARM precompilato.

## Epiche
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-epics"></a>

### Prepara le risorse cloud AWS e Azure
<a name="prepare-aws-and-azure-cloud-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prepara un bucket S3 di destinazione. | [Crea un nuovo bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella regione AWS appropriata o scegli un bucket esistente come destinazione per i dati che desideri migrare. | Amministratore AWS | 
| Crea un ruolo di istanza IAM per Amazon EC2. | [Crea un nuovo ruolo AWS Identity and Access Management (IAM) per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles). Questo ruolo fornisce all' EC2 istanza l'accesso in scrittura al bucket S3 di destinazione. | Amministratore AWS | 
| Allega una policy al ruolo dell'istanza IAM. | Utilizza la console IAM o AWS Command Line Interface (AWS CLI) per creare una policy in linea per EC2 il ruolo dell'istanza che consente le autorizzazioni di accesso in scrittura al bucket S3 di destinazione. [Per un esempio di policy, consulta la sezione Informazioni aggiuntive.](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional) | Amministratore AWS | 
| Avvia un' EC2 istanza. | Avvia un' EC2 istanza Amazon Linux configurata per utilizzare il ruolo di servizio IAM appena creato. Questa istanza dovrà inoltre accedere agli endpoint delle API pubbliche di Azure tramite Internet. Prendi in considerazione l'utilizzo di [ EC2 istanze basate su AWS Graviton](https://docs.aws.amazon.com/compute-optimizer/latest/ug/graviton-recommendations.html) per ridurre i costi. Rclone fornisce file binari compilati da ARM. | Amministratore AWS | 
| Crea un responsabile del servizio Azure AD. | Usa l'interfaccia della riga di comando di Azure per creare un servizio principale di Azure Active Directory (Azure AD) con accesso in sola lettura al contenitore di archiviazione Azure Blob di origine. [Per istruzioni, vedere la sezione Informazioni aggiuntive.](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional) Archivia queste credenziali sulla tua EC2 istanza nella posizione`~/azure-principal.json`. | Amministratore cloud, Azure | 

### Installa e configura Rclone
<a name="install-and-configure-rclone"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica e installa Rclone.  | Scarica e installa il programma da riga di comando Rclone. [Per le istruzioni di installazione, consulta la documentazione di installazione di Rclone.](https://rclone.org/install/) | AWS generale, amministratore del cloud | 
| Configura Rclone. | Copia il seguente file di `rclone.conf` esempio. `AZStorageAccount`Sostituiscilo con il nome del tuo account di archiviazione di Azure e `us-east-1` con la regione AWS in cui si trova il bucket S3. Salva questo file nella posizione dell'istanza`~/.config/rclone/rclone.conf`. EC2 <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 generale, amministratore del cloud | 
| Verifica la configurazione di Rclone. | Per confermare che Rclone sia configurato e che le autorizzazioni funzionino correttamente, verifica che Rclone sia in grado di analizzare il file di configurazione e che gli oggetti all'interno del contenitore Azure Blob e del bucket S3 siano accessibili. Vedi quanto segue, ad esempio, i comandi di convalida.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html) | AWS generale, amministratore del cloud | 

### Migra i dati utilizzando Rclone
<a name="migrate-data-using-rclone"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra i dati dai tuoi contenitori. | [Esegui il comando Rclone [copy or sync](https://rclone.org/commands/rclone_copy/).](https://rclone.org/commands/rclone_sync/)  **Esempio: copia**Questo comando copia i dati dal contenitore Azure Blob di origine al bucket S3 di destinazione.<pre>rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>**Esempio: sync**Questo comando sincronizza i dati tra il contenitore Azure Blob di origine e il bucket S3 di destinazione. ****<pre>rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>Quando usi il comando **sync**, i dati che non sono presenti nel contenitore di origine verranno eliminati dal bucket S3 di destinazione. | AWS generale, amministratore del cloud | 
| Sincronizza i tuoi contenitori.  | Una volta completata la copia iniziale, esegui il comando Rclone **sync** per la migrazione in corso in modo che vengano copiati solo i nuovi file mancanti dal bucket S3 di destinazione. | AWS generale, amministratore del cloud | 
| Verifica che i dati siano stati migrati correttamente.  | [https://rclone.org/commands/rclone_lsd/](https://rclone.org/commands/rclone_lsd/) | AWS generale, amministratore del cloud | 

## Risorse correlate
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-resources"></a>
+ [Guida per l'utente di Amazon S3 (documentazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) AWS)
+ [Ruoli IAM per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) (documentazione AWS)
+ [Creazione di un contenitore Microsoft Azure Blob (documentazione](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) di Microsoft Azure)
+ [Comandi Rclone (documentazione Rclone](https://rclone.org/commands/))

## Informazioni aggiuntive
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional"></a>

**Esempio di politica di ruolo per le istanze EC2 **

Questa politica offre all' EC2 istanza l'accesso in lettura e scrittura a un bucket specifico del tuo account. Se il bucket utilizza una chiave gestita dal cliente per la crittografia lato server, la policy potrebbe richiedere un accesso aggiuntivo ad 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:::*"
        }    
    ]
}
```

**Creazione di un principale di servizio Azure AD di sola lettura**

Un service principal di Azure è un'identità di sicurezza usata dalle applicazioni, dai servizi e dagli strumenti di automazione dei clienti per accedere a risorse di Azure specifiche. Pensala come un'identità utente (login e password o certificato) con un ruolo specifico e autorizzazioni strettamente controllate per accedere alle tue risorse. Per creare un servizio principale di sola lettura che utilizzi le autorizzazioni con privilegi minimi e protegga i dati in Azure da eliminazioni accidentali, segui questi passaggi: 

1. Accedi al portale del tuo account cloud Microsoft Azure e avvia Cloud Shell PowerShell o usa l'interfaccia a riga di comando (CLI) di Azure sulla tua workstation.

1. Crea un service principal e configuralo con accesso in sola lettura al tuo account di archiviazione [Azure Blob](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader). Salva l'output JSON di questo comando in un file locale chiamato. `azure-principal.json` Il file verrà caricato sulla tua EC2 istanza. Sostituisci le variabili segnaposto mostrate tra parentesi quadre (`{`e`}`) con l'ID di sottoscrizione di Azure, il nome del gruppo di risorse e il nome dell'account di archiviazione.

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

# Migrazione da Couchbase Server a Couchbase Capella su AWS
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws"></a>

*Battulga Purevragcha e Saurabh Shanbhag, Amazon Web Services*

*Mark Gamble, Nessuno*

## Riepilogo
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-summary"></a>

Couchbase Capella è un database NoSQL come servizio (DBaaS) completamente gestito per applicazioni mission critical (ad esempio, profili utente o cataloghi online e gestione dell'inventario). Couchbase Capella gestisce il tuo carico di lavoro DBaa S in un account Amazon Web Services (AWS) gestito da Couchbase. Capella semplifica l'esecuzione e la gestione della replica su più cluster, più regioni AWS, multicloud e cloud ibrido all'interno di un'unica interfaccia.

Couchbase Capella ti aiuta a scalare istantaneamente le tue applicazioni Couchbase Server, aiutandoti a creare cluster multinodo in pochi minuti. [https://www.couchbase.com/products/full-text-search](https://www.couchbase.com/products/full-text-search) Inoltre elimina la necessità di gestire installazioni, aggiornamenti, backup e manutenzione generale del database. 

Questo modello descrive i passaggi e le migliori pratiche per la migrazione di un ambiente [Couchbase Server autogestito al cloud AWS](https://www.couchbase.com/products/server). Il modello fornisce un processo ripetibile per la migrazione di dati e indici dai cluster di Couchbase Server, in esecuzione in locale o nel cloud, a Couchbase Capella. L'utilizzo di questi passaggi consente di evitare problemi durante la migrazione e velocizza il processo di migrazione complessivo.

Questo modello fornisce le due opzioni di migrazione seguenti:
+ **L'opzione 1** è appropriata se avete meno di 50 indici da migrare. 
+ **L'opzione 2** è appropriata se avete più di 50 indici da migrare. 

Puoi anche [configurare dati di esempio](https://docs.couchbase.com/server/current/manage/manage-settings/install-sample-buckets.html) sul tuo Couchbase Server autogestito da seguire insieme alla guida alla migrazione.

*Se scegli **l'opzione di migrazione 2** o se utilizzi ambiti o raccolte diversi dal valore predefinito, devi utilizzare il file di configurazione di esempio, che si trova nella sezione Informazioni aggiuntive.*

## Prerequisiti e limitazioni
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-prereqs"></a>

**Prerequisiti**
+ Un account a pagamento Couchbase Capella esistente. Puoi anche creare un [account Couchbase Capella su AWS](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) e utilizzare la versione di prova gratuita di Couchbase Capella, quindi passare a un account a pagamento per configurare il cluster per la migrazione. [Per iniziare con la versione di prova, segui le istruzioni contenute in Getting Started with Couchbase Capella.](https://docs.couchbase.com/cloud/get-started/create-account.html)
+ Un ambiente Couchbase Server esistente autogestito in locale o distribuito su un provider di servizi cloud. 
+ Per l'opzione di migrazione 2, Couchbase Shell e un file di configurazione. Per creare il file di configurazione, puoi utilizzare il file di esempio che si trova nella sezione *Informazioni aggiuntive*.
+ Familiarità con l'amministrazione di Couchbase Server e Couchbase Capella.
+ Familiarità con l'apertura di porte TCP e l'esecuzione di comandi in un'interfaccia a riga di comando (CLI).

Il processo di migrazione richiede anche i ruoli e le competenze descritti nella tabella seguente.


| 
| 
| Ruolo | Competenza | Responsabilità | 
| --- |--- |--- |
| Amministratore di Couchbase | Familiarità con Couchbase Server e Couchbase CapellaLa conoscenza di base della riga di comando è utile ma non richiesta | Attività specifiche di Couchbase Server e Capella | 
| Amministratore di sistema, amministratore IT | Familiarità con l'ambiente e l'amministrazione del sistema Couchbase Server autogestiti | Apertura delle porte e determinazione degli indirizzi IP sui nodi del cluster Couchbase Server autogestiti | 

 

**Limitazioni**
+ Questo modello viene utilizzato per migrare dati, indici e indici Couchbase [Full Text Search da Couchbase Server](https://docs.couchbase.com/server/current/fts/full-text-intro.html) a Couchbase Capella su AWS. [https://docs.couchbase.com/server/current/eventing/eventing-overview.html](https://docs.couchbase.com/server/current/eventing/eventing-overview.html)
+ Couchbase Capella è disponibile in diverse regioni AWS. Per up-to-date informazioni sulle regioni supportate da Capella, consulta [Amazon Web Services nella documentazione](https://docs.couchbase.com/cloud/reference/aws.html) di Couchbase.

**Versioni del prodotto**
+ [Couchbase Server (Community o Enterprise) Edition versione 5.x o successiva](https://docs.couchbase.com/server/current/release-notes/relnotes.html)

## Architecture
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-architecture"></a>

**Stack tecnologico di origine**
+ Server Couchbase

**Stack tecnologico Target**
+ Divano Capella

**Architettura Target**

![\[Migrazione di Couchbase Capella al cluster Couchbase nel piano dati Capella su AWS in quattro passaggi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/14ac5a81-eade-4708-9335-f5602fa07824/images/95cd7f33-742e-4d10-8e2c-37c7b4d9df45.png)


1. **Puoi accedere a Couchbase Capella utilizzando il Capella Control Plane.** È possibile utilizzare il Capella Control Plane per effettuare le seguenti operazioni:
   + Controlla e monitora il tuo account.
   + Gestisci cluster e dati, indici, utenti e gruppi, autorizzazioni di accesso, monitoraggio ed eventi.

1. I cluster vengono creati.

1. Il **Capella Data Plane** si trova nell'account AWS gestito da Couchbase. Dopo aver creato un nuovo cluster, Couchbase Capella lo distribuisce su più zone di disponibilità nella regione AWS selezionata.

1. Puoi sviluppare e distribuire applicazioni Couchbase in un VPC nel tuo account AWS. [In genere, questo VPC accede al Capella Data Plane tramite peering VPC.](https://docs.couchbase.com/cloud/clouds/private-network.html)

## Tools (Strumenti)
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-tools"></a>
+ [Couchbase Cross Data Center Replication (XDCR) aiuta a replicare](https://docs.couchbase.com/cloud/current/clusters/xdcr/xdcr.html) i dati tra cluster che si trovano in diversi provider di cloud e diversi data center. Viene utilizzato per migrare i dati in Couchbase Capella da cluster Couchbase Server autogestiti.
**Nota**  
XDCR non può essere utilizzato con Couchbase Server Community Edition per migrare a Couchbase Capella. Invece[, puoi](https://docs.couchbase.com/server/current/tools/cbexport.html) usare cbexport. Per ulteriori informazioni, consulta l'epic *Migrazione dei dati dalla Community Edition*.
+ [Couchbase Shell è una shell](https://couchbase.sh/docs/) a riga di comando per Couchbase Server e Couchbase Capella per accedere ai cluster Couchbase locali e remoti. In questo modello, Couchbase Shell viene utilizzata per migrare gli indici.
+ [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html) è un'utilità Couchbase per l'esportazione di dati dal cluster Couchbase. Incluso negli strumenti [CLI di Couchbase Server](https://docs.couchbase.com/server/current/cli/cli-intro.html).

## Epiche
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-epics"></a>

### Prepara la migrazione
<a name="prepare-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Valuta le dimensioni del cluster Couchbase Server autogestito. | Accedi alla [Couchbase Web Console per Couchbase](https://docs.couchbase.com/server/current/manage/manage-ui/manage-ui.html) Server e valuta i nodi e i bucket del cluster autogestito. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Utilizzerai le configurazioni del cluster Couchbase Server autogestite come guida generale per il dimensionamento e la configurazione del cluster di destinazione su Couchbase Capella.[Per assistenza con un esercizio di dimensionamento di Couchbase Capella più dettagliato, contatta Couchbase.](https://www.couchbase.com/contact) | Amministratore di Couchbase | 
| Registra la distribuzione del servizio Couchbase sul cluster Couchbase Server autogestito.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 
| Registra gli indirizzi IP dei nodi del cluster Couchbase Server autogestiti. | (Ignora questo passaggio se utilizzi Community Edition.) Registra l'indirizzo IP per ogni nodo del cluster. Verranno aggiunti all'elenco degli utenti consentiti sul cluster Couchbase Capella in un secondo momento. | Amministratore di Couchbase, amministratore di sistema | 

### Distribuisci e configura le risorse su Couchbase Capella
<a name="deploy-and-configure-resources-on-couchbase-capella"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scegliere un modello. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 
| Scegli e configura i nodi. | Scegli e configura i nodi in modo che corrispondano al tuo ambiente cluster Couchbase Server autogestito, inclusi il numero di nodi, la distribuzione dei servizi, l'elaborazione o la RAM e lo storage.[Couchbase Capella utilizza le migliori pratiche di scalabilità multidimensionale.](https://docs.couchbase.com/cloud/clusters/scale-cluster.html#scale-a-cluster) I servizi e i nodi possono essere scelti solo in base alle migliori pratiche di implementazione. Ciò potrebbe significare che non è possibile abbinare esattamente le configurazioni del cluster Couchbase Server autogestito. | Amministratore di Couchbase | 
| Implementa il cluster. | Scegli una zona di supporto e un pacchetto di supporto, quindi distribuisci il cluster. Per passaggi e istruzioni dettagliati, consulta [Creare un cluster nella documentazione](https://docs.couchbase.com/cloud/clusters/create-cluster.html) di Couchbase.Se utilizzi la versione di prova gratuita di Couchbase Capella, devi convertirla in un account a pagamento prima di iniziare la migrazione. **Per convertire il tuo account, apri la sezione **Fatturazione** del piano di controllo di Couchbase Capella, quindi scegli Aggiungi ID di attivazione.** [L'ID di attivazione viene inviato al tuo indirizzo email di contatto per la fatturazione dopo aver completato un contratto di acquisto con Couchbase Sales o dopo aver effettuato un acquisto tramite AWS Marketplace.](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) | Amministratore di Couchbase | 
| Crea un utente di credenziali del database.  | Un utente di credenziali del database è specifico di un cluster ed è composto da un nome utente, una password e un set di privilegi del bucket. Questo utente è necessario per creare bucket e accedere ai dati dei bucket. Nel piano di controllo di Couchbase Capella, crea una credenziale di database per il nuovo cluster seguendo le istruzioni in [Configurare le credenziali del database](https://docs.couchbase.com/cloud/clusters/manage-database-users.html) nella documentazione di Couchbase Capella.A un utente dell'organizzazione devono essere assegnate le credenziali del ruolo organizzativo se desidera accedere ai dati dei bucket su un particolare cluster, in remoto o tramite l'interfaccia utente di Couchbase Capella. Questo è separato dalle credenziali del database, che vengono in genere utilizzate da app e integrazioni. La creazione dell'utente organizzativo ti consente di creare e gestire i bucket di destinazione sul tuo cluster Couchbase Capella. | Amministratore di Couchbase | 
| Se utilizzi l'opzione di migrazione 2, installa Couchbase Shell. | Puoi installare Couchbase Shell su qualsiasi sistema che abbia accesso di rete sia al tuo Couchbase Server autogestito che ai cluster Couchbase Capella. Per ulteriori informazioni, consulta [Installa Couchbase Shell versione 1.0.0-beta.5 nella documentazione di Couchbase Shell](https://couchbase.sh/docs/#_installation).Verifica che Couchbase Shell sia installato [testando una connessione al cluster autogestito in un](https://couchbase.sh/docs/#_connecting_to_a_cluster) terminale a riga di comando. | Amministratore di Couchbase, amministratore di sistema | 
| Consenti indirizzi IP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Per ulteriori informazioni sugli indirizzi IP consentiti, consulta [Configurare gli indirizzi IP consentiti](https://docs.couchbase.com/cloud/get-started/configure-cluster-access.html#allow-ip-address) nella documentazione di Couchbase. | Amministratore di Couchbase, Amministratore di sistema | 
| Configura i certificati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase, amministratore di sistema | 
| Crea il file di configurazione per Couchbase Shell. | Crea un dotfile di configurazione nella home directory dell'installazione di Couchbase Shell (ad esempio,). `/<HOME_DIRECTORY>/.cbsh/config` Per ulteriori informazioni, consulta [Config dotfiles](https://couchbase.sh/docs/#_the_config_dotfiles) nella documentazione di Couchbase.Aggiungi le proprietà di connessione per i cluster di origine e di destinazione al file di configurazione. Puoi utilizzare il file di configurazione di esempio che si trova nella sezione *Informazioni aggiuntive* e modificare le impostazioni per i tuoi cluster. Salva il file di configurazione con le impostazioni aggiornate nella `.cbsh` cartella (ad esempio,`/<HOME_DIRECTORY>/.cbsh/config`). | Amministratore di Couchbase, amministratore di sistema | 
| Crea bucket di destinazione. | Per ogni bucket di origine, crea un bucket di destinazione nel cluster Couchbase Capella seguendo le istruzioni in [Creare un](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket) bucket nella documentazione di Couchbase.Le configurazioni dei bucket di destinazione devono corrispondere ai nomi dei bucket, alle impostazioni di memoria e alle impostazioni di risoluzione dei conflitti dei bucket nel cluster Couchbase Server autogestito. | Amministratore di Couchbase | 
| Crea ambiti e raccolte. | Ogni bucket contiene un ambito e una raccolta predefiniti con lo spazio delle chiavi. `_default._default` Se utilizzi altri spazi chiave per l'ambito e la raccolta, devi creare spazi chiave identici nel cluster Capella di destinazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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> | Amministratore di Couchbase | 

### Esegui la migrazione dei dati da Enterprise Edition
<a name="migrate-the-data-from-enterprise-edition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Apri le porte TCP sui nodi del cluster Couchbase Server autogestiti. | Assicurati che le porte appropriate siano aperte per la comunicazione XDCR sui nodi del cluster Couchbase Server autogestito. [Per ulteriori informazioni, consulta la documentazione sulle porte del server Couchbase.](https://docs.couchbase.com/server/current/install/install-ports.html#ports-listed-by-communication-path) | Amministratore di Couchbase, amministratore di sistema | 
| Se utilizzi Couchbase Server Enterprise Edition, configura Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 
| Avvia Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 

### Migra gli indici utilizzando l'opzione 1
<a name="migrate-the-indexes-by-using-option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra gli indici di cluster autogestiti su Couchbase Capella. | Consigliamo questa procedura se hai meno di 50 indici da migrare. Se hai più di 50 indici da migrare, ti consigliamo di utilizzare l'opzione di migrazione 2.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase, amministratore di sistema | 

### Esegui la migrazione degli indici utilizzando l'opzione 2
<a name="migrate-the-indexes-by-using-option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione delle definizioni degli indici.  | Consigliamo questa procedura se hai più di 50 indici da migrare. Se hai meno di 50 indici da migrare, ti consigliamo di utilizzare l'opzione di migrazione 1.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase, amministratore di sistema | 
| Crea le definizioni degli indici.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase, amministratore di sistema | 

### Migrazione degli indici di ricerca full-text
<a name="migrate-full-text-search-indexes"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Migra gli indici di ricerca full-text del cluster autogestiti su Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 

### Migra i dati da Couchbase Community Edition
<a name="migrate-data-from-couchbase-community-edition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esporta i dati da Couchbase Server Community Edition autogestito. | L'XDCR crittografato non è disponibile in Couchbase Community Edition. È possibile esportare i dati da Couchbase Community Edition e quindi importarli manualmente in Couchbase Capella.Per esportare i dati dal bucket di origine, usali nella riga di comando. `cbexport`Il comando seguente viene fornito come esempio.<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>Nota che`cbkey`, `cbscope``cbcoll`, e `cbexported_data.json` sono etichette arbitrarie. Verrà fatto riferimento a esse più avanti nel processo, quindi se scegli di denominarle in modo diverso, prendine nota. | Amministratore di Couchbase | 
| Importa i dati in Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Per file di grandi dimensioni, Couchbase Capella supporta l'importazione da riga di comando tramite cURL. Puoi esplorare le opzioni di importazione in modo più dettagliato in [Importa dati](https://docs.couchbase.com/cloud/clusters/data-service/import-data-documents.html) nella documentazione di Couchbase Capella. | Amministratore di Couchbase | 

### Testa e verifica la migrazione
<a name="test-and-verify-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la migrazione dei dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 
| Verifica la migrazione dell'indice.  | **Nel piano di controllo di Couchbase Capella, nell'elenco a discesa **Strumenti** per il cluster di destinazione, scegli Indici.** Verifica che gli indici siano migrati e creati. | Amministratore di Couchbase | 
| Verifica i risultati della query.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 
| Verifica i risultati della ricerca in testo completo (applicabile se hai migrato gli indici FTS). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Amministratore di Couchbase | 

## Risorse correlate
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-resources"></a>

**Prepara la migrazione**
+ [Inizia con la versione di prova gratuita di Couchbase Capella](https://cloud.couchbase.com/sign-up)
+ [Requisiti del provider di cloud per Couchbase Capella](https://docs.couchbase.com/cloud/reference/aws.html)
+ [Linee guida per il dimensionamento di Couchbase Capella](https://docs.couchbase.com/cloud/clusters/sizing.html)

**Migra i dati e gli indici**
+ [Couchbase XDCR](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html)
+ [Documentazione Couchbase Shell](https://couchbase.sh/docs/)

**Couchbase Capella e supporto SLAs **
+ Accordi sui livelli di servizio di [Couchbase Capella](https://www.couchbase.com/capellasla) () SLAs
+ [Politica di supporto del servizio Couchbase Capella](https://www.couchbase.com/support-policy/cloud)

## Informazioni aggiuntive
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-additional"></a>

Il codice seguente è un esempio di [file di configurazione per](https://couchbase.sh/docs/#_the_config_dotfiles) Couchbase Shell. 

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

Prima di salvare il file di configurazione, utilizzate la tabella seguente per assicurarvi di aver aggiunto le informazioni sul cluster di origine e di destinazione.

 


|  |  | 
| --- |--- |
| <SELF\$1MANAGED\$1COUCHBASE\$1CLUSTER> | Usa l'indirizzo IP per il tuo cluster Couchbase Server autogestito. | 
| <SELF\$1MANAGED\$1ADMIN> | Usa l'utente amministratore per il tuo cluster Couchbase Server autogestito. | 
| <ABSOLUTE\$1PATH\$1TO\$1SELF\$1MANAGED\$1ROOT\$1CERT> | Usa il percorso assoluto del file di certificato root salvato per il tuo cluster Couchbase Server autogestito. | 
| <COUCHBASE\$1CAPELLA\$1ENDPOINT> | Usa l'endpoint di connessione per il tuo cluster Couchbase Capella. | 
| <CAPELLA\$1DATABASE\$1USER> | Usa l'utente del database per il tuo cluster Couchbase Capella. | 
| <CAPELLA\$1DATABASE\$1USER\$1PWD> | Usa la password utente del database per il tuo cluster Couchbase Capella. | 
| <ABSOLUTE\$1PATH\$1TO\$1COUCHBASE\$1CAPELLA\$1ROOT\$1CERT> | Usa il percorso assoluto del file di certificato root salvato per il tuo cluster Couchbase Capella. | 

# Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su 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*

## Riepilogo
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-summary"></a>

Questo modello illustra i passaggi per la migrazione da un sistema locale Red Hat Enterprise Linux (RHEL) 6.9 o successivo che esegue IBM WebSphere Application Server (WAS) a RHEL 8 con Apache Tomcat su un'istanza Amazon Elastic Compute Cloud (Amazon). EC2 

Il modello può essere applicato alle seguenti versioni di origine e destinazione: 
+ WebSphere Application Server 7.x su Apache Tomcat 8 (con Java 7 o versione successiva) 
+ WebSphere Da Application Server 8.x ad Apache Tomcat 8 (con Java 7 o versione successiva) 
+ WebSphere Da Application Server 8.5.5.x ad Apache Tomcat 9 (con Java 8 o versione successiva) 
+ WebSphere Da Application Server 8.5.5.x ad Apache Tomcat 10 (con Java 8 o versione successiva) 

## Prerequisiti e limitazioni
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-prereqs"></a>

**Prerequisiti******
+ Un account AWS attivo 
+ Codice sorgente Java, con i seguenti presupposti:
  + Utilizza la versione Java Development Kit (JDK) di Java 7 o successiva 
  + Utilizza il framework Spring o Apache Struts 
  + Non utilizza il framework Enterprise Java Beans (EJB) o qualsiasi altra funzionalità del WebSphere server non immediatamente disponibile per Tomcat
  + Utilizza principalmente servlet o Java Server Pages () JSPs 
  + Utilizza i connettori Java Database Connectivity (JDBC) per connettersi ai database  
+ Source IBM WebSphere Application Server versione 7.x o successiva 
+ Target Apache Tomcat versione 8.5 o successiva  

## Architecture
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-architecture"></a>

******Stack tecnologico di origine**
+ Un'applicazione web creata utilizzando il framework Apache Struts Model-View-Controller (MVC) 
+ Un'applicazione Web in esecuzione su IBM WebSphere Application Server versione 7.x o 8.x
+ Un'applicazione web che utilizza un connettore LDAP (Lightweight Directory Access Protocol) per connettersi a una directory LDAP (iPlanet/eTrust) 
+ Un'applicazione che utilizza la connettività IBM Tivoli Access Manager (TAM) per aggiornare la password utente TAM (nella presente implementazione, le applicazioni utilizzano PD.jar)

******Database locali**
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)
+ Oracle Database 12c Release 2 (12.2.0.1)
+ Oracle Database 12c Release 1 (12.1.0.2)

**Stack tecnologico Target**
+ Apache Tomcat versione 8 (o successiva) in esecuzione su RHEL su un'istanza EC2 
+ Amazon Relational Database Service (Amazon RDS) per Oracle

Per ulteriori informazioni sulle versioni Oracle supportate da Amazon RDS, consulta il sito Web [Amazon RDS for](https://aws.amazon.com/rds/oracle/) Oracle. 

**Architettura Target**

![\[Architettura per la migrazione da IBM WebSphere ad Apache Tomcat su Amazon EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/96f91201-e0a6-4d3f-a94e-7bd68a59cc4e/images/11afe7c0-b400-423b-9dfe-02a915fe47ff.png)


## Tools (Strumenti)
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-tools"></a>
+ Livello di applicazione: ricostruzione dell'applicazione Java in un file WAR.
+ Livello database: backup e ripristino nativi di Oracle.
+ Strumento di migrazione Apache Tomcat per Jakarta EE. Questo strumento utilizza un'applicazione web scritta per Java EE 8 che funziona su Apache Tomcat 9 e la converte automaticamente per l'esecuzione su Apache Tomcat 10, che implementa Jakarta EE 9.

## Epiche
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Completa l'individuazione delle applicazioni, lo stato attuale e la base di riferimento delle prestazioni. |  | BA, responsabile della migrazione | 
| Convalida le versioni del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti hardware per l' EC2 istanza del server di destinazione. |  | DBA, SysAdmin | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, SysAdmin | 
| Scegli il tipo di EC2 istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin | 
| Identifica la strategia e gli strumenti di migrazione delle applicazioni. |  | DBA, responsabile della migrazione | 
| Completa la progettazione e la guida alla migrazione per l'applicazione. |  | Build Lead, Migration Lead | 
| Completa il runbook sulla migrazione delle applicazioni. |  | Build Lead, Cutover Lead, Testing Lead, Migration Lead | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  | SysAdmin | 
| Crea i gruppi di sicurezza. |  | SysAdmin | 
| Configura e avvia Amazon RDS for Oracle. |  | DBA, SysAdmin | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea o ottieni l'accesso agli endpoint per recuperare i file di backup del database. |  | DBA | 
| Utilizza il motore di database nativo o uno strumento di terze parti per migrare oggetti e dati del database. | Per i dettagli, vedere «Migrazione di oggetti e dati del database» nella sezione *Informazioni aggiuntive*. | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Presenta la richiesta di modifica (CR) per la migrazione. |  | Cutover Lead | 
| Ottieni l'approvazione CR per la migrazione. |  | Cutover Lead | 
| Segui la strategia di migrazione delle applicazioni riportata nel runbook di migrazione delle applicazioni. | Per i dettagli, consulta «Configurazione del livello di applicazione» nella sezione *Informazioni aggiuntive*. | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Aggiorna l'applicazione (se necessario). |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Completa i test funzionali, non funzionali, di convalida dei dati, dello SLA e delle prestazioni. |  | Responsabile del test, proprietario dell'app, utenti dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottenere l'approvazione dal proprietario dell'applicazione o dal titolare dell'attività. |  | Cutover Lead | 
| Passa i client applicativi alla nuova infrastruttura. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, ingegnere addetto alla migrazione, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | Responsabile della migrazione | 
| Raccogli parametri come il tempo necessario per la migrazione, la percentuale di attività manuali rispetto a quelle automatizzate e il risparmio sui costi. |  | Responsabile della migrazione | 
| Chiudi il progetto e fornisci feedback. |  | Responsabile della migrazione, proprietario dell'app | 

## Risorse correlate
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-resources"></a>

**Riferimenti**
+ [Documentazione di Apache Tomcat 10.0](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
+ [Documentazione di Apache Tomcat 9.0](https://tomcat.apache.org/tomcat-9.0-doc/index.html)
+ [Documentazione di Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc)
+ [Guida all'installazione di Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc/setup.html)
+ [Documentazione JNDI di Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)
+ [Sito Web Amazon RDS per Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle e Amazon Web Services](https://aws.amazon.com/oracle/) 
+ [Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Implementazioni Multi-AZ di Amazon RDS](https://aws.amazon.com/rds/details/multi-az/) 

**Tutorial e video**
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

## Informazioni aggiuntive
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-additional"></a>

**Migrazione di oggetti e dati del database**

Ad esempio, se utilizzi backup/restore utilità Oracle native:

1. Crea il backup Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) per i file di backup del database (opzionale).

1. Esegui il backup dei dati di Oracle DB nella cartella condivisa di rete.

1. Accedere al server di staging della migrazione per mappare la cartella di condivisione di rete.

1. Copia i dati dalla cartella di condivisione di rete al bucket S3.

1. Richiedi un'implementazione Amazon RDS Multi-AZ per Oracle.

1. Ripristina il backup del database locale su Amazon RDS for Oracle.

**Configurazione del livello di applicazione**

1. Installa Tomcat 8 (o 9/10) dal sito Web di Apache Tomcat.

1. Package dell'applicazione e delle librerie condivise in un file WAR.

1. Distribuisci il file WAR in Tomcat.

1. Monitora il registro di avvio su `Linux cat` tutte le librerie condivise mancanti da. WebSphere

1. Guarda il record iniziale di `Linux cat` qualsiasi estensione descrittrice di distribuzione WebSphere specifica.

1. Raccogli tutte le librerie Java dipendenti mancanti dal WebSphere server.

1. Modifica gli elementi del descrittore WebSphere di distribuzione specifici con equivalenti compatibili con Tomcat.

1. Ricostruisci il file WAR con le librerie Java dipendenti e i descrittori di distribuzione aggiornati.

1. Aggiorna la configurazione LDAP, la configurazione del database e le connessioni di test (vedi [Realm Configuration HOW-TO e JNDI Datasource HOW-TO](https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html) [nella documentazione di](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html) Apache Tomcat).

1. Testa l'applicazione installata con il database Amazon RDS for Oracle ripristinato.

1. Crea un'Amazon Machine Image (AMI) per Linux dall' EC2 istanza.

1. Avvia l'architettura completa con il gruppo Application Load Balancer and Auto Scaling.

1. Aggiorna URLs (utilizzando la giunzione WebSeal) in modo che punti all'Application Load Balancer.

1. Aggiornare il database di gestione della configurazione (CMDB). 

# Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con 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*

## Riepilogo
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un'applicazione Java da IBM WebSphere Application Server ad Apache Tomcat su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) con Amazon Auto EC2 Scaling abilitato. 

Utilizzando questo modello, è possibile ottenere:
+ Una riduzione dei costi di licenza IBM
+ Alta disponibilità grazie all'implementazione Multi-AZ
+ Resilienza delle applicazioni migliorata con Amazon EC2 Auto Scaling

## Prerequisiti e limitazioni
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Applicazioni Java (versione 7). *x* o 8. *x*) dovrebbe essere sviluppato in stack LAMP.
+ Lo stato di destinazione è ospitare applicazioni Java su host Linux. Questo modello è stato implementato con successo in un ambiente Red Hat Enterprise Linux (RHEL) 7. Altre distribuzioni Linux possono seguire questo schema, ma è necessario fare riferimento alla configurazione della distribuzione Apache Tomcat.
+ È necessario comprendere le dipendenze dell'applicazione Java.
+ È necessario avere accesso al codice sorgente dell'applicazione Java per apportare modifiche. 

**Limitazioni e modifiche alla ripiattaforma**
+ È necessario conoscere i componenti dell'archivio aziendale (EAR) e verificare che tutte le librerie siano incluse nei file WAR dei componenti Web. È necessario configurare il [plugin Apache Maven WAR e produrre artefatti di file WAR](https://maven.apache.org/plugins/maven-war-plugin/).
+ Quando si utilizza Apache Tomcat 8, esiste un conflitto noto tra servlet-api.jar e i file jar incorporati nel pacchetto dell'applicazione. Per risolvere questo problema, eliminate servlet-api.jar dal pacchetto dell'applicazione.
+ [È necessario configurare WEB-INF/Resources che si trovano nel *classpath* della configurazione di Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html) Per impostazione predefinita, le librerie JAR non vengono caricate nella directory. *In alternativa, puoi distribuire tutte le risorse insrc/main/resources.*
+ Verifica la presenza di eventuali root contestuali codificate all'interno dell'applicazione Java e aggiorna la nuova [radice contestuale](https://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context) di Apache Tomcat.
+ **Per impostare le opzioni di runtime JVM, è possibile creare il file di configurazione setenv.sh nella cartella bin di Apache Tomcat; ad esempio, JAVA\$1OPTS, JAVA\$1HOME, ecc.**  
+ L'autenticazione è configurata a livello di contenitore ed è configurata come realm nelle configurazioni di Apache Tomcat. L'autenticazione viene stabilita per uno dei tre ambiti seguenti: 
  + [JDBC Database Realm cerca gli utenti in un database](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm) relazionale a cui accede il driver JDBC.
  + [DataSource Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm) cerca gli utenti in un database a cui accede JNDI. 
  + [JNDI Directory Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm) cerca gli utenti nella directory LDAP (Lightweight Directory Access Protocol) a cui accede il provider JNDI. Le ricerche richiedono: 
    + Dettagli della connessione LDAP: base di ricerca utente, filtro di ricerca, base di ruoli, filtro di ruolo 
    + La chiave JNDI Directory Realm: si connette a LDAP, autentica gli utenti e recupera tutti i gruppi di cui un utente è membro
+ Autorizzazione: nel caso di un contenitore con un'autorizzazione basata sui ruoli che controlla i vincoli di autorizzazione in web.xml, le risorse web devono essere definite e confrontate con i ruoli definiti nei vincoli. Se LDAP non dispone della mappatura dei ruoli di gruppo, è necessario impostare l'attributo < > in web.xml per ottenere la mappatura dei ruoli di gruppo. security-role-ref [Per vedere un esempio di documento di configurazione, consulta la documentazione Oracle.](https://docs.oracle.com/cd/E19226-01/820-7627/bncav/index.html) 
+ Connessione al database: crea una definizione di risorsa in Apache Tomcat con un URL dell'endpoint Amazon Relational Database Service (Amazon RDS) e dettagli di connessione. Aggiorna il codice dell'applicazione in modo che faccia riferimento a utilizzando la ricerca JNDI DataSource . Una connessione DB esistente definita in non WebSphere funzionerebbe, poiché utilizza i nomi WebSphere JNDI di. È possibile aggiungere una <resource-ref>voce in web.xml con il nome JNDI e la definizione del DataSource tipo. Per visualizzare un documento di configurazione di esempio, consultate la documentazione di [Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
+ Registrazione: per impostazione predefinita, Apache Tomcat accede alla console o a un file di registro. [È possibile abilitare la traccia a livello di realm aggiornando *logging.properties* (vedi Registrazione in Tomcat).](https://tomcat.apache.org/tomcat-8.0-doc/logging.html) *Se utilizzi Apache Log4j per aggiungere log a un file, devi scaricare tomcat-juli e aggiungerlo al classpath.*
+ Gestione delle sessioni: se utilizzi IBM WebSeal per il bilanciamento del carico delle applicazioni e la gestione delle sessioni, non è richiesta alcuna modifica. [Se utilizzi un Application Load Balancer o Network Load Balancer su AWS per sostituire il componente IBM WebSeal, devi configurare la gestione delle sessioni utilizzando un'istanza ElastiCache Amazon con un cluster Memcached e configurare Apache Tomcat per utilizzare la gestione delle sessioni open source.](https://github.com/magro/memcached-session-manager) 
+ Se utilizzi il forward proxy IBM WebSEAL, devi configurare un nuovo Network Load Balancer su AWS. Utilizza le configurazioni di giunzione IPs fornite dal Network Load Balancer per le configurazioni di giunzione WebSEAL.
+ Configurazione SSL: si consiglia di utilizzare Secure Sockets Layer (SSL) per le comunicazioni. end-to-end [Per configurare una configurazione del server SSL in Apache Tomcat, segui le istruzioni nella documentazione di Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html) 

## Architecture
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-architecture"></a>

**Stack di tecnologia di origine**
+ Server di applicazioni IBM WebSphere 

 

**Stack tecnologico Target**
+ L'architettura utilizza [Elastic Load Balancing (versione 2](https://docs.aws.amazon.com/elasticloadbalancing/)). Se utilizzi IBM WebSeal per la gestione e il bilanciamento del carico di Identify, puoi selezionare un Network Load Balancer su AWS da integrare con il reverse proxy IBM WebSeal.
+ Le applicazioni Java vengono distribuite su un server applicativo Apache Tomcat, che viene eseguito su un' EC2 istanza in un gruppo Amazon Auto [Scaling EC2 ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html). Puoi impostare una [politica di scalabilità](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) basata su CloudWatch parametri di Amazon come l'utilizzo della CPU. 
+ Se stai ritirando l'uso di IBM WebSeal per il bilanciamento del carico, puoi utilizzare [Amazon for Memcached ElastiCache per la gestione](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) delle sessioni.
+ Per il database di back-end, puoi implementare [High Availability (Multi-AZ) per Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) e selezionare un tipo di motore di database.

 

**Architettura Target**

![\[Cloud AWS architecture with VPC, two availability zones, load balancer, and database components.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/52b91dab-7b3b-4751-abe2-25e7c7cd8d89/images/25125023-9a81-452a-9ada-184e2416cc02.png)


## Tools (Strumenti)
<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)
+ [Interfaccia a riga di comando AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ Apache Tomcat (versione 7). *x o 8*. *x*)
+ RHEL 7 o Centos 7
+ [Implementazione di Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache per Memcached (opzionale](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html))

## Epiche
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-epics"></a>

### Configura il VPC
<a name="set-up-the-vpc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  |  | 
| Creare sottoreti. |  |  | 
| Se necessario, create tabelle di routing. |  |  | 
| Crea liste di controllo degli accessi alla rete (ACLs). |  |  | 
| Configura AWS Direct Connect o una connessione VPN aziendale. |  |  | 

### Ripiattaforma l'applicazione
<a name="replatform-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rifattorizza la configurazione Maven di build dell'applicazione per generare gli artefatti WAR. |  |  | 
| Rifattorizza le fonti di dati sulle dipendenze delle applicazioni in Apache Tomcat. |  |  | 
| Rifattorizza i codici sorgente dell'applicazione per utilizzare i nomi JNDI in Apache Tomcat. |  |  | 
| Distribuisci gli artefatti WAR in Apache Tomcat. |  |  | 
| Completa le convalide e i test delle applicazioni. |  |  | 

### Configura la rete
<a name="configure-the-network"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il firewall aziendale per consentire la connessione ai servizi di dipendenza. |  |  | 
| Configura il firewall aziendale per consentire all'utente finale l'accesso a Elastic Load Balancing on AWS. |  |  | 

### Crea l'infrastruttura applicativa
<a name="create-the-application-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea e distribuisci l'applicazione su un' EC2 istanza. |  |  | 
| Crea un cluster Amazon ElastiCache for Memcached per la gestione delle sessioni. |  |  | 
| Crea un'istanza Amazon RDS Multi-AZ per il database di backend. |  |  | 
| Crea certificati SSL e importali in AWS Certificate Manager (ACM). |  |  | 
| Installa i certificati SSL sui sistemi di bilanciamento del carico. |  |  | 
| Installa i certificati SSL per i server Apache Tomcat. |  |  | 
| Convalide e test completi delle applicazioni. |  |  | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudere l'infrastruttura esistente. |  |  | 
| Ripristina il database dalla produzione ad Amazon RDS. |  |  | 
| Riduci l'applicazione apportando modifiche al DNS. |  |  | 

## Risorse correlate
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-related-resources"></a>

**Riferimenti**
+ [Documentazione di Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html)
+ [Guida all'installazione di Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html)
+ [Documentazione JNDI di Apache Tomcat](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)
+ [Implementazioni Multi-AZ di Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache per Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html)

**Tutorial e video**
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Esegui la migrazione di un'applicazione.NET da Microsoft Azure App Service ad AWS Elastic Beanstalk
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk"></a>

*Raghavender Madamshitti, Amazon Web Services*

## Riepilogo
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-summary"></a>

Questo modello descrive come migrare un'applicazione Web.NET ospitata su Microsoft Azure App Service su AWS Elastic Beanstalk. Esistono due modi per migrare le applicazioni su Elastic Beanstalk:
+ Usa AWS Toolkit for Visual Studio: questo plugin per l'IDE di Microsoft Visual Studio offre il modo più semplice e diretto per distribuire applicazioni.NET personalizzate in AWS. Puoi utilizzare questo approccio per distribuire il codice.NET direttamente in AWS e creare risorse di supporto, come Amazon Relational Database Service (Amazon RDS) per i database SQL Server, direttamente da Visual Studio.
+ Carica e distribuisci su Elastic Beanstalk: ogni servizio app di Azure include un servizio in background chiamato Kudu, utile per acquisire dump di memoria e log di distribuzione, visualizzare i parametri di configurazione e accedere ai pacchetti di distribuzione. Puoi usare la console Kudu per accedere ai contenuti del Servizio app di Azure, estrarre il pacchetto di distribuzione e quindi caricare il pacchetto su Elastic Beanstalk usando l'opzione di caricamento e distribuzione nella console Elastic Beanstalk.

Questo modello descrive il secondo approccio (caricamento dell'applicazione su Elastic Beanstalk tramite Kudu). Il modello utilizza anche i seguenti servizi 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. 

L'applicazione Web.NET viene distribuita su AWS Elastic Beanstalk, che viene eseguito in un Amazon EC2 Auto Scaling Group. Puoi impostare una politica di scalabilità basata su CloudWatch parametri di Amazon come l'utilizzo della CPU. Per un database, puoi utilizzare Amazon RDS in un ambiente Multi-AZ o Amazon DynamoDB, a seconda dell'applicazione e dei requisiti aziendali. 

## Prerequisiti e limitazioni
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'applicazione Web.NET in esecuzione nel servizio app di Azure
+ Autorizzazione a usare la console Azure App Service Kudu

**Versioni del prodotto**
+ .NET Core (x64) 1.0.1, 2.0.0 o versione successiva oppure .NET Framework 4.x, 3.5 (consulta [.NET](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html) nella cronologia della piattaforma Windows Server)
+ Internet Information Services (IIS) versione 8.0 o successiva, in esecuzione su Windows Server 2012 o versione successiva
+ .NET 2.0 o 4.0 Runtime.

## Architecture
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-architecture"></a>

**Stack di tecnologia di origine**
+  Applicazione sviluppata usando .NET Framework 3.5 o versione successiva oppure .NET Core 1.0.1, 2.0.0 o versione successiva e ospitata nel Servizio app di Azure (app Web o app API)

**Stack tecnologico Target**
+ AWS Elastic Beanstalk in esecuzione in un gruppo Amazon EC2 Auto Scaling

**Architettura di migrazione**

![\[Kudu accede ai contenuti del Servizio app di Azure, ottiene il pacchetto di distribuzione e lo carica su Elastic Beanstalk.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/dd15f97b-9cf2-4bcc-af45-44df1c4ca4a5.png)


 

**Workflow di distribuzione**

![\[Flusso di lavoro di distribuzione per creare app, pubblicarle nell'ambiente di avvio e quindi gestire l'ambiente.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/accec77d-c753-4166-8f27-bd4932b3d884.png)


## Tools (Strumenti)
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-tools"></a>

**Strumenti**
+ .NET Core o.NET Framework
+ C\$1
+ IIS
+ Console Kudu

**Servizi e funzionalità AWS**
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) — Elastic Beanstalk easy-to-use è un servizio per la distribuzione e il ridimensionamento di applicazioni web.NET. Elastic Beanstalk gestisce automaticamente il provisioning della capacità, il bilanciamento del carico e la scalabilità automatica.
+ [Gruppo Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html): Elastic Beanstalk include un gruppo Auto Scaling che gestisce le istanze Amazon nell'ambiente. EC2 In un ambiente con singola istanza, il gruppo Auto Scaling garantisce che esista sempre un'istanza in esecuzione. In un ambiente con carico bilanciato, puoi configurare il gruppo con una gamma di istanze da eseguire e Amazon Auto Scaling EC2 aggiunge o rimuove istanze secondo necessità, in base al carico.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html): quando abiliti il bilanciamento del carico in AWS Elastic Beanstalk, crea un sistema di bilanciamento del carico che distribuisce il traffico tra le istanze dell'ambiente. EC2 
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html): Elastic Beanstalk CloudWatch utilizza automaticamente Amazon per fornire informazioni sulle risorse dell'applicazione e dell'ambiente. Amazon CloudWatch supporta metriche standard, metriche personalizzate e allarmi.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) — Amazon Route 53 è un servizio Web DNS (Domain Name System) cloud altamente disponibile e scalabile. Puoi utilizzare i record di alias Route 53 per mappare nomi di dominio personalizzati in ambienti AWS Elastic Beanstalk.

## Epiche
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-epics"></a>

### Configurazione di un VPC
<a name="set-up-a-vpc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un cloud privato virtuale (VPC). | Nel tuo account AWS, crea un VPC con le informazioni richieste. | Amministratore di sistema | 
| Crea sottoreti. | Crea due o più sottoreti nel tuo VPC. | Amministratore di sistema | 
| Crea una tabella di rotte. | Crea una tabella di percorsi, in base alle tue esigenze. | Amministratore di sistema | 

### Configura Elastic Beanstalk
<a name="set-up-elastic-beanstalk"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Accedi alla console Azure App Service Kudu. | ****Accedi a Kudu tramite il portale di Azure accedendo alla dashboard del Servizio app e scegliendo Strumenti avanzati, Vai.**** In alternativa, puoi modificare l'URL del servizio app di Azure come segue:. `https://<appservicename>.scm.azurewebsites.net` | Sviluppatore di app, amministratore di sistema | 
| Scarica il pacchetto di distribuzione da Kudu. | Passa a Windows PowerShell scegliendo l'**DebugConsole**opzione. Si aprirà la console Kudo. Vai alla `wwwroot` cartella e scaricala. Verrà scaricato il pacchetto di distribuzione del servizio app di Azure come file zip. Per un esempio, vedi l'allegato. | Sviluppatore di app, amministratore di sistema | 
| Crea un pacchetto per Elastic Beanstalk. | Decomprimi il pacchetto di distribuzione scaricato dal Servizio app di Azure. Crea un file JSON chiamato `aws-windows-deployment-manifest.json` (questo file è richiesto solo per le applicazioni.NET Core). Crea un file zip che `aws-windows-deployment-manifest.json` includa il file del pacchetto di distribuzione del servizio app di Azure. Per un esempio, vedi l'allegato. | Sviluppatore di app, amministratore di sistema | 
| Crea una nuova applicazione Elastic Beanstalk. | Apri la console Elastic Beanstalk. Scegli un'applicazione esistente o crea una nuova applicazione. | Sviluppatore di app, amministratore di sistema | 
| Creazione dell'ambiente | **Nel menu Azioni della console Elastic **Beanstalk**, scegli Crea ambiente.** Seleziona l'ambiente del server Web e la piattaforma .NET/IIS. **Per il codice dell'applicazione, scegli Upload.** **Carica il file zip che hai preparato per Elastic Beanstalk, quindi scegli Crea ambiente.** | Sviluppatore di app, amministratore di sistema | 
| Configura Amazon CloudWatch. | Per impostazione predefinita, il CloudWatch monitoraggio di base è abilitato. **Se desideri modificare la configurazione, nella procedura guidata Elastic Beanstalk, scegli l'applicazione pubblicata, quindi scegli Monitoring.** | Amministratore di sistema | 
| Verifica che il pacchetto di distribuzione sia in Amazon S3.  | Una volta creato l'ambiente applicativo, puoi trovare il pacchetto di distribuzione nel bucket S3. | Sviluppatore di app, amministratore di sistema | 
| Testare l'applicazione. | Una volta creato l'ambiente, utilizza l'URL fornito nella console Elastic Beanstalk per testare l'applicazione. | Amministratore di sistema | 

## Risorse correlate
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-resources"></a>
+ [Concetti di AWS Elastic Beanstack (documentazione](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.html) di Elastic Beanstalk)
+ [Guida introduttiva a .NET su Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-getstarted.html) (documentazione di Elastic Beanstalk)
+ [GitHubConsole](https://github.com/projectkudu/kudu/wiki/Kudu-console) Kudu ()
+ [Usare «Kudu» per gestire le app Web di Azure](https://www.gslab.com/blogs/kudu-azure-web-app/) (articolo di GS Lab)
+ Distribuzioni [personalizzate di ASP.NET Core Elastic Beanstalk](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-beanstalk-custom-netcore.html) (guida per l'utente di AWS Toolkit for Visual Studio)
+ [Documentazione su Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Piattaforme supportate da AWS Elastic Beanstalk (documentazione Elastic Beanstalk](https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/platforms/platforms-supported.html))
+ [Distribuzione di un'applicazione Web su AWS](https://www.c-sharpcorner.com/article/deploying-a-web-application-to-aws/) (articolo C\$1 Corner)
+ [Ridimensionamento delle dimensioni del gruppo Auto Scaling (documentazione](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) Amazon EC2 )
+ [Alta disponibilità (Multi-AZ) per Amazon RDS (documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) Amazon RDS)

## Informazioni aggiuntive
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-additional"></a>

**Note**
+ Se stai migrando un database SQL Server locale o di Azure su Amazon RDS, devi aggiornare anche i dettagli della connessione al database. 
+ A scopo di test, è allegata un'applicazione demo di esempio.

## Allegati
<a name="attachments-df606a2d-b0a8-4035-b377-0a760e7300c9"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)

# Esegui la migrazione da Oracle WebLogic ad Apache Tomcat (ToMee) su Amazon ECS
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs"></a>

*Anya Epishcheva e Harshad Gohil, Amazon Web Services*

## Riepilogo
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-summary"></a>

Questo modello illustra i passaggi per la migrazione di un sistema Oracle Solaris SPARC locale che esegue Oracle verso un'installazione basata su container Docker che esegue [Apache Tomee (Apache Tomcat](http://tomee.apache.org/) con supporto WebLogic per container aggiunto) con Amazon Elastic Container Service (Amazon ECS). 

Per informazioni sulla migrazione dei database associati alle applicazioni che stai migrando da Oracle a Tomcat, consulta i modelli di migrazione dei database in questo catalogo. WebLogic  

**Best practice**

I passaggi per la migrazione delle applicazioni Web Java e Java Enterprise Edition (Java EE) variano a seconda del numero di risorse specifiche del contenitore utilizzate dall'applicazione. Le applicazioni basate su Spring sono in genere più facili da migrare, perché hanno un numero limitato di dipendenze dal contenitore di distribuzione. Al contrario, le applicazioni Java EE che utilizzano Enterprise JavaBeans (EJBs) e risorse container gestite come pool di thread, Java Authentication and Authorization Service (JAAS) e Container-Managed Persistence (CMP) richiedono uno sforzo maggiore. 

Le applicazioni sviluppate per Oracle Application Server utilizzano spesso la suite Oracle Identity Management. I clienti che migrano a server applicativi open source spesso scelgono di reimplementare la gestione delle identità e degli accessi utilizzando la federazione basata su SAML. Altri utilizzano Oracle HTTP Server Webgate nei casi in cui la migrazione dalla suite Oracle Identity Management non è un'opzione. 

Le applicazioni Web Java e Java EE sono ottimi candidati per la distribuzione su servizi AWS basati su Docker, come AWS Fargate e Amazon ECS. I clienti scelgono spesso un'immagine Docker con la versione più recente del server delle applicazioni di destinazione (come ToMee) e il Java Development Kit (JDK) preinstallato. Installano le loro applicazioni sull'immagine Docker di base, la pubblicano nel registro Amazon Elastic Container Registry (Amazon ECR) e la utilizzano per la distribuzione scalabile delle loro applicazioni su AWS Fargate o Amazon ECS. 

Idealmente, la distribuzione delle applicazioni è elastica; vale a dire, il numero di istanze dell'applicazione aumenta o diminuisce, a seconda del traffico o del carico di lavoro. Ciò significa che le istanze delle applicazioni devono essere online o chiuse per adattare la capacità alla domanda. 

Quando sposti un'applicazione Java in AWS, valuta la possibilità di renderla stateless. Questo è un principio architettonico chiave di AWS Well-Architected Framework che consentirà la scalabilità orizzontale utilizzando la containerizzazione. Ad esempio, la maggior parte delle applicazioni Web basate su Java archivia localmente le informazioni sulla sessione utente. Per sopravvivere alla chiusura dell'istanza dell'applicazione dovuta al ridimensionamento automatico in Amazon Elastic Compute Cloud (Amazon EC2) o per altri motivi, le informazioni sulla sessione utente devono essere archiviate a livello globale in modo che gli utenti delle applicazioni Web possano continuare a lavorare senza interruzioni e in modo trasparente senza riconnettersi o riaccedere a un'applicazione Web. Esistono diverse opzioni architettoniche per questo approccio, tra cui Amazon ElastiCache for Redis o l'archiviazione dello stato della sessione in un database globale. I server di applicazioni come TomEE dispongono di plug-in che consentono l'archiviazione e la gestione delle sessioni tramite Redis, database e altri archivi di dati globali.

Utilizza uno strumento di registrazione e debug comune e centralizzato, facilmente integrabile con Amazon e AWS X-Ray. CloudWatch La migrazione offre l'opportunità di migliorare le funzionalità del ciclo di vita delle applicazioni. Ad esempio, potresti voler automatizzare il processo di creazione in modo che le modifiche possano essere apportate facilmente utilizzando una pipeline di integrazione e distribuzione continua (CI/CD). Ciò potrebbe richiedere modifiche all'applicazione in modo che possa essere distribuita senza tempi di inattività. 

## Prerequisiti e limitazioni
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Codice sorgente Java e JDK 
+ Applicazione sorgente creata con Oracle WebLogic
+ Soluzione definita per la gestione delle identità e degli accessi (SAML o Oracle Webgate)
+ Soluzione definita per la gestione delle sessioni delle applicazioni (spostamento like-for-like o con Amazon o creazione dello stato dell'applicazione ElastiCache, se necessario)
+ Capire se il team deve rifattorizzare le librerie specifiche di J2EE per la portabilità su Apache ToMee (vedi [Java](http://tomee.apache.org/javaee7-status.html) EE 7 Implementation Status sul sito web di Apache) 
+ Immagine ToMee rafforzata in base ai requisiti di sicurezza
+ Immagine del contenitore con destinazione ToMee preinstallata 
+ Correzione dell'applicazione concordata e implementata se necessario (ad esempio, registrazione, debug, build, autenticazione)

**Versioni del prodotto**
+ Oracle WebLogic OC4 J, 9i, 10g 
+ Tomcat 7 (con Java 1.6 o successivo) 

## Architecture
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-architecture"></a>

 **Stack tecnologico di origine**
+ Applicazione Web creata con Oracle WebLogic
+ Applicazione Web che utilizza l'autenticazione Oracle Webgate o SAML
+ Applicazioni Web connesse a Oracle Database versione 10g e successive 

**Stack tecnologico Target**
+ ToMee (Apache Tomcat con supporto aggiuntivo per container) in esecuzione su Amazon ECS (vedi anche [Deploying Java Web Applications and Java](https://aws.amazon.com/answers/web-applications/aws-web-app-deployment-java/) [Microservices](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) on Amazon ECS) 
+ Amazon Relational Database Service (Amazon RDS) per Oracle; per le versioni Oracle supportate da Amazon RDS, [consulta](https://aws.amazon.com/rds/oracle/) Amazon RDS per Oracle****

**Architettura di Target**

![\[Cloud AWS architecture diagram showing VPC, application subnets, and shared services account components.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d5e7b3fa-062f-4559-af56-aa6058f96755/images/762193cf-aa68-4195-b3c7-6541caee61c9.png)


 

## Tools (Strumenti)
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-tools"></a>

Per funzionare su TomEE, un'applicazione Java deve essere ricostruita in un file.war. In alcuni casi, potrebbero essere necessarie modifiche all'applicazione per far funzionare l'applicazione su TomEE; è necessario verificare che le opzioni di configurazione e le proprietà dell'ambiente necessarie siano definite correttamente.  

Inoltre, le ricerche JNDI (Java Naming and Directory Interface) e gli spazi dei nomi JavaServer Pages (JSP) devono essere definiti correttamente. Valuta la possibilità di controllare i nomi dei file utilizzati dall'applicazione per evitare collisioni di denominazione con le librerie T integrate. Ad esempio, persistence.xml è un nome di file utilizzato dal framework Apache OpenJPA (fornito in bundle con OpenEJB in TomEE) per scopi di configurazione. Il file persistence.xml in PUI contiene le dichiarazioni dei bean del framework Spring.  

TomEE versione 7.0.3 e successive (Tomcat 8.5.7 e successive) restituisce una risposta HTTP 400 (richiesta errata) per raw (non codificato) con caratteri speciali. URLs La risposta del server viene visualizzata come una pagina vuota per l'utente finale. [Le versioni precedenti di ToMee e Tomcat consentivano l'uso di determinati caratteri speciali non codificati in URLs; tuttavia, è considerato pericoloso, come indicato nel sito Web CVE-2016-6816.](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6816) **Per risolvere il problema di codifica degli URL, i dati URLs passati direttamente al browser JavaScript devono essere codificati con il metodo encodeURI () anziché essere utilizzati come stringhe non elaborate.** 

Dopo aver distribuito il file.war in TomEE, monitora il *log di avvio* *su Linux cat* per eventuali librerie condivise mancanti ed estensioni specifiche di Oracle per aggiungere i componenti mancanti dalle librerie Tomcat. 

 

**Procedura generale**
+ Configura l'applicazione su TomEE.
+ Identifica e riconfigura i file e le risorse di configurazione specifici del server delle applicazioni dal formato di origine a quello di destinazione.
+ Identifica e riconfigura le risorse JNDI.
+ Adatta lo spazio dei nomi e le ricerche EJB al formato richiesto dal server delle applicazioni di destinazione (se applicabile).
+ Riconfigurate i ruoli di sicurezza e le mappature principali specifici del contenitore dell'applicazione JAAS (se applicabile).
+ Package dell'applicazione e delle librerie condivise in un file.war.
+ Distribuisci il file.war in TomEE utilizzando il contenitore Docker fornito.
+ Monitora *il registro di avvio* per identificare eventuali estensioni mancanti della libreria condivisa e del descrittore di distribuzione. Se ne vengono trovate, tornate alla prima attività. 
+ Testa l'applicazione installata con il database Amazon RDS ripristinato.
+ Avvia l'architettura completa con un sistema di bilanciamento del carico e un cluster Amazon ECS seguendo le istruzioni in [Deploy](https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/) Docker Containers.
+ Aggiorna il punto URLs di bilanciamento del carico. 
+ Aggiornare il database di gestione della configurazione (CMDB). 

## Poemi epici
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui l'individuazione delle applicazioni (impronta dello stato attuale e baseline delle prestazioni). |  | BA, responsabile della migrazione | 
| Convalida le versioni e i motori del database di origine e destinazione. |  | DBA | 
| Convalida il design dell'applicazione di origine e di destinazione (gestione dell'identità e della sessione). |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Identifica i requisiti hardware e di storage per l'istanza del server di destinazione. |  | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, SysAdmin | 
| Identifica la strategia e gli strumenti di migrazione delle applicazioni. |  | DBA, responsabile della migrazione | 
| Completa la progettazione e la guida alla migrazione per l'applicazione. |  | Build Lead, Migration Lead | 
| Completa il runbook sulla migrazione delle applicazioni. |  | Build Lead, Cutover Lead, Testing Lead, Migration Lead | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  | SysAdmin | 
| Crea gruppi di sicurezza. |  | SysAdmin | 
| Configura e avvia l'istanza database di Amazon RDS. |  | DBA, SysAdmin | 
| Configura la distribuzione di Amazon ECS. |  | SysAdmin | 
| Package della tua applicazione come immagine Docker. |  | SysAdmin | 
| Invia l'immagine al registro Amazon ECR (o salta questo passaggio e inviala al cluster Amazon ECS). |  | SysAdmin | 
| Configura la definizione delle attività per l'applicazione e le opzioni del servizio Amazon ECS. |  | SysAdmin | 
| Configura il cluster, rivedi le impostazioni di sicurezza e imposta i ruoli di AWS Identity and Access Management (IAM). |  | SysAdmin | 
| Avvia la configurazione ed esegui i test in base al runbook di migrazione delle applicazioni. |  | SysAdmin | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni l'autorizzazione del tuo team di garanzia della sicurezza per spostare i dati di produzione in AWS. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Crea e ottieni l'accesso agli endpoint per recuperare i file di backup del database. |  | DBA | 
| Utilizza il motore di database nativo o strumenti di terze parti per migrare oggetti e dati del database. |  | DBA | 
| Esegui i test necessari dal runbook di migrazione delle applicazioni per confermare la corretta migrazione dei dati. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 

### Esegui la migrazione dell'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una richiesta di modifica (CR) per la migrazione. |  | Cutover Lead | 
| Ottieni l'approvazione CR per la migrazione. |  | Cutover Lead | 
| Segui la strategia di migrazione delle applicazioni riportata nell'Application Migration Runbook. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Aggiorna l'applicazione (se necessario). |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Test completi, funzionali, non funzionali, di convalida dei dati, degli SLA e delle prestazioni. |  | Responsabile del test, proprietario dell'app, utenti dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottenere l'approvazione dall'applicazione o dal titolare dell'attività. |  | Cutover Lead | 
| Esegui un esercizio tematico da tavolo per illustrare tutti i passaggi del cutover runbook. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 
| Passa i client applicativi alla nuova infrastruttura. |  | DBA, ingegnere addetto alla migrazione, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | DBA, ingegnere addetto alla migrazione, SysAdmin | 
| Rivedi e convalida i documenti del progetto. |  | Responsabile della migrazione | 
| Raccogli le metriche in tempo utile per la migrazione, la percentuale di utilizzo manuale rispetto agli strumenti, i risparmi sui costi, ecc. |  | Responsabile della migrazione | 
| Chiudi il progetto e fornisci feedback. |  | Responsabile della migrazione, proprietario dell'app | 

## Risorse correlate
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-related-resources"></a>

**Riferimenti**
+ [Documentazione di Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html) 
+ [Guida all'installazione di Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html) 
+ [Documentazione JNDI di Apache Tomcat](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) 
+ [Documentazione Apache TomEE](http://tomee.apache.org/) 
+ [Amazon RDS per Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/) 
+ [Oracle e AWS](https://aws.amazon.com/oracle/) 
+ [Documentazione Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Implementazioni Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/) 
+ [Guida introduttiva ad Amazon ECS](https://aws.amazon.com/ecs/getting-started/)
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

**Tutorial e video**
+ [Best practice per l'esecuzione di database Oracle su Amazon RDS (presentazione](https://www.youtube.com/watch?v=j2wqT0EPDbw) re:Invent 2018) 

# Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for Oracle utilizzando 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*

## Riepilogo
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-summary"></a>

Questo modello descrive i passaggi per la migrazione di un database Oracle da Amazon Elastic Compute Cloud (Amazon EC2) ad Amazon Relational Database Service (Amazon RDS) per Oracle utilizzando AWS Database Migration Service (AWS DMS). Il modello utilizza anche Oracle SQL Developer o SQL \$1Plus per connettersi all'istanza Oracle DB e include un CloudFormation modello AWS che automatizza alcune attività.

La migrazione ad Amazon RDS for Oracle ti consente di concentrarti sulla tua attività e sulle tue applicazioni, mentre Amazon RDS si occupa delle attività di amministrazione del database come il provisioning dei database, il backup e il ripristino, le patch di sicurezza, gli aggiornamenti delle versioni e la gestione dello storage.

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'Amazon Machine Image (AMI) per Oracle Database su Amazon EC2

**Versioni del prodotto**
+ AWS DMS supporta le versioni Oracle 11g (versione 11.2.0.3.v1 e successive), 12c e 18c per i database di istanze Amazon RDS per le edizioni Enterprise, Standard, Standard One e Standard Two. Per le informazioni più recenti sulle versioni supportate, consulta [Using an Oracle Database as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) nella documentazione AWS. (I CloudFormation modelli AWS allegati utilizzano la versione 12c di Oracle come database di origine.)
+ Oracle SQL Developer 4.0.3

## Architecture
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-architecture"></a>

**Architettura di origine**
+ Database Oracle su Amazon EC2

**Architettura Target**
+ Amazon RDS per Oracle

**Architettura di migrazione**

![\[Cloud AWS architecture showing Oracle database migration from EC2 to RDS across availability zones.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4db0c731-0897-4eb8-a06f-b648c3d94b2c/images/636c2a69-5a78-482d-ae81-55e9ec975ead.png)


## Tools (Strumenti)
<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): AWS Database Migration Service (AWS DMS) ti aiuta a migrare i database su AWS in modo rapido e sicuro. Supporta migrazioni sia omogenee che eterogenee. Per informazioni sulle versioni e le edizioni del database Oracle supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) e [Using an Oracle Database as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) nella documentazione AWS.
+ **Oracle SQL Developer o SQL \$1Plus**: questi strumenti consentono di connettersi all'istanza DB Amazon RDS for Oracle.

## Epiche
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-epics"></a>

### Configura il tuo database di destinazione
<a name="set-up-your-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza database Amazon RDS for Oracle. | Accedere alla Console di gestione AWS e aprire la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/. Crea un'istanza DB Oracle selezionando il motore, il modello, l'impostazione delle credenziali del database, il tipo di istanza, lo storage, le impostazioni Multi-AZ, il cloud privato virtuale (VPC) e la configurazione, le credenziali di accesso e le impostazioni aggiuntive per il database Oracle. Per istruzioni, visualizza i collegamenti nella sezione «Risorse correlate». Oppure utilizza il CloudFormation modello AWS (Create\$1RDS.yaml) nell'allegato per creare l'istanza DB Amazon RDS for Oracle. | Developer | 
| Connect ad Amazon RDS e concedi i privilegi all'utente Oracle. | Modifica il gruppo di sicurezza per aprire le porte appropriate per la connessione dalla macchina locale e dall'istanza di replica AWS DMS. Quando configuri la connettività, assicurati che l'opzione «Accessibile pubblicamente» sia selezionata in modo da poterti connettere al database dall'esterno del VPC. Connettiti ad Amazon RDS con Oracle SQL Developer o SQL \$1Plus utilizzando le credenziali di accesso, crea un utente AWS DMS e fornisci i privilegi richiesti all'utente AWS DMS per modificare il database. | Developer | 

### Configura il gruppo di sicurezza dell'istanza di origine EC2
<a name="configure-the-security-group-of-the-source-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla se il database Oracle è attivo e funzionante. | Usa Secure Shell (SSH) per connetterti all' EC2 istanza e prova a connetterti al database Oracle utilizzando SQL \$1Plus. | Developer | 
| Modifica il gruppo di sicurezza. | Modifica il gruppo di sicurezza dell' EC2 istanza per aprire le porte appropriate, in modo da poterti connettere dal tuo computer locale e dall'istanza di replica AWS DMS. | Developer | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un'istanza di replica di AWS DMS. | In AWS DMS, crea un'istanza di replica nello stesso VPC dell'istanza DB Amazon RDS for Oracle. Specificare il nome e la descrizione dell'istanza di replica, scegliere la classe di istanza e la versione del motore di replica (utilizzare l'impostazione predefinita), scegliere il VPC in cui è stata creata l'istanza database Amazon RDS, impostare le impostazioni Multi-AZ se necessario, allocare lo storage, specificare la zona di disponibilità e configurare impostazioni aggiuntive. In alternativa, puoi utilizzare il CloudFormation modello AWS (DMS.yaml) nell'allegato per implementare questo passaggio. | DBA | 
| Connect agli endpoint del database di origine e di destinazione. | Crea gli endpoint del database di origine e di destinazione specificando l'identificatore dell'endpoint, il motore, il server, la porta, le credenziali di accesso e gli attributi di connessione aggiuntivi. Per il server di origine, utilizza il DNS pubblico dell' EC2 istanza che ospita il database Oracle. Per il server di destinazione, utilizza l'endpoint di Amazon RDS for Oracle. Esegui un test per verificare che le connessioni di origine e di destinazione funzionino. In alternativa, puoi utilizzare il CloudFormation modello AWS (DMS.yaml) nell'allegato per implementare questo passaggio. | DBA | 
| Crea un'attività AWS DMS. | Crea un'attività AWS DMS per migrare i dati dall'endpoint di origine all'endpoint di destinazione, per configurare la replica tra l'endpoint di origine e quello di destinazione o entrambi. Quando crei il task AWS DMS, specifica l'istanza di replica, l'endpoint di origine, l'endpoint di destinazione, il tipo di migrazione (solo dati, solo replica o entrambi), la mappatura delle tabelle e il filtro. Esegui l'attività AWS DMS, monitora l'attività, controlla le statistiche della tabella e controlla i log in Amazon. CloudWatch In alternativa, puoi utilizzare il CloudFormation modello AWS (DMS.yaml) nell'allegato per implementare questo passaggio. | DBA | 

## Risorse correlate
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-related-resources"></a>
+ [Creazione di un'istanza database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateOracleInstance.html)
+ [Connessione a un'istanza database che esegua il motore di database di Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToOracleInstance.html)
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Procedure dettagliate di AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Migrazione dei database Oracle sul cloud AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Allegati
<a name="attachments-4db0c731-0897-4eb8-a06f-b648c3d94b2c"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/4db0c731-0897-4eb8-a06f-b648c3d94b2c/attachments/attachment.zip)

# Esegui la migrazione di un database Oracle locale ad Amazon OpenSearch Service utilizzando Logstash
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash"></a>

*Aditya Goteti, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-summary"></a>

Questo modello descrive come spostare i dati da un database Oracle locale ad Amazon OpenSearch Service utilizzando Logstash. Include considerazioni sull'architettura e alcuni set di competenze e consigli richiesti. I dati possono provenire da una singola tabella o da più tabelle in cui sarà necessario eseguire una ricerca completa. 

OpenSearch Il servizio può essere configurato all'interno di un cloud privato virtuale (VPC) oppure può essere collocato pubblicamente con restrizioni basate su IP. Questo modello descrive uno scenario in cui il OpenSearch servizio è configurato all'interno di un VPC. Logstash viene utilizzato per raccogliere i dati dal database Oracle, analizzarli in formato JSON e quindi inserire i dati in Service. OpenSearch  

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Java 8 (richiesto da Logstash 6.4.3)
+ Connettività tra i server di database locali e le istanze Amazon Elastic Compute Cloud EC2 (Amazon) in un VPC, stabilita utilizzando AWS Virtual Private Network (AWS VPN)
+ Una query per recuperare i dati richiesti da inviare a Service dal database OpenSearch 
+ Driver JDBC (Oracle Java Database Connectivity)

**Limitazioni**
+ Logstash non è in grado di identificare i record eliminati definitivamente dal database 

**Versioni del prodotto**
+ Database Oracle 12c
+ OpenSearch Servizio 6.3
+ Logstash 6.4.3

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locale
+ VPN AWS locale

**Stack tecnologico Target**
+ VPC
+ EC2 istanza
+ OpenSearch servizio 
+ Logstash
+ NAT Gateway (per gli aggiornamenti del sistema operativo sulle EC2 istanze e per l'installazione di Java 8, Logstash e plugin)

**Architettura di migrazione dei dati**

![\[Come spostare i dati da un database Oracle locale ad Amazon OpenSearch Service utilizzando Logstash.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/09f6d2de-de2f-4ed6-af93-34b71b75a263/images/df6a61fb-09fb-49d4-a7e8-b04e88c003df.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-tools"></a>
+ Logstash 6.4.3
+ [Plugin di input JDBC (download e ulteriori informazioni)](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Plugin di output Logstash (\$1es) logstash-output-amazon](https://github.com/awslabs/logstash-output-amazon_es)
+ Driver Oracle JDBC

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica la dimensione dei dati di origine. | La dimensione dei dati di origine è uno dei parametri utilizzati per determinare il numero di shard da configurare in un indice. | DBA, sviluppatore di database | 
| Analizza i tipi di dati di ogni colonna e i dati corrispondenti. | OpenSearch Il servizio mappa dinamicamente il tipo di dati quando nel documento viene trovato un campo mai visto in precedenza. Se esistono tipi o formati di dati specifici (ad esempio campi data) che devono essere dichiarati in modo esplicito, identifica i campi e definisci la mappatura per tali campi durante la creazione dell'indice. | Proprietario dell'app, sviluppatore, sviluppatore di database | 
| Determina se ci sono colonne con chiavi primarie o uniche. | Per evitare la duplicazione dei record in Amazon OpenSearch Service durante gli aggiornamenti o gli inserimenti, devi configurare l'`document_id`impostazione nella sezione di output del `amazon_es` plug-in (ad esempio, `document_id => "%{customer_id}"` `customer_id` dov'è una chiave primaria). | Proprietario dell'app, sviluppatore | 
| Analizza il numero e la frequenza dei nuovi record aggiunti; controlla la frequenza con cui i record vengono eliminati. | Questa attività è necessaria per comprendere il tasso di crescita dei dati di origine. Se i dati vengono letti in modo intensivo e gli inserimenti sono rari, è possibile disporre di un unico indice. Se i nuovi record vengono inseriti frequentemente e non vi sono eliminazioni, la dimensione dello shard può facilmente superare la dimensione massima consigliata di 50 GB. In questo caso, puoi creare dinamicamente un indice configurando i modelli di indice in Logstash e nel codice a cui puoi accedervi utilizzando un alias. | Proprietario dell'app, sviluppatore | 
| Determina quante repliche sono necessarie. |  | Proprietario dell'app, sviluppatore | 
| Determina il numero di shard da configurare nell'indice. |  | Proprietario dell'app, sviluppatore | 
| Identifica i tipi di istanza per i nodi master dedicati, i nodi di dati e l' EC2 istanza. | Per ulteriori informazioni, consulta la sezione [Risorse correlate](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). | Proprietario dell'app, sviluppatore | 
| Determina il numero di nodi master e nodi dati dedicati richiesti. | Per ulteriori informazioni, consulta la sezione [Risorse correlate](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). |  | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia un' EC2 istanza. | Avvia un' EC2 istanza all'interno del VPC a cui è connessa AWS VPN. | Costrutti Amazon VPC, AWS VPN | 
| Installa Logstash sull'istanza. EC2  |  | Developer | 
| Installa i plugin Logstash. | Installa i plugin Logstash richiesti e. `jdbc-input` ` logstash-output-amazon_es` | Developer | 
| Configura Logstash. | Crea il keystore Logstash per archiviare informazioni sensibili come le chiavi di AWS Secrets Manager e le credenziali del database, quindi inserisci i riferimenti in un file di configurazione Logstash. | Developer | 
| Configura la coda di lettere morte e la coda persistente. | Per impostazione predefinita, quando Logstash rileva un evento che non può elaborare perché i dati contengono un errore di mappatura o qualche altro problema, la pipeline Logstash si blocca o elimina l'evento non riuscito. Per proteggersi dalla perdita di dati in questa situazione, puoi configurare Logstash in modo che scriva gli eventi non riusciti in una coda di lettere morte anziché eliminarli. Per proteggersi dalla perdita di dati durante un'interruzione anomala, Logstash dispone di una funzione di coda persistente che memorizzerà la coda dei messaggi su disco. Le code persistenti garantiscono la durabilità dei dati in Logstash. | Developer | 
| Crea il dominio Amazon OpenSearch Service. | Crea il dominio Amazon OpenSearch Service con una policy di accesso che non richieda la firma di richieste con credenziali AWS Identity and Access Management (IAM). Il dominio Amazon OpenSearch Service deve essere creato all'interno dello stesso VPC. Dovresti anche selezionare i tipi di istanza e impostare il numero di nodi dedicati e master in base all'analisi. | Developer | 
| Configura i log di Amazon OpenSearch Service richiesti. | Per ulteriori informazioni, consulta la [documentazione del OpenSearch servizio](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html). |  | 
| Crea l'indice. |  | Developer | 
| Avvia Logstash. | Esegui Logstash come servizio in background. Logstash esegue la query SQL configurata, estrae i dati, li converte in formato JSON e li invia al servizio. OpenSearch Per il caricamento iniziale, non configurare lo scheduler nel file di configurazione di Logstash. | Developer | 
| Controlla i documenti. | Controlla il numero di documenti nell'indice e se tutti i documenti sono presenti nel database di origine. Durante il caricamento iniziale, vengono aggiunti all'indice e utilizzati per arrestare Logstash. Modifica la configurazione di Logstash per aggiungere uno scheduler che venga eseguito a intervalli fissi in base ai requisiti del client e riavvia Logstash. Logstash selezionerà solo i record che sono stati aggiornati o aggiunti dopo l'ultima esecuzione e il timestamp dell'ultima esecuzione viene archiviato nel file configurato con la proprietà nel file di configurazione di Logstash. `last_run_metadata_path => "/usr/share/logstash/.logstash_jdbc_last_run"` | Developer | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources"></a>
+ [Allarmi consigliati CloudWatch ](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html) 
+ [Nodi master dedicati OpenSearch di Amazon Service](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains-dedicatedmasternodes.html) 
+ [Dimensionamento dei domini di OpenSearch servizio Amazon](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/sizing-domains.html) 
+ [Documentazione Logstash](https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html) 
+ [Plugin di input JDBC](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Plugin di output Logstash](https://github.com/awslabs/logstash-output-amazon_es)
+ [Sito web Amazon OpenSearch Service](https://aws.amazon.com/elasticsearch-service/) 

# Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle"></a>

*Baji Shaik e Pavan Pusuluri, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-summary"></a>

Questo modello descrive i passaggi per la migrazione dei database Oracle locali ad Amazon Relational Database Service (Amazon RDS) per Oracle. Come parte del processo di migrazione, crei un piano di migrazione e consideri i fattori importanti dell'infrastruttura di database di destinazione in base al database di origine. È possibile scegliere una delle due opzioni di migrazione in base ai requisiti aziendali e al caso d'uso:
+ AWS Database Migration Service (AWS DMS): puoi utilizzare AWS DMS per migrare i database nel cloud AWS in modo rapido e sicuro. Il database di origine rimane pienamente operativo durante la migrazione, il che riduce al minimo i tempi di inattività delle applicazioni che si basano sul database. Puoi ridurre i tempi di migrazione utilizzando AWS DMS per creare un'attività che registri le modifiche in corso dopo aver completato una migrazione iniziale a pieno carico tramite un processo chiamato [change data capture (](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)CDC). 
+ [Strumenti Oracle nativi: puoi migrare i database utilizzando strumenti Oracle nativi, come Oracle e Data Pump Export e [Data Pump Import with](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL200)[Oracle for](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300) CDC. GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) È inoltre possibile utilizzare strumenti Oracle nativi come l'[utilità Export originale e l'utilità](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#SUTIL3634) [Import](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#SUTIL001) originale per ridurre il tempo di caricamento completo.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle locale
+ Un'istanza di database Amazon RDS Oracle (DB)

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ Versioni Oracle 11g (versioni 11.2.0.3.v1 e successive) e fino a 12.2 e 18c. Per l'elenco più recente delle versioni ed edizioni supportate, consulta [Amazon RDS for](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle nella documentazione AWS. Per le versioni Oracle supportate da AWS DMS, consulta [Using an Oracle database as a source for AWS DMS nella documentazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) di AWS DMS.

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locali

**Stack tecnologico Target**
+ Amazon RDS per Oracle

**Architettura di origine e destinazione**

Il diagramma seguente mostra come migrare un database Oracle locale ad Amazon RDS for Oracle utilizzando AWS DMS.

![\[Flusso di lavoro per la migrazione dei database Oracle ad Amazon RDS for Oracle utilizzando AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/20f94a5c-1095-4182-b964-c379414c9a36.png)


Il diagramma mostra il flusso di lavoro seguente:

1. [Crea o usa un utente del database esistente, concedi le [autorizzazioni AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed) richieste a quell'utente, attiva la [modalità ARCHIVELOG](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode) e quindi configura la registrazione supplementare.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging)

1. Configura il gateway Internet tra la rete locale e la rete AWS.

1. Configura gli [endpoint di origine e destinazione](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) per AWS DMS.

1. Configura le [attività di replica di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) per migrare i dati dal database di origine al database di destinazione.

1. Completa le attività successive alla migrazione sul database di destinazione.

Il diagramma seguente mostra come migrare un database Oracle locale ad Amazon RDS for Oracle utilizzando strumenti Oracle nativi.

![\[Flusso di lavoro per la migrazione dei database Oracle ad Amazon RDS for Oracle utilizzando gli strumenti Oracle.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/af8e0e1a-d4c8-4d99-9780-3e093ad9a257.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Crea o utilizza un utente del database esistente e concedi le autorizzazioni necessarie per eseguire il backup del database Oracle utilizzando le utilità Oracle Export (`exp`) e Import (`imp`).

1. Configura il gateway Internet tra la rete locale e la rete AWS.

1. Configura il client Oracle sull'host [Bastion](https://www.oracle.com/security/cloud-security/bastion/) per utilizzare il database di backup.

1. Carica il database di backup in un bucket Amazon Simple Storage Service (Amazon S3).

1. Ripristina il backup del database da Amazon S3 su un database Amazon RDS for Oracle.

1. Configura Oracle GoldenGate per CDC.

1. Completa le attività successive alla migrazione sul database di destinazione.

## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ Gli strumenti nativi di Oracle ti aiutano a eseguire una migrazione omogenea. È possibile utilizzare [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) per migrare i dati tra i database di origine e di destinazione. Questo modello utilizza Oracle Data Pump per eseguire il caricamento completo dal database di origine al database di destinazione.
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) consente di eseguire la replica logica tra due o più database. Questo modello viene utilizzato GoldenGate per replicare le modifiche delta dopo il caricamento iniziale utilizzando Oracle Data Pump.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea documenti di progetto e registra i dettagli del database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Identifica i requisiti di archiviazione. | Identifica e documenta i tuoi requisiti di archiviazione, tra cui:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html)Per i [volumi SSD General Purpose (gp2)](https://aws.amazon.com/ebs/volume-types/), ottieni tre IOPS per 1 GB di storage. Alloca lo storage calcolando il numero totale di IOPS di lettura e scrittura sul database di origine. | DBA, SysAdmin | 
| Scegli il tipo di istanza corretto in base ai requisiti di elaborazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | SysAdmin | 
| Identifica i requisiti di sicurezza dell'accesso alla rete. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Identifica la strategia di migrazione delle applicazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin proprietario dell'app | 
| Identifica i rischi legati alla migrazione. | Valuta i rischi e le mitigazioni specifici della migrazione del database e dei documenti. Esempio:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un VPC. | [Crea un nuovo Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html) per l'istanza DB di destinazione. | SysAdmin | 
| Crea gruppi di sicurezza. | [Crea un gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) nel tuo nuovo VPC per consentire le connessioni in entrata all'istanza DB. | SysAdmin | 
| Crea un'istanza database Amazon RDS for Oracle. | [Crea l'istanza DB di destinazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) con il nuovo VPC e il nuovo gruppo di sicurezza, quindi avvia l'istanza. | SysAdmin | 

### Opzione 1: utilizza strumenti nativi Oracle o di terze parti per migrare i dati
<a name="option-1---use-native-oracle-or-third-party-tools-to-migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare il database di origine. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Preparare il database di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 

### Opzione 2: usa AWS DMS per migrare i dati
<a name="option-2---use-aws-dms-to-migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare i dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Migrare i dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Passa i client applicativi alla nuova infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, proprietario dell' SysAdminapp | 
| Implementa il tuo piano di rollback. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, proprietario dell'app | 

### Chiudi il progetto di migrazione
<a name="close-out-the-migration-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare le risorse. | Chiudi o rimuovi le risorse AWS temporanee, come l'istanza di replica AWS DMS e il bucket S3. | DBA, SysAdmin | 
| Rivedi i documenti del progetto. | Esamina i documenti e gli obiettivi di pianificazione della migrazione, quindi conferma di aver completato tutti i passaggi di migrazione richiesti. | DBA SysAdmin, proprietario dell'app | 
| Raccogli le metriche. | Registra i principali parametri di migrazione, tra cui il tempo impiegato per completare la migrazione, la percentuale di attività manuali rispetto a quelle basate su strumenti, i risparmi sui costi e altre metriche pertinenti. | DBA, proprietario dell'app SysAdmin | 
| Chiudi il progetto. | Chiudi il progetto di migrazione e raccogli il feedback sull'iniziativa. | DBA SysAdmin, proprietario dell'app | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-resources"></a>

**Riferimenti**
+ [Migrazione dei database Oracle al cloud AWS (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html) Prescriptive Guidance)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/) (documentazione AWS DMS)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/) (documentazione Amazon RDS)

**Tutorial e video**
+ [Guida introduttiva ad AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/) (documentazione AWS DMS)
+ [Risorse Amazon RDS](https://aws.amazon.com/rds/getting-started/) (documentazione Amazon RDS)
+ [AWS Database Migration Service (DMS) (YouTube)](https://www.youtube.com/watch?v=zb4GcjEdl8U)

# Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle utilizzando 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, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Questo modello descrive come migrare un database Oracle da un data center locale a un'istanza Amazon Relational Database Service (Amazon RDS) per Oracle DB utilizzando Oracle Data Pump. 

Il modello prevede la creazione di un file di dump dei dati dal database di origine, l'archiviazione del file in un bucket Amazon Simple Storage Service (Amazon S3) e il ripristino dei dati su un'istanza DB Amazon RDS for Oracle. Questo modello è utile in caso di limitazioni nell'utilizzo di AWS Database Migration Service (AWS DMS) per la migrazione. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Le autorizzazioni necessarie per creare ruoli in AWS Identity and Access Management (IAM) e per un caricamento multiparte di Amazon S3
+ Le autorizzazioni necessarie per esportare i dati dal database di origine
+ [AWS Command Line Interface (AWS CLI[) installata e configurata](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Versioni del prodotto**
+ Oracle Data Pump è disponibile solo per Oracle Database 10g Release 1 (10.1) e versioni successive.

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locali

**Stack tecnologico Target**
+ Amazon RDS per Oracle
+ Client SQL (Oracle SQL Developer)
+ Un bucket S3

**Architettura di origine e destinazione**

![\[Caricamento multiparte di Amazon S3 da un database Oracle locale su Amazon RDS utilizzando Oracle Data Pump.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**Servizi AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle. In questo modello, IAM viene utilizzato per creare i ruoli e le policy necessari per la migrazione dei dati da Amazon S3 ad Amazon RDS for Oracle.
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Altri strumenti**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ti aiuta a spostare dati e metadati da un database all'altro a velocità elevate. In questo modello, Oracle Data Pump viene utilizzato per esportare il file di dump dei dati (.dmp) sul server Oracle e per importarlo in Amazon RDS for Oracle. Per ulteriori informazioni, consulta [Importazione di dati in Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) nella documentazione di Amazon RDS.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) è un ambiente di sviluppo integrato che semplifica lo sviluppo e la gestione dei database Oracle in implementazioni tradizionali e basate su cloud. Interagisce sia con il database Oracle locale che con Amazon RDS for Oracle per eseguire i comandi SQL necessari per l'esportazione e l'importazione dei dati.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Creare un bucket S3
<a name="create-an-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket. | Per creare il bucket S3, segui le istruzioni nella documentazione [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Amministratore di sistema AWS | 

### Crea il ruolo IAM e assegna le politiche
<a name="create-the-iam-role-and-assign-policies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le autorizzazioni IAM. | Per configurare le autorizzazioni, segui le istruzioni nella [documentazione di AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Amministratore di sistema AWS | 

### Crea l'istanza database Amazon RDS for Oracle di destinazione e associa il ruolo di integrazione di Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS for Oracle di destinazione. | Per creare l'istanza Amazon RDS for Oracle, segui le istruzioni nella documentazione [AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html). | Amministratore di sistema AWS | 
| Associa il ruolo all'istanza DB. | Per associare il ruolo all'istanza, segui le istruzioni nella [documentazione AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | DBA | 

### Crea l'utente del database sul database di destinazione
<a name="create-the-database-user-on-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l’utente. | Connect al database Amazon RDS for Oracle di destinazione da Oracle SQL Developer o SQL\$1Plus ed esegui il seguente comando SQL per creare l'utente in cui importare lo schema.<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 | 

### Crea il file di esportazione dal database Oracle di origine
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un file di dump dei dati. | Per creare un file di dump denominato `sample.dmp` nella `DATA_PUMP_DIR` directory per l'esportazione dell'`SAMPLE_SCHEMA`utente, utilizzare lo script seguente.<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>Controlla i dettagli dell'esportazione esaminando il `export.log` file nella tua directory locale`DATA_PUMP_DIR`.  | DBA | 

### Carica il file di dump nel bucket S3
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica il file di dump dei dati dall'origine al bucket S3. | Utilizzando AWS CLI, esegui il seguente comando.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Scarica il file di esportazione dal bucket S3 all'istanza RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il file di dump dei dati su Amazon RDS | Per copiare il file di dump `sample.dmp` dal bucket S3 al database Amazon RDS for Oracle, esegui il seguente comando SQL. In questo esempio, il `sample.dmp` file viene scaricato dal `my-s3-integration1` bucket S3 nella directory Oracle. `DATA_PUMP_DIR` Assicurati di disporre di spazio su disco sufficiente all'istanza RDS per ospitare sia il database che il file di esportazione.<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>Il comando precedente restituisce un ID di attività. Per verificare lo stato del download esaminando i dati nell'ID dell'attività, esegui il comando seguente.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Per visualizzare i file nella `DATA_PUMP_DIR` directory, esegui il comando seguente.<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> | Amministratore di sistema AWS | 

### Importa il file di dump nel database di destinazione
<a name="import-the-dump-file-into-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ripristina lo schema e i dati su Amazon RDS. | Per importare il file di dump nello schema del `sample_schema` database, esegui il seguente comando SQL da SQL Developer o 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>Per visualizzare il file di registro dell'importazione, esegui il comando seguente.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Rimuovi il file di dump dalla directory DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Elenca e pulisci i file di esportazione. | Elenca e rimuovi i file di esportazione nella `DATA_PUMP_DIR` directory, esegui i seguenti comandi.<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> | Amministratore di sistema AWS | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integrazione con Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Crea un'istanza DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Importazione di dati in Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Documentazione Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [Documentazione IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Documentazione 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/)

# Esegui la migrazione da PostgreSQL su Amazon RDS per PostgreSQL utilizzando EC2 pglogical
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical"></a>

*Rajesh Madiwale, Amazon Web Services*

## Riepilogo
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-summary"></a>

**Questo modello descrive i passaggi per la migrazione di un database PostgreSQL (versione 9.5 e successive) da Amazon Elastic Compute Cloud (Amazon) ad Amazon Relational Database EC2 Service (Amazon RDS) per PostgreSQL utilizzando l'estensione pglogica PostgreSQL.** Amazon RDS ora supporta l'estensione pglogical per PostgreSQL versione 10.

## Prerequisiti e limitazioni
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-prereqs"></a>

**Prerequisiti**
+ Scegli il tipo giusto di istanza Amazon RDS. Per ulteriori informazioni, consulta la sezione [Tipi di istanze Amazon RDS](https://aws.amazon.com/rds/instance-types/). 
+ Assicurati che le versioni di origine e di destinazione di PostgreSQL siano le stesse.   
+ Installa e integra l'estensione [**pglogical** con PostgreSQL](https://github.com/2ndQuadrant/pglogical) su Amazon. EC2 

**Versioni del prodotto**
+ PostgreSQL versione 10 e successive su Amazon RDS, con le funzionalità supportate su Amazon RDS (vedi [PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) su Amazon RDS nella documentazione AWS). Questo modello è stato testato migrando PostgreSQL 9.5 alla versione 10 di PostgreSQL su Amazon RDS, ma si applica anche alle versioni successive di PostgreSQL su Amazon RDS. 

## Architecture
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-architecture"></a>

**Architettura di migrazione dei dati**

![\[Architettura di migrazione dei dati per PostgreSQL su Amazon RDS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/29af3931-48de-499f-9c4b-e10a98e4bba5/images/5f5b906f-dc1a-49a5-ae3f-3e10ae854784.png)


## Tools (Strumenti)
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-tools"></a>
+ [https://github.com/2ndQuadrant/pglogical](https://github.com/2ndQuadrant/pglogical) pglogica
+ [https://www.postgresql.org/docs/9.5/app-pgdump.html](https://www.postgresql.org/docs/9.5/app-pgdump.html)

## Epiche
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-epics"></a>

### Migra i dati utilizzando l'estensione pglogical
<a name="migrate-data-by-using-the-pglogical-extension"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza database Amazon RDS PostgreSQL. | Configura un'istanza DB PostgreSQL in Amazon RDS. Per istruzioni, consulta la documentazione di [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html). | DBA | 
| Ottieni un dump dello schema dal database PostgreSQL di origine e ripristinalo nel database PostgreSQL di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Attiva la decodifica logica. | Nel gruppo di parametri Amazon RDS DB, imposta il parametro `rds.logical_replication` statico su 1. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalDecoding). | DBA | 
| Crea l'estensione pglogical sui database di origine e di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Crea un editore sul database PostgreSQL di origine. | Per creare un editore, esegui:<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 | 
| Crea un set di replica, aggiungi tabelle e sequenze. | Per creare un set di replica sul database PostgreSQL di origine e aggiungere tabelle e sequenze al set di replica, esegui:<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 | 
| Crea un abbonato. | Per creare un sottoscrittore sul database PostgreSQL di destinazione, esegui:<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 | 
| Crea un abbonamento. | Per creare un abbonamento sul database PostgreSQL di destinazione, esegui:<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 | 

### Convalida i tuoi dati
<a name="validate-your-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla i database di origine e di destinazione. | Controlla i database di origine e di destinazione per confermare che i dati vengano replicati correttamente. È possibile eseguire la convalida di base utilizzando le `select count(1)` tabelle di origine e destinazione. | DBA | 

## Risorse correlate
<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 logica per PostgreSQL su Amazon RDS (documentazione Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication) RDS)
+ [GitHub pglogical](https://github.com/2ndQuadrant/pglogical) (repository)
+ [Limitazioni di pglogical](https://github.com/2ndQuadrant/pglogical#limitations-and-restrictions) (file README del repository) GitHub 
+ [Migrazione di PostgreSQL da locale o Amazon ad EC2 Amazon RDS](https://aws.amazon.com/blogs/database/migrating-postgresql-from-on-premises-or-amazon-ec2-to-amazon-rds-using-logical-replication/) utilizzando la replica logica (blog AWS Database)

# Esegui la migrazione di un database PostgreSQL locale su Aurora PostgreSQL
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql"></a>

*Baji Shaik e Jitender Kumar, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-summary"></a>

Amazon Aurora PostgreSQL Compatible Edition combina le prestazioni e la disponibilità dei database commerciali di fascia alta con la semplicità e la convenienza dei database open source. Aurora offre questi vantaggi scalando lo storage su tre zone di disponibilità nella stessa regione AWS e supporta fino a 15 istanze di replica in lettura per scalare i carichi di lavoro di lettura e fornire un'elevata disponibilità all'interno di una singola regione. Utilizzando un database globale Aurora, puoi replicare i database PostgreSQL in un massimo di cinque regioni per l'accesso in lettura remota e il disaster recovery in caso di errore di una regione. Questo modello descrive i passaggi per la migrazione di un database di origine PostgreSQL locale a un database Aurora compatibile con PostgreSQL. [https://www.postgresql.org/docs/current/app-pgrestore.html](https://www.postgresql.org/docs/current/app-pgrestore.html) 

I passaggi descritti in questo modello si applicano anche ai database PostgreSQL di destinazione su istanze Amazon Relational Database Service (Amazon RDS) e Amazon Elastic Compute Cloud (Amazon). EC2

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database sorgente PostgreSQL in un data center locale
+ [Un'istanza DB Aurora compatibile con PostgreSQL o un'istanza DB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html) [for PostgreSQL](https://aws.amazon.com/getting-started/hands-on/create-connect-postgresql-db/)

**Limitazioni**
+ I limiti di dimensione del database sono 64 TB per Amazon RDS for PostgreSQL e 128 TB per Aurora PostgreSQL compatibile.
+ Se utilizzi l'opzione di migrazione AWS DMS, [consulta le limitazioni di AWS DMS sull'utilizzo di un database PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.Limitations) come sorgente.

**Versioni del prodotto**
+ Per il supporto delle versioni principali e secondarie di PostgreSQL in Amazon RDS, consulta gli aggiornamenti di Amazon RDS for [PostgreSQL nella documentazione di Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) RDS.
+ Per il supporto di PostgreSQL in Aurora, consulta gli aggiornamenti di [Amazon Aurora PostgreSQL nella documentazione di Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html).
+ Se utilizzi l'opzione di migrazione AWS DMS, consulta le versioni [PostgreSQL supportate](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) nella documentazione di AWS DMS.

## Architecture
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-architecture"></a>

**Stack tecnologico di origine**
+ Database PostgreSQL locale

**Stack tecnologico Target**
+ Istanza DB Aurora compatibile con PostgreSQL

**Architettura di origine**

![\[Architettura di origine per il database PostgreSQL locale\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/a8621ad3-781b-45a9-86a8-d0b0ec5c79ea.png)


**Architettura di destinazione**

![\[Architettura di destinazione per il database PostgreSQL su Amazon Aurora\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/fc2ec0cb-7b9b-4cc0-b70c-40e47c2f4c45.png)


**Architettura di migrazione dei dati**

*Utilizzo di AWS DMS*

![\[Migrazione di un database PostgreSQL locale ad Aurora utilizzando AWS DMS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/5336adb4-e9eb-47d0-a5b5-d149261b1638.png)


*Utilizzo di strumenti PostgreSQL nativi*

![\[Migrazione di un database PostgreSQL locale su Aurora utilizzando pg_dump e pg_restore\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/3c6fb533-45ff-443e-bfb1-97e60cbdd583.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali. Questo servizio supporta diverse fonti e database di destinazione. Per informazioni su come convalidare le versioni e le edizioni del database PostgreSQL di origine e destinazione supportate per l'uso con AWS DMS, consulta Usare [un database PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) come sorgente AWS DMS. Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.
+ [https://www.postgresql.org/docs/current/app-pgrestore.html](https://www.postgresql.org/docs/current/app-pgrestore.html)

## Epiche
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-epics"></a>

### Analizza la migrazione
<a name="analyze-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni del database di origine e di destinazione. | Se utilizzi AWS DMS, assicurati di utilizzare una [versione supportata di PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html).  | DBA | 
| Identifica il tipo di storage e i requisiti di capacità. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, amministratore di sistema | 
| Scegli il tipo di istanza, la capacità, le funzionalità di archiviazione e le funzionalità di rete corretti. | Determina i requisiti di elaborazione dell'istanza di database di destinazione. Esamina i problemi di prestazioni noti che potrebbero richiedere ulteriore attenzione. Considerate i seguenti fattori per determinare il tipo di istanza appropriato:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Per ulteriori informazioni, consulta le [classi di istanze di Aurora DB nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) di Aurora. | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. | Determinate i gruppi di sicurezza appropriati che consentano all'applicazione di comunicare con il database. | DBA, amministratore di sistema | 
| Identifica la strategia di migrazione delle applicazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietario dell'app, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un VPC. | Crea un nuovo cloud privato virtuale (VPC) per l'istanza del database di destinazione. | Amministratore di sistema | 
| Crea gruppi di sicurezza. | Crea un gruppo di sicurezza all'interno del VPC (come determinato nell'epic precedente) per consentire le connessioni in entrata all'istanza del database.  | Amministratore di sistema | 
| Configura e avvia il cluster Aurora DB. | Crea l'istanza del database di destinazione con il nuovo VPC e il nuovo gruppo di sicurezza e avvia l'istanza. | Amministratore di sistema | 

### Migrazione dei dati ‒ opzione 1 (utilizzando AWS DMS)
<a name="migrate-data-option-1-using-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Completa i passaggi precedenti alla migrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Completa i passaggi di migrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Convalida i dati. | Per garantire che i dati siano stati migrati con precisione dall'origine alla destinazione, segui i [passaggi di convalida dei dati](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) nella documentazione di AWS DMS. | DBA | 

### Migrazione dei dati ‒ opzione 2 (usando pg\$1dump e pg\$1restore)
<a name="migrate-data-option-2-using-pg_dump-and-pg_restore"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare il database di origine. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Per ulteriori informazioni, consulta la documentazione di [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html) e la procedura [dettagliata](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) nella documentazione di AWS DMS. | DBA | 
| Preparare il database di destinazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Per ulteriori informazioni, consulta la documentazione di [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) e la [procedura dettagliata](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) nella documentazione di AWS DMS. | DBA | 
| Convalida i dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. | Implementa la strategia di migrazione delle applicazioni che hai creato nella prima epic. | DBA, proprietario dell'app, amministratore di sistema | 

### Passa al database di destinazione
<a name="cut-over-to-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietario dell'app, amministratore di sistema | 
| Se è necessario ripristinare la migrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse. | Chiudi le risorse AWS temporanee. | DBA, amministratore di sistema | 
| Convalida i documenti. | Rivedi e convalida i documenti del progetto. | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli le metriche. | Raccogli le metriche in tempo utile per la migrazione, la percentuale di risparmio sui costi manuali rispetto a quelli relativi agli strumenti e così via. | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto. | Chiudi il progetto e fornisci eventuali feedback. | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-resources"></a>

**Riferimenti**
+ [Servizio di migrazione dati AWS](https://aws.amazon.com/dms/)
+ [VPCs e Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.html)
+ [Prezzi di Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Utilizzo di un database PostgreSQL come sorgente AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html)
+ [Come creare un'istanza di replica AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/)
+ [Come creare endpoint di origine e destinazione utilizzando AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-source-target-endpoints-aws-dms/)

**Altre risorse**
+ [Guida introduttiva ad AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Procedure dettagliate sulla migrazione step-by-step dei dati](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Risorse Amazon Aurora](https://aws.amazon.com/rds/aurora/getting-started/)

# Esegui la migrazione di un database Microsoft SQL Server locale a Microsoft SQL Server su Amazon EC2 con Linux
<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*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-summary"></a>

Questo modello descrive come migrare da un database Microsoft SQL Server locale in esecuzione su Microsoft Windows a Microsoft SQL Server su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux utilizzando utilità di backup e ripristino.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ AMI Amazon EC2 Linux (Amazon Machine Image) con Microsoft SQL Server
+ AWS Direct Connect tra Windows locale e Microsoft SQL Server sull'istanza Linux EC2 

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-architecture"></a>

**Stack tecnologico di origine**
+ Database Microsoft SQL Server locale

**Stack tecnologico Target**
+  EC2 Istanza Linux con un database Microsoft SQL Server

**Architettura di migrazione del database**

![\[Diagramma di architettura per migrare un database SQL Server locale su un'istanza Linux. EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f331ad15-2d41-4087-a6d1-60e3443e2acf/images/f50a779a-ce5d-44b1-8d37-dedd6400a12c.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-tools"></a>
+ **WinSCP** - Questo strumento consente agli utenti Windows di condividere facilmente file con utenti Linux.
+ **Sqlcmd** - Questa utilità da riga di comando consente di inviare istruzioni o batch T-SQL a istanze locali e remote di SQL Server. L'utilità è estremamente utile per attività ripetitive di database come l'elaborazione in batch o il test delle unità.

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-epics"></a>

### Prepara l'istanza EC2 Linux con SQL Server
<a name="prepare-the-ec2-linux-instance-with-sql-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Seleziona un'AMI che fornisca il sistema operativo Linux e includa Microsoft SQL Server. |  | Amministratore di sistema | 
| Configura l'AMI per creare un' EC2 istanza. |  | Amministratore di sistema | 
| Crea regole in entrata e in uscita per i gruppi di sicurezza. |  | Amministratore di sistema | 
| Configurare l' EC2 istanza Linux per un database Microsoft SQL Server. |  | DBA | 
| Crea utenti e fornisci le autorizzazioni come nel database di origine. |  | Proprietario dell'app, DBA | 
| Installa gli strumenti di SQL Server e l'utilità sqlcmd sull'istanza Linux. EC2  |  | DBA | 

### Esegui il backup del database e sposta il file di backup sull'istanza Linux EC2
<a name="back-up-the-database-and-move-backup-file-to-linux-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire il backup del database SQL Server locale. |  | DBA | 
| Installa WinSCP su Microsoft SQL Server. |  | DBA | 
| Sposta il file di backup nell' EC2 istanza Linux che esegue Microsoft SQL Server. |  | DBA | 

### Ripristina il database sull' EC2 istanza Linux che esegue SQL Server
<a name="restore-the-database-on-linux-ec2-instance-running-sql-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ripristina il database dal file di backup del database utilizzando l'utilità sqlcmd. |  | DBA | 
| Convalida oggetti e dati del database. |  | Sviluppatore, tecnico di test | 

### Passa da Windows SQL Server a Windows SQL Server su EC2 istanza Linux
<a name="cut-over-from-windows-sql-server-to-windows-sql-server-on-linux-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida oggetti e dati del database. |  | Sviluppatore, tecnico di test | 
| Passa dal database Microsoft SQL Server locale all' EC2 istanza Linux che esegue Microsoft SQL Server. |  | DBA | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-resources"></a>
+ [Come configurare SQL Server 2017 su Amazon Linux e Ubuntu AMIs](https://aws.amazon.com/blogs/database/configuring-sql-server-2017-on-amazon-linux-2-and-ubuntu-amis/) 
+ [Installazione di strumenti SQL su un'istanza Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL) 
+ [Backup e ripristino da un database Microsoft SQL Server locale a Microsoft SQL Server su un'istanza 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) 

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando server collegati
<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*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-summary"></a>

I server collegati consentono a Microsoft SQL Server di eseguire istruzioni SQL su altre istanze di server di database. Questo modello descrive come migrare il database locale di Microsoft SQL Server su Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server per ottenere costi inferiori e maggiore disponibilità. Attualmente, Amazon RDS per Microsoft SQL Server non supporta connessioni al di fuori di una rete Amazon Virtual Private Cloud (Amazon VPC). 

Puoi utilizzare questo modello per raggiungere i seguenti obiettivi:
+ Per migrare Microsoft SQL Server ad Amazon RDS per Microsoft SQL Server senza interrompere le funzionalità dei server collegati.
+ Per assegnare priorità e migrare Microsoft SQL Server collegato in diverse fasi.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Verifica se [Microsoft SQL Server su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) supporta le funzionalità richieste. 
+ Assicurati di poter utilizzare [Amazon RDS for Microsoft SQL Server con regole di confronto predefinite o regole di confronto impostate su livelli](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) di database. 

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-architecture"></a>

**Stack tecnologico di origine**
+ Database locali (Microsoft SQL Server)

 **Stack tecnologico Target**
+ Amazon RDS per SQL Server

**Architettura dello stato di origine**

![\[Diagram showing data replication between two data centers with primary and secondary SQL servers.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/776b453a-7fa0-43fd-b1ca-fb9e5cc21820.png)


 

 

 

 

 

 

 

 

 

 

 

 

**Architettura dello stato di destinazione**

Nello stato di destinazione, esegui la migrazione da Microsoft SQL Server ad Amazon RDS per Microsoft SQL Server utilizzando server collegati. Questa architettura utilizza un Network Load Balancer per inoltrare il traffico da Amazon RDS per Microsoft SQL Server ai server locali che eseguono Microsoft SQL Server. Il diagramma seguente mostra la funzionalità reverse proxy per Network Load Balancer.

![\[Cloud AWS architecture with RDS SQL Server instances in two availability zones and on-premises databases.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/6bdbdfbf-b048-4fbd-acef-0aeb826edb50.png)


 

## Tools (Strumenti)
<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 per SQL Server in più zone di disponibilità (multipleAZs)
+ AWS Database Migration Service (AWS DMS) 

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-epics"></a>

### Crea un VPC per una landing zone
<a name="create-a-landing-zone-vpc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'allocazione CIDR. |  | AWS SysAdmin | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  | AWS SysAdmin | 
| Crea le sottoreti VPC. |  | AWS SysAdmin | 
| Crea gli elenchi di controllo degli accessi alle sottoreti (ACLs). |  | AWS SysAdmin | 
| Crea le tabelle di routing delle sottoreti. |  | AWS SysAdmin | 
| Crea una connessione con AWS Direct Connect o AWS Virtual Private Network (VPN). |  | AWS SysAdmin | 

### Esegui la migrazione del database su Amazon RDS
<a name="migrate-the-database-to-amazon-rds"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza DB Amazon RDS per Microsoft SQL Server. |  | AWS SysAdmin | 
| Creare un'istanza di replica di AWS DMS. |  | AWS SysAdmin | 
| Crea gli endpoint del database di origine e di destinazione in AWS DMS. |  | AWS SysAdmin | 
| Crea l'attività di migrazione e imposta la replica continua su ON dopo un carico completo. |  | AWS SysAdmin | 
| Richiedi una modifica del firewall per consentire ad Amazon RDS for Microsoft SQL Server di accedere ai database SQL Server locali. |  | AWS SysAdmin | 
| Crea un Network Load Balancer. |  | AWS SysAdmin | 
| Crea un gruppo target destinato ai server di database nel tuo data center | Ti consigliamo di utilizzare i nomi host nella configurazione di destinazione per incorporare gli eventi di failover del data center (DC). | AWS SysAdmin | 
| Esegui l'istruzione SQL per la configurazione del server collegato. | Esegui le istruzioni SQL per aggiungere un server collegato utilizzando lo strumento di gestione Microsoft SQL sull'istanza DB di Amazon RDS for Microsoft SQL Server. Nell'istruzione SQL, imposta @datasrc per utilizzare il nome host di Network Load Balancer. Aggiungi le credenziali di accesso al server collegato utilizzando lo strumento di gestione Microsoft SQL sull'istanza DB di Amazon RDS for Microsoft SQL Server. | AWS SysAdmin | 
| Testa e convalida le funzioni di SQL Server. |  | AWS SysAdmin | 
| Crea un cutover. |  | AWS SysAdmin | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-related-resources"></a>
+ [Attività di gestione comuni per Microsoft SQL Server su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General)
+ [Regole di confronto e set di caratteri per Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) 
+ [Documentazione Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Implementazione di server collegati con Amazon RDS per Microsoft SQL Server (post sul blog)](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/)

# Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando metodi di backup e ripristino nativi
<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*

## Riepilogo
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-summary"></a>

Questo modello descrive come migrare un database Microsoft SQL Server locale a un'istanza database Amazon Relational Database Service (Amazon RDS) per SQL Server DB (migrazione omogenea). Il processo di migrazione si basa su metodi di backup e ripristino nativi di SQL Server. Utilizza SQL Server Management Studio (SSMS) per creare un file di backup del database e un bucket Amazon Simple Storage Service (Amazon S3) per archiviare il file di backup prima di ripristinarlo in Amazon RDS for SQL Server.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Policy di ruolo di AWS Identity and Access Management (IAM) per accedere al bucket S3 e all'istanza DB Amazon RDS for SQL Server.

**Limitazioni**
+ Il processo descritto in questo modello migra solo il database. Gli accessi SQL o gli utenti del database, inclusi i job di SQL Server Agent, non vengono migrati perché richiedono passaggi aggiuntivi.

**Versioni del prodotto**
+ SQL Server 2012-2017. Per l'elenco più recente delle versioni e delle funzionalità supportate, consulta [Microsoft SQL Server su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport) nella documentazione AWS.

## Architecture
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-architecture"></a>

**Stack tecnologico di origine**
+ Un database Microsoft SQL Server locale

**Stack tecnologico Target**
+ Istanza database Amazon RDS per SQL Server

****Architettura di migrazione dei dati****

![\[Architettura per migrare un DB SQL Server locale su un'istanza DB Amazon RDS for SQL Server.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/c2dcd6ab-deb1-4d5e-b3c5-3bf48c02ca4e/images/29f90473-6dd4-4574-bfbd-5c6a0481c40e.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-tools"></a>
+ Microsoft SQL Server Management Studio (SSMS) è un ambiente integrato per la gestione dell'infrastruttura SQL Server. Fornisce un'interfaccia utente e un gruppo di strumenti con editor di script avanzati che interagiscono con SQL Server.

## Epiche
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-epics"></a>

### Crea un'istanza DB Amazon RDS for SQL Server
<a name="create-an-amazon-rds-for-sql-server-db-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Seleziona SQL Server come motore di database in Amazon RDS for SQL Server. |  | DBA | 
| Scegli SQL Server Express Edition. |  | DBA | 
| Specificare i dettagli del database. | Per ulteriori informazioni sulla creazione di un'istanza DB, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | DBA, proprietario dell'app | 

### Crea un file di backup dal database SQL Server locale
<a name="create-a-backup-file-from-the-on-premises-sql-server-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Connect al database SQL Server locale tramite SSMS. |  | DBA | 
| Crea un backup del database. | Per istruzioni, consulta la [documentazione SSMS](https://learn.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms). | DBA, proprietario dell'app | 

### Carica il file di backup su Amazon S3
<a name="upload-the-backup-file-to-amazon-s3"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un bucket in Amazon S3. | Per ulteriori informazioni, consulta la [Documentazione di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | DBA | 
| Carica il file di backup nel bucket S3. | Per ulteriori informazioni, consulta la [Documentazione di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html). | SysOps amministratore | 

### Ripristina il database in Amazon RDS for SQL Server
<a name="restore-the-database-in-amazon-rds-for-sql-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi il gruppo di opzioni ad Amazon RDS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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)Per ulteriori informazioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html). | SysOps amministratore | 
| Ripristina il database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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 | 

### Convalida il database di destinazione
<a name="validate-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida oggetti e dati. | Convalida gli oggetti e i dati tra il database di origine e Amazon RDS for SQL Server.Questa attività migra solo il database. Gli accessi e i lavori non verranno migrati. | Proprietario dell'app, DBA | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Reindirizza il traffico delle applicazioni. | Dopo la convalida, reindirizza il traffico dell'applicazione all'istanza DB di Amazon RDS for SQL Server. | Proprietario dell'app, DBA | 

## Risorse correlate
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-resources"></a>
+ [Documentazione Amazon S3](https://docs.aws.amazon.com/s3/) 
+ [Documentazione di Amazon RDS per SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) 
+ [Opzioni per il motore di database Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 

# Esegui la migrazione di un database Microsoft SQL Server su Aurora MySQL utilizzando AWS DMS e 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*

## Riepilogo
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-summary"></a>

Questo modello descrive come migrare un database Microsoft SQL Server locale o su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) verso Amazon Aurora MySQL. Il modello utilizza AWS Database Migration Service (AWS DMS) e AWS Schema Conversion Tool (AWS SCT) per la migrazione dei dati e la conversione dello schema. 

## Prerequisiti e limitazioni
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database di origine Microsoft SQL Server in un data center locale o su un' EC2 istanza 
+ Driver Java Database Connectivity (JDBC) per connettori AWS SCT, installati su un computer locale o su un'istanza EC2 in cui è installato AWS SCT 

 

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ Microsoft SQL Server 2008, 2008R2, 2012, 2014, 2016 e 2017 per le edizioni Enterprise, Standard, Workgroup e Developer. Le edizioni Web ed Express non sono supportate da AWS DMS. Per l'elenco più recente delle versioni supportate, consulta [Using a Microsoft SQL Server Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni di Microsoft SQL Server supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ MySQL versioni 5.5, 5.6 e 5.7. Per l'elenco più recente delle versioni supportate, consulta [Usare un database compatibile con MySQL come destinazione per](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) AWS DMS.

## Architecture
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-architecture"></a>

**Stack tecnologico di origine**

Una delle seguenti: 
+ Un database Microsoft SQL Server locale
+ Un database Microsoft SQL Server su un' EC2 istanza

**Stack tecnologico Target**
+ Aurora MySQL

**Architettura di migrazione dei dati**
+ Da un database Microsoft SQL Server in esecuzione nel cloud AWS 

![\[Cloud AWS architecture showing VPC with private subnet containing SQL Server and Aurora MySQL databases.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/c675ada4-e92c-4ddb-b49f-69668f532504.png)

+ Da un database Microsoft SQL Server in esecuzione in un data center locale

![\[Cloud AWS architecture diagram showing on-premises to cloud migration using AWS SCT, DMS, and Aurora MySQL.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/b6ce0199-fc56-4bf2-a8cc-67de161e3cf0.png)


## Tools (Strumenti)
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** - [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) (AWS DMS) ti aiuta a migrare i dati da e verso database commerciali e open source ampiamente utilizzati, tra cui Oracle, SQL Server, MySQL e PostgreSQL. Puoi utilizzare AWS DMS per migrare i dati nel cloud AWS, tra istanze locali (attraverso la configurazione di un cloud AWS) oppure tra combinazioni di configurazioni locali e cloud.
+ **AWS SCT** - [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) semplifica le migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.

## Epiche
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-epics"></a>

### Preparati per la migrazione
<a name="prepare-for-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione e il motore del database di origine e di destinazione. |  | DBA | 
| Crea un gruppo di sicurezza in uscita per i database di origine e di destinazione. |  | SysAdmin | 
| Crea e configura un' EC2 istanza per AWS SCT, se necessario. |  | DBA | 
| Scarica la versione più recente di AWS SCT e i driver associati. |  | DBA | 
| Aggiungi e convalida gli utenti e le concessioni prerequisiti nel database di origine. |  | DBA | 
| Crea un progetto AWS SCT per il carico di lavoro e connettiti al database di origine. |  | DBA | 
| Genera un rapporto di valutazione e valuta la fattibilità. |  | DBA | 

### Preparare il database di destinazione
<a name="prepare-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza database Amazon RDS di destinazione utilizzando Amazon Aurora come motore di database. |  | DBA | 
| Estrai l'elenco di utenti, ruoli e concessioni dalla fonte. |  | DBA | 
| Associa gli utenti esistenti del database ai nuovi utenti del database. |  | Proprietario dell'app | 
| Crea utenti nel database di destinazione. |  | DBA | 
| Applica i ruoli del passaggio precedente al database di destinazione. |  | DBA | 
| Esamina le opzioni del database, i parametri, i file di rete e i collegamenti al database nel database di origine, quindi valuta la loro applicabilità al database di destinazione. |  | DBA | 
| Applica tutte le impostazioni pertinenti all'obiettivo. |  | DBA | 

### Trasferisci oggetti
<a name="transfer-objects"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la connettività AWS SCT al database di destinazione. |  | DBA | 
| Converti lo schema utilizzando AWS SCT. | AWS SCT converte automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Qualsiasi codice che lo strumento non è in grado di convertire automaticamente è chiaramente contrassegnato in modo che tu possa convertirlo tu stesso. | DBA | 
| Esamina il report SQL generato e salva eventuali errori e avvisi. |  | DBA | 
| Applica modifiche automatiche allo schema alla destinazione o salvale come file.sql. |  | DBA | 
| Verifica che AWS SCT abbia creato gli oggetti sulla destinazione.  |  | DBA | 
| Riscrivi, rifiuta o riprogetta manualmente tutti gli elementi che non sono stati convertiti automaticamente. |  | DBA | 
| Applica il ruolo generato e le concessioni degli utenti ed esamina le eventuali eccezioni. |  | DBA | 

### Migrare i dati
<a name="migrate-the-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determinare il metodo di migrazione. |  | DBA | 
| Crea un'istanza di replica dalla console AWS DMS. | Per informazioni dettagliate sull'uso di AWS DMS, consulta i link nella sezione «Risorse correlate». | DBA | 
| Crea gli endpoint di origine e di destinazione. |  | DBA | 
| Creare un'attività di replica. |  | DBA | 
| Avvia l'attività di replica e monitora i log. |  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Usa AWS SCT per analizzare e convertire gli elementi SQL all'interno del codice dell'applicazione. | Quando converti lo schema del database da un motore a un altro, è anche necessario aggiornare il codice SQL nelle applicazioni, per interagire con il nuovo motore di database al posto di quello precedente. Puoi visualizzare, analizzare, modificare e salvare il codice SQL convertito. Per informazioni dettagliate sull'uso di AWS SCT, consulta i link nella sezione «Risorse correlate». | Proprietario dell'app | 
| Crea i nuovi server delle applicazioni su AWS. |  | Proprietario dell'app | 
| Esegui la migrazione del codice dell'applicazione sui nuovi server. |  | Proprietario dell'app | 
| Configura il server delle applicazioni per il database e i driver di destinazione. |  | Proprietario dell'app | 
| Corregge qualsiasi codice specifico del motore di database di origine dell'applicazione. |  | Proprietario dell'app | 
| Ottimizza il codice dell'applicazione per il motore di destinazione. |  | Proprietario dell'app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Applica eventuali nuovi utenti, sovvenzioni e modifiche al codice all'obiettivo. |  | DBA | 
| Blocca l'applicazione per eventuali modifiche. |  | Proprietario dell'app | 
| Verifica che tutte le modifiche siano state propagate al database di destinazione. |  | DBA | 
| Indirizza il nuovo server delle applicazioni verso il database di destinazione. |  | Proprietario dell'app | 
| Ricontrolla tutto. |  | Proprietario dell'app | 
| Trasmetti in diretta. |  | Proprietario dell'app | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee (istanza di replica AWS DMS e EC2 istanza utilizzata per AWS SCT). |  | DBA, proprietario dell'app | 
| Aggiorna il feedback sul processo AWS DMS per i team interni. |  | DBA, proprietario dell'app | 
| Rivedi il processo AWS DMS e, se necessario, migliora il modello. |  | DBA, proprietario dell'app | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app | 
| Raccogli le metriche in tempo utile per la migrazione, la percentuale di risparmio sui costi manuali rispetto a quelli relativi agli strumenti e così via. |  | DBA, proprietario dell'app | 
| Chiudi il progetto e fornisci eventuali feedback. |  | DBA, proprietario dell'app | 

## Risorse correlate
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-related-resources"></a>

**Riferimenti**
+ [Guida per l'utente di AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Guida per l'utente di AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)  
+ [Prezzi di Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/) 

**Tutorial e video**
+ [Guida introduttiva ad AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [Guida introduttiva allo Schema Conversion Tool di AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Risorse Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Procedure dettagliate di AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) 

# Esegui la migrazione di un database MariaDB locale su Amazon RDS for MariaDB utilizzando strumenti nativi
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools"></a>

*Shyam Sunder Rakhecha, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-summary"></a>

Questo modello fornisce indicazioni per la migrazione di un database MariaDB locale ad Amazon Relational Database Service (Amazon RDS) per MariaDB utilizzando strumenti nativi. **Se hai installato strumenti MySQL, puoi **usare** mysql e mysqldump.** **Se hai installato gli strumenti MariaDB, puoi **usare** mariadb e mariadb-dump.** Gli strumenti MySQL e MariaDB hanno la stessa origine, ma ci sono piccole differenze nella versione 10.6 di MariaDB e successive.

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database di origine MariadB in un data center locale

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ [Versioni MariaDB 10.0-10.6 (per l'elenco più recente delle versioni supportate, consulta MariaDB su Amazon RDS nella documentazione AWS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt)

## Architecture
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-architecture"></a>

**Stack tecnologico di origine**
+ Database MariaDB in un data center locale

**Stack tecnologico Target**
+ Istanza database Amazon RDS per MariaDB

**Architettura Target**

![\[Diagramma di architettura con istanze DB RDS primarie e in standby in diverse zone di disponibilità.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/eca8eb55-579a-42e2-96ce-9b14b097b4c9.png)


**Architettura di migrazione dei dati**

![\[Diagramma dell'architettura della migrazione di un database MariaDB locale su Amazon RDS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/daba40e2-a2b1-44f8-8e69-31458206a823.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-tools"></a>
+ ****Strumenti MySQL nativi: mysql e mysqldump****
+ ****Strumenti MariaDB nativi: mariadb e mariadb-dump****

## Epiche
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida le versioni e i motori del database di origine e di destinazione. |  | DBA | 
| Identifica i requisiti hardware per l'istanza del server di destinazione. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). |  | DBA, amministratore di sistema | 
| Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete. |  | DBA, amministratore di sistema | 
| Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. |  | DBA, amministratore di sistema | 
| Identifica la strategia di migrazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) |  | Amministratore di sistema | 
| Crea gruppi di sicurezza. |  | Amministratore di sistema | 
| Configura e avvia un'istanza Amazon RDS DB che esegue MariaDB. |  | Amministratore di sistema | 

### Migrazione dei dati
<a name="migrate-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti nativi per migrare oggetti e dati del database. | Nel database di origine, usa **mysqldump o **mariadb-dump**** per creare un file di output che contenga oggetti e dati del database. ****Nel database di destinazione, usa mysql o mariadb per ripristinare i dati.**** | DBA | 
| Convalida i dati. | Controlla i database di origine e di destinazione per confermare che la migrazione dei dati sia avvenuta correttamente. | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia di migrazione delle applicazioni. |  | DBA, proprietario dell'app, amministratore di sistema | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trasferisci i client applicativi alla nuova infrastruttura. |  | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse AWS temporanee. |  | Amministratore di sistema | 
| Rivedi e convalida i documenti del progetto. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli le metriche relative ai tempi di migrazione, ai risparmi sui costi offerti dagli strumenti e così via. |  | DBA, proprietario dell'app, amministratore di sistema | 
| Chiudi il progetto e fornisci feedback. |  | DBA, proprietario dell'app, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-resources"></a>

**Riferimenti Amazon RDS**
+ [Amazon RDS per 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)
+ [Implementazioni Multi-AZ di Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Prezzi di Amazon RDS](https://aws.amazon.com/rds/pricing/)

**Riferimenti a MySQL e MariadB**
+ [mariadb-dump/mysqldump](https://mariadb.com/kb/en/mariadb-dumpmysqldump/) 
+ [Client a riga di comando mysql](https://mariadb.com/kb/en/mysql-command-line-client/) 

**Tutorial e video**
+ [Nozioni di base su Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Esegui la migrazione di un database MySQL locale su Aurora MySQL
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql"></a>

*Igor Obradovic, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-summary"></a>

Questo modello spiega come migrare un database di origine MySQL locale verso Amazon Aurora MySQL Compatible Edition. **Descrive due opzioni per la migrazione: utilizzando AWS Database Migration Service (AWS DMS) o utilizzando strumenti MySQL nativi **come** mysqldbcopy e mysqldump.** 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Un database MySQL di origine in un data center locale

**Limitazioni**
+ Limite di dimensione del database: 128 TB

**Versioni del prodotto**
+ La versione 8.0 di MySQL (Aurora MySQL versione 3) è disponibile con supporto standard. 
+ La versione 5.7 di MySQL (Aurora MySQL versione 2) è disponibile con supporto esteso, a un costo aggiuntivo.

Per l'elenco più recente delle versioni supportate, consulta le [versioni di Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html) nella AWS documentazione. Se lo stai usando AWS DMS, vedi anche [Utilizzo di un database compatibile con MySQL come destinazione per le versioni di AWS DMS MySQL supportate](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) da. AWS DMS

## Architecture
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-architecture"></a>

**Stack di tecnologia di origine**
+ Un database MySQL locale

**Stack tecnologico Target**
+ Amazon Aurora edizione compatibile con MySQL 

**Architettura di destinazione**

I dati Aurora sono archiviati in un volume cluster, che è un singolo volume virtuale che utilizza unità a stato solido ()SSDs. Un volume del cluster è composto da copie di dati distribuite su tre zone di disponibilità in una singola regione AWS. Poiché i dati vengono replicati automaticamente tra le zone di disponibilità, sono altamente durevoli con minori possibilità di perdita di dati.

Aurora divide automaticamente il volume del database in segmenti da 10 GB distribuiti su più dischi. Ogni blocco da 10 GB del volume del database viene replicato in sei modi, su tre zone di disponibilità. Il diagramma seguente illustra la relazione tra il volume del cluster, l'istanza Writer DB e le istanze DB Reader in un cluster Aurora DB e la separazione tra capacità di calcolo e archiviazione. [Per ulteriori informazioni su questa architettura, consulta la [documentazione e le domande frequenti di Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html).](https://aws.amazon.com/rds/aurora/faqs/#product-faqs)

![\[Istanze DB Aurora MySQL e volume di storage condiviso su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/0d7d8ebd-e0f2-4bcf-b296-8bdfb2f12b64.png)


**Architettura di migrazione dei dati**

*Utilizzando AWS DMS:*

Il diagramma seguente illustra la migrazione di un database MySQL locale a un cluster Aurora compatibile con MySQL in, using. Cloud AWS AWS DMS

![\[Migrazione di un database MySQL locale su Aurora MySQL utilizzando AWS DMS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/e5d72ebd-d157-45d7-8844-d1011f1646c0.png)


*Utilizzo di strumenti MySQL nativi:*

****Il diagramma seguente illustra la migrazione di un database MySQL locale in un cluster Aurora compatibile con MySQL in, utilizzando strumenti MySQL nativi come mysqldbcopy e mysqldump. Cloud AWS****

![\[Migrazione di un database MySQL locale su Aurora MySQL utilizzando mysqldbcopy e mysqldump.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/26258752-24f6-4241-a49f-59c15e946314.png)


 

## Tools (Strumenti)
<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)) supporta diversi motori di database di origine e destinazione. Per informazioni sui database di origine e destinazione MySQL supportati AWS DMS da, [vedere Migrazione](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) di database compatibili con MySQL a. AWS Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità.
+ [mysqldbcopy](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) è un'utilità MySQL che copia un database MySQL su un singolo server o tra server.
+ [mysqldump è](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) un'utilità MySQL che crea un file di dump da un database MySQL per scopi di backup o migrazione.

## Epiche
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-epics"></a>

### Pianifica la migrazione
<a name="plan-the-migration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida la versione e il motore. | Convalida la versione e il motore del database per i database di origine e di destinazione. | DBA | 
| Identifica i requisiti hardware. | Identifica i requisiti hardware per l'istanza del server di destinazione. | DBA, amministratore di sistema | 
| Identifica i requisiti di archiviazione. | Identifica i requisiti di archiviazione (tipo e capacità di archiviazione). | DBA, amministratore di sistema | 
| Scegliere il tipo di istanza. | Scegli il tipo di istanza corretto in base ai tuoi requisiti di elaborazione, archiviazione e rete. | DBA, amministratore di sistema | 
| Determinare i requisiti di sicurezza dell'accesso alla rete. | Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione. | DBA, amministratore di sistema | 
| Determina la strategia. | Identifica la strategia di migrazione delle applicazioni. | DBA, proprietario dell'app, amministratore di sistema | 

### Configura l'infrastruttura
<a name="configure-the-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) | Per istruzioni, consulta [Creare un VPC nella documentazione](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) di Amazon Virtual Private Cloud (Amazon VPC). | Amministratore di sistema | 
| Crea gruppi di sicurezza. | Per istruzioni, consulta [Creare un gruppo di sicurezza per il tuo VPC nella documentazione](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) di Amazon VPC. | Amministratore di sistema | 
| Configura e avvia un cluster DB Aurora compatibile con MySQL nel tuo. Account AWS | Per istruzioni, consulta [Creazione di un cluster Amazon Aurora DB nella documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) di Aurora. | Amministratore di sistema | 

### Migrazione dei dati - opzione 1
<a name="migrate-data---option-1"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza strumenti MySQL nativi o strumenti di terze parti per migrare oggetti e dati del database. | [Per istruzioni, consulta la documentazione degli strumenti MySQL [come](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) mysqldbcopy e mysqldump.](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) | DBA | 

### Migrazione dei dati - opzione 2
<a name="migrate-data---option-2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la migrazione dei dati con AWS DMS. | Per istruzioni, vedere [Utilizzo di un database compatibile con MySQL come origine e Utilizzo di un database compatibile](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html) [con MySQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) come destinazione nella documentazione. AWS DMS  | DBA | 

### Migrare l'applicazione
<a name="migrate-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui la strategia. | Segui la strategia di migrazione delle applicazioni. | DBA, proprietario dell'app, amministratore di sistema | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Cambia client applicativo. | Passa i client dell'applicazione per connetterli al nuovo endpoint del cluster Aurora. | DBA, proprietario dell'app, amministratore di sistema | 

### Chiudi il progetto
<a name="close-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Chiudi le risorse. | Chiudi le AWS risorse temporanee. | DBA, amministratore di sistema | 
| Consulta la documentazione. | Rivedi e convalida i documenti del progetto. | DBA, proprietario dell'app, amministratore di sistema | 
| Raccogli metriche. | Raccogli le metriche relative al tempo necessario alla migrazione, alla percentuale di passaggi manuali rispetto all'utilizzo degli strumenti, ai risparmi sui costi e così via. | DBA, proprietario dell'app, amministratore di sistema | 
| Progetto di migrazione completo. | Chiudi il progetto e fornisci feedback. | Proprietario dell'app, DBA, amministratore di sistema | 

## Risorse correlate
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-resources"></a>

**Riferimenti**
+ [Migrazione dei dati al cluster Amazon Aurora MySQL DB](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.html)
+ [AWS DMS website](https://aws.amazon.com/dms/)
+ [AWS DMS documentazione](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Prezzi di Amazon Aurora](https://aws.amazon.com/rds/aurora/pricing/)
+ [Creazione e connessione a un cluster Aurora MySQL DB](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)
+ [Documentazione Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)

**Tutorial e video**
+ [Guida introduttiva con AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Guida introduttiva ad Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.html)

# Esegui la migrazione dei database MySQL locali su Aurora MySQL utilizzando Percona, Amazon EFS e Amazon S3 XtraBackup
<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*

## Riepilogo
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-summary"></a>

Questo modello descrive come migrare database MySQL locali di grandi dimensioni in modo efficiente verso Amazon Aurora MySQL utilizzando Percona. XtraBackup Percona XtraBackup è un'utilità di backup open source e non bloccante per server basati su MySQL. Il modello mostra come utilizzare Amazon Elastic File System (Amazon EFS) per ridurre i tempi di caricamento del backup su Amazon Simple Storage Service (Amazon S3) e ripristinare il backup su Amazon Aurora MySQL. Il modello fornisce anche dettagli su come effettuare backup Percona incrementali per ridurre al minimo il numero di log binari da applicare al database Aurora MySQL di destinazione.  

## Prerequisiti e limitazioni
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Autorizzazioni per creare ruoli e policy di AWS Identity and Access Management (IAM)
+ Connettività di rete tra il database MySQL locale e il cloud privato virtuale (VPC) su AWS

**Limitazioni**
+ I server di origine devono essere sistemi basati su Linux in grado di installare un client Network File System (NFS) (nfs-utils/nfs-common).
+ Il bucket S3 utilizzato per caricare i file di backup supporta solo la crittografia lato server (SSE-S3/SSE-KMS).
+ Amazon S3 limita la dimensione dei file di backup a 5 TB. Se il file di backup supera i 5 TB, puoi dividerlo in più file più piccoli.
+ Il numero di file sorgente caricati nel bucket S3 non può superare il milione di file.
+ Il modello supporta solo il backup XtraBackup completo e il backup incrementale di Percona. Non supporta backup parziali che utilizzano`--tables`,,, `--tables-exclude` `--tables-file``--databases`, `--databases-exclude` o. `--databases-file`
+ Aurora non ripristina utenti, funzioni, stored procedure o informazioni sul fuso orario dal database MySQL di origine.

**Versioni del prodotto**
+ Il database di origine deve essere MySQL versione 5.5, 5.6 o 5.7.
+ Per MySQL 5.7, è necessario utilizzare Percona 2.4. XtraBackup 
+ Per MySQL 5.6 e 5.6, è necessario utilizzare Percona 2.3 o 2.4. XtraBackup 

## Architecture
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo basato su Linux
+ Server MySQL
+ Percona XtraBackup

**Stack tecnologico Target**
+ Amazon Aurora
+ Simple Storage Service (Amazon S3)
+ Amazon EFS

**Architettura di destinazione**

![\[Architettura per migrare database MySQL di grandi dimensioni su Amazon Aurora MySQL utilizzando Percona. XtraBackup\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bf327776-bafd-484d-9ae2-a6f5c8af6edd/images/7a410539-1511-4106-90e2-8c0c8e95f92b.png)


## Tools (Strumenti)
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-tools"></a>

*Servizi AWS*
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) è un motore di database relazionale completamente gestito che semplifica ed economica la configurazione, il funzionamento e la scalabilità delle distribuzioni MySQL. Aurora MySQL è un sostituto immediato di MySQL.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Altri strumenti**
+ [Percona XtraBackup](https://www.percona.com/doc/percona-xtrabackup/2.4/index.html) è un'utilità open source che esegue backup in streaming, compressi e incrementali dei database MySQL senza interrompere o bloccare i database.

## Epiche
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-epics"></a>

### Creare un file system Amazon EFS
<a name="create-an-amazon-efs-file-system"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un gruppo di sicurezza da associare agli obiettivi di montaggio di Amazon EFS. | Crea un gruppo di sicurezza nel VPC configurato con un allegato VPN al database locale tramite AWS Transit Gateway. Per ulteriori informazioni sui comandi e sui passaggi descritti in questa e in altre storie, consulta i collegamenti nella sezione «Risorse correlate» alla fine di questo schema. |  DevOps/database Amministratore AWS | 
| Modifica le regole del gruppo di sicurezza. | Aggiungi una regola in entrata, utilizzando il tipo NFS, la porta 2049 e l'intervallo IP del server di database locale come origine. Per impostazione predefinita, la regola in uscita consente a tutto il traffico di uscire. In caso contrario, aggiungi una regola in uscita per aprire una connessione per la porta NFS. Aggiungi altre due regole in entrata: porta 2049 (fonte: ID del gruppo di sicurezza dello stesso gruppo di sicurezza) e porta 22 (origine: intervallo IP da cui ti connetterai a un'istanza). EC2  |  DevOps/database Amministratore AWS | 
| Creare un file system. | Nei target di montaggio, usa il VPC e il gruppo di sicurezza che hai creato nella storia precedente. Scegliete la modalità di throughput e le prestazioni in base I/O ai requisiti del database locale. Facoltativamente, abilita la crittografia a riposo. |  DevOps/database Amministratore AWS | 

### Installa il file system
<a name="mount-the-file-system"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un ruolo del profilo dell'istanza IAM da associare a un' EC2 istanza. | Crea un ruolo IAM con le autorizzazioni per caricare e accedere agli oggetti in Amazon S3. Scegli il bucket S3 in cui archiviare il backup come risorsa politica. | AWS DevOps | 
| Crea un' EC2 istanza. | Avvia un' EC2 istanza basata su Linux e collega il ruolo di profilo dell'istanza IAM creato nel passaggio precedente e il gruppo di sicurezza creato in precedenza. | AWS DevOps | 
| Installare il client NFS. | Installa il client NFS sul server di database locale e sull' EC2 istanza. Per le istruzioni di installazione, consulta la sezione «Informazioni aggiuntive». | DevOps | 
| Montare il file system Amazon EFS. | Installa il file system Amazon EFS in locale e sull' EC2 istanza. Su ogni server, crea una directory per archiviare il backup e monta il file system utilizzando l'endpoint di destinazione di montaggio. Per un esempio, consultate la sezione «Informazioni aggiuntive». | DevOps | 

### Effettuare un backup del database sorgente MySQL
<a name="make-a-backup-of-the-mysql-source-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Percona XtraBackup. | Installa Percona XtraBackup 2.3 o 2.4 (a seconda della versione del tuo database MySQL) sul server di database locale. Per i link di installazione, consulta la sezione «Risorse correlate». | Amministratore di database | 
| Conta gli schemi e le tabelle nel database di origine. | Raccogli e annota il numero di schemi e oggetti nel database MySQL di origine. Utilizzerai questi conteggi per convalidare il database Aurora MySQL dopo la migrazione. | Amministratore di database | 
| (Facoltativo) Annotate la sequenza di log binaria più recente dal database di origine. | Eseguire questo passaggio se si desidera stabilire la replica dei log binari tra il database di origine e Aurora MySQL per ridurre al minimo i tempi di inattività. log-bin deve essere abilitato e server\$1id deve essere univoco. Annotate la sequenza di log binaria corrente dal database di origine, appena prima di avviare un backup. Esegui questo passaggio appena prima del backup completo se prevedi di utilizzare solo il backup completo. Se hai intenzione di eseguire backup incrementali dopo un backup completo, esegui questo passaggio appena prima del backup incrementale finale che ripristinerai sull'istanza DB Aurora MySQL. | Amministratore di database | 
| Avvia un backup completo del database MySQL di origine. | Effettua un backup completo del database sorgente MySQL utilizzando Percona. XtraBackup Ad esempio, i comandi per i backup completi e incrementali, consulta la sezione «Informazioni aggiuntive». | Amministratore di database | 
| (Facoltativo) Effettua backup incrementali utilizzando Percona. XtraBackup | I backup incrementali possono essere utilizzati per ridurre la quantità di log binari da applicare per sincronizzare il database di origine con Aurora MySQL. I database di grandi dimensioni e con un elevato numero di transazioni potrebbero generare un gran numero di log binari durante i backup. Eseguendo backup incrementali e archiviandoli su un file system Amazon EFS condiviso, puoi ridurre in modo significativo i tempi di backup e caricamento del database. Per i dettagli, consulta la sezione «Informazioni aggiuntive». Continua a eseguire backup incrementali finché non sei pronto per iniziare il processo di migrazione ad Aurora. | Amministratore di database | 
| Prepara i backup. | In questa fase, i log delle transazioni vengono applicati al backup per le transazioni che erano in corso durante il backup. Continuate ad applicare i log transazionali (--apply-log-only) a ogni backup incrementale per unire i backup, ad eccezione dell'ultimo backup. Per esempi, consulta la sezione «Informazioni aggiuntive». <efs\$1mount\$1name>Dopo questo passaggio, il backup completo e unito sarà in \$1/ /fullbackup. | Amministratore di database | 
| Comprimi e dividi il backup finale unito. | Dopo aver preparato il backup finale unito, usa i comandi tar, zip e split per creare file compressi più piccoli del backup. Per alcuni esempi, consultate la sezione «Informazioni aggiuntive». | Amministratore di database | 

### Ripristina il backup su un cluster Aurora MySQL DB
<a name="restore-the-backup-to-an-aurora-mysql-db-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica il backup su Amazon S3. | Il file system Amazon EFS in cui sono archiviati i file di backup è montato sia sul database locale che su un' EC2 istanza, in modo che i file di backup siano immediatamente disponibili per l' EC2 istanza. <efs\$1mount\$1name><bucket\$1name>Connettiti all' EC2 istanza utilizzando Secure Shell (SSH) e carica i file di backup compressi in un bucket S3 nuovo o esistente; ad esempio: aws s3 sync \$1/ /fullbackup s3:///fullbackup. Per ulteriori dettagli, consulta i link nella sezione «Risorse correlate». | AWS DevOps | 
| Crea un ruolo di servizio per Aurora per accedere ad Amazon S3. | Crea un ruolo IAM con trust «rds.amazonaws.com» e una policy che consenta ad Aurora di accedere al bucket S3 in cui sono archiviati i file di backup. Le autorizzazioni richieste sono, e. ListBucket GetObject GetObjectVersion | AWS DevOps | 
| Crea la configurazione di rete per Aurora. | Crea un gruppo di sottoreti DB del cluster con almeno due zone di disponibilità e una configurazione della tabella di routing di sottorete che consenta la connettività in uscita al database di origine. Crea un gruppo di sicurezza che consenta le connessioni in uscita al database locale e consenta agli amministratori di connettersi al cluster Aurora DB. Per ulteriori informazioni, consulta i collegamenti nella sezione «Risorse correlate». |  DevOps/database Amministratore AWS | 
| Ripristina il backup su un cluster Aurora MySQL DB. | Ripristina i dati dal backup che hai caricato su Amazon S3. Specificate la versione MySQL del vostro database di origine, fornite il nome del bucket S3 e il prefisso del percorso della cartella in cui avete caricato il file di backup (ad esempio, «fullbackup» per gli esempi nella sezione «Informazioni aggiuntive») e fornite il ruolo IAM che avete creato per autorizzare Aurora ad accedere ad Amazon S3. |  DevOps/database Amministratore AWS | 
| Convalida il database Aurora MySQL. | Convalida il conteggio dello schema e degli oggetti nel cluster Aurora DB ripristinato rispetto al conteggio ottenuto dal database di origine. | Amministratore di database | 
| Imposta la replica binlog.  | Usa la sequenza di log binaria che hai notato in precedenza, prima di eseguire l'ultimo backup ripristinato nel cluster Aurora DB. Crea un utente di replica sul database di origine e segui le istruzioni nella sezione «Informazioni aggiuntive» per fornire i privilegi appropriati, abilitare la replica su Aurora e confermare che la replica è sincronizzata. |  DevOps/database Amministratore AWS | 

## Risorse correlate
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-resources"></a>

**Creazione di un file system Amazon EFS**
+ [Creazione di un gruppo di sicurezza](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups) (documentazione Amazon VPC)
+ [Allegati VPN Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html) (documentazione Amazon VPC)
+ [Scalabilità del throughput VPN con AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) (blog su reti e distribuzione di contenuti)
+ [Creazione di un file system Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step1-efs) (documentazione Amazon EFS)
+ [Creazione di obiettivi di montaggio](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) (documentazione Amazon EFS)
+ [Crittografia dei dati inattivi](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) (documentazione Amazon EFS)

**Montaggio del file system**
+ [Ruoli IAM per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) ( EC2 documentazione Amazon)
+ [Avvio di un'istanza Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) ( EC2 documentazione Amazon)
+ [Installazione del client NFS](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) (documentazione Amazon EFS)
+ [Montaggio del file system Amazon EFS su un client locale](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) (documentazione Amazon EFS)
+ [Montaggio di file system EFS](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) (documentazione Amazon EFS)

**Effettuare un backup del database sorgente MySQL**
+ [Installazione di Percona XtraBackup 2.3 (documentazione](https://www.percona.com/doc/percona-xtrabackup/2.3/installation.html) Percona) XtraBackup 
+ [Installazione di Percona XtraBackup 2.4 (documentazione](https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html) Percona) XtraBackup  
+ [Impostazione della configurazione master di replica](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) (documentazione MySQL)
+ [Migrazione dei dati da un database MySQL esterno a un cluster Aurora MySQL DB (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html))
+ [Backup](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) XtraBackup incrementale (documentazione Percona)

**Ripristino del backup su Amazon Aurora MySQL**
+ [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro) (documentazione Amazon S3)
+ [Connessione alla tua istanza Linux tramite SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) (documentazione Amazon Ec2)
+ [Configurazione dell'interfaccia a riga di comando di AWS (documentazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dell'interfaccia a riga di comando di AWS)
+ [comando sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) (riferimento ai comandi AWS CLI)
+ [Creazione di una policy IAM per accedere alle risorse Amazon S3 (documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html) Aurora)
+ [Prerequisiti del cluster DB](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html#Aurora.CreateInstance.Prerequisites) (documentazione Aurora)
+ [Utilizzo dei gruppi di sottoreti DB](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) (documentazione Aurora)
+ [Creazione di un gruppo di sicurezza VPC per un'istanza DB privata (documentazione](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB) Aurora)
+ [Ripristino di un cluster Aurora MySQL DB da un bucket S3 (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore))
+ [Configurazione della replica con MySQL o un altro cluster Aurora DB (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html#AuroraMySQL.Replication.MySQL.SettingUp))
+ [Procedura mysql.rds\$1set\$1external\$1master](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html) (riferimento SQL per MySQL su Amazon RDS)
+ [procedura mysql.rds\$1start\$1replication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_start_replication.html) (riferimento SQL per MySQL su Amazon RDS)

**Riferimenti aggiuntivi**
+ [Migrazione dei dati da un database MySQL esterno a un cluster Aurora MySQL DB (documentazione Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html))
+ Download del [server MySQL (sito](https://downloads.mysql.com/archives/community/) Web Oracle)

**Tutorial e video**
+  [Migrazione dei dati MySQL a un cluster Aurora MySQL DB](https://aws.amazon.com/premiumsupport/knowledge-center/migrate-mysql-aurora-innobackup/) utilizzando Amazon S3 (AWS Knowledge Center)
+  [Configurazione e montaggio di Amazon EFS](https://www.youtube.com/watch?v=NR8rVsSn_dY) (video)

## Informazioni aggiuntive
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-additional"></a>

**Installazione di un client NFS**
+ Se state usando Red Hat o un sistema operativo Linux simile, usate il comando:  

```
$ sudo yum -y install nfs-utils
```
+ Se stai usando Ubuntu o un sistema operativo Linux simile, usa il comando: 

```
$ sudo apt-get -y install nfs-common
```

Per ulteriori informazioni, consulta la [procedura dettagliata nella documentazione](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) di Amazon EFS.

**Montaggio del file system Amazon EFS**

Usa i comandi:

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

Per ulteriori informazioni, consulta la [procedura dettagliata](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) e il montaggio [dei file system EFS nella documentazione](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) di Amazon EFS.

**Esecuzione di backup del database sorgente MySQL**

*Backup completi*

Usa un comando come il seguente, che prende il backup, lo comprime e lo divide in blocchi più piccoli da 1 GB ciascuno:

```
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 hai intenzione di eseguire backup incrementali successivi dopo il backup completo, non comprimere e dividere il backup. Utilizzate invece un comando simile al seguente:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/fullbackup/
```

*Backup incrementali*

Utilizza il percorso di backup completo per il `--incremental-basedir` parametro, ad esempio:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/incremental/backupdate --incremental-basedir=~/<efs_mount_name>/fullbackup
```

dove *basedir* è il percorso del backup completo e del file xtrabackup\$1checkpoints.

Per ulteriori informazioni sulla creazione di backup, consulta [Migrazione dei dati da un database MySQL esterno a un cluster Amazon Aurora MySQL DB nella documentazione di Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html).

**Preparazione dei backup**

Per preparare un backup completo:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup
```

Per preparare un backup incrementale:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06062020
```

Per preparare il backup finale:

```
xtrabackup --prepare --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06072020
```

Per ulteriori informazioni, consulta [Backup incrementali nella documentazione](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) di XtraBackup Percona.

**Compressione e suddivisione del backup unito**

<efs\$1mount\$1name>Per comprimere il backup unito in \$1/ /fullbackup:

```
tar -zcvf <backupfilename.tar.gz> ~/<efs_mount_name>/fullbackup
```

Per dividere il backup:

```
split -d -b1024M --verbose  <backupfilename.tar.gz> <backupfilename.tar.gz>
```

**Configurazione della replica binlog**

Per creare un utente di replica sul database di origine e fornire i privilegi appropriati:

```
CREATE USER 'repl_user'@'' IDENTIFIED BY ''; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'';
```

Per abilitare la replica su Aurora collegandosi al cluster Aurora DB, abilita i log binari nel gruppo di parametri del cluster DB. Imposta `binlog_format = mixed` (è preferibile la modalità mista). Questa modifica richiede il riavvio dell'istanza per applicare l'aggiornamento.

```
CALL mysql.rds_set_external_master ('sourcedbinstanceIP', sourcedbport, 'repl_user', '', 'binlog_file_name', binlog_file_position, 0); CALL mysql.rds_start_replication;
```

Per confermare che la replica è sincronizzata:

```
SHOW Slave Status \G;
```

Il campo **master Seconds behind** mostra quanto Aurora sia indietro rispetto al database locale.

# Esegui la migrazione di applicazioni Java locali su AWS utilizzando AWS App2Container
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Riepilogo
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

AWS App2Container (A2C) è uno strumento a riga di comando che aiuta a trasformare le applicazioni esistenti in esecuzione su macchine virtuali in contenitori, senza bisogno di modifiche al codice. A2C rileva le applicazioni in esecuzione su un server, identifica le dipendenze e genera artefatti pertinenti per una distribuzione senza interruzioni su Amazon Elastic Container Service (Amazon ECS) e Amazon Elastic Kubernetes Service (Amazon EKS).

Questo modello fornisce i passaggi per la migrazione remota di applicazioni Java locali distribuite su un server di applicazioni su AWS Fargate o Amazon EKS utilizzando App2Container tramite la macchina di lavoro. 

La macchina worker può essere utilizzata nei seguenti casi d'uso:
+ L'installazione di Docker non è consentita o non è disponibile sui server delle applicazioni in cui sono in esecuzione le applicazioni Java.
+ È necessario gestire la migrazione di più applicazioni distribuite su server fisici o virtuali diversi.

Questo modello utilizza AWS CodeCommit AWS CodePipeline, e AWS CodeBuild.

## Prerequisiti e limitazioni
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Prerequisiti**
+ Un server di applicazioni con un'applicazione Java in esecuzione su un server Linux
+ Una macchina di lavoro con sistema operativo Linux
+ Una macchina di lavoro con almeno 20 GB di spazio disponibile su disco

**Limitazioni**
+ Non tutte le applicazioni sono supportate. Per ulteriori informazioni, consulta [Applicazioni supportate per Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Architecture
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Stack tecnologico di origine**
+ Applicazioni Java in esecuzione su server Linux

**Stack tecnologico Target**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Architettura Target**

![\[Architettura per applicazioni Java locali su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Tools (Strumenti)
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Strumenti**
+ [AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) — AWS App2Container (A2C) è uno strumento a riga di comando che consente di eseguire applicazioni eseguite nei data center locali o su macchine virtuali, in modo che vengano eseguite in contenitori gestiti da Amazon ECS o Amazon EKS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html): AWS CodeBuild è un servizio di build completamente gestito nel cloud. CodeBuild compila il codice sorgente, esegue test unitari e produce artefatti pronti per la distribuzione.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html): AWS CodeCommit è un servizio di controllo delle versioni ospitato da Amazon Web Services che puoi utilizzare per archiviare e gestire in modo privato risorse (come documenti, codice sorgente e file binari) nel cloud.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html): AWS CodePipeline è un servizio di distribuzione continua che puoi utilizzare per modellare, visualizzare e automatizzare i passaggi necessari per rilasciare il tuo software.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) è un servizio di gestione dei container veloce e altamente scalabile per l'esecuzione, l'arresto e la gestione dei container su un cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) — Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito da AWS sicuro, scalabile e affidabile.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) — Amazon Elastic Kubernetes Service (Amazon EKS) è un servizio gestito che puoi usare per eseguire Kubernetes su AWS senza dover installare, utilizzare e gestire il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — AWS Fargate è una tecnologia che puoi usare con Amazon ECS per eseguire container senza dover gestire server o cluster di istanze Amazon Elastic Compute Cloud (Amazon). EC2 Con Fargate, non è più necessario effettuare il provisioning, configurare o dimensionare i cluster di macchine virtuali per eseguire i container.

## Epiche
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

### Imposta le credenziali
<a name="set-up-credentials"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un segreto per accedere al server delle applicazioni. | Per accedere al server delle applicazioni in remoto dalla macchina di lavoro, crea un segreto in AWS Secrets Manager. Per il tuo segreto, puoi utilizzare la chiave privata SSH o il certificato e la chiave privata SSH. Per ulteriori informazioni, consulta [Manage secrets for AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Sviluppatore | 

### Configurare la macchina operaia
<a name="set-up-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il file tar. | Esegui `sudo yum install -y tar`. | DevOps, Sviluppatore | 
| Installare l'interfaccia a riga di comando di AWS. | Per installare Amazon Command Line Interface (AWS CLI), esegui. `curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"` Decomprimere `awscliv2.zip`.Esegui `sudo ./aws/install`. | DevOps, Sviluppatore | 
| Installa App2Container. | Esegui i comandi seguenti:`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, Sviluppatore | 
| Configura i profili. | Per configurare il profilo predefinito di AWS, esegui`sudo aws configure`.Per configurare il profilo predefinito denominato AWS, esegui`sudo aws configure --profile <profile name>`. | DevOps, Sviluppatore | 
| Installazione di Docker. | Esegui i comandi seguenti.`sudo yum install -y docker``sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Inizializza App2Container. | Per inizializzare App2Container, sono necessarie le seguenti informazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Esegui `sudo app2container init`. | DevOps, Sviluppatore | 

### Configurare la macchina di lavoro
<a name="configure-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la macchina di lavoro per connettersi in remoto ed eseguire i comandi App2Container sul server delle applicazioni. | Per configurare la macchina di lavoro, sono necessarie le seguenti informazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Esegui `sudo app2container remote configure`. | DevOps, Sviluppatore | 

### Scopri, analizza ed estrai le applicazioni sulla macchina operatrice
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scopri le applicazioni Java locali. | Per scoprire in remoto tutte le applicazioni in esecuzione sul server delle applicazioni, esegui il comando seguente.`sudo app2container remote inventory --target <FQDN/IP of App server>`Questo comando genera un elenco di applicazioni distribuite in. `inventory.json` | Sviluppatore, DevOps | 
| Analizza le applicazioni scoperte. | Per analizzare in remoto ogni applicazione utilizzando l'application-id ottenuto nella fase di inventario, esegui il comando seguente.`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`Questo genera il `analysis.json` file nella posizione dell'area di lavoro. Dopo aver generato questo file, puoi modificare i parametri di containerizzazione in base alle tue esigenze. | Sviluppatore, DevOps | 
| Estrarre le applicazioni analizzate. | Per generare un archivio applicativo per l'applicazione analizzata, esegui in remoto il comando seguente, che genererà il pacchetto tar nella posizione dell'area di lavoro.`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`Gli artefatti estratti possono essere generati sulla macchina di lavoro locale. | Sviluppatore, DevOps | 

### Containerizza gli artefatti estratti sulla macchina operaia
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Containerizza gli artefatti estratti. | Containerizzate gli artefatti estratti nel passaggio precedente eseguendo il comando seguente.`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Sviluppatore, DevOps | 
| Finalizza l'obiettivo. | Per finalizzare l'obiettivo, apri`deployment.json`, che viene creato all'esecuzione del `containerize` comando. Per specificare AWS Fargate come destinazione, imposta su`createEcsArtifacts`. `true` Per impostare Amazon EKS come obiettivo, imposta su `createEksArtifacts` true. | Sviluppatore, DevOps | 

### Genera ed esegui il provisioning di artefatti AWS
<a name="generate-and-provision-aws-artifacts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera artefatti di distribuzione AWS sulla macchina di lavoro. | Per generare artefatti di distribuzione, esegui il comando seguente.`sudo app2container generate app-deployment --application-id <application id>`Questo genera il CloudFormation modello `ecs-master.yml` AWS nell'area di lavoro. | DevOps | 
| Fornisci gli artefatti. | Per fornire ulteriormente gli artefatti generati, distribuisci il CloudFormation modello AWS eseguendo il comando seguente.`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Genera la pipeline. | Modify`pipeline.json`, creato nella storia precedente, in base alle tue esigenze. Quindi esegui il `generate pipeline` comando per generare gli artefatti di distribuzione della pipeline. | DevOps | 

## Risorse correlate
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [Che cos'è App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Post sul blog di AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Nozioni di base sulla configurazione dell'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Nozioni di base su Docker per Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Comandi Docker](https://docs.docker.com/engine/reference/commandline/cli/)

# Migrazione di file system condivisi in una migrazione di AWS grandi dimensioni
<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*

## Riepilogo
<a name="migrate-shared-file-systems-in-an-aws-large-migration-summary"></a>

La migrazione di 300 o più server è considerata una *migrazione* di grandi dimensioni. Lo scopo di una migrazione su larga scala è migrare i carichi di lavoro dai data center locali esistenti a Cloud AWS, e questi progetti si concentrano in genere sui carichi di lavoro di applicazioni e database. Tuttavia, i file system condivisi richiedono un'attenzione mirata e un piano di migrazione separato. Questo modello descrive il processo di migrazione per i file system condivisi e fornisce le migliori pratiche per migrarli con successo nell'ambito di un progetto di migrazione di grandi dimensioni.

Un *file system condiviso* (SFS), noto anche come file system di *rete* o *cluster*, è una condivisione di file montata su più server. L'accesso ai file system condivisi avviene tramite protocolli come Network File System (NFS), Common Internet File System (CIFS) o Server Message Block (SMB).

Questi sistemi non vengono migrati con strumenti di migrazione standard, ad esempio AWS Application Migration Service perché non sono dedicati all'host oggetto della migrazione né sono rappresentati come dispositivi a blocchi. Sebbene la maggior parte delle dipendenze degli host venga migrata in modo trasparente, il coordinamento e la gestione dei file system dipendenti devono essere gestiti separatamente.

La migrazione dei file system condivisi avviene nelle seguenti fasi: individuazione, pianificazione, preparazione, suddivisione e convalida. Utilizzando questo modello e le cartelle di lavoro allegate, migri il tuo file system condiviso verso un servizio di AWS storage, come Amazon Elastic File System (Amazon EFS), Amazon FSx for NetApp ONTAP o Amazon FSx for Windows File Server. Per trasferire il file system, puoi utilizzare AWS DataSync uno strumento di terze parti, ad esempio. NetApp SnapMirror

**Nota**  
Questo modello fa parte di una serie di AWS Prescriptive Guidance sulle [migrazioni di grandi dimensioni verso](https://aws.amazon.com/prescriptive-guidance/large-migrations/). Cloud AWS Questo modello include le migliori pratiche e istruzioni da SFSs incorporare nei piani wave per i server. Se stai migrando uno o più file system condivisi al di fuori di un progetto di migrazione di grandi dimensioni, consulta le istruzioni per il trasferimento dei dati nella AWS documentazione per [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).

## Prerequisiti e limitazioni
<a name="migrate-shared-file-systems-in-an-aws-large-migration-prereqs"></a>

**Prerequisiti**

I prerequisiti possono variare in base ai file system condivisi di origine e destinazione e al caso d'uso. I più comuni sono i seguenti:
+ Un attivo Account AWS.
+ Avete completato l'esplorazione del portafoglio di applicazioni per il vostro grande progetto di migrazione e avete iniziato a sviluppare piani d'ondata. Per ulteriori informazioni, consulta [Portfolio playbook per migrazioni di AWS grandi dimensioni](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html).
+ Cloud privati virtuali (VPCs) e gruppi di sicurezza che consentono il traffico in ingresso e in uscita tra il data center locale e l'ambiente. AWS [Per ulteriori informazioni, consulta Opzioni di [connettività da rete ad Amazon VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) e requisiti di rete.AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html)
+ Autorizzazioni per creare AWS CloudFormation stack o autorizzazioni per creare risorse Amazon EFS o Amazon. FSx Per ulteriori informazioni, consulta la [CloudFormation documentazione](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html), la documentazione di [Amazon EFS o la FSx ](https://docs.aws.amazon.com/efs/latest/ug/security-iam.html) [documentazione di Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/security-iam.html).
+ Se utilizzi AWS DataSync per eseguire la migrazione, hai bisogno delle seguenti autorizzazioni:
  + Autorizzazioni per AWS DataSync inviare log a un gruppo di log di Amazon CloudWatch Logs. Per ulteriori informazioni, consulta [Consentire il caricamento dei log DataSync in gruppi di log. CloudWatch ](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs)
  + Autorizzazioni per accedere al gruppo CloudWatch Logs log. Per ulteriori informazioni, vedere [Panoramica della gestione delle autorizzazioni di accesso alle risorse Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html). CloudWatch 
  + Autorizzazioni per creare agenti e attività in. DataSync Per ulteriori informazioni, consulta [Autorizzazioni IAM richieste per l'utilizzo](https://docs.aws.amazon.com/datasync/latest/userguide/permissions-requirements.html). AWS DataSync

**Limitazioni**
+ Questo modello è progettato per migrare SFSs come parte di un progetto di migrazione di grandi dimensioni. Include le migliori pratiche e istruzioni da SFSs incorporare nei piani Wave per la migrazione delle applicazioni. Se stai migrando uno o più file system condivisi al di fuori di un progetto di migrazione di grandi dimensioni, consulta le istruzioni per il trasferimento dei dati nella AWS documentazione per [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).
+ Questo modello si basa su architetture, servizi e modelli di migrazione di uso comune. Tuttavia, i progetti e le strategie di migrazione di grandi dimensioni possono variare tra le organizzazioni. Potrebbe essere necessario personalizzare questa soluzione o le cartelle di lavoro fornite in base alle proprie esigenze.

## Architecture
<a name="migrate-shared-file-systems-in-an-aws-large-migration-architecture"></a>

**Stack tecnologico di origine**

Uno o più dei seguenti:
+ File server Linux (NFS)
+ File server Windows (SMB)
+ NetApp array di storage
+ array di storage Dell EMC Isilon

**Stack tecnologico Target**

Uno o più dei seguenti:
+ Amazon Elastic File System
+ Amazon FSx per NetApp ONTAP
+ File server Amazon FSx per Windows

**Architettura Target**

![\[Diagramma dell'architettura dell'utilizzo di AWS DataSync per migrare file system condivisi locali su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/13232433-7d33-44c8-8998-b720f33f67b3.png)


Il diagramma mostra il seguente processo:

1. Si stabilisce una connessione tra il data center locale e il Cloud AWS utilizzando un sistema Servizio AWS come AWS Direct Connect o. AWS Site-to-Site VPN

1. L' DataSync agente viene installato nel data center locale.

1. In base al vostro piano d'azione, dovete DataSync replicare i dati dal file system condiviso di origine alla condivisione di file di destinazione AWS .

**Fasi di migrazione**

L'immagine seguente mostra le fasi e i passaggi di alto livello per la migrazione di un SFS in un progetto di migrazione di grandi dimensioni.

![\[Scopri, pianifica, prepara, taglia e convalida le fasi della migrazione dei file system condivisi su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/f1e0c94d-0eea-46a8-bdec-3297b34c1d43.png)


La sezione [Epics](#migrate-shared-file-systems-in-an-aws-large-migration-epics) di questo modello contiene istruzioni dettagliate su come completare la migrazione e utilizzare le cartelle di lavoro allegate. Di seguito è riportata una panoramica di alto livello delle fasi di questo approccio graduale.


| 
| 
| Fase | Fasi | 
| --- |--- |
| Scopri | 1. Utilizzando uno strumento di rilevamento, raccogli dati sul file system condiviso, inclusi server, punti di montaggio e indirizzi IP.2. Utilizzando un database di gestione della configurazione (CMDB) o lo strumento di migrazione, si raccolgono dettagli sul server, tra cui informazioni sull'ondata di migrazione, sull'ambiente, sul proprietario dell'applicazione, sul nome del servizio di gestione dei servizi IT (ITSM), sull'unità organizzativa e sull'ID dell'applicazione. | 
| Pianificazione | 3. Utilizzando le informazioni raccolte su SFSs e sui server, create il piano d'onda SFS.4. Utilizzando le informazioni nel foglio di lavoro di compilazione, per ogni SFS, scegliete una destinazione Servizio AWS e uno strumento di migrazione. | 
| Preparazione | 5. Configura l'infrastruttura di destinazione in Amazon EFS, Amazon FSx for NetApp ONTAP o Amazon FSx for Windows File Server.6. Configura il servizio di trasferimento dati, ad esempio DataSync, e quindi avvia la sincronizzazione iniziale dei dati. Una volta completata la sincronizzazione iniziale, puoi configurare sincronizzazioni ricorrenti da eseguire secondo una pianificazione,7. Aggiorna il piano d'onda SFS con informazioni sulla condivisione del file di destinazione, come l'indirizzo IP o il percorso. | 
| Tagliare | 8. Blocca le applicazioni che accedono attivamente all'SFS di origine.9. Nel servizio di trasferimento dati, eseguite una sincronizzazione finale dei dati.10. Una volta completata la sincronizzazione, verifica che sia avvenuta correttamente esaminando i dati di registro in CloudWatch Logs. | 
| Convalida | 11. Sui server, modificate il punto di montaggio sul nuovo percorso SFS.12. Riavviare e convalidare le applicazioni. | 

## Tools (Strumenti)
<a name="migrate-shared-file-systems-in-an-aws-large-migration-tools"></a>

**Servizi AWS**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ti aiuta a centralizzare i log di tutti i tuoi sistemi e applicazioni, Servizi AWS così puoi monitorarli e archiviarli in modo sicuro.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)è un servizio di trasferimento e scoperta di dati online che ti aiuta a spostare file o dati di oggetti da, verso e tra i servizi di storage. AWS 
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi nel Cloud AWS.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornisce file system che supportano i protocolli di connettività standard del settore e offrono disponibilità e replica elevate in tutto il mondo. Regioni AWS

**Altri strumenti**
+ [SnapMirror](https://library.netapp.com/ecmdocs/ECMP1196991/html/GUID-BA1081BE-B2BB-4C6E-8A82-FB0F87AC514E.html)è uno strumento di replica NetApp dei dati che replica i dati da volumi o [qtree di origine specificati rispettivamente su volumi o qtree](https://library.netapp.com/ecmdocs/ECMP1154894/html/GUID-8F084F85-2AB8-4622-B4F3-2D9E68559292.html) di destinazione. Puoi utilizzare questo strumento per migrare un file system di NetApp origine su Amazon FSx for NetApp ONTAP.
+ [Robocopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy), che è l'abbreviazione di *Robust File Copy*, è una directory a riga di comando e un comando per Windows. Puoi utilizzare questo strumento per migrare un file system di origine di Windows su Amazon FSx for Windows File Server.

## Best practice
<a name="migrate-shared-file-systems-in-an-aws-large-migration-best-practices"></a>

**Approcci alla pianificazione delle onde**

Quando pianificate ondate per un progetto di migrazione di grandi dimensioni, tenete conto della latenza e delle prestazioni delle applicazioni. Quando l'SFS e le applicazioni dipendenti operano in luoghi diversi, ad esempio uno nel cloud e l'altro nel data center locale, ciò può aumentare la latenza e influire sulle prestazioni delle applicazioni. Le seguenti sono le opzioni disponibili per la creazione di piani ondulatori:

1. **Migra l'SFS e tutti i server dipendenti all'interno della stessa ondata**: questo approccio previene problemi di prestazioni e riduce al minimo le rilavorazioni, come la riconfigurazione dei punti di montaggio più volte. È consigliato quando è richiesta una latenza molto bassa tra l'applicazione e l'SFS. Tuttavia, la pianificazione delle ondate è complessa e l'obiettivo in genere è rimuovere le variabili dai raggruppamenti di dipendenze, anziché aggiungerle. Inoltre, questo approccio non è consigliato se molti server accedono allo stesso SFS perché rende l'onda troppo grande.

1. Eseguite **la migrazione dell'SFS dopo la migrazione dell'ultimo server dipendente**: ad esempio, se più server accedono a un SFS e tali server sono programmati per migrare nelle ondate 4, 6 e 7, pianificate la migrazione dell'SFS nell'ondata 7.

   Questo approccio è spesso il più logico per le migrazioni di grandi dimensioni ed è consigliato per le applicazioni sensibili alla latenza. Riduce i costi associati al trasferimento dei dati. Inoltre, riduce al minimo il periodo di latenza tra SFS e le applicazioni di livello superiore (come la produzione), poiché le applicazioni di livello superiore sono in genere programmate per migrare per ultime, dopo lo sviluppo e le applicazioni di controllo qualità.

   Tuttavia, questo approccio richiede ancora scoperta, pianificazione e agilità. Potrebbe essere necessario migrare l'SFS in un'ondata precedente. Verificate che le applicazioni siano in grado di sopportare la latenza aggiuntiva per il periodo di tempo compreso tra la prima onda dipendente e l'onda contenente l'SFS. Conduci una sessione di rilevamento con i proprietari delle applicazioni e migra l'applicazione nella stessa ondata, l'applicazione più sensibile alla latenza. Se vengono rilevati problemi di prestazioni dopo la migrazione di un'applicazione dipendente, preparatevi a passare rapidamente alla migrazione SFS il più rapidamente possibile.

1. **Migrate l'SFS al termine di un ampio progetto di migrazione: questo approccio è consigliato se la** latenza non è un fattore, ad esempio quando i dati nell'SFS sono accessibili di rado o non sono critici per le prestazioni dell'applicazione. Questo approccio semplifica la migrazione e semplifica le attività di cutover.

È possibile combinare questi approcci in base alla sensibilità alla latenza dell'applicazione. Ad esempio, è possibile migrare sensibili alla latenza SFSs utilizzando gli approcci 1 o 2 e quindi migrare il resto utilizzando l'approccio 3. SFSs 

**Scelta di un servizio di file system AWS **

AWS offre diversi servizi cloud per l'archiviazione di file. Ciascuno offre vantaggi e limiti diversi in termini di prestazioni, scalabilità, accessibilità, integrazione, conformità e ottimizzazione dei costi. Esistono alcune opzioni logiche predefinite. Ad esempio, se il tuo attuale file system locale utilizza Windows Server, Amazon FSx for Windows File Server è la scelta predefinita. Oppure, se il file system locale utilizza NetApp ONTAP, Amazon FSx for NetApp ONTAP è la scelta predefinita. Tuttavia, potresti scegliere un servizio mirato in base ai requisiti della tua applicazione o per ottenere altri vantaggi operativi sul cloud. Per ulteriori informazioni, consulta [Scelta del servizio di archiviazione dei AWS file giusto per la propria implementazione](https://d1.awsstatic.com/events/Summits/awsnycsummit/Choosing_the_right_AWS_file_storage_service_for_your_deployment_STG302.pdf) (presentazione AWS Summit).

**Scelta di uno strumento di migrazione**

Amazon EFS e Amazon FSx supportano l'uso di AWS DataSync per migrare i file system condivisi verso Cloud AWS. Per ulteriori informazioni sui sistemi e servizi di storage supportati, sui vantaggi e sui casi d'uso, consulta [What is AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html). Per una panoramica del processo di utilizzo DataSync del trasferimento dei file, consulta [Come funzionano AWS DataSync i trasferimenti](https://docs.aws.amazon.com/datasync/latest/userguide/how-datasync-transfer-works.html).

Sono disponibili anche diversi strumenti di terze parti, tra cui:
+ Se scegli Amazon FSx for NetApp ONTAP, puoi utilizzarlo NetApp SnapMirror per migrare i file dal data center locale al cloud. SnapMirror utilizza la replica a livello di blocco, che può essere più veloce DataSync e ridurre la durata del processo di trasferimento dei dati. Per ulteriori informazioni, consulta [Migrazione a FSx ](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap-snapmirror.html) for ONTAP using. NetApp SnapMirror
+ Se scegli Amazon FSx for Windows File Server, puoi usare Robocopy per migrare i file nel cloud. Per ulteriori informazioni, consulta [Migrazione di file esistenti su Windows File Server FSx utilizzando Robocopy](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-files-to-fsx.html).

## Poemi epici
<a name="migrate-shared-file-systems-in-an-aws-large-migration-epics"></a>

### Scopri
<a name="discover"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparate la cartella di lavoro SFS Discovery. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 
| Raccogli informazioni sulla fonte SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 
| Raccogli informazioni sui server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 

### Pianificazione
<a name="plan"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Costruisci il piano d'onda SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Responsabile sviluppo, responsabile Cutover, ingegnere addetto alla migrazione, responsabile della migrazione | 
| Scegli lo strumento di destinazione Servizio AWS e di migrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 

### Preparazione
<a name="prepare"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il file system di destinazione. | In base ai dettagli registrati nel tuo piano d'onda, configura i file system di destinazione nel target Account AWS, nel VPC e nelle sottoreti. Per istruzioni, consulta la seguente documentazione: AWS [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione, amministratore AWS | 
| Configura lo strumento di migrazione e trasferisci i dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Amministratore AWS, amministratore cloud, ingegnere addetto alla migrazione, responsabile della migrazione | 
| Aggiorna il piano d'ondata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Interrompi le applicazioni. | Se le applicazioni o i client eseguono attivamente operazioni di lettura e scrittura nell'SFS di origine, interrompili prima di eseguire la sincronizzazione finale dei dati. Per istruzioni, consultate la documentazione dell'applicazione o i processi interni per interrompere le attività di lettura e scrittura. Ad esempio, [consultate Avvio o arresto del server Web (IIS 8)](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635851(v=ws.11)) (documentazione Microsoft) o [Gestione dei servizi di sistema con 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) (documentazione Red Hat). | Proprietario dell'app, sviluppatore dell'app | 
| Esegui il trasferimento finale dei dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Ingegnere addetto alla migrazione, responsabile della migrazione | 
| Convalida il trasferimento dei dati. | Se lo utilizzi AWS DataSync, procedi come segue per convalidare il trasferimento finale dei dati completato con successo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html)Se utilizzi uno strumento di terze parti, consulta le istruzioni per la convalida del trasferimento dei dati nella documentazione dello strumento di migrazione selezionato. | Ingegnere addetto alla migrazione, responsabile della migrazione | 

### Convalida
<a name="validate"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rimontare il file system e convalidare la funzione e le prestazioni dell'applicazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Amministratore di sistema AWS, proprietario dell'app | 

## risoluzione dei problemi
<a name="migrate-shared-file-systems-in-an-aws-large-migration-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| I valori delle celle in Microsoft Excel non vengono aggiornati. | Copia le formule nelle righe di esempio trascinando la maniglia di riempimento. Per ulteriori informazioni, consulta le istruzioni per [Windows](https://support.microsoft.com/en-us/office/fill-a-formula-down-into-adjacent-cells-041edfe2-05bc-40e6-b933-ef48c3f308c6) o per [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) (sito Web Microsoft Support). | 

## Risorse correlate
<a name="migrate-shared-file-systems-in-an-aws-large-migration-resources"></a>

**AWS documentazione**
+ [AWS DataSync documentazione](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)
+ [Documentazione Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)
+ [ FSx Documentazione Amazon](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/index.html)
+ [Grandi migrazioni verso Cloud AWS](https://aws.amazon.com/prescriptive-guidance/large-migrations/)
  + [Guida per migrazioni di AWS grandi dimensioni](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/welcome.html)
  + [Guida al portfolio per AWS migrazioni di grandi dimensioni](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html)

**Risoluzione dei problemi**
+ [Risoluzione dei problemi AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync.html)
+ [Risoluzione dei problemi di Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)
+ [Risoluzione dei problemi FSx di Amazon per Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/troubleshooting.html)
+ [Risoluzione dei problemi di Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/troubleshooting.html)

## Allegati
<a name="attachments-a30cf791-7a8a-4f71-8927-bc61f3b332f2"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/a30cf791-7a8a-4f71-8927-bc61f3b332f2/attachments/attachment.zip)

# Esegui la migrazione di un database Oracle ad Amazon RDS for Oracle utilizzando gli adattatori flat file 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*

## Riepilogo
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-summary"></a>

Oracle GoldenGate è un servizio di acquisizione e replica dei dati in tempo reale per database e ambienti IT eterogenei. Tuttavia, questo servizio attualmente non supporta Amazon Relational Database Service (Amazon RDS) per Oracle. Per un elenco dei database supportati, consulta [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) (documentazione Oracle). Questo modello descrive come utilizzare gli adattatori GoldenGate flat file Oracle GoldenGate e Oracle per generare file flat dal database Oracle di origine, che può essere locale o su un'istanza Amazon Elastic Compute Cloud (Amazon EC2). È quindi possibile importare tali file flat in un'istanza di database Amazon RDS for Oracle.

In questo modello, si utilizza Oracle GoldenGate per estrarre i file trail dal database Oracle di origine. Il data pump copia i file trail su un server di integrazione, che è un' EC2 istanza Amazon. Sul server di integrazione, Oracle GoldenGate utilizza l'adattatore flat file per generare una serie di file flat sequenziali basati sull'acquisizione dei dati transazionali dei file trail. Oracle GoldenGate formatta i dati come valori separati da delimitatori o valori delimitati dalla lunghezza. Si utilizza quindi Oracle SQL\$1Loader per importare i file flat nell'istanza di database Amazon RDS for Oracle di destinazione.

**Destinatari**

Questo modello è destinato a coloro che hanno esperienza e conoscenza degli elementi costitutivi fondamentali GoldenGate di un Oracle. Per ulteriori informazioni, vedere [Panoramica dell' GoldenGate architettura Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD115) (documentazione Oracle).

## Prerequisiti e limitazioni
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS.
+ Una GoldenGate licenza Oracle.
+ Una licenza separata per un GoldenGate adattatore Oracle.
+ Un database Oracle di origine, in esecuzione in locale o su un' EC2 istanza Amazon.
+ Un'istanza Amazon EC2 Linux utilizzata come server di integrazione. Per ulteriori informazioni, consulta [Guida introduttiva alle istanze Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) ( EC2 documentazione Amazon).
+ Un'istanza di database Amazon RDS for Oracle di destinazione. Per ulteriori informazioni, consulta [Creazione di un'istanza DB Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) (documentazione Amazon RDS).

**Versioni del prodotto**
+ Oracle Database Enterprise Edition versione 10g, 11g, 12c o successiva
+ Oracle GoldenGate versione 12.2.0.1.1 o successiva

## Architecture
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-architecture"></a>

**Stack tecnologico di origine**

Un database Oracle (locale o su un' EC2 istanza Amazon)

**Stack tecnologico Target**

Amazon RDS per Oracle

**Architettura di origine e destinazione**

![\[Migrazione di un database Oracle su Amazon RDS for Oracle utilizzando un GoldenGate adattatore Oracle.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f34961f7-aa9a-41cb-b1ea-522e36ef2f67/images/21ef5177-e669-4591-aced-28d2f22decf2.png)


1. Oracle GoldenGate estrae le tracce dai log del database di origine.

1. La data pump estrae le tracce e le migra su un server di integrazione.

1. L'adattatore di file GoldenGate flat di Oracle legge gli itinerari, le definizioni di origine e i parametri di estrazione.

1. Si esce dall'estrazione, che genera un control file e file di dati flat.

1. È possibile migrare i file di dati flat su un'istanza di database Amazon RDS for Oracle in. Cloud AWS

## Tools (Strumenti)
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) per Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle in. Cloud AWS

**Altri servizi**
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110) è un servizio che consente di replicare, filtrare e trasformare i dati da un database a un altro database eterogeneo o a un'altra topologia di destinazione, come i file flat.
+ Gli [ GoldenGate application adapter Oracle](https://docs.oracle.com/goldengate/gg121211/gg-adapter/GADAD/flatfile_config.htm#GADAD424) consentono GoldenGate a Oracle di produrre una serie di file flat sequenziali e file di controllo a partire dai dati transazionali acquisiti nei file trail di un database di origine. Questi adattatori sono ampiamente utilizzati per le operazioni di estrazione, trasformazione e caricamento (ETL) in applicazioni di data warehouse e applicazioni proprietarie o legacy. Oracle GoldenGate esegue questa acquisizione e la applica quasi in tempo reale su database, piattaforme e sistemi operativi eterogenei. Gli adattatori supportano diversi formati per i file di output, come CSV o Apache Parquet. È possibile caricare questi file generati per caricare i dati in diversi database eterogenei.

## Epiche
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-epics"></a>

### Configura Oracle GoldenGate sul server del database di origine
<a name="set-up-oracle-goldengate-on-the-source-database-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica Oracle GoldenGate. | Sul server del database di origine, scarica la GoldenGate versione Oracle 12.2.0.1.1 o successiva. Per istruzioni, vedere [Download di Oracle GoldenGate (documentazione Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164)). | DBA | 
| Installa Oracle GoldenGate. | Per istruzioni, vedere [Installazione di Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (documentazione Oracle). | DBA | 
| Configura Oracle GoldenGate. | Per istruzioni, vedere [Preparazione del database per Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (documentazione Oracle). | DBA | 

### Configura Oracle GoldenGate sul server di integrazione
<a name="set-up-oracle-goldengate-on-the-integration-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica Oracle GoldenGate. | Sul server di integrazione, scarica la GoldenGate versione Oracle 12.2.0.1.1 o successiva. Per istruzioni, vedere [Download di Oracle GoldenGate (documentazione Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164)). | DBA | 
| Installa Oracle GoldenGate. | Crea directory, configura il processo di gestione e crea il `defgen` file per un ambiente eterogeneo. Per istruzioni, vedere [Installazione di Oracle GoldenGate (documentazione Oracle](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162)). | DBA | 

### Modifica la configurazione di acquisizione GoldenGate dei dati Oracle
<a name="change-the-oracle-goldengate-data-capture-configuration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparare gli GoldenGate adattatori Oracle. | Sul server di integrazione, configura il software dell' GoldenGate adattatore Oracle. Esegui questa operazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.html) | DBA | 
| Configura la pompa dati. | Sul server di origine, configura la pompa di dati per trasferire il file trail dal server di origine al server di integrazione. Crea il file dei parametri della pompa dati e la directory dei file trail. Per istruzioni, vedere [Configurazione del Flat File Adapter](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (documentazione Oracle). | DBA | 

### Genera e migra i file flat
<a name="generate-and-migrate-the-flat-files"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera i file flat. | Crea il file di estrazione e il file di controllo, quindi avvia il processo di estrazione sul server di integrazione. Questo estrae le modifiche al database e scrive il database di origine nei file flat. Per istruzioni, vedere [Using the Flat File Adapter](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD432) (documentazione Oracle). | DBA | 
| Carica i file flat nel database di destinazione. | Carica i file flat nell'istanza di database Amazon RDS for Oracle di destinazione. Per ulteriori informazioni, consulta [Importazione tramite Oracle SQL\$1Loader](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.SQLLoader.html) (documentazione Amazon RDS). | DBA | 

## risoluzione dei problemi
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| L'adattatore di file GoldenGate flat Oracle genera un errore. | Per una descrizione degli errori dell'adattatore, vedere [Localizzazione dei messaggi di errore](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD437) (documentazione Oracle). Per istruzioni sulla risoluzione dei problemi, vedere [Risoluzione dei problemi del Flat File Adapter](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-CB3D9B2C-49CC-408A-8C00-06E0C7923DD6.htm#GADAD552) (documentazione Oracle). | 

## Risorse correlate
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-resources"></a>
+ [Installazione di Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (documentazione Oracle)
+ [Configurazione di Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (documentazione Oracle)
+ [Informazioni sugli GoldenGate adattatori Oracle (documentazione](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-F9105B02-9836-4F98-99F8-6E9C46D42764.htm#GADAD101) Oracle)
+ [Configurazione del Flat File Adapter (documentazione](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) Oracle)

# Modifica le applicazioni Python e Perl per supportare la migrazione dei database da Microsoft SQL Server a Amazon Aurora PostgreSQL Compatible Edition
<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*

## Riepilogo
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-summary"></a>

Questo modello descrive le modifiche ai repository delle applicazioni che potrebbero essere necessarie durante la migrazione dei database da Microsoft SQL Server a Amazon Aurora PostgreSQL Compatible Edition. Il modello presuppone che queste applicazioni siano basate su Python o su Perl e fornisce istruzioni separate per questi linguaggi di scripting.

La migrazione dei database di SQL Server verso la compatibilità con Aurora PostgreSQL comporta la conversione dello schema, la conversione degli oggetti del database, la migrazione dei dati e il caricamento dei dati. A causa delle differenze tra PostgreSQL e SQL Server (relative ai tipi di dati, agli oggetti di connessione, alla sintassi e alla logica), l'attività di migrazione più difficile consiste nell'apportare le modifiche necessarie alla base di codice in modo che funzioni correttamente con PostgreSQL.

Per un'applicazione basata su Python, gli oggetti e le classi di connessione sono sparsi in tutto il sistema. Inoltre, la base di codice Python potrebbe utilizzare più librerie per connettersi al database. Se l'interfaccia di connessione al database cambia, anche gli oggetti che eseguono le query in linea dell'applicazione richiedono modifiche.

Per un'applicazione basata su Perl, le modifiche riguardano oggetti di connessione, driver di connessione al database, istruzioni SQL in linea statiche e dinamiche e il modo in cui l'applicazione gestisce query DML dinamiche complesse e set di risultati.

Quando esegui la migrazione della tua applicazione, puoi anche prendere in considerazione possibili miglioramenti su AWS, come la sostituzione del server FTP con l'accesso ad Amazon Simple Storage Service (Amazon S3).

Il processo di migrazione delle applicazioni comporta le seguenti sfide:
+ Oggetti di connessione. Se gli oggetti di connessione sono sparsi nel codice con più librerie e chiamate di funzioni, potrebbe essere necessario trovare un modo generalizzato per modificarli per supportare PostgreSQL.
+ Gestione degli errori o delle eccezioni durante il recupero o l'aggiornamento dei record. Se sul database sono presenti operazioni condizionali di creazione, lettura, aggiornamento ed eliminazione (CRUD) che restituiscono variabili, set di risultati o frame di dati, eventuali errori o eccezioni potrebbero causare errori di applicazione con effetti a cascata. Queste devono essere gestite con cura con convalide e punti di salvataggio adeguati. Uno di questi punti di salvataggio consiste nel richiamare query SQL in linea di grandi dimensioni o oggetti di database all'interno di blocchi. `BEGIN...EXCEPTION...END`
+ Controllo delle transazioni e loro convalida. Questi includono commit e rollback manuali e automatici. Il driver PostgreSQL per Perl richiede di impostare sempre in modo esplicito l'attributo auto-commit.
+ Gestione di query SQL dinamiche. Ciò richiede una conoscenza approfondita della logica delle query e dei test iterativi per garantire che le query funzionino come previsto.
+ Prestazioni. È necessario assicurarsi che le modifiche al codice non comportino un peggioramento delle prestazioni dell'applicazione.

Questo modello spiega in dettaglio il processo di conversione.

## Prerequisiti e limitazioni
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-prereqs"></a>

**Prerequisiti**
+ Conoscenza pratica della sintassi Python e Perl.
+ Competenze di base in SQL Server e PostgreSQL.
+ Comprensione dell'architettura applicativa esistente.
+ Accesso al codice dell'applicazione, al database SQL Server e al database PostgreSQL.
+ Accesso all'ambiente di sviluppo Windows o Linux (o altro Unix) con credenziali per lo sviluppo, il test e la convalida delle modifiche alle applicazioni.
+ **Per un'applicazione basata su Python, le librerie Python standard che l'applicazione potrebbe richiedere, come **Pandas per gestire i frame di dati e psycopg2** per le connessioni al database. **SQLAlchemy****
+ Per un'applicazione basata su Perl, sono necessari pacchetti Perl con librerie o moduli dipendenti. Il modulo Comprehensive Perl Archive Network (CPAN) può supportare la maggior parte dei requisiti delle applicazioni.
+ Tutte le librerie o i moduli personalizzati dipendenti richiesti. 
+ Credenziali del database per l'accesso in lettura a SQL Server e read/write l'accesso ad Aurora.
+ PostgreSQL per convalidare ed eseguire il debug delle modifiche alle applicazioni con servizi e utenti.
+ Accesso a strumenti di sviluppo durante la migrazione delle applicazioni come Visual Studio Code, Sublime Text o **pgAdmin**.

**Limitazioni**
+ Alcune versioni, moduli, librerie e pacchetti di Python o Perl non sono compatibili con l'ambiente cloud.
+ Alcune librerie e framework di terze parti utilizzati per SQL Server non possono essere sostituiti per supportare la migrazione PostgreSQL. 
+ Le variazioni delle prestazioni potrebbero richiedere modifiche all'applicazione, alle query Transact-SQL (T-SQL) in linea, alle funzioni del database e alle stored procedure.
+ PostgreSQL supporta nomi minuscoli per nomi di tabelle, nomi di colonne e altri oggetti di database. 
+ Alcuni tipi di dati, come le colonne UUID, vengono memorizzati solo in lettere minuscole. Le applicazioni Python e Perl devono gestire tali differenze di casi. 
+ Le differenze di codifica dei caratteri devono essere gestite con il tipo di dati corretto per le colonne di testo corrispondenti nel database PostgreSQL.                                

**Versioni del prodotto**
+ Python 3.6 o versione successiva (usa la versione che supporta il tuo sistema operativo)
+ Perl 5.8.3 o versione successiva (usa la versione che supporta il tuo sistema operativo)
+ [Aurora PostgreSQL Compatible Edition 4.2 o versione successiva (vedi dettagli)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html#AuroraPostgreSQL.Updates.20180305.42)

## Architecture
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-architecture"></a>

**Stack tecnologico di origine**
+ Linguaggio di scripting (programmazione di applicazioni): Python 2.7 o successivo o Perl 5.8 
+ Database: Microsoft SQL Server versione 13
+ Sistema operativo: Red Hat Enterprise Linux (RHEL) 7 

**Stack tecnologico Target**
+ Linguaggio di scripting (programmazione di applicazioni): Python 3.6 o successivo o Perl 5.8 o successivo 
+ Database: Aurora PostgreSQL compatibile 4.2
+ Sistema operativo: RHEL 7 

**Architettura di migrazione**

![\[Migrazione di un'applicazione Perl o Python con SQL Server a Aurora compatibile con PostgreSQL\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/b64de64a-bd55-4db7-ba7b-0a2557862af1/images/b8fab3e2-ded5-4f58-86bf-3f645252e9fc.png)


## Tools (Strumenti)
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-tools"></a>

**Servizi e strumenti AWS**
+ [Aurora PostgreSQL—Compatible Edition è un motore di database relazionale completamente gestito, compatibile con](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) PostgreSQL e conforme ad ACID che combina la velocità e l'affidabilità dei database commerciali di fascia alta con l'economicità dei database open source. Aurora PostgreSQL è un sostituto immediato di PostgreSQL e semplifica e rende più conveniente configurare, utilizzare e scalare le implementazioni PostgreSQL nuove ed esistenti.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che consente di interagire con i servizi AWS utilizzando i comandi nella shell della riga di comando.

**Altri strumenti**
+ [Librerie di connessione al database [Python](https://www.python.org/) e PostgressSQL come psycopg2 e [SQLAlchemy](https://www.sqlalchemy.org/)](https://pypi.org/project/psycopg2/)
+ [Perl](https://www.perl.org/) e [i](https://metacpan.org/pod/DBD::Pg) suoi moduli DBI
+ Terminale [interattivo PostgreSQL (psql](https://www.postgresql.org/docs/13/app-psql.html))

## Epiche
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-epics"></a>

### Migra il tuo repository di applicazioni a PostgreSQL: passaggi di alto livello
<a name="migrate-your-application-repository-to-postgresql-ndash-high-level-steps"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Segui questi passaggi di conversione del codice per migrare la tua applicazione a PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)I seguenti poemi epici forniscono istruzioni dettagliate per alcune di queste attività di conversione per applicazioni Python e Perl. | Sviluppatore di app | 
| Usa una lista di controllo per ogni fase della migrazione. | Aggiungi quanto segue alla tua lista di controllo per ogni fase della migrazione delle applicazioni, inclusa la fase finale:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 

### Analizza e aggiorna la tua applicazione — Python code base
<a name="analyze-and-update-your-application-ndash-python-code-base"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza la tua base di codice Python esistente.  | L'analisi dovrebbe includere quanto segue per facilitare il processo di migrazione delle applicazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 
| Converti le connessioni al database per supportare PostgreSQL.  | La maggior parte delle applicazioni Python utilizza la libreria **pyodbc** per connettersi ai database di SQL Server come segue.<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>Converti la connessione al database per supportare PostgreSQL come segue.<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> | Sviluppatore di app | 
| Cambia le query SQL in linea in PostgreSQL. | Converti le tue query SQL in linea in un formato compatibile con PostgreSQL. Ad esempio, la seguente query di SQL Server recupera una stringa da una tabella.<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>Dopo la conversione, la query SQL in linea compatibile con PostgreSQL ha il seguente aspetto.<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> | Sviluppatore di app | 
| Gestisci le query SQL dinamiche. | L'SQL dinamico può essere presente in uno script o in più script Python. Gli esempi precedenti hanno mostrato come utilizzare la funzione di sostituzione delle stringhe di Python per inserire variabili per la costruzione di query SQL dinamiche. Un approccio alternativo consiste nell'aggiungere la stringa di query con variabili laddove applicabile. Nell'esempio seguente, la stringa di query viene costruita al volo in base ai valori restituiti da una funzione.<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>Questi tipi di interrogazioni dinamiche sono molto comuni durante la migrazione delle applicazioni. Segui questi passaggi per gestire le query dinamiche:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 
| Gestisci set di risultati, variabili e frame di dati. | Per Microsoft SQL Server, si utilizzano metodi Python come `fetchone()` o `fetchall()` per recuperare il set di risultati dal database. È inoltre possibile utilizzare `fetchmany(size)` e specificare il numero di record da restituire dal set di risultati. A tale scopo, è possibile utilizzare l'oggetto di connessione **pyodbc** come illustrato nell'esempio seguente.**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>**In Aurora, per eseguire attività simili come la connessione a PostgreSQL e il recupero dei set di risultati, puoi usare psycopg2 o. **SQLAlchemy**** Queste librerie Python forniscono il modulo di connessione e l'oggetto cursore da attraversare tra i record del database PostgreSQL, come mostrato nell'esempio seguente.**psycopg2 (compatibile con Aurora 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 (Compatibile con 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> | Sviluppatore di app | 
| Testa la tua applicazione durante e dopo la migrazione. | Il test dell'applicazione Python migrata è un processo continuo. Poiché la migrazione include modifiche agli oggetti di connessione (**psycopg2** o **SQLAlchemy**), gestione degli errori, nuove funzionalità (frame di dati), modifiche SQL in linea, funzionalità di copia in blocco (`bcp`anziché`COPY`) e modifiche simili, deve essere testata attentamente durante e dopo la migrazione dell'applicazione. Controlla:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 

### Analizza e aggiorna la tua applicazione: codice base Perl
<a name="analyze-and-update-your-application-ndash-perl-code-base"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza la tua base di codice Perl esistente. | L'analisi dovrebbe includere quanto segue per facilitare il processo di migrazione delle applicazioni. È necessario identificare:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 
| Converti le connessioni dall'applicazione Perl e dal modulo DBI per supportare PostgreSQL. | Le applicazioni basate su Perl utilizzano generalmente il modulo Perl DBI, che è un modulo di accesso al database standard per il linguaggio di programmazione Perl. È possibile utilizzare lo stesso modulo DBI con driver diversi per SQL Server e PostgreSQL.[Per ulteriori informazioni sui moduli Perl richiesti, sulle installazioni e altre istruzioni, consultate la documentazione di DBD: :Pg.](https://metacpan.org/pod/DBD::Pg) L'esempio seguente si connette a Aurora, compatibile con PostgreSQL all'indirizzo. `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> | Sviluppatore di app | 
| Cambia le query SQL in linea in PostgreSQL. | L'applicazione potrebbe avere query SQL in linea con`SELECT`, `DELETE``UPDATE`, e istruzioni simili che includono clausole di query non supportate da PostgreSQL. Ad esempio, parole chiave di query come `TOP` e `NOLOCK` non sono supportate in PostgreSQL. Gli esempi seguenti mostrano come è possibile gestire le variabili `TOP` `NOLOCK` booleane e.In 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>Per PostgreSQL, converti in:<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> | Sviluppatore di app | 
| Gestisci query SQL dinamiche e variabili Perl. | Le query SQL dinamiche sono istruzioni SQL create in fase di esecuzione dell'applicazione. Queste query vengono create dinamicamente durante l'esecuzione dell'applicazione, a seconda di determinate condizioni, in modo che il testo completo della query non sia noto fino all'esecuzione. Un esempio è un'applicazione di analisi finanziaria che analizza quotidianamente le prime 10 azioni e queste azioni cambiano ogni giorno. Le tabelle SQL vengono create in base alle migliori prestazioni e i valori sono noti solo in fase di esecuzione.Supponiamo che le query SQL in linea per questo esempio vengano passate a una funzione wrapper per ottenere i risultati impostati in una variabile e che quindi una variabile utilizzi una condizione per determinare se la tabella esiste:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Ecco un esempio di gestione delle variabili, seguito dalle query SQL Server e PostgreSQL per questo caso d'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>L'esempio seguente utilizza una variabile**** Perl in SQL in linea, che esegue un'`SELECT`istruzione con `JOIN` a per recuperare la chiave primaria della tabella e la posizione della colonna chiave.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> | Sviluppatore di app | 

### Apporta ulteriori modifiche alla tua applicazione basata su Perl o Python per supportare PostgreSQL
<a name="make-additional-changes-to-your-perl-based-or-python-based-application-to-support-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Converti costrutti SQL Server aggiuntivi in PostgreSQL. | Le seguenti modifiche si applicano a tutte le applicazioni, indipendentemente dal linguaggio di programmazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | Sviluppatore di app | 

### Migliora le prestazioni
<a name="improve-performance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Sfrutta i servizi AWS per migliorare le prestazioni. | Quando esegui la migrazione al cloud AWS, puoi perfezionare la progettazione di applicazioni e database per sfruttare i servizi AWS. Ad esempio, se le query della tua applicazione Python, connessa a un server di database Aurora compatibile con PostgreSQL, richiedono più tempo rispetto alle query originali di Microsoft SQL Server, potresti prendere in considerazione la creazione di un feed di dati storici direttamente in un bucket Amazon Simple Storage Service (Amazon S3) dal server Aurora e utilizzare Amazon Athena Query SQL per generare report e query di dati analitici per i dashboard degli utenti. | Sviluppatore di app, architetto cloud | 

## Risorse correlate
<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/)
+ [Modulo Perl DBI](https://metacpan.org/pod/DBI)
+ [Python](https://www.python.org/)
+ [psycopg2](https://pypi.org/project/psycopg2/)
+ [SQLAlchemy](https://www.sqlalchemy.org/)
+ [Copia in blocco - PostgreSQL](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ [Copia in blocco - Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15)
+ [PostgreSQL](https://www.postgresql.org/)
+ [Lavorare con Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)

## Informazioni aggiuntive
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-additional"></a>

Sia Microsoft SQL Server che Aurora PostgreSQL sono compatibili con ANSI SQL. Tuttavia, dovresti comunque essere consapevole di eventuali incompatibilità nella sintassi, nei tipi di dati delle colonne, nelle funzioni native specifiche del database, negli inserimenti in blocco e nella distinzione tra maiuscole e minuscole quando migri la tua applicazione Python o Perl da SQL Server a PostgreSQL.

Le sezioni seguenti forniscono ulteriori informazioni sulle possibili incongruenze.

**Confronto dei tipi di dati**

Le modifiche ai tipi di dati da SQL Server a PostgreSQL possono portare a differenze significative nei dati risultanti su cui operano le applicazioni. [Per un confronto dei tipi di dati, consulta la tabella sul sito Web Sqlines.](https://www.sqlines.com/sql-server-to-postgresql)

**Funzioni SQL native o integrate**

Il comportamento di alcune funzioni è diverso tra i database SQL Server e PostgreSQL. La tabella seguente fornisce un confronto.


| 
| 
| Microsoft SQL Server | Description | PostgreSQL | 
| --- |--- |--- |
| `CAST`  | Converte un valore da un tipo di dati a un altro. | PostgreSQL `type :: operator` | 
| `GETDATE()` | Restituisce la data e l'ora correnti del sistema di database, in un formato. `YYYY-MM-DD hh:mm:ss.mmm` | `CLOCK_TIMESTAMP` | 
| `DATEADD` | Aggiunge un time/date intervallo a una data. | `INTERVAL`espressione | 
| `CONVERT` | Converte un valore in un formato di dati specifico. | `TO_CHAR` | 
| `DATEDIFF` | Restituisce la differenza tra due date. | `DATE_PART` | 
| `TOP` | Limita il numero di righe in un set di `SELECT` risultati. | `LIMIT/FETCH` | 

**Blocchi anonimi**

Una query SQL strutturata è organizzata in sezioni quali dichiarazione, eseguibili e gestione delle eccezioni. La tabella seguente confronta le versioni Microsoft SQL Server e PostgreSQL di un semplice blocco anonimo. Per blocchi anonimi complessi, si consiglia di richiamare una funzione di database personalizzata all'interno dell'applicazione.


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

 

**Altre differenze**
+ **Inserimenti di righe in blocco:** [l'equivalente PostgreSQL dell'utilità bcp di [Microsoft](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15) SQL Server è COPY.](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ **Sensibilità tra maiuscole e minuscole:** i nomi delle colonne fanno distinzione tra maiuscole e minuscole in PostgreSQL, quindi è necessario convertire i nomi delle colonne di SQL Server in lettere minuscole o maiuscole. Questo diventa un fattore quando si estraggono o si confrontano dati o si inseriscono nomi di colonna in set di risultati o variabili. L'esempio seguente identifica le colonne in cui i valori possono essere memorizzati in lettere maiuscole o minuscole.

```
my $sql_qry = "SELECT $record_id FROM $exampleTable WHERE LOWER($record_name) = \'failed transaction\'"; 
```
+ **Concatenazione:** SQL Server utilizza `+` come operatore per la concatenazione di stringhe, mentre PostgreSQL utilizza. `||`
+ **Convalida:** è necessario testare e convalidare le query e le funzioni SQL in linea prima di utilizzarle nel codice dell'applicazione per PostgreSQL.
+ **Inclusione della libreria ORM:** [puoi anche cercare di includere o sostituire la libreria di connessione al database esistente con librerie ORM Python come [SQLAlchemy](https://www.sqlalchemy.org/)Python e PynomODB.](https://pynamodb.readthedocs.io/en/latest/quickstart.html) Ciò contribuirà a interrogare e manipolare facilmente i dati da un database utilizzando un paradigma orientato agli oggetti.

# Modelli di migrazione per carico di lavoro
<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)
+ [Open source](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**
+ [Esegui la migrazione di un database Db2 da Amazon a EC2 Aurora compatibile con MySQL utilizzando AWS DMS](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Esegui la migrazione di Db2 for LUW ad Amazon EC2 utilizzando la spedizione di log per ridurre i tempi di interruzione](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Esegui la migrazione di Db2 per LUW ad Amazon EC2 con disaster recovery ad alta disponibilità](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Esegui la migrazione da IBM Db2 su Amazon a EC2 Aurora PostgreSQL compatibile con AWS DMS e AWS SCT](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su 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**
+ [Accelera la scoperta e la migrazione dei carichi di lavoro Microsoft su AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Modifica le applicazioni Python e Perl per supportare la migrazione dei database da Microsoft SQL Server a Amazon Aurora PostgreSQL Compatible Edition](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)
+ [Crea CloudFormation modelli AWS per attività AWS DMS utilizzando Microsoft Excel e Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Esportazione di un database Microsoft SQL Server in Amazon S3 utilizzando AWS DMS](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [SHA1 Implementa l'hashing per i dati PII durante la migrazione da SQL Server a PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Acquisisci e migra istanze EC2 Windows in un account AWS Managed Services](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Esegui la migrazione di una coda di messaggistica da Microsoft Azure Service Bus ad Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Esegui la migrazione di un database Microsoft SQL Server da Amazon EC2 ad Amazon DocumentDB utilizzando AWS DMS](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Esegui la migrazione di un database Microsoft SQL Server su Aurora MySQL utilizzando AWS DMS e AWS SCT](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un'applicazione.NET da Microsoft Azure App Service ad AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando server collegati](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon RDS for SQL Server utilizzando metodi di backup e ripristino nativi](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando AWS DMS](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon Redshift utilizzando gli agenti di estrazione dati AWS SCT](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale a Microsoft SQL Server su Amazon EC2 con Linux](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Esegui la migrazione dei dati da Microsoft Azure Blob ad Amazon S3 utilizzando Rclone](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Esegui la migrazione di applicazioni ospitate da IIS su Amazon utilizzando appcmd.exe EC2](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Esegui la migrazione di un database Microsoft SQL Server locale su Amazon EC2 utilizzando Application Migration Service](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migrazione dei certificati SSL di Windows su un Application Load Balancer utilizzando ACM](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Rehosting dei carichi di lavoro locali nel cloud AWS: lista di controllo per la migrazione](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Risolvi gli errori di connessione dopo la migrazione di Microsoft SQL Server al cloud AWS](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Configura un'infrastruttura Multi-AZ per SQL Server Always On FCI utilizzando 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**
+ [Creare un processo di approvazione per le richieste del firewall durante una migrazione di rehosting a AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)

# Open source
<a name="migration-migration-patterns-by-workload-open-source-pattern-list"></a>

**Topics**
+ [Crea utenti e ruoli delle applicazioni in Aurora, compatibile con PostgreSQL](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL con e utilizzando e AWS SCT 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)
+ [Esegui la migrazione di un database MariaDB locale su Amazon RDS for MariaDB utilizzando strumenti nativi](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Esegui la migrazione di un database MySQL locale su Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Esegui la migrazione di un database MySQL locale su Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Esegui la migrazione di un database PostgreSQL locale su Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Esegui la migrazione di un database Couchbase Server su Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con Auto Scaling](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Esegui la migrazione da PostgreSQL su Amazon RDS per PostgreSQL utilizzando EC2 pglogical](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Esegui la migrazione di applicazioni Java locali su AWS utilizzando AWS App2Container](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Esegui la migrazione dei database MySQL locali su Aurora MySQL utilizzando Percona, Amazon EFS e Amazon S3 XtraBackup](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Esegui la migrazione di tabelle esterne Oracle verso Amazon Aurora, compatibile con PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Riavvia automaticamente l'AWS Replication Agent senza disabilitarlo SELinux dopo il riavvio di un server di origine RHEL](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Trasporta i database PostgreSQL tra due istanze DB Amazon RDS utilizzando 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**
+ [Converti VARCHAR2 (1) il tipo di dati per Oracle in tipo di dati booleano per Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Emula Oracle DR utilizzando un database globale Aurora compatibile con PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Migrazione incrementale da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL utilizzando Oracle SQL Developer e AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Carica i file BLOB in formato TEXT utilizzando la codifica dei file in Aurora, compatibile con PostgreSQL](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL in modalità SSL utilizzando AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrazione di un database Amazon RDS for Oracle su Account AWS un altro database Regione AWS e AWS DMS utilizzo per la replica continua](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Esegui la migrazione di un database Oracle locale su Amazon EC2 utilizzando Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon OpenSearch Service utilizzando Logstash](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for MySQL utilizzando AWS DMS e AWS SCT](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle utilizzando Oracle Data Pump](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Esegui la migrazione di un database Oracle locale ad Amazon RDS for PostgreSQL utilizzando un bystander Oracle e AWS DMS](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Esegui la migrazione di un database Oracle locale a Oracle su Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for MariaDB utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle da Amazon EC2 ad Amazon RDS for Oracle utilizzando AWS DMS](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Esegui la migrazione di un database Oracle ad Amazon RDS for Oracle utilizzando gli adattatori flat file GoldenGate Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Esegui la migrazione di un database Oracle ad Amazon Redshift utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle ad Aurora PostgreSQL utilizzando AWS DMS e AWS SCT](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione di un database Oracle JD Edwards EnterpriseOne su AWS utilizzando Oracle Data Pump e AWS DMS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Esegui la migrazione di una tabella partizionata Oracle su PostgreSQL utilizzando AWS DMS](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Esegui la migrazione di un PeopleSoft database Oracle su AWS utilizzando AWS DMS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Esegui la migrazione dei dati da un database Oracle locale ad Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando viste materializzate e AWS DMS](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for PostgreSQL utilizzando AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Esegui la migrazione da Oracle Database ad Amazon RDS for PostgreSQL utilizzando Oracle GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Esegui la migrazione da Oracle su Amazon EC2 ad Amazon RDS for MySQL utilizzando AWS DMS e AWS SCT](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Esegui la migrazione da Oracle WebLogic ad Apache Tomcat (ToMee) su Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migrazione di indici basati su funzioni da Oracle a PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrazione delle applicazioni legacy da Oracle Pro\$1C a ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Esegui la migrazione dei valori Oracle CLOB su singole righe in PostgreSQL su AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Esegui la migrazione dei codici di errore del database Oracle a un database compatibile con Amazon Aurora PostgreSQL](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migrazione delle funzioni native di Oracle su PostgreSQL utilizzando le estensioni](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Esegui la migrazione PeopleSoft da Oracle ad Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Esegui la migrazione della funzionalità Oracle ROWID a PostgreSQL su AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrazione dei pacchetti pragma Oracle SERIALLY\$1REUSABLE in PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migra le colonne virtuali generate da Oracle a PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Configura la funzionalità Oracle UTL\$1FILE su Aurora, compatibile con PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Convalida gli oggetti del database dopo la migrazione da Oracle ad 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**
+ [Esegui la migrazione da SAP ASE ad Amazon RDS per SQL Server utilizzando AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Esegui la migrazione di SAP ASE su Amazon Aurora, compatibile EC2 con PostgreSQL utilizzando AWS SCT e AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)

# Altri modelli
<a name="migration-more-patterns-pattern-list"></a>

**Topics**
+ [Accesso Servizi AWS da IBM z/OS installando AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Valuta le prestazioni delle query per la migrazione dei database SQL Server su MongoDB Atlas su AWS](assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws.md)
+ [Automatizza il failover e il failback tra regioni utilizzando DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatizza le attività di database in SQL Server Express su Amazon EC2 AWS Lambda utilizzando Task Scheduler](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Crea un visualizzatore di file mainframe avanzato nel cloud AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Connect ai dati e ai piani di controllo dell'Application Migration Service tramite una rete privata](connect-to-application-migration-service-data-and-control-planes-over-a-private-network.md)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Convertire le query JSON Oracle in SQL del database PostgreSQL](convert-json-oracle-queries-into-postgresql-database-sql.md)
+ [Convertire la funzionalità temporale Teradata NORMALIZE in Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Convertire la funzionalità Teradata RESET WHEN in Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Copia le tabelle Amazon DynamoDB tra gli account utilizzando AWS Backup](copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.md)
+ [Implementa un cluster Cassandra su Amazon EC2 con dati statici privati IPs per evitare il ribilanciamento](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Distribuisci applicazioni multi-stack utilizzando AWS CDK con TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Distribuisci istanze di cluster di failover di SQL Server su Amazon e EC2 Amazon FSx utilizzando Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Emula gli array PL/SQL associativi Oracle in Amazon Aurora PostgreSQL e Amazon RDS per PostgreSQL](emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql.md)
+ [Stima le dimensioni del motore Amazon RDS per un database Oracle utilizzando i report AWR](estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.md)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Gestisci blocchi anonimi nelle istruzioni SQL dinamiche in Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Identifica automaticamente le immagini duplicate dei container durante la migrazione a un repository Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Configura un cluster di failover di Microsoft SQL Server su Amazon EC2 FSx utilizzando per Windows File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Esegui la migrazione dei carichi di lavoro Apache Cassandra su Amazon Keyspaces utilizzando AWS Glue](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Esegui la migrazione dei carichi di lavoro dei container da Azure Red Hat OpenShift (ARO) a Servizio Red Hat OpenShift su AWS (ROSA)](migrate-container-workloads-from-aro-to-rosa.md)
+ [Esegui la migrazione da Oracle 8i o 9i ad Amazon RDS for Oracle utilizzando AWS DMS SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.md)
+ [Esegui la migrazione del gruppo di disponibilità Microsoft SQL Server Always On utilizzando AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.md)
+ [Esegui la migrazione di funzioni e procedure Oracle con più di 100 argomenti a PostgreSQL](migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql.md)
+ [Esegui la migrazione da SAP HANA ad AWS utilizzando SAP HSR con lo stesso nome host](migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.md)
+ [Esegui la migrazione di SQL Server su AWS utilizzando gruppi di disponibilità distribuiti](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Modernizza e implementa le applicazioni mainframe utilizzando e Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modifica le intestazioni HTTP durante la migrazione da F5 a un Application Load Balancer su AWS](modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws.md)
+ [Gestione del failover Multi-AZ per i cluster EMR utilizzando Application Recovery Controller](multi-az-failover-spark-emr-clusters-arc.md)
+ [Analizza le dipendenze degli oggetti per le migrazioni parziali del database da Oracle a PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Configura una CI/CD pipeline per la migrazione del database utilizzando Terraform](set-up-ci-cd-pipeline-for-db-migration-with-terraform.md)
+ [Configura il disaster recovery per Oracle JD Edwards con EnterpriseOne AWS Elastic Disaster Recovery](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Semplifica la gestione privata dei certificati utilizzando AWS Private CA e AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.md)
+ [Trasferisci z/OS dati Db2 su larga scala su Amazon S3 in file CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform](transform-easytrieve-modern-languages.md)

# Modernizzazione
<a name="modernization-pattern-list"></a>

**Topics**
+ [Archivia automaticamente gli elementi su Amazon S3 utilizzando DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Crea un'architettura serverless multi-tenant in Amazon Service OpenSearch](build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.md)
+ [Distribuisci applicazioni multi-stack utilizzando AWS CDK con TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Automatizza la distribuzione di applicazioni annidate utilizzando AWS SAM](automate-deployment-of-nested-applications-using-aws-sam.md)
+ [Implementa l'isolamento dei tenant SaaS per Amazon S3 utilizzando un distributore automatico di token AWS Lambda](implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.md)
+ [Implementa il modello di saga serverless utilizzando AWS Step Functions](implement-the-serverless-saga-pattern-by-using-aws-step-functions.md)
+ [Gestisci le applicazioni container locali configurando Amazon ECS Anywhere con AWS CDK](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Modernizza le applicazioni ASP.NET Web Forms su AWS](modernize-asp-net-web-forms-applications-on-aws.md)
+ [Onboarding dei tenant nell'architettura SaaS per il modello a silo utilizzando C\$1 e AWS CDK](tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.md)
+ [Scomponi i monoliti in microservizi utilizzando CQRS e l'event sourcing](decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.md)
+ [Altri modelli](modernization-more-patterns-pattern-list.md)

# Archivia automaticamente gli elementi su Amazon S3 utilizzando DynamoDB TTL
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl"></a>

*Tabby Ward, Amazon Web Services*

## Riepilogo
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-summary"></a>

Questo modello fornisce i passaggi per rimuovere i dati più vecchi da una tabella Amazon DynamoDB e archiviarli in un bucket Amazon Simple Storage Service (Amazon S3) su Amazon Web Services (AWS) senza dover gestire una flotta di server. 

Questo modello utilizza Amazon DynamoDB Time to Live (TTL) per eliminare automaticamente i vecchi elementi e Amazon DynamoDB Streams per acquisire gli elementi TTL scaduti. Quindi collega DynamoDB Streams ad AWS Lambda, che esegue il codice senza effettuare il provisioning o gestire alcun server. 

Quando vengono aggiunti nuovi elementi al flusso DynamoDB, viene avviata la funzione Lambda e scrive i dati in un flusso di distribuzione Amazon Data Firehose. Firehose offre una soluzione semplice e completamente gestita per caricare i dati come archivio in Amazon S3.

DynamoDB viene spesso utilizzato per archiviare dati di serie temporali, come dati click-stream di pagine Web o dati Internet of Things (IoT) provenienti da sensori e dispositivi connessi. Invece di eliminare gli elementi a cui si accede meno frequentemente, molti clienti desiderano archiviarli per scopi di controllo. TTL semplifica questa archiviazione eliminando automaticamente gli elementi in base all'attributo timestamp. 

Gli elementi eliminati tramite TTL possono essere identificati in DynamoDB Streams, che acquisisce una sequenza di modifiche a livello di elemento ordinata nel tempo e archivia la sequenza in un registro per un massimo di 24 ore. Questi dati possono essere utilizzati da una funzione Lambda e archiviati in un bucket Amazon S3 per ridurre i costi di storage. [Per ridurre ulteriormente i costi, è possibile creare [regole del ciclo di vita di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) per trasferire automaticamente i dati (non appena vengono creati) alle classi di storage a basso costo.](https://aws.amazon.com/s3/storage-classes/)

## Prerequisiti e limitazioni
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ [AWS Command Line Interface (AWS CLI) 1.7 o](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) versione successiva, installata e configurata su macOS, Linux o Windows.
+ [Python 3.7](https://www.python.org/downloads/release/python-370/) o successivo.
+ [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html), installato e configurato. Se Boto3 non è già installato, esegui il `python -m pip install boto3` comando per installarlo.

## Architecture
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-architecture"></a>

**Stack tecnologico**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Amazon Data Firehose
+ AWS Lambda
+ Simple Storage Service (Amazon S3)

![\[Processo in quattro fasi da DynamoDB al bucket S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9dbc833f-cf3c-4574-8f09-d0b81134fe41/images/50d9da65-5398-4a99-bc8f-58afc80e9d7b.png)


1. Gli elementi vengono eliminati tramite TTL.

1. Il trigger di flusso DynamoDB richiama la funzione del processore di flusso Lambda.

1. La funzione Lambda inserisce i record nel flusso di distribuzione di Firehose in formato batch.

1. I record di dati vengono archiviati nel bucket S3.

## Tools (Strumenti)
<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): l'AWS Command Line Interface (AWS CLI) è uno strumento unificato per gestire i servizi AWS.
+ [Amazon DynamoDB: Amazon](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) DynamoDB è un database di chiave-valore e documenti che offre prestazioni a una cifra in millisecondi su qualsiasi scala.
+ [Amazon DynamoDB Time to Live (TTL): Amazon DynamoDB TTL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html) ti aiuta a definire un timestamp per articolo per determinare quando un articolo non è più necessario.
+ [Amazon DynamoDB Streams — Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Types_Amazon_DynamoDB_Streams.html) Streams acquisisce una sequenza ordinata nel tempo di modifiche a livello di elemento in qualsiasi tabella DynamoDB e archivia queste informazioni in un registro per un massimo di 24 ore.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) — Amazon Data Firehose è il modo più semplice per caricare in modo affidabile lo streaming di dati in data lake, data store e servizi di analisi.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): AWS Lambda esegue codice senza la necessità di effettuare il provisioning o gestire server. I costi saranno calcolati in base al tempo di elaborazione effettivo.
+ [Amazon S3 — Amazon Simple](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) Storage Service (Amazon S3) è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni leader del settore.

**Codice**

Il codice per questo modello è disponibile nel repository GitHub [Archive items to S3 using DynamoDB TTL](https://github.com/aws-samples/automatically-archive-items-to-s3-using-dynamodb-ttl).

## Epiche
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-epics"></a>

### Configurare una tabella DynamoDB, TTL e un flusso DynamoDB
<a name="set-up-a-dynamodb-table-ttl-and-a-dynamodb-stream"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una tabella DynamoDB. | Utilizza l'AWS CLI per creare una tabella in DynamoDB chiamata. `Reservation` Scegli l'unità di capacità di lettura casuale (RCU) e l'unità di capacità di scrittura (WCU) e assegna alla tabella due attributi: e. `ReservationID` `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`è un timestamp epocale che verrà utilizzato per attivare il TTL. | Architetto del cloud, sviluppatore di app | 
| Attiva DynamoDB TTL. | Utilizza l'AWS CLI per attivare DynamoDB TTL per l'attributo. `ReservationDate`<pre>aws dynamodb update-time-to-live \<br />--table-name Reservation\<br />  --time-to-live-specification Enabled=true,AttributeName=ReservationDate</pre> | Architetto del cloud, sviluppatore di app | 
| Attiva uno stream DynamoDB. | Utilizza l'AWS CLI per attivare un flusso DynamoDB per la `Reservation` tabella utilizzando il tipo di flusso. `NEW_AND_OLD_IMAGES` <pre>aws dynamodb update-table \<br />--table-name Reservation \<br />  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES</pre>Questo flusso conterrà i record relativi a nuovi elementi, elementi aggiornati, elementi eliminati e elementi eliminati tramite TTL. I record relativi agli elementi eliminati tramite TTL contengono un attributo di metadati aggiuntivo per distinguerli dagli elementi eliminati manualmente. Il `userIdentity` campo per le eliminazioni TTL indica che il servizio DynamoDB ha eseguito l'azione di eliminazione. In questo modello, vengono archiviati solo gli elementi eliminati da TTL, ma è possibile archiviare solo i record in cui `eventName` è e contiene valori uguali a. `REMOVE` `userIdentity` `principalId` `dynamodb.amazonaws.com` | Architetto del cloud, sviluppatore di app | 

### Crea e configura un bucket S3
<a name="create-and-configure-an-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Utilizza l'AWS CLI per creare un bucket S3 di destinazione nella tua regione AWS, sostituendolo `us-east-1` con la tua regione e amzn-s3- con il nome del tuo bucket. demo-destination-bucket  <pre>aws s3api create-bucket \<br />--bucket amzn-s3-demo-destination-bucket \<br />--region us-east-1</pre>Assicurati che il nome del tuo bucket S3 sia unico a livello globale, poiché lo spazio dei nomi è condiviso da tutti gli account AWS. | Architetto del cloud, sviluppatore di app | 
| Crea una politica del ciclo di vita di 30 giorni per il bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.html) | Architetto del cloud, sviluppatore di app | 

### Creare un flusso di distribuzione Firehose
<a name="create-a-akf-delivery-stream"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea e configura un flusso di distribuzione Firehose. | Scarica e modifica l'esempio di `CreateFireHoseToS3.py` codice dal GitHub repository. Questo codice è scritto in Python e mostra come creare un flusso di distribuzione Firehose e un ruolo AWS Identity and Access Management (IAM). Il ruolo IAM avrà una policy che può essere utilizzata da Firehose per scrivere nel bucket S3 di destinazione.Per eseguire lo script, utilizzate i seguenti argomenti di comando e riga di comando.Argomento 1=`<Your_S3_bucket_ARN>`, che è l'Amazon Resource Name (ARN) per il bucket creato in precedenzaArgomento 2= Il nome del tuo Firehose (questo pilota lo sta `firehose_to_s3_stream` usando).Argomento 3= Il nome del ruolo IAM (questo programma pilota lo utilizza). `firehose_to_s3`<pre>python CreateFireHoseToS3.py <Your_S3_Bucket_ARN> firehose_to_s3_stream firehose_to_s3</pre>Se il ruolo IAM specificato non esiste, lo script creerà un ruolo di assunzione con una politica di relazione affidabile, nonché una politica che concede autorizzazioni Amazon S3 sufficienti. Per esempi di queste politiche, consulta la sezione *Informazioni aggiuntive*. | Architetto del cloud, sviluppatore di app | 
| Verifica lo stream di distribuzione di Firehose. | Descrivi il flusso di distribuzione di Firehose utilizzando la CLI di AWS per verificare che il flusso di distribuzione sia stato creato correttamente.<pre>aws firehose describe-delivery-stream --delivery-stream-name firehose_to_s3_stream </pre> | Architetto del cloud, sviluppatore di app | 

### Creare una funzione Lambda per elaborare il flusso di distribuzione di Firehose
<a name="create-a-lambda-function-to-process-the-akf-delivery-stream"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una politica di fiducia per la funzione Lambda. | Crea un file di criteri di fiducia con le seguenti informazioni.<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>Ciò consente alla funzione di accedere alle risorse AWS. | Architetto del cloud, sviluppatore di app | 
| Crea un ruolo di esecuzione per la funzione Lambda. | Per creare il ruolo di esecuzione, esegui il codice seguente.<pre>aws iam create-role --role-name lambda-ex --assume-role-policy-document file://TrustPolicy.json</pre> | Architetto del cloud, sviluppatore di app | 
| Aggiungi l'autorizzazione al ruolo. | Per aggiungere l'autorizzazione al ruolo, usa il `attach-policy-to-role` comando.<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> | Architetto del cloud, sviluppatore di app | 
| Creazione di una funzione Lambda. | Comprimi il `LambdaStreamProcessor.py` file dal repository di codice eseguendo il seguente comando.<pre>zip function.zip LambdaStreamProcessor.py</pre>Quando crei la funzione Lambda, avrai bisogno del ruolo di esecuzione Lambda ARN. Per ottenere l'ARN, esegui il codice seguente.<pre>aws iam get-role \<br />--role-name lambda-ex </pre>Per creare la funzione Lambda, esegui il codice seguente.<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> | Architetto del cloud, sviluppatore di app | 
| Configura il trigger della funzione Lambda. | Utilizza l'AWS CLI per configurare il trigger (DynamoDB Streams), che richiama la funzione Lambda. La dimensione del batch di 400 serve per evitare di incorrere in problemi di concorrenza 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> | Architetto del cloud, sviluppatore di app | 

### Prova la funzionalità
<a name="test-the-functionality"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi articoli con timestamp scaduti alla tabella delle prenotazioni. | Per testare la funzionalità, aggiungi alla tabella elementi con timestamp d'epoca scaduti. `Reservation` TTL eliminerà automaticamente gli elementi in base al timestamp. La funzione Lambda viene avviata sulle attività di DynamoDB Stream e filtra l'evento per identificare l'attività o gli elementi eliminati. `REMOVE` Quindi inserisce i record nel flusso di distribuzione di Firehose in formato batch.Il flusso di distribuzione Firehose trasferisce gli articoli a un bucket S3 di destinazione con il prefisso. `firehosetos3example/year=current year/month=current month/ day=current day/hour=current hour/`Per ottimizzare il recupero dei dati, configura Amazon S3 con `Prefix` `ErrorOutputPrefix` le informazioni dettagliate *nella* sezione Informazioni aggiuntive. | Architetto del cloud  | 

### Pulisci le risorse
<a name="clean-up-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare tutte le risorse. | Elimina tutte le risorse per assicurarti che non ti vengano addebitati costi per i servizi che non utilizzi.   | Architetto del cloud, sviluppatore di app | 

## Risorse correlate
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-resources"></a>
+ [Gestione del ciclo di vita dello storage](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)
+ [Classi di storage Amazon S3](https://aws.amazon.com/s3/storage-classes/)
+ [Documentazione dell'SDK AWS per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)

## Informazioni aggiuntive
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-additional"></a>

**Creare e configurare un flusso di distribuzione Firehose — Esempi di policy**

*Documento di esempio sulla politica delle relazioni di fiducia di Firehose*

```
firehose_assume_role = {
        'Version': '2012-10-17',
        'Statement': [
            {
                'Sid': '',
                'Effect': 'Allow',
                'Principal': {
                    'Service': 'firehose.amazonaws.com'
                },
                'Action': 'sts:AssumeRole'
            }
        ]
    }
```

*Esempio di politica di autorizzazione 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}"
                ]
            }
        ]
    }
```

**Verifica la funzionalità: configurazione Amazon S3**

La configurazione Amazon S3 con la seguente `Prefix` e `ErrorOutputPrefix` viene scelta per ottimizzare il recupero dei dati. 

*prefisso*

```
firehosetos3example/year=! {timestamp: yyyy}/month=! {timestamp:MM}/day=! {timestamp:dd}/hour=!{timestamp:HH}/
```

Firehose crea innanzitutto una cartella di base chiamata `firehosetos3example` direttamente sotto il bucket S3. Quindi valuta le espressioni e l'anno `!{timestamp:yyyy}``!{timestamp:MM}`, il mese`!{timestamp:dd}`, `!{timestamp:HH}` il giorno e l'ora utilizzando il formato Java. [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)

Ad esempio, un timestamp di arrivo approssimativo di 1604683577 in Unix epoch Time restituisce,, e. `year=2020` `month=11` `day=06` `hour=05` Pertanto, viene valutata la posizione in Amazon S3, in cui vengono distribuiti i record di dati. `firehosetos3example/year=2020/month=11/day=06/hour=05/`

*ErrorOutputPrefix*

```
firehosetos3erroroutputbase/!{firehose:random-string}/!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}/
```

I `ErrorOutputPrefix` risultati sono in una cartella di base richiamata `firehosetos3erroroutputbase` direttamente sotto il bucket S3. L'espressione `!{firehose:random-string}` restituisce una stringa casuale di 11 caratteri come. `ztWxkdg3Thg` Potrebbe essere valutata la posizione di un oggetto Amazon S3 in cui vengono consegnati i record non riusciti. `firehosetos3erroroutputbase/ztWxkdg3Thg/processing-failed/2020/11/06/`

# Crea un'architettura serverless multi-tenant in Amazon Service OpenSearch
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service"></a>

*Tabby Ward e Nisha Gambhir, Amazon Web Services*

## Riepilogo
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-summary"></a>

Amazon OpenSearch Service è un servizio gestito che semplifica l'implementazione, il funzionamento e la scalabilità di Elasticsearch, un popolare motore di ricerca e analisi open source. OpenSearch Il servizio offre la ricerca a testo libero, nonché l'inserimento e la creazione di dashboard quasi in tempo reale per lo streaming di dati come log e metriche. 

I fornitori di software as a service (SaaS) utilizzano spesso OpenSearch Service per affrontare un'ampia gamma di casi d'uso, ad esempio per ottenere informazioni sui clienti in modo scalabile e sicuro, riducendo al contempo la complessità e i tempi di inattività.

L'utilizzo OpenSearch del servizio in un ambiente multi-tenant introduce una serie di considerazioni che influiscono sul partizionamento, l'isolamento, l'implementazione e la gestione della soluzione SaaS. I provider SaaS devono considerare come scalare efficacemente i propri cluster Elasticsearch con carichi di lavoro in continuo cambiamento. Devono inoltre considerare in che modo la suddivisione in più livelli e le condizioni rumorose dei vicini potrebbero influire sul loro modello di partizionamento.

Questo modello esamina i modelli utilizzati per rappresentare e isolare i dati dei tenant con costrutti Elasticsearch. Inoltre, il modello si concentra su una semplice architettura di riferimento serverless come esempio per dimostrare l'indicizzazione e la ricerca utilizzando Service in un ambiente multi-tenant. OpenSearch Implementa il modello di partizionamento dei dati del pool, che condivide lo stesso indice tra tutti i tenant mantenendo l'isolamento dei dati del tenant. Questo modello utilizza i seguenti AWS servizi: Amazon API Gateway AWS Lambda, Amazon Simple Storage Service (Amazon S3) e Service. OpenSearch 

Per ulteriori informazioni sul modello di pool e su altri modelli di partizionamento dei dati, consulta la sezione Informazioni [aggiuntive](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional).

## Prerequisiti e limitazioni
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ [AWS Command Line Interface (AWS CLI) versione 2.x](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html), installata e configurata su macOS, Linux o Windows
+ [Python versione 3.9](https://www.python.org/downloads/release/python-3921/)
+ [pip3](https://pip.pypa.io/en/stable/) — Il codice sorgente di Python viene fornito come file.zip da distribuire in una funzione Lambda. Se desideri utilizzare il codice localmente o personalizzarlo, segui questi passaggi per sviluppare e ricompilare il codice sorgente:

  1. Genera il `requirements.txt` file eseguendo il seguente comando nella stessa directory degli script Python: `pip3 freeze > requirements.txt`

  1. Installa le dipendenze: `pip3 install -r requirements.txt`

**Limitazioni**
+ Questo codice viene eseguito in Python e attualmente non supporta altri linguaggi di programmazione. 
+ L'applicazione di esempio non include il supporto AWS interregionale o di disaster recovery (DR). 
+ Questo modello è destinato esclusivamente a scopo dimostrativo. Non è destinato all'uso in un ambiente di produzione.

## Architecture
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-architecture"></a>

Il diagramma seguente illustra l'architettura di alto livello di questo pattern. L'architettura include quanto segue:
+ Lambda per indicizzare e interrogare il contenuto 
+ OpenSearch Servizio per eseguire ricerche 
+ API Gateway per fornire un'interazione API con l'utente
+ Amazon S3 per archiviare dati grezzi (non indicizzati)
+ Amazon CloudWatch per monitorare i log
+ AWS Identity and Access Management (IAM) per creare ruoli e politiche degli inquilini

![\[Architettura serverless multi-tenant di alto livello.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/1a8501e7-0776-4aca-aed3-28e3ada1d15d.png)


**Automazione e scalabilità**

Per semplicità, il pattern utilizza AWS CLI il provisioning dell'infrastruttura e la distribuzione del codice di esempio. È possibile creare uno CloudFormation o più AWS Cloud Development Kit (AWS CDK) script per automatizzare il pattern.

## Tools (Strumenti)
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-tools"></a>

**Servizi AWS**
+ [AWS CLI](https://aws.amazon.com/cli/)è uno strumento unificato per la gestione Servizi AWS e le risorse utilizzando i comandi nella shell della riga di comando.
+ [Lambda](https://aws.amazon.com/lambda/) è un servizio di elaborazione che consente di eseguire codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo.
+ [API Gateway](https://aws.amazon.com/api-gateway/) Servizio AWS consente di creare, pubblicare, mantenere, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [Amazon S3](https://aws.amazon.com/s3/) è un servizio di storage di oggetti che consente di archiviare e recuperare qualsiasi quantità di informazioni in qualsiasi momento, da qualsiasi punto del Web.
+ [OpenSearch Service](https://aws.amazon.com/opensearch-service/) è un servizio completamente gestito che semplifica l'implementazione, la protezione e l'esecuzione di Elasticsearch su larga scala in modo conveniente.

**Codice**

L'allegato fornisce file di esempio per questo modello. Ciò include:
+ `index_lambda_package.zip`— La funzione Lambda per l'indicizzazione dei dati in OpenSearch Service utilizzando il modello pool.
+ `search_lambda_package.zip`— La funzione Lambda per la ricerca di dati in OpenSearch Service.
+ `Tenant-1-data`— Esempio di dati grezzi (non indicizzati) per Tenant-1.
+ `Tenant-2-data`— Esempio di dati grezzi (non indicizzati) per Tenant-2.

**Importante**  
Le storie di questo modello includono esempi di AWS CLI comandi formattati per Unix, Linux e macOS. Per Windows, sostituisci il carattere di continuazione UNIX barra rovesciata (\$1) al termine di ogni riga con un accento circonflesso (^).

**Nota**  
Nei AWS CLI comandi, sostituite tutti i valori all'interno delle parentesi angolari (<>) con i valori corretti.

## Epiche
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-epics"></a>

### Crea e configura un bucket S3
<a name="create-and-configure-an-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | Crea un bucket S3 nel tuo. Regione AWS Questo bucket conterrà i dati del tenant non indicizzati per l'applicazione di esempio. Assicurati che il nome del bucket S3 sia univoco a livello globale, perché lo spazio dei nomi è condiviso da tutti. Account AWS[Per creare un bucket S3, puoi usare il comando create-bucket come segue: AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)<pre>aws s3api create-bucket \<br />  --bucket <tenantrawdata> \<br />  --region <your-AWS-Region></pre>dov'è il nome del bucket `tenantrawdata` S3. (È possibile utilizzare qualsiasi nome univoco che segua le linee guida per [la denominazione dei bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).) | Architetto del cloud, amministratore del cloud | 

### Crea e configura un cluster Elasticsearch
<a name="create-and-configure-an-elasticsearch-cluster"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio OpenSearch di servizio. | Esegui il AWS CLI [create-elasticsearch-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/es/create-elasticsearch-domain.html)comando per creare un dominio OpenSearch di servizio:<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>Il conteggio delle istanze è impostato su 1 perché il dominio è a scopo di test. È necessario abilitare il controllo granulare degli accessi utilizzando il `advanced-security-options` parametro, poiché i dettagli non possono essere modificati dopo la creazione del dominio. Questo comando crea un nome utente principale (`KibanaUser`) e una password che puoi usare per accedere alla console Kibana.Poiché il dominio fa parte di un cloud privato virtuale (VPC), devi assicurarti di poter raggiungere l'istanza Elasticsearch specificando la politica di accesso da utilizzare.Per ulteriori informazioni, consulta [la sezione Avvio dei domini Amazon OpenSearch Service all'interno di un VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html) nella documentazione. AWS  | Architetto del cloud, amministratore del cloud | 
| Configura un bastion host. | Configura un'istanza Windows di Amazon Elastic Compute Cloud (Amazon EC2) come host bastion per accedere alla console Kibana. Il gruppo di sicurezza Elasticsearch deve consentire il traffico proveniente dal gruppo di EC2 sicurezza Amazon. Per istruzioni, consulta il post sul blog [Controllare l'accesso alla rete alle EC2 istanze utilizzando un](https://aws.amazon.com/blogs/security/controlling-network-access-to-ec2-instances-using-a-bastion-server/) server Bastion.Quando il bastion host è stato configurato e hai a disposizione il gruppo di sicurezza associato all'istanza, usa il AWS CLI [authorize-security-group-ingress](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/authorize-security-group-ingress.html)comando per aggiungere l'autorizzazione al gruppo di sicurezza Elasticsearch per consentire la porta 443 dal gruppo di sicurezza 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> | Architetto del cloud, amministratore del cloud | 

### Creare e configurare la funzione di indice Lambda
<a name="create-and-configure-the-lam-index-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il ruolo di esecuzione Lambda. | Esegui il comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) per concedere alla funzione di indice Lambda l'accesso a e risorse: Servizi AWS <pre>aws iam create-role \<br />  --role-name index-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>dove `lambda_assume_role.json` è un documento JSON che concede `AssumeRole` le autorizzazioni alla funzione Lambda, come segue:<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> | Architetto cloud, amministratore cloud | 
| Associa policy gestite al ruolo Lambda. | Esegui il AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando per allegare le politiche gestite al ruolo creato nel passaggio precedente. Queste due politiche forniscono al ruolo le autorizzazioni per creare un'interfaccia di rete elastica e scrivere log su Logs. CloudWatch <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> | Architetto cloud, amministratore cloud | 
| Crea una politica per concedere alla funzione di indice Lambda il permesso di leggere gli oggetti S3. | Esegui il comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) per concedere alla funzione di indice Lambda `s3:GetObject` il permesso di leggere gli oggetti nel bucket S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3-policy.json</pre>Il file `s3-policy.json` è un documento JSON mostrato di seguito che concede le `s3:GetObject` autorizzazioni per consentire l'accesso in lettura agli oggetti S3. Se hai usato un nome diverso quando hai creato il bucket S3, fornisci il nome del bucket corretto nella sezione: `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> | Architetto del cloud, amministratore del cloud | 
| Allega la politica di autorizzazione di Amazon S3 al ruolo di esecuzione Lambda. | Esegui il AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando per allegare la politica di autorizzazione di Amazon S3 creata nel passaggio precedente al ruolo di esecuzione Lambda:<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn <PolicyARN></pre>`PolicyARN`dov'è l'Amazon Resource Name (ARN) della politica di autorizzazione di Amazon S3. Puoi ottenere questo valore dall'output del comando precedente. | Architetto del cloud, amministratore del cloud | 
| Crea la funzione di indice Lambda. | Esegui il comando AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) per creare la funzione di indice Lambda, che accederà a 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> | Architetto cloud, amministratore cloud | 
| Consenti ad Amazon S3 di chiamare la funzione di indice Lambda. | Esegui il comando AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) per concedere ad Amazon S3 l'autorizzazione a chiamare la funzione di indice 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> | Architetto del cloud, amministratore del cloud | 
| Aggiungi un trigger Lambda per l'evento Amazon S3. | Esegui il AWS CLI [put-bucket-notification-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification-configuration.html)comando per inviare notifiche alla funzione di indice Lambda quando viene rilevato l'evento Amazon `ObjectCreated` S3. La funzione index viene eseguita ogni volta che un oggetto viene caricato nel bucket S3. <pre>aws s3api put-bucket-notification-configuration \<br />  --bucket <tenantrawdata> \<br />  --notification-configuration file://s3-trigger.json</pre>Il file `s3-trigger.json` è un documento JSON nella cartella corrente che aggiunge la policy delle risorse alla funzione Lambda quando si verifica l'evento Amazon `ObjectCreated` S3. | Architetto del cloud, amministratore del cloud | 

### Creare e configurare la funzione di ricerca Lambda
<a name="create-and-configure-the-lam-search-function"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il ruolo di esecuzione Lambda. | Esegui il comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) per concedere alla funzione di ricerca Lambda l'accesso a e risorse: Servizi AWS <pre>aws iam create-role \<br />  --role-name search-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>dove `lambda_assume_role.json` è un documento JSON nella cartella corrente che concede `AssumeRole` le autorizzazioni alla funzione Lambda, come segue:<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> | Architetto cloud, amministratore cloud | 
| Associa policy gestite al ruolo Lambda. | Esegui il AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando per allegare le politiche gestite al ruolo creato nel passaggio precedente. Queste due politiche forniscono al ruolo le autorizzazioni per creare un'interfaccia di rete elastica e scrivere log su Logs. CloudWatch <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> | Architetto cloud, amministratore cloud | 
| Crea la funzione di ricerca Lambda. | Esegui il comando AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) per creare la funzione di ricerca Lambda, che accederà a Service: 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> | Architetto cloud, amministratore cloud | 

### Crea e configura i ruoli degli inquilini
<a name="create-and-configure-tenant-roles"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea ruoli IAM tenant. | Esegui il comando AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) per creare due ruoli tenant che verranno utilizzati per testare la funzionalità di ricerca:<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>Il file `assume-role-policy.json` è un documento JSON nella cartella corrente che concede le `AssumeRole` autorizzazioni per il ruolo di esecuzione 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> | Architetto del cloud, amministratore del cloud | 
| Crea una policy IAM per i tenant. | Esegui il comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) per creare una politica del tenant che garantisca l'accesso alle operazioni di Elasticsearch:<pre>aws iam create-policy \<br />  --policy-name tenant-policy \<br />  --policy-document file://policy.json</pre>Il file `policy.json` è un documento JSON nella cartella corrente che concede le autorizzazioni su 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> | Architetto del cloud, amministratore del cloud | 
| Allega la policy IAM del tenant ai ruoli del tenant. | Esegui il AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando per allegare la politica IAM del tenant ai due ruoli tenant che hai creato nel passaggio precedente:<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>L'ARN della policy proviene dall'output del passaggio precedente. | Architetto del cloud, amministratore del cloud | 
| Crea una policy IAM per concedere a Lambda le autorizzazioni per assumere il ruolo. | Esegui il comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) per creare una politica affinché Lambda assuma il ruolo di tenant:<pre>aws iam create-policy \<br />  --policy-name assume-tenant-role-policy \<br />  --policy-document file://lambda_policy.json</pre>Il file `lambda_policy.json` è un documento JSON nella cartella corrente che concede le autorizzazioni per: `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>Infatti`Resource`, puoi usare un carattere jolly per evitare di creare una nuova politica per ogni tenant. | Architetto del cloud, amministratore del cloud | 
| Crea una policy IAM per concedere al ruolo dell'indice Lambda l'autorizzazione ad accedere ad Amazon S3. | Esegui il comando AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) per concedere al ruolo dell'indice Lambda il permesso di accedere agli oggetti nel bucket S3:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3_lambda_policy.json</pre>Il file `s3_lambda_policy.json` è il seguente documento di policy JSON nella cartella corrente:<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> | Architetto del cloud, amministratore del cloud | 
| Associa la policy al ruolo di esecuzione Lambda. | Esegui il AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)comando per allegare la policy creata nel passaggio precedente all'indice Lambda e ai ruoli di esecuzione della ricerca che hai creato in precedenza:<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>L'ARN della policy proviene dall'output del passaggio precedente. | Architetto del cloud, amministratore del cloud | 

### Crea e configura un'API di ricerca
<a name="create-and-configure-a-search-api"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'API REST in API Gateway. | Esegui il AWS CLI [create-rest-api](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-rest-api.html)comando per creare una risorsa API REST:<pre>aws apigateway create-rest-api \<br />  --name Test-Api \<br />  --endpoint-configuration "{ \"types\": [\"REGIONAL\"] }"</pre>Per il tipo di configurazione dell'endpoint, è possibile specificare `EDGE` anziché `REGIONAL` utilizzare posizioni periferiche anziché una particolare Regione AWS.Annotate il valore del `id` campo dall'output del comando. Questo è l'ID API che utilizzerai nei comandi successivi. | Architetto del cloud, amministratore del cloud | 
| Crea una risorsa per l'API di ricerca. | La risorsa API di ricerca avvia la funzione di ricerca Lambda con il nome della risorsa. `search` (Non è necessario creare un'API per la funzione di indice Lambda, perché viene eseguita automaticamente quando gli oggetti vengono caricati nel bucket S3.)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Architetto del cloud, amministratore del cloud | 
| Crea un metodo GET per l'API di ricerca. | Esegui il comando AWS CLI [put-method](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method.html) per creare un `GET ` metodo per l'API di ricerca:<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>Per`resource-id`, specifica l'ID dall'output del `create-resource` comando. | Architetto cloud, amministratore cloud | 
| Crea un metodo di risposta per l'API di ricerca. | Esegui il AWS CLI [put-method-response](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method-response.html)comando per aggiungere un metodo di risposta per l'API di ricerca:<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>Per`resource-id`, specifica l'ID dall'output del `create-resource` comando precedente. | Architetto del cloud, amministratore del cloud | 
| Configura un'integrazione proxy Lambda per l'API di ricerca. | Esegui il comando AWS CLI [put-integration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-integration.html) per impostare un'integrazione con la funzione di ricerca 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>Per`resource-id`, specifica l'ID del comando precedente. `create-resource` | Architetto del cloud, amministratore del cloud | 
| Concedi l'autorizzazione API Gateway per chiamare la funzione di ricerca Lambda. | Esegui il comando AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) per autorizzare API Gateway a utilizzare la funzione di ricerca:<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>Modifica il `source-arn` percorso se hai utilizzato un nome di risorsa API diverso anziché`search`. | Architetto del cloud, amministratore del cloud | 
| Implementa l'API di ricerca. | Esegui il comando AWS CLI [create-deployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-deployment.html) per creare una risorsa di fase denominata: `dev`<pre>aws apigateway create-deployment \<br />  --rest-api-id <API-ID> \<br />  --stage-name dev</pre>Se aggiorni l'API, puoi utilizzare lo stesso AWS CLI comando per ridistribuirla nella stessa fase. | Architetto del cloud, amministratore del cloud | 

### Crea e configura i ruoli di Kibana
<a name="create-and-configure-kibana-roles"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Accedi alla console Kibana. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Architetto del cloud, amministratore del cloud | 
| Crea e configura i ruoli di Kibana. | Per garantire l'isolamento dei dati e assicurarsi che un tenant non possa recuperare i dati di un altro tenant, è necessario utilizzare la sicurezza dei documenti, che consente agli inquilini di accedere solo ai documenti che contengono il loro ID tenant.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Architetto del cloud, amministratore del cloud | 
| Associa gli utenti ai ruoli. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Ti consigliamo di automatizzare la creazione dei ruoli tenant e Kibana al momento dell'onboarding del tenant. | Architetto cloud, amministratore cloud | 
| Crea l'indice dei dati degli inquilini. | Nel riquadro di navigazione, in **Gestione**, scegli **Dev Tools**, quindi esegui il comando seguente. Questo comando crea l'`tenant-data`indice per definire la mappatura della `TenantId` proprietà.<pre>PUT /tenant-data<br />{<br />  "mappings": {<br />    "properties": {<br />      "TenantId": { "type": "keyword"}<br />    }<br />  }<br />}</pre> | Architetto del cloud, amministratore del cloud | 

### Crea endpoint VPC per Amazon S3 e AWS STS
<a name="create-vpc-endpoints-for-s3-and-sts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un endpoint VPC per Amazon S3. | Esegui il AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)comando per creare un endpoint VPC per Amazon S3. L'endpoint abilita la funzione di indice Lambda nel VPC per accedere ad 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>Per`vpc-id`, specifica il VPC che stai utilizzando per la funzione di indice Lambda. Per`service-name`, usa l'URL corretto per l'endpoint Amazon S3. Per`route-table-ids`, specifica la tabella di routing associata all'endpoint VPC. | Architetto del cloud, amministratore del cloud | 
| Crea un endpoint VPC per. AWS STS | Esegui il AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)comando per creare un endpoint VPC per AWS Security Token Service ().AWS STS L'endpoint consente l'accesso all'indice Lambda e alle funzioni di ricerca nel VPC. AWS STS Le funzioni AWS STS vengono utilizzate quando assumono il ruolo 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>Per`vpc-id`, specifica il VPC che stai utilizzando per l'indice Lambda e le funzioni di ricerca. Infatti`subnet-id`, fornisci la sottorete in cui deve essere creato questo endpoint. Per`security-group-id`, specifica il gruppo di sicurezza a cui associare questo endpoint. (Potrebbe essere lo stesso del gruppo di sicurezza utilizzato da Lambda). | Architetto del cloud, amministratore del cloud | 

### Testa la multi-tenancy e l'isolamento dei dati
<a name="test-multi-tenancy-and-data-isolation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna i file Python per le funzioni di indice e ricerca. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Puoi ottenere l'endpoint Elasticsearch dalla scheda **Panoramica** della console di servizio. OpenSearch Ha il formato. `<AWS-Region>.es.amazonaws.com` | Architetto del cloud, sviluppatore di app | 
| Aggiorna il codice Lambda. | Usa il AWS CLI [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html)comando per aggiornare il codice Lambda con le modifiche apportate ai file 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> | Architetto cloud, sviluppatore di app | 
| Carica i dati grezzi nel bucket S3. | Usa il comando AWS CLI [cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) per caricare i dati per gli oggetti Tenant-1 e Tenant-2 nel `tenantrawdata` bucket (specifica il nome del bucket S3 che hai creato a questo scopo):<pre>aws s3 cp tenant-1-data s3://tenantrawdata<br />aws s3 cp tenant-2-data s3://tenantrawdata</pre>Il bucket S3 è configurato per eseguire la funzione di indice Lambda ogni volta che i dati vengono caricati in modo che il documento venga indicizzato in Elasticsearch. | Architetto del cloud, amministratore del cloud | 
| Cerca dati dalla console Kibana. | Sulla console Kibana, esegui la seguente query:<pre>GET tenant-data/_search</pre>Questa query mostra tutti i documenti indicizzati in Elasticsearch. In questo caso, dovresti vedere due documenti separati per Tenant-1 e Tenant-2. | Architetto del cloud, amministratore del cloud | 
| Prova l'API di ricerca da API Gateway. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Per le illustrazioni delle schermate, vedere la sezione Informazioni [aggiuntive](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional). | Architetto del cloud, sviluppatore di app | 
| Eliminare le risorse. | Pulisci tutte le risorse che hai creato per evitare addebiti aggiuntivi sul tuo account. | AWS DevOps, architetto cloud, amministratore cloud | 

## Risorse correlate
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-resources"></a>
+ [AWS SDK per Python (Boto)](https://aws.amazon.com/sdk-for-python/)
+ [AWS Lambda documentazione](https://docs.aws.amazon.com/lambda/)
+ [Documentazione API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Documentazione Amazon S3](https://docs.aws.amazon.com/s3/)
+ [Documentazione OpenSearch del servizio Amazon](https://docs.aws.amazon.com/elasticsearch-service/)
  + [Controllo granulare degli accessi in Amazon Service OpenSearch ](https://docs.amazonaws.cn/en_us/elasticsearch-service/latest/developerguide/fgac.html)
  + [Creazione di un'applicazione di ricerca con Amazon OpenSearch Service](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/search-example.html)
  + [Avvio dei domini Amazon OpenSearch Service all'interno di un VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html)

## Informazioni aggiuntive
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional"></a>

**Modelli di partizionamento dei dati**

Esistono tre modelli di partizionamento dei dati comuni utilizzati nei sistemi multi-tenant: silo, pool e hybrid. Il modello scelto dipende dalla conformità, dalla rumorosità dei sistemi vicini, dalle operazioni e dalle esigenze di isolamento dell'ambiente.

*Modello Silo*

Nel modello a silo, i dati di ciascun inquilino vengono archiviati in un'area di archiviazione distinta in cui non vi è alcuna combinazione dei dati del tenant. È possibile utilizzare due approcci per implementare il modello a silo con OpenSearch Service: dominio per tenant e indice per tenant.
+ **Dominio per tenant**: puoi utilizzare un dominio di OpenSearch servizio separato (sinonimo di cluster Elasticsearch) per tenant. L'inserimento di ogni tenant nel proprio dominio offre tutti i vantaggi associati alla presenza di dati in un costrutto autonomo. Tuttavia, questo approccio introduce sfide di gestione e agilità. La sua natura distribuita rende più difficile l'aggregazione e la valutazione dello stato operativo e dell'attività degli inquilini. Si tratta di un'opzione costosa che richiede che ogni dominio di OpenSearch servizio disponga almeno di tre nodi master e due nodi di dati per i carichi di lavoro di produzione.

![\[Modello di silo di dominio per tenant per architetture serverless multi-tenant.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2195f82-e5ed-40bb-b76a-3b0210bf1254.png)


 
+ **Indice per tenant: è possibile inserire i dati dei tenant** in indici separati all'interno di un cluster di servizi. OpenSearch Con questo approccio, si utilizza un identificatore del tenant quando si crea e si assegna un nome all'indice, anteponendo l'identificatore del tenant al nome dell'indice. L'approccio dell'indice per tenant consente di raggiungere gli obiettivi dei silo senza introdurre un cluster completamente separato per ogni tenant. Tuttavia, se il numero di indici aumenta, si potrebbe verificare una pressione sulla memoria, poiché questo approccio richiede più shard e il nodo master deve gestire una maggiore allocazione e ribilanciamento.

![\[Modello di silo indicizzato per tenant per architetture serverless multi-tenant.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/354a9463-25bb-422b-84de-d4875a7c8ea2.png)


 

**Isolamento nel modello a silo: nel modello** a silo, si utilizzano le policy IAM per isolare i domini o gli indici che contengono i dati di ciascun tenant. Queste politiche impediscono a un tenant di accedere ai dati di un altro tenant. Per implementare il modello di isolamento dei silo, è possibile creare una politica basata sulle risorse che controlli l'accesso alla risorsa del tenant. Si tratta spesso di una politica di accesso al dominio che specifica quali azioni un principale può eseguire sulle risorse secondarie del dominio, inclusi gli indici Elasticsearch e. APIs Con le policy basate sull'identità IAM, puoi specificare azioni *consentite* o *negate* sul dominio, sugli indici o all'interno del Servizio. APIs OpenSearch L'`Action`elemento di una policy IAM descrive l'azione o le azioni specifiche consentite o negate dalla policy e specifica gli account, gli `Principal ` utenti o i ruoli interessati.

La seguente policy di esempio concede al Tenant-1 l'accesso completo (come specificato da`es:*`) solo alle risorse secondarie del dominio. `tenant-1` La fine `/*` dell'`Resource`elemento indica che questa politica si applica alle risorse secondarie del dominio, non al dominio stesso. Quando questa politica è in vigore, i tenant non sono autorizzati a creare un nuovo dominio o modificare le impostazioni su un dominio esistente.

```
{
   "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/*"
      }
   ]
}
```

Per implementare il modello di silo tenant per index, è necessario modificare questa politica di esempio per limitare ulteriormente Tenant-1 all'indice o agli indici specificati, specificando il nome dell'indice. La seguente politica di esempio limita Tenant-1 all'indice. `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/*"
      }
   ]
}
```

*Modello di piscina*

Nel modello di pool, tutti i dati dei tenant vengono archiviati in un indice all'interno dello stesso dominio. L'identificatore del tenant è incluso nei dati (documento) e utilizzato come chiave di partizione, in modo da poter determinare quali dati appartengono a quale tenant. Questo modello riduce il sovraccarico di gestione. Il funzionamento e la gestione dell'indice raggruppato sono più semplici ed efficienti rispetto alla gestione di più indici. Tuttavia, poiché i dati dei tenant vengono combinati all'interno dello stesso indice, si perde il naturale isolamento dei tenant fornito dal modello a silo. Questo approccio potrebbe inoltre ridurre le prestazioni a causa dell'effetto Noisy Neighbor.

![\[Modello di pool per architetture serverless multi-tenant.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2c3bb0f-6ccd-47a7-ab67-e7f3f8c7f289.png)


 

**Isolamento dei tenant nel modello pool**: in generale, l'isolamento dei tenant è difficile da implementare nel modello pool. Il meccanismo IAM utilizzato con il modello a silo non consente di descrivere l'isolamento in base all'ID del tenant memorizzato nel documento.

Un approccio alternativo consiste nell'utilizzare il supporto per il [controllo degli accessi a grana fine](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html) (FGAC) fornito da Open Distro for Elasticsearch. FGAC consente di controllare le autorizzazioni a livello di indice, documento o campo. Con ogni richiesta, FGAC valuta le credenziali dell'utente e autentica l'utente o nega l'accesso. Se FGAC autentica l'utente, recupera tutti i ruoli mappati a quell'utente e utilizza il set completo di autorizzazioni per determinare come gestire la richiesta. 

Per ottenere l'isolamento richiesto nel modello in pool, è possibile utilizzare la [sicurezza a livello di documento, che consente di limitare un ruolo a un sottoinsieme](https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/document-level-security/) di documenti in un indice. Il seguente ruolo di esempio limita le query a Tenant-1. Applicando questo ruolo a Tenant-1, è possibile ottenere l'isolamento necessario. 

```
{
   "bool": {
     "must": {
       "match": {
         "tenantId": "Tenant-1"
       }
     }
   }
 }
```

*Modello ibrido*

Il modello ibrido utilizza una combinazione dei modelli a silo e pool nello stesso ambiente per offrire esperienze uniche a ciascun livello di tenant (ad esempio i livelli gratuito, standard e premium). Ogni livello segue lo stesso profilo di sicurezza utilizzato nel modello pool.

 

![\[Modello ibrido per architetture serverless multi-tenant.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/e7def98a-38ef-435a-9881-7e95ae4d4940.png)


**Isolamento dei tenant nel modello ibrido**: nel modello ibrido, si segue lo stesso profilo di sicurezza del modello pool, dove l'utilizzo del modello di sicurezza FGAC a livello di documento forniva l'isolamento dei tenant. Sebbene questa strategia semplifichi la gestione dei cluster e offra agilità, complica altri aspetti dell'architettura. Ad esempio, il codice richiede una complessità aggiuntiva per determinare quale modello è associato a ciascun tenant. È inoltre necessario assicurarsi che le query relative a un solo tenant non saturino l'intero dominio e compromettano l'esperienza degli altri tenant. 

**Test in API Gateway**

*Finestra di test per la query Tenant-1*

![\[Finestra di test per la query Tenant-1.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/a6757d3f-977a-4ecc-90cb-83ab7f1c3588.png)


*Finestra di test per la query Tenant-2*

 

![\[Finestra di test per la query Tenant-2.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/31bfd656-33ca-4750-b6e6-da4d703c2071.png)


## Allegati
<a name="attachments-750196bb-03f6-4b6e-92cd-eb7141602547"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/750196bb-03f6-4b6e-92cd-eb7141602547/attachments/attachment.zip)

# Distribuisci applicazioni multi-stack utilizzando AWS CDK con TypeScript
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript"></a>

*Dott. Rahul Sharad Gaikwad, Amazon Web Services*

## Riepilogo
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-summary"></a>

Questo modello fornisce un step-by-step approccio per la distribuzione di applicazioni su Amazon Web Services (AWS) utilizzando AWS Cloud Development Kit (AWS CDK) con TypeScript. Ad esempio, il pattern implementa un'applicazione di analisi in tempo reale senza server.

Il pattern crea e distribuisce applicazioni stack annidate. Lo stack AWS principale chiama gli CloudFormation stack secondari, o annidati.  Ogni stack secondario crea e distribuisce le risorse AWS definite nello stack. CloudFormation AWS CDK Toolkit, il comando dell'interfaccia a riga di comando (CLI)`cdk`, è l'interfaccia principale per gli stack. CloudFormation 

## Prerequisiti e limitazioni
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Cloud privato virtuale (VPC) e sottoreti esistenti
+ AWS CDK Toolkit installato e configurato
+ Un utente con autorizzazioni di amministratore e un set di chiavi di accesso.
+ Node.js
+ Interfaccia a riga di comando di AWS (CLI AWS)

**Limitazioni**
+ Poiché AWS CDK utilizza AWS CloudFormation, le applicazioni AWS CDK sono soggette a quote di CloudFormation servizio. Per ulteriori informazioni, consulta [AWS CloudFormation quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**Versioni del prodotto**

Questo modello è stato creato e testato utilizzando i seguenti strumenti e versioni.
+ Kit di strumenti CDK AWS 1.83.0
+ Node.js 14.13.0
+ npm 7.0.14

Il modello dovrebbe funzionare con qualsiasi versione di AWS CDK o npm. Tieni presente che le versioni di Node.js dalla 13.0.0 alla 13.6.0 non sono compatibili con AWS CDK.

## Architecture
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-architecture"></a>

**Stack tecnologico Target**
+ Console AWS Amplify
+ Gateway Amazon API
+ AWS CDK
+ Amazon CloudFront
+ Amazon Cognito
+ Amazon DynamoDB
+ Amazon Data Firehose
+ Flusso di dati Amazon Kinesis
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon S3)

**Architettura Target**

Il diagramma seguente mostra la distribuzione di applicazioni a stack multiplo utilizzando AWS CDK con. TypeScript

![\[Architettura dello stack nel VPC, con uno stack principale e due stack secondari che contengono risorse.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/8f92e86a-aa3d-4f8a-9b11-b92c52a7226c.png)


 

Il diagramma seguente mostra l'architettura dell'applicazione serverless in tempo reale di esempio.

![\[Architettura dell'applicazione nella regione.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/2df00faf-f871-4aec-9655-19ba2eb14cf8.png)


 

## Tools (Strumenti)
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-tools"></a>

**Strumenti**
+ La console [AWS Amplify](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html) è il centro di controllo per le distribuzioni complete di applicazioni web e mobili in AWS. L'hosting di Amplify Console offre un flusso di lavoro basato su git per l'hosting di app web serverless fullstack con distribuzione continua. L'interfaccia utente di amministrazione è un'interfaccia visiva per gli sviluppatori web e mobili di frontend per creare e gestire i backend di app al di fuori della console AWS.
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) è un servizio AWS per la creazione, la pubblicazione, la manutenzione, il monitoraggio e la protezione di REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) è un kit di sviluppo cloud a riga di comando che ti aiuta a interagire con la tua app AWS CDK. Il comando `cdk` CLI è lo strumento principale per interagire con l'app AWS CDK. Esegue la tua app, interroga il modello di applicazione che hai definito e produce e distribuisce i CloudFormation modelli AWS generati dal CDK AWS.
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) è un servizio Web che accelera la distribuzione di contenuti Web statici e dinamici, come .html, .css, .js e file di immagine. CloudFront distribuisce i tuoi contenuti attraverso una rete mondiale di data center denominati edge location per ridurre la latenza e migliorare le prestazioni.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornisce autenticazione, autorizzazione e gestione degli utenti per le tue app Web e mobili. I tuoi utenti possono accedere direttamente o tramite terze parti.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL completamente gestito che offre prestazioni veloci e prevedibili con una scalabilità perfetta.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) è un servizio completamente gestito per la distribuzione di [dati di streaming](https://aws.amazon.com/streaming-data/) in tempo reale a destinazioni come Amazon S3, Amazon Redshift, OpenSearch Amazon Service, Splunk e qualsiasi endpoint HTTP o endpoint HTTP personalizzato di proprietà di provider di servizi terzi supportati.
+ [Amazon Kinesis Data](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) Streams è un servizio per la raccolta e l'elaborazione di grandi flussi di record di dati in tempo reale.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di elaborazione che supporta l'esecuzione di codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. Verrà addebitato soltanto il tempo di calcolo consumato e non verrà addebitato alcun costo quando il codice non è in esecuzione.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Codice**

Il codice per questo modello è allegato.

## Epiche
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-epics"></a>

### Installa AWS CDK Toolkit
<a name="install-aws-cdk-toolkit"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS CDK Toolkit. | Per installare AWS CDK Toolkit a livello globale, esegui il seguente comando.`npm install -g aws-cdk` | DevOps | 
| Verifica la versione. | Per verificare la versione di AWS CDK Toolkit, esegui il comando seguente. `cdk --version` | DevOps | 

### Configura le credenziali AWS
<a name="set-up-aws-credentials"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le credenziali. | Per configurare le credenziali, esegui il `aws configure` comando e segui le istruzioni.<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 | 

### Scarica il codice del progetto
<a name="download-the-project-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il codice del progetto allegato. | Per ulteriori informazioni sulla directory e sulla struttura dei file, consulta la sezione *Informazioni aggiuntive*. | DevOps | 

### Esegui il bootstrap dell'ambiente AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia l'ambiente. | Per distribuire il CloudFormation modello AWS nell'account e nella regione AWS che desideri utilizzare, esegui il comando seguente.`cdk bootstrap <account>/<Region>`Per ulteriori informazioni, consulta la [documentazione di AWS](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | DevOps | 

### Crea e distribuisci il progetto
<a name="build-and-deploy-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Compilare il progetto. | Per creare il codice del progetto, esegui il `npm run build` comando. | DevOps | 
| Distribuisci il progetto | Per distribuire il codice del progetto, esegui il `cdk deploy` comando. |  | 

### Verifica gli output
<a name="verify-outputs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la creazione dello stack. | Nella Console di gestione AWS, scegli **CloudFormation**. Negli stack del progetto, verifica che siano stati creati uno stack principale e due stack secondari. | DevOps | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia dati a Kinesis Data Streams. | Configura il tuo account AWS per inviare dati a Kinesis Data Streams utilizzando Amazon Kinesis Data Generator (KDG). Per ulteriori informazioni, consulta [Amazon Kinesis Data](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html) Generator. | DevOps | 
| Crea un utente Amazon Cognito. | [Per creare un utente Amazon Cognito, scarica il modello cognito-setup.json CloudFormation dalla sezione Crea *un utente Amazon Cognito della pagina di aiuto di Kinesis Data Generator*.](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html) **Avvia il modello, quindi inserisci il nome utente e la password di Amazon **Cognito**.**La scheda **Output** elenca l'URL di Kinesis Data Generator. | DevOps | 
| Accedi a Kinesis Data Generator | Per accedere a KDG, utilizza le credenziali di Amazon Cognito che hai fornito e l'URL di Kinesis Data Generator. | DevOps | 
| Testare l'applicazione. | **In KDG, in **Record template, Template** **1**, incolla il codice di test dalla sezione *Informazioni aggiuntive* e scegli Invia dati.** | DevOps | 
| Gateway API di prova. | Dopo che i dati sono stati inseriti, prova API Gateway utilizzando il `GET` metodo per recuperare i dati. | DevOps | 

## Risorse correlate
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-resources"></a>

**Riferimenti**
+ [Kit di sviluppo AWS per il cloud](https://aws.amazon.com/cdk/)
+ [CDK AWS su GitHub](https://github.com/aws/aws-cdk)
+ [Lavorare con stack annidati](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
+ [Esempio di AWS: analisi in tempo reale senza server](https://github.com/aws-samples/serverless-realtime-analytics)

## Informazioni aggiuntive
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-additional"></a>

**Dettagli di directory e file**

Questo modello imposta le seguenti tre pile.
+ `parent-cdk-stack.ts`— Questo stack funge da stack principale e chiama le due applicazioni secondarie come stack annidati. 
+ `real-time-analytics-poc-stack.ts`— Questo stack annidato contiene l'infrastruttura e il codice dell'applicazione.
+ `real-time-analytics-web-stack.ts`— Questo stack annidato contiene solo il codice statico dell'applicazione Web.

*File importanti e relative funzionalità*
+ `bin/real-time-analytics-poc.ts`— Punto di ingresso dell'applicazione AWS CDK. Carica tutti gli stack definiti in. `lib/`
+ `lib/real-time-analytics-poc-stack.ts`— Definizione dello stack dell'applicazione AWS CDK ()`real-time-analytics-poc`.
+ `lib/real-time-analytics-web-stack.ts`— Definizione dello stack dell'applicazione AWS CDK ()`real-time-analytics-web-stack`.
+ `lib/parent-cdk-stack.ts`— Definizione dello stack dell'applicazione AWS CDK ()`parent-cdk`.
+ `package.json`— manifesto del modulo npm, che include il nome, la versione e le dipendenze dell'applicazione.
+ `package-lock.json`— Gestito da npm.
+ `cdk.json`— Toolkit per l'esecuzione dell'applicazione.
+ `tsconfig.json`— La TypeScript configurazione del progetto.
+ `.gitignore`— Elenco di file che Git dovrebbe escludere dal controllo del codice sorgente.
+ `node_modules`— Gestito da npm; include le dipendenze del progetto.

La seguente sezione di codice nello stack principale chiama le applicazioni secondarie come stack CDK AWS annidati.

```
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');
  }
}
```

**Codice per i test**

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

**Test dell'API Gateway**

Sulla console API Gateway, prova API Gateway utilizzando il `GET` metodo. 

![\[Console API Gateway con GET selezionato in OPZIONI.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/452e5b8f-6d61-401d-8484-e5a436cb6f1b.png)


 

## Allegati
<a name="attachments-0ac29a11-1362-4084-92ed-6b85205763ca"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/0ac29a11-1362-4084-92ed-6b85205763ca/attachments/attachment.zip)

# Automatizza la distribuzione di applicazioni annidate utilizzando AWS SAM
<a name="automate-deployment-of-nested-applications-using-aws-sam"></a>

*Dott. Rahul Sharad Gaikwad, Ishwar Chauthaiwale, Dmitry Gulin e Tabby Ward, Amazon Web Services*

## Riepilogo
<a name="automate-deployment-of-nested-applications-using-aws-sam-summary"></a>

Su Amazon Web Services (AWS), AWS Serverless Application Model (AWS SAM) Serverless Application Model (AWS) Serverless Application Model (AWS) Serverless Application Model (AWS SAM) è un framework open source che fornisce una sintassi abbreviata per esprimere funzioni APIs, database e mappature delle sorgenti degli eventi. Con solo poche righe per ogni risorsa, puoi definire l'applicazione che desideri e modellarla utilizzando YAML. Durante la distribuzione, SAM trasforma ed espande la sintassi SAM in sintassi AWS CloudFormation che puoi usare per creare applicazioni serverless più velocemente.

AWS SAM semplifica lo sviluppo, la distribuzione e la gestione di applicazioni serverless sulla piattaforma AWS. Fornisce un framework standardizzato, una distribuzione più rapida, funzionalità di test locali, gestione delle risorse, perfetta integrazione con gli strumenti di sviluppo e una community di supporto. Queste caratteristiche lo rendono uno strumento prezioso per creare applicazioni serverless in modo efficiente ed efficace.

Questo modello utilizza modelli AWS SAM per automatizzare la distribuzione di applicazioni annidate. Un'applicazione annidata è un'applicazione all'interno di un'altra applicazione. Le applicazioni principali chiamano le proprie applicazioni secondarie. Si tratta di componenti liberamente accoppiati di un'architettura serverless. 

Utilizzando applicazioni annidate, puoi creare rapidamente architetture serverless altamente sofisticate riutilizzando servizi o componenti creati e gestiti in modo indipendente ma composti utilizzando AWS SAM e Serverless Application Repository. Le applicazioni annidate ti aiutano a creare applicazioni più potenti, a evitare il lavoro duplicato e a garantire la coerenza e le migliori pratiche tra i tuoi team e le tue organizzazioni. Per dimostrare le applicazioni annidate, il pattern distribuisce un esempio di applicazione [AWS serverless per il carrello degli acquisti](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Prerequisiti e limitazioni
<a name="automate-deployment-of-nested-applications-using-aws-sam-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) e sottoreti esistenti
+ Un ambiente di sviluppo integrato come Visual Studio Code (per ulteriori informazioni, consulta [Tools to Build on AWS](https://aws.amazon.com/getting-started/tools-sdks/#IDE_and_IDE_Toolkits))
+ Libreria Python wheel installata utilizzando pip install wheel, se non è già installata

**Limitazioni**
+ Il numero massimo di applicazioni che possono essere annidate in un'applicazione serverless è 200.
+ Il numero massimo di parametri per un'applicazione annidata può essere 60.

**Versioni del prodotto**
+ Questa soluzione è basata sull'interfaccia a riga di comando AWS SAM (AWS SAM CLI) versione 1.21.1, ma questa architettura dovrebbe funzionare con le versioni successive dell'interfaccia a riga di comando AWS SAM.

## Architecture
<a name="automate-deployment-of-nested-applications-using-aws-sam-architecture"></a>

**Stack tecnologico Target**
+ Gateway Amazon API
+ AWS SAM
+ Amazon Cognito
+ Amazon DynamoDB
+ AWS Lambda
+ Coda Amazon Simple Queue Service (Amazon SQS)

**Architettura di destinazione**

Il diagramma seguente mostra come vengono effettuate le richieste degli utenti ai servizi di acquisto tramite chiamata APIs. La richiesta dell'utente, incluse tutte le informazioni necessarie, viene inviata ad Amazon API Gateway e all'autorizzatore Amazon Cognito, che esegue i meccanismi di autenticazione e autorizzazione per. APIs

Quando un elemento viene aggiunto, eliminato o aggiornato in DynamoDB, un evento viene inserito in DynamoDB Streams, che a sua volta avvia una funzione Lambda. Per evitare l'eliminazione immediata dei vecchi elementi come parte di un flusso di lavoro sincrono, i messaggi vengono inseriti in una coda SQS, che avvia una funzione di lavoro per eliminare i messaggi.

![\[Operazioni POST e PUT da API Gateway alle funzioni Lambda a DynamoDB e Product Service.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5b454bae-5fd4-405d-a37d-6bafc3fcf889.png)


In questa configurazione della soluzione, AWS SAM CLI funge da interfaccia per gli stack CloudFormation AWS. I modelli AWS SAM distribuiscono automaticamente applicazioni annidate. Il modello SAM principale chiama i modelli secondari e lo stack principale distribuisce gli CloudFormation stack secondari. Ogni stack secondario crea le risorse AWS definite nei modelli AWS SAM CloudFormation .

![\[Processo in quattro fasi che utilizza AWS SAM CLI con uno stack principale e tre CloudFormation stack secondari.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5828026e-72ad-4a3f-a5f2-bffac0f13e42.png)


1. Crea e distribuisci gli stack.

1. Lo CloudFormation stack di autenticazione contiene Amazon Cognito.

1. Lo CloudFormation stack di prodotti contiene una funzione Lambda e Amazon API Gateway

1. Lo CloudFormation stack Shopping contiene una funzione Lambda, Amazon API Gateway, la coda SQS e il database Amazon DynamoDB.

## Tools (Strumenti)
<a name="automate-deployment-of-nested-applications-using-aws-sam-tools"></a>

**Strumenti**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.
+ [AWS Serverless Application Model (AWS SAM) Serverless Application Model (AWS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) SAM) è un framework open source che ti aiuta a creare applicazioni serverless nel cloud AWS.
+ [Amazon Simple Queue Service (Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.

**Codice**

Il codice per questo modello è disponibile nel repository GitHub [AWS SAM Nested Stack Sample](https://github.com/aws-samples/aws-sam-nested-stack-sample).

## Epiche
<a name="automate-deployment-of-nested-applications-using-aws-sam-epics"></a>

### Installa AWS SAM CLI
<a name="install-aws-sam-cli"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS SAM CLI. | Per installare AWS SAM CLI, consulta le istruzioni nella documentazione di [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html). | DevOps ingegnere | 
| Configura le credenziali AWS. | Per impostare le credenziali AWS in modo che la CLI di AWS SAM possa effettuare chiamate ai servizi AWS per tuo conto, esegui `aws configure` il comando e segui le istruzioni.<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>[Per ulteriori informazioni sulla configurazione delle credenziali, consulta Autenticazione e credenziali di accesso.](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html)  | DevOps ingegnere | 

### Inizializza il progetto AWS SAM
<a name="initialize-the-aws-sam-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il repository di codice AWS SAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps ingegnere | 
| Implementa modelli per inizializzare il progetto. | Per inizializzare il progetto, esegui il comando. `SAM init` Quando viene richiesto di scegliere una fonte per il modello, scegliete. `Custom Template Location` | DevOps ingegnere | 

### Compila e crea il codice del modello SAM
<a name="compile-and-build-the-sam-template-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esamina i modelli di applicazione AWS SAM. | Esamina i modelli per le applicazioni annidate. Questo esempio utilizza i seguenti modelli di applicazioni annidate:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps ingegnere | 
| Rivedi il modello principale. | Esamina il modello che richiamerà i modelli di applicazione annidati. In questo esempio, il modello principale è. `template.yml` Tutte le applicazioni separate sono annidate nell'unico modello `template.yml` principale. | DevOps ingegnere | 
| Compila e crea il codice modello AWS SAM.  | Utilizzando l'AWS SAM CLI, esegui il comando seguente.<pre>sam build</pre> | DevOps ingegnere | 

### Implementa il modello AWS SAM
<a name="deploy-the-aws-sam-template"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa le applicazioni. | Per avviare il codice modello SAM che crea gli CloudFormation stack di applicazioni annidate e distribuisce il codice nell'ambiente AWS, esegui il comando seguente.<pre>sam deploy --guided --stack-name shopping-cart-nested-stack --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND</pre>Il comando richiederà alcune domande. Rispondi a tutte le domande con`y`. | DevOps ingegnere | 

### Verifica della distribuzione
<a name="verify-the-deployment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica le pile. | Per esaminare gli CloudFormation stack AWS e le risorse AWS definiti nei modelli AWS SAM, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps ingegnere | 

## Risorse correlate
<a name="automate-deployment-of-nested-applications-using-aws-sam-resources"></a>

**Riferimenti**
+ [Modello di applicazioni serverless AWS (AWS SAM)](https://aws.amazon.com/serverless/sam/#:~:text=The%20AWS%20Serverless%20Application%20Model,and%20model%20it%20using%20YAML.)
+ [AWS SAM su GitHub](https://github.com/aws/serverless-application-model)
+ [Microservizio Serverless Shopping Cart](https://github.com/aws-samples/aws-serverless-shopping-cart) (applicazione di esempio AWS)

**Tutorial e video**
+ [Crea un'app serverless](https://youtu.be/Hv3YrP8G4ag)
+ [AWS Online Tech Talks: creazione e implementazione di applicazioni serverless con AWS SAM](https://youtu.be/1NU7vyJw9LU)

## Informazioni aggiuntive
<a name="automate-deployment-of-nested-applications-using-aws-sam-additional"></a>

Dopo che tutto il codice è a posto, l'esempio ha la seguente struttura di directory:
+ [sam\$1stacks](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html) — Questa cartella contiene il layer. `shared.py` Un layer è un archivio di file che contiene librerie, un runtime personalizzato o altre dipendenze. Con i livelli, puoi utilizzare le librerie nella tua funzione senza doverle includere in un pacchetto di distribuzione.
+ *product-mock-service*— Questa cartella contiene tutte le funzioni e i file Lambda relativi al prodotto.
+ *shopping-cart-service*— Questa cartella contiene tutte le funzioni e i file Lambda relativi agli acquisti.

# Implementa l'isolamento dei tenant SaaS per Amazon S3 utilizzando un distributore automatico di token 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*

## Riepilogo
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-summary"></a>

Le applicazioni SaaS multitenant devono implementare sistemi per garantire il mantenimento dell'isolamento dei tenant. Quando memorizzi i dati dei tenant sulla stessa AWS risorsa, ad esempio quando più tenant archiviano i dati nello stesso bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3), devi assicurarti che l'accesso tra tenant non possa avvenire. I distributori automatici di token () sono un modo per garantire l'isolamento dei dati dei tenant. TVMs Queste macchine forniscono un meccanismo per ottenere token e al contempo astrarre la complessità del modo in cui questi token vengono generati. Gli sviluppatori possono utilizzare una TVM senza avere una conoscenza dettagliata di come produce i token.

Questo modello implementa una TVM utilizzando. AWS Lambda Il TVM genera un token costituito da credenziali temporanee del servizio token di sicurezza (STS) che limitano l'accesso ai dati di un singolo tenant SaaS in un bucket S3.

TVMs, e il codice fornito con questo modello, vengono in genere utilizzati con attestazioni derivate da JSON Web Tokens (JWTs) per associare le richieste di AWS risorse a una policy tenant-scoped (IAM). AWS Identity and Access Management È possibile utilizzare il codice in questo modello come base per implementare un'applicazione SaaS che genera credenziali STS temporanee e con ambito basate sulle affermazioni fornite in un token JWT.

## Prerequisiti e limitazioni
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-prereqs"></a>

**Prerequisiti**
+ Un attivo. Account AWS
+ AWS Command Line Interface (AWS CLI) [versione 1.19.0 o successiva](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), installata e configurata su macOS, Linux o Windows. In alternativa, è possibile utilizzare la AWS CLI [versione 2.1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) o successiva.

**Limitazioni**
+ Questo codice viene eseguito in Java e attualmente non supporta altri linguaggi di programmazione. 
+ L'applicazione di esempio non include il supporto AWS interregionale o di disaster recovery (DR). 
+ Questo modello dimostra come una Lambda TVM per un'applicazione SaaS possa fornire un accesso mirato ai tenant. Questo modello non è destinato all'uso in ambienti di produzione senza ulteriori test di sicurezza come parte dell'applicazione o del caso d'uso specifici.

## Architecture
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-architecture"></a>

**Stack tecnologico Target**
+ AWS Lambda
+ Simple Storage Service (Amazon S3)
+ IAM
+ AWS Security Token Service (AWS STS)

**Architettura di destinazione**

![\[Generazione di un token per ottenere credenziali STS temporanee per accedere ai dati in un bucket S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/14d0508a-703b-4229-85e6-c5094de7fe01.png)


 

## Tools (Strumenti)
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-tools"></a>

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [AWS Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) consente di richiedere credenziali temporanee con privilegi limitati per gli utenti.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Codice**

Il codice sorgente di questo pattern è disponibile come allegato e include i seguenti file:
+ `s3UploadSample.jar`fornisce il codice sorgente per una funzione Lambda che carica un documento JSON in un bucket S3.
+ `tvm-layer.zip`fornisce una libreria Java riutilizzabile che fornisce un token (credenziali temporanee STS) per la funzione Lambda per accedere al bucket S3 e caricare il documento JSON.
+ `token-vending-machine-sample-app.zip`fornisce il codice sorgente usato per creare questi artefatti e le istruzioni di compilazione.

Per utilizzare questi file, seguite le istruzioni riportate nella sezione successiva.

## Epiche
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-epics"></a>

### Determina i valori delle variabili
<a name="determine-variable-values"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Determina i valori delle variabili. | L'implementazione di questo modello include diversi nomi di variabili che devono essere usati in modo coerente. Determina i valori da utilizzare per ogni variabile e fornisci quel valore quando richiesto nei passaggi successivi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.html) | Amministratore cloud | 

### Creare un bucket S3
<a name="create-an-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3 per l'applicazione di esempio. | Usa il seguente AWS CLI comando per creare un bucket S3. Fornisci il `<sample-app-bucket-name>`**** valore nel frammento di codice:<pre>aws s3api create-bucket --bucket <sample-app-bucket-name></pre>L'applicazione di esempio Lambda carica i file JSON in questo bucket. | Amministratore cloud | 

### Crea il ruolo e la policy di IAM TVM
<a name="create-the-iam-tvm-role-and-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un ruolo TVM. | Utilizza uno dei seguenti AWS CLI comandi per creare un ruolo IAM. Fornisci il `<sample-tvm-role-name>`**** valore nel comando.Per le shell macOS o 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>Per la riga di comando di 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>L'applicazione di esempio Lambda assume questo ruolo quando viene richiamata l'applicazione. La capacità di assumere il ruolo dell'applicazione con una policy mirata offre al codice autorizzazioni più ampie per accedere al bucket S3. | Amministratore cloud | 
| Crea una politica di ruolo TVM in linea. | Utilizzate uno dei seguenti AWS CLI comandi per creare una policy IAM. Fornisci i `<sample-app-role-name>` valori `<sample-tvm-role-name>` **`<AWS Account ID>`**, e nel comando.Per le shell macOS o 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>Per la riga di comando di 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>Questa policy è associata al ruolo TVM. Fornisce al codice la capacità di assumere il ruolo dell'applicazione, che dispone di autorizzazioni più ampie per accedere al bucket S3. | Amministratore cloud | 
| Allega la policy Lambda gestita. | Usa il AWS CLI comando seguente per allegare la policy `AWSLambdaBasicExecutionRole` IAM. Fornisci il `<sample-tvm-role-name>` valore nel 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>Per la riga di comando di 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>Questa policy gestita è allegata al ruolo TVM per consentire a Lambda di inviare log ad Amazon. CloudWatch | Amministratore cloud | 

### Crea il ruolo e la policy dell'applicazione IAM
<a name="create-the-iam-application-role-and-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il ruolo dell'applicazione. | Utilizza uno dei seguenti AWS CLI comandi per creare un ruolo IAM. Fornisci i `<sample-tvm-role-name>` valori `<sample-app-role-name>``<AWS Account ID>`, e nel comando.Per le shell macOS o 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>Per la riga di comando di 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>L'applicazione di esempio Lambda assume questo ruolo con una policy mirata per ottenere l'accesso basato su tenant a un bucket S3. | Amministratore del cloud | 
| Crea una politica in linea per i ruoli delle applicazioni. | Utilizza uno dei seguenti AWS CLI comandi per creare una policy IAM. Fornisci i `<sample-app-bucket-name>`**** valori `<sample-app-role-name>` and nel comando.Per le shell macOS o 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>Per la riga di comando di 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>Questa politica è allegata al ruolo dell'applicazione. Fornisce un ampio accesso agli oggetti nel bucket S3. Quando l'applicazione di esempio assume il ruolo, queste autorizzazioni sono limitate a un tenant specifico con la policy generata dinamicamente da TVM. | Amministratore cloud | 

### Crea l'applicazione di esempio Lambda con TVM
<a name="create-the-lam-sample-application-with-tvm"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica i file sorgente compilati. | Scaricate i `tvm-layer.zip`**** file `s3UploadSample.jar` and, che sono inclusi come allegati. Il codice sorgente utilizzato per creare questi artefatti e le istruzioni di compilazione sono forniti in. `token-vending-machine-sample-app.zip` | Amministratore cloud | 
| Crea il livello Lambda. | Utilizzate il seguente AWS CLI comando per creare un layer Lambda, che renda la TVM accessibile a Lambda. Se non state eseguendo questo comando dalla posizione in cui lo avete scaricato` tvm-layer.zip`, fornite il percorso corretto del parametro`tvm-layer.zip`. `--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>Per la riga di comando di 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>Questo comando crea un layer Lambda che contiene la libreria TVM riutilizzabile. | Amministratore cloud, sviluppatore di app | 
| Creazione della funzione Lambda | Usa il AWS CLI comando seguente per creare una funzione Lambda. Fornisci i `<sample-app-role-name>` valori `<sample-app-function-name>` `<AWS Account ID>``<AWS Region>`, `<sample-tvm-role-name>``<sample-app-bucket-name>`,, e nel comando. Se non esegui questo comando dalla posizione in cui lo hai scaricato`s3UploadSample.jar`, fornisci il percorso corretto `s3UploadSample.jar` nel `--zip-file` parametro. <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>Per la riga di comando di 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>Questo comando crea una funzione Lambda con il codice dell'applicazione di esempio e il livello TVM collegato. Imposta inoltre due variabili di ambiente: `S3_BUCKET` e. `ROLE` L'applicazione di esempio utilizza queste variabili per determinare il ruolo da assumere e il bucket S3 in cui caricare i documenti JSON. | Amministratore cloud, sviluppatore di app | 

### Prova l'applicazione di esempio e TVM
<a name="test-the-sample-application-and-tvm"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Richiama l'applicazione di esempio Lambda. | Utilizza uno dei seguenti AWS CLI comandi per avviare l'applicazione di esempio Lambda con il payload previsto. Fornisci i `<sample-tenant-name>` valori `<sample-app-function-name>` and nel comando.Per le shell macOS e 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>Per la riga di comando di 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>Questo comando richiama la funzione Lambda e restituisce il risultato in un `response.json` documento. In molti sistemi basati su Unix, è possibile passare `response.json` a per `/dev/stdout` inviare i risultati direttamente alla shell senza creare un altro file. La modifica del `<sample-tenant-name>` valore nelle chiamate successive di questa funzione Lambda modifica la posizione del documento JSON e le autorizzazioni fornite dal token. | Amministratore cloud, sviluppatore di app | 
| Visualizza il bucket S3 per vedere gli oggetti creati. | Vai al bucket S3 (`<sample-app-bucket-name>`) che hai creato in precedenza. Questo bucket contiene un prefisso di oggetto S3 con il valore di. `<sample-tenant-name>` Sotto quel prefisso, troverai un documento JSON denominato con un UUID. Richiamando più volte l'applicazione di esempio vengono aggiunti altri documenti JSON. | Amministratore cloud | 
| Visualizza i log dell'applicazione di esempio in CloudWatch Logs. | Visualizza i log associati alla funzione Lambda `<sample-app-function-name>` denominata CloudWatch in Logs. Per istruzioni, consulta [Invio dei log delle funzioni Lambda ai CloudWatch registri nella](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html) documentazione di Lambda. È possibile visualizzare la politica basata sull'ambito dei tenant generata da TVM in questi log. Questa politica con ambito tenant fornisce le autorizzazioni per l'applicazione di esempio ad Amazon S3,, e **PutObject**GetObject**DeleteObject**ListBucket******** APIs, ma solo per il prefisso dell'oggetto a cui è associato. `<sample-tenant-name>` Nelle chiamate successive dell'applicazione di esempio, in caso di modifiche`<sample-tenant-name>`, TVM aggiorna la policy di ambito in modo che corrisponda al tenant fornito nel payload di chiamata. Questa policy generata dinamicamente mostra come è possibile mantenere l'accesso con ambito tenant con una TVM nelle applicazioni SaaS. La funzionalità TVM è fornita in un livello Lambda in modo che possa essere collegata ad altre funzioni Lambda utilizzate da un'applicazione senza dover replicare il codice.[Per un'illustrazione della policy generata dinamicamente, consultate la sezione Informazioni aggiuntive.](#implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional) | Amministratore cloud | 

## Risorse correlate
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-resources"></a>
+ [Isolamento dei tenant con policy IAM generate dinamicamente](https://aws.amazon.com/blogs/apn/isolating-saas-tenants-with-dynamically-generated-iam-policies/) (post sul blog)
+ [Applicazione di politiche di isolamento generate dinamicamente in ambienti SaaS](https://aws.amazon.com/blogs/apn/applying-dynamically-generated-isolation-policies-in-saas-environments/) (post sul blog)
+ [SaaS attivo AWS](https://aws.amazon.com/saas/)

## Informazioni aggiuntive
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional"></a>

Il registro seguente mostra la politica generata dinamicamente dal codice TVM secondo questo schema. In questa schermata, il `<sample-app-bucket-name>` è `DOC-EXAMPLE-BUCKET` e il è. `<sample-tenant-name>` `test-tenant-1` Le credenziali STS restituite da questa policy con ambito non sono in grado di eseguire alcuna azione sugli oggetti nel bucket S3 ad eccezione degli oggetti associati al prefisso object key. `test-tenant-1`

![\[Log che mostra una policy generata dinamicamente prodotta dal codice TVM.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/d4776ebe-fb8f-41ac-b8c5-b4f97a821c8c.png)


## Allegati
<a name="attachments-97a34c8e-d04e-40b6-acbf-1baa176d22a9"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/97a34c8e-d04e-40b6-acbf-1baa176d22a9/attachments/attachment.zip)

# Implementa il modello di saga serverless utilizzando 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*

## Riepilogo
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-summary"></a>

In un'architettura di microservizi, l'obiettivo principale è creare componenti disaccoppiati e indipendenti per promuovere agilità, flessibilità e tempi di commercializzazione più rapidi per le applicazioni. Come risultato del disaccoppiamento, ogni componente dei microservizi ha il proprio livello di persistenza dei dati. In un'architettura distribuita, le transazioni commerciali possono estendersi su più microservizi. Poiché questi microservizi non possono utilizzare una singola transazione ACID (atomicità, coerenza, isolamento, durabilità), è possibile che si ottengano transazioni parziali. In questo caso, è necessaria una certa logica di controllo per annullare le transazioni che sono già state elaborate. Il modello a saga distribuito viene in genere utilizzato per questo scopo. 

Il modello a saga è un modello di gestione degli errori che aiuta a stabilire la coerenza nelle applicazioni distribuite e coordina le transazioni tra più microservizi per mantenere la coerenza dei dati. Quando si utilizza il modello saga, ogni servizio che esegue una transazione pubblica un evento che attiva i servizi successivi per eseguire la transazione successiva nella catena. Questo continua fino al completamento dell'ultima transazione della catena. Se una transazione commerciale fallisce, saga orchestra una serie di transazioni di compensazione che annullano le modifiche apportate dalle transazioni precedenti.

Questo modello dimostra come automatizzare la configurazione e la distribuzione di un'applicazione di esempio (che gestisce le prenotazioni di viaggi) con tecnologie serverless come AWS Step Functions, AWS Lambda e Amazon DynamoDB. L'applicazione di esempio utilizza anche Amazon API Gateway e Amazon Simple Notification Service (Amazon SNS) per implementare un coordinatore dell'esecuzione di saga. Il pattern può essere distribuito con un framework Infrastructure as code (IaC) come AWS Cloud Development Kit (AWS CDK), AWS Serverless Application Model (AWS SAM) o Terraform.

## Prerequisiti e limitazioni
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Autorizzazioni per creare uno CloudFormation stack AWS. Per ulteriori informazioni, consulta [Controllare l'accesso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) nella CloudFormation documentazione.
+ Framework IaC di tua scelta (AWS CDK, AWS SAM o Terraform) configurato con il tuo account AWS in modo da poter utilizzare la CLI del framework per distribuire l'applicazione.
+ NodeJS, utilizzato per creare l'applicazione ed eseguirla localmente. 
+ Un editor di codice a tua scelta (come Visual Studio Code, Sublime o Atom).

**Versioni del prodotto**
+ [NodeJS versione 14](https://nodejs.org/en/download/)
+ [CDK AWS versione 2.37.1](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [AWS SAM versione 1.71.0](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)
+ [Terraform versione 1.3.7](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)

**Limitazioni**

L'event sourcing è un modo naturale per implementare il modello di orchestrazione della saga in un'architettura di microservizi in cui tutti i componenti sono liberamente accoppiati e non hanno una conoscenza diretta l'uno dell'altro. Se la transazione prevede un numero limitato di passaggi (da tre a cinque), il modello a saga potrebbe essere la soluzione ideale. Tuttavia, la complessità aumenta con il numero di microservizi e il numero di passaggi. 

Il test e il debug possono diventare difficili quando si utilizza questo design, poiché è necessario che tutti i servizi siano in esecuzione per simulare il modello di transazione.

## Architecture
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-architecture"></a>

**Architettura di Target**

L'architettura proposta utilizza AWS Step Functions per creare uno schema a saga per prenotare voli, prenotare auto a noleggio ed elaborare i pagamenti per le vacanze.

Il seguente diagramma del flusso di lavoro illustra il flusso tipico del sistema di prenotazione viaggi. Il flusso di lavoro consiste nella prenotazione di viaggi aerei (» ReserveFlight «), nella prenotazione di un'auto (» ReserveCarRental «), nell'elaborazione dei pagamenti (» ProcessPayment «), nella conferma delle prenotazioni dei voli (» ConfirmFlight «) e nella conferma del noleggio auto (» ConfirmCarRental «) seguite da una notifica di avvenuto completamento di questi passaggi. Tuttavia, se il sistema riscontra errori nell'esecuzione di una di queste transazioni, inizia a fallire all'indietro. Ad esempio, un errore nell'elaborazione dei pagamenti (» ProcessPayment «) attiva un rimborso (» RefundPayment «), che quindi attiva la cancellazione dell'auto a noleggio e del volo (» CancelRentalReservation "e" CancelFlightReservation «), che termina l'intera transazione con un messaggio di errore.

Questo modello implementa funzioni Lambda separate per ogni attività evidenziata nel diagramma, oltre a tre tabelle DynamoDB per voli, autonoleggi e pagamenti. Ogni funzione Lambda crea, aggiorna o elimina le righe nelle rispettive tabelle DynamoDB, a seconda che una transazione sia confermata o ripristinata. Il modello utilizza Amazon SNS per inviare messaggi di testo (SMS) agli abbonati, notificandoli delle transazioni non riuscite o riuscite. 

![\[Flusso di lavoro per un sistema di prenotazione viaggi basato sullo schema della saga.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/daad3e8e-6e6b-41c2-95c1-ca79d53ead64.png)


 

**Automazione e scalabilità**

È possibile creare la configurazione per questa architettura utilizzando uno dei framework IaC. Usa uno dei seguenti link per il tuo IAc preferito.
+ [Implementa con AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implementa con AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implementa con Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Tools (Strumenti)
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-tools"></a>

**Servizi AWS**
+ [AWS Step Functions](https://aws.amazon.com/step-functions/) è un servizio di orchestrazione serverless che consente di combinare funzioni AWS Lambda e altri servizi AWS per creare applicazioni aziendali critiche. Tramite la console grafica Step Functions, puoi vedere il flusso di lavoro dell'applicazione come una serie di passaggi guidati dagli eventi.
+ [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) è un servizio di database NoSQL completamente gestito che offre prestazioni veloci e prevedibili con una scalabilità perfetta. Puoi utilizzare DynamoDB per creare una tabella di database in grado di archiviare e recuperare qualunque quantità di dati e soddisfare qualsiasi livello di traffico di richiesto.
+ [AWS Lambda](https://aws.amazon.com/lambda/) è un servizio di elaborazione che consente di eseguire codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo.
+ [Amazon API Gateway](https://aws.amazon.com/api-gateway/) è un servizio AWS per la creazione, la pubblicazione, la manutenzione, il monitoraggio e la protezione di REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [Amazon Simple Notification Service (Amazon SNS](https://aws.amazon.com/sns/)) è un servizio gestito che fornisce il recapito dei messaggi dagli editori agli abbonati.
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/) è un framework di sviluppo software per definire le risorse delle applicazioni cloud utilizzando linguaggi di programmazione familiari come Python TypeScript JavaScript, Java e C\$1/.Net.
+ [AWS Serverless Application Model (AWS SAM) Serverless Application Model (AWS) Serverless Application Model (AWS](https://aws.amazon.com/serverless/sam/) SAM) è un framework open source per la creazione di applicazioni serverless. Fornisce una sintassi abbreviata per esprimere funzioni, database e mappature delle sorgenti degli APIs eventi. 

**Codice**

Il codice per un'applicazione di esempio che dimostra il modello saga, incluso il modello IaC (AWS CDK, AWS SAM o Terraform), le funzioni Lambda e le tabelle DynamoDB, è disponibile nei seguenti link. Segui le istruzioni del primo capitolo epico per installarli.
+ [Implementa con AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implementa con AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implementa con Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

## Epiche
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-epics"></a>

### Installa pacchetti, compila e crea
<a name="install-packages-compile-and-build"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa i pacchetti NPM. | Crea una nuova directory, accedi a quella directory in un terminale e clona il GitHub repository di tua scelta dalla sezione *Codice* precedente di questo schema.Nella cartella principale che contiene il `package.json` file, esegui il seguente comando per scaricare e installare tutti i pacchetti Node Package Manager (NPM):<pre>npm install</pre> | Sviluppatore, architetto cloud | 
| Compila script. | Nella cartella principale, esegui il seguente comando per indicare al TypeScript transpiler di creare tutti i file necessari: JavaScript <pre>npm run build</pre> | Sviluppatore, architetto cloud | 
| Controlla le modifiche e ricompila. | Nella cartella principale, esegui il seguente comando in una finestra di terminale separata per controllare le modifiche al codice e compila il codice quando rileva una modifica:<pre>npm run watch</pre> | Sviluppatore, architetto cloud | 
| Esegui test unitari (solo AWS CDK).  | Se utilizzi il CDK AWS, nella cartella principale, esegui il seguente comando per eseguire gli unit test di Jest:<pre>npm run test</pre> | Sviluppatore, architetto del cloud | 

### Distribuisci risorse sull'account AWS di destinazione
<a name="deploy-resources-to-the-target-aws-account"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Distribuisci lo stack dimostrativo su AWS. | L'applicazione è indipendente dalla regione AWS. Se utilizzi un profilo, devi dichiarare la regione in modo esplicito nel [profilo AWS Command Line Interface (AWS CLI) o tramite le variabili di ambiente [AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).Nella cartella principale, esegui il comando seguente per creare un assembly di distribuzione e distribuirlo nell'account e nella regione AWS predefiniti.CDK AWS:<pre>cdk bootstrap<br />cdk deploy</pre>AWS È:<pre>sam build<br />sam deploy --guided</pre>Terraforma:<pre>terraform init<br />terraform apply</pre>Il completamento di questo passaggio potrebbe richiedere alcuni minuti. Questo comando utilizza le credenziali predefinite configurate per l'AWS CLI.Nota l'URL dell'API Gateway che viene visualizzato sulla console al termine della distribuzione. Avrai bisogno di queste informazioni per testare il flusso di esecuzione della saga. | Sviluppatore, architetto cloud | 
| Confronta lo stack distribuito con lo stato attuale. | Nella cartella principale, esegui il comando seguente per confrontare lo stack distribuito con lo stato corrente dopo aver apportato modifiche al codice sorgente:CDK AWS:<pre>cdk diff</pre>AWS È:<pre>sam deploy</pre>Terraforma:<pre>terraform plan</pre> | Sviluppatore, architetto cloud | 

### Testa il flusso di esecuzione
<a name="test-the-execution-flow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova il flusso di esecuzione della saga. | Passa all'URL dell'API Gateway che hai annotato nel passaggio precedente, quando hai distribuito lo stack. Questo URL attiva l'avvio della macchina a stati. Per ulteriori informazioni su come manipolare il flusso della macchina a stati passando diversi parametri URL, consulta la sezione [Informazioni aggiuntive](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional).Per visualizzare i risultati, accedi alla Console di gestione AWS e vai alla console Step Functions. Qui puoi vedere ogni fase della saga state machine. Puoi anche visualizzare la tabella DynamoDB per vedere i record inseriti, aggiornati o eliminati. Se aggiorni spesso la schermata, puoi vedere lo stato della transazione cambiare da a. `pending` `confirmed` Puoi iscriverti all'argomento SNS aggiornando il codice nel `stateMachine.ts` file con il tuo numero di cellulare per ricevere messaggi SMS in caso di prenotazioni riuscite o non riuscite. Per ulteriori informazioni, consulta *Amazon SNS* nella sezione [Informazioni aggiuntive](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional). | Sviluppatore, architetto cloud | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare le risorse. | Per ripulire le risorse distribuite per questa applicazione, è possibile utilizzare uno dei seguenti comandi.CDK AWS:<pre>cdk destroy</pre>AWS È:<pre>sam delete</pre>Terraforma:<pre>terraform destroy</pre> | Sviluppatore di app, architetto cloud | 

## Risorse correlate
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-resources"></a>

**Documenti tecnici**
+ [Implementazione di microservizi su AWS](https://docs.aws.amazon.com/pdfs/whitepapers/latest/microservices-on-aws/microservices-on-aws.pdf)
+ [Lente applicativa serverless](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)

**Documentazione del servizio AWS**
+ [Guida introduttiva alla CDK AWS](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
+ [Guida introduttiva ad 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/)
+ [Gateway Amazon API](https://docs.aws.amazon.com/apigateway/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

**Tutorial**
+ [Workshop pratici per l'informatica serverless](https://aws.amazon.com/serverless-workshops/)

## Informazioni aggiuntive
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional"></a>

**Codice**

A scopo di test, questo modello implementa API Gateway e una funzione Lambda di test che attiva la macchina a stati Step Functions. Con Step Functions, puoi controllare la funzionalità del sistema di prenotazione viaggi passando un `run_type` parametro per simulare gli errori in "ReserveFlightReserveCarRental,» "ProcessPayment,»,» e "ConfirmFlightConfirmCarRental.»

La funzione `saga` Lambda (`sagaLambda.ts`) riceve l'input dai parametri di query nell'URL API Gateway, crea il seguente oggetto JSON e lo passa a Step Functions per l'esecuzione:

```
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"
};
```

È possibile sperimentare diversi flussi della macchina a stati Step Functions passando i seguenti parametri URL:
+ **Esecuzione riuscita** ─ https://\$1api gateway url\$1
+ **Reserve Flight Fail** ─ https://\$1api gateway url\$1? **RunType= failFlightsReservation**
+ **Conferma il fallimento del volo** ─ https://\$1api gateway url\$1? **RunType= failFlightsConfirmation**
+ **Reserve Car Rental Failure** ─ https://\$1api gateway url\$1? **RunType= Prenotazione failCarRental**
+ **Conferma il fallimento del noleggio auto** ─ https://\$1api gateway url\$1? **RunType= failCarRental Conferma**
+ **Processo di pagamento non riuscito** ─ https://\$1api gateway url\$1? **RunType=FailPayment**
+ **Passa un Trip ID** ─ https://\$1api gateway url\$1? **tripId=** \$1per impostazione predefinita, l'ID del viaggio sarà l'ID della richiesta AWS\$1

**modelli IaC**

Gli archivi collegati includono modelli IaC che è possibile utilizzare per creare l'intera applicazione di prenotazione viaggi di esempio.
+ [Implementa con AWS CDK](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Implementa con AWS SAM](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Implementa con Terraform](https://serverlessland.com/workflows/saga-pattern-tf)

**Tabelle DynamoDB**

Ecco i modelli di dati per le tabelle dei voli, degli autonoleggi e dei pagamenti.

```
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"}
      }
    };
```

**Funzioni Lambda**

Verranno create le seguenti funzioni per supportare il flusso e l'esecuzione della macchina a stati in Step Functions:
+ **Reserve Flights**: inserisce un record nella tabella DynamoDB Flights con `transaction_status` un `pending` di, per prenotare un volo.
+ **Confirm Flight**: aggiorna il record nella tabella DynamoDB Flights, da `transaction_status` impostare su, per confermare `confirmed` il volo.
+ **Annulla prenotazione voli**: elimina il record dalla tabella DynamoDB Flights, per annullare il volo in sospeso.
+ **Reserve Car Rentals**: inserisce un record nella tabella CarRentals DynamoDB con `transaction_status` un `pending` di, per prenotare un noleggio auto.
+ **Conferma noleggio auto**: aggiorna il record nella tabella CarRentals DynamoDB, `transaction_status` impostandolo su, per confermare `confirmed` il noleggio auto.
+ **Annulla prenotazione noleggio auto:** elimina il record dalla tabella CarRentals DynamoDB, per annullare il noleggio auto in sospeso.
+ **Elabora pagamento**: inserisce un record nella tabella Pagamenti di DynamoDB per il pagamento.
+ **Annulla pagamento**: elimina il record del pagamento dalla tabella DynamoDB Payments.

**Amazon SNS**

L'applicazione di esempio crea il seguente argomento e sottoscrizione per l'invio di messaggi SMS e la notifica al cliente in caso di prenotazioni riuscite o non riuscite. Se desideri ricevere messaggi di testo durante il test dell'applicazione di esempio, aggiorna l'abbonamento SMS con il tuo numero di telefono valido nel file di definizione della macchina a stati.

Frammento di CDK AWS (aggiungi il numero di telefono nella seconda riga del codice seguente):

```
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'),
});
```

Snippet AWS SAM (sostituisci le `+1111111111` stringhe con il tuo numero di telefono valido):

```
  StateMachineTopic11111111111:
    Type: 'AWS::SNS::Subscription'
    Properties:
      Protocol: sms
      TopicArn:
        Ref: StateMachineTopic
      Endpoint: '+11111111111'
    Metadata:
      'aws:sam:path': SamServerlessSagaStack/StateMachine/Topic/+11111111111/Resource
```

Snippet Terraform (sostituisci la `+111111111` stringa con il tuo numero di telefono valido):

```
resource "aws_sns_topic_subscription" "sms-target" {
  topic_arn = aws_sns_topic.topic.arn
  protocol  = "sms"
  endpoint  = "+11111111111"
}
```

**Prenotazioni riuscite**

Il seguente flusso illustra una prenotazione andata a buon fine con "ReserveFlight,»ReserveCarRental,» e "ProcessPayment" seguiti da "ConfirmFlight" e "»ConfirmCarRental. Il cliente viene informato dell'avvenuta prenotazione tramite messaggi SMS che vengono inviati all'abbonato dell'argomento SNS.

![\[Esempio di prenotazione riuscita implementata da Step Functions utilizzando il modello saga.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/f58c894e-7721-4bc7-8f7d-29f23faa5dc1.png)


**Prenotazioni non riuscite**

Questo flusso è un esempio di fallimento dello schema della saga. Se, dopo aver prenotato voli e auto a noleggio, "ProcessPayment" fallisce, i passaggi vengono annullati in ordine inverso.  Le prenotazioni vengono rilasciate e il cliente viene informato dell'errore tramite messaggi SMS inviati all'abbonato dell'argomento SNS.

![\[Esempio di prenotazione fallita implementata da Step Functions utilizzando il modello saga.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/7c64d326-be27-42c3-b03f-d677efedb9a7.png)


# Gestisci le applicazioni container locali configurando Amazon ECS Anywhere con AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dott. Rahul Sharad Gaikwad, Amazon Web Services*

## Riepilogo
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS](https://aws.amazon.com/ecs/anywhere/) Anywhere è un'estensione di Amazon Elastic Container Service (Amazon ECS). Puoi usare ECS Anywhere per distribuire attività native di Amazon ECS in un ambiente locale o gestito dal cliente. Questa funzionalità aiuta a ridurre i costi e mitigare l'orchestrazione e le operazioni complesse dei container locali. Puoi utilizzare ECS Anywhere per distribuire ed eseguire applicazioni container in ambienti sia locali che cloud. Elimina la necessità per il team di apprendere più domini e set di competenze o di gestire software complessi da solo.

Questo modello illustra i passaggi per configurare ECS Anywhere utilizzando gli stack [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).

## Prerequisiti e limitazioni
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ AWS Command Line Interface (AWS CLI), installata e configurata. (Vedi [Installazione, aggiornamento e disinstallazione dell'interfaccia a riga di comando di AWS nella documentazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dell'interfaccia a riga di comando di AWS.) 
+ AWS CDK Toolkit, installato e configurato. (Consulta [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) nella documentazione di AWS CDK e segui le istruzioni per installare la versione 2 a livello globale).
+ Node package manager (npm), installato e configurato per AWS CDK in. TypeScript (Vedi [Download e installazione di Node.js e npm nella documentazione di npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).)

**Limitazioni**
+ Per limitazioni e considerazioni, consulta [Istanze esterne (Amazon ECS Anywhere) nella documentazione di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations).

**Versioni del prodotto**
+ AWS CDK Toolkit versione 2
+ npm versione 7.20.3 o successiva
+ Node.js versione 16.6.1 o successiva

## Architecture
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Stack tecnologico Target**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Architettura Target**

Il diagramma seguente illustra un'architettura di sistema di alto livello di configurazione di ECS Anywhere che utilizza AWS CDK con TypeScript, come implementato da questo modello.

1. Quando distribuisci lo stack CDK AWS, viene creato uno CloudFormation stack su AWS.

1. Lo CloudFormation stack fornisce un cluster Amazon ECS e le relative risorse AWS.

1. Per registrare un'istanza esterna con un cluster Amazon ECS, devi installare AWS Systems Manager Agent (SSM Agent) sulla tua macchina virtuale (VM) e registrare la macchina virtuale come istanza gestita da AWS Systems Manager. 

1. È inoltre necessario installare l'agente contenitore Amazon ECS e Docker sulla macchina virtuale per registrarla come istanza esterna nel cluster Amazon ECS.

1. Quando l'istanza esterna è registrata e configurata con il cluster Amazon ECS, può eseguire più contenitori sulla macchina virtuale, che è registrata come istanza esterna.

![\[Configurazione di ECS Anywhere utilizzando il CDK AWS con. TypeScript\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automazione e scalabilità**

Il [GitHub repository](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) fornito con questo modello utilizza AWS CDK come strumento Infrastructure as Code (IaC) per creare la configurazione per questa architettura. AWS CDK ti aiuta a orchestrare le risorse e configurare ECS Anywhere.

## Tools (Strumenti)
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.

**Codice**

Il codice sorgente per questo pattern è disponibile nel GitHub repository [Amazon ECS Anywhere CDK](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples) Samples. Per clonare e utilizzare il repository, segui le istruzioni nella sezione successiva.

## Epiche
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifica la configurazione di AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la versione di AWS CDK. | Verifica la versione di AWS CDK Toolkit eseguendo il seguente comando:<pre>cdk --version</pre>Questo modello richiede la versione 2 di AWS CDK. Se disponi di una versione precedente di AWS CDK, segui le istruzioni nella [documentazione di AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) per aggiornarla. | DevOps ingegnere | 
| Configura le credenziali AWS. | Per configurare le credenziali, esegui il `aws configure` comando e segui le istruzioni:<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 ingegnere | 

### Esegui il bootstrap dell'ambiente AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il repository di codice AWS CDK. | Clona il repository di GitHub codice per questo pattern usando il comando:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps ingegnere | 
| Avvia l'ambiente. | Per distribuire il CloudFormation modello AWS nell'account e nella regione AWS che desideri utilizzare, esegui il seguente comando:<pre>cdk bootstrap <account-number>/<Region></pre>Per ulteriori informazioni, consulta [Bootstrapping nella documentazione](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) di AWS CDK. | DevOps ingegnere | 

### Crea e distribuisci il progetto
<a name="build-and-deploy-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa le dipendenze dei pacchetti e compila i file TypeScript . | Installa le dipendenze del pacchetto e compila TypeScript i file eseguendo i seguenti comandi:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Questi comandi installano tutti i pacchetti dal repository di esempio. Se ricevi errori sui pacchetti mancanti, usa uno dei seguenti comandi:<pre>$npm ci   </pre>oppure<pre>$npm install -g @aws-cdk/<package_name></pre>Per ulteriori informazioni, consulta [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) e [npm install nella documentazione](https://docs.npmjs.com/cli/v7/commands/npm-install) di npm. | DevOps ingegnere | 
| Compilare il progetto. | Per creare il codice del progetto, esegui il comando:<pre>npm run build</pre>Per ulteriori informazioni sulla creazione e la distribuzione del progetto, consulta La [tua prima app 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) nella documentazione di AWS CDK. | DevOps ingegnere | 
| Distribuisci il progetto | Per distribuire il codice del progetto, esegui il comando:<pre>cdk deploy</pre> | DevOps ingegnere | 
| Verifica la creazione e l'output dello stack. | Apri la CloudFormation console AWS all'indirizzo [https://console.aws.amazon.com/cloudformation****](https://console.aws.amazon.com/cloudformation/) e scegli lo stack. `EcsAnywhereStack` La scheda **Outputs** mostra i comandi da eseguire sulla macchina virtuale esterna. | DevOps ingegnere | 

### Configura una macchina locale
<a name="set-up-an-on-premises-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la tua VM usando Vagrant. | A scopo dimostrativo, puoi usare [HashiCorp Vagrant](https://www.vagrantup.com/) per creare una macchina virtuale. Vagrant è un'utilità open source per la creazione e la manutenzione di ambienti di sviluppo software virtuali portatili. Crea una VM Vagrant eseguendo il `vagrant up` comando dalla directory principale in cui è posizionato Vagrantfile. [Per ulteriori informazioni, consulta la documentazione di Vagrant.](https://www.vagrantup.com/docs/cli/up) | DevOps ingegnere | 
| Registra la tua macchina virtuale come istanza esterna. | 1. Accedi alla VM Vagrant utilizzando il comando. `vagrant ssh` [Per ulteriori informazioni, consulta la documentazione di Vagrant.](https://www.vagrantup.com/docs/cli/ssh)2. Crea un codice di attivazione e un ID che puoi utilizzare per registrare la tua macchina virtuale con AWS Systems Manager e attivare l'istanza esterna. L'output di questo comando include `ActivationId` e `ActivationCode` valori: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Esporta l'ID di attivazione e i valori del codice:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. Scarica lo script di installazione sul server o sulla macchina virtuale locale:<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. Esegui lo script di installazione sul server o sulla macchina virtuale locale:<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>Per ulteriori informazioni sulla configurazione e la registrazione di una macchina virtuale, consulta [Registrazione di un'istanza esterna in un cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) nella documentazione di Amazon ECS. | DevOps ingegnere | 
| Verifica lo stato di ECS Anywhere e della macchina virtuale esterna. | Per verificare se la tua casella virtuale è connessa al piano di controllo di Amazon ECS e se è in funzione, usa i seguenti comandi:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps ingegnere | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pulisci ed elimina le risorse. | Dopo aver seguito questo schema, dovresti rimuovere le risorse che hai creato per evitare di incorrere in ulteriori addebiti. Per pulire, esegui il comando:<pre>cdk destroy</pre> | DevOps ingegnere | 

## Risorse correlate
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Documentazione di Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demo di Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Esempi di workshop su Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)

# Modernizza le applicazioni ASP.NET Web Forms su AWS
<a name="modernize-asp-net-web-forms-applications-on-aws"></a>

*Vijai Anand Ramalingam e Sreelaxmi Pai, Amazon Web Services*

## Riepilogo
<a name="modernize-asp-net-web-forms-applications-on-aws-summary"></a>

Questo modello descrive i passaggi per modernizzare un'applicazione ASP.NET Web Forms legacy e monolitica portandola su ASP.NET Core su AWS.

Il trasferimento delle applicazioni ASP.NET Web Forms su ASP.NET Core consente di sfruttare le prestazioni, i risparmi sui costi e il robusto ecosistema di Linux. Tuttavia, può essere un notevole sforzo manuale. In questo modello, l'applicazione legacy viene modernizzata in modo incrementale utilizzando un approccio graduale e quindi containerizzata nel cloud AWS.

Prendi in considerazione un'applicazione monolitica legacy per un carrello della spesa. Supponiamo che sia stata creata come applicazione ASP.NET Web Forms e sia costituita da pagine.aspx con un file code-behind (). `aspx.cs` Il processo di modernizzazione consiste nei seguenti passaggi:

1. Suddividi il monolite in microservizi utilizzando i modelli di scomposizione appropriati. Per ulteriori informazioni, consulta la guida [Decomposizione dei monoliti in microservizi sul](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-decomposing-monoliths/) sito Web AWS Prescriptive Guidance.

1. Trasferisci la tua applicazione ASP.NET Web Forms (.NET Framework) legacy su ASP.NET Core in .NET 5 o versione successiva. In questo modello, si utilizza Porting Assistant for .NET per analizzare l'applicazione ASP.NET Web Forms e identificare le incompatibilità con ASP.NET Core. Ciò riduce lo sforzo di portabilità manuale.

1. Risviluppa il livello dell'interfaccia utente di Web Forms utilizzando React. Questo modello non copre la riqualificazione dell'interfaccia utente. Per istruzioni, consulta [Creare una nuova app React](https://reactjs.org/docs/create-a-new-react-app.html) nella documentazione di React.

1. Risviluppa il file code-behind di Web Forms (interfaccia aziendale) come API web ASP.NET Core. Questo modello utilizza i NDepend report per aiutare a identificare i file e le dipendenze necessari.

1. Aggiorna shared/common progetti, come Business Logic e Data Access, nell'applicazione precedente a .NET 5 o versione successiva utilizzando Porting Assistant for .NET. 

1. Aggiungi i servizi AWS per completare la tua applicazione. Ad esempio, puoi utilizzare [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) per monitorare, archiviare e accedere ai log delle tue applicazioni e [AWS Systems Manager](https://aws.amazon.com/systems-manager/) per archiviare le impostazioni delle applicazioni.

1. Containerizza l'applicazione ASP.NET Core modernizzata. Questo modello crea un file Docker destinato a Linux in Visual Studio e utilizza Docker Desktop per testarlo localmente. Questo passaggio presuppone che l'applicazione legacy sia già in esecuzione su un'istanza Windows locale o Amazon Elastic Compute Cloud (Amazon EC2). Per ulteriori informazioni, consulta lo schema [Esegui un contenitore Docker dell'API Web ASP.NET Core su un'istanza 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. Distribuisci l'applicazione core ASP.NET modernizzata su Amazon Elastic Container Service (Amazon ECS). Questo modello non copre la fase di implementazione. Per istruzioni, consulta [Amazon ECS Workshop.](https://ecsworkshop.com/)

**Nota**  
Questo modello non copre lo sviluppo dell'interfaccia utente, la modernizzazione del database o le fasi di implementazione dei container.

## Prerequisiti e limitazioni
<a name="modernize-asp-net-web-forms-applications-on-aws-prereqs"></a>

**Prerequisiti**
+ [Visual Studio](https://visualstudio.microsoft.com/downloads/) o [Visual Studio Code](https://code.visualstudio.com/download), scaricato e installato.
+ Accesso a un account AWS utilizzando la Console di gestione AWS e l'AWS Command Line Interface (AWS CLI) versione 2. (Consulta le [istruzioni per configurare l'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)).
+ AWS Toolkit for Visual Studio ([vedi le istruzioni di configurazione](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html)).
+ Docker Desktop, [scaricato e installato](https://www.docker.com/products/docker-desktop).
+ .NET SDK, [scaricato e installato](https://download.visualstudio.microsoft.com/download/pr/4263dc3b-dc67-4f11-8d46-cc0ae86a232e/66782bbd04c53651f730b2e30a873f18/dotnet-sdk-5.0.203-win-x64.exe).
+ NDepend strumento, [scaricato](https://www.ndepend.com/download) e installato. Per installare l' NDepend estensione per Visual Studio, esegui `NDepend.VisualStudioExtension.Installer` ([vedi istruzioni](https://www.ndepend.com/docs/getting-started-with-ndepend#Part1)). Puoi selezionare Visual Studio 2019 o 2022, a seconda delle tue esigenze. 
+ Porting Assistant per .NET, [scaricato](https://aws.amazon.com/porting-assistant-dotnet/) e installato.

## Architecture
<a name="modernize-asp-net-web-forms-applications-on-aws-architecture"></a>

**Modernizzazione dell'applicazione del carrello degli acquisti**

Il diagramma seguente illustra il processo di modernizzazione di un'applicazione esistente per il carrello degli acquisti ASP.NET.

![\[Modernizzazione di un'applicazione legacy per il carrello degli acquisti\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/4367e259-9bb3-4eb6-a54d-1c1e2dece7d4.png)


**Architettura Target**

Il diagramma seguente illustra l'architettura dell'applicazione modernizzata per il carrello degli acquisti su AWS. APIs I Web ASP.NET Core vengono distribuiti in un cluster Amazon ECS. I servizi di registrazione e configurazione sono forniti da Amazon CloudWatch Logs e AWS Systems Manager.

![\[Architettura di destinazione per l'applicazione ASP.NET Web Forms su AWS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/ed6d65ec-0dc9-43ab-ac07-1f172e089399.png)


## Tools (Strumenti)
<a name="modernize-asp-net-web-forms-applications-on-aws-tools"></a>

**Servizi AWS**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) è un servizio di gestione dei container veloce e altamente scalabile per l'esecuzione, l'arresto e la gestione dei container su un cluster. Puoi eseguire attività e servizi su un'infrastruttura serverless gestita da AWS Fargate. In alternativa, per un maggiore controllo sulla tua infrastruttura, puoi eseguire attività e servizi su un cluster di EC2 istanze da te gestito.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html): Amazon CloudWatch Logs centralizza i log di tutti i sistemi, le applicazioni e i servizi AWS che utilizzi. Puoi visualizzare e monitorare i log, cercarli per codici o modelli di errore specifici, filtrarli in base a campi specifici o archiviarli in modo sicuro per analisi future.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ─ AWS Systems Manager è un servizio AWS che puoi usare per visualizzare e controllare la tua infrastruttura su AWS. Utilizzando la console Systems Manager, puoi visualizzare i dati operativi da più servizi AWS e automatizzare le attività operative tra le tue risorse AWS. Systems Manager ti aiuta a mantenere la sicurezza e la conformità scansionando le istanze gestite e segnalando (o adottando azioni correttive) su eventuali violazioni delle policy rilevate.

**Strumenti**
+ [Visual Studio](https://visualstudio.microsoft.com/) o [Visual Studio Code](https://code.visualstudio.com/): strumenti per la creazione di applicazioni.NET APIs, Web e altri programmi.
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio: un'estensione per Visual Studio che aiuta a sviluppare, eseguire il debug e distribuire applicazioni.NET che utilizzano i servizi AWS.
+ [Docker Desktop](https://www.docker.com/products/docker-desktop): uno strumento che semplifica la creazione e la distribuzione di applicazioni containerizzate.
+ [NDepend](https://www.ndepend.com/features/)— Un analizzatore che monitora il codice.NET per individuare dipendenze, problemi di qualità e modifiche al codice.
+ [Porting Assistant for .NET](https://aws.amazon.com/porting-assistant-dotnet/): strumento di analisi che analizza il codice.NET per identificare le incompatibilità con .NET Core e stimare lo sforzo di migrazione.

## Epiche
<a name="modernize-asp-net-web-forms-applications-on-aws-epics"></a>

### Trasferisci la tua applicazione precedente su.NET 5 o versione successiva
<a name="port-your-legacy-application-to-net-5-or-later-version"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna la tua applicazione.NET Framework legacy a.NET 5. | È possibile utilizzare Porting Assistant for .NET per convertire l'applicazione ASP.NET Web Forms legacy in .NET 5 o versione successiva. Segui le istruzioni contenute nella documentazione di [Porting Assistant for .NET](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-getting-started.html). | Sviluppatore di app | 
| Genera NDepend report. | Quando modernizzi l'applicazione ASP.NET Web Forms scomponendola in microservizi, potresti non aver bisogno di tutti i file.cs dell'applicazione precedente. È possibile utilizzarlo NDepend per generare un report per qualsiasi file code-behind (.cs), per ottenere tutti i chiamanti e i chiamanti. Questo rapporto consente di identificare e utilizzare solo i file richiesti nei microservizi.Dopo l'installazione NDepend (vedi la sezione [Prerequisiti](#modernize-asp-net-web-forms-applications-on-aws-prereqs)), apri la soluzione (file.sln) per l'applicazione precedente in Visual Studio e segui questi passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Questo processo genera un report per il file code-behind che elenca tutti i chiamanti e i chiamanti. [Per ulteriori informazioni sul grafico delle dipendenze, consulta la documentazione. NDepend ](https://www.ndepend.com/docs/visual-studio-dependency-graph) | Sviluppatore di app | 
| Crea una nuova soluzione.NET 5. | Per creare una nuova struttura.NET 5 (o versione successiva) per il tuo sito Web ASP.NET Core modernizzato: APIs[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Per ulteriori informazioni sulla creazione di progetti e soluzioni, consulta la [documentazione di Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/creating-solutions-and-projects).Man mano che si crea la soluzione e si verifica la funzionalità, è possibile identificare diversi file aggiuntivi da aggiungere alla soluzione, oltre ai file NDepend identificati. | Sviluppatore di app | 

### Aggiorna il codice dell'applicazione
<a name="update-your-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa APIs il web con ASP.NET Core. | *Supponiamo che uno dei microservizi che hai identificato nella tua precedente applicazione per il carrello degli acquisti Monolith sia Products.* Hai creato un nuovo progetto API web ASP.NET Core per *Products* nell'epopea precedente. *In questo passaggio, identifichi e modernizzi tutti i moduli Web (pagine.aspx) correlati ai prodotti.* [Supponiamo che *Products* sia composto da quattro moduli Web, come illustrato in precedenza nella sezione Architettura:](#modernize-asp-net-web-forms-applications-on-aws-architecture)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)È necessario analizzare ogni modulo Web, identificare tutte le richieste inviate al database per eseguire una logica e ottenere risposte. È possibile implementare ogni richiesta come endpoint dell'API Web. Dati i suoi moduli web, *Products* può avere i seguenti endpoint possibili:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Come accennato in precedenza, puoi anche riutilizzare tutti gli altri progetti che hai aggiornato a.NET 5, inclusi Business Logic, Data Access e i progetti. shared/common  | Sviluppatore di app | 
| Configura Amazon CloudWatch Logs. | Puoi usare [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) per monitorare, archiviare e accedere ai log della tua applicazione. Puoi accedere ai dati in Amazon CloudWatch Logs utilizzando un SDK AWS. [Puoi anche integrare applicazioni.NET con CloudWatch Logs utilizzando i più diffusi framework di logging.NET come [NLog](https://www.nuget.org/packages/AWS.Logger.NLog/)[Log4Net](https://www.nuget.org/packages/AWS.Logger.Log4net/) e il framework di registrazione ASP.NET Core.](https://www.nuget.org/packages/AWS.Logger.AspNetCore/)Per ulteriori informazioni su questo passaggio, consulta il post di blog [Amazon CloudWatch Logs e.NET Logging](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) Frameworks. | Sviluppatore di app | 
| Configura AWS Systems Manager Parameter Store. | Puoi utilizzare [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) per archiviare le impostazioni dell'applicazione, come le stringhe di connessione, separatamente dal codice dell'applicazione. Il NuGet pacchetto [Amazon.Extensions.Configuration. SystemsManager](https://www.nuget.org/packages/Amazon.Extensions.Configuration.SystemsManager/)semplifica il modo in cui l'applicazione carica queste impostazioni da AWS Systems Manager Parameter Store nel sistema di configurazione .NET Core. Per ulteriori informazioni su questo passaggio, consulta il post del blog [.NET Core configuration provider for AWS Systems Manager](https://aws.amazon.com/blogs/developer/net-core-configuration-provider-for-aws-systems-manager/). | Sviluppatore di app | 

### Aggiungi autenticazione e autorizzazione
<a name="add-authentication-and-authorization"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Utilizza un cookie condiviso per l'autenticazione. | La modernizzazione di un'applicazione monolitica legacy è un processo iterativo e richiede la coesistenza del monolito e della sua versione modernizzata. È possibile utilizzare un cookie condiviso per ottenere un'autenticazione senza interruzioni tra le due versioni. L'applicazione ASP.NET legacy continua a convalidare le credenziali dell'utente ed emette il cookie, mentre l'applicazione ASP.NET Core modernizzata convalida il cookie. [Per istruzioni e codice di esempio, consulta il progetto di esempio. GitHub ](https://github.com/aws-samples/dotnet-share-auth-cookie-between-monolith-and-modernized-apps) | Sviluppatore di app | 

### Crea ed esegui il contenitore localmente
<a name="build-and-run-the-container-locally"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'immagine Docker usando Visual Studio. | In questo passaggio, crei un file Docker utilizzando l'API web di Visual Studio for .NET Core.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Visual Studio crea un file Docker per il tuo progetto. Per un file Docker di esempio, vedi [Visual Studio Container Tools for Docker sul sito](https://docs.microsoft.com/en-us/visualstudio/containers/overview) Web di Microsoft. | Sviluppatore di app | 
| Crea ed esegui il contenitore utilizzando Docker Desktop. | Ora puoi creare, creare ed eseguire il contenitore in Docker Desktop.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html) | Sviluppatore di app | 

## Risorse correlate
<a name="modernize-asp-net-web-forms-applications-on-aws-resources"></a>
+ [Esegui un contenitore Docker dell'API Web ASP.NET Core su un'istanza 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 Amazon ECS](https://ecsworkshop.com/)
+ [Esegui blue/green implementazioni ECS utilizzando CodeDeploy AWS (documentazione CloudFormation AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html)) CloudFormation 
+ [Guida introduttiva a (documentazione NDepend](https://www.ndepend.com/docs/getting-started-with-ndepend)) NDepend 
+ [Porting Assistant per.NET](https://aws.amazon.com/porting-assistant-dotnet/)

## Informazioni aggiuntive
<a name="modernize-asp-net-web-forms-applications-on-aws-additional"></a>

Le tabelle seguenti forniscono esempi di progetti di esempio per un'applicazione legacy per il carrello degli acquisti e i progetti equivalenti nell'applicazione ASP.NET Core modernizzata.

**Soluzione legacy:**


| 
| 
| Project name (Nome progetto) | Modello di progetto | Framework Target | 
| --- |--- |--- |
| Interfaccia aziendale  | Libreria di classi  | .NET Framework  | 
| BusinessLogic  | Libreria di classi  | .NET Framework  | 
| WebApplication  | Applicazione Web ASP.NET Framework  | .NET Framework  | 
| UnitTests  | NUnit Progetto di test  | .NET Framework  | 
| Condiviso -> Comune  | Libreria di classi  | .NET Framework  | 
| Condiviso -> Framework  | Libreria di classi  | .NET Framework  | 

**Nuova soluzione:**


| 
| 
| Project name (Nome progetto) | Modello di progetto | Framework Target | 
| --- |--- |--- |
| BusinessLogic  | Libreria di classi  | .NET 5.0  | 
| <WebAPI>  | API Web ASP.NET Core  | .NET 5.0  | 
| <WebAPI>. UnitTests  | NUnit Progetto 3 Test  | .NET 5.0  | 
| Condiviso -> Comune  | Libreria di classi  | .NET 5.0  | 
| Condiviso -> Framework  | Libreria di classi  | .NET 5.0  | 

# Onboarding dei tenant nell'architettura SaaS per il modello a silo utilizzando C\$1 e 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*

## Riepilogo
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-summary"></a>

Le applicazioni Software as a Service (SaaS) possono essere create con una varietà di modelli architettonici diversi. Il *modello a silo* si riferisce a un'architettura in cui ai tenant vengono fornite risorse dedicate.

Le applicazioni SaaS si basano su un modello semplice per introdurre nuovi inquilini nel loro ambiente. Ciò richiede spesso l'orchestrazione di una serie di componenti per fornire e configurare correttamente tutti gli elementi necessari per creare un nuovo tenant. Questo processo, nell'architettura SaaS, viene chiamato onboarding dei tenant. L'onboarding dovrebbe essere completamente automatizzato per ogni ambiente SaaS utilizzando l'infrastruttura come codice nel processo di onboarding.

Questo modello ti guida attraverso un esempio di creazione di un tenant e di provisioning di un'infrastruttura di base per il tenant su Amazon Web Services (AWS). Il modello utilizza C\$1 e AWS Cloud Development Kit (AWS CDK).

Poiché questo modello crea un allarme di fatturazione, consigliamo di implementare lo stack negli Stati Uniti orientali (Virginia settentrionale) o us-east-1, nella regione AWS. Per ulteriori informazioni, consulta la [documentazione di AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

## Prerequisiti e limitazioni
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-prereqs"></a>

**Prerequisiti******
+ Un [account AWS](https://aws.amazon.com/account/) attivo.
+ Un principal AWS Identity and Access Management (IAM) con accesso IAM sufficiente per creare risorse AWS per questo modello. Per maggiori informazioni, consulta [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).
+ [Installa Amazon Command Line Interface (AWS CLI) e configura AWS](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) [CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) per eseguire la distribuzione di AWS CDK.
+ [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) scaricato e installato o [Visual Studio Code](https://code.visualstudio.com/download) scaricato e installato.
+ Configurazione di [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) Studio.
+ [.NET Core 3.1 o versione successiva](https://dotnet.microsoft.com/download/dotnet-core/3.1) (richiesto per le applicazioni C\$1 AWS CDK)
+ [Amazon.Lambda.Tools](https://github.com/aws/aws-extensions-for-dotnet-cli#aws-lambda-amazonlambdatools) installato.

**Limitazioni******
+ AWS CDK utilizza [AWS CloudFormation](https://aws.amazon.com/cloudformation/), quindi le applicazioni AWS CDK sono soggette a quote di CloudFormation servizio. Per ulteriori informazioni, consulta [AWS CloudFormation quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html). 
+ Lo CloudFormation stack tenant viene creato con un ruolo di CloudFormation servizio `infra-cloudformation-role` con caratteri jolly sulle azioni (`sns`\$1 e`sqs*`) ma con risorse limitate al prefisso. `tenant-cluster` Per un caso d'uso di produzione, valuta questa impostazione e fornisci solo l'accesso richiesto a questo ruolo di servizio. La funzione `InfrastructureProvision` Lambda utilizza anche un carattere jolly (`cloudformation*`) per effettuare il provisioning dello CloudFormation stack, ma con risorse limitate al prefisso. `tenant-cluster`
+ La build docker di questo codice di esempio utilizza `--platform=linux/amd64` per forzare le immagini `linux/amd64` basate. Questo per garantire che gli artefatti dell'immagine finale siano adatti a Lambda, che per impostazione predefinita utilizza l'architettura x86-64. Se devi modificare l'architettura Lambda di destinazione, assicurati di modificare sia i codici Dockerfiles che quelli AWS CDK. Per ulteriori informazioni, consulta il post sul blog [Migrazione delle funzioni AWS Lambda su processori AWS Graviton2 basati su ARM](https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-to-arm-based-aws-graviton2-processors/).
+ Il processo di eliminazione dello stack non eliminerà i log (gruppi di CloudWatch log e log) generati dallo stack. È necessario pulire manualmente i log tramite la CloudWatch console Amazon della Console di gestione AWS o tramite l'API.

Questo modello è impostato come esempio. Per l'uso in produzione, valuta le seguenti configurazioni e apporta le modifiche in base ai requisiti aziendali:
+ Il bucket [AWS Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) in questo esempio non ha il controllo delle versioni abilitato per motivi di semplicità. Valuta e aggiorna la configurazione secondo necessità.
+ Questo esempio configura gli endpoint [dell'API REST di Amazon API Gateway](https://aws.amazon.com/api-gateway/) senza autenticazione, autorizzazione o limitazione per motivi di semplicità. Per l'uso in produzione, consigliamo di integrare il sistema con l'infrastruttura di sicurezza aziendale. Valuta questa impostazione e aggiungi le impostazioni di sicurezza richieste, se necessario.
+ Per questo esempio di infrastruttura tenant, [Amazon Simple Notification Service (Amazon SNS) e Amazon Simple](https://aws.amazon.com/sns/) [Queue Service (Amazon SQS) hanno solo configurazioni](https://aws.amazon.com/sqs/) minime. [L'[AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) per ogni tenant consente di utilizzare i servizi [Amazon](https://aws.amazon.com/cloudwatch/) e Amazon CloudWatch SNS dell'account in base alla policy delle chiavi AWS KMS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html#compatibility-with-aws-services) La configurazione è solo un esempio di segnaposto. Modifica le configurazioni secondo necessità in base al tuo caso d'uso aziendale.
+ L'intera configurazione, che include, a titolo esemplificativo ma non esaustivo, gli endpoint delle API e il provisioning e l'eliminazione dei tenant di backend tramite AWS CloudFormation, copre solo il caso base di happy path. Valuta e aggiorna la configurazione con la logica di riprova necessaria, la logica di gestione degli errori aggiuntiva e la logica di sicurezza in base alle tue esigenze aziendali.
+ Il codice di esempio viene testato con up-to-date [cdk-nag](https://github.com/cdklabs/cdk-nag) per verificare le politiche al momento della stesura di questo documento. In futuro potrebbero essere applicate nuove politiche. Queste nuove politiche potrebbero richiedere la modifica manuale dello stack in base ai consigli prima di poter implementare lo stack. Esamina il codice esistente per assicurarti che sia in linea con i requisiti aziendali.
+ Il codice si basa sul CDK AWS per generare un suffisso casuale anziché affidarsi a nomi fisici assegnati statici per la maggior parte delle risorse create. Questa configurazione serve a garantire che queste risorse siano uniche e non entrino in conflitto con altri stack. Per ulteriori informazioni, consulta la [documentazione di AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources_physical_names). Adattalo in base alle tue esigenze aziendali.
+ [Questo codice di esempio impacchetta gli artefatt.NET Lambda in immagini basate su Docker e viene eseguito con il runtime dell'immagine Container fornito da Lambda.](https://docs.aws.amazon.com/lambda/latest/dg/csharp-image.html) Il runtime dell'immagine del contenitore presenta vantaggi per i meccanismi standard di trasferimento e archiviazione (registri dei contenitori) e per ambienti di test locali più accurati (tramite l'immagine del contenitore). Puoi cambiare il progetto in modo che utilizzi i [runtime.NET forniti da Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) per ridurre il tempo di compilazione delle immagini Docker, ma dovrai quindi configurare meccanismi di trasferimento e archiviazione e assicurarti che la configurazione locale corrisponda alla configurazione Lambda. Modifica il codice per allinearlo ai requisiti aziendali degli utenti.

**Versioni del prodotto**
+ AWS CDK versione 2.45.0 o successiva
+ Visual Studio 2022

## Architecture
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-architecture"></a>

**Stack tecnologico**
+ Gateway Amazon API
+ AWS CloudFormation
+ Amazon CloudWatch
+ Amazon DynamoDB
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ AWS Lambda
+ Simple Storage Service (Amazon S3)
+ Amazon SNS
+ Amazon SQS

**Architettura**

Il diagramma seguente mostra il flusso di creazione dello stack dei tenant. *Per ulteriori informazioni sugli stack tecnologici control-plane e tenant, consultate la sezione Informazioni aggiuntive.*

![\[Flusso di lavoro per creare un tenant e fornire un'infrastruttura di base per il tenant su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5baef800-fe39-4eb8-b11d-2c23eb3175fc/images/0b579484-b87c-4acb-8c60-8c33c18370e3.png)


**Flusso di creazione dello stack dei tenant**

1. L'utente invia una richiesta API POST con un nuovo payload del tenant (nome del tenant, descrizione del tenant) in JSON a un'API REST ospitata da Amazon API Gateway. L'API Gateway elabora la richiesta e la inoltra alla funzione backend Lambda Tenant Onboarding. In questo esempio, non esiste alcuna autorizzazione o autenticazione. In una configurazione di produzione, questa API deve essere integrata con il sistema di sicurezza dell'infrastruttura SaaS.

1. La funzione Tenant Onboarding verifica la richiesta. Quindi tenta di archiviare il record del tenant, che include il nome del tenant, l'identificatore univoco universale (UUID) generato dal tenant e la descrizione del tenant, nella tabella di onboarding dei tenant di Amazon DynamoDB. 

1. Dopo che DynamoDB ha archiviato il record, un flusso DynamoDB avvia la funzione downstream Lambda Tenant Infrastructure.

1. La funzione Tenant Infrastructure Lambda agisce in base al flusso DynamoDB ricevuto. Se lo stream è destinato all'evento INSERT, la funzione utilizza la NewImage sezione dello stream (ultimo record di aggiornamento, campo Tenant Name) per richiamare CloudFormation la creazione di una nuova infrastruttura tenant utilizzando il modello archiviato nel bucket S3. Il CloudFormation modello richiede il parametro Tenant Name. 

1. AWS CloudFormation crea l'infrastruttura tenant in base al CloudFormation modello e ai parametri di input.

1. Ogni configurazione dell'infrastruttura tenant presenta un CloudWatch allarme, un allarme di fatturazione e un evento di allarme.

1. L'evento di allarme diventa un messaggio a un argomento SNS, che viene crittografato dalla chiave AWS KMS del tenant.

1. L'argomento SNS inoltra il messaggio di allarme ricevuto alla coda SQS, che viene crittografata dalla chiave di crittografia AWS KMS for encryption del tenant.

Altri sistemi possono essere integrati con Amazon SQS per eseguire azioni basate sui messaggi in coda. In questo esempio, per mantenere il codice generico, i messaggi in arrivo rimangono in coda e richiedono l'eliminazione manuale.

**Flusso di eliminazione dello stack dei tenant**

1. L'utente invia una richiesta API DELETE con un nuovo payload del tenant (nome del tenant, descrizione del tenant) in JSON all'API REST ospitata da Amazon API Gateway, che elaborerà la richiesta e la inoltrerà alla funzione Tenant Onboarding. In questo esempio, non esiste alcuna autorizzazione o autenticazione. In una configurazione di produzione, questa API sarà integrata con il sistema di sicurezza dell'infrastruttura SaaS.

1. La funzione Tenant Onboarding verificherà la richiesta e quindi tenterà di eliminare il record del tenant (nome del tenant) dalla tabella Tenant Onboarding. 

1. Dopo che DynamoDB ha eliminato correttamente il record (il record esiste nella tabella e viene eliminato), un flusso DynamoDB avvia la funzione downstream Lambda Tenant Infrastructure.

1. La funzione Tenant Infrastructure Lambda agisce in base al record di flusso DynamoDB ricevuto. Se lo stream è destinato all'evento REMOVE, la funzione utilizza la OldImage sezione del record (informazioni sul record e campo Tenant Name, prima dell'ultima modifica, ovvero delete) per avviare l'eliminazione di uno stack esistente in base alle informazioni di quel record.

1. AWS CloudFormation elimina lo stack di tenant di destinazione in base all'input.

## Tools (Strumenti)
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-tools"></a>

**Servizi AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ti aiuta a creare, pubblicare, gestire, monitorare e proteggere REST, HTTP e WebSocket APIs su qualsiasi scala.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) è un kit di sviluppo cloud a riga di comando che ti aiuta a interagire con l'app AWS Cloud Development Kit (AWS CDK).
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
+ [Amazon Simple Queue Service (Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio è un plug-in per l'ambiente di sviluppo integrato (IDE) di Visual Studio. Il Toolkit for Visual Studio supporta lo sviluppo, il debug e la distribuzione di applicazioni.NET che utilizzano i servizi AWS.

**Altri strumenti**
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022) è un IDE che include compilatori, strumenti di completamento del codice, progettisti grafici e altre funzionalità che supportano lo sviluppo del software.

**Codice**

Il codice per questo pattern si trova nel repository [Tenant onboarding in SaaS Architecture for Silo Model APG](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example) Example.

## Epiche
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-epics"></a>

### Configura AWS CDK
<a name="set-up-aws-cdk"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica l'installazione di Node.js. | Per verificare che Node.js sia installato sul computer locale, esegui il comando seguente.<pre>node --version</pre> | Amministratore AWS, AWS DevOps | 
| Installa AWS CDK Toolkit. | Per installare AWS CDK Toolkit sul tuo computer locale, esegui il comando seguente.<pre>npm install -g aws-cdk</pre>[Se npm non è installato, puoi installarlo dal sito Node.js.](https://nodejs.org/en/download/package-manager/) | Amministratore AWS, AWS DevOps | 
| Verifica la versione di AWS CDK Toolkit. | Per verificare che la versione di AWS CDK Toolkit sia installata correttamente sul computer, esegui il comando seguente.  <pre>cdk --version</pre> | Amministratore AWS, AWS DevOps | 

### Rivedi il codice per il piano di controllo dell'onboarding dei tenant
<a name="review-the-code-for-the-tenant-onboarding-control-plane"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clonare il repository. | Clona il [repository](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example) e accedi alla `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example` cartella.In Visual Studio 2022, apri la `\src\TenantOnboardingInfra.sln` soluzione. Apri il `TenantOnboardingInfraStack.cs` file e rivedi il codice.Le seguenti risorse vengono create come parte di questo stack:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Amministratore AWS, AWS DevOps | 
| Esamina il CloudFormation modello. | Nella `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\template` cartella`infra.yaml`, apri e rivedi il CloudFormation modello. Questo modello verrà idratato con il nome del tenant recuperato dalla tabella DynamoDB di onboarding del tenant.Il modello fornisce l'infrastruttura specifica del tenant. In questo esempio, effettua il provisioning della chiave AWS KMS, Amazon SNS, Amazon SQS e dell'allarme. CloudWatch  | Sviluppatore di app, AWS DevOps | 
| Esamina la funzione di onboarding dei tenant. | Apri `Function.cs` e rivedi il codice per la funzione di onboarding dei tenant, creata con il modello Visual Studio AWS Lambda Project (.NET Core- C\$1) con il blueprint .NET 6 (Container Image).Apri e rivedi il codice. `Dockerfile` `Dockerfile`È un file di testo che contiene istruzioni per creare l'immagine del contenitore Lambda.Nota che i seguenti NuGet pacchetti vengono aggiunti come dipendenze al `TenantOnboardingFunction` progetto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Sviluppatore di app, AWS DevOps | 
| Esamina la InfraProvisioning funzione Tenant. | Accedi a `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\InfraProvisioningFunction`.Apri `Function.cs` ed esamina il codice per la funzione di provisioning dell'infrastruttura tenant, creata con il modello Visual Studio AWS Lambda Project (.NET Core- C\$1) con il blueprint .NET 6 (Container Image).Apri e rivedi il `Dockerfile` codice. Nota che i seguenti NuGet pacchetti vengono aggiunti come dipendenze al `InfraProvisioningFunction` progetto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Sviluppatore di app, AWS DevOps | 

### Implementa le risorse AWS
<a name="deploy-the-aws-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea la soluzione. | Per creare la soluzione, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Assicurati di aggiornare il `Amazon.CDK.Lib NuGet` pacchetto alla versione più recente del `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\TenantOnboardingInfra` progetto prima di creare la soluzione. | Sviluppatore di app | 
| Esegui il bootstrap dell'ambiente AWS CDK. | Apri il prompt dei comandi di Windows e accedi alla cartella principale dell'app AWS CDK in cui è disponibile il `cdk.json` file ()`\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`. Esegui il seguente comando per il bootstrap.<pre>cdk bootstrap </pre>Se hai creato un profilo AWS per le credenziali, usa il comando con il tuo profilo.<pre>cdk bootstrap --profile <profile name><br />  </pre> | Amministratore AWS, AWS DevOps | 
| Elenca gli stack CDK AWS. | Per elencare tutti gli stack da creare nell'ambito di questo progetto, esegui il comando seguente.<pre>cdk ls<br />cdk ls --profile <profile name></pre>Se hai creato un profilo AWS per le credenziali, usa il comando con il tuo profilo.<pre>cdk ls --profile <profile name></pre> | Amministratore AWS, AWS DevOps | 
| Verifica quali risorse AWS verranno create. | Per esaminare tutte le risorse AWS che verranno create nell'ambito di questo progetto, esegui il comando seguente.<pre>cdk diff</pre>Se hai creato un profilo AWS per le credenziali, usa il comando con il tuo profilo.<pre>cdk diff --profile <profile name></pre> | Amministratore AWS, AWS DevOps | 
| Distribuisci tutte le risorse AWS utilizzando AWS CDK. | Per distribuire tutte le risorse AWS esegui il seguente comando.<pre>cdk deploy --all --require-approval never</pre>Se hai creato un profilo AWS per le credenziali, usa il comando con il tuo profilo.<pre>cdk deploy --all --require-approval never --profile <profile name></pre>Una volta completata la distribuzione, copia l'URL dell'API dalla sezione degli output del prompt dei comandi, come mostrato nell'esempio seguente.<pre>Outputs:<br />TenantOnboardingInfraStack.TenantOnboardingAPIEndpoint42E526D7 = https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/</pre> | Amministratore AWS, AWS DevOps | 

### Verifica la funzionalità
<a name="verify-the-functionality"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un nuovo inquilino. | Per creare il nuovo tenant, invia la seguente richiesta curl.<pre>curl -X POST <TenantOnboardingAPIEndpoint* from CDK Output>tenant -d '{"Name":"Tenant123", "Description":"Stack for Tenant123"}'</pre>Cambia il `<TenantOnboardingAPIEndpoint* from CDK Output>` segnaposto con il valore effettivo di AWS CDK, come mostrato nell'esempio seguente.<pre>curl -X POST https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant -d '{"Name":"Tenant123", "Description":"test12"}'</pre>L'esempio seguente mostra l'output.<pre>{"message": "A new tenant added - 5/4/2022 7:11:30 AM"}</pre> | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Verifica i dettagli del tenant appena creato in DynamoDB. | Per verificare i dettagli del tenant appena creato in DynamoDB, procedi nel seguente modo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Verifica la creazione dello stack per il nuovo tenant. | Verifica che il nuovo stack sia stato creato correttamente e dotato dell'infrastruttura per il tenant appena creato in base al modello. CloudFormation [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Elimina lo stack dei tenant. | Per eliminare lo stack dei tenant, invia la seguente richiesta curl.<pre>curl -X DELETE <TenantOnboardingAPIEndpoint* from CDK Output>tenant/<Tenant Name from previous step></pre>Cambia il `<TenantOnboardingAPIEndpoint* from CDK Output>` segnaposto con il valore effettivo da AWS CDK e passa `<Tenant Name from previous step>` al valore effettivo della precedente fase di creazione del tenant, come mostrato nell'esempio seguente.<pre>curl -X DELETE https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant/Tenant123</pre>L'esempio seguente mostra l'output.<pre>{"message": "Tenant destroyed - 5/4/2022 7:14:48 AM"}</pre> | Sviluppatore di app, AWS DevOps, amministratore AWS | 
| Verifica l'eliminazione dello stack per il tenant esistente. | Per verificare che lo stack di tenant esistente sia stato eliminato, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Distruggi l'ambiente. | Prima di ripulire lo stack, assicurati quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Al termine del test, è possibile utilizzare AWS CDK per distruggere tutti gli stack e le risorse correlate eseguendo il comando seguente.<pre>cdk destroy --all;</pre>Se hai creato un profilo AWS per le credenziali, usa il profilo.Conferma la richiesta di eliminazione dello stack per eliminare lo stack. | Amministratore AWS, AWS DevOps | 
| Pulisci Amazon CloudWatch Logs. | Il processo di eliminazione dello stack non eliminerà CloudWatch i log (gruppi di log e log) generati dallo stack. Pulisci manualmente CloudWatch le risorse utilizzando la CloudWatch console o l'API. | Sviluppatore di app, AWS DevOps, amministratore AWS | 

## Risorse correlate
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-resources"></a>
+ [Workshop AWS CDK.NET](https://cdkworkshop.com/40-dotnet.html)
+ [Lavorare con AWS CDK in C\$1](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-csharp.html)
+ [Riferimento CDK.NET](https://docs.aws.amazon.com/cdk/api/v2/dotnet/api/index.html)

## Informazioni aggiuntive
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-additional"></a>

**Stack tecnologico Control-Plane**

Il codice CDK scritto in .NET viene utilizzato per effettuare il provisioning dell'infrastruttura del piano di controllo, che comprende le seguenti risorse:

1. **API Gateway**

   Funge da punto di ingresso dell'API REST per lo stack del piano di controllo.

1. **Funzione Lambda di onboarding dei tenant**

   Questa funzione Lambda viene avviata da API Gateway utilizzando il metodo m.

   Una richiesta API del metodo POST comporta l'inserimento di (`tenant name`,`tenant description`) nella tabella `Tenant Onboarding` DynamoDB.

   In questo esempio di codice, il nome del tenant viene utilizzato anche come parte del nome dello stack del tenant e dei nomi delle risorse all'interno di tale stack. Questo serve a facilitare l'identificazione di queste risorse. Il nome del tenant deve essere univoco in tutta la configurazione per evitare conflitti o errori. La configurazione dettagliata della convalida degli input è spiegata nella documentazione dei [ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) e nella sezione *Limitazioni*.

   Il processo di persistenza nella tabella DynamoDB avrà esito positivo solo se il nome del tenant non viene utilizzato in nessun altro record della tabella.

   Il nome del tenant in questo caso è la chiave di partizione per questa tabella, poiché solo la chiave di partizione può essere utilizzata come espressione di condizione. `PutItem`

   Se il nome del tenant non è mai stato registrato prima, il record verrà salvato correttamente nella tabella.

   Tuttavia, se il nome del tenant è già utilizzato da un record esistente nella tabella, l'operazione avrà esito negativo e avvierà un'eccezione DynamoDB. `ConditionalCheckFailedException` L'eccezione verrà utilizzata per restituire un messaggio di errore (`HTTP BadRequest`) che indica che il nome del tenant esiste già.

   Una richiesta API di `DELETE` metodo rimuoverà il record per un nome di tenant specifico dalla tabella `Tenant Onboardin` g.

   L'eliminazione del record DynamoDB in questo esempio avrà esito positivo anche se il record non esiste.

   Se il record di destinazione esiste e viene eliminato, creerà un record di flusso DynamoDB. In caso contrario, non verrà creato alcun record downstream.

1. **Onboarding di DynamoDB da parte dei tenant, con Amazon DynamoDB Streams abilitato**

   Questo registra le informazioni sui metadati del tenant e qualsiasi salvataggio o eliminazione di record invierà un flusso a valle alla funzione `Tenant Infrastructure` Lambda. 

1. **Funzione Lambda dell'infrastruttura tenant**

   Questa funzione Lambda viene avviata dal record di flusso DynamoDB del passaggio precedente. Se il record riguarda un `INSERT` evento, richiama AWS per CloudFormation creare una nuova infrastruttura tenant con il CloudFormation modello archiviato in un bucket S3. Se il record è for`REMOVE`, avvia l'eliminazione di uno stack esistente in base al campo del record dello stream. `Tenant Name`

1. **Bucket S3**

   Serve per memorizzare il modello. CloudFormation 

1. **Ruoli IAM per ogni funzione Lambda e un ruolo di servizio per CloudFormation**

   Ogni funzione Lambda ha il suo ruolo IAM unico con autorizzazioni con [privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) per svolgere il proprio compito. Ad esempio, la funzione `Tenant On-boarding` Lambda ha read/write accesso a DynamoDB e la funzione `Tenant Infrastructure` Lambda può leggere solo il flusso DynamoDB.

   Viene creato un ruolo di CloudFormation servizio personalizzato per il provisioning dello stack dei tenant. Questo ruolo di servizio contiene autorizzazioni aggiuntive per il provisioning CloudFormation dello stack (ad esempio, la chiave AWS KMS). Questo divide i ruoli tra Lambda CloudFormation ed evita tutte le autorizzazioni su un singolo ruolo (ruolo Infrastructure Lambda).

   Le autorizzazioni che consentono azioni potenti (come la creazione e l'eliminazione di CloudFormation pile) sono bloccate e consentite solo per le risorse che iniziano con. `tenantcluster-` L'eccezione è AWS KMS, a causa della sua convenzione di denominazione delle risorse. Il nome del tenant importato dall'API verrà aggiunto `tenantcluster-` insieme ad altri controlli di convalida (alfanumerico con solo trattino e limitato a meno di 30 caratteri per adattarsi alla maggior parte dei nomi delle risorse AWS). Ciò garantisce che il nome del tenant non comporti accidentalmente l'interruzione degli stack o delle risorse dell'infrastruttura di base.

**Stack tecnologico Tenant**

Un CloudFormation modello è archiviato nel bucket S3. [Il modello fornisce la chiave AWS KMS specifica del tenant, un CloudWatch allarme, un argomento SNS, una coda SQS e una policy SQS.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html)

La chiave AWS KMS viene utilizzata per la crittografia dei dati da Amazon SNS e Amazon SQS per i loro messaggi. Le pratiche di sicurezza per [AwsSolutionsSNS2 e AwsSolutions SQS2](https://github.com/cdklabs/cdk-nag/blob/main/RULES.md) consigliano di configurare Amazon SNS e Amazon SQS con crittografia. Tuttavia, gli CloudWatch allarmi non funzionano con Amazon SNS quando si utilizza una chiave gestita da AWS, quindi in questo caso è necessario utilizzare una chiave gestita dal cliente. Per ulteriori informazioni, consulta l'[AWS Knowledge Center](https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/).

La policy SQS viene utilizzata nella coda Amazon SQS per consentire all'argomento SNS creato di recapitare il messaggio alla coda. Senza la policy SQS, l'accesso verrà negato. Per ulteriori informazioni, consulta la documentazione di [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html#SendMessageToSQS.sqs.permissions).

# Scomponi i monoliti in microservizi utilizzando CQRS e l'event sourcing
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing"></a>

*Rodolfo Junior Cerrada, Dmitry Gulin e Tabby Ward, Amazon Web Services*

## Riepilogo
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-summary"></a>

Questo modello combina due modelli, utilizzando sia il pattern CQRS (Command Query Responsibility Separation) che il pattern di approvvigionamento degli eventi. Il pattern CQRS separa le responsabilità dei modelli di comando e di interrogazione. Il pattern di approvvigionamento degli eventi sfrutta la comunicazione asincrona basata sugli eventi per migliorare l'esperienza utente complessiva.

Puoi utilizzare i servizi CQRS e Amazon Web Services (AWS) per mantenere e scalare ogni modello di dati in modo indipendente, rifattorizzando al contempo la tua applicazione monolitica in un'architettura di microservizi. È quindi possibile utilizzare il pattern di approvvigionamento degli eventi per sincronizzare i dati dal database dei comandi al database delle query.

Questo modello utilizza un codice di esempio che include un file di soluzione (\$1.sln) che è possibile aprire utilizzando l'ultima versione di Visual Studio. L'esempio contiene il codice API Reward per mostrare come funzionano CQRS e l'event sourcing nelle applicazioni serverless e tradizionali o locali di AWS.

[Per ulteriori informazioni su CQRS e l'approvvigionamento di eventi, consulta la sezione Informazioni aggiuntive.](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional)

## Prerequisiti e limitazioni
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Amazon CloudWatch
+ Tabelle Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Chiave di accesso e chiave segreta di AWS Identity and Access Management (IAM); per ulteriori informazioni, guarda il video nella sezione *Risorse correlate*
+ AWS Lambda
+ Familiarità con Visual Studio
+ *Familiarità con AWS Toolkit for Visual Studio; per ulteriori informazioni, guarda *il video dimostrativo di AWS Toolkit for Visual Studio* nella sezione Risorse correlate*

**Versioni del prodotto**
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/).
+ [AWS Toolkit per Visual Studio 2019](https://aws.amazon.com/visualstudio/).
+ .NET Core 3.1. Questo componente è un'opzione nell'installazione di Visual Studio. Per includere.NET Core durante l'installazione, seleziona **lo sviluppo multipiattaforma NET Core**.

**Limitazioni**
+ Il codice di esempio per un'applicazione locale tradizionale (API Web ASP.NET Core e oggetti di accesso ai dati) non viene fornito con un database. Tuttavia, viene fornito con l'oggetto `CustomerData` in memoria, che funge da database fittizio. Il codice fornito è sufficiente per testare il modello.

## Architecture
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-architecture"></a>

**Stack di tecnologia di origine**
+ Progetto API Web ASP.NET Core
+ Server Web IIS
+ Oggetto di accesso ai dati
+ Modello CRUD

**Architettura di origine**

Nell'architettura di origine, il modello CRUD contiene interfacce di comando e di interrogazione in un'unica applicazione. Per un esempio di codice, vedere `CustomerDAO.cs` (allegato).

![\[Connessioni tra applicazione, interfaccia di servizio, modello CRUD del cliente e database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1cd3a84c-12c7-4306-99aa-23f2c53d3cd3.png)


**Stack tecnologico Target**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ AWS Lambda
+ (Opzionale) Amazon API Gateway
+ (Opzionale) Amazon Simple Notification Service (Amazon SNS)

**Architettura Target**

Nell'architettura di destinazione, le interfacce di comando e di interrogazione sono separate. L'architettura mostrata nel diagramma seguente può essere estesa con API Gateway e Amazon SNS. Per ulteriori informazioni, consulta la sezione [Informazioni aggiuntive](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

![\[Connessione delle applicazioni con microservizi Customer Command e Customer Query senza server.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1c665697-e3ac-4ef4-98d0-86c2cbf164c1.png)


1. Le funzioni Command Lambda eseguono operazioni di scrittura, come creare, aggiornare o eliminare, sul database.

1. Le funzioni Query Lambda eseguono operazioni di lettura, come get o select, sul database.

1. Questa funzione Lambda elabora i flussi DynamoDB dal database Command e aggiorna il database Query per le modifiche.

## Tools (Strumenti)
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-tools"></a>

**Strumenti**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) — Amazon DynamoDB è un servizio di database NoSQL completamente gestito che offre prestazioni veloci e prevedibili con una scalabilità perfetta.
+ [Amazon DynamoDB Streams — DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) acquisisce una sequenza ordinata nel tempo di modifiche a livello di elemento in qualsiasi tabella DynamoDB. Quindi memorizza queste informazioni in un registro per un massimo di 24 ore. La crittografia a riposo crittografa i dati in DynamoDB Streams.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): AWS Lambda è un servizio di elaborazione che supporta l'esecuzione di codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. Verrà addebitato soltanto il tempo di calcolo consumato e non verrà addebitato alcun costo quando il codice non è in esecuzione.
+ [Console di gestione AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/learn-whats-new.html): la Console di gestione AWS è un'applicazione Web che comprende un'ampia raccolta di console di servizio per la gestione dei servizi AWS.
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/) — Visual Studio 2019 è un ambiente di sviluppo integrato (IDE). La Community Edition è gratuita per i contributori open source. In questo modello, utilizzerai Visual Studio 2019 Community Edition per aprire, compilare ed eseguire codice di esempio. Solo per la visualizzazione, puoi utilizzare qualsiasi editor di testo o [Visual Studio Code.](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)
+ [AWS Toolkit for Visual](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) Studio — AWS Toolkit for Visual Studio è un plug-in per l'IDE di Visual Studio. AWS Toolkit for Visual Studio semplifica lo sviluppo, il debug e la distribuzione di applicazioni.NET che utilizzano i servizi AWS.

**Codice**

Il codice di esempio è allegato. Per istruzioni sulla distribuzione del codice di esempio, consulta la sezione *Epics*.

## Epiche
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-epics"></a>

### Apri e crea la soluzione
<a name="open-and-build-the-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aprire la soluzione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app | 
| Crea la soluzione. | Apri il menu contestuale (fai clic con il pulsante destro del mouse) per la soluzione, quindi scegli **Crea soluzione**. Questo creerà e compilerà tutti i progetti della soluzione. Dovrebbe essere compilato correttamente.Visual Studio Solution Explorer dovrebbe mostrare la struttura delle cartelle.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app | 

### Crea le tabelle DynamoDB
<a name="build-the-dynamodb-tables"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Fornire le credenziali. | Se non disponi ancora di una chiave di accesso, guarda il video nella sezione *Risorse correlate*.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app, ingegnere dei dati, DBA | 
| Compilare il progetto. | **Per creare il progetto, apri il menu contestuale (fai clic con il pulsante destro del mouse) per il progetto **aws.apg.cqrses.BUILD**, quindi scegli Build.** | Sviluppatore di app, ingegnere dei dati, DBA | 
| Crea e popola le tabelle. | ****Per creare le tabelle e popolarle con i dati iniziali, apri il menu contestuale (fai clic con il pulsante destro del mouse) per il progetto **aws.apg.cqrses.Build**, quindi scegli Debug, Avvia nuova istanza.**** | Sviluppatore di app, ingegnere dei dati, DBA | 
| Verifica la struttura della tabella e i dati. | Per verificare, accedi ad **AWS Explorer** ed espandi **Amazon DynamoDB**. Dovrebbe visualizzare le tabelle. Apri ogni tabella per visualizzare i dati di esempio. | Sviluppatore di app, ingegnere dei dati, DBA | 

### Esegui test locali
<a name="run-local-tests"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Costruisci il progetto CQRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app, tecnico di test | 
| Crea il progetto di event-sourcing. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app, tecnico di test | 
| Esegui i test. | Per eseguire tutti i test, scegli **Visualizza**, **Test Explorer**, quindi scegli **Esegui tutti i test in visualizzazione**. Tutti i test devono essere superati, come indicato da un'icona verde con un segno di spunta.  | Sviluppatore di app, tecnico di test | 

### Pubblica le funzioni CQRS Lambda in AWS
<a name="publish-the-cqrs-lambda-functions-to-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pubblica la prima funzione Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app, DevOps ingegnere | 
| Verifica il caricamento della funzione. | (Facoltativo) Puoi verificare che la funzione sia stata caricata correttamente accedendo ad AWS Explorer ed espandendo **AWS** Lambda. Per aprire la finestra di test, scegliete la funzione Lambda (doppio clic). | Sviluppatore di app, ingegnere DevOps  | 
| Prova la funzione Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Tutti i progetti CQRS Lambda si trovano nelle cartelle ` CQRS AWS Serverless\CQRS\Command Microservice` e `CQRS AWS Serverless\CQRS\Command Microservice` solution. Per la directory e i progetti della soluzione, vedete **Directory del codice sorgente** nella sezione [Informazioni aggiuntive](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Sviluppatore di app, DevOps ingegnere | 
| Pubblica le funzioni rimanenti. | Ripetete i passaggi precedenti per i seguenti progetti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app, DevOps ingegnere | 

### Configura la funzione Lambda come ascoltatore di eventi
<a name="set-up-the-lambda-function-as-an-event-listener"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pubblica i gestori di eventi Customer and Reward Lambda. | Per pubblicare ogni gestore di eventi, segui i passaggi dell'epopea precedente.I progetti si trovano nelle cartelle `CQRS AWS Serverless\Event Source\Customer Event` e `CQRS AWS Serverless\Event Source\Reward Event` solution. Per ulteriori informazioni, consulta la *directory del codice sorgente* nella sezione [Informazioni aggiuntive](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | Sviluppatore di app | 
| Collega il listener di eventi Lambda event-sourcing. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Dopo che il listener è stato collegato correttamente alla tabella DynamoDB, verrà visualizzato nella pagina di progettazione Lambda. | Sviluppatore di app | 
| Pubblica e allega la funzione EventSourceReward Lambda. | Per pubblicare e allegare la funzione `EventSourceReward` Lambda, ripeti i passaggi delle due storie precedenti, selezionando **cqrses-reward-cmd**dall'elenco a discesa della tabella **DynamoDB**. | Sviluppatore di app | 

### Testa e convalida i flussi DynamoDB e il trigger Lambda
<a name="test-and-validate-the-dynamodb-streams-and-lambda-trigger"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova lo stream e il trigger Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app | 
| Convalida utilizzando la tabella delle query di ricompensa di DynamodDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app | 
| Convalida, utilizzando i registri. CloudWatch  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | Sviluppatore di app | 
| Convalida il trigger. EventSourceCustomer  | Per convalidare il `EventSourceCustomer` trigger, ripeti i passaggi di questa epopea, utilizzando la tabella dei clienti e i registri relativi al `EventSourceCustomer` trigger. CloudWatch  | Sviluppatore di app | 

## Risorse correlate
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-resources"></a>

**Riferimenti**
+ [Download di Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/)
+ [Scarica AWS Toolkit per Visual Studio](https://aws.amazon.com/visualstudio/)
+ [Guida per l'utente di AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)
+ [Serverless su AWS](https://aws.amazon.com/serverless/)
+ [Casi d'uso e modelli di progettazione di DynamoDB](https://aws.amazon.com/blogs/database/dynamodb-streams-use-cases-and-design-patterns/)
+ [Martin Fowler CQRS](https://martinfowler.com/bliki/CQRS.html)
+ [Fornitura di eventi Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)

**Video**
+ [Demo di AWS Toolkit per Visual Studio](https://www.youtube.com/watch?v=B190tcu1ERk)
+ [Come posso creare un ID di chiave di accesso per un nuovo utente IAM?](https://www.youtube.com/watch?v=665RYobRJDY)

## Informazioni aggiuntive
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional"></a>

**CQRS e sourcing di eventi**

*CQRS*

Il pattern CQRS separa un singolo modello di operazioni concettuali, ad esempio un modello CRUD (create, read, update, delete) a oggetti di accesso ai dati, in modelli di operazioni di comando e interrogazione. Il modello di comando si riferisce a qualsiasi operazione, come la creazione, l'aggiornamento o l'eliminazione, che modifica lo stato. Il modello di interrogazione si riferisce a qualsiasi operazione che restituisce un valore.

![\[Architettura con interfaccia di servizio, modello CRUD e database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/3f64756d-681e-4f0e-8034-746263d857b2.png)


1. Il modello Customer CRUD include le seguenti interfacce:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`

Man mano che le tue esigenze diventano più complesse, puoi passare da questo approccio a modello singolo. CQRS utilizza un modello di comandi e un modello di interrogazione per separare la responsabilità della scrittura e della lettura dei dati. In questo modo, i dati possono essere mantenuti e gestiti in modo indipendente. Con una chiara separazione delle responsabilità, i miglioramenti apportati a ciascun modello non influiscono sull'altro. Questa separazione migliora la manutenzione e le prestazioni e riduce la complessità dell'applicazione man mano che cresce.

![\[L'applicazione si è divisa in modelli di comando e query, condividendo un unico database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/12db023c-eb81-4c27-bbb9-b085b13176ae.png)


 

1. Interfacce nel modello Customer Command:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`

1. Interfacce nel modello Customer Query:
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`
   + `GetMonthlyStatement()`

Per un esempio di codice, vedi *Directory del codice sorgente*.

Il pattern CQRS quindi disaccoppia il database. Questo disaccoppiamento porta alla totale indipendenza di ogni servizio, che è l'ingrediente principale dell'architettura dei microservizi.

![\[Database separati per modelli di comando e interrogazione.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/016dbfa8-3bd8-42ee-afa1-38a98986c7d5.png)


 Utilizzando CQRS nel cloud AWS, puoi ottimizzare ulteriormente ogni servizio. Ad esempio, puoi impostare diverse impostazioni di elaborazione o scegliere tra un microservizio serverless o basato su container. Puoi sostituire la memorizzazione nella cache locale con Amazon. ElastiCache Se disponi di una publish/subscribe messaggistica locale, puoi sostituirla con Amazon Simple Notification Service (Amazon SNS). Inoltre, puoi sfruttare pay-as-you-go i prezzi e l'ampia gamma di servizi AWS che paghi solo per ciò che usi.

CQRS include i seguenti vantaggi:
+ Scalabilità indipendente: ogni modello può avere la propria strategia di scalabilità adattata per soddisfare i requisiti e la domanda del servizio. Analogamente alle applicazioni ad alte prestazioni, la separazione di lettura e scrittura consente al modello di scalare in modo indipendente per soddisfare ogni esigenza. È inoltre possibile aggiungere o ridurre le risorse di elaborazione per soddisfare la richiesta di scalabilità di un modello senza influire sull'altro.
+ Manutenzione indipendente: la separazione dei modelli di query e comando migliora la manutenibilità dei modelli. È possibile apportare modifiche e miglioramenti al codice di un modello senza influire sull'altro.
+ Sicurezza: è più semplice applicare le autorizzazioni e le politiche a modelli separati per la lettura e la scrittura.
+ Letture ottimizzate: è possibile definire uno schema ottimizzato per le query. Ad esempio, è possibile definire uno schema per i dati aggregati e uno schema separato per le tabelle dei fatti.
+ Integrazione: CQRS si adatta bene ai modelli di programmazione basati su eventi.
+ Complessità gestita: la separazione in modelli di query e comandi è adatta a domini complessi.

Quando utilizzate CQRS, tenete presente le seguenti avvertenze:
+ Il pattern CQRS si applica solo a una parte specifica di un'applicazione e non all'intera applicazione. Se implementato in un dominio che non corrisponde al modello, può ridurre la produttività, aumentare i rischi e introdurre complessità.
+ Il pattern funziona meglio per i modelli utilizzati di frequente che presentano uno squilibrio nelle operazioni di lettura e scrittura.
+ Per le applicazioni che richiedono molta lettura, come i report di grandi dimensioni che richiedono tempo per l'elaborazione, CQRS offre la possibilità di selezionare il database giusto e creare uno schema per archiviare i dati aggregati. Ciò migliora il tempo di risposta di lettura e visualizzazione del report elaborando i dati del report una sola volta e scaricandoli nella tabella aggregata.
+ Per le applicazioni che richiedono molta scrittura, è possibile configurare il database per le operazioni di scrittura e consentire al comando microservice di scalare in modo indipendente quando la richiesta di scrittura aumenta. Per esempi, consulta and microservices. `AWS.APG.CQRSES.CommandRedeemRewardLambda` `AWS.APG.CQRSES.CommandAddRewardLambda`

*Approvvigionamento di eventi*

Il passaggio successivo consiste nell'utilizzare l'origine degli eventi per sincronizzare il database delle query quando viene eseguito un comando. Ad esempio, considerate i seguenti eventi:
+ Viene aggiunto un punto premio cliente che richiede l'aggiornamento dei punti premio totali o aggregati del cliente nel database delle query.
+ Il cognome di un cliente viene aggiornato nel database dei comandi, il che richiede l'aggiornamento delle informazioni sostitutive sul cliente contenute nel database delle query.

Nel modello CRUD tradizionale, si garantisce la coerenza dei dati bloccandoli fino al termine di una transazione. Nell'event sourcing, i dati vengono sincronizzati mediante la pubblicazione di una serie di eventi che verranno utilizzati da un abbonato per aggiornare i rispettivi dati.

Il modello di sourcing degli eventi garantisce e registra una serie completa di azioni intraprese sui dati e le pubblica attraverso una sequenza di eventi. Questi eventi rappresentano un insieme di modifiche ai dati che i sottoscrittori di quell'evento devono elaborare per mantenere aggiornato il proprio record. Questi eventi vengono utilizzati dal sottoscrittore, sincronizzando i dati nel database del sottoscrittore. In questo caso, si tratta del database delle interrogazioni.

Il diagramma seguente mostra l'event sourcing utilizzato con CQRS su AWS.

![\[Architettura di microservizi per il CQRS e modelli di approvvigionamento degli eventi che utilizzano i servizi serverless AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/cc9bc84a-60b4-4459-9a5c-2334c69dbb4e.png)


1. Le funzioni Command Lambda eseguono operazioni di scrittura, come creare, aggiornare o eliminare, sul database.

1. Le funzioni Query Lambda eseguono operazioni di lettura, come get o select, sul database.

1. Questa funzione Lambda elabora i flussi DynamoDB dal database Command e aggiorna il database Query per le modifiche. Puoi utilizzare questa funzione anche per pubblicare un messaggio su Amazon SNS in modo che i suoi abbonati possano elaborare i dati.

1. (Facoltativo) L'abbonato all'evento Lambda elabora il messaggio pubblicato da Amazon SNS e aggiorna il database Query.

1. (Facoltativo) Amazon SNS invia una notifica e-mail dell'operazione di scrittura.

Su AWS, il database delle query può essere sincronizzato tramite DynamoDB Streams. DynamoDB acquisisce una sequenza ordinata nel tempo di modifiche a livello di elemento in una tabella DynamoDB quasi in tempo reale e archivia le informazioni in modo duraturo entro 24 ore.

L'attivazione di DynamoDB Streams consente al database di pubblicare una sequenza di eventi che rende possibile lo schema di sourcing degli eventi. Il pattern di origine degli eventi aggiunge il sottoscrittore dell'evento. L'applicazione Event Subscriber utilizza l'evento e lo elabora in base alla responsabilità del sottoscrittore. Nel diagramma precedente, il sottoscrittore dell'evento invia le modifiche al database Query DynamoDB per mantenere i dati sincronizzati. L'uso di Amazon SNS, del broker di messaggi e dell'applicazione Event Subscriber mantiene l'architettura disaccoppiata.

L'event sourcing include i seguenti vantaggi:
+ Coerenza per i dati transazionali
+ Una pista di controllo e una cronologia delle azioni affidabili, che possono essere utilizzate per monitorare le azioni intraprese nei dati
+ Consente alle applicazioni distribuite come i microservizi di sincronizzare i dati in tutto l'ambiente
+ Pubblicazione affidabile degli eventi ogni volta che lo stato cambia
+ Ricostruzione o riproduzione degli stati passati
+ Entità liberamente accoppiate che scambiano eventi per la migrazione da un'applicazione monolitica ai microservizi
+ Riduzione dei conflitti causati dagli aggiornamenti simultanei; l'event sourcing evita la necessità di aggiornare gli oggetti direttamente nell'archivio dati
+ Flessibilità ed estensibilità grazie al disaccoppiamento tra attività ed evento
+ Aggiornamenti di sistema esterni
+ Gestione di più attività in un unico evento

Quando utilizzi il sourcing degli eventi, tieni presente le seguenti avvertenze:
+ Poiché si verifica un certo ritardo nell'aggiornamento dei dati tra i database degli abbonati di origine, l'unico modo per annullare una modifica consiste nell'aggiungere un evento di compensazione all'archivio eventi.
+ L'implementazione dell'event sourcing presenta una curva di apprendimento a causa del suo diverso stile di programmazione.

**Dati di test**

Utilizza i seguenti dati di test per testare la funzione Lambda dopo una corretta implementazione.

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

Immettete l'ID cliente come dati della richiesta. Ad esempio, se l'ID cliente è 151, inserisci 151 come dati della richiesta.

```
151
```

**QueryCustomerList**

Questo campo è vuoto. Quando viene richiamato, restituirà tutti i clienti.

**CommandAddReward**

Ciò aggiungerà 40 punti al cliente con ID 1 (Richard).

```
{
  "Id":10101,
  "CustomerId":1,
  "Points":40
}
```

**CommandRedeemReward**

In questo modo verranno detratti 15 punti dal cliente con ID 1 (Richard).

```
{
  "Id":10110,
  "CustomerId":1,
  "Points":15
}
```

**QueryReward**

Inserisci l'ID del cliente. Ad esempio, inserisci 1 per Richard, 2 per Arnav e 3 per Shirley.

```
2 
```

**Directory del codice sorgente**

Usa la tabella seguente come guida alla struttura di directory della soluzione Visual Studio. 

*Directory della soluzione CQRS On-Premises Code Sample*

![\[Directory di soluzioni con servizi di comando e interrogazione ampliata.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/4811c2c0-643b-410f-bb87-0b86ec5e194c.png)


**Modello CRUD del cliente**

Esempio di codice locale CQRS\$1 Modello CRUD\$1 Progetto AWS.APG.CQRSES.DAL

**Versione CQRS del modello Customer CRUD**
+ Comando cliente: progetto `CQRS On-Premises Code Sample\CQRS Model\Command Microservice\AWS.APG.CQRSES.Command`
+ Richiesta del cliente: `CQRS On-Premises Code Sample\CQRS Model\Query Microservice\AWS.APG.CQRSES.Query` progetto

**Microservizi Command and Query**

Il microservizio Command si trova nella cartella della soluzione: `CQRS On-Premises Code Sample\CQRS Model\Command Microservice`
+ `AWS.APG.CQRSES.CommandMicroservice`Il progetto ASP.NET Core API funge da punto di ingresso in cui i consumatori interagiscono con il servizio.
+ `AWS.APG.CQRSES.Command`Il progetto.NET Core è un oggetto che ospita oggetti e interfacce relativi ai comandi.

Il microservizio di interrogazione si trova nella cartella della soluzione: `CQRS On-Premises Code Sample\CQRS Model\Query Microservice`
+ `AWS.APG.CQRSES.QueryMicroservice`Il progetto ASP.NET Core API funge da punto di ingresso in cui i consumatori interagiscono con il servizio.
+ `AWS.APG.CQRSES.Query`Il progetto.NET Core è un oggetto che ospita oggetti e interfacce relativi alle query.

*Directory di soluzioni di codice serverless CQRS AWS*

![\[Directory di soluzioni che mostra sia i microservizi che la fonte degli eventi espansa.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/23f8655c-95ad-422c-b20a-e29dc145e995.png)


 

Questo codice è la versione AWS del codice locale che utilizza i servizi serverless AWS.

In C\$1 .NET Core, ogni funzione Lambda è rappresentata da un progetto.NET Core. Nel codice di esempio di questo pattern, esiste un progetto separato per ogni interfaccia nei modelli di comando e query.

**CQRS che utilizza i servizi AWS**

Puoi trovare la directory della soluzione principale per CQRS che utilizza i servizi serverless AWS nella `CQRS AWS Serverless\CQRS` cartella. L'esempio include due modelli: Customer e Reward.

Le funzioni di comando Lambda per Customer e Reward si trovano nelle cartelle `CQRS\Command Microservice\Customer` e`CQRS\Command Microservice\Reward`. Contengono i seguenti progetti Lambda:
+ Comando cliente: `CommandCreateLambda``CommandDeleteLambda`, e `CommandUpdateLambda`
+ Comando di ricompensa: `CommandAddRewardLambda` e `CommandRedeemRewardLambda`

Le funzioni di interrogazione Lambda per Customer e Reward si trovano nelle cartelle `CQRS\Query Microservice\Customer` and`CQRS\QueryMicroservice\Reward`. Contengono i progetti `QueryCustomerListLambda` e `QueryRewardLambda` Lambda.

**Progetto di test CQRS**

Il progetto di test si trova nella `CQRS\Tests` cartella. Questo progetto contiene uno script di test per automatizzare il test delle funzioni CQRS Lambda.

**Approvvigionamento di eventi tramite i servizi AWS**

I seguenti gestori di eventi Lambda vengono avviati dai flussi DynamoDB Customer e Reward per elaborare e sincronizzare i dati nelle tabelle di query.
+ La funzione `EventSourceCustomer` Lambda è mappata sul flusso `cqrses-customer-cmd` DynamoDB della tabella Customer ().
+ La funzione `EventSourceReward` Lambda è mappata sul flusso `cqrses-reward-cmd` DynamoDB della tabella Reward ().

## Allegati
<a name="attachments-9f1bc700-def4-4201-bb2d-f1fa27404f15"></a>

[Per accedere a contenuti aggiuntivi associati a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/9f1bc700-def4-4201-bb2d-f1fa27404f15/attachments/attachment.zip)

# Altri modelli
<a name="modernization-more-patterns-pattern-list"></a>

**Topics**
+ [Accedi alle applicazioni container in modo privato su Amazon EKS utilizzando AWS PrivateLink e un Network Load Balancer](access-container-applications-privately-on-amazon-eks-using-aws-privatelink-and-a-network-load-balancer.md)
+ [Automatizza l'aggiunta o l'aggiornamento delle voci di registro di Windows utilizzando AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.md)
+ [Automatizza il failover e il failback tra regioni utilizzando DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Crea e distribuisci automaticamente un'applicazione Java su Amazon EKS utilizzando una pipeline CI/CD](automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline.md)
+ [Crea automaticamente CI/CD pipeline e cluster Amazon ECS per microservizi utilizzando AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.md)
+ [Esegui il backup e l'archiviazione dei dati del mainframe su Amazon S3 utilizzando BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Create un Micro Focus Enterprise Server PAC con Amazon EC2 Auto Scaling e Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Crea una rete dati aziendale con Amazon DataZone e AWS CDK AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converti e decomprimi i dati EBCDIC in ASCII su AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Convertite file di dati mainframe con layout di registrazione complessi utilizzando Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Crea un portale per micro-frontend utilizzando Angular e AWS Amplify Module Federation](create-amplify-micro-frontend-portal.md)
+ [Distribuisci contenitori utilizzando Elastic Beanstalk](deploy-containers-by-using-elastic-beanstalk.md)
+ [Emula Oracle DR utilizzando un database globale Aurora compatibile con PostgreSQL](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Genera approfondimenti sui z/OS dati Db2 utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Identifica automaticamente le immagini duplicate dei container durante la migrazione a un repository Amazon ECR](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Implementa la diagnostica e la risoluzione dei problemi di Kubernetes basate sull'intelligenza artificiale con K8SGPT e l'integrazione con Amazon Bedrock](implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.md)
+ [Implementa l'autenticazione basata su Microsoft Entra ID in un'applicazione mainframe modernizzata AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Implementa il controllo delle versioni delle API basato sul percorso utilizzando domini personalizzati in Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.md)
+ [Migrazione incrementale da Amazon RDS for Oracle ad Amazon RDS for PostgreSQL utilizzando Oracle SQL Developer e AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Integra il controller universale Stonebranch con la modernizzazione del mainframe AWS](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Gestisci i prodotti AWS Service Catalog in più account AWS e regioni AWS](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Esegui la migrazione di un account AWS membro da a AWS Organizations AWS Control Tower](migrate-an-aws-member-account-from-aws-organizations-to-aws-control-tower.md)
+ [Esegui la migrazione e la replica di file VSAM su Amazon RDS o Amazon MSK utilizzando Connect from Precisly](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Esegui la migrazione da SAP ASE ad Amazon RDS per SQL Server utilizzando AWS DMS](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Esegui la migrazione di tabelle esterne Oracle verso Amazon Aurora, compatibile con PostgreSQL](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernizza e implementa le applicazioni mainframe utilizzando e Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernizza i carichi di lavoro di stampa in batch su mainframe AWS utilizzando Rocket Enterprise Server e LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Sposta i file mainframe direttamente su Amazon S3 utilizzando Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Ottimizza le implementazioni serverless multi-account utilizzando i flussi di lavoro e Actions AWS CDK GitHub](optimize-multi-account-serverless-deployments.md)
+ [Ottimizza le prestazioni della tua applicazione modernizzata AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Automatizza le blue/green implementazioni dei database globali di Amazon Aurora utilizzando i principi IaC](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Replica i database mainframe su AWS utilizzando Precisly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)
+ [Esegui attività Amazon ECS su Amazon WorkSpaces con Amazon ECS Anywhere](run-amazon-ecs-tasks-on-amazon-workspaces-with-amazon-ecs-anywhere.md)
+ [Invia dati di telemetria da AWS Lambda a OpenSearch per analisi e visualizzazione in tempo reale](send-telemetry-data-from-lambda-to-opensearch-for-analytics-visualization.md)
+ [Imposta il rilevamento della CloudFormation deriva in un'organizzazione multiregionale e con più account](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Struttura un progetto Python in architettura esagonale utilizzando AWS Lambda](structure-a-python-project-in-hexagonal-architecture-using-aws-lambda.md)
+ [AWS Infrastruttura di test utilizzando LocalStack e Terraform Tests](test-aws-infra-localstack-terraform.md)
+ [Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform](transform-easytrieve-modern-languages.md)
+ [Aggiornamento dei cluster SAP Pacemaker da a ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Usa Amazon Q Developer come assistente di programmazione per aumentare la tua produttività](use-q-developer-as-coding-assistant-to-increase-productivity.md)
+ [Convalida il codice Account Factory for Terraform (AFT) localmente](validate-account-factory-for-terraform-aft-code-locally.md)

# Mainframe
<a name="mainframe-pattern-list"></a>

**Topics**
+ [Accesso Servizi AWS da IBM z/OS installando AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Esegui il backup e l'archiviazione dei dati del mainframe su Amazon S3 utilizzando BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Crea programmi COBOL Db2 usando e Modernizzazione del mainframe AWS AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Create un Micro Focus Enterprise Server PAC con Amazon EC2 Auto Scaling e Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Crea un visualizzatore di file mainframe avanzato nel cloud AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converti e decomprimi i dati EBCDIC in ASCII su AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Convertite file di dati mainframe con layout di registrazione complessi utilizzando Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Genera approfondimenti sui z/OS dati Db2 utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implementa l'autenticazione basata su Microsoft Entra ID in un'applicazione mainframe modernizzata AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integra il controller universale Stonebranch con la modernizzazione del mainframe AWS](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Esegui la migrazione e la replica di file VSAM su Amazon RDS o Amazon MSK utilizzando Connect from Precisly](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernizza e implementa le applicazioni mainframe utilizzando e Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernizza i carichi di lavoro di stampa in batch su mainframe AWS utilizzando Rocket Enterprise Server e LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernizzazione del mainframe: attiva DevOps AWS con Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Sposta i file mainframe direttamente su Amazon S3 utilizzando Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Ottimizza le prestazioni della tua applicazione modernizzata AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Proteggi e semplifica l'accesso degli utenti in un database federativo Db2 su AWS utilizzando contesti affidabili](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Trasferisci z/OS dati Db2 su larga scala su Amazon S3 in file CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform](transform-easytrieve-modern-languages.md)
+ [Altri modelli](mainframe-more-patterns-pattern-list.md)

# Accesso Servizi AWS da IBM z/OS installando AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vitor Pereira e Phil de Valence, Amazon Web Services*

## Riepilogo
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

The [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) è uno strumento open source per la gestione di più AWS servizi utilizzando i comandi in una shell a riga di comando. Con una configurazione minima, è possibile eseguire comandi da sessioni a riga di comando come il prompt dei comandi, il terminale e la shell bash per implementare funzionalità equivalenti a quelle fornite dal browser. Console di gestione AWS

Tutte le funzioni di amministrazione, gestione e accesso dell' AWS infrastruttura come servizio (IaaS) Console di gestione AWS sono disponibili nell' AWS API e. AWS CLIÈ possibile installarle AWS CLI su un z/OS mainframe IBM per accedere, gestire e interagire Servizi AWS direttamente da z/OS. AWS CLI Consente agli utenti e alle applicazioni di eseguire varie attività, come:
+ Trasferimento di file o set di dati tra lo storage di oggetti z/OS Amazon Simple Storage Service (Amazon S3) e visualizzazione del contenuto dei bucket
+ Avvio e arresto di AWS risorse diverse; ad esempio, avvio di un processo in batch in un ambiente Modernizzazione del mainframe AWS 
+ Chiamata di una AWS Lambda funzione per implementare una logica aziendale comune
+ Integrazione con servizi di intelligenza artificiale e apprendimento automatico (AI/ML) e analisi

Questo modello descrive come installare, configurare e utilizzare AWS CLI su z/OS. You can install it globally, so it's available to all z/OS utenti o a livello di utente. Il modello descrive anche come utilizzarlo AWS CLI in una sessione interattiva a riga di comando di z/OS Unix System Services (USS) o come processo batch.

## Prerequisiti e limitazioni
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Prerequisiti**
+ **Comunicazione di rete da a z/OS AWS**

  Per impostazione predefinita, AWS CLI invia le richieste Servizi AWS utilizzando HTTPS sulla porta TCP 443. Per utilizzare AWS CLI correttamente, è necessario essere in grado di effettuare connessioni in uscita sulla porta TCP 443. È possibile utilizzare uno qualsiasi dei seguenti comandi z/OS USS (alcuni di questi potrebbero non essere installati nell'ambiente in uso) per testare la connettività di rete da a: z/OS 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 credenziali**

  Per comunicare con Cloud AWS i servizi di z/OS, è AWS CLI necessario configurare alcune credenziali con privilegi di accesso alla destinazione. Account AWS Per i comandi programmatici AWS, è possibile utilizzare le chiavi di accesso, che consistono in un ID della chiave di accesso e una chiave di accesso segreta. Se non si dispone di chiavi di accesso, sarà possibile crearle dalla Console di gestione AWS. È consigliabile non utilizzare le chiavi di accesso dell'utente Account AWS root per alcuna attività a meno che non sia richiesto l'utente root. [Create invece un nuovo utente IAM amministratore](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e [preparatevi a**** ottenere le autorizzazioni con privilegi minimi per](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) configurare l'utente con le chiavi di accesso. Dopo aver creato l'utente, puoi [creare un ID della chiave di accesso e una chiave di accesso segreta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) per questo utente.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python per z/OS**

   AWS CLI Richiede Python 3.8 o successivo. IBM ha consentito a Python di funzionare [con IBM Open Enterprise z/OS Python](https://www.ibm.com/products/open-enterprise-python-zos) for z/OS. [IBM Open Enterprise Python è disponibile gratuitamente tramite Shopz SMP/E oppure è possibile scaricare il file PAX dal sito Web IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Per istruzioni, consulta la [documentazione di installazione e configurazione](https://www.ibm.com/docs/en/python-zos) per IBM Open Enterprise Python for z/OS.

**Limitazioni**
+ **Le istruzioni di installazione fornite in questo modello sono applicabili solo alla AWS CLI versione 1.** L'ultima versione di AWS CLI è la versione 2. Tuttavia, questo modello utilizza la versione precedente perché i metodi di installazione sono diversi per la versione 2 e gli eseguibili binari disponibili per la versione 2 non sono compatibili con il z/OS sistema.

**Versioni del prodotto**
+ AWS CLI versione 1
+ Python 3.8 o versioni successive

## Architecture
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**stack tecnologico**
+ Mainframe con z/OS
+ Servizi di sistema z/OS UNIX per mainframe (USS)
+ Mainframe Open MVS (OMVS): z/OS interfaccia di comando dell'ambiente shell UNIX
+ Disco mainframe, ad esempio un dispositivo di archiviazione ad accesso diretto (DASD)
+ AWS CLI

**Architettura di destinazione**

Il diagramma seguente mostra un' AWS CLI implementazione su IBM z/OS. È possibile richiamarlo AWS CLI da una sessione utente interattiva, come SSH, e da sessioni telnet. È inoltre possibile richiamarlo da un processo batch utilizzando il linguaggio di controllo del lavoro (JCL) o da qualsiasi programma in grado di chiamare un comando della shell Unix. z/OS 

![\[CLI AWS su un z/OS mainframe IBM che accede ai servizi AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


 AWS CLI Comunica con gli Servizio AWS endpoint tramite una rete. TCP/IP Questa connessione di rete può avvenire tramite Internet o tramite una AWS Direct Connect connessione privata dal data center del cliente ai Cloud AWS data center. La comunicazione viene autenticata con AWS credenziali e crittografata. 

**Automazione e scalabilità**

Puoi esplorare le funzionalità di an Servizio AWS with the AWS CLI e sviluppare script di shell USS per gestire AWS le tue risorse da z/OS. È inoltre possibile eseguire AWS CLI comandi e script di shell dall'ambiente z/OS batch e automatizzare i processi in batch per eseguirli secondo una pianificazione specifica mediante l'integrazione con gli scheduler del mainframe. AWS CLI i comandi o gli script possono essere codificati all'interno di parametri (PARMs) e procedure (PROCs) e possono essere scalati seguendo l'approccio standard di chiamata al PARM o al PROC da diversi processi batch con parametri diversi.

## Tools (Strumenti)
<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) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.

## Best practice
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Per motivi di sicurezza, limita le autorizzazioni di accesso alla directory USS in cui sono memorizzati i dettagli della chiave di AWS accesso. Consenti l'accesso solo agli utenti o ai programmi che utilizzano il AWS CLI.
+ Non utilizzare le chiavi di accesso utente Account AWS root per alcuna attività. [Crea invece un nuovo utente IAM amministratore](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e configuralo con le chiavi di accesso.


| 
| 
| Gli utenti IAM dispongono di credenziali a lungo termine che presentano un rischio per la sicurezza. Per ridurre questo rischio, si consiglia di fornire a questi utenti solo le autorizzazioni necessarie per eseguire l'attività e di rimuoverli quando non sono più necessari. | 
| --- |

## Epiche
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### Installa AWS CLI la versione 1 su z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Python 3.8 o versione successiva. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore del mainframe z/OS  | 
| Imposta le variabili di ambiente USS. | Aggiungi variabili di ambiente al profilo. È possibile aggiungerle al `/u/cliuser/.profile` file per un singolo utente (`cliuser`) o al `/etc/profile` file per tutti gli utenti.Questo modello presuppone che Python sia stato installato nella `/u/awscli/python` directory. Se la directory di installazione è diversa, aggiorna il codice di conseguenza.<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> | Amministratore del mainframe z/OS  | 
| Prova l'installazione di Python. | Esegui il comando **python**:<pre>python --version</pre>L'output dovrebbe confermare che Python 3.8 o versione successiva è installato correttamente. | Amministratore del mainframe z/OS  | 
| Verifica o installa **pip**. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore del mainframe z/OS  | 
| Installa AWS CLI la versione 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Amministratore del mainframe | 

### Configura AWS CLI l'accesso da z/OS
<a name="configure-cli-access-from-z-os"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le chiavi di AWS accesso, la regione predefinita e l'output. | La [AWS CLI documentazione](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) descrive diverse opzioni per configurare AWS l'accesso. Puoi scegliere una configurazione in base agli standard della tua organizzazione. Questo esempio utilizza la configurazione delle credenziali a breve termine.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore AWS, amministratore mainframe z/OS , sviluppatore z/OS mainframe | 
| Prova il. AWS CLI | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS z/OS Amministratore di mainframe, sviluppatore mainframe | 

### Opzione 1 ‒ Trasferimento interattivo di dati da USS ad Amazon S3 da una sessione USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica e trasferisci il file CSV di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di app, sviluppatore di mainframe z/OS  | 
| Crea un bucket S3 e carica il file CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di app, sviluppatore di mainframe z/OS  | 
| Visualizza il bucket S3 e il file caricato. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Per ulteriori informazioni sul caricamento di oggetti, consulta la sezione [Guida introduttiva ad Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3 nella documentazione di Amazon S3. | Informazioni generali su AWS | 
| Esegui una query SQL su una tabella Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)L'output della query SQL mostrerà il contenuto del file CSV. | General AWS, sviluppatore di app | 

### Opzione 2 ‒ Trasferimento di dati da USS ad Amazon S3 utilizzando batch JCL
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica il file di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di mainframe z/OS  | 
| Crea JCL in batch. | Codifica il batch JCL come segue per creare il bucket S3 di destinazione, caricare il set di dati ed elencare il contenuto del bucket. Assicurati di sostituire il nome della directory, i nomi dei file e il nome del bucket con i tuoi valori.<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> | Sviluppatore di mainframe z/OS  | 
| Invia il lavoro JCL in batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di mainframe z/OS  | 
| Visualizza il set di dati caricato nel bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Informazioni generali su AWS | 

## Risorse correlate
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentazione della versione 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [Modernizzazione del mainframe AWS Riferimento ai comandi CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [Modernizzazione del mainframe AWS](https://aws.amazon.com/mainframe-modernization/)

## Informazioni aggiuntive
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED nell'opzione ISPF 3.4 (utilità per l'elenco dei set di dati)**

![\[Visualizzazione del contenuto del set di dati in z/OS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT del processo batch inviato**

![\[Output standard dal registro dei lavori.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Allegati
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Esegui il backup e l'archiviazione dei dati del mainframe su Amazon S3 utilizzando 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, software mainframe Model9*

## Riepilogo
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-summary"></a>

Questo modello dimostra come eseguire il backup e l'archiviazione dei dati del mainframe direttamente su Amazon Simple Storage Service (Amazon S3), quindi richiamare e ripristinare tali dati sul mainframe utilizzando BMC AMI Cloud Data (precedentemente noto come Model9 Manager). Se stai cercando un modo per modernizzare la tua soluzione di backup e archiviazione nell'ambito di un progetto di modernizzazione del mainframe o per soddisfare i requisiti di conformità, questo modello può aiutarti a raggiungere questi obiettivi.

In genere, le organizzazioni che eseguono applicazioni aziendali principali su mainframe utilizzano una libreria a nastro virtuale (VTL) per eseguire il backup di archivi di dati come file e log. Questo metodo può essere costoso perché utilizza MIPS fatturabili e i dati archiviati su nastri all'esterno del mainframe sono inaccessibili. Per evitare questi problemi, è possibile utilizzare BMC AMI Cloud Data per trasferire in modo rapido ed economico i dati operativi e storici del mainframe direttamente su Amazon S3. È possibile utilizzare BMC AMI Cloud Data per eseguire il backup e l'archiviazione dei dati sfruttando TCP/IP al AWS contempo i motori IBM z Integrated Information Processor (zIIP) per ridurre costi, parallelismo e tempi di trasferimento.

## Prerequisiti e limitazioni
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ BMC AMI Cloud Data con una chiave di licenza valida
+ Connettività TCP/IP tra il mainframe e AWS
+ Un ruolo AWS Identity and Access Management (IAM) per l' read/write accesso a un bucket S3
+ Accesso ai prodotti di sicurezza mainframe (RACF) per eseguire i processi BMC AMI Cloud
+ Un z/OS agente BMC AMI Cloud (Java versione 8 a 64 bit SR5 FP16 o successiva) con porte di rete disponibili, regole firewall che consentono l'accesso ai bucket S3 e un file system dedicato z/FS 
+ [Requisiti](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) soddisfatti per il server di gestione BMC AMI Cloud

**Limitazioni**
+ BMC AMI Cloud Data archivia i dati operativi in un database PostgreSQL che viene eseguito come contenitore Docker sulla stessa istanza Amazon Elastic Compute Cloud (Amazon) del server di gestione. EC2 Amazon Relational Database Service (Amazon RDS) non è attualmente supportato come backend per BMC AMI Cloud Data. [Per ulteriori informazioni sugli ultimi aggiornamenti del prodotto, consulta What's New?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) nella documentazione BMC.
+ Questo modello esegue il backup e l'archiviazione solo dei dati z/OS del mainframe. BMC AMI Cloud Data esegue il backup e l'archiviazione solo dei file mainframe.
+ Questo modello non converte i dati in formati aperti standard come JSON o CSV. Utilizza un servizio di trasformazione aggiuntivo come [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (precedentemente noto come Model9 Gravity) per convertire i dati in formati aperti standard. Le applicazioni native del cloud e gli strumenti di analisi dei dati possono accedere ai dati dopo che sono stati scritti nel cloud.

**Versioni del prodotto**
+ BMC AMI Cloud Data versione 2.x

## Architecture
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-architecture"></a>

**Stack tecnologico di origine**
+ Mainframe con z/OS
+ File mainframe come set di dati e file z/OS UNIX System Services (USS)
+ Disco mainframe, ad esempio un dispositivo di archiviazione ad accesso diretto (DASD)
+ Nastro mainframe (libreria di nastri virtuale o fisica)

**Stack tecnologico Target**
+ Simple Storage Service (Amazon S3)
+  EC2 Istanza Amazon in un cloud privato virtuale (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Architettura Target**

Il diagramma seguente mostra un'architettura di riferimento in cui gli agenti software BMC AMI Cloud Data su un mainframe gestiscono i processi di backup e archiviazione dei dati legacy che archiviano i dati in Amazon S3.

![\[Agenti software BMC AMI Cloud Data su un mainframe che guidano i processi di backup e archiviazione dei dati legacy\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli agenti software BMC AMI Cloud Data vengono eseguiti su partizioni logiche mainframe (). LPARs Gli agenti software leggono e scrivono i dati del mainframe da DASD o nastro direttamente su Amazon S3 tramite TCP/IP.

1. AWS Direct Connect configura una connessione fisica e isolata tra la rete locale e. AWS Per una maggiore sicurezza, utilizza anche una site-to-site VPN Direct Connect per crittografare i dati in transito.

1. Il bucket S3 archivia i file mainframe come dati di storage di oggetti e gli agenti BMC AMI Cloud Data comunicano direttamente con i bucket S3. I certificati vengono utilizzati per la crittografia HTTPS di tutte le comunicazioni tra l'agente e Amazon S3. La crittografia dei dati di Amazon S3 viene utilizzata per crittografare e proteggere i dati archiviati.

1. I server di gestione BMC AMI Cloud Data funzionano come contenitori Docker sulle EC2 istanze. Le istanze comunicano con gli agenti in esecuzione su mainframe LPARs e bucket S3.

1. Amazon EFS è montato su EC2 istanze attive e passive per condividere lo storage Network File System (NFS). Questo serve a garantire che i metadati relativi a una policy creata sul server di gestione non vadano persi in caso di failover. In caso di failover da parte del server attivo, è possibile accedere al server passivo senza alcuna perdita di dati. In caso di guasto del server passivo, è possibile accedere al server attivo senza alcuna perdita di dati.

## Tools (Strumenti)
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi in Cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) S3) è un servizio di storage di oggetti basato sul cloud che consente di archiviare, proteggere e recuperare quasi ogni quantità di dati.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)collega la rete interna a una AWS Direct Connect posizione tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, è possibile creare interfacce virtuali direttamente verso i AWS servizi pubblici ignorando i provider di servizi Internet nel percorso di rete.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

**Strumenti BMC**
+ Il [server di gestione BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) è un'applicazione GUI che viene eseguita come contenitore Docker su Amazon Linux Amazon Machine Image (AMI) per Amazon. EC2 Il server di gestione offre la funzionalità per gestire le attività di BMC AMI Cloud come la creazione di report, la creazione e la gestione di policy, l'esecuzione di archivi e l'esecuzione di backup, richiami e ripristini.
+ [L'agente BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) viene eseguito su un mainframe LPAR locale che legge e scrive i file direttamente nell'archivio di oggetti utilizzando TCP/IP. Un'attività avviata viene eseguita su un mainframe LPAR ed è responsabile della lettura e della scrittura dei dati di backup e archiviazione da e verso Amazon S3.
+ [BMC AMI Cloud Mainframe Command Line Interface (M9CLI)](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) fornisce una serie di comandi per eseguire azioni BMC AMI Cloud direttamente da TSO/E o in batch, senza la dipendenza dal server di gestione.

## Epiche
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-epics"></a>

### Crea un bucket S3 e una policy IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per archiviare i file e i volumi di cui desideri eseguire il backup e l'archiviazione dal tuo ambiente mainframe. | Informazioni generali su AWS | 
| Creare una policy IAM | Tutti i server e gli agenti di gestione BMC AMI Cloud richiedono l'accesso al bucket S3 creato nel passaggio precedente.Per concedere l'accesso richiesto, crea la seguente policy 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> | Informazioni generali su AWS | 

### Ottieni la licenza del software BMC AMI Cloud e scarica il software
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza software BMC AMI Cloud. | Per ottenere una chiave di licenza software, contatta il [team BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). L'output del z/OS `D M=CPU` comando è necessario per generare una licenza. | Costruisci piombo | 
| Scarica il software BMC AMI Cloud e il codice di licenza. | Ottieni i file di installazione e la chiave di licenza seguendo le istruzioni nella documentazione [BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Amministratore dell'infrastruttura mainframe | 

### Installare l'agente software BMC AMI Cloud sul mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installare l'agente software BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore dell'infrastruttura mainframe | 

### Configurare un server di gestione BMC AMI Cloud su un'istanza EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea istanze Amazon EC2 Linux 2. | Avvia due istanze di Amazon EC2 Linux 2 in diverse zone di disponibilità seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon.L'istanza deve soddisfare i seguenti requisiti hardware e software consigliati:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Per ulteriori informazioni, consulta la documentazione [BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Architetto del cloud, amministratore del cloud | 
| Crea un file system Amazon EFS. | Crea un file system Amazon EFS seguendo le istruzioni della [Fase 1: Crea il tuo file system Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) nella documentazione di Amazon EFS.Durante la creazione del file system, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore del cloud, architetto del cloud | 
| Installa Docker e configura il server di gestione. | **Connect alle tue EC2 istanze:**Connettiti alle tue EC2 istanze seguendo le istruzioni di [Connect to your Linux istance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella EC2 documentazione di Amazon.**Configura le tue EC2 istanze:**Per ogni EC2 istanza, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Architetto del cloud, amministratore del cloud | 
| Installa il software del server di gestione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Per risolvere i problemi, accedi ai log archiviati nella cartella. `/data/model9/logs/`**** [Per ulteriori informazioni, consulta la documentazione BMC.](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html) | Architetto del cloud, amministratore del cloud | 

### Aggiungere un agente e definire una politica di backup o archiviazione sul server di gestione BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi un nuovo agente. | Prima di aggiungere un nuovo agente, conferma quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)È necessario creare un agente sul server di gestione prima di definire qualsiasi politica di backup e archiviazione. Per creare l'agente, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Dopo aver creato l'agente, vedrai lo stato della **connessione** rispetto all'object storage e all'agente mainframe in una nuova finestra che appare nella tabella. | Amministratore o sviluppatore dello storage mainframe | 
| Crea una politica di backup o archiviazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 

### Esegui la politica di backup o archiviazione dal server di gestione
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la politica di backup o archiviazione. | Esegui la politica di backup o archiviazione dei dati creata in precedenza dal server di gestione manualmente o automaticamente (in base a una pianificazione). Per eseguire la policy manualmente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 
| Ripristina la politica di backup o archiviazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 

### Esegui la policy di backup o archiviazione dal mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la politica di backup o archiviazione utilizzando M9CLI. | Utilizza M9CLI per eseguire processi di backup e ripristino da TSO/E, REXX o tramite JCLs senza configurare regole sul server di gestione BMC AMI Cloud.**Utilizzando TSO/E:**Se usi TSO/E, assicurati che sia concatenato a. `M9CLI REXX` `TSO` Per eseguire il backup di un set di dati tramite TSO/E, usa il comando. `TSO M9CLI BACKDSN <DSNAME>`Per ulteriori informazioni sui comandi M9CLI, vedere il [riferimento CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) nella documentazione BMC.**Utilizzando: JCLs**Per eseguire la politica di backup e archiviazione utilizzando JCLs, esegui il `M9CLI` comando.**Utilizzo delle operazioni in batch:**L'esempio seguente mostra come archiviare un set di dati eseguendo il `M9CLI` comando in batch:<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> | Amministratore o sviluppatore dello storage mainframe | 
| Esegui la politica di backup o archiviazione nel batch JCL. | **BMC AMI Cloud fornisce una routine JCL di esempio chiamata M9SAPIJ.** È possibile personalizzare **M9SAPIJ** per eseguire una politica specifica creata sul server di gestione con un JCL. Questo processo può anche far parte di un programma di pianificazione in batch per l'esecuzione automatica dei processi di backup e ripristino.Il processo batch prevede i seguenti valori obbligatori:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)È inoltre possibile modificare altri valori seguendo le istruzioni sul job di esempio. | Amministratore o sviluppatore dello storage mainframe | 

## Risorse correlate
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernizzazione del mainframe con AWS (documentazione](https://aws.amazon.com/mainframe/) AWS)
+ In che [modo il backup su cloud per mainframe riduce i costi con Model9 e AWS (blog di AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) Partner Network)
+ [Come abilitare l'analisi dei dati mainframe su AWS utilizzando Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (AWS Partner Network Blog)
+ [Raccomandazioni sulla resilienza di AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentazione AWS)
+ [Documentazione BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (sito web BMC)

# Crea programmi COBOL Db2 usando e Modernizzazione del mainframe AWS AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas e Eduardo Zimelewicz, Amazon Web Services*

## Riepilogo
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**Nota**  
Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello spiega come creare un semplice AWS CodeBuild progetto per precompilare e associare i programmi COBOL Db2 utilizzando gli strumenti Replatform. Modernizzazione del mainframe AWS Ciò consente la distribuzione e l'esecuzione di questi programmi nell'ambiente di runtime Replatform. Modernizzazione del mainframe AWS 

COBOL, un linguaggio di programmazione orientato al business, alimenta molte applicazioni critiche grazie alla sua affidabilità e leggibilità. IBM Db2, un sistema di gestione di database relazionali, gestisce grandi volumi di dati in modo efficiente e si integra con i programmi COBOL tramite SQL. Insieme, COBOL e Db2 costituiscono la spina dorsale delle operazioni cruciali in settori come quello finanziario e governativo, nonostante l'emergere di nuove tecnologie.

La migrazione dei componenti COBOL e Db2 dall'ambiente mainframe ad altre piattaforme comporta sfide quali la compatibilità della piattaforma, la complessità dell'integrazione, la migrazione dei dati e l'ottimizzazione delle prestazioni. Lo spostamento di questi componenti critici richiede un'attenta pianificazione, competenze tecniche e risorse per garantire una migrazione senza intoppi pur mantenendo affidabilità e funzionalità.

Il Modernizzazione del mainframe AWS servizio fornisce strumenti e risorse per ripiattaforma applicazioni e database mainframe da eseguire sull' AWS infrastruttura, come le istanze Amazon Elastic Compute Cloud (Amazon EC2). Ciò comporta lo spostamento dei carichi di lavoro mainframe sul cloud senza importanti modifiche al codice.

Il processo di precompilazione e associazione di Db2 è essenziale per ottimizzare le prestazioni e l'affidabilità delle applicazioni di database. La precompilazione trasforma le istruzioni SQL incorporate in codice eseguibile, riducendo il sovraccarico di runtime e migliorando l'efficienza. Il processo di associazione collega il codice precompilato con le strutture del database, facilitando i percorsi di accesso e l'ottimizzazione delle query. Questo processo garantisce l'integrità dei dati, migliora la reattività delle applicazioni e protegge dalle vulnerabilità di sicurezza. Le applicazioni correttamente precompilate e associate riducono al minimo il consumo di risorse, migliorano la scalabilità e mitigano i rischi degli attacchi di SQL injection.

## Prerequisiti e limitazioni
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Prerequisiti**
+ Un accesso Account AWS alla console a livello amministrativo.
+ Un sistema di database IBM Db2, ad esempio IBM Db2 for z/OS o Db2 per Linux, Unix e Windows (LUW).
+ [Il software IBM Data Server Client, disponibile per il download dal sito Web IBM.](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers) Per ulteriori informazioni, consulta i tipi di [client IBM Data Server e Driver Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Un programma COBOL Db2 da compilare e associare. In alternativa, questo modello fornisce un programma di esempio di base che è possibile utilizzare.
+ Un cloud privato virtuale (VPC) AWS con una rete privata. Per informazioni sulla creazione di un VPC, consulta la documentazione di [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Un repository per il controllo del codice sorgente come o. GitHub GitLab

**Limitazioni**
+ Per le AWS CodeBuild quote, vedere [Quote](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) per. AWS CodeBuild
+ Alcune Servizi AWS non sono disponibili in tutte. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

## Architecture
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Stack tecnologico di origine**

Lo stack di origine include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Compilatore IBM COBOL e Db2 per precompilatore z/OS 
+ Altre parti della configurazione del mainframe, come il file system, il gestore delle transazioni e lo spool

**Stack tecnologico Target**

L'approccio di questo modello funziona per due opzioni: spostare i dati da Db2 for z/OS a Db2 per LUW o rimanere su Db2 per z/OS. L'architettura di destinazione include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Modernizzazione del mainframe AWS Strumenti di compilazione per ripiattaforme
+ AWS CodeBuild come infrastruttura per creare l'applicazione
+ Altre Cloud AWS risorse come Amazon Linux

**Architettura Target**

![\[Architettura per la creazione di programmi COBOL Db2 su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Il diagramma illustra quanto segue:

1. L'utente carica il proprio codice in un repository di controllo del codice sorgente come o. GitHub GitLab

1. AWS CodePipeline rileva la modifica e ottiene il codice dal repository.

1. CodePipeline avvia AWS CodeBuild e invia il codice.

1. CodeBuild segue le istruzioni contenute nel `buildspec.yml` modello (fornito nella sezione [Informazioni aggiuntive](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) per:

   1. Ottieni l'IBM Data Server Client da un bucket Amazon Simple Storage Service (Amazon S3).

   1. Installa e configura IBM Data Server Client.

   1. Recupera le credenziali Db2 da. Gestione dei segreti AWS

   1. Connettiti al server Db2.

   1. Precompila, compila e associa il programma COBOL.

   1. Salva i prodotti finiti in un bucket S3 per utilizzarli. AWS CodeDeploy 

1. CodePipeline inizia. CodeDeploy

1. CodeDeploy coordina i suoi agenti, che sono già installati negli ambienti di runtime. Gli agenti recuperano l'applicazione da Amazon S3 e la installano in base alle istruzioni contenute in. `appspec.yml`

Per semplificare le cose e concentrarsi sulla compilazione, le istruzioni riportate in questo schema coprono i passaggi da 1 a 4 ma non includono l'implementazione del programma COBOL Db2.

**Automazione e scalabilità**

Per semplicità, questo modello descrive come fornire le risorse manualmente. Tuttavia, sono disponibili numerose opzioni di automazione, come CloudFormation, e HashiCorp Terraform AWS Cloud Development Kit (AWS CDK), che automatizzano queste attività. Per ulteriori informazioni, consulta la documentazione [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)e [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

## Tools (Strumenti)
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**Servizi AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatizza le distribuzioni su Amazon EC2 o su istanze AWS Lambda , funzioni o servizi Amazon Elastic Container Service (Amazon ECS) in locale.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
+ [Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornisce strumenti e risorse per aiutarvi a pianificare e implementare la migrazione e la modernizzazione dai mainframe agli ambienti di runtime AWS gestiti.

**Altri strumenti**
+ **Immagine Amazon ECR per gli strumenti Modernizzazione del mainframe AWS Replatform**. Per compilare un'applicazione COBOL, devi iniziare CodeBuild utilizzando un'immagine Amazon Elastic Container Registry (Amazon ECR) che contiene gli strumenti Replatform: Modernizzazione del mainframe AWS 

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  [https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html)
+ [Il software IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) è essenziale per precompilare e associare i programmi COBOL Db2. CodeBuild Funge da ponte tra il compilatore COBOL e Db2.

## Best practice
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Non tutti i programmi COBOL si affidano a Db2 come livello di persistenza dei dati. Assicuratevi che le direttive di compilazione per l'accesso a Db2 siano applicate solo ai programmi COBOL progettati specificamente per interagire con Db2. Implementate una logica per distinguere tra i programmi COBOL Db2 e i programmi COBOL che non utilizzano Db2.
+ Ti consigliamo di evitare di compilare programmi che non sono stati modificati. Implementa un processo per identificare quali programmi richiedono la compilazione.

## Epiche
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Crea l'infrastruttura cloud
<a name="create-the-cloud-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3 per ospitare il client IBM Data Server e gli artefatti della pipeline. | È necessario configurare un bucket S3 per (a) caricare IBM Data Server Client, (b) archiviare il codice dal repository e (c) archiviare i risultati del processo di compilazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per informazioni su come creare un bucket S3, consulta la documentazione di [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Informazioni generali su AWS | 
| Carica l'IBM Data Server Client nel bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Informazioni generali su AWS | 
| Crea un Gestione dei segreti AWS segreto per le tue credenziali Db2. | Per creare un segreto per archiviare in modo sicuro le tue credenziali: DB2 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di segreti, consulta la [documentazione di Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | Informazioni generali su AWS | 
| Verifica che Db2 sia accessibile dalla sottorete VPC. | AWS CodeBuild necessita di una connessione al server Db2 in modo che il Data Server Client possa eseguire operazioni di precompilazione e associazione. Assicurati che CodeBuild possa raggiungere il server Db2 tramite una connessione sicura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Amministratore di rete, General AWS | 

### Crea gli artefatti dell'applicazione
<a name="create-the-application-artifacts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create la risorsa COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Sviluppatore di app | 
| Crea il file `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect il tuo repository a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Avrai bisogno dell'Amazon Resource Name (ARN) per la connessione quando crei la policy AWS Identity and Access Management (IAM) per una CodePipeline fase successiva. | AWS DevOps | 

### Configurazione delle autorizzazioni
<a name="configure-permissions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per CodeBuild. | Il CodeBuild progetto richiede l'accesso ad alcune risorse, tra cui Secrets Manager e Amazon S3.Per configurare le autorizzazioni necessarie:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di policy IAM, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | Informazioni generali su AWS | 
| Crea un ruolo IAM per CodeBuild. | Per rendere disponibili le politiche di sicurezza CodeBuild, devi configurare un ruolo IAM.Per creare questo ruolo:1. Sulla [console IAM](https://console.aws.amazon.com/iam), nel riquadro di navigazione, scegli **Ruoli**, **Crea ruolo**.3. Per il **tipo di entità affidabile**, mantieni l'**Servizio AWS**impostazione predefinita.4. Per **Caso d'uso**, seleziona il CodeBuild servizio, quindi scegli **Avanti**.4. Nell'elenco delle policy IAM disponibili, individua la policy per cui hai creato CodeBuild, quindi scegli **Avanti** per associarla al ruolo.5. Specificate un nome per il ruolo e scegliete **Crea ruolo** per salvarlo per riferimenti futuri in CodeBuild.Per ulteriori informazioni sulla creazione di un ruolo IAM per un Servizio AWS, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Informazioni generali su AWS | 
| Crea una policy IAM per CodePipeline. | La AWS CodePipeline pipeline richiede l'accesso ad alcune risorse, tra cui il repository di codice e Amazon S3.Ripeti i passaggi forniti in precedenza per CodeBuild creare una policy IAM per CodePipeline (nel passaggio 2, scegli **CodePipeline**invece di). **CodeBuild** | AWS DevOps | 
| Crea un ruolo IAM per CodePipeline. | Per rendere disponibili le politiche di sicurezza CodePipeline, devi configurare un ruolo IAM.Per creare questo ruolo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compila e associa il programma COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una CodePipeline pipeline e un CodeBuild progetto. | Per creare una CodePipeline pipeline e il CodeBuild progetto che compila e associa il programma COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Esamina l'output. | Verifica il successo della build esaminando i log di CodePipeline compilazione. | AWS DevOps | 
| Controlla i risultati in Db2. | Verifica la versione del pacchetto nella tabella 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>La versione deve corrispondere all'ID di CodeBuild build, che è `CDB2SMP` nel nostro esempio:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## risoluzione dei problemi
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Occasionalmente, la AWS console cambia regione quando ci si sposta da un servizio all'altro. | Assicurati di verificare la selezione Regione AWS ogni volta che passi da un servizio all'altro.Il Regione AWS selettore si trova nell'angolo superiore destro della finestra della console. | 
| Può essere difficile identificare i problemi di connettività di Db2. CodeBuild | Per risolvere i problemi di connettività, aggiungi il seguente comando DB2 connect al file. `buildspec.yml` Questa aggiunta consente di eseguire il debug e risolvere i problemi di connettività.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| A volte, il riquadro dei ruoli nella console IAM non mostra immediatamente la policy IAM che hai creato. | Se riscontri un ritardo, aggiorna lo schermo per visualizzare le informazioni più recenti. | 

## Risorse correlate
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**Documentazione IBM**
+ [Client e tipi di driver IBM Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Scarica i tipi di client e driver IBM Data Server](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentazione**
+ [Guida per l'utente di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guida per l'utente](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [Modernizzazione del mainframe AWS Guida per l'utente](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [Gestione dei segreti AWS Guida per l'utente](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guida per l'utente](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guida per l'utente** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Informazioni aggiuntive
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild policy**

Sostituisci i segnaposto`<RegionID>`,, `<AccountID>` `<SubnetARN>``<BucketARN>`, e `<DB2CredSecretARN>` con i tuoi valori.

```
{"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 policy**

Sostituisci i segnaposto `<BucketARN>` e `<ConnectionARN>` con i tuoi valori.

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

Sostituisci il `<your-bucket-name>` segnaposto con il nome effettivo del bucket 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
```

# Create un Micro Focus Enterprise Server PAC con Amazon EC2 Auto Scaling e 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, Nessuno*

*Abraham Rondon, Micro Focus*

## Riepilogo
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-summary"></a>

Questo modello introduce un'architettura scalabile per applicazioni mainframe che utilizza [Micro Focus Enterprise Server in 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 un gruppo Amazon Elastic Compute Cloud (Amazon) EC2 Auto Scaling su Amazon Web Services ().AWS La soluzione è completamente automatizzata con AWS Systems Manager i ganci del ciclo di vita di Amazon EC2 Auto Scaling. Utilizzando questo modello, è possibile configurare le applicazioni mainframe online e in batch per ottenere un'elevata resilienza grazie alla scalabilità interna e orizzontale automatica in base alle esigenze di capacità. 

**Nota**  
Questo modello è stato testato con Micro Focus Enterprise Server versione 6.0. Per la versione 8, consulta [Configurare Micro Focus Runtime (su Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Prerequisiti e limitazioni
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Software e licenza Micro Focus Enterprise Server. Per ulteriori informazioni, contattate il [reparto vendite di Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Comprensione del concetto di ricostruzione e fornitura di un'applicazione mainframe da eseguire in Micro Focus Enterprise Server. Per una panoramica di alto livello, consultate la scheda tecnica di [Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Comprensione dei concetti di Micro Focus Enterprise Server scale-out Performance and Availability Cluster. Per ulteriori informazioni, consultate la documentazione di [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Comprensione del concetto generale di applicazione mainframe DevOps con integrazione continua (CI). Per un modello di guida AWS prescrittiva sviluppato da AWS e Micro Focus, vedi [Modernizzazione del mainframe: DevOps ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) on with Micro Focus. AWS 

**Nota**  
Questo modello è stato testato con Micro Focus Enterprise Server versione 6. Per la versione 8, consulta [Configurare Micro Focus Runtime (su Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limitazioni**
+ Per un elenco delle piattaforme supportate da Micro Focus Enterprise Server, consultate la [scheda tecnica di Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Gli script e i test utilizzati in questo modello si basano su Amazon EC2 Windows Server 2019; altre versioni e sistemi operativi di Windows Server non sono stati testati per questo modello.
+ Il modello si basa su Micro Focus Enterprise Server 6.0 per Windows; le versioni precedenti o successive non sono state testate nello sviluppo di questo modello.

**Versioni del prodotto**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

## Architecture
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-architecture"></a>

Nell'ambiente mainframe convenzionale, è necessario fornire l'hardware per ospitare le applicazioni e i dati aziendali. Per far fronte e soddisfare i picchi di richieste stagionali, mensili, trimestrali o addirittura inaspettate o senza precedenti, gli utenti mainframe devono *scalare* orizzontalmente acquistando capacità di storage e di elaborazione aggiuntive. L'aumento del numero di risorse di archiviazione e capacità di elaborazione migliora le prestazioni complessive, ma la scalabilità non è lineare.

Questo non è il caso quando inizi ad adottare un modello di consumo on demand su AWS utilizzando Amazon Auto EC2 Scaling e Micro Focus Enterprise Server. Le sezioni seguenti spiegano in dettaglio come creare un'architettura applicativa mainframe completamente automatizzata e scalabile utilizzando Micro Focus Enterprise Server Scale-Out Performance and Availability Cluster (PAC) con un gruppo Amazon Auto Scaling. EC2  

**Architettura di scalabilità automatica Micro Focus Enterprise Server**

Innanzitutto, è importante comprendere i concetti di base di Micro Focus Enterprise Server. Questo ambiente fornisce un ambiente di distribuzione x86 compatibile con il mainframe per le applicazioni tradizionalmente eseguite sul mainframe IBM. Fornisce esecuzioni online e in batch e un ambiente di transazione che supporta quanto segue:
+ IBM COBOL
+ IBM PL/I
+ lavori batch IBM JCL
+ Transazioni IBM CICS e IMS TM
+ Servizi Web
+ Utilità batch comuni, tra cui SORT

Micro Focus Enterprise Server consente l'esecuzione delle applicazioni mainframe con modifiche minime. I carichi di lavoro mainframe esistenti possono essere spostati su piattaforme x86 e modernizzati per sfruttare le estensioni native di AWS Cloud per una rapida espansione verso nuovi mercati o aree geografiche. 

[Modernizzazione del modello AWS Prescriptive Guidance: su DevOps AWS con Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) ha introdotto l'architettura per accelerare lo sviluppo e il test di applicazioni mainframe su AWS utilizzando Micro Focus Enterprise Developer ed Enterprise Test Server con AWS e AWS. CodePipeline CodeBuild Questo modello si concentra sulla distribuzione di applicazioni mainframe nell'ambiente di produzione AWS per ottenere disponibilità e resilienza elevate.

In un ambiente di produzione mainframe, potresti aver configurato IBM Parallel Sysplex nel mainframe per ottenere prestazioni e disponibilità elevate. Per creare un'architettura scalabile simile a Sysplex, Micro Focus ha introdotto il Performance and Availability Cluster (PAC) su Enterprise Server. PACs supporta la distribuzione di applicazioni mainframe su più regioni Enterprise Server gestite come un'unica immagine e scalabili in istanze Amazon EC2 . PACs supportano anche prestazioni prevedibili delle applicazioni e velocità di trasmissione del sistema su richiesta. 

In un PAC, più istanze di Enterprise Server funzionano insieme come un'unica entità logica. Il guasto di un'istanza di Enterprise Server, pertanto, non interromperà la continuità aziendale poiché la capacità è condivisa con altre regioni, mentre le nuove istanze vengono avviate automaticamente utilizzando funzionalità standard del settore come un gruppo Amazon Auto EC2 Scaling. Ciò rimuove i singoli punti di errore, migliorando la resilienza ai problemi hardware, di rete e delle applicazioni. Le istanze scalabili di Enterprise Server possono essere gestite e gestite utilizzando Enterprise Server Common Web Administration (ESCWA) APIs, che semplifica la manutenzione operativa e la facilità di manutenzione degli Enterprise Server. 

**Nota**  
Micro Focus consiglia che il [Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) sia composto da almeno tre aree Enterprise Server in modo da non compromettere la disponibilità nel caso in cui un'area Enterprise Server si guasti o richieda manutenzione.

La configurazione PAC richiede un servizio di gestione di database relazionali (RDBMS) supportato per gestire il database regionale, un database interregionale e database di archivi dati opzionali. È necessario utilizzare un database di archivio dati per gestire i file VSAM (Virtual Storage Access Method) utilizzando il supporto Micro Focus Database File Handler per migliorare la disponibilità e la scalabilità. Sono supportati i RDBMSs seguenti:
+ Microsoft SQL Server 2009 R2 e versioni successive
+ PostgreSQL 10.x, inclusa l'edizione compatibile con Amazon Aurora PostgreSQL
+ DB2 10.4 e versioni successive

Per i dettagli sui requisiti RDBMS e PAC supportati, vedere [Micro Focus Enterprise Server - Prerequisiti e [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html) -](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) Configurazione PAC consigliata.

Il diagramma seguente mostra una configurazione tipica dell'architettura AWS per un Micro Focus PAC. 

![\[Un'architettura a tre zone di disponibilità con cinque passaggi descritti in una tabella dopo il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Componente** | **Descrizione** | 
| --- |--- |--- |
| 1 | Gruppo di scalabilità automatica delle istanze di Enterprise Server | Configura un gruppo di scalabilità automatico distribuito con istanze di Enterprise Server in un PAC. Il numero di istanze può essere scalato orizzontalmente o avviato dagli CloudWatch allarmi di Amazon utilizzando i parametri. CloudWatch  | 
| 2 | Gruppo di scalabilità automatica delle istanze ESCWA di Enterprise Server  | Configura un gruppo di ridimensionamento automatico distribuito con Enterprise Server Common Web Administration (ESCWA). ESCWA fornisce la gestione dei cluster. APIs   I server ESCWA fungono da piano di controllo per aggiungere o rimuovere Enterprise Server e avviare o arrestare le aree Enterprise Server nel PAC durante gli eventi di scalabilità automatica delle istanze di Enterprise Server.   Poiché l'istanza ESCWA viene utilizzata solo per la gestione PAC, il suo schema di traffico è prevedibile e il requisito di capacità desiderato per la scalabilità automatica può essere impostato su 1.  | 
| 3 | Istanza Amazon Aurora in una configurazione Multi-AZ | Configura un sistema di gestione di database relazionali (RDBMS) per ospitare file di dati utente e di sistema da condividere tra le istanze di Enterprise Server. | 
| 4 | Istanza e replica Amazon ElastiCache (Redis OSS) | Configura un'istanza principale ElastiCache (Redis OSS) e almeno una replica per ospitare i dati degli utenti e fungere da archivio scalabile (SOR) per le istanze di Enterprise Server. È possibile configurare uno o più [repository a scalabilità orizzontale per archiviare tipi specifici di](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) dati utente.   Enterprise Server utilizza un database Redis NoSQL come SOR[, un requisito](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html) per mantenere l'integrità PAC. | 
| 5 | Network Load Balancer | Configura un sistema di bilanciamento del carico, fornendo un nome host alle applicazioni per la connessione ai servizi forniti dalle istanze di Enterprise Server (ad esempio, l'accesso all'applicazione tramite un emulatore 3270). | 

Questi componenti costituiscono il requisito minimo per un cluster PAC Micro Focus Enterprise Server. La sezione successiva tratta l'automazione della gestione dei cluster.

**Utilizzo di AWS Systems Manager Automation per la scalabilità**

Dopo la distribuzione del cluster PAC su AWS, il PAC viene gestito tramite Enterprise Server Common Web Administration (ESCWA). APIs 

Per automatizzare le attività di gestione dei cluster durante gli eventi di scalabilità automatica, puoi utilizzare i runbook di Systems Manager Automation e Amazon Auto EC2 Scaling con Amazon. EventBridge L'architettura di queste automazioni è mostrata nel diagramma seguente.

![\[AWS architecture diagram showing EventBridge, Systems Manager, and EC2 Auto Scaling integration.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)


 


| 
| 
|  | **Componente** | **Descrizione** | 
| --- |--- |--- |
| 1 | Gancio automatico del ciclo di vita della scalabilità | Configura gli hook automatici del ciclo di vita della scalabilità e invia notifiche ad Amazon EventBridge quando vengono lanciate nuove istanze e le istanze esistenti vengono terminate nel gruppo di scalabilità automatica. | 
| 2 | Amazon EventBridge | Imposta una EventBridge regola Amazon per indirizzare gli eventi di scalabilità automatica verso le destinazioni del runbook di Systems Manager Automation. | 
| 3 | Runbook di automazione | Configura i runbook di Systems Manager Automation per eseguire PowerShell gli script di Windows e richiama ESCWA APIs per gestire il PAC. *Per alcuni esempi, vedere la sezione Informazioni aggiuntive.* | 
| 4 | Istanza ESCWA di Enterprise Server in un gruppo di scalabilità automatica | Configurare un'istanza ESCWA di Enterprise Server in un gruppo di ridimensionamento automatico. L'istanza ESCWA consente di APIs gestire il PAC.  | 

## Tools (Strumenti)
<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) — Micro Focus Enterprise Server fornisce l'ambiente di esecuzione per le applicazioni create con qualsiasi variante dell'ambiente di sviluppo integrato (IDE) di Enterprise Developer.
+ [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html): Amazon EC2 Auto Scaling ti aiuta a garantire il numero corretto di istanze EC2 Amazon disponibili per gestire il carico della tua applicazione. È possibile creare raccolte di EC2 istanze, denominate gruppi di Auto Scaling, e specificare il numero minimo e massimo di istanze.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html): Amazon ElastiCache è un servizio web per configurare, gestire e scalare un archivio dati distribuito in memoria o un ambiente di cache nel cloud. Fornisce una soluzione di caching scalabile ad alte prestazioni e a costi contenuti.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) è un servizio Web che semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud AWS. Fornisce una capacità ridimensionabile e conveniente per un database relazionale e gestisce le attività di amministrazione comuni del database. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) — AWS Systems Manager è un servizio AWS che puoi usare per visualizzare e controllare la tua infrastruttura su AWS. Utilizzando la console Systems Manager, puoi visualizzare i dati operativi da più servizi AWS e automatizzare le attività operative tra le tue risorse AWS. Systems Manager consente di mantenere la sicurezza e la conformità eseguendo la scansione delle Istanze gestite e segnalando eventuali violazioni dei criteri rilevate (o intraprendendo azioni correttive in merito).

## Epiche
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-epics"></a>

### Crea un'istanza Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello AWS per un'istanza Amazon Aurora. | Utilizza lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) per creare un CloudFormation modello che creerà un'istanza Edition compatibile con Amazon Aurora PostgreSQL. | Architetto del cloud | 
| Implementa uno CloudFormation stack per creare l'istanza Amazon Aurora. | Usa il CloudFormation modello per creare un'istanza compatibile con Aurora PostgreSQL con la replica Multi-AZ abilitata per i carichi di lavoro di produzione. | Architetto del cloud | 
| Configurare le impostazioni di connessione al database per Enterprise Server. | Seguite le istruzioni nella [documentazione di Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) per preparare le stringhe di connessione e la configurazione del database per Micro Focus Enterprise Server. | Ingegnere dei dati, DevOps ingegnere | 

### Crea un ElastiCache cluster Amazon per l'istanza Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello per il ElastiCache cluster Amazon per l'istanza Redis. | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) per creare un CloudFormation modello che creerà un ElastiCache cluster Amazon per l'istanza Redis. | Architetto del cloud | 
| Implementa lo CloudFormation stack per creare un ElastiCache cluster Amazon per l'istanza Redis. | Crea il ElastiCache cluster Amazon per l'istanza Redis con la replica Multi-AZ abilitata per i carichi di lavoro di produzione. | Architetto del cloud | 
| Configurare le impostazioni di connessione PSOR di Enterprise Server. | Seguite le istruzioni nella [documentazione di Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) per preparare la configurazione di connessione PAC Scale-Out Repository (PSOR) per Micro Focus Enterprise Server PAC. | DevOps ingegnere | 

### Create un gruppo di scalabilità automatico Micro Focus Enterprise Server ESCWA
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un'AMI Micro Focus Enterprise Server. | Crea un'istanza Amazon EC2 Windows Server e installa il file binario Micro Focus Enterprise Server nell' EC2 istanza. Crea un'Amazon Machine Image (AMI) dell' EC2 istanza. Per ulteriori informazioni, consulta la [documentazione di installazione di Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Architetto del cloud | 
| Crea un CloudFormation modello per Enterprise Server ESCWA.  | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) per creare un modello per creare uno stack personalizzato di Enterprise Server ESCWA in un gruppo di ridimensionamento automatico. | Architetto del cloud | 
| Implementa lo CloudFormation stack per creare un gruppo di EC2 scalabilità Amazon per Enterprise Server ESCWA. | Utilizzate il CloudFormation modello per implementare il gruppo di scalabilità automatico con l'AMI ESCWA Micro Focus Enterprise Server creato nella storia precedente. | Architetto del cloud | 

### Crea un runbook di AWS Systems Manager Automation
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello per un runbook di Systems Manager Automation. | Utilizza i frammenti di codice di esempio nella sezione *Informazioni aggiuntive* per creare un CloudFormation modello che creerà un runbook di Systems Manager Automation per automatizzare la creazione di PAC, la scalabilità iniziale di Enterprise Server e la scalabilità orizzontale di Enterprise Server. | Architetto del cloud | 
| Implementa lo CloudFormation stack che contiene il runbook Systems Manager Automation. | Utilizzate il CloudFormation modello per distribuire uno stack che contenga il runbook Automation per la creazione di PAC, Enterprise Server scalabilità in ed Enterprise Server scalabilità out. | Architetto del cloud | 

### Create un gruppo di scalabilità automatico per Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un CloudFormation modello per configurare un gruppo di scalabilità automatico per Micro Focus Enterprise Server. | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) per creare un CloudFormation modello che creerà un gruppo di scalabilità automatico. Questo modello riutilizzerà la stessa AMI creata per l'istanza ESCWA di Micro Focus Enterprise Server. Utilizza quindi un [frammento di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) per creare l'evento di scalabilità automatica del ciclo di vita e configura Amazon per EventBridge filtrare gli eventi di scalabilità orizzontale e orizzontale nello stesso modello. CloudFormation  | Architetto del cloud | 
| Implementate lo CloudFormation stack per il gruppo di scalabilità automatico per i server Micro Focus Enterprise. | Implementate lo CloudFormation stack che contiene il gruppo di scalabilità automatico per Micro Focus Enterprise Server. | Architetto del cloud | 

## Risorse correlate
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Cluster di prestazioni e disponibilità dei server Micro Focus Enterprise (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Ganci per il ciclo di vita di Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Esecuzione di automazioni con trigger utilizzando EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Informazioni aggiuntive
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

I seguenti scenari devono essere automatizzati per la scalabilità interna o orizzontale dei cluster PAC.

**Automazione per l'avvio o la ricreazione di un PAC**

All'avvio di un cluster PAC, Enterprise Server richiede che ESCWA venga richiamato per APIs creare una configurazione PAC. Questo avvia e aggiunge le regioni Enterprise Server al PAC. Per creare o ricreare un PAC, attenersi alla seguente procedura: 

1. Configura un [PAC Scale-Out Repository (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) in ESCWA con un determinato nome.

   ```
   POST /server/v1/config/groups/sors
   ```

1. Crea un PAC con un determinato nome e allega il PSOR ad esso.

   ```
   POST /server/v1/config/groups/pacs
   ```

1. Configura il database regionale e il database interregionale se è la prima volta che configuri un PAC.
**Nota**  
Questo passaggio utilizza le query SQL e lo strumento **dbhfhadmin da riga di comando di Micro Focus** Enterprise Suite per creare il database e importare i dati iniziali.

1. Installa la definizione PAC nelle regioni Enterprise Server.

   ```
   POST /server/v1/config/mfds 
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Avvia le regioni Enterprise Server nel PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

I passaggi precedenti possono essere implementati utilizzando uno PowerShell script di Windows. 

I passaggi seguenti spiegano come creare un'automazione per la creazione di un PAC riutilizzando lo script di Windows PowerShell .

1. Crea un modello di EC2 avvio Amazon che scarichi o crei PowerShell lo script di Windows come parte del processo di bootstrap. Ad esempio, puoi utilizzare i dati EC2 utente per scaricare lo script da un bucket Amazon Simple Storage Service (Amazon S3).

1. Crea un runbook AWS Systems Manager Automation per richiamare lo script di Windows PowerShell .

1. Associa il runbook all'istanza ESCWA utilizzando il tag di istanza.

1. Crea un gruppo di ridimensionamento automatico ESCWA utilizzando il modello di avvio. 

Puoi utilizzare lo CloudFormation snippet AWS di esempio seguente per creare il runbook di automazione.

* CloudFormation Frammento di esempio per un runbook di Systems Manager Automation utilizzato per la creazione di 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"
```

Per ulteriori informazioni, vedere [Micro Focus Enterprise Server -](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html) Configurazione di un PAC.

**Automazione per la scalabilità orizzontale con una nuova istanza di Enterprise Server**

Quando un'istanza Enterprise Server viene scalata orizzontalmente, la relativa regione Enterprise Server deve essere aggiunta al PAC. I passaggi seguenti spiegano come richiamare ESCWA APIs e aggiungere la regione Enterprise Server al PAC. 

1. Installare la definizione PAC nelle regioni Enterprise Server.

   ```
   POST '/server/v1/config/mfds'
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Warm Start la regione nel PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

1. Aggiungere l'istanza Enterprise Server al load balancer associando il gruppo di scalabilità automatica al load balancer.

I passaggi precedenti possono essere implementati utilizzando uno script di Windows. PowerShell Per ulteriori informazioni, vedere [Micro Focus Enterprise Server - Configurazione di un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

I seguenti passaggi possono essere utilizzati per creare un'automazione basata sugli eventi per aggiungere un'istanza Enterprise Server appena lanciata in un PAC riutilizzando lo script di Windows. PowerShell  

1. Crea un modello di EC2 avvio Amazon per un'istanza di Enterprise Server che effettui il provisioning di una regione Enterprise Server durante il suo avvio. Ad esempio, è possibile utilizzare il comando Micro Focus Enterprise Server mfds per importare una configurazione regionale. Per ulteriori dettagli e opzioni disponibili per questo comando, consultate [Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html) Reference.

1. Creare un gruppo di scalabilità automatica di Enterprise Server che utilizzi il modello di avvio creato nel passaggio precedente.

1. Crea un runbook di Systems Manager Automation per richiamare lo script di Windows PowerShell . 

1. Associate il runbook all'istanza ESCWA utilizzando il tag instance.

1. Crea una EventBridge regola Amazon per filtrare l'evento EC2 Instance Launch Successful per il gruppo di scalabilità automatica Enterprise Server e crea la destinazione per utilizzare il runbook di automazione.

È possibile utilizzare lo CloudFormation snippet di esempio seguente per creare il runbook di automazione e la regola. EventBridge 

* CloudFormation Frammento di esempio per Systems Manager utilizzato per scalare le istanze di 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"
```

**Automazione per la scalabilità in un'istanza di Enterprise Server**

Analogamente alla scalabilità orizzontale, quando un'istanza di Enterprise Server viene *scalata in* orizzontale, viene avviato l'evento EC2 Instance-terminate Lifecycle Action e sono necessarie le seguenti chiamate di processo e API per rimuovere un'istanza di Micro Focus Enterprise Server dal PAC. 

1. Arresta la regione nell'istanza di Enterprise Server in fase di terminazione.

   ```
   POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
   ```

1. Rimuovere l'istanza Enterprise Server dal PAC.

   ```
   DELETE "/server/v1/config/mfds/${uid}"
   ```

1. Invia un segnale per continuare a terminare l'istanza di Enterprise Server.

I passaggi precedenti possono essere implementati in uno PowerShell script di Windows. Per ulteriori dettagli su questo processo, consultate il [documento Micro Focus Enterprise Server - Amministrazione di un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

I passaggi seguenti spiegano come creare un'automazione basata sugli eventi per terminare un'istanza di Enterprise Server da un PAC riutilizzando lo script di Windows. PowerShell  

1. Crea un runbook di Systems Manager Automation per richiamare lo script di Windows PowerShell .

1. Associate il runbook all'istanza ESCWA utilizzando il tag instance.

1. Crea un hook automatico per il ciclo di vita del gruppo con scalabilità, ad esempio la terminazione. EC2 

1. Crea una EventBridge regola Amazon per filtrare l'evento EC2 Instance-terminate Lifecycle Action per il gruppo di scalabilità automatica di Enterprise Server e crea la destinazione per utilizzare il runbook di automazione. 

È possibile utilizzare il seguente CloudFormation modello di esempio per creare un runbook, un hook del ciclo di vita e una regola di Systems Manager Automation. EventBridge 

* CloudFormation Frammento di esempio per un runbook di Systems Manager Automation utilizzato per la scalabilità in un'istanza di 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
```

**Automazione per un trigger di scalabilità EC2 automatica di Amazon**

Il processo di impostazione di una politica di scalabilità per le istanze di Enterprise Server richiede una comprensione del comportamento dell'applicazione. Nella maggior parte dei casi, è possibile impostare politiche di scalabilità di Target Tracking. Ad esempio, puoi utilizzare l'utilizzo medio della CPU come CloudWatch metrica Amazon per impostare la politica di scalabilità automatica. Per ulteriori informazioni, consulta le [politiche di scalabilità di monitoraggio di Target per Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Per le applicazioni con schemi di traffico regolari, prendi in considerazione l'utilizzo di una politica di scalabilità predittiva. Per ulteriori informazioni, consulta Scaling [predittivo per Amazon Auto EC2 Scaling.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html) 

# Crea un visualizzatore di file mainframe avanzato nel cloud AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Boopathy GOPALSAMY e Jeremiah O'Connor, Amazon Web Services*

## Riepilogo
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-summary"></a>

Questo modello fornisce esempi di codice e passaggi per aiutarti a creare uno strumento avanzato per la navigazione e la revisione dei file mainframe in formato fisso utilizzando i servizi serverless AWS. Il modello fornisce un esempio di come convertire un file di input mainframe in un documento Amazon OpenSearch Service per la navigazione e la ricerca. Lo strumento di visualizzazione dei file può aiutarti a ottenere quanto segue:
+ Mantieni la stessa struttura e lo stesso layout dei file mainframe per garantire la coerenza nell'ambiente di migrazione di destinazione AWS (ad esempio, puoi mantenere lo stesso layout per i file in un'applicazione batch che trasmette i file a parti esterne)
+ Velocizza lo sviluppo e i test durante la migrazione del mainframe
+ Supporta le attività di manutenzione dopo la migrazione

## Prerequisiti e limitazioni
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) con una sottorete raggiungibile dalla tua piattaforma legacy
+ 
**Nota**  
Un file di input e il corrispondente quaderno COBOL (Common Business-Oriented Language) (: Per esempi di file di input e quaderni COBOL, consultate il repository. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub [Per ulteriori informazioni sui quaderni COBOL, consulta la Guida alla programmazione di Enterprise COBOL for 6.3 sul sito Web IBM.) z/OS ](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf)

**Limitazioni**
+ L'analisi dei copybook è limitata a non più di due livelli annidati (OCCURS)

## Architecture
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-architecture"></a>

**Stack di tecnologia di origine**
+ File di input in formato [FB (Fixed Blocked](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats))
+ Layout del quaderno COBOL

**Stack tecnologico Target**
+ Amazon Athena
+  OpenSearch Servizio Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Architettura Target**

Il diagramma seguente mostra il processo di analisi e conversione di un file di input del mainframe in un documento di OpenSearch servizio per la navigazione e la ricerca.

![\[Processo di analisi e conversione del file di input del mainframe in Service. OpenSearch\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente o un'applicazione amministratore invia i file di input a un bucket S3 e i quaderni COBOL a un altro bucket S3.

1. 
**Nota**  
Il bucket S3 con i file di input richiama una funzione Lambda che avvia un flusso di lavoro Step Functions senza server. : L'uso di un trigger di eventi S3 e della funzione Lambda per guidare il flusso di lavoro Step Functions in questo modello è facoltativo. Gli esempi di GitHub codice di questo modello non includono l'uso di questi servizi, ma è possibile utilizzarli in base alle proprie esigenze.

1. Il flusso di lavoro Step Functions coordina tutti i processi batch delle seguenti funzioni Lambda:
   + La `s3copybookparser.py` funzione analizza il layout del quaderno ed estrae gli attributi dei campi, i tipi di dati e gli offset (necessari per l'elaborazione dei dati di input).
   + La `s3toathena.py` funzione crea un layout di tabella Athena. Athena analizza i dati di input elaborati dalla `s3toathena.py` funzione e li converte in un file CSV.
   + La `s3toelasticsearch.py` funzione acquisisce il file dei risultati dal bucket S3 e lo invia al servizio. OpenSearch 

1. Gli utenti accedono a OpenSearch Dashboards with OpenSearch Service per recuperare i dati in vari formati di tabelle e colonne e quindi eseguire query sui dati indicizzati.

## Tools (Strumenti)
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-tools"></a>

**Servizi AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi. In questo modello, si utilizza Lambda per implementare la logica di base, come l'analisi dei file, la conversione dei dati e il caricamento dei dati in OpenSearch Service per l'accesso interattivo ai file.
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) è un servizio gestito che ti aiuta a distribuire, gestire e scalare i cluster OpenSearch di servizi nel cloud AWS. In questo modello, utilizzi OpenSearch Service per indicizzare i file convertiti e fornire funzionalità di ricerca interattive per gli utenti.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) è un servizio di orchestrazione senza server che ti aiuta a combinare funzioni Lambda e altri servizi AWS per creare applicazioni aziendali critiche. In questo modello, usi Step Functions per orchestrare le funzioni Lambda.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Codice**

Il codice per questo pattern è disponibile nel repository. GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)

## Epiche
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-epics"></a>

### Prepara l'ambiente di destinazione
<a name="prepare-the-target-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) per archiviare i quaderni, i file di input e i file di output. Ti consigliamo la seguente struttura di cartelle per il tuo bucket S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea il cluster OpenSearch di servizi. | **Crea il cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Concedi l'accesso al ruolo IAM**Per fornire un accesso granulare al ruolo IAM (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) della funzione Lambda, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea Step Functions per l'orchestrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 

### Implementa ed esegui
<a name="deploy-and-run"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica i file di input e i quaderni nel bucket S3. | Scarica i file di esempio dalla cartella di esempio del [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repository e carica i file nel bucket S3 che hai creato in precedenza.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Invoca Step Functions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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>Esempio:<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> | Informazioni generali su AWS | 
| Convalida l'esecuzione del flusso di lavoro in Step Functions. | Nella [console Step Functions](https://console.aws.amazon.com/states/home), esaminate l'esecuzione del flusso di lavoro nell'**ispettore Graph**. Gli stati di esecuzione sono codificati a colori per rappresentare lo stato di esecuzione. **Ad esempio, il blu indica **In corso**, il verde indica **Riuscito e il rosso indica Non riuscito**.** È inoltre possibile consultare la tabella nella sezione **Cronologia degli eventi di esecuzione** per informazioni più dettagliate sugli eventi di esecuzione.Per un esempio di esecuzione grafica del flusso di lavoro, vedete il *grafico Step Functions* nella sezione *Informazioni aggiuntive* di questo modello. | Informazioni generali su AWS | 
| Convalida i registri di spedizione in Amazon. CloudWatch | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Per un esempio di registri di consegna riusciti, consulta i *registri di CloudWatch consegna* nella sezione *Informazioni aggiuntive* di questo modello. | Informazioni generali su AWS | 
| Convalida il file formattato nelle OpenSearch dashboard ed esegui operazioni sui file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 

## Risorse correlate
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-resources"></a>

**Riferimenti**
+ [Esempio di quaderno COBOL (documentazione](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) IBM)
+ [BMC Compuware File-AID (documentazione BMC](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html))

**Tutorial**
+ [Tutorial: utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda (documentazione AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))
+ [Come posso creare un flusso di lavoro serverless con AWS Step Functions e AWS Lambda (documentazione AWS](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/))
+ [Utilizzo di OpenSearch dashboard con Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentazione AWS)

## Informazioni aggiuntive
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Grafico Step Functions**

L'esempio seguente mostra un grafico Step Functions. Il grafico mostra lo stato di esecuzione delle funzioni Lambda utilizzate in questo modello.

![\[Il grafico Step Functions mostra lo stato dell'esecuzione per le funzioni Lambda utilizzate in questo modello.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch registri di consegna**

L'esempio seguente mostra i log di consegna riusciti per l'esecuzione dell'`s3toelasticsearch`esecuzione.


| 
| 
| 2022-08-10T 15:53:33.033-05:00 | Numero di documenti di elaborazione: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T 15:53:33.171-05:00 | [INFORMAZIONI] 2022-08-10T 20:53:33.171 Z a1b2c3d4-5678-90ab-cdef- Post:443/\$1bulk [stato:200 richiesta:0.100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T 15:53:33.172-05:00 | Scrittura in blocco riuscita: 100 documenti | 

# Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Riepilogo
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

[Questo modello fornisce un ambiente container di esempio per l'esecuzione di carichi di lavoro mainframe che sono stati modernizzati utilizzando lo strumento Blu Age.](https://www.bluage.com/) Blu Age converte i carichi di lavoro mainframe legacy in codice Java moderno. Questo modello fornisce un wrapper per l'applicazione Java in modo da poterla eseguire utilizzando servizi di orchestrazione di container come Amazon [Elastic Container Service (Amazon ECS) o Amazon Elastic [Kubernetes](https://aws.amazon.com/eks/) Service (Amazon](https://aws.amazon.com/ecs/) EKS).

Per ulteriori informazioni sulla modernizzazione dei carichi di lavoro utilizzando Blu Age e i servizi AWS, consulta queste pubblicazioni di AWS Prescriptive Guidance:
+ [Esecuzione di carichi di lavoro mainframe Blu Age modernizzati su un'infrastruttura AWS serverless](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

[Per assistenza sull'utilizzo di Blu Age per modernizzare i carichi di lavoro mainframe, contatta il team Blu Age scegliendo **Contatta i nostri** esperti sul sito Web Blu Age.](https://www.bluage.com/) Per assistenza sulla migrazione dei carichi di lavoro modernizzati su AWS, l'integrazione con i servizi AWS e il loro trasferimento in produzione, contatta il tuo account manager AWS o compila il modulo [AWS](https://pages.awscloud.com/AWS-Professional-Services.html) Professional Services.

## Prerequisiti e limitazioni
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Prerequisiti**
+ Un'applicazione Java modernizzata creata da Blu Age. A scopo di test, questo modello fornisce un'applicazione Java di esempio che è possibile utilizzare come proof of concept.
+ Un ambiente [Docker](https://aws.amazon.com/docker/) che puoi usare per creare il contenitore.

**Limitazioni**

A seconda della piattaforma di orchestrazione dei container utilizzata, le risorse che possono essere rese disponibili al contenitore (come CPU, RAM e storage) potrebbero essere limitate. Ad esempio, se utilizzi Amazon ECS con AWS Fargate, consulta la documentazione di [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) per limiti e considerazioni.

## Architecture
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Stack tecnologico di origine**
+ Età blu
+ Java

**Stack tecnologico Target**
+ Docker

**Architettura di destinazione**

Il diagramma seguente mostra l'architettura dell'applicazione Blu Age all'interno di un contenitore Docker.

![\[Applicazione Blu Age in un contenitore Docker\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. Il punto di ingresso per il contenitore è lo script wrapper. Questo script bash è responsabile della preparazione dell'ambiente di runtime per l'applicazione Blu Age e dell'elaborazione degli output.

1. Le variabili di ambiente all'interno del contenitore vengono utilizzate per configurare le variabili nello script wrapper, come i nomi dei bucket di Amazon Simple Storage Service (Amazon S3) e le credenziali del database. Le variabili di ambiente sono fornite da AWS Secrets Manager o Parameter Store, una funzionalità di AWS Systems Manager. Se utilizzi Amazon ECS come servizio di orchestrazione dei container, puoi anche codificare le variabili di ambiente nella definizione del task di Amazon ECS.

1. Lo script wrapper è responsabile dell'estrazione di tutti i file di input dal bucket S3 nel contenitore prima di eseguire l'applicazione Blu Age. L'AWS Command Line Interface (AWS CLI) viene installata all'interno del contenitore. Ciò fornisce un meccanismo per accedere agli oggetti archiviati in Amazon S3 tramite l'endpoint gateway Virtual Private Cloud (VPC).

1. Il file Java Archive (JAR) per l'applicazione Blu Age potrebbe dover comunicare con altre fonti di dati, come Amazon Aurora.

1. Dopo il completamento, lo script wrapper invia i file di output risultanti in un bucket S3 per un'ulteriore elaborazione (ad esempio, tramite Amazon CloudWatch Logging Services). Il modello supporta anche l'invio di file di log compressi ad Amazon S3, se utilizzi un'alternativa alla CloudWatch registrazione standard.

## Tools (Strumenti)
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.

**Strumenti**
+ [Docker](https://aws.amazon.com/docker/) è una piattaforma software per la creazione, il test e la distribuzione di applicazioni. Docker impacchetta il software in unità standardizzate chiamate [contenitori](https://aws.amazon.com/containers/), che contengono tutto ciò di cui il software ha bisogno per funzionare, tra cui librerie, strumenti di sistema, codice e runtime. Puoi usare Docker per distribuire e scalare le applicazioni in qualsiasi ambiente.
+ [Bash](https://www.gnu.org/software/bash/manual/) è un'interfaccia in linguaggio di comando (shell) per il sistema operativo GNU.
+ [Java](https://www.java.com/) è il linguaggio di programmazione e l'ambiente di sviluppo utilizzati in questo modello.
+ [Blu Age](https://www.bluage.com/) è uno strumento di modernizzazione dei mainframe AWS che converte i carichi di lavoro mainframe legacy, inclusi codice applicativo, dipendenze e infrastruttura, in carichi di lavoro moderni per il cloud.

**Repository di codice**

Il codice per questo pattern è disponibile nel [repository di contenitori di esempio GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Best practice
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Esternalizza le variabili per modificare il comportamento dell'applicazione utilizzando variabili di ambiente. Queste variabili consentono alla soluzione di orchestrazione del contenitore di modificare l'ambiente di runtime senza ricostruire il contenitore. Questo modello include esempi di variabili di ambiente che possono essere utili per le applicazioni Blu Age.
+ Convalida tutte le dipendenze dell'applicazione prima di eseguire l'applicazione Blu Age. Ad esempio, verificate che il database sia disponibile e che le credenziali siano valide. Scrivi dei test nello script wrapper per verificare le dipendenze e fallisci subito se non vengono soddisfatte.
+ Usa la registrazione dettagliata all'interno dello script wrapper. Interagire direttamente con un container in esecuzione può essere difficile, a seconda della piattaforma di orchestrazione e della durata del lavoro. Assicurati che venga scritto un output utile per facilitare la diagnosi `STDOUT` di eventuali problemi. Ad esempio, l'output potrebbe includere il contenuto della directory di lavoro dell'applicazione sia prima che dopo l'esecuzione dell'applicazione.

## Epiche
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Ottieni un file JAR dell'applicazione Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Opzione 1: utilizza Blu Age per ottenere il file JAR dell'applicazione. | Il contenitore in questo modello richiede un'applicazione Blu Age. In alternativa, è possibile utilizzare l'applicazione Java di esempio fornita con questo modello per un prototipo.Collaborate con il team di Blu Age per ottenere un file JAR per la vostra applicazione che può essere inserito nel contenitore. Se il file JAR non è disponibile, consultate l'operazione successiva per utilizzare invece l'applicazione di esempio. | Architetto del cloud | 
| Opzione 2: creare o utilizzare il file JAR dell'applicazione di esempio fornito. | Questo modello fornisce un file JAR di esempio predefinito. Questo file invia in output le variabili di ambiente dell'applicazione `STDOUT` prima di dormire per 30 secondi e uscire.Questo file ha un nome `bluAgeSample.jar` e si trova nella [cartella docker del GitHub repository](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker).[Se desideri modificare il codice e creare la tua versione del file JAR, usa il codice sorgente che si trova in. /java\$1 sample/src/sample \$1java\$1app.java nel repository](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub [È possibile utilizzare lo script di compilazione all'indirizzo. ](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample)/java\$1sample/build.sh per compilare il codice sorgente Java e creare un nuovo file JAR. | Sviluppatore di app | 

### Crea il contenitore Blu Age
<a name="build-the-blu-age-container"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il GitHub repository. | Clona il repository di codice di esempio utilizzando il comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Usa Docker per creare il contenitore. | Usa Docker per creare il contenitore prima di inviarlo a un registro Docker come Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Prova il contenitore Blu Age. | (Facoltativo) Se necessario, testate il contenitore localmente utilizzando il comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Effettua l'autenticazione nel tuo repository Docker. | Se prevedi di utilizzare Amazon ECR, segui le istruzioni nella [documentazione di Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) per installare e configurare l'AWS CLI e autenticare la CLI Docker nel tuo registro predefinito.[Ti consigliamo di utilizzare il comando per l'autenticazione. get-login-password ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html)  La [console Amazon ECR](https://console.aws.amazon.com/ecr/) fornisce una versione precompilata di questo comando se utilizzi il **pulsante Visualizza comandi push**. Per ulteriori informazioni, consulta la [documentazione di 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 non intendi utilizzare Amazon ECR, segui le istruzioni fornite per il tuo sistema di registro dei container. | AWS DevOps | 
| Crea un repository di contenitori. | Crea un repository in Amazon ECR. Per istruzioni, consulta lo schema [Distribuisci un ambiente per applicazioni Blu Age containerizzate](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) utilizzando Terraform.Se utilizzi un altro sistema di registro dei contenitori, segui le istruzioni fornite per quel sistema. | AWS DevOps | 
| Etichetta e invia il contenitore al repository di destinazione. | Se utilizzi Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Per ulteriori informazioni, consulta [Pushing a Docker image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) nella *Amazon ECR* User Guide. | AWS DevOps | 

## Risorse correlate
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**Risorse AWS**
+ [Repository di contenitori di esempio di AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Esecuzione di carichi di lavoro mainframe Blu Age modernizzati su un'infrastruttura AWS serverless](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Utilizzo di Amazon ECR con l'AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Amazon ECR* User Guide)
+ [Autenticazione del registro privato](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Amazon ECR User Guide*)
+ [Documentazione Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentazione Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Altre risorse**
+ [Sito Web Blu Age](https://www.bluage.com/)
+ [Sito web Docker](https://docker.com/)

# Converti e decomprimi i dati EBCDIC in ASCII su AWS usando Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Riepilogo
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-summary"></a>

Poiché i mainframe in genere ospitano dati aziendali critici, la modernizzazione dei dati è una delle attività più importanti durante la migrazione dei dati verso il cloud Amazon Web Services (AWS) o un altro ambiente American Standard Code for Information Interchange (ASCII). Sui mainframe, i dati sono generalmente codificati in formato EBCDIC (Extended Binary-Coded Decimal Interchange Code). L'esportazione di database, Virtual Storage Access Method (VSAM) o file flat produce generalmente file EBCDIC binari compressi, la cui migrazione è più complessa. La soluzione di migrazione del database più utilizzata è Change Data Capture (CDC), che, nella maggior parte dei casi, converte automaticamente la codifica dei dati. Tuttavia, i meccanismi CDC potrebbero non essere disponibili per questi database, VSAM o file flat. Per questi file, è necessario un approccio alternativo per modernizzare i dati.

Questo modello descrive come modernizzare i dati EBCDIC convertendoli in formato ASCII. Dopo la conversione, puoi caricare i dati in database distribuiti o fare in modo che le applicazioni nel cloud elaborino direttamente i dati. Il pattern utilizza lo script di conversione e i file di esempio presenti nel [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repository.

## Prerequisiti e limitazioni
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un file di input EBCDIC e il corrispondente quaderno COBOL (Common Business-Oriented Language). Nel repository sono inclusi un file EBCDIC di esempio e un quaderno COBOL. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Per ulteriori informazioni sui quaderni COBOL, consulta [Enterprise COBOL](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) for 6.4 Programming Guide sul sito Web IBM. z/OS 

**Limitazioni**
+ I layout di file definiti all'interno dei programmi COBOL non sono supportati. Devono essere resi disponibili separatamente.

**Versioni del prodotto**
+ Python versione 3.8 o successiva

## Architecture
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-architecture"></a>

**Stack tecnologico di origine**
+ Dati EBCDIC su un mainframe
+ Quaderno COBOL

**Stack tecnologico Target**
+ Istanza Amazon Elastic Compute Cloud (Amazon EC2) in un cloud privato virtuale (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python e i suoi pacchetti richiesti, JavaScript Object Notation (JSON), sys e datetime
+ File flat ASCII pronto per essere letto da un'applicazione moderna o caricato in una tabella di database relazionale

**Architettura Target**

![\[Dati EBCDIC convertiti in ASCII su un' EC2 istanza utilizzando script Python e un quaderno COBOL\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


Il diagramma di architettura mostra il processo di conversione di un file EBCDIC in un file ASCII su un'istanza: EC2 

1. Utilizzando lo script **parse\$1copybook\$1to\$1json.py**, convertite il quaderno COBOL in un file JSON.

1. Utilizzando il file JSON e lo script **extract\$1ebcdic\$1to\$1ascii.py**, convertite i dati EBCDIC in un file ASCII.

**Automazione e scalabilità**

Dopo aver predisposto le risorse necessarie per le prime conversioni manuali dei file, puoi automatizzare la conversione dei file. Questo modello non include istruzioni per l'automazione. Esistono diversi modi per automatizzare la conversione. Di seguito è riportata una panoramica di un approccio possibile:

1. Incapsula i comandi di script AWS Command Line Interface (AWS CLI) e Python in uno script di shell.

1. Crea una funzione AWS Lambda che invii in modo asincrono il job dello script di shell a un'istanza. EC2 Per ulteriori informazioni, consulta [Pianificazione di lavori SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Crea un trigger Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) che richiami la funzione Lambda ogni volta che viene caricato un file legacy. Per ulteriori informazioni, consulta [Usare un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Tools (Strumenti)
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e scalarli rapidamente verso l'alto o verso il basso.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Archivio di codice**

Il codice per questo pattern è disponibile nel [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repository.

## Epiche
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-epics"></a>

### Prepara l'istanza EC2
<a name="prepare-the-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia un' EC2 istanza. | L' EC2 istanza deve disporre di accesso a Internet in uscita. Ciò consente all'istanza di accedere al codice sorgente Python disponibile su. GitHub Per creare l'istanza:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS | 
| Installa Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS, Linux | 
| Installare Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS, Linux | 
| Clona il GitHub repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS generale, GitHub | 

### Crea il file ASCII dai dati EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza il quaderno COBOL nel file di layout JSON. | **All'interno della `mainframe-data-utilities` cartella, esegui lo script parse\$1copybook\$1to\$1json.py.** Questo modulo di automazione legge il layout del file da un quaderno COBOL e crea un file JSON. Il file JSON contiene le informazioni necessarie per interpretare ed estrarre i dati dal file sorgente. Questo crea i metadati JSON dal quaderno COBOL. Il comando seguente converte il quaderno COBOL in un file 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>Lo script stampa gli argomenti ricevuti.<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>Per ulteriori informazioni sugli argomenti, consultate il [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) nel GitHub repository. | Informazioni generali su AWS, Linux | 
| Ispeziona il file di layout JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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>Gli attributi più importanti del file di layout JSON sono:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Per ulteriori informazioni sul file di layout JSON, consultate il file [README nel repository](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). GitHub  | Informazioni generali su AWS, JSON | 
| Crea il file ASCII.  | Esegui lo script **extract\$1ebcdic\$1to\$1ascii.py**, incluso nel repository GitHub clonato. Questo script legge il file EBCDIC e scrive un file ASCII convertito e leggibile.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Durante l'elaborazione dei dati EBCDIC, lo script stampa un messaggio per ogni batch di 10.000 record. Guarda l'esempio seguente.<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>Per informazioni su come modificare la frequenza di stampa, consultate il [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) nel repository. GitHub  | Informazioni generali su AWS | 
| Esamina il file ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Se è stato utilizzato il file EBCDIC di esempio fornito, il seguente è il primo record del file 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> | Informazioni generali su AWS, Linux | 
| Valuta il file EBCDIC. | Nella EC2 console Amazon, inserisci il seguente comando. Questo apre il primo record del file EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Se hai utilizzato il file EBCDIC di esempio, il risultato è il seguente.<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>Per valutare l'equivalenza tra il file di origine e quello di destinazione, è richiesta una conoscenza approfondita di EBCDIC. Ad esempio, il primo carattere del file EBCDIC di esempio è un trattino (). `-` Nella notazione esadecimale del file EBCDIC, questo carattere è rappresentato da, e nella notazione esadecimale del file ASCII`60`, questo carattere è rappresentato da. `2D` [Per una tabella di EBCDIC-to-ASCII conversione, consulta EBCDIC to ASCII sul sito Web IBM.](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) | Informazioni generali su AWS, Linux, EBCDIC | 

## Risorse correlate
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-resources"></a>

**Riferimenti**
+ [Il set di caratteri EBCDIC (](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set)documentazione IBM)
+ [Da EBCDIC](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) ad ASCII (documentazione IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentazione IBM)
+ [Concetti JCL di base (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts))
+ [Connect alla tua istanza Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentazione Amazon)

**Tutorial**
+ [Pianificazione di lavori SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (post sul blog AWS)
+ [Utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda (documentazione AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))

# Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando 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*

## Riepilogo
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-summary"></a>

Questo modello mostra come avviare una AWS Lambda funzione che converte automaticamente i file EBCDIC (Extended Binary Coded Decimal Interchange Code) del mainframe in file ASCII (American Standard Code for Information Interchange) delimitati da caratteri. La funzione Lambda viene eseguita dopo il caricamento dei file ASCII in un bucket Amazon Simple Storage Service (Amazon S3). Dopo la conversione dei file, puoi leggere i file ASCII su carichi di lavoro basati su x86 o caricare i file in database moderni.

L'approccio alla conversione dei file illustrato in questo modello può aiutarvi a superare le sfide legate all'utilizzo dei file EBCDIC in ambienti moderni. I file codificati in EBCDIC contengono spesso dati rappresentati in formato binario o decimale compresso e i campi sono a lunghezza fissa. Queste caratteristiche creano ostacoli perché i carichi di lavoro o gli ambienti distribuiti moderni basati su x86 generalmente funzionano con dati con codifica ASCII e non sono in grado di elaborare file EBCDIC.

## Prerequisiti e limitazioni
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Un bucket Amazon S3
+ Un utente AWS Identity and Access Management (IAM) con autorizzazioni amministrative
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) o successivo
+ Un file flat codificato in EBCDIC e la struttura dati corrispondente in un quaderno COBOL (Common Business-Oriented Language)

**Nota**  
[Questo modello utilizza un file EBCDIC di esempio ([Client.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) e il quaderno COBOL corrispondente (COBKS05.cpy).](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy) Entrambi i GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)file sono disponibili nel repository.

**Limitazioni**
+ I quaderni COBOL di solito contengono più definizioni di layout. Il [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)progetto può analizzare questo tipo di quaderno ma non può dedurre quale layout prendere in considerazione per la conversione dei dati. Questo perché i quaderni non seguono questa logica (che rimane invece nei programmi COBOL). Di conseguenza, è necessario configurare manualmente le regole per la selezione dei layout dopo aver analizzato il quaderno.
+ Questo modello è soggetto alle quote [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

## Architecture
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-architecture"></a>

**Stack tecnologico di origine**
+ IBM z/OS, IBM i e altri sistemi EBCDIC
+ File sequenziali con dati codificati in EBCDIC (come IBM Db2 unloads)
+ Quaderno COBOL

**Stack tecnologico Target**
+ Simple Storage Service (Amazon S3)
+ Notifica degli eventi di Amazon S3
+ IAM
+ funzione Lambda
+ Python 3.8 o versioni successive
+ Utilità per dati mainframe
+ Metadati JSON
+ File ASCII delimitati da caratteri

**Architettura di Target**

Il diagramma seguente mostra un'architettura per la conversione dei file EBCDIC mainframe in file ASCII.

![\[Architettura per la conversione dei file EBCDIC mainframe in file ASCII\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'utente esegue lo script di analisi dei copybook, che converte il quaderno COBOL in un file JSON.

1. L'utente carica i metadati JSON in un bucket Amazon S3. Ciò rende i metadati leggibili dalla funzione Lambda di conversione dei dati.

1. L'utente o un processo automatizzato carica il file EBCDIC nel bucket Amazon S3.

1. L'evento di notifica di Amazon S3 attiva la funzione Lambda di conversione dei dati.

1. AWS verifica le autorizzazioni di lettura/scrittura del bucket Amazon S3 per la funzione Lambda.

1. Lambda legge il file dal bucket Amazon S3 e lo converte localmente da EBCDIC in ASCII.

1. Lambda registra lo stato del processo in Amazon. CloudWatch

1. Lambda riscrive il file ASCII su Amazon S3.

**Nota**  
Lo script di analisi dei copybook viene eseguito una sola volta per eseguire la conversione dei metadati in formato JSON, che viene successivamente archiviato in un bucket Amazon S3. Dopo la conversione iniziale, tutti i file EBCDIC successivi che fanno riferimento allo stesso file JSON nel bucket Amazon S3 utilizzeranno la configurazione dei metadati esistente.

## Tools (Strumenti)
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-tools"></a>

**Servizi AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)è una shell basata su browser che puoi utilizzare per gestire Servizi AWS utilizzando AWS Command Line Interface (AWS CLI) e una gamma di strumenti di sviluppo preinstallati.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Lambda esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Codice**

Il codice per questo pattern è disponibile nel repository. GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)

## Best practice
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-best-practices"></a>

Prendi in considerazione le seguenti best practice:
+ Imposta le autorizzazioni richieste a livello di Amazon Resource Name (ARN).
+ Concedi sempre le autorizzazioni con privilegi minimi per le policy IAM. Per ulteriori informazioni, consulta le [best practice di sicurezza in IAM nella documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

## Epiche
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-epics"></a>

### Crea variabili di ambiente e una cartella di lavoro
<a name="create-environment-variables-and-a-working-folder"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare le variabili di ambiente. | Copiate le seguenti variabili di ambiente in un editor di testo, quindi sostituite i `<placeholder>` valori dell'esempio seguente con i valori delle risorse:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Creerai riferimenti al tuo bucket Amazon S3 e versioni successive Account AWS. Regione AWS Per definire le variabili di ambiente, apri la [CloudShell console](https://console.aws.amazon.com/cloudshell/), quindi copia e incolla le variabili di ambiente aggiornate nella riga di comando.È necessario ripetere questo passaggio ogni volta che la CloudShell sessione viene riavviata. | Informazioni generali su AWS | 
| Crea una cartella di lavoro. | Per semplificare il processo di pulizia delle risorse in un secondo momento, crea una cartella di lavoro CloudShell eseguendo il seguente comando:<pre>mkdir workdir; cd workdir</pre>È necessario modificare la directory nella directory di lavoro (`workdir`) ogni volta che si perde la connessione alla CloudShell sessione. | Informazioni generali su AWS | 

### Definisci un ruolo e una policy IAM
<a name="define-an-iam-role-and-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una politica di fiducia per la funzione Lambda. | Il convertitore EBCDIC funziona con una funzione Lambda. La funzione deve avere un ruolo IAM. Prima di creare il ruolo IAM, è necessario definire un documento sulla politica di fiducia che consenta alle risorse di assumere tale politica.Dalla cartella CloudShell di lavoro, crea un documento di policy eseguendo il seguente 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> | Informazioni generali su AWS | 
| Crea il ruolo IAM per la conversione Lambda. | Per creare un ruolo IAM, esegui il seguente AWS CLI comando dalla cartella di CloudShell lavoro:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | Informazioni generali su AWS | 
| Crea il documento di policy IAM per la funzione Lambda. | La funzione Lambda deve disporre dell'accesso in lettura/scrittura al bucket Amazon S3 e delle autorizzazioni di scrittura per Amazon Logs. CloudWatch Per creare una policy IAM, esegui il seguente comando dalla cartella di lavoro: CloudShell <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> | Informazioni generali su AWS | 
| Allega il documento relativo alla policy IAM al ruolo IAM. | Per allegare la policy IAM al ruolo IAM, inserisci il seguente comando dalla tua cartella di CloudShell lavoro:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | Informazioni generali su AWS | 

### Crea la funzione Lambda per la conversione EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il codice sorgente della conversione EBCDIC. | Dalla cartella CloudShell di lavoro, esegui il seguente comando per scaricare il codice mainframe-data-utilities sorgente da: GitHub<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | Informazioni generali su AWS | 
| Crea il pacchetto ZIP. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per creare il pacchetto ZIP che crea la funzione Lambda per la conversione EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | Informazioni generali su AWS | 
| Creazione della funzione Lambda | Dalla cartella di CloudShell lavoro, immettete il seguente comando per creare la funzione Lambda per la conversione 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> Il layout della variabile di ambiente indica alla funzione Lambda dove risiedono i metadati JSON. | Informazioni generali su AWS | 
| Crea la politica basata sulle risorse per la funzione Lambda. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per consentire alla notifica degli eventi di Amazon S3 di attivare la funzione Lambda per la conversione 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> | Informazioni generali su AWS | 

### Crea la notifica degli eventi di Amazon S3
<a name="create-the-s3-event-notification"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il documento di configurazione per la notifica degli eventi di Amazon S3. | La notifica degli eventi di Amazon S3 avvia la funzione Lambda di conversione EBCDIC quando i file vengono inseriti nella cartella di input.Dalla cartella di CloudShell lavoro, esegui il seguente comando per creare il documento JSON per la notifica degli eventi di 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> | Informazioni generali su AWS | 
| Crea la notifica degli eventi di Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per creare la notifica degli eventi di Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | Informazioni generali su AWS | 

### Crea e carica i metadati JSON
<a name="create-and-upload-the-json-metadata"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza il quaderno COBOL. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per analizzare un quaderno COBOL di esempio in un file JSON (che definisce come leggere e suddividere correttamente il file di dati):<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> | Informazioni generali su AWS | 
| Aggiungi la regola di trasformazione. | Il file di dati di esempio e il corrispondente quaderno COBOL sono un file a più layout. Ciò significa che la conversione deve suddividere i dati in base a determinate regole. In questo caso, i byte nelle posizioni 3 e 4 in ogni riga definiscono il layout.Dalla cartella CloudShell di lavoro, modificate il `CLIENT.json` file e modificate il contenuto nel `"transf-rule": [],` modo seguente:<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> | Informazioni generali su AWS, mainframe IBM, Cobol | 
| Carica i metadati JSON nel bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente AWS CLI comando per caricare i metadati JSON nel tuo bucket Amazon S3:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | Informazioni generali su AWS | 

### Convertire il file EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia il file EBCDIC al bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per inviare il file EBCDIC al bucket Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Ti consigliamo di impostare cartelle diverse per i file di input (EBCDIC) e di output (ASCII) per evitare di richiamare nuovamente la funzione di conversione Lambda quando il file ASCII viene caricato nel bucket Amazon S3. | Informazioni generali su AWS | 
| Controlla l'output. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per verificare se il file ASCII è generato nel tuo bucket Amazon S3:<pre>aws s3 ls s3://$bucket/</pre> La conversione dei dati può richiedere diversi secondi. Ti consigliamo di verificare la presenza del file ASCII alcune volte.Una volta che il file ASCII è disponibile, inserisci il seguente comando per visualizzare il contenuto del file convertito nel bucket Amazon S3. Se necessario, puoi scaricarlo o utilizzarlo direttamente dal bucket Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Controlla il contenuto del file 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> | Informazioni generali su AWS | 

### Pulisci l'ambiente
<a name="clean-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| (Facoltativo) Prepara le variabili e la cartella. | Se perdete la connessione con CloudShell, riconnettetevi e immettete il seguente comando per spostare la directory nella cartella di lavoro:<pre>cd workdir</pre>Assicuratevi che le variabili di ambiente siano definite:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | Informazioni generali su AWS | 
| Rimuovi la configurazione di notifica per il bucket. | Dalla cartella di CloudShell lavoro, esegui il seguente comando per rimuovere la configurazione di notifica degli eventi di Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | Informazioni generali su AWS | 
| Elimina la funzione Lambda. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per eliminare la funzione Lambda per il convertitore EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | Informazioni generali su AWS | 
| Elimina il ruolo e la policy IAM. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per rimuovere il ruolo e la politica del convertitore 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> | Informazioni generali su AWS | 
| Elimina i file generati nel bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per eliminare i file generati nel bucket 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> | Informazioni generali su AWS | 
| Elimina la cartella di lavoro. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per `workdir` rimuoverne il contenuto:<pre>cd ..; rm -Rf workdir</pre> | Informazioni generali su AWS | 

## Risorse correlate
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilità per dati mainframe README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [Il set di caratteri EBCDIC (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set))
+ [Da EBCDIC](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) ad ASCII (documentazione IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentazione IBM)
+ [Utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentazione)AWS Lambda 

# Convertite file di dati mainframe con layout di registrazione complessi utilizzando Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

## Riepilogo
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-summary"></a>

Nota: Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello mostra come convertire i file di dati mainframe con dati non testuali e layout di record complessi dalla codifica dei caratteri EBCDIC (Extended Binary Coded Decimal Interchange Code) alla codifica dei caratteri ASCII (American Standard Code for Information Interchange) utilizzando un file di struttura Micro Focus. Per completare la conversione del file, è necessario effettuare le seguenti operazioni:

1. Preparate un unico file sorgente che descriva tutti gli elementi di dati e i layout dei record nell'ambiente mainframe.

1. Create un file di struttura che contenga il layout di registrazione dei dati utilizzando Micro Focus Data File Editor come parte di Micro Focus Classic Data File Tools o Data File Tools. Il file di struttura identifica i dati non testuali in modo da poter convertire correttamente i file mainframe da EBCDIC in ASCII.

1. Verificate il file di struttura utilizzando Classic Data File Tools o Data File Tools.

## Prerequisiti e limitazioni
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Micro Focus Enterprise Developer per Windows, disponibile tramite [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versioni del prodotto**
+ Micro Focus Enterprise Server 7.0 e versioni successive

## Tools (Strumenti)
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ [Micro Focus Enterprise Developer](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) fornisce l'ambiente di esecuzione per le applicazioni create con qualsiasi variante dell'ambiente di sviluppo integrato (IDE) di Enterprise Developer.
+ Micro Focus [Classic Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) vi aiuta a convertire, navigare, modificare e creare file di dati. I Classic Data File Tools includono [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).
+ Micro Focus [Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) vi aiuta a creare, modificare e spostare file di dati. I Data File Tools includono [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 [Data File Structure Command Line Utility](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

## Epiche
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-epics"></a>

### Prepara il file sorgente
<a name="prepare-the-source-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica i componenti di origine. | Identifica tutti i possibili layout di record per il file, incluse eventuali ridefinizioni che contengono dati non testuali.Se disponete di layout che contengono ridefinizioni, dovete suddividerli in layout unici che descrivano ogni possibile permutazione della struttura dei dati. In genere, i layout dei record di un file di dati possono essere descritti dai seguenti archetipi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)[Per ulteriori informazioni sulla creazione di layout di record semplificati per file che contengono layout di record complessi, vedere Rehosting di applicazioni EBCDIC su ambienti ASCII per le migrazioni mainframe.](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html) | Sviluppatore di app | 
| Identifica le condizioni di layout dei record. | Per i file con più layout di record o i file che contengono layout complessi con una clausola REDEFINES, identificate i dati e le condizioni all'interno di un record che potete utilizzare per definire il layout da utilizzare durante la conversione. Si consiglia di discutere di questa attività con un esperto in materia (SME) che conosca i programmi che elaborano questi file.Ad esempio, un file può contenere due tipi di record che contengono dati non testuali. È possibile controllare il codice sorgente ed eventualmente trovare codice simile al seguente:<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>Il codice consente di identificare quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)È possibile documentare i valori utilizzati da questo campo per associare i layout dei record ai record di dati corretti nel file. | Sviluppatore di app | 
| Crea il file sorgente. | Se il file è descritto in più file di origine o se il layout del record contiene dati non di testo subordinati a una clausola REDEFINES, create un nuovo file sorgente che contenga i layout dei record. Il nuovo programma non ha bisogno di descrivere il file utilizzando le istruzioni SELECT e FD. Il programma può semplicemente contenere le descrizioni dei record come 01 livelli all'interno di Working-Storage.È possibile creare un file sorgente per ogni file di dati o creare un file sorgente principale che descriva tutti i file di dati. | Sviluppatore di app | 
| Compila il file sorgente. | Compila il file sorgente per creare il dizionario dei dati. Ti consigliamo di compilare il file sorgente utilizzando il set di caratteri EBCDIC. Se vengono utilizzate la direttiva IBMCOMP o le direttive ODOSLIDE, è necessario utilizzare queste direttive anche nel file sorgente.IBMCOMP influisce sulla memorizzazione dei byte dei campi COMP e ODOSLIDE influisce sul padding sulle strutture OCCURS VARIYING. Se queste direttive sono impostate in modo errato, lo strumento di conversione non leggerà correttamente il record di dati. Ciò si traduce in dati errati nel file convertito. | Sviluppatore di app | 

### (Opzione A) Crea il file di struttura utilizzando Classic Data File Tools
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia lo strumento e carica il dizionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 
| Create il layout di record predefinito. | Utilizza il layout di record predefinito per tutti i record che non corrispondono a nessun layout condizionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Il layout predefinito viene visualizzato nel riquadro **Layout** e può essere identificato dall'icona rossa della cartella. | Sviluppatore di app | 
| Crea un layout di registrazione condizionale. | Usa il layout di registrazione condizionale quando c'è più di un layout di record in un file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione B) Create il file di struttura utilizzando Data File Tools
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia lo strumento e carica il dizionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 
| Crea il layout di record predefinito. | Utilizza il layout di record predefinito per tutti i record che non corrispondono a nessun layout condizionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Il layout predefinito viene visualizzato nel riquadro **Layout** e può essere identificato dall'icona blu «D». | Sviluppatore di app | 
| Crea un layout di registrazione condizionale. | Usa il layout di registrazione condizionale quando c'è più di un layout di record in un file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione A) Testate il file di struttura utilizzando Classic Data File Tools
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova un file di dati EBCDIC. | Conferma di poter utilizzare il file di struttura per visualizzare correttamente un file di dati di test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione B) Testate il file di struttura utilizzando Data File Tools
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova un file di dati EBCDIC. | Conferma di poter utilizzare il file di struttura per visualizzare correttamente un file di dati di test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### Prova la conversione dei file di dati
<a name="test-data-file-conversion"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la conversione di un file EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

## Risorse correlate
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Micro Focus (documentazione Micro](https://www.microfocus.com/en-us/products/enterprise-suite/overview) Focus)
+ [Mainframe e codice legacy](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (post sul blog AWS)
+ [AWS Prescriptive Guidance (](https://docs.aws.amazon.com/prescriptive-guidance/)documentazione AWS)
+ [Documentazione AWS](https://docs.aws.amazon.com/index.html) (documentazione AWS)
+ [Riferimento generale AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentazione AWS)
+ [Glossario AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentazione AWS)

# Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Riepilogo
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

La migrazione dei carichi di lavoro mainframe legacy in architetture cloud moderne può eliminare i costi di manutenzione di un mainframe, costi che aumentano solo con l'invecchiamento dell'ambiente. Tuttavia, la migrazione dei lavori da un mainframe può porre sfide uniche. Le risorse interne potrebbero non conoscere la logica del lavoro e le elevate prestazioni dei mainframe in queste attività specializzate possono essere difficili da replicare rispetto a quelle di uso generalizzato. CPUs Riscrivere questi lavori può essere un'impresa ardua e richiedere un notevole impegno.

Blu Age converte i carichi di lavoro mainframe legacy in codice Java moderno, che puoi quindi eseguire come contenitore.

Questo modello fornisce un esempio di architettura serverless per l'esecuzione di un'applicazione containerizzata che è stata modernizzata con lo strumento Blu Age. I file HashiCorp Terraform inclusi creeranno un'architettura sicura per l'orchestrazione dei contenitori Blu Age, supportando sia attività in batch che servizi in tempo reale.

Per ulteriori informazioni sulla modernizzazione dei carichi di lavoro utilizzando Blu Age e i servizi AWS, consulta queste pubblicazioni AWS Prescriptive Guidance:
+ [Esecuzione di carichi di lavoro mainframe modernizzati con Blu Age sull'infrastruttura serverless AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

**[Per ricevere assistenza sull'utilizzo di Blu Age per modernizzare i carichi di lavoro mainframe, contatta il team Blu Age selezionando Contatta i nostri esperti sul sito Web Blu Age.](https://www.bluage.com/)** Per assistenza sulla migrazione dei carichi di lavoro modernizzati su AWS, l'integrazione con i servizi AWS e il loro trasferimento in produzione, contatta il tuo account manager AWS o compila il modulo [AWS](https://pages.awscloud.com/AWS-Professional-Services.html) Professional Services.

## Prerequisiti e limitazioni
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Prerequisiti**
+ L'applicazione di esempio di Blu Age containerizzata fornita dai carichi di [lavoro mainframe Containerize](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) che sono stati modernizzati dal modello Blu Age. L'applicazione di esempio fornisce la logica per gestire l'elaborazione di input e output per l'applicazione modernizzata e può integrarsi con questa architettura.
+ Terraform è necessario per distribuire queste risorse.

**Limitazioni**
+ Amazon Elastic Container Service (Amazon ECS) impone dei limiti alle risorse delle attività che possono essere rese disponibili per il container. Queste risorse includono CPU, RAM e storage. Ad esempio, quando si utilizza Amazon ECS con AWS Fargate, si applicano i limiti [delle risorse delle attività](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versioni del prodotto**

Questa soluzione è stata testata con le seguenti versioni:
+ Terraform 1.3.6
+ Terraform AWS Provider 4.46.0

## Architecture
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Stack tecnologico di origine**
+ Età blu
+ Terraform

**Stack tecnologico Target**
+ Amazon Aurora PostgreSQL-Compatible Edition
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ Server di gestione delle chiavi AWS (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Architettura Target**

Il diagramma seguente mostra l'architettura della soluzione.

![\[La descrizione segue il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. La soluzione implementa i seguenti ruoli IAM:
   + Ruolo dell'attività Batch
   + Ruolo di esecuzione delle attività Batch
   + Ruolo dell'attività di servizio
   + Ruolo di esecuzione dell'attività di servizio
   + Ruolo Step Functions
   + Ruolo di AWS Backup
   + Ruolo RDS Enhanced Monitoring.

   I ruoli sono conformi ai principi di accesso con privilegi minimi.

1. Amazon ECR viene utilizzato per archiviare l'immagine del contenitore orchestrata da questo modello.

1. AWS Systems Manager Parameter Store fornisce dati di configurazione su ciascun ambiente alla definizione delle attività di Amazon ECS in fase di esecuzione.

1. AWS Secrets Manager fornisce dati di configurazione sensibili sull'ambiente alla definizione delle attività di Amazon ECS in fase di esecuzione. I dati sono stati crittografati da AWS KMS.

1. I moduli Terraform creano definizioni di attività Amazon ECS per tutte le attività in tempo reale e in batch.

1. Amazon ECS esegue un'attività in batch utilizzando AWS Fargate come motore di elaborazione. Si tratta di un'attività di breve durata, avviata come richiesto da AWS Step Functions.

1. Amazon Aurora, compatibile con PostgreSQL, fornisce un database per supportare l'applicazione modernizzata. Questo sostituisce i database mainframe come IBM Db2 o IBM IMS DB.

1. Amazon ECS offre un servizio di lunga durata per fornire un carico di lavoro modernizzato in tempo reale. Queste applicazioni stateless vengono eseguite in modo permanente con contenitori distribuiti tra le zone di disponibilità.

1. Un Network Load Balancer viene utilizzato per concedere l'accesso al carico di lavoro in tempo reale. Il Network Load Balancer supporta protocolli precedenti, come IBM CICS. In alternativa, puoi utilizzare un Application Load Balancer con carichi di lavoro basati su HTTP.

1. Amazon S3 fornisce lo storage di oggetti per gli input e gli output dei processi. Il contenitore dovrebbe gestire le operazioni pull and push in Amazon S3 per preparare la directory di lavoro per l'applicazione Blu Age.

1. Il servizio AWS Step Functions viene utilizzato per orchestrare l'esecuzione delle attività di Amazon ECS per elaborare carichi di lavoro in batch.

1. Gli argomenti SNS per ogni carico di lavoro batch vengono utilizzati per integrare l'applicazione modernizzata con altri sistemi, come la posta elettronica, o per avviare azioni aggiuntive, come la consegna di oggetti di output da Amazon S3 a FTP.

**Nota**  
Per impostazione predefinita, la soluzione non ha accesso a Internet. Questo modello presuppone che il cloud privato virtuale (VPC) sia connesso ad altre reti utilizzando un servizio [come AWS](https://aws.amazon.com/transit-gateway/) Transit Gateway. Pertanto, vengono implementati endpoint VPC a più interfacce per garantire l'accesso ai servizi AWS utilizzati dalla soluzione. Per attivare l'accesso diretto a Internet, puoi utilizzare l'interruttore nel modulo Terraform per sostituire gli endpoint VPC con un gateway Internet e le risorse associate.

**Automazione e scalabilità**

L'uso di risorse serverless in questo modello contribuisce a garantire che, grazie alla scalabilità orizzontale, vi siano pochi limiti alla scalabilità di questo progetto. In questo modo si riducono i *fastidiosi problemi dei vicini*, come la concorrenza per le risorse di elaborazione che si potrebbe riscontrare sul mainframe originale. Le attività Batch possono essere pianificate per l'esecuzione simultanea in base alle esigenze.

I singoli contenitori sono limitati dalle dimensioni massime supportate da Fargate. Per ulteriori informazioni, consulta la sezione [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) nella documentazione di Amazon ECS.

Per [scalare orizzontalmente i carichi di lavoro in tempo reale](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), puoi aggiungere contenitori.

## Tools (Strumenti)
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-tools"></a>

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) è un servizio completamente gestito che ti aiuta a centralizzare e automatizzare la protezione dei dati su Servizi AWS, nel cloud e in locale.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ti aiuta a sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) è un servizio di orchestrazione senza server che ti aiuta a combinare AWS Lambda funzioni e altro Servizi AWS per creare applicazioni aziendali critiche.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) fornisce uno storage sicuro e gerarchico per la gestione dei dati di configurazione e la gestione dei segreti.

**Altri servizi**
+ [HashiCorp Terraform](https://www.terraform.io/docs) è uno strumento Infrastructure as Code (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud. Questo modello utilizza Terraform per creare l'architettura di esempio.

**Archivio di codice**

Il codice sorgente di questo pattern è disponibile nel repository 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)).

## Best practice
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Per gli ambienti di test, utilizza funzionalità come la `forceDate` possibilità di configurare l'applicazione modernizzata per generare risultati di test coerenti eseguendo sempre per un periodo di tempo noto.
+ Ottimizza ogni attività individualmente per consumare la quantità ottimale di risorse. Puoi utilizzare [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) per ottenere indicazioni su potenziali colli di bottiglia.

## Epiche
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Prepara l'ambiente per l'implementazione
<a name="prepare-the-environment-for-deployment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il codice sorgente della soluzione. | [Clona il codice della soluzione dal GitHub progetto.](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform) | DevOps ingegnere | 
| Avvia l'ambiente distribuendo risorse per archiviare lo stato di Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingegnere | 

### Implementa l'infrastruttura della soluzione
<a name="deploy-the-solution-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rivedi e aggiorna la configurazione di Terraform. | Nella directory principale, apri il file, `main.tf,` esamina il contenuto e valuta la possibilità di apportare i seguenti aggiornamenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingegnere | 
| Distribuisci il file Terraform. | Dal tuo terminale, esegui il `terraform apply` comando per distribuire tutte le risorse. Esamina le modifiche generate da Terraform e inserisci **yes** per avviare la build.Tieni presente che possono essere necessari più di 15 minuti per implementare questa infrastruttura. | DevOps ingegnere | 

### (Facoltativo) Implementa un'applicazione containerizzata Blu Age valida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia l'immagine del contenitore Blu Age ad Amazon ECR. | Inserisci il contenitore nel repository Amazon ECR che hai creato nell'epopea precedente. Per istruzioni, consulta la [documentazione di Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)Prendi nota dell'URI dell'immagine del contenitore. | DevOps ingegnere | 
| Aggiorna Terraform in modo che faccia riferimento all'immagine del contenitore Blu Age. | Aggiorna il file `main.tf`**** in modo che faccia riferimento all'immagine del contenitore che hai caricato. | DevOps ingegnere | 
| Ridistribuisci il file Terraform. | Dal tuo terminale, esegui `terraform apply` per distribuire tutte le risorse. Esamina gli aggiornamenti suggeriti da Terraform, quindi inserisci **yes** per procedere con la distribuzione. | DevOps ingegnere | 

## Risorse correlate
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Età blu](https://www.bluage.com/)
+ [Esecuzione di carichi di lavoro mainframe modernizzati con Blu Age sull'infrastruttura serverless AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Genera approfondimenti sui z/OS dati Db2 utilizzando Modernizzazione del mainframe AWS Amazon Q in 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*

## Riepilogo
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

Nota: il Modernizzazione del mainframe AWS servizio (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se la tua organizzazione ospita dati aziendali critici in un ambiente mainframe IBM Db2, ottenere informazioni approfondite da tali dati è fondamentale per promuovere la crescita e l'innovazione. Sbloccando i dati del mainframe, puoi creare business intelligence più veloce, sicura e scalabile per accelerare il processo decisionale, la crescita e l'innovazione basati sui dati nel cloud Amazon Web Services ().AWS

Questo modello presenta una soluzione per generare approfondimenti aziendali e creare narrazioni condivisibili a partire dai dati mainframe in IBM Db2 for tables. z/OS [Le modifiche ai dati del mainframe vengono trasmesse in streaming all'argomento [Amazon Managed Streaming for Apache Kafka (Amazon Modernizzazione del mainframe AWS MSK) utilizzando Data Replication with Precisly](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html).](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html) Utilizzando [lo streaming ingestion di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), i dati tematici di Amazon MSK vengono archiviati in tabelle di data warehouse Serverless di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) per l'analisi in Amazon Quick Sight.

Dopo che i dati sono disponibili in Quick Sight, puoi utilizzare istruzioni in linguaggio naturale con [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) per creare riepiloghi dei dati, porre domande e generare storie di dati. Non è necessario scrivere query SQL o imparare a usare uno strumento di business intelligence (BI).

**Contesto aziendale**

Questo modello presenta una soluzione per i casi d'uso di analisi dei dati mainframe e analisi dei dati. Utilizzando il modello, crei una dashboard visiva per i dati della tua azienda. Per dimostrare la soluzione, questo modello utilizza un'azienda sanitaria che fornisce piani medici, dentistici e oculistici ai suoi membri negli Stati Uniti. In questo esempio, i dati demografici dei membri e le informazioni sul piano vengono archiviati in IBM Db2 for data tables. z/OS La dashboard visiva mostra quanto segue:
+ Distribuzione dei membri per regione
+ Distribuzione dei membri per genere
+ Distribuzione dei membri per età
+ Distribuzione dei membri per tipo di piano
+ Membri che non hanno completato l'immunizzazione preventiva

Per esempi di distribuzione dei membri per regione e membri che non hanno completato l'immunizzazione preventiva, vedere la sezione Informazioni aggiuntive.

Dopo aver creato la dashboard, si genera una storia basata sui dati che spiega le informazioni ricavate dall'analisi precedente. La storia dei dati fornisce raccomandazioni per aumentare il numero di membri che hanno completato le vaccinazioni preventive.

## Prerequisiti e limitazioni
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS. Questa soluzione è stata creata e testata su Amazon Linux 2 su Amazon Elastic Compute Cloud (Amazon EC2).
+ Un cloud privato virtuale (VPC) con una sottorete accessibile dal sistema mainframe.
+ Un database mainframe con dati aziendali. Per i dati di esempio utilizzati per creare e testare questa soluzione, consulta la sezione *Allegati.*
+ Change Data Capture (CDC) abilitato nelle tabelle z/OS Db2. [Per abilitare CDC su Db2 z/OS, consulta la documentazione IBM.](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes)
+ Precisly Connect CDC per l' z/OS installazione sul z/OS sistema che ospita i database di origine. Il Precisly Connect CDC for z/OS image viene fornito come file zip all'interno di [Modernizzazione del mainframe AWS - Data Replication for IBM z/OS Amazon](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Machine Image (AMI). Per installare Precisly Connect CDC for z/OS sul mainframe, consulta la documentazione di [installazione di Precisly](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.

**Limitazioni**
+ I dati Db2 del mainframe devono essere in un tipo di dati supportato da Precisly Connect CDC. Per un elenco dei tipi di dati supportati, consulta la [documentazione di Precisly 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).
+ I tuoi dati su Amazon MSK devono essere in un tipo di dati supportato da Amazon Redshift. Per un elenco dei tipi di dati supportati, consulta la documentazione di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift ha comportamenti e limiti di dimensione diversi per diversi tipi di dati. Per ulteriori informazioni, consulta la documentazione di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ I dati quasi in tempo reale in Quick Sight dipendono dall'intervallo di aggiornamento impostato per il database Amazon Redshift.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Amazon Q in Quick Sight non è attualmente disponibile in tutte le regioni che supportano Quick Sight. Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ Modernizzazione del mainframe AWS Replica dei dati con Precisly versione 4.1.44
+ Python versione 3.6 o successiva
+ Apache Kafka versione 3.5.1****

## Architecture
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**Architettura Target**

Il diagramma seguente mostra un'architettura per generare informazioni aziendali dai dati mainframe utilizzando [Modernizzazione del mainframe AWS Data Replication with Precisly e](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) Amazon Q in Quick Sight.

![\[Processo in sette fasi dal z/OS mainframe ad Amazon. QuickSight\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'agente Precisly Log Reader legge i dati dai log Db2 e li scrive in uno storage transitorio su un file system OMVS sul mainframe.

1. Il Publisher Agent legge i log Db2 non elaborati dallo storage transitorio.

1. Il daemon del controller locale autentica, autorizza, monitora e gestisce le operazioni.

1. L'agente Apply viene distribuito su Amazon EC2 utilizzando l'AMI preconfigurata. Si connette con Publisher Agent tramite il daemon del controller utilizzando TCP/IP. L'agente Apply invia i dati ad Amazon MSK utilizzando più worker per un throughput elevato.

1. I lavoratori scrivono i dati nell'argomento Amazon MSK in formato JSON. Come destinazione intermedia per i messaggi replicati, Amazon MSK offre funzionalità di failover automatizzate e ad alta disponibilità.

1. L'ingestione di streaming di Amazon Redshift fornisce l'inserimento di dati a bassa latenza e alta velocità da Amazon MSK a un database Amazon Redshift Serverless. Una procedura memorizzata in Amazon Redshift esegue la riconciliazione dei dati di modifica del mainframe (insert/update/deletes) nelle tabelle Amazon Redshift. Queste tabelle Amazon Redshift fungono da fonte di analisi dei dati per Quick Sight.

1. Gli utenti accedono ai dati in Quick Sight per analisi e approfondimenti. Puoi utilizzare Amazon Q in Quick Sight per interagire con i dati utilizzando istruzioni in linguaggio naturale.

## Tools (Strumenti)
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e scalarli rapidamente verso l'esterno o verso l'esterno.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) consente di creare e controllare chiavi crittografiche per proteggere i dati.
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) è un servizio completamente gestito che ti aiuta a creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati di streaming.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e generare report sui dati in un'unica dashboard. Questo modello utilizza le funzionalità di BI generativa di Amazon Q in Quick Sight.
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) è un'opzione serverless di Amazon Redshift che rende più efficiente l'esecuzione e la scalabilità delle analisi in pochi secondi senza la necessità di configurare e gestire l'infrastruttura di data warehouse.
+ Con [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) puoi sostituire le credenziali nel codice,incluse le password, con una chiamata API a Secrets Manager in modo da recuperare il segreto a livello di codice.

**Altri strumenti**
+ [Precisly Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) raccoglie e integra i dati dai sistemi legacy in piattaforme cloud e dati.

**Deposito di codici**

Il codice per questo pattern è disponibile nel repository GitHub [DataInsightsMainframe\$1](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition) \$1change\$1data\$1reconciliation. Il codice è una procedura memorizzata in Amazon Redshift. Questa procedura memorizzata riconcilia le modifiche ai dati del mainframe (inserimenti, aggiornamenti ed eliminazioni) da Amazon MSK alle tabelle Amazon Redshift. Queste tabelle Amazon Redshift fungono da fonte di analisi dei dati per Quick Sight.

## Best practice
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Segui le [best practice](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) durante la configurazione del cluster Amazon MSK.
+ Segui le [best practice di analisi dei dati](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) di Amazon Redshift per migliorare le prestazioni.
+ Quando crei i ruoli AWS Identity and Access Management (IAM) per la configurazione Precisly, segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le [best practice relative alla [concessione dei privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla sicurezza nella documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) IAM.

## Epiche
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### Configura la replica Modernizzazione del mainframe AWS dei dati con Precisly on Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un gruppo di sicurezza. | Per connetterti al daemon del controller e al cluster Amazon MSK, [crea un gruppo di sicurezza](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) per l'istanza. EC2 Aggiungi le seguenti regole in entrata e in uscita:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Annota il nome del gruppo di sicurezza. Dovrai fare riferimento al nome quando avvii l' EC2 istanza e configuri il cluster Amazon MSK. | DevOps ingegnere, AWS DevOps | 
| Crea una policy IAM e un ruolo IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps ingegnere, amministratore di sistema AWS | 
| Fornisci un' EC2 istanza. | Per fornire un' EC2 istanza per eseguire Precisly CDC e connettersi ad Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore, DevOps ingegnere di AWS | 

### Configurare Amazon MSK
<a name="set-up-msk"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il cluster Amazon MSK. | Per creare un cluster Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)La creazione di un cluster con provisioning tipico richiede fino a 15 minuti. Dopo la creazione del cluster, lo stato del cluster cambia da **Creato** ad **Attivo**. | AWS DevOps, amministratore del cloud | 
| Configura SASL/SCRAM l'autenticazione. | Per configurare SASL/SCRAM l'autenticazione per un cluster Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud | 
| Crea l'argomento Amazon MSK. | Per creare l'argomento Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore cloud | 

### Configura il motore di applicazione precisa su Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura gli script Precisly per replicare le modifiche ai dati. | Per configurare gli script CDC di Precisly Connect per replicare i dati modificati dal mainframe all'argomento Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)[Ad esempio i file.ddl, consultate la sezione Informazioni aggiuntive.](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional) | Sviluppatore di app, architetto cloud | 
| Genera la chiave ACL di rete. | Per generare la chiave dell'elenco di controllo degli accessi alla rete (network ACL), procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud, AWS DevOps | 

### Prepara l'ambiente di origine del mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare le impostazioni predefinite nella schermata ISPF. | [Per configurare le impostazioni predefinite nell'Interactive System Productivity Facility (ISPF), segui le istruzioni nella documentazione di Precisly.](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) | Amministratore di sistema mainframe | 
| Configura il demone del controller. | Per configurare il demone del controller, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Configurazione del publisher. | Per configurare l'editore, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Aggiorna il file di configurazione del demone. | Per aggiornare i dettagli dell'editore nel file di configurazione del demone del controller, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Crea il job per avviare il daemon del controller. | Per creare il job, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Genera il file JCL di Capture Publisher. | Per generare il file JCL dell'editore di acquisizione, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Controlla e aggiorna CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Invia i file JCL. | Invia i seguenti file JCL che hai configurato nei passaggi precedenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Dopo aver inviato i file JCL, puoi avviare Apply Engine in Precisly sull' EC2 istanza. | Amministratore di sistema mainframe | 

### Esegui e convalida CDC
<a name="run-and-validate-cdc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia Apply Engine e convalida il CDC. | Per avviare Apply Engine sull' EC2 istanza e convalidare il CDC, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud, sviluppatore di app | 
| Convalida i record sull'argomento Amazon MSK. | Per leggere il messaggio sull'argomento Kafka, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Sviluppatore di app, architetto cloud | 

### Archivia i dati relativi alle modifiche del mainframe in un data warehouse Serverless Amazon Redshift
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Redshift Serverless. | [Per creare un data warehouse Serverless Amazon Redshift, segui le istruzioni nella documentazione.AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)Nella dashboard di Amazon Redshift Serverless, verifica che lo spazio dei nomi e il gruppo di lavoro siano stati creati e siano disponibili. Per questo modello di esempio, il processo potrebbe richiedere 25 minuti. | Ingegnere dei dati | 
| Configura il ruolo IAM e la policy di fiducia necessari per l'acquisizione dello streaming. | Per configurare l'acquisizione di streaming senza server di Amazon Redshift da Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere dei dati | 
| Connetti Amazon Redshift Serverless ad Amazon MSK. | Per connetterti all'argomento Amazon MSK, crea uno schema esterno in Amazon Redshift Serverless. Nell'editor di query di Amazon Redshift v2, esegui il seguente comando SQL, sostituendolo `'iam_role_arn'` con il ruolo creato in precedenza e sostituendo `'MSK_cluster_arn` «con l'ARN per il 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> | Ingegnere della migrazione | 
| Crea una vista materializzata. | Per utilizzare i dati dell'argomento Amazon MSK in Amazon Redshift Serverless, crea una vista materializzata. Nell'editor di query di Amazon Redshift v2, esegui i seguenti comandi SQL, sostituendoli `<MSK_Topic_name>` con il nome del tuo argomento 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> | Ingegnere della migrazione | 
| Crea tabelle di destinazione in Amazon Redshift. | Le tabelle Amazon Redshift forniscono l'input per Quick Sight. Questo modello utilizza le tabelle `member_dtls` e`member_plans`, che corrispondono alle tabelle Db2 di origine sul mainframe.Per creare le due tabelle in Amazon Redshift, esegui i seguenti comandi SQL in Amazon Redshift query editor v2:<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> | Ingegnere della migrazione | 
| Crea una procedura memorizzata in Amazon Redshift. | Questo modello utilizza una procedura memorizzata per sincronizzare i dati di modifica (`INSERT`,`UPDATE`,`DELETE`) dal mainframe di origine alla tabella del data warehouse Amazon Redshift di destinazione per l'analisi in Quick Sight.Per creare la stored procedure in Amazon Redshift, utilizza l'editor di query v2 per eseguire il codice di stored procedure presente nel repository. GitHub  | Ingegnere della migrazione | 
| Leggi dalla vista materializzata in streaming e carica nelle tabelle di destinazione. | La stored procedure legge le modifiche ai dati dalla vista materializzata in streaming e carica le modifiche ai dati nelle tabelle di destinazione. Per eseguire la stored procedure, utilizzare il seguente comando:<pre>call SP_Members_Load();</pre>Puoi utilizzare [Amazon EventBridge](https://aws.amazon.com/eventbridge/) per pianificare i lavori nel tuo data warehouse Amazon Redshift per richiamare questa procedura memorizzata in base ai tuoi requisiti di latenza dei dati. EventBridge esegue i lavori a intervalli fissi. Per verificare se la chiamata precedente alla procedura è stata completata, potrebbe essere necessario utilizzare un meccanismo come una macchina a [AWS Step Functions](https://aws.amazon.com/step-functions/)stati. Per maggiori informazioni, consulta le seguenti risorse:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Un'altra opzione è usare Amazon Redshift Query Editor v2 per pianificare l'aggiornamento. Per ulteriori informazioni, consulta [Pianificazione di una query con l'editor di query v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Ingegnere della migrazione | 

### Connect Quick Sight ai dati in Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Quick Sight. | Per configurare Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Ingegnere della migrazione | 
| Configura una connessione sicura tra Quick Sight e Amazon Redshift. | Per configurare una connessione sicura tra Quick Sight e Amazon Redshift, procedi come segue[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Crea un set di dati per Quick Sight. | Per creare un set di dati per Quick Sight da Amazon Redshift, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Tecnico di migrazione | 
| Unisciti al set di dati. | Per creare analisi in Quick Sight, unisci le due tabelle seguendo le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).Nel riquadro **Join Configuration**, scegli **Left** for **Join type**. In **Clausole Join, usa**. `memberid from member_plans = memberid from members_details` | Ingegnere della migrazione | 

### Ottieni informazioni aziendali dai dati del mainframe utilizzando Amazon Q in Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Q in Quick Sight. | Per configurare la funzionalità di BI generativa di Amazon Q in Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Ingegnere della migrazione | 
| Analizza i dati del mainframe e crea una dashboard visiva. | Per analizzare e visualizzare i dati in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Al termine, puoi pubblicare la dashboard per condividerla con altri membri dell'organizzazione. Ad esempio, consulta la *dashboard visiva di Mainframe* nella sezione [Informazioni aggiuntive](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). | Ingegnere della migrazione | 

### Crea una storia di dati con Amazon Q in Quick Sight a partire dai dati mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una storia basata sui dati. | Crea una storia basata sui dati per spiegare gli approfondimenti tratti dall'analisi precedente e genera una raccomandazione per aumentare l'immunizzazione preventiva per i membri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Visualizza la storia dei dati generati. | Per visualizzare la storia generata dai dati, scegli quella storia nella pagina **Storie di dati**. | Ingegnere della migrazione | 
| Modifica una storia di dati generata. | [Per modificare la formattazione, il layout o gli elementi visivi di una storia di dati, segui le istruzioni contenute nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Ingegnere della migrazione | 
| Condividi una storia basata sui dati. | Per condividere una storia basata sui dati, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingegnere della migrazione | 

## risoluzione dei problemi
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| La creazione del set di dati da Quick Sight ad Amazon Redshift non è riuscita. `Validate Connection` | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| Il tentativo di avviare il motore Apply sull' EC2 istanza restituisce il seguente errore:`-bash: sqdeng: command not found` | Esporta il percorso di `sqdata` installazione eseguendo il seguente comando:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| Il tentativo di avviare Apply Engine restituisce uno dei seguenti errori di connessione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Controllate lo spool del mainframe per assicurarvi che i daemon job del controller siano in esecuzione. | 

## Risorse correlate
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Genera approfondimenti utilizzando Modernizzazione del mainframe AWS Amazon Q in 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) (modello)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demo)
+ [Modernizzazione del mainframe AWS - Replica dei dati per IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Inserimento dello streaming da Amazon Redshift in una vista materializzata](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Informazioni aggiuntive
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Esempio di file.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)
);
```

*piani\$1membri.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)
);
```

**Esempio di file.sqd**

Sostituisci **`<kafka topic name>`**con il nome dell'argomento 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;
```

**Dashboard visivo del mainframe**

La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda di analisi `show member distribution by region`*.*

![\[Northeast e Southwest hanno 8 membri, Southwest ha 5 membri, Midwest ha 4 membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Southeast mostra 6, Southwest mostra 5 e Midwest mostra 4.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Produzione della storia dei dati**

Le schermate seguenti mostrano sezioni della storia dei dati creata da Amazon Q in Quick Sight per il 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`.

Nell'introduzione, la storia dei dati consiglia di scegliere la regione con il maggior numero di membri per ottenere il massimo impatto dagli sforzi di immunizzazione.

![\[Schermata introduttiva per l'analisi basata sull'area geografica, demografica e sull'età della base di membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


La storia dei dati fornisce un'analisi del numero di membri per le quattro regioni. Le regioni del Nordest, del Sud-Ovest e del Sud-Est hanno il maggior numero di membri.

![\[Le regioni del nord-est e del sud-ovest hanno 8 membri, il sud-est ha 6 membri e il Midwest ha 4 membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


La storia dei dati presenta un'analisi dei membri per età.

![\[Grafico che mostra che la base di membri è orientata verso gli adulti più giovani e di mezza età.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


La storia dei dati si concentra sugli sforzi di immunizzazione nel Midwest.

![\[Raccomandazione per una campagna di sensibilizzazione personale e sfide regionali.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Continuazione dell'analisi dei dati, con risultati e conclusioni previsti.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Allegati
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in 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*

## Riepilogo
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-summary"></a>

Nota: il Modernizzazione del mainframe AWS servizio (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se la tua organizzazione ospita dati aziendali critici in un ambiente mainframe, ottenere informazioni approfondite da tali dati è fondamentale per promuovere la crescita e l'innovazione. Sbloccando i dati del mainframe, puoi creare business intelligence più veloce, sicura e scalabile per accelerare il processo decisionale, la crescita e l'innovazione basati sui dati nel cloud Amazon Web Services ().AWS

Questo modello presenta una soluzione per generare informazioni aziendali e creare narrazioni condivisibili dai dati mainframe utilizzando il [trasferimento di Modernizzazione del mainframe AWS file](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) con BMC e [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight. I set di dati mainframe vengono trasferiti su [Amazon Simple Storage Service (Amazon S3) utilizzando](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) Modernizzazione del mainframe AWS il trasferimento di file con BMC. Una AWS Lambda funzione formatta e prepara il file di dati del mainframe per il caricamento in Quick Sight.

Dopo che i dati sono disponibili in Quick Sight, puoi utilizzare istruzioni in linguaggio naturale con [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight per creare riepiloghi dei dati, porre domande e generare storie di dati. Non è necessario scrivere query SQL o imparare a usare uno strumento di business intelligence (BI).

**Contesto aziendale**

Questo modello presenta una soluzione per i casi d'uso di analisi dei dati mainframe e analisi dei dati. Utilizzando il modello, crei una dashboard visiva per i dati della tua azienda. Per dimostrare la soluzione, questo modello utilizza un'azienda sanitaria che fornisce piani medici, dentistici e oculistici ai suoi membri negli Stati Uniti. In questo esempio, i dati demografici dei membri e le informazioni sul piano vengono archiviati nei set di dati del mainframe. La dashboard visiva mostra quanto segue:
+ Distribuzione dei membri per regione
+ Distribuzione dei membri per genere
+ Distribuzione dei membri per età
+ Distribuzione dei membri per tipo di piano
+ Membri che non hanno completato l'immunizzazione preventiva

Dopo aver creato la dashboard, si genera una storia basata sui dati che spiega le informazioni ricavate dall'analisi precedente. La storia dei dati fornisce raccomandazioni per aumentare il numero di membri che hanno completato le vaccinazioni preventive.

## Prerequisiti e limitazioni
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Set di dati mainframe con dati aziendali
+ Accesso per installare un agente di trasferimento file sul mainframe

**Limitazioni**
+ Il file di dati del mainframe deve essere in uno dei formati di file supportati da Quick Sight. Per un elenco dei formati di file supportati, [consultate Fonti di dati supportate](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Questo modello utilizza una funzione Lambda per convertire il file mainframe in un formato supportato da Quick Sight.

## Architecture
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-architecture"></a>

Il diagramma seguente mostra un'architettura per generare informazioni aziendali dai dati mainframe utilizzando il trasferimento di Modernizzazione del mainframe AWS file con BMC e Amazon Q in Quick Sight.

![\[La descrizione del diagramma di architettura segue il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un set di dati mainframe contenente dati aziendali viene trasferito su Amazon S3 Modernizzazione del mainframe AWS utilizzando il trasferimento di file con BMC.

1. La funzione Lambda converte il file contenuto nel bucket S3 di destinazione del trasferimento file in formato CSV (valori separati da virgole).

1. La funzione Lambda invia il file convertito al bucket S3 del set di dati di origine.

1. I dati contenuti nel file vengono acquisiti da Quick Sight.

1. Gli utenti accedono ai dati in Quick Sight. Puoi utilizzare Amazon Q in Quick Sight per interagire con i dati utilizzando istruzioni in linguaggio naturale.

## Tools (Strumenti)
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-tools"></a>

**Servizi AWS**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [Modernizzazione del mainframe AWS il trasferimento di file con BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) converte e trasferisce i set di dati mainframe su Amazon S3 per casi d'uso di modernizzazione, migrazione e potenziamento del mainframe.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di BI su scala cloud che ti aiuta a visualizzare, analizzare e generare report sui dati in un'unica dashboard. Questo modello utilizza le funzionalità di BI generativa di [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

## Best practice
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ Quando crei i ruoli AWS Identity and Access Management (IAM) per Modernizzazione del mainframe AWS il trasferimento di file con BMC e la funzione Lambda, segui il principio [del](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) privilegio minimo.
+ Assicurati che il set di dati di origine supporti i [tipi di dati per Quick](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) Sight. Se il set di dati di origine contiene tipi di dati non supportati, convertili in tipi di dati supportati. Per informazioni sui tipi di dati mainframe non supportati e su come convertirli in tipi di dati supportati da Amazon Q in Quick Sight, consulta la sezione [Risorse correlate](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

## Epiche
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-epics"></a>

### Configura il trasferimento di Modernizzazione del mainframe AWS file con BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa l'agente di trasferimento file. | Per installare l'agente di trasferimento Modernizzazione del mainframe AWS file, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Amministratore di sistema mainframe | 
| Crea un bucket S3 per il trasferimento di file su mainframe. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per archiviare il file di output del trasferimento di file con BMC. Modernizzazione del mainframe AWS Nel diagramma di architettura, questo è il bucket di destinazione per il trasferimento dei file. | Ingegnere della migrazione | 
| Crea l'endpoint per il trasferimento dei dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Specialista in modernizzazione dei mainframe di AWS | 

### Converti l'estensione del nome del file mainframe per l'integrazione con Quick Sight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per la funzione Lambda per copiare il file mainframe convertito dal bucket di origine a quello di destinazione finale. | Ingegnere della migrazione | 
| Creazione di una funzione Lambda. | Per creare una funzione Lambda che modifichi l'estensione del file e copi il file mainframe nel bucket di destinazione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Crea un trigger Amazon S3 per richiamare la funzione Lambda. | Per configurare un trigger che richiama la funzione Lambda, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Per maggiori informazioni consulta [Tutorial: uso di un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Responsabile della migrazione | 
| Fornisci le autorizzazioni IAM per la funzione Lambda. | Le autorizzazioni IAM sono necessarie per consentire alla funzione Lambda di accedere ai bucket S3 del set di dati di origine e di destinazione del trasferimento di file. Aggiorna la policy associata al ruolo di esecuzione della funzione Lambda autorizzando `s3:GetObject` e `s3:DeleteObject`**** autorizzando il bucket S3 di destinazione**** per il trasferimento di file e l'`s3:PutObject`accesso per il bucket S3 del set di dati di origine.Per ulteriori informazioni, consulta la**** sezione [Creare una politica di autorizzazioni](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy) in *Tutorial: Usare un trigger di Amazon S3 per richiamare una* funzione Lambda. | Responsabile della migrazione | 

### Definisci un'attività di trasferimento dati su mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'attività di trasferimento per copiare il file mainframe nel bucket S3. | [Per creare un'operazione di trasferimento di file su mainframe, segui le istruzioni nella documentazione.Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html)**Specificate **la codifica della tabella codici sorgente** come **IBM1047** e la codifica della tabella **codici di destinazione** come UTF-8.** | Ingegnere della migrazione | 
| Verifica l'attività di trasferimento. | Per verificare che il trasferimento dei dati abbia esito positivo, segui le istruzioni contenute nella [Modernizzazione del mainframe AWS documentazione](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Verificate che il file mainframe si trovi nel bucket S3 di destinazione per il trasferimento dei file. | Responsabile della migrazione | 
| Verifica la funzione di copia Lambda. | Verificate che la funzione Lambda sia avviata e che il file venga copiato con un'estensione.csv nel bucket S3 del set di dati di origine.Il file.csv creato dalla funzione Lambda è il file di dati di input per Quick Sight. [Per i dati di esempio, consulta il `Sample-data-member-healthcare-APG` file nella sezione Allegati.](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68) | Responsabile della migrazione | 

### Connect Quick Sight ai dati del mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Quick Sight. | Per configurare Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Responsabile della migrazione | 
| Crea un set di dati per Quick Sight. | [Per creare un set di dati per Quick Sight, segui le istruzioni nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) Il file di dati di input è il file mainframe convertito che è stato creato quando è stata definita l'attività di trasferimento dei dati del mainframe. | Responsabile della migrazione | 

### Ottieni informazioni aziendali dai dati del mainframe utilizzando Amazon Q in Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Q in Quick Sight. | Questa funzionalità richiede Enterprise Edition. Per configurare Amazon Q in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Responsabile della migrazione | 
| Analizza i dati del mainframe e crea una dashboard visiva. | Per analizzare e visualizzare i dati in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Al termine, puoi pubblicare la dashboard per condividerla con altri membri dell'organizzazione. Ad esempio, consulta la *dashboard visiva di Mainframe* nella sezione [Informazioni aggiuntive](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingegnere della migrazione | 

### Crea una storia di dati con Amazon Q in Quick Sight a partire dai dati del mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una storia basata sui dati. | Crea una storia basata sui dati per spiegare gli approfondimenti tratti dall'analisi precedente e genera una raccomandazione per aumentare l'immunizzazione preventiva per i membri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Visualizza la storia dei dati generati. | Per visualizzare la storia dei dati generata, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Responsabile della migrazione | 
| Modifica una storia di dati generata. | [Per modificare la formattazione, il layout o gli elementi visivi di una storia di dati, segui le istruzioni contenute nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Responsabile della migrazione | 
| Condividi una storia basata sui dati. | Per condividere una storia basata sui dati, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingegnere della migrazione | 

## risoluzione dei problemi
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Impossibile individuare i file o i set di dati del mainframe inseriti nei **criteri di ricerca dei set di dati** per **Crea attività di trasferimento** in Modernizzazione del mainframe AWS file transfer with BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

## Risorse correlate
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources"></a>

Per convertire tipi di dati mainframe come [PACKED-DECIMAL (COMP-3) o [BINARY (COMP o COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) in un [tipo di dati](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) supportato da Quick Sight, osservate i seguenti schemi:
+ [Converti e decomprimi i dati EBCDIC in 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)
+ [Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando 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)

## Informazioni aggiuntive
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**CopyLambdaS3 .py**

Il seguente codice Python è stato generato utilizzando un prompt con Amazon Q in un 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'
}
```

**Pannello di controllo visivo del mainframe**

La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda di analisi `show member distribution by region`*.*

![\[Grafico che mostra il numero di membri per il sud-ovest, il Midwest, il nord-est e il sud-est.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda`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/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Output della storia dei dati**

Le schermate seguenti mostrano sezioni della storia dei dati creata da Amazon Q in Quick Sight per il 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.`

Nell'introduzione, la storia dei dati consiglia di scegliere la regione con il maggior numero di membri per ottenere il massimo impatto dagli sforzi di immunizzazione.

![\[Pagina introduttiva per una storia di dati incentrata sui tassi di completamento delle vaccinazioni.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


La storia dei dati fornisce un'analisi del numero di membri delle tre principali regioni e nomina il sud-ovest come la regione principale per quanto riguarda gli sforzi di immunizzazione.

![\[Pie chart showing member distribution by region, with Southwest and Northeast leading at 31% each.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/30d3b56b-3b92-4748-9cef-a73ff9339fee.png)


**Nota**  
Le regioni del sud-ovest e del nord-est hanno ciascuna otto membri. Tuttavia, il sud-ovest ha più membri che non sono completamente vaccinati, quindi ha maggiori possibilità di beneficiare delle iniziative per aumentare i tassi di immunizzazione.

## Allegati
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implementa l'autenticazione basata su Microsoft Entra ID in un'applicazione mainframe modernizzata AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani e Rimpy Tewani, Amazon Web Services*

## Riepilogo
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**Nota**  
Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Le applicazioni mainframe modernizzate utilizzando modelli di refactoring, come quelle di [Modernizzazione del mainframe AWS Refactor con AWS Blu Age, richiedono un'attenta integrazione dei meccanismi di autenticazione nella nuova](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) architettura applicativa. Questa integrazione viene in genere considerata un'attività di post-modernizzazione. L'attività può essere complessa e spesso comporta la migrazione o l'esternalizzazione dei sistemi di autenticazione esistenti per allinearli ai moderni standard di sicurezza e alle pratiche native del cloud. Gli sviluppatori devono considerare come implementare l'autenticazione in modo efficace mentre lavorano entro i limiti dell'ambiente di runtime e delle librerie dell'applicazione modernizzata. Dopo la modernizzazione, AWS offre modi per semplificare l'integrazione del codice moderno AWS Blu Age con sistemi di gestione delle identità e degli accessi come [Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) Cognito e [Microsoft Entra](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) ID (precedentemente noto come Azure AD).

Questo modello spiega come implementare un meccanismo di autenticazione nell'applicazione modernizzata quando il provider di autenticazione è Microsoft Entra ID, senza perdere tempo in ricerche e prove. Il modello prevede:
+ Librerie Angular testate sul campo e pertinenti della Microsoft Authentication Library (MSAL) e altra documentazione Microsoft Entra ID che sono essenziali per l'implementazione dell'autenticazione. 
+ Configurazioni richieste su AWS Blu Age Runtime per abilitare Spring Security utilizzando 2.0. OAuth 
+ Una libreria che acquisisce le identità degli utenti autenticati e le trasmette a Blu Age Runtime. AWS 
+ Misure di sicurezza che consigliamo di implementare.
+ Suggerimenti per la risoluzione dei problemi più comuni relativi alla configurazione dell'ID Microsoft Entra.

**Nota**  
Questo modello utilizza la libreria di OAuth estensioni AWS Blu Age, fornita ai clienti nell'ambito dei [servizi AWS professionali](https://aws.amazon.com/professional-services/). Questa libreria non fa parte di AWS Blu Age Runtime.

## Prerequisiti e limitazioni
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Prerequisiti**
+ Un'applicazione modernizzata prodotta dagli strumenti di refactoring per la modernizzazione del mainframe AWS Blu Age. Questo modello utilizza [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)come esempio un'applicazione mainframe open source.
+ La libreria di OAuth estensioni AWS Blu Age, fornita dal team AWS Blu Age durante la collaborazione con [AWS Professional Services](https://aws.amazon.com/professional-services/).
+ Un attivo Account AWS per implementare e testare l'applicazione modernizzata.
+ Familiarità con i file di configurazione AWS Blu Age e i fondamenti dell'ID Microsoft Entra.

**Limitazioni**
+ Questo modello copre l'autenticazione OAuth 2.0 e i flussi di autorizzazione di base basati su token. Gli scenari di autorizzazione avanzati e i meccanismi di controllo degli accessi dettagliati non rientrano nell'ambito di applicazione.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**

Questo modello è stato sviluppato utilizzando:
+ AWS Blu Age Runtime versione 4.1.0 (il pattern funziona anche con le versioni successive che sono retrocompatibili)
+ Libreria MSAL versione 3.0.23
+ Java Development Kit (JDK) versione 17
+ Versione Angular 16.1

## Architecture
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Stack tecnologico di origine**

Nei tipici ambienti mainframe, l'autenticazione viene implementata tramite profili utente. Questi profili identificano gli utenti del sistema, definiscono chi può accedere e specificano quali funzioni gli utenti possono eseguire sulle risorse di sistema. I profili utente sono gestiti dai responsabili della sicurezza o dagli amministratori della sicurezza.

**Stack tecnologico Target**
+ ID Microsoft Entra
+ Backend modernizzato basato su Java Spring Boot
+ AWS Blu Age Runtime
+ Spring Security con OAuth 2.0
+ Applicazione angolare a pagina singola (SPA)

**Architettura Target**

AWS Il runtime Blu Age supporta l'autenticazione OAuth basata su 2.0 per impostazione predefinita, quindi il pattern utilizza quello standard per proteggere il backend APIs.

Il diagramma seguente illustra il flusso del processo.

**Nota**  
Il diagramma include Amazon Aurora come esempio di modernizzazione del database, sebbene Aurora non sia inclusa nei passaggi di questo modello.

![\[Flusso di processo per l'autenticazione basata su Entra ID per un'applicazione AWS Blu Age.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


dove:

1. Un utente tenta di autenticarsi con l'ID Microsoft Entra.

1. Microsoft Entra ID restituisce i token di aggiornamento, accesso e ID utilizzati dall'applicazione nelle chiamate successive.

1. L'interceptor MSAL include il token di accesso nell'`Authorization`intestazione di una richiesta HTTPS per chiamare Blu Age Runtime. AWS 

1. La `extension-oauth` libreria AWS Blu Age estrae le informazioni dell'utente dall'intestazione utilizzando un file di configurazione AWS Blu Age Runtime (`application-main.yml`) e inserisce queste informazioni in un `SharedContext` oggetto in modo che la logica aziendale possa utilizzarle.
**Nota**  
`SharedContext`è un componente di runtime fornito da AWS Blu Age che gestisce il contesto e le informazioni sullo stato dell'applicazione modernizzata. Per ulteriori informazioni sui componenti e sugli aggiornamenti di AWS Blu Age Runtime, consulta le [note di rilascio di AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) nella Modernizzazione del mainframe AWS documentazione. Per ulteriori informazioni sul `application-main.yml` file, consulta [Configurare la configurazione per AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) nella Modernizzazione del mainframe AWS documentazione.

1. Il AWS Blu Age Runtime verifica se il token è presente. 

   1. Se il token è presente, ne verifica la validità comunicando con Microsoft Entra ID. 

   1. Se il token non è presente, AWS Blu Age Runtime restituisce un errore con il codice di stato HTTP 403.

1. Se il token è valido, AWS Blue Age Runtime consente alla logica aziendale di continuare. Se il token non è valido, AWS Blu Age Runtime restituisce un errore con il codice di stato HTTP 403.

**OAuth Flusso di lavoro 2.0**

Per un diagramma di alto livello del flusso di lavoro OAuth 2.0, consulta la documentazione di [Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Tools (Strumenti)
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Servizi AWS**

[Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornisce strumenti e risorse per aiutarvi a pianificare e implementare la migrazione e la modernizzazione dai mainframe agli AWS ambienti di runtime gestiti. È possibile utilizzare le funzionalità di refactoring di questo servizio, fornite da AWS Blu Age, per convertire e modernizzare le applicazioni mainframe esistenti.

**Nota**  
Modernizzazione del mainframe AWS Il servizio (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Archivio di codice**

L' CardDemo applicazione è stata aggiornata per dimostrare l'integrazione con Microsoft Entra ID. È possibile accedere al codice dal [GitHub repository per questo pattern.](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app)

**Configurazione del backend**

Questo modello richiede modifiche al file di `application-main.yml`**** configurazione per abilitare Spring Security utilizzando OAuth 2.0 sull'applicazione di backend.  Il `.yml` file ha il seguente aspetto:

```
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 Libreria di filtri di OAuth estensione Blu Age**

La libreria di OAuth estensioni AWS Blu Age viene fornita dal team AWS Blu Age durante la collaborazione con [AWS Professional Services](https://aws.amazon.com/professional-services/).

Questa libreria legge la `claim.claims` configurazione nel `application-main.yml` file mostrata nel blocco di codice precedente. Questa configurazione è un elenco. Ogni elemento dell'elenco fornisce due valori: `claimName` e`claimMapValue`. `claimName`rappresenta un nome di chiave in un JSON Web Token (JWT) inviato dal frontend ed `claimMapValue` è il nome della chiave in ingresso. `SharedContext` Ad esempio, se desideri acquisire l'ID utente sul backend, imposta `claimName` il nome della chiave nel JWT che contiene l'ID `userId` that fornito da Microsoft Entra e imposta il nome della chiave `claimMapValue` per recuperare l'ID utente nel codice di backend.

Ad esempio, se si imposta `UserId``claimMapValue`, è possibile utilizzare il codice seguente per estrarre l'ID utente:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Best practice
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Nell'implementazione di questo modello, tenete conto delle seguenti importanti considerazioni sulla sicurezza.

**Importante**  
Questo modello fornisce una base per l'integrazione dell'autenticazione. Si consiglia di implementare misure di sicurezza oltre a quelle illustrate in questa sezione in base ai requisiti aziendali prima di implementarlo in produzione.
+ **AWS sicurezza della configurazione.**Sposta i valori di configurazione sensibili da `application-main.yml` a Gestione dei segreti AWS. Ad esempio, configura le seguenti proprietà utilizzando Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Per ulteriori informazioni su come utilizzare Secrets Manager per configurare i parametri AWS Blu Age, consulta [AWS Blu Age Runtime secrets](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) nella Modernizzazione del mainframe AWS documentazione.
+ **Protezione dell'ambiente di runtime.** Configura l'ambiente applicativo modernizzato con controlli di AWS sicurezza adeguati:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registrazione su Amazon.** Valuta la possibilità di aggiungere il file`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>
  ```

  Per informazioni sull'abilitazione del tracciamento con CloudWatch, consulta [Enable trace to log correlation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) nella CloudWatch documentazione.
+ **Configurazione e gestione dei token.** Configura la durata dei token in Microsoft Entra ID per allinearla ai tuoi requisiti di sicurezza. Imposta la scadenza dei token di accesso entro 1 ora e aggiorna i token in modo che scadano entro 24 ore. Nella configurazione AWS Blu Age Runtime (`application-main.yml`), assicurati che la convalida JWT sia configurata correttamente con l'URI esatto dell'emittente e i valori di audience rilevati durante la registrazione dell'applicazione Entra ID.

  Quando un token scade e viene aggiornato:

  1. L'intercettore degli errori dell'applicazione Angular gestisce la risposta 401 ottenendo un nuovo token tramite MSAL.

  1. Il nuovo token viene inviato con la richiesta successiva.

  1. Il OAuth filtro di AWS Blu Age Runtime convalida il nuovo token e si aggiorna automaticamente `SharedContext` con le informazioni utente correnti. Ciò garantisce che la business logic continui ad avere accesso a un contesto utente valido tramite `SharedContext.get().getValue()` chiamate.

  Per ulteriori informazioni sui componenti AWS Blu Age Runtime e sui relativi aggiornamenti, consulta le [note di rilascio di AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Sicurezza di AWS Blu Age Runtime.** La `oauth2-ext` libreria fornita da AWS Blu Age deve essere collocata nella posizione corretta della directory condivisa (`{app-server-home}/shared/`) con le autorizzazioni appropriate per i file. Verifica che la libreria estragga correttamente le informazioni dell'utente JWTs controllando la popolazione degli `SharedContext` oggetti nei tuoi log.
+ **Configurazione dei reclami specifici.** Nel`application-main.yml`, definisci in modo esplicito le attestazioni di cui hai bisogno da Microsoft Entra ID. Ad esempio, per acquisire l'e-mail e i ruoli dell'utente, specifica:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Gestione degli errori.** Aggiungi la gestione degli errori per risolvere gli errori di autenticazione nella tua applicazione Angular; ad esempio:

  ```
  @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);
        })
      );
    }
  }
  ```
+ **Configurazione del timeout della sessione.** Configura le impostazioni di timeout della sessione sia in AWS Blu Age Runtime che in Microsoft Entra ID. Ad esempio, aggiungi il codice seguente al tuo `application-main.yml` file:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** È necessario implementare la MsalGuard funzionalità per tutte le rotte protette per impedire l'accesso non autorizzato. Esempio:

  ```
  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  }
  ];
  ```

  Le rotte prive di MsalGuard protezione saranno accessibili senza autenticazione, esponendo potenzialmente funzionalità sensibili. Assicurati che tutte le rotte che richiedono l'autenticazione includano le guardie nella loro configurazione.

## Epiche
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Configurare un ID Microsoft Entra
<a name="set-up-a-microsoft-entra-id"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un account Microsoft Azure per creare un ID Entra. | Per opzioni e istruzioni, consulta il [sito Web di Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Sviluppatore di app | 
| Configura un ID Microsoft Entra nella tua applicazione. | [Per sapere come aggiungere l'autenticazione Microsoft Entra ID B2C (Azure AD B2C) alla tua Angular SPA, consulta la documentazione Microsoft.](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components) Nello specifico:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 

### Clona il repository e distribuisci il tuo codice Blu Age AWS
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il GitHub repository per ottenere il codice Angular richiesto per l'autenticazione. | Esegui il seguente comando per clonare il [GitHub repository](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) fornito con questo pattern nella tua directory di lavoro corrente locale:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Sviluppatore di app | 
| Implementa il codice modernizzato AWS Blu Age su un server Tomcat per implementare l'autenticazione. | Per configurare l'ambiente locale che include Tomcat e il server di sviluppo Angular, segui i passaggi di installazione forniti dal team AWS Blu Age nell'ambito del coinvolgimento dei clienti con Professional Services. AWS  | Sviluppatore di app | 

### Crea la soluzione di autenticazione
<a name="build-the-authentication-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la sicurezza di AWS Blu Age Runtime per proteggere gli endpoint dell'API REST di AWS Blu Age. | Configura il `application-main.yml` file utilizzato da AWS Blu Age Runtime come segue. Per un esempio di questo file, consultate la sezione [Code repository riportata](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) in precedenza in questo modello.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 
| Incorpora il codice di esempio dal tuo ambiente locale nella tua base di codice Angular modernizzata di Blu Age. | Per informazioni su come incorporare l'esempio nella tua base di codice Angular modernizzata da AWS Blu Age, consulta la sezione [Code repository](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) precedente in questo modello. | Sviluppatore di app | 
| Posiziona la `oauth2-ext` libreria nella directory condivisa. | **Posiziona la `oauth2-ext` libreria nella directory**** condivisa del server delle applicazioni in modo che la tua applicazione modernizzata **AWS **Blu Age possa utilizzarla.**Esegui i comandi seguenti:<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Sviluppatore di app | 

### Implementa la soluzione di autenticazione
<a name="deploy-the-authentication-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa l'applicazione frontend. | Esegui i seguenti comandi per avviare l'applicazione frontend localmente:<pre>npm install <br />ng serve --ssl<br />npm start</pre>L'aggiunta del `--ssl` flag al `ng serve` comando garantisce che il server di sviluppo utilizzi HTTPS, che è più sicuro di altri protocolli e fornisce una migliore simulazione di un ambiente di produzione. | Sviluppatore di app | 
| Avvia l'applicazione di backend. | Avvia il server Tomcat in Eclipse. | Sviluppatore di app | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la funzionalità di accesso. | Accedi all'applicazione distribuita localmente all'indirizzo `http://localhost:4200` per verificare che agli utenti venga chiesto di confermare la propria identità.HTTP viene utilizzato qui a scopo dimostrativo. In un ambiente di produzione o in un altro ambiente accessibile al pubblico, è necessario utilizzare HTTPS per motivi di sicurezza. Anche per lo sviluppo locale, ti consigliamo di configurare HTTPS quando possibile.Dovrebbe apparire la richiesta di accesso Microsoft e gli utenti configurati in Microsoft Entra ID dovrebbero poter accedere all'applicazione. | Sviluppatore di app | 
| Verifica l'intestazione di autorizzazione nella richiesta. | I passaggi seguenti utilizzano l'[CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)applicazione come esempio. Le fasi di test per altre applicazioni moderne possono variare.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 
| Verifica la funzionalità di disconnessione. | Scegli **Esci** per disconnetterti e riprova ad accedere all'applicazione. Dovrebbe presentare una nuova richiesta di accesso. | Sviluppatore di app | 

## risoluzione dei problemi
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Il token emesso da Microsoft Entra ID non è compatibile con la sicurezza Spring Boot OAuth 2.0. | Per una risoluzione del problema, vedi [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) sul OAuth blog. | 
| Domande generali relative ai token. | [Per decodificare e visualizzare il contenuto di un token JWT, utilizza il sito Web https://jwt.io/.](https://jwt.io/) | 

## Risorse correlate
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Per informazioni sul refactoring dell'applicazione utilizzando AWS Blu Age, consulta la documentazione.Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Per capire come funziona la OAuth versione 2.0, visitate il sito Web [OAuth 2.0](https://oauth.net/2/).
+ Per una panoramica della Microsoft Authentication Library (MSAL), consulta la [documentazione di Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Per informazioni sui profili utente su un sistema AS/400, consulta il tutorial [IBM i (AS4](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14)00).
+ [Per il flusso di autenticazione OAuth 2.0 e OpenID Connect (OIDC) nella piattaforma di identità Microsoft, consulta la documentazione di Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integra il controller universale Stonebranch con la modernizzazione del mainframe AWS
<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*

## Riepilogo
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-summary"></a>

Nota: Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello spiega come integrare l'orchestrazione del [carico di lavoro Stonebranch Universal Automation Center (UAC) con](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) il servizio di modernizzazione del mainframe di [Amazon Web Services (](https://aws.amazon.com/mainframe-modernization/)AWS). Il servizio AWS Mainframe Modernization migra e modernizza le applicazioni mainframe nel cloud AWS. Offre due modelli: [AWS Mainframe Modernization Replatform](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) con tecnologia Micro Focus Enterprise e AWS [Mainframe Modernization Automated Refactor con AWS](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) Blu Age.  

Stonebranch UAC è una piattaforma di automazione e orchestrazione IT in tempo reale. L'UAC è progettato per automatizzare e orchestrare lavori, attività e flussi di lavoro su sistemi IT ibridi, da quelli locali a AWS. I clienti aziendali che utilizzano sistemi mainframe stanno passando a infrastrutture e applicazioni modernizzate incentrate sul cloud. Gli strumenti e i servizi professionali di Stonebranch facilitano la migrazione degli scheduler e delle funzionalità di automazione esistenti nel cloud AWS.

Quando migri o modernizzi i tuoi programmi mainframe sul cloud AWS utilizzando il servizio AWS Mainframe Modernization, puoi utilizzare questa integrazione per automatizzare la pianificazione in batch, aumentare l'agilità, migliorare la manutenzione e ridurre i costi.

Questo modello fornisce istruzioni per l'integrazione dello [scheduler Stonebranch](https://www.stonebranch.com/) con le applicazioni mainframe migrate al runtime Micro Focus Enterprise del servizio AWS Mainframe Modernization. Questo modello è destinato agli architetti di soluzioni, agli sviluppatori, ai consulenti, agli specialisti della migrazione e a tutti coloro che si occupano di migrazioni, modernizzazioni, operazioni o. DevOps

**Risultato mirato**

Questo modello si concentra sul raggiungimento dei seguenti obiettivi:
+ La capacità di pianificare, automatizzare ed eseguire processi batch mainframe in esecuzione nel servizio AWS Mainframe Modernization (runtime Microfocus) di Stonebranch Universal Controller.
+ Monitora i processi batch dell'applicazione dallo Stonebranch Universal Controller.
+ Start/Restart/Rerun/Stopi processi in batch vengono eseguiti automaticamente o manualmente dallo Stonebranch Universal Controller.
+ Recupera i risultati dei processi batch di AWS Mainframe Modernization.
+ Acquisisci i CloudWatch log [AWS](https://aws.amazon.com/cloudwatch/) dei lavori in batch in Stonebranch Universal Controller.

## Prerequisiti e limitazioni
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'applicazione Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) con file Job Control Language (JCL) e un processo batch distribuito in un ambiente del servizio AWS Mainframe Modernization (Micro Focus runtime)
+ [Conoscenza di base su come creare e distribuire un'applicazione mainframe eseguita su Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Conoscenza di base di Stonebranch Universal Controller
+ [Licenza di prova di Stonebranch (contatta Stonebranch)](https://www.stonebranch.com/)
+ Istanze Amazon Elastic Compute Cloud (Amazon EC2) Windows o Linux (ad esempio xlarge) con un minimo di quattro core, 8 GB di memoria e 2 GB di spazio su disco
+ Apache Tomcat versione 8.5.x o 9.0.x
+ Oracle Java Runtime Environment (JRE) o OpenJDK versione 8 o 11
+ [Edizione compatibile con Amazon Aurora MySQL](https://aws.amazon.com/rds/aurora/)
+ [Bucket Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) per repository di esportazione
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) per le connessioni degli agenti Stonebranch Universal Message Service (OMS) per l'alta disponibilità (HA)
+ File di installazione di Stonebranch Universal Controller 7.2 Universal Agent 7.2
+ [Modello di pianificazione delle attività](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) di AWS Mainframe Modernization (ultima versione rilasciata del file.zip)

**Limitazioni**
+ Il prodotto e la soluzione sono stati testati e la compatibilità è stata convalidata solo con OpenJDK 8 e 11.
+ Il modello [aws-mainframe-modernization-stonebranchdi pianificazione delle attività di integrazione](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) funzionerà solo con il servizio AWS Mainframe Modernization.
+ Questo modello di pianificazione delle attività funzionerà solo su un'edizione Unix, Linux o Windows degli agenti Stonebranch.
+ Alcuni servizi AWS non sono disponibili in tutte le regioni AWS. Per la disponibilità regionale, consulta [i servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

## Architecture
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-architecture"></a>

**Architettura dello stato di destinazione**

Il diagramma seguente mostra l'esempio di ambiente AWS richiesto per questo programma pilota.

![\[Stonebranch UAC che interagisce con l'ambiente di modernizzazione del mainframe AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. Stonebranch Universal Automation Center (UAC) include due componenti principali: Universal Controller e Universal Agents. Stonebranch OMS viene utilizzato come bus di messaggi tra il controller e i singoli agenti.

1. Il database Stonebranch UAC viene utilizzato da Universal Controller. Il database può essere compatibile con MySQL, Microsoft SQL Server, Oracle o Aurora MySQL.

1. Servizio AWS Mainframe Modernization: ambiente di runtime Micro Focus con l'[BankDemo applicazione](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/) distribuita. I file BankDemo dell'applicazione verranno archiviati in un bucket S3. Questo bucket contiene anche i file JCL del mainframe.

1. Stonebranch UAC può eseguire le seguenti funzioni per l'esecuzione in batch:

   1. Avvia un processo batch utilizzando il nome del file JCL presente nel bucket S3 collegato al servizio di modernizzazione del mainframe AWS.

   1. Ottieni lo stato dell'esecuzione del processo batch.

   1. Attendi il completamento dell'esecuzione del processo batch.

   1. Recupera i registri dell'esecuzione del processo batch.

   1. Esegui nuovamente i processi batch non riusciti.

   1. Annulla il processo batch mentre il processo è in esecuzione.

1. Stonebranch UAC può eseguire le seguenti funzioni dell'applicazione:

   1. Avvia l'applicazione

   1. Ottieni lo stato della domanda

   1. Attendi che l'applicazione venga avviata o interrotta

   1. Interrompi l'applicazione

   1. Recupera i registri delle operazioni dell'applicazione

**Conversione dei lavori di Stonebranch**

Il diagramma seguente rappresenta il processo di conversione del lavoro di Stonebranch durante il percorso di modernizzazione. Descrive come le pianificazioni dei lavori e le definizioni delle attività vengono convertite in un formato compatibile in grado di eseguire attività batch di AWS Mainframe Modernization.

![\[Processo dal mainframe alla conversione allo strumento di pianificazione dei processi su Amazon EC2 con file JCL in Amazon S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Per il processo di conversione, le definizioni dei job vengono esportate dal sistema mainframe esistente.

1. I file JCL possono essere caricati nel bucket S3 per l'applicazione Mainframe Modernization in modo che questi file JCL possano essere distribuiti dal servizio AWS Mainframe Modernization.

1. Lo strumento di conversione converte le definizioni di lavoro esportate in attività UAC.

1. Dopo aver creato tutte le definizioni delle attività e le pianificazioni dei lavori, questi oggetti verranno importati nell'Universal Controller. Le attività convertite eseguono quindi i processi nel servizio AWS Mainframe Modernization anziché eseguirli sul mainframe.

**Architettura Stonebranch UAC**

Il seguente diagramma di architettura rappresenta un active-active-passive modello di controller universale ad alta disponibilità (HA). Stonebranch UAC è implementato in più zone di disponibilità per fornire alta disponibilità e supportare il disaster recovery (DR).

![\[Ambiente Multi-AZ con DR e controller, Amazon EFS, Aurora e un bucket S3 per i backup.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Controller universale*

Due server Linux vengono forniti come controller universali. Entrambi si connettono allo stesso endpoint del database. Ogni server ospita un'applicazione Universal Controller e un OMS. La versione più recente di Universal Controller viene utilizzata al momento del provisioning.

Gli Universal Controller vengono distribuiti nella webapp Tomcat come documento ROOT e vengono serviti sulla porta 80. Questa implementazione semplifica la configurazione del load balancer del frontend.

HTTP over TLS o HTTPS è abilitato utilizzando il certificato wildcard di Stonebranch (ad esempio,). `https://customer.stonebranch.cloud` Ciò protegge la comunicazione tra il browser e l'applicazione.

*OMS*

Un Universal Agent e un OMS (Opswise Message Service) risiedono su ogni server Universal Controller. Tutti gli Universal Agent distribuiti dal cliente sono configurati per connettersi a entrambi i servizi OMS. OMS funge da servizio di messaggistica comune tra gli Universal Agent e l'Universal Controller.

Amazon EFS monta una directory di spool su ogni server. OMS utilizza questa directory di spool condivisa per mantenere le informazioni sulla connessione e sulle attività lontane da controller e agenti. OMS funziona in modalità ad alta disponibilità. Se l'OMS attivo non funziona, l'OMS passivo ha accesso a tutti i dati e riprende automaticamente le operazioni attive. Gli Universal Agent rilevano questa modifica e si connettono automaticamente al nuovo OMS attivo.

*Database*

Amazon Relational Database Service (Amazon RDS) ospita il database UAC, con Amazon Aurora MySQL come motore. Amazon RDS aiuta a gestire e offrire backup pianificati a intervalli regolari. Entrambe le istanze Universal Controller si connettono allo stesso endpoint del database.

*Sistema di bilanciamento del carico*

Per ogni istanza è configurato un Application Load Balancer. Il load balancer indirizza il traffico verso il controller attivo in qualsiasi momento. I nomi di dominio delle istanze puntano ai rispettivi endpoint di bilanciamento del carico.

*URLs*

Ciascuna delle tue istanze ha un URL, come illustrato nell'esempio seguente.


| 
| 
| Ambiente | Istanza | 
| --- |--- |
| **Produzione** | `customer.stonebranch.cloud` | 
| **Sviluppo (non produzione)** | `customerdev.stonebranch.cloud` | 
| **Test (non di produzione)** | `customertest.stonebranch.cloud` | 

**Nota**  
  I nomi delle istanze non di produzione possono essere impostati in base alle proprie esigenze.

*Disponibilità elevata*

L'alta disponibilità (HA) è la capacità di un sistema di funzionare ininterrottamente senza guasti per un determinato periodo di tempo. Tali errori includono, a titolo esemplificativo, lo storage, i ritardi di risposta nelle comunicazioni con il server causati da problemi di CPU o memoria e la connettività di rete.

Per soddisfare i requisiti HA:
+ Tutte le istanze EC2, i database e le altre configurazioni vengono replicati su due zone di disponibilità separate all'interno della stessa regione AWS.
+ Il controller viene fornito tramite un'Amazon Machine Image (AMI) su due server Linux nelle due zone di disponibilità. Ad esempio, se hai effettuato il provisioning nella regione Europa eu-west-1, hai un controller universale nella zona di disponibilità eu-west-1a e nella zona di disponibilità eu-west-1c.
+ Nessun processo può essere eseguito direttamente sui server delle applicazioni e nessun dato può essere archiviato su questi server.
+ L'Application Load Balancer esegue controlli di integrità su ogni Universal Controller per identificare quello attivo e indirizzare il traffico verso di esso. Nel caso in cui un server presenti problemi, il load balancer porta automaticamente l'Universal Controller passivo a uno stato attivo. Il load balancer identifica quindi la nuova istanza attiva di Universal Controller dai controlli di integrità e inizia a indirizzare il traffico. Il failover avviene entro quattro minuti senza perdita di posti di lavoro e l'URL del frontend rimane lo stesso.
+ Il servizio di database compatibile con Aurora MySQL archivia i dati di Universal Controller. Per gli ambienti di produzione, un cluster di database è creato con due istanze di database in due diverse zone di disponibilità all'interno di una singola regione AWS. Entrambi gli Universal Controller utilizzano un'interfaccia Java Database Connectivity (JDBC) che punta a un singolo endpoint del cluster di database. Nel caso in cui un'istanza di database presenti problemi, l'endpoint del cluster di database punta dinamicamente all'istanza integra. Non sono richiesti interventi manuali.

*Backup ed eliminazione*

Stonebranch Universal Controller è configurato per eseguire il backup e l'eliminazione dei vecchi dati seguendo la pianificazione mostrata nella tabella.


| 
| 
| Tipo | Schedule | 
| --- |--- |
| **Attività** | 7 giorni | 
| **Audit** | 90 giorni | 
| **Cronologia** | 60 giorni | 

I dati di backup precedenti alle date mostrate vengono esportati in formato.xml e archiviati nel file system. Una volta completato il processo di backup, i dati più vecchi vengono eliminati dal database e archiviati in un bucket S3 per un massimo di un anno per le istanze di produzione.

È possibile modificare questa pianificazione nell'interfaccia Universal Controller. Tuttavia, l'aumento di questi intervalli di tempo potrebbe causare tempi di inattività più lunghi durante la manutenzione.

## Tools (Strumenti)
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**Servizi AWS**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) è una piattaforma AWS nativa per il cloud che ti aiuta a modernizzare le tue applicazioni mainframe in ambienti di runtime gestiti da AWS. Offre strumenti e risorse per aiutarti a pianificare e implementare la migrazione e la modernizzazione.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) fornisce volumi di storage a livello di blocchi da utilizzare con le istanze Amazon EC2.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi nel cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS. Questo modello utilizza l'edizione compatibile con Amazon Aurora MySQL.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra istanze Amazon EC2, contenitori e indirizzi IP in una o più zone di disponibilità. Questo modello utilizza un Application Load Balancer.

**Stonebranch**
+ [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) è un sistema di prodotti per l'automazione dei carichi di lavoro aziendali. Questo modello utilizza i seguenti componenti UAC:
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), un'applicazione Web Java in esecuzione in un contenitore Web Tomcat, è la soluzione aziendale per la pianificazione dei lavori e l'automazione del carico di lavoro di Universal Automation Center. Il controller presenta un'interfaccia utente per la creazione, il monitoraggio e la configurazione delle informazioni sul controller, gestisce la logica di pianificazione, elabora tutti i messaggi da e verso gli Universal Agent e sincronizza gran parte delle operazioni ad alta disponibilità di Universal Automation Center.
  + [Universal Agent è un agente](https://www.stonebranch.com/documentation-universal-agent) di pianificazione indipendente dal fornitore che collabora con Job Scheduler esistente su tutte le principali piattaforme informatiche, sia legacy che distribuite. Sono supportati tutti gli scheduler che funzionano su Unixz/Series, i/Series, Linux o Windows.
+ [Universal Agent è un agente](https://www.stonebranch.com/documentation-universal-agent) di pianificazione indipendente dal fornitore che collabora con Job Scheduler esistente su tutte le principali piattaforme informatiche, sia legacy che distribuite. Sono supportati tutti gli scheduler che funzionano su Unixz/Series, i/Series, Linux o Windows.
+ [Stonebranch -integration aws-mainframe-modernization-stonebranch AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) è il modello di integrazione per eseguire, monitorare e rieseguire lavori in batch nella piattaforma AWS Mainframe Modernization.

**Codice**

[Il codice per questo pattern è disponibile nel repository -integration. aws-mainframe-modernization-stonebranch](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/) GitHub 

## Epiche
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-epics"></a>

### Installa Universal Controller e Universal Agent su Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica i file di installazione. | Scarica l'installazione dai server Stonebranch. Per ottenere i file di installazione, contatta Stonebranch. | Architetto del cloud | 
| Avvia l'istanza EC2. | Avrai bisogno di circa 3 GB di spazio aggiuntivo per le installazioni di Universal Controller e Universal Agent. Fornisci quindi almeno 30 GB di spazio su disco per l'istanza.Aggiungi la porta 8080 al gruppo di sicurezza in modo che sia accessibile. | Architetto del cloud | 
| Verifica i prerequisiti. | Prima dell'installazione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore cloud, amministratore Linux | 
| Installa Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Architetto cloud, amministratore Linux | 
| Installa Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore cloud, amministratore Linux | 
| Aggiungi OMS a Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Importa AWS Mainframe Modernization Universal Extension e crea un'attività
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Importa modello di integrazione. | Per questo passaggio, è necessaria l'estensione [universale di AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Assicurati che sia stata scaricata l'ultima versione rilasciata del file.zip.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Dopo l'importazione del modello di integrazione, vedrai **AWS Mainframe Modernization Tasks in Servizi** **disponibili**. | Amministratore di Universal Controller | 
| Abilita credenziali risolvibili. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Avvia l'operazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Test di avvio di un processo in batch
<a name="test-starting-a-batch-job"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'attività per il processo batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Avvia l'operazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Crea un flusso di lavoro per più attività
<a name="create-a-workflow-for-multiple-tasks"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Copia le attività. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Attività di aggiornamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Crea un flusso di lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Controlla lo stato del flusso di lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Risolvi i problemi relativi ai processi batch non riusciti e rieseguili
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Correggi l'operazione non riuscita e riesegui. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Crea le attività di avvio dell'applicazione e interrompi l'applicazione
<a name="create-start-application-and-stop-application-tasks"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'azione Avvia applicazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Creare un'attività Annulla esecuzione Batch
<a name="create-a-cancel-batch-execution-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'azione Annulla Batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Risorse correlate
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Controller universale](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Agente universale](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Impostazioni LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [Single Sign-On SAML](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Strumento di conversione Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Informazioni aggiuntive
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Icone nell'editor del flusso di lavoro**

![\[Attività RUNHELLO nella parte superiore, FOOBAR nella parte centrale e le attività rimanenti al terzo livello.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Tutte le attività connesse**

![\[RUNHELLO si connette a FOOBAR, che si collega alle tre attività rimanenti.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Stato del flusso di lavoro**

![\[L'operazione FOOBAR ha esito negativo e le tre attività rimanenti sono in attesa.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Esegui la migrazione e la replica di file VSAM su Amazon RDS o Amazon MSK utilizzando Connect from Precisly
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna e Boopathy GOPALSAMY, Amazon Web Services*

## Riepilogo
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-summary"></a>

[Questo modello mostra come migrare e replicare i file VSAM (Virtual Storage Access Method) da un mainframe a un ambiente di destinazione nel cloud AWS utilizzando Connect from Precisly.](https://www.precisely.com/product/precisely-connect/connect) Gli ambienti di destinazione coperti da questo modello includono Amazon Relational Database Service (Amazon RDS) e Amazon Managed Streaming for Apache Kafka (Amazon MSK). Connect utilizza [Change Data Capture (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) per monitorare continuamente gli aggiornamenti dei file VSAM di origine e quindi trasferirli in uno o più ambienti di destinazione AWS. Puoi utilizzare questo modello per raggiungere i tuoi obiettivi di modernizzazione delle applicazioni o di analisi dei dati. Ad esempio, puoi utilizzare Connect per migrare i file dell'applicazione VSAM sul cloud AWS con bassa latenza o migrare i dati VSAM verso un data warehouse o un data lake AWS per analisi in grado di tollerare latenze di sincronizzazione superiori a quelle richieste per la modernizzazione delle applicazioni.

## Prerequisiti e limitazioni
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Prerequisiti**
+ [IBM V2R1 o versione successiva z/OS ](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument)
+ [CICS Transaction Server per z/OS (CICS TS) V5.1 o versione successiva (acquisizione dati 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) o versione successiva
+ Conformità ai [requisiti di sicurezza 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) (ad esempio, autorizzazione APF per le librerie di caricamento) SQData 
+ I log di ripristino VSAM sono attivati
+ (Opzionale) [CICS VSAM Recovery Version (CICS VR) per acquisire automaticamente i registri CDC](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr)
+ Un account AWS attivo
+ Un [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) con una sottorete raggiungibile dalla tua piattaforma legacy
+ Una licenza VSAM Connect di Precisly

**Limitazioni**
+ Connect non supporta la creazione automatica di tabelle di destinazione basate su schemi o quaderni VSAM di origine. È necessario definire la struttura della tabella di destinazione per la prima volta.
+ Per destinazioni non in streaming come Amazon RDS, è necessario specificare la mappatura tra origine di conversione e destinazione nello script di configurazione di Apply Engine.
+ Le funzioni di registrazione, monitoraggio e avviso sono implementate APIs e richiedono componenti esterni (come Amazon CloudWatch) per essere completamente operativi.

**Versioni del prodotto**
+ SQData 40134 per z/OS
+ SQData 4.0.43 per Amazon Linux Amazon Machine Image (AMI) su Amazon Elastic Compute Cloud (Amazon) EC2

## Architecture
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-architecture"></a>

**Stack tecnologico di origine**
+ Job Control Language (JCL)
+ Shell Unix z/OS e Interactive System Productivity Facility (ISPF)
+ Utilità VSAM (IDCAMS)

**Stack tecnologico Target**
+ Amazon EC2
+ MSK Amazon
+ Amazon RDS
+ Amazon VPC

**Architettura Target**

*Migrazione di file VSAM su Amazon RDS*

Il diagramma seguente mostra come migrare i file VSAM su un database relazionale, come Amazon RDS, in tempo reale o quasi reale utilizzando il CDC nell'ambiente di origine (mainframe locale) e l'Apply [Engine agent/publisher nell'](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine)ambiente di destinazione (AWS Cloud).

![\[Diagram showing VSAM file migration from on-premises mainframe to Cloud AWS using CDC and Apply Engine.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)


Il diagramma mostra il seguente flusso di lavoro in batch:

1. Connect acquisisce le modifiche a un file confrontando i file VSAM dai file di backup per identificare le modifiche e quindi invia le modifiche al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti a un motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il motore di applicazione nell'ambiente di destinazione riceve le modifiche dall'agente Publisher e le applica a un database relazionale o non relazionale.

Il diagramma mostra il seguente flusso di lavoro online:

1. Connect acquisisce le modifiche nel file online utilizzando una replica del registro e quindi trasmette le modifiche acquisite in un flusso di registro.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il motore di applicazione nell'ambiente di destinazione riceve le modifiche dall'agente Publisher e quindi le applica a un database relazionale o non relazionale.

*Migrazione di file VSAM su Amazon MSK*

Il diagramma seguente mostra come eseguire lo streaming di strutture di dati VSAM da un mainframe ad Amazon MSK in modalità ad alte prestazioni e generare automaticamente conversioni di schemi JSON o AVRO che si integrano con Amazon MSK.

![\[Diagram showing data flow from on-premises mainframe to Cloud AWS services via Amazon VPC.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)


Il diagramma mostra il seguente flusso di lavoro in batch:

1. Connect acquisisce le modifiche a un file utilizzando CICS VR o confrontando i file VSAM dai file di backup per identificare le modifiche. Le modifiche acquisite vengono inviate al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il Replicator Engine che opera in modalità di elaborazione parallela divide i dati in un'unità di cache di lavoro.

1. I thread di lavoro acquisiscono i dati dalla cache.

1. I dati vengono pubblicati sugli argomenti di Amazon MSK dai thread di lavoro.

1. [Gli utenti applicano le modifiche da Amazon MSK a destinazioni come Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) OpenSearch o Amazon Service utilizzando i connettori.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

Il diagramma mostra il seguente flusso di lavoro online:

1. Le modifiche nel file online vengono acquisite utilizzando una replica del registro. Le modifiche acquisite vengono trasmesse al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il Replicator Engine che opera in modalità di elaborazione parallela divide i dati in un'unità di cache di lavoro.

1. I thread di lavoro acquisiscono i dati dalla cache.

1. I dati vengono pubblicati sugli argomenti di Amazon MSK dai thread di lavoro.

1. [Gli utenti applicano le modifiche da Amazon MSK a destinazioni come DynamoDB, Amazon S3 o Service utilizzando i connettori OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Tools (Strumenti)
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) è un servizio completamente gestito che ti aiuta a creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati di streaming.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

## Epiche
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-epics"></a>

### Preparare l'ambiente di origine (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installare Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Configura la directory ZfS. | Per configurare una directory ZfS, seguite le istruzioni contenute nelle directory delle [variabili ZFs nella documentazione di Precisly](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).Le configurazioni dei controller daemon e degli Capture/Publisher agenti sono memorizzate nel file system z/OS UNIX Systems Services (denominato ZFs). Gli agenti Controller Daemon, Capture, Storage e Publisher richiedono una struttura di directory ZfS predefinita per archiviare un numero limitato di file. | Sviluppatore/amministratore IBM Mainframe | 
|  TCP/IP Configura le porte. | Per configurare le TCP/IP porte, segui le istruzioni fornite dalle porte [TCP/IP nella documentazione di Precisly](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).Il Controller Daemon richiede porte sui sistemi di origine TCP/IP . Alle porte fanno riferimento i motori dei sistemi di destinazione (dove vengono elaborati i dati di modifica acquisiti). | Sviluppatore/amministratore IBM Mainframe | 
| Crea un z/OS logstream. | Per creare un [logstream z/OS, segui le istruzioni di [Create z/OS system LogStreams](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)](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) nella documentazione di Precisly.Connect utilizza il logstream per acquisire e trasmettere dati tra l'ambiente di origine e l'ambiente di destinazione durante la migrazione.Per un esempio JCL che crea un z/OS LogStream, consulta [Create z/OS System LogStreams](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) nella documentazione di Precisly. | Sviluppatore IBM Mainframe | 
| Identifica e autorizza gli utenti ZfS e IDs le attività avviate. | Utilizzate RACF per concedere l'accesso al file system OMVS ZfS. Per un esempio JCL, vedete [Identificare e autorizzare l'utente e l'attività avviata da ZfS](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) nella documentazione di Precisly. IDs | Sviluppatore/amministratore IBM Mainframe | 
| Genera chiavi z/OS pubbliche/private e il file di chiave autorizzato. | Esegui JCL per generare la key pair. Per un esempio, vedi *Esempio di coppia di chiavi* nella sezione *Informazioni aggiuntive* di questo modello.Per istruzioni, consulta [Generare chiavi z/OS pubbliche e private e file di chiavi autorizzate](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) nella documentazione di Precisly. | Sviluppatore/amministratore di IBM Mainframe | 
| Attiva CICS VSAM Log Replicate e collegalo al logstream. | Esegui il seguente 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> | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il registro di ripristino dei file VSAM tramite un FCT. | Modificate la File Control Table (FCT) in modo che rifletta le seguenti modifiche ai parametri:<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> | Sviluppatore/amministratore IBM Mainframe | 
| Configura CDCz Log per l'agente Publisher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il Controller Daemon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva l'editore. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il logstream. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 

### Preparare l'ambiente di destinazione (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Precisly su un' EC2 istanza. | Per installare Connect from Precisly sull'AMI Amazon Linux per Amazon EC2, segui le istruzioni di [Install Connect CDC (SQData) su UNIX](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) nella documentazione di Precisly. | Informazioni generali su AWS | 
|  TCP/IP Porte aperte. | Per modificare il gruppo di sicurezza in modo da includere le porte Controller Daemon per l'accesso in entrata e in uscita, segui le istruzioni di [TCP/IP nella documentazione di Precisly](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). | Informazioni generali su AWS | 
| Crea directory di file. | Per creare directory di file, segui le istruzioni di [Prepare target apply environment](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) nella documentazione di Precisly. | Informazioni generali su AWS | 
| Crea il file di configurazione di Apply Engine. | Create il file di configurazione di Apply Engine nella directory di lavoro di Apply Engine. Il seguente file di configurazione di esempio mostra Apache Kafka come destinazione:<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>Per ulteriori informazioni, consulta [Sicurezza](https://kafka.apache.org/documentation/#security) nella documentazione di Apache Kafka. | Informazioni generali su AWS | 
| Crea script per l'elaborazione di Apply Engine. | Create gli script per Apply Engine per elaborare i dati di origine e replicare i dati di origine sulla destinazione. Per ulteriori informazioni, vedete [Creare uno script del motore di applicazione nella documentazione](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) di Precisly. | Informazioni generali su AWS | 
| Esegui gli script. | Utilizzate i `SQDENG` comandi `SQDPARSE` and per eseguire lo script. Per ulteriori informazioni, consulta [Analizzare uno script per 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) nella documentazione di Precisly. | Informazioni generali su AWS | 

### Convalida l'ambiente
<a name="validate-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida l'elenco dei file VSAM e delle tabelle di destinazione per l'elaborazione CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 
| Verificare che il SQData prodotto Connect CDC sia collegato. | Esegui un processo di test e verifica che il codice restituito da questo lavoro sia 0 (operazione riuscita).I messaggi di stato di Connect CDC SQData Apply Engine dovrebbero mostrare messaggi di connessione attivi. | Informazioni generali su AWS, mainframe | 

### Esecuzione e convalida dei casi di test (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui il processo batch nel mainframe. | Esegui il processo di applicazione batch utilizzando un JCL modificato. Includi i passaggi nel JCL modificato che eseguono le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 
| Controlla il logstream. | Controllate il logstream per confermare che è possibile visualizzare i dati di modifica per il processo batch mainframe completato. | Informazioni generali su AWS, mainframe | 
| Convalida i conteggi per le modifiche delta di origine e la tabella di destinazione. | Per confermare il conteggio dei record, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 

### Esegui e convalida i casi di test (online)
<a name="run-and-validate-test-cases-online"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la transazione online in una regione CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore IBM Mainframe | 
| Controlla il logstream. | Verifica che il logstream sia popolato con modifiche specifiche al livello di record. | Sviluppatore di mainframe AWS | 
| Convalida il conteggio nel database di destinazione. | Monitora Apply Engine per conteggi a livello record. | Precisamente, Linux | 
| Convalida il conteggio dei record e i record di dati nel database di destinazione. | Interroga il database di destinazione per convalidare il numero di record e i record di dati. | Informazioni generali su AWS | 

## Risorse correlate
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS (documentazione precisa](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))
+ [Applica il motore (documentazione](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) precisa)
+ [Motore Replicator](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentazione precisa)
+ [Il flusso di log](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentazione IBM)

## Informazioni aggiuntive
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Esempio di file di configurazione**

Questo è un esempio di file di configurazione per un logstream in cui l'ambiente di origine è un mainframe e l'ambiente di destinazione è 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;
```

**Esempio di coppia di chiavi**

Questo è un esempio di come eseguire JCL per generare la key pair:

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

# Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

*Santosh Kumar Singh e Cheryl du Preez, Amazon Web Services*

## Riepilogo
<a name="modernize-carddemo-mainframe-app-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)è progettato per accelerare la modernizzazione delle applicazioni mainframe. Utilizza l'intelligenza artificiale generativa per semplificare il processo di modernizzazione del mainframe. Automatizza attività complesse, come l'analisi del codice legacy, la documentazione del mainframe, l'estrazione delle regole aziendali, la scomposizione delle applicazioni monolitiche in un dominio aziendale e il refactoring del codice. Accelera i progetti di modernizzazione automatizzando attività complesse, come l'analisi delle applicazioni e la pianificazione delle sequenze di migrazione. Durante la scomposizione di applicazioni monolitiche, AWS Transform sequenzia in modo intelligente la trasformazione delle applicazioni mainframe, il che aiuta a trasformare le funzioni aziendali in parallelo. AWS Transform può accelerare il processo decisionale e migliorare l'agilità operativa e l'efficienza della migrazione.

Questo modello offre step-by-step istruzioni per aiutarvi a testare le capacità di modernizzazione del mainframe AWS Transform utilizzando [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), che è un esempio di applicazione mainframe open source.

## Prerequisiti e limitazioni
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ AWS IAM Identity Center, [abilitato](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Autorizzazioni](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) che consentono agli amministratori di abilitare AWS Transform
+ [Autorizzazioni](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) che consentono agli amministratori di accettare le richieste di connessione Amazon Simple Storage Service (Amazon S3) per l'applicazione Web AWS Transform 

**Limitazioni**
+ AWS Transform è disponibile solo in alcuni. Regioni AWS Per un elenco completo delle regioni supportate, consulta [Regioni supportate per AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform supporta l'analisi del codice, la generazione di documenti, l'estrazione, la scomposizione e il refactoring delle regole aziendali da Common Business-Oriented Language (COBOL) a Java. Per ulteriori informazioni, vedere [Funzionalità e caratteristiche chiave e](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) [Tipi di file supportati](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files) per la trasformazione delle applicazioni mainframe.
+ È prevista una quota di servizio per le funzionalità di trasformazione del mainframe in. AWS Transform Per ulteriori informazioni, vedere [Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) for. AWS Transform
+ Per collaborare su uno spazio di lavoro condiviso, tutti gli utenti devono essere utenti registrati della stessa istanza associata all'istanza dell' AWS Transform applicazione Web. AWS IAM Identity Center 
+ Il bucket Amazon S3 e AWS Transform devono trovarsi nella stessa Account AWS regione.

## Architecture
<a name="modernize-carddemo-mainframe-app-architecture"></a>

Il diagramma seguente mostra l'architettura configurata secondo questo modello.

![\[Utilizzo di AWS Transform per modernizzare un'applicazione mainframe archiviata in un bucket Amazon S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


Il diagramma mostra il flusso di lavoro seguente:

1. AWS Transform utilizza un connettore per accedere all'applicazione CardDemo mainframe, archiviata in un bucket Amazon S3.

1. AWS Transform utilizza AWS IAM Identity Center per gestire l'accesso e l'autenticazione degli utenti. Il sistema implementa più livelli di controlli di sicurezza per l'autenticazione, l'autorizzazione, la crittografia e la gestione degli accessi per proteggere codice e artefatti durante l'elaborazione. Gli utenti interagiscono con l' AWS Transform agente tramite un'interfaccia di chat. Puoi fornire istruzioni all'agente AI per attività specifiche in inglese. Per ulteriori informazioni, consulta [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) nella AWS Transform documentazione.

1. L'agente AI interpreta le istruzioni dell'utente, crea un piano di lavoro, divide il lavoro in attività eseguibili e lo esegue in modo autonomo. Gli utenti possono rivedere e approvare la trasformazione. Le attività di trasformazione includono quanto segue:
   + **Analisi del codice**: AWS Transform analizza il codice contenuto in ogni file alla ricerca di dettagli quali il nome del file, il tipo di file, le righe di codice e i relativi percorsi. L'agente analizza il codice sorgente, esegue classificazioni, crea mappature delle dipendenze e identifica eventuali artefatti mancanti. Identifica inoltre i componenti duplicati.
   + **Generazione di documenti**: AWS Transform genera documentazione per l'applicazione mainframe. Analizzando il codice, può creare automaticamente una documentazione dettagliata dei programmi applicativi, comprese le descrizioni della logica aziendale, dei flussi, delle integrazioni e delle dipendenze presenti nei sistemi legacy.
   + **Estrazione della logica aziendale**: AWS Transform analizza i programmi COBOL per documentarne la logica aziendale principale, per aiutarvi a comprendere la logica aziendale fondamentale.
   + **Scomposizione del codice**: AWS Transform scompone il codice in domini che tengono conto delle dipendenze tra programmi e componenti. Il raggruppamento di file e programmi correlati all'interno dello stesso dominio migliora l'organizzazione e aiuta a preservare la struttura logica dell'applicazione quando la scompone in componenti più piccoli.
   + **Pianificazione dell'ondata di migrazione**: in base ai domini creati durante la fase di decomposizione, AWS Transform genera un piano di ondata di migrazione con l'ordine di modernizzazione consigliato.
   + **Rifattorizzazione del codice: AWS Transform rifattorizza** il codice in tutti i file di dominio o in alcuni file di dominio in codice Java. L'obiettivo di questo passaggio è preservare la logica aziendale fondamentale dell'applicazione rifattorizzandola in un'applicazione Java modernizzata e ottimizzata per il cloud.

1. AWS Transform archivia il codice rifattorizzato, i documenti generati, gli artefatti associati e le librerie di runtime nel tuo bucket Amazon S3. Puoi fare quanto segue:
   + Accedi alla cartella runtime nel tuo bucket Amazon S3.
   + Crea e distribuisci l'applicazione seguendo le istruzioni Compila [e distribuisci la tua applicazione modernizzata dopo il refactoring](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) riportato nella documentazione. AWS Transform 
   + Tramite l'interfaccia di chat, richiedi e scarica un esempio o un modello Hashicorp AWS CloudFormation Terraform AWS Cloud Development Kit (AWS CDK). Questi modelli possono aiutarti a distribuire AWS le risorse necessarie per supportare l'applicazione refactorizzata.
   + Utilizzate [Reforge per](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) migliorare la qualità del codice rifattorizzato utilizzando modelli di linguaggio di grandi dimensioni (). LLMs Il motore di refactoring preserva l'equivalenza funzionale di COBOL trasformandolo in codice Java. Reforge è un passaggio opzionale disponibile dopo la trasformazione. Questo passaggio serve LLMs a ristrutturare il codice in modo che assomigli da vicino a Java nativo, il che può migliorare la leggibilità e la manutenibilità. Reforge aggiunge anche commenti leggibili dall'uomo per aiutarti a comprendere il codice e implementa modelli di codifica e best practice moderni.

## Tools (Strumenti)
<a name="modernize-carddemo-mainframe-app-tools"></a>

**Servizi AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come .NET, mainframe e carichi di lavoro. VMware 
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) alle tue applicazioni e a quelle cloud. Account AWS 
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Archivio di codice**

È possibile utilizzare l'applicazione AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source come applicazione di esempio per iniziare con la modernizzazione del mainframe.

## Best practice
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Inizia in piccolo**: inizia con codice piccolo e meno complesso (15.000—20.000 righe di codice) per comprendere come analizza e trasforma le applicazioni mainframe. AWS Transform 
+ **Combina con l'esperienza umana**: utilizza AWS Transform come acceleratore mentre applichi l'esperienza umana per risultati ottimali.
+ **Revisione e test accurati**: rivedi sempre attentamente il codice trasformato ed esegui test completi per convalidare l'equivalenza funzionale dopo la trasformazione.
+ **Fornisci feedback**: per fornire feedback e suggerimenti per il miglioramento, utilizza il pulsante **Invia feedback** in Console di gestione AWS o crea un caso con. [Supporto AWS](https://support.console.aws.amazon.com/) Per ulteriori informazioni, consulta [Creazione di un caso di supporto](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Il tuo contributo è prezioso per il miglioramento del servizio e lo sviluppo futuro.

## Epiche
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Preparare l'applicazione mainframe
<a name="prepare-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un bucket. | Crea un bucket Amazon S3 nella stessa regione in cui AWS Transform è Account AWS abilitato. Questo bucket viene utilizzato per archiviare il codice dell'applicazione mainframe e lo AWS Transform utilizza per archiviare i documenti generati, il codice refactorizzato e altri file associati alla trasformazione. Per istruzioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3. | Informazioni generali su AWS | 
| Preparare l'applicazione mainframe di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Sviluppatore di app, ingegnere DevOps  | 

### Configura IAM Identity Center e AWS Transform
<a name="configure-sso-and-trn"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi utenti a IAM Identity Center. | Aggiungi i tuoi potenziali utenti a IAM Identity Center. Segui le istruzioni in [Aggiungere utenti in IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) nella AWS Transform documentazione. | Amministratore AWS | 
| Abilita AWS Transform e aggiungi utenti. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Amministratore AWS | 
| Configura l'accesso degli utenti all'applicazione AWS Transform web. | Ogni utente deve accettare l'invito ad accedere all'applicazione AWS Transform web. Segui le istruzioni riportate in [Accettazione dell'invito](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) nella AWS Transform documentazione. | Sviluppatore dell'app, proprietario dell'app | 
| Accedi all'applicazione AWS Transform web. | Segui le istruzioni riportate [in Accesso a AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Sviluppatore dell'app, proprietario dell'app | 
| Configura uno spazio di lavoro. | Configura uno spazio di lavoro in cui gli utenti possano collaborare nell' AWS Transform applicazione web. Segui le istruzioni riportate in [Avvia il tuo progetto](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) nella AWS Transform documentazione. | Amministratore AWS | 

### Trasforma l'applicazione mainframe
<a name="transform-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un lavoro di trasformazione. | Crea un processo di trasformazione per modernizzare l'applicazione CardDemo mainframe. Per istruzioni, consulta [Creare e avviare un lavoro](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) nella AWS Transform documentazione. Quando ti viene chiesto di impostare gli obiettivi nell'interfaccia di AWS Transform chat, scegli **Esegui la modernizzazione del mainframe (da IBM z/OS a AWS)**, quindi scegli **Analizza codice, Genera documentazione tecnica, Logica aziendale, Scomponi codice, Pianifica la sequenza di migrazione e Trasforma il codice** in Java. | Sviluppatore di app, proprietario dell'app | 
| Configura il connettore. | Stabilisci un connettore per il bucket Amazon S3 che contiene l' CardDemo applicazione mainframe. Questo connettore consente di accedere AWS Transform alle risorse nel bucket ed eseguire funzioni di trasformazione consecutive. Per istruzioni, consulta [Configurare un connettore](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) nella AWS Transform documentazione. | Amministratore AWS | 
| Esegui l'analisi del codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consultate [Analisi del codice](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 
| Genera documentazione tecnica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Generare documentazione tecnica](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 
| Estrai la logica aziendale. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Extract business logic nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). AWS Transform  | Sviluppatore di app, proprietario dell'app | 
| Decomponi il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni sulla decomposizione e sui semi, vedete [Decomposizione nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition). AWS Transform  | Sviluppatore di app, proprietario dell'app | 
| Pianifica le ondate migratorie. | Pianifica le ondate di migrazione per l' CardDemo applicazione. Segui le istruzioni riportate nella [pianificazione delle ondate di migrazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) nella AWS Transform documentazione per rivedere e modificare il piano delle ondate. | Sviluppatore dell'app, proprietario dell'app | 
| Rifattorizza il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Sviluppatore di app, proprietario dell'app | 
| (Facoltativo) Usa Reforge per migliorare il codice Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) nella documentazione. AWS Transform  | Sviluppatore dell'app, proprietario dell'app | 
| Semplifica l'implementazione. | AWS Transform può fornire modelli Infrastructure as Code (IaC) per CloudFormation AWS CDK Terraform. Questi modelli consentono di distribuire i componenti principali, tra cui risorse di elaborazione, database, archiviazione e sicurezza.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [le funzionalità di distribuzione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 

## Risoluzione dei problemi
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Non è possibile visualizzare il codice sorgente o il documento generato nell'applicazione AWS Transform Web. | Aggiungi una policy all'autorizzazione CORS per il bucket Amazon S3 da AWS Transform consentire come origine. Per ulteriori informazioni, consulta le autorizzazioni [CORS del bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) nella documentazione. AWS Transform  | 

## Risorse correlate
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS documentazione**
+ [Trasformazione delle applicazioni mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentazione)

**Altre risorse AWS **
+ [Accelera il tuo percorso di modernizzazione del mainframe utilizzando agenti AI con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS post sul blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Video e tutorial**
+ [Introduzione ad 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 - Modernizza più rapidamente le applicazioni mainframe con](https://www.youtube.com/watch?v=pSi0XtYfY4o) Amazon Q Developer () YouTube
+ [AWS re:Invent 2024](https://www.youtube.com/watch?v=9FjxnEoH5wg) - Automatizzazione della migrazione e della modernizzazione per accelerare la trasformazione () YouTube
+ [AWS re:Invent 2024 - Toyota promuove](https://www.youtube.com/watch?v=_NXc1MJenw4) l'innovazione e migliora l'efficienza operativa con gen AI () YouTube

**Nota**  
AWS Transform era precedentemente noto come *Amazon Q Developer transform for mainframe*.

# Modernizza e implementa le applicazioni mainframe utilizzando e 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*

## Riepilogo
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)può accelerare la modernizzazione su larga scala di .NET, VMware mainframe e carichi di lavoro. Implementa agenti di intelligenza artificiale specializzati che automatizzano attività complesse come valutazioni, analisi del codice, refactoring, scomposizione, mappatura delle dipendenze, convalida e pianificazione della trasformazione. [Questo modello dimostra come modernizzare un'applicazione mainframe e quindi distribuirla nell' AWS Transform infrastruttura utilizzando Hashicorp Terraform. AWS](https://developer.hashicorp.com/terraform/intro) Queste step-by-step istruzioni consentono di trasformare [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), che è un esempio di applicazione mainframe open source, da COBOL a una moderna applicazione Java.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Autorizzazioni amministrative per creare AWS risorse e distribuire applicazioni
+ [Terraform versione 1.5.7 o successiva, configurata](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Provider per Terraform, configurato](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center[, abilitato](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [abilitato](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Un utente, inserito in un'[area di](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) AWS Transform lavoro con un ruolo di collaboratore in grado di eseguire lavori di trasformazione

**Limitazioni**
+ AWS Transform è disponibile solo in alcuni. Regioni AWS Per un elenco completo delle regioni supportate, consulta [Regioni supportate per AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ È prevista una quota di servizio per le funzionalità di trasformazione del mainframe in AWS Transform. Per ulteriori informazioni, vedere [Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) for. AWS Transform
+ Per collaborare su uno spazio di lavoro condiviso, tutti gli utenti devono essere utenti registrati della stessa istanza associata all'istanza dell' AWS Transform applicazione Web. AWS IAM Identity Center 
+ Il bucket AWS Transform Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) deve trovarsi nella stessa regione. Account AWS 

## Architecture
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

Il diagramma seguente mostra la end-to-end modernizzazione dell'applicazione legacy e la distribuzione in. Cloud AWS Le credenziali dell'applicazione e del database vengono Gestione dei segreti AWS archiviate e Amazon CloudWatch fornisce funzionalità di monitoraggio e registrazione.

![\[AWS Transform modernizza un'applicazione mainframe e la distribuzione tramite Terraform.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Tramite AWS IAM Identity Center, l'utente si autentica e accede in. AWS Transform Account AWS

1. L'utente carica il codice mainframe COBOL nel bucket Amazon S3 e avvia la trasformazione in. AWS Transform

1. AWS Transform modernizza il codice COBOL in codice Java nativo del cloud e archivia il codice modernizzato nel bucket Amazon S3.

1. Terraform crea l' AWS infrastruttura per distribuire l'applicazione modernizzata, tra cui un'Application Load Balancer, un'istanza Amazon Elastic Compute Cloud (Amazon EC2) e il database Amazon Relational Database Service (Amazon RDS). Terraform distribuisce il codice modernizzato sull'istanza Amazon EC2.

1. I file VSAM vengono caricati su Amazon EC2 e migrati da Amazon EC2 al database Amazon RDS.

## Tools (Strumenti)
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di calcolo scalabile nel Cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente. In questo modello, le istanze del cluster di failover di SQL Server vengono installate sulle istanze Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) alle tue applicazioni e a quelle cloud. Account AWS 
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale in. Cloud AWS
+ Con [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) puoi sostituire le credenziali nel codice,incluse le password, con una chiamata API a Secrets Manager in modo da recuperare il segreto a livello di codice.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come.NET, mainframe e carichi di lavoro. VMware 

**Altri strumenti**
+ [Apache Maven](https://maven.apache.org/) è uno strumento open source per la gestione di progetti software e l'automazione dello sviluppo per progetti Java.
+ [Apache Tomcat](https://tomcat.apache.org/) è un contenitore Servlet open source e un server web per codice Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) è uno strumento Infrastructure as Code (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud.
+ [Spring Boot](https://spring.io/projects/spring-boot) è un framework open source basato su Spring Framework in Java.

**Deposito di codice**

Il codice per questo pattern è disponibile nel repository GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Questo modello utilizza l'applicazione AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source come applicazione di esempio.

## Best practice
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Assegna la piena proprietà del codice e delle risorse destinate alla migrazione.
+ Sviluppa e testa un proof of concept prima di passare a una migrazione completa.
+ Garantisci l'impegno di tutte le parti interessate.
+ Stabilisci canali di comunicazione chiari.
+ Definisci e documenta i requisiti minimi di prodotto (MVP).
+ Stabilisci criteri di successo chiari.

## Epiche
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Prepara e carica il codice dell'applicazione mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un bucket. | Crea un bucket Amazon S3 nella stessa regione in cui AWS Transform è Account AWS abilitato. Questo bucket viene utilizzato per archiviare il codice dell'applicazione mainframe, i dati e gli script aggiuntivi necessari per creare ed eseguire l'applicazione. AWS Transform utilizza questo bucket per archiviare il codice rifattorizzato e altri file associati alla trasformazione. Per istruzioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3. | AWS generale, amministratore AWS | 
| Imposta le autorizzazioni CORS per il bucket. | Quando configuri il bucket per AWS Transform l'accesso, devi configurare la condivisione delle risorse tra le origini (CORS) per il bucket. Se non è configurato correttamente, potresti non essere in grado di utilizzare le funzionalità di visualizzazione in linea o di confronto dei file di. AWS Transform Per istruzioni su come configurare CORS per un bucket, consulta [Usare la condivisione di risorse tra origini diverse](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) nel bucket Amazon S3. Per la policy, consulta le autorizzazioni CORS del [bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) nella documentazione. AWS Transform  | AWS generale, amministratore AWS | 
| Preparare il codice applicativo mainframe di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | General AWS, sviluppatore di app | 

### Trasforma l'applicazione mainframe
<a name="transform-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il AWS Transform lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore dell'app, proprietario dell'app | 
| Configura un connettore. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, proprietario dell'app | 
| Trasforma il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore dell'app, proprietario dell'app | 

### Implementa l'infrastruttura tramite Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna i modelli. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Per ambienti di produzione o simili, configura componenti di sicurezza aggiuntivi. Ad esempio, abilita [AWS WAF le protezioni per il tuo Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS generale, amministratore AWS | 
| Implementa l'infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Installa e configura Apache Tomcat sull'istanza Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il software richiesto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Verifica l'installazione del software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Compila e impacchetta il codice applicativo modernizzato
<a name="compile-and-package-the-modernized-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica ed estrai il codice generato. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Crea l'applicazione modernizzata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Esegui la migrazione del database
<a name="migrate-the-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare il database e gli schemi JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Convalida la creazione del database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Migra i dati nel database JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Installa l'applicazione modernizzata
<a name="install-the-modernized-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa l'applicazione modernizzata sull'istanza Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, architetto cloud | 
| Riavvia il server Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, architetto cloud | 
| Esegui la migrazione del set di dati VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Aggiorna i parametri negli script Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova l'applicazione modernizzata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico di test | 
| Verifica gli script batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico di test | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparati a eliminare l'infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Informazioni generali su AWS | 
| Eliminare l'infrastruttura. | Questi passaggi elimineranno definitivamente le tue risorse. Assicurati di aver eseguito il backup di tutti i dati importanti prima di procedere.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Informazioni generali su AWS | 

## Risoluzione dei problemi
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Autenticazione Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Errori relativi a Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Il nome dell'URL non viene caricato | Assicurati che il gruppo di sicurezza Application Load Balancer abbia il tuo indirizzo IP nella regola in entrata come origine. | 
| Problema di autenticazione nel registro di Tomcat | Verifica che la password segreta del database in Gestione dei segreti AWS e la password in **server.xml** corrispondano. | 

## Risorse correlate
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Guida prescrittiva**
+ [Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentazione del servizio**
+ [AWS Console di amministrazione Blue Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisiti di configurazione dell'infrastruttura per AWS Blu Age Runtime (non gestito)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Onboarding AWS di Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernizzazione delle applicazioni mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configura la configurazione per AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS post sul blog**
+ [Accelera il tuo percorso di modernizzazione del mainframe utilizzando agenti AI con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e 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 and Shoup Inc*

## Riepilogo
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Modernizzando la gestione dell'output del mainframe, puoi ottenere risparmi sui costi, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy e migliorare la resilienza e l'agilità attraverso tecnologie native per il cloud di Amazon Web DevOps Services (AWS). Questo modello mostra come modernizzare i carichi di lavoro di gestione dell'output mainframe critici per l'azienda sul cloud AWS. Il modello utilizza [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) come runtime per un'applicazione mainframe modernizzata, con Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) come server di stampa e LRS X come server di archiviazione. PageCenter LRS PageCenter X offre soluzioni di gestione dell'output per la visualizzazione, l'indicizzazione, la ricerca, l'archiviazione e la protezione dell'accesso agli output aziendali.

[Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Le applicazioni mainframe vengono migrate da [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) su Amazon Elastic Compute Cloud (Amazon). EC2 I carichi di lavoro di gestione dell'output mainframe vengono migrati su Amazon e un database mainframe EC2, come IBM Db2 for) funziona con z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS AWS Directory Service per Microsoft Active Directory per l'autenticazione e l'autorizzazione del flusso di lavoro di gestione dell'output.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un carico di lavoro di gestione dell'output su mainframe.
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Rocket Enterprise Server. Per ulteriori informazioni, consulta la scheda tecnica di [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) nella documentazione di Rocket Software.
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di LRS. Per ulteriori informazioni, consultate *Output Modernization nella documentazione* di LRS.
+ Software e licenza Rocket Enterprise Server. Per ulteriori informazioni, contattate [Rocket Software.](https://www.rocketsoftware.com/products/enterprise-suite/request-contact)
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISSoftware e licenze LRS. Per ulteriori informazioni, [contattate](https://www.lrsoutputmanagement.com/about-us/contact-us/) LRS. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS.


| 
| 
| [Nota: per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di gestione dell'output del mainframe, vedere *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) | 
| --- |

**Versioni del prodotto**
+ [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 X PageCenter V1R3 o versione successiva](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/)

## Architecture
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Database: IBM Db2 for z/OS, database IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Soluzioni di stampa e archiviazione: prodotti di z/OS output e stampa mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA Deliver) e soluzioni di archiviazione (CA Deliver, ASG Mobius o CA Bundle)

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di gestione dell'output su mainframe.

![\[Processo di output del mainframe in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM Db2 for z/OS.

1. Il SoR conserva i dati aziendali del SoE.

1. Il batch job scheduler avvia un processo batch per generare l'output di stampa.

1. Il processo batch estrae i dati dal database. Formatta i dati in base ai requisiti aziendali, quindi genera risultati aziendali come dichiarazioni di fatturazione, carte d'identità o dichiarazioni di prestito. Infine, il processo in batch indirizza l'output alla gestione dell'output per la formattazione, la pubblicazione e l'archiviazione dell'output in base ai requisiti aziendali.

1. La gestione dell'output riceve l'output dal processo batch. La gestione dell'output indicizza, organizza e pubblica l'output in una destinazione specificata nel sistema di gestione dell'output, ad esempio le soluzioni LRS PageCenter X (come illustrato in questo modello) o CA View.

1. Gli utenti possono visualizzare, cercare e recuperare l'output.

**Stack tecnologico Target**
+ Sistema operativo: Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Storage: Amazon Elastic Block Store (Amazon EBS) e FSx Amazon per Windows File Server
+ Linguaggio di programmazione: COBOL, JCL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Stampa e archiviazione: soluzione di stampa (VPSX) e archiviazione (PageCenterX) LRS su AWS
+ Ambiente di runtime mainframe: Rocket Enterprise Server

**Architettura di destinazione**

Il diagramma seguente mostra un'architettura per un carico di lavoro di gestione dell'output mainframe distribuito nel cloud AWS.

![\[Architettura Target per la gestione in batch di app e output in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Il batch job scheduler avvia un processo batch per creare output, ad esempio estratti conto di fatturazione, carte d'identità o rendiconti di prestito.

1. Il processo batch del mainframe ([riplatformato su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime di Rocket Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica di business ai dati e formattare i dati. Quindi invia i dati a una destinazione di output utilizzando il [modulo di uscita della stampante Rocket Software (OpenText documentazione Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html)).

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon e EC2 i suoi dati operativi sono archiviati in Amazon EBS. LRS VPSX/MFI utilizza l'agente di TCP/IP-based LRS/Queue trasmissione per raccogliere i dati di output tramite l'API JES Print Exit di Rocket Software.

   LRS VPSX/MFI esegue la preelaborazione dei dati, ad esempio la traduzione da EBCDIC a ASCII. Svolge anche attività più complesse, inclusa la conversione di flussi di dati esclusivi del mainframe come IBM Advanced Function Presentation (AFP) e Xerox Line Conditioned Data Stream (LCDS) in flussi di dati di visualizzazione e stampa più comuni come Printer Command Language (PCL) e PDF.

   Durante la finestra di manutenzione di LRS PageCenter X, LRS mantiene la coda di output e funge da backup per la coda di output VPSX/MFI . LRS VPSX/MFI si connette e invia l'output a LRS X utilizzando il protocollo PageCenter. LRS/Queue LRS/Queue effettua uno scambio di informazioni sullo stato di preparazione e sul completamento dei lavori per garantire che il trasferimento dei dati avvenga.

   **Note:**

   [Per ulteriori informazioni sui dati di stampa trasferiti da Rocket Software Print Exit a LRS/Queue e sui meccanismi batch mainframe VPSX/MFI supportati da LRS, consultate *Print Data Capture* nella sezione Informazioni aggiuntive.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

   LRS VPSX/MFI può eseguire controlli di integrità a livello di parco stampanti. [Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti nella sezione Informazioni* aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

1. La soluzione di gestione dell'output LRS PageCenter X è distribuita su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon FSx for Windows File Server. LRS PageCenter X fornisce un sistema centrale di gestione dei report di tutti i file importati in LRS PageCenter X e consente a tutti gli utenti di accedervi. Gli utenti possono visualizzare contenuti di file specifici o eseguire ricerche su più file per trovare criteri corrispondenti.

   Il LRS/NetX componente è un server di applicazioni Web multithread che fornisce un ambiente di runtime comune per l'applicazione LRS PageCenter X e altre applicazioni LRS. Il componente LRS/Web Connect è installato sul server Web e fornisce un connettore dal server Web al server delle applicazioni LRS/NetX Web.

1. LRS PageCenter X fornisce l'archiviazione per gli oggetti del file system. I dati operativi di LRS PageCenter X sono archiviati in Amazon FSx for Windows File Server.

1. L'autenticazione e l'autorizzazione della gestione dell'output vengono eseguite da AWS Managed Microsoft AD con LRS/DIS.

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM AFP o Xerox LCDS.

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di gestione dell'output mainframe.

![\[Infrastruttura AWS Multi-AZ con un flusso di lavoro in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Lo scheduler batch avvia il processo batch e viene distribuito su Amazon EC2 su più [zone di disponibilità per l'alta disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA).
**Nota**  
Questo modello non copre l'implementazione dello scheduler in batch. Per ulteriori informazioni sull'implementazione, consultate la documentazione del fornitore del software relativa allo scheduler in uso.

1. Il processo batch del mainframe (scritto in un linguaggio di programmazione come JCL o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto di fatturazione, carte d'identità e dichiarazioni di prestito. Il processo batch viene distribuito su Amazon EC2 in due zone di disponibilità per HA. Utilizza l'API Print Exit di Rocket Software per indirizzare l'output di stampa a LRS VPSX/MFI per la preelaborazione dei dati.

1. Il server di VPSX/MFI stampa LRS è distribuito su Amazon EC2 in due zone di disponibilità per HA (coppia ridondante attiva-standby). Utilizza [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) come archivio dati operativo. Il Network Load Balancer esegue un controllo dello stato delle istanze LRS VPSX/MFI EC2 . Se un'istanza attiva non è integra, il load balancer indirizza il traffico verso le istanze hot standby nell'altra zona di disponibilità. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di errore, è necessario riavviare un'istanza fallita prima che i servizi LRS possano riprendere l'elaborazione della richiesta di stampa.
**Nota**  
LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. [Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti nella sezione Informazioni* aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

1. La gestione dell'output di LRS PageCenter X è implementata EC2 su Amazon in due zone di disponibilità per HA (coppia ridondante attiva-standby). Utilizza [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) come archivio dati operativo. Se un'istanza attiva non è integra, il load balancer esegue un controllo dello stato delle istanze LRS PageCenter X e indirizza il traffico verso EC2 le istanze di standby nell'altra zona di disponibilità.

1. Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare il server LRS con LRS VPSX/MFI X. PageCenter
**Nota**  
LRS PageCenter X supporta un sistema di bilanciamento del carico di livello 4.

1. LRS PageCenter X utilizza Amazon FSx for Windows File Server come archivio dati operativo distribuito su due zone di disponibilità per HA. LRS PageCenter X comprende solo i file che si trovano nella condivisione di file, non in un database esterno.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) viene utilizzato per LRS/DIS eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di gestione dell'output. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione dell'output di stampa* nella sezione Informazioni [aggiuntive](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Tools (Strumenti)
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Servizi AWS**
+ [AWS Directory Service per Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) consente ai carichi di lavoro compatibili con le directory e alle risorse AWS di utilizzare Microsoft Active Directory nel cloud AWS.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra EC2 istanze Amazon, contenitori e indirizzi IP in una o più zone di disponibilità. Questo modello utilizza un Network Load Balancer.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornisce file system che supportano i protocolli di connettività standard del settore e offrono disponibilità e replica elevate in tutte le regioni AWS. Questo modello utilizza Amazon FSx per Windows File Server.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

**Altri strumenti**
+ Il software [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) offre una soluzione scalabile per la gestione dei contenuti di documenti e report che aiuta gli utenti a ottenere il massimo valore dalle informazioni attraverso l'indicizzazione automatizzata, la crittografia e le funzionalità di ricerca avanzate.
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), sviluppata congiuntamente da LRS e Rocket Software, acquisisce l'output da una bobina JES di Rocket Software e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queueper raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione JES Print Exit di Rocket Software.
+ LRS Directory Integration Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di runtime per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Rocket Enterprise Developer.

## Epiche
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configura il runtime Rocket e distribuisci un'applicazione batch mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il runtime e distribuisci un'applicazione demo. | [Per configurare Rocket Enterprise Server su Amazon EC2 e distribuire l'applicazione BankDemo dimostrativa Rocket Software, segui le istruzioni nella guida per l'utente di AWS Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html)L' BankDemo applicazione è un'applicazione mainframe in batch che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza Amazon EC2 Windows. | Per avviare un'istanza Amazon EC2 Windows, segui le istruzioni in [Avvio di un' EC2 istanza Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella EC2 documentazione di Amazon. Usa lo stesso nome host che hai usato per la licenza del prodotto LRS.L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/DIS. | Il LRS/DIS prodotto è spesso incluso nell'installazione di LRS VPSX. Tuttavia, se non LRS/DIS è stato installato insieme a LRS VPSX, seguite i seguenti passaggi per installarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un gruppo di destinazione. | Crea un gruppo target seguendo le istruzioni riportate in [Creare un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Quando create il gruppo target, registrate l' VPSX/MFI EC2 istanza LRS come destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Per creare il Network Load Balancer, segui le istruzioni nella documentazione di [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Il Network Load Balancer indirizza il traffico da Rocket Enterprise Server all'istanza LRS. VPSX/MFI EC2 Quando create il Network Load Balancer, scegliete i seguenti valori nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Integra Rocket Enterprise Server con LRS LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura Rocket Enterprise Server per l'integrazione con LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura la coda di stampa e gli utenti di stampa
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Associate il modulo Rocket Software Print Exit al processo di esecuzione del server della stampante batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea una coda di output di stampa in LRS VPSX/MFI e integrala con LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura un server LRS PageCenter X su Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza Amazon EC2 Windows. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon. Usa lo stesso nome host che hai usato per la licenza del prodotto LRS.L'istanza deve soddisfare i seguenti requisiti hardware e software per PageCenter LRS X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS PageCenter X sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/DIS. | Il LRS/DIS prodotto è spesso incluso nell'installazione di LRS VPSX. Tuttavia, se non LRS/DIS è stato installato insieme a LRS VPSX, seguite i seguenti passaggi per installarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un gruppo di destinazione. | Crea un gruppo target seguendo le istruzioni riportate in [Creare un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Quando create il gruppo target, registrate l' EC2 istanza LRS PageCenter X come destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Per creare il Network Load Balancer, segui le istruzioni nella documentazione di [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Il Network Load Balancer indirizza il traffico da LRS VPSX/MFI all'istanza LRS X. PageCenter EC2 Quando create il Network Load Balancer, scegliete i seguenti valori nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura le funzionalità di gestione dell'output in LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la funzione di importazione in LRS X. PageCenter | È possibile utilizzare la funzione LRS PageCenter X Import per riconoscere gli output che arrivano su LRS PageCenter X in base a criteri come Job name o Form ID. Potete quindi indirizzare gli output verso cartelle specifiche in LRS X. PageCenterPer abilitare la funzione di importazione, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura la politica di conservazione dei documenti. | LRS PageCenter X utilizza una politica di conservazione dei documenti per decidere per quanto tempo conservare un documento in PageCenter LRS X.Per configurare la politica di conservazione dei documenti, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Create una regola per indirizzare il documento di output verso una cartella specifica in LRS PageCenter X. | **In LRS PageCenter X, **Destination** determina il percorso della cartella in cui verrà inviato l'output quando questa destinazione viene richiamata da Report Definition.** Per questo esempio, create una cartella basata sulla cartella **Form ID** nella definizione del report e salvate l'output in quella cartella.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea una definizione di report. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto cloud | 

### Configura l'autenticazione e l'autorizzazione per la gestione dell'output
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Unisci le EC2 istanze a un dominio AWS Managed Microsoft AD. | Unisci le EC2 istanze LRS VPSX/MFI e LRS PageCenter X al tuo dominio AWS Managed Microsoft AD automaticamente [(](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/)documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD per l' EC2 istanza LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura un gruppo di importazione per importare l'output da LRS VPSX a LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Aggiungi una regola di sicurezza al gruppo Import. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un utente in LRS PageCenter X per eseguire l'importazione dell'output da LRS VPSX/MFI.  | Quando create un utente in LRS PageCenter X per eseguire l'importazione dell'output, il nome utente deve essere lo stesso dell'ID VPSX della coda di output di stampa in LRS **VPSX/MFI**. In questo esempio, l'ID VPSX è. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Aggiungi l'utente LRS PageCenter X Import al gruppo di sola importazione. | Per fornire le autorizzazioni necessarie per l'importazione di documenti da LRS VPSX a LRS X, effettuate le seguenti operazioni PageCenter:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura LRS/DIS con AWS Managed Microsoft AD per l' VPSX/MFI EC2 istanza LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura Amazon FSx for Windows File Server come archivio dati operativo per LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un file system per LRS X. PageCenter | Per utilizzare Amazon FSx for Windows File Server come archivio dati operativo per LRS PageCenter X in un ambiente Multi-AZ, segui le istruzioni nel [Passaggio 1: Crea il tuo file system](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Architetto del cloud | 
| Mappa la condivisione di file sull' EC2 istanza LRS PageCenter X. | Per mappare la condivisione di file creata nel passaggio precedente all' EC2 istanza LRS PageCenter X, seguite le istruzioni nel [Passo 2: Mappate la condivisione di file su un' EC2 istanza che esegue Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Architetto del cloud | 
| Mappa LRS PageCenter X Control Directory e Master Folder Directory sull'unità condivisa FSx di rete Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Prova un flusso di lavoro per la gestione dell'output
<a name="test-an-output-management-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia una richiesta di stampa in batch dall'app Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Tecnico collaudatore | 
| Controllate l'output di stampa in LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Tecnico collaudatore | 

## Risorse correlate
<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)
+ [Flusso di dati di presentazione delle funzioni avanzate](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) Focus (post sul blog)
+ [Modernizza i tuoi carichi di lavoro di stampa online mainframe su AWS (AWS Prescriptive](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) Guidance)
+ [Modernizza i tuoi carichi di lavoro di stampa in batch mainframe su AWS (AWS Prescriptive](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) Guidance)

## Informazioni aggiuntive
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Considerazioni**

Durante il tuo percorso di modernizzazione, potresti prendere in considerazione un'ampia varietà di configurazioni per i processi mainframe in batch e online e l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale potrebbe incorporare il flusso di dati IBM AFP o gli LCD Xerox nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole dei comandi del canale](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.  

**Acquisizione dei dati di stampa**

Rocket Software Print Exit trasmette le informazioni necessarie a LRS per VPSX/MFI elaborare efficacemente il file di spool. Le informazioni sono costituite da campi passati nei blocchi di controllo pertinenti, come i seguenti:
+ NOME DEL LAVORO
+ PROPRIETARIO (USERID)
+ DESTINAZIONE
+ MODULO
+ NOME DEL FILE
+ SCRITTORE

LRS VPSX/MFI supporta i seguenti meccanismi batch mainframe per l'acquisizione di dati da Rocket Enterprise Server:
+ Elaborazione COBOL in BATCH utilizzando istruzioni JCL print/spool SYSOUT standard. z/OS DD/OUTPUT 
+ Elaborazione COBOL print/spool in BATCH utilizzando istruzioni z/OS JCL CA-SPOOL SUBSYS DD standard.
+ IMS/COBOL print/spoolelaborazione mediante l'interfaccia CBLTDLI. Per un elenco completo dei metodi supportati e degli esempi di programmazione, consultate la documentazione di LRS inclusa nella licenza del prodotto.

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi è in grado di rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative, ad esempio la sicurezza a livello di comando come il blocco o il rilascio, l'eliminazione, la modifica, la copia e il reindirizzamento. La sicurezza può essere configurata dall'ID utente o dal gruppo, in modo simile a un gruppo di sicurezza di Active Directory o a un gruppo LDAP.

## Allegati
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernizza i carichi di lavoro di stampa in batch su mainframe AWS utilizzando Rocket Enterprise Server e 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 and Shoup Inc*

## Riepilogo
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Questo modello mostra come modernizzare i carichi di lavoro di stampa in batch mainframe critici per l'azienda sul cloud Amazon Web Services (AWS) utilizzando Rocket Enterprise Server come runtime per un'applicazione mainframe modernizzata e LRS VPSX/MFI (Micro Focus Interface) come server di stampa. [Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) In questo approccio, esegui la migrazione dei lavori in batch del mainframe su Amazon Elastic Compute Cloud (Amazon EC2) e la migrazione del database mainframe, ad esempio IBM for DB2 ) 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/DIS è integrato con AWS Managed Microsoft AD. Modernizzando i carichi di lavoro di stampa in batch, puoi ridurre i costi dell'infrastruttura IT, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy, rimuovere i silos di dati, aumentare l'agilità e l'efficienza con un DevOps modello e sfruttare le risorse e l'automazione su richiesta nel cloud AWS.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un carico di lavoro di stampa o gestione dell'output su mainframe
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Rocket Enterprise Server (per ulteriori informazioni, consultate la scheda tecnica di [Rocket Enterprise Server nella documentazione](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) di Rocket).
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di [LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Software e licenza Rocket Enterprise Server (per ulteriori informazioni, contattate il reparto vendite di [Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact)).
+ VPSX/MFI, LRS/Queue, and LRS/DIS[Software e licenze LRS (per ulteriori informazioni, contattate il reparto vendite LRS).](https://www.lrsoutputmanagement.com/about-us/contact-us/)

**Nota**  
[Per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di stampa in batch su mainframe, vedere *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional)

**Versioni del prodotto**
+ [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 (aggiornamento del prodotto 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) o versione successiva

## Architecture
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Database: IBM DB2 for and Virtual Storage Access Method ( z/OS VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gestione della stampa e dell'output: prodotti di z/OS stampa mainframe IBM (IBM Tivoli Output Manager for z/OS, LRS e CA View)

**Stack tecnologico Target**
+ Sistema operativo: Microsoft Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Linguaggio di programmazione: COBOL, JCL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Gestione della stampa e dell'output: soluzione di stampa LRS su AWS
+ Ambiente di runtime mainframe: Rocket Enterprise Server

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di stampa in batch su mainframe:

![\[Dall'utente al servizio mainframe, Db2 for z/OS, job scheduler, batch job e output in sei fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM for z/OS. DB2 

1. Il SoR conserva i dati aziendali del SoE.

1. Il batch job scheduler avvia un processo batch per generare l'output di stampa.

1. Il processo batch estrae i dati dal database, li formatta in base ai requisiti aziendali e quindi genera risultati aziendali come estratti conto di fatturazione, carte d'identità o estratti conto di prestito. Infine, il processo in batch indirizza l'output alla gestione dell'output di stampa per l'elaborazione e la consegna dell'output, in base ai requisiti aziendali. 

1. La gestione dell'output di stampa riceve l'output di stampa dal processo batch e quindi lo consegna a una destinazione specifica, ad esempio e-mail, una condivisione di file che utilizza FTP sicuro, una stampante fisica che utilizza soluzioni di stampa LRS (come illustrato in questo modello) o IBM Tivoli.

**Architettura Target**

Il diagramma seguente mostra un'architettura per un carico di lavoro di stampa in batch mainframe distribuito nel cloud AWS:

![\[Applicazione Batch su AWS con scheduler, Rocket Enterprise Server e database in quattro passaggi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Il batch job scheduler avvia un processo batch per creare output di stampa, come estratti conto di fatturazione, carte d'identità o rendiconti di prestito.

1. Il processo batch del mainframe ([riplatformato su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime di Rocket Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica di business ai dati, formattare i dati e quindi inviarli a una destinazione di stampa utilizzando [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (documentazione Micro Focus).

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilizza l'agente di TCP/IP-based LRS/Queue trasmissione per raccogliere dati di stampa tramite l'API JES Print Exit di Rocket Software e consegnarli a una destinazione di stampa specificata.

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Per ulteriori informazioni sull'utilizzo di Rocket Software per la migrazione e la modernizzazione delle applicazioni mainframe su AWS, consulta il post di blog [Empowering Enterprise Mainframe Workloads on AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) with Micro Focus.

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di stampa in batch mainframe:

![\[Implementazione Multi-AZ su AWS con Rocket Software e componenti LRS in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Lo scheduler batch avvia il processo batch e viene distribuito su Amazon EC2 su più [zone di disponibilità per l'alta disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA). 
**Nota**  
Questo modello non copre l'implementazione dello scheduler in batch. Per ulteriori informazioni sull'implementazione, consultate la documentazione del fornitore del software relativa allo scheduler in uso.

1. Il processo batch del mainframe (scritto in un linguaggio di programmazione come JCL o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto di fatturazione, carte d'identità e dichiarazioni di prestito. Il processo viene distribuito su Amazon EC2 in due zone di disponibilità per HA e utilizza Rocket Software Print Exit per indirizzare l'output di stampa a LRS VPSX/MFI per la stampa dell'utente finale.

1. LRS utilizza un comando. VPSX/MFI 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 I comandi vengono quindi eseguiti utilizzando una funzione standard integrata di Rocket Software. 
**Nota**  
Per ulteriori informazioni sui dati di stampa trasferiti da Rocket Software Print Exit a LRS/Queue e sui meccanismi batch mainframe VPSX/MFI supportati da LRS, consultate *Print Data Capture* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. 
**Nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare Rocket Enterprise Server con 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 indirizza il traffico verso i target registrati che sono integri.

1. 
**Nota**  
Il server di VPSX/MFI stampa LRS è distribuito EC2 su Amazon in due zone di disponibilità per HA e utilizza [Amazon EBS come archivio](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) dati operativo. LRS VPSX/MFI supporta le modalità di servizio attivo-attivo e attivo-passivo. Questa architettura utilizza più elementi AZs in una coppia attivo-passiva come standby attivo e hot standby. Il Network Load Balancer esegue un controllo dello stato VPSX/MFI EC2 delle istanze LRS e indirizza il traffico verso le istanze hot standby nell'altra AZ se un'istanza attiva non è integra. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di ripristino, è necessario riavviare un'istanza fallita affinché i servizi LRS riprendano l'elaborazione della richiesta di stampa. : LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) si integra con LRS/DIS per eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione alla stampa* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. LRS VPSX/MFI utilizza Amazon EBS per lo storage a blocchi. Puoi eseguire il backup dei dati di Amazon EBS da EC2 istanze attive su Amazon S3 point-in-time come snapshot e ripristinarli su volumi EBS in hot standby. [Per automatizzare la creazione, la conservazione e l'eliminazione degli snapshot di volume Amazon EBS, puoi utilizzare [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) per impostare la frequenza degli snapshot automatici e ripristinarli in base ai requisiti RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools (Strumenti)
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) fornisce volumi di storage a livello di blocco da utilizzare con le istanze. EC2 Il comportamento dei volumi EBS è simile a quello dei dispositivi a blocchi non formattati e non elaborati. Puoi montare questi volumi come dispositivi sulle istanze.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi usare Amazon EC2 per lanciare tutti o pochi server virtuali di cui hai bisogno, con scalabilità orizzontale o orizzontale.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) è un servizio Web che semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud AWS. Fornisce una capacità ridimensionabile e conveniente per un database relazionale e gestisce le attività di amministrazione comuni del database.
+ [AWS Directory Service per Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), noto anche come AWS Managed Microsoft AD, consente ai carichi di lavoro basati sulle directory e alle risorse AWS di utilizzare Microsoft Active Directory nel cloud AWS.

**Altri strumenti**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), sviluppato congiuntamente da LRS e Rocket Software, acquisisce l'output da una bobina JES di Rocket Enterprise Server e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS Directory Information Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIper raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione JES Print Exit di Rocket Software.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di esecuzione per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Rocket Software Enterprise Developer.

## Epiche
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configura Rocket Enterprise Server su Amazon EC2 e distribuisci un'applicazione mainframe batch
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server e distribuisci un'applicazione demo. | Configura Rocket Enterprise Server su Amazon EC2, quindi distribuisci l' BankDemo applicazione dimostrativa Rocket Software su Amazon. EC2L' BankDemo applicazione è un'applicazione mainframe in batch che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza del prodotto LRS per la stampa. | Per ottenere una licenza di prodotto LRS per LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contattate il team di [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS. | Costruisci piombo | 
| Crea un'istanza Amazon EC2 Windows per installare LRS VPSX/MFI. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni contenute in [Launch an Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella EC2 documentazione di Amazon. L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.Quando crei l'istanza di Windows, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Create un gruppo target e registrate LRS VPSX/MFI EC2 come target. | Crea un gruppo target seguendo le istruzioni contenute in [Crea un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) nella documentazione di Elastic Load Balancing.Quando crei il gruppo target, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Segui le istruzioni contenute in [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) nella documentazione di Elastic Load Balancing. Il Network Load Balancer indirizza il traffico da Rocket Enterprise Server a LRS. VPSX/MFI EC2Quando create il Network Load Balancer, effettuate le seguenti operazioni nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Integra Rocket Enterprise Server con LRS e LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Attualmente LRS supporta un limite massimo di 50 caratteri per i nomi DNS, ma questo limite è soggetto a modifiche in futuro. Se il tuo nome DNS è maggiore di 50, puoi utilizzare l'indirizzo IP del Network Load Balancer come alternativa. | Architetto del cloud | 
| Configura Rocket Enterprise Server per l'integrazione con LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto cloud | 

### Configura stampanti e utenti di stampa in Rocket Enterprise Server e LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Associate il modulo Rocket Software Print Exit al processo di esecuzione del server della stampante batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Per ulteriori informazioni sulla configurazione, vedete [Using the Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) nella documentazione di Micro Focus. | Architetto del cloud | 
| Aggiungi una stampante in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configura l'autenticazione e l'autorizzazione di stampa
<a name="set-up-print-authentication-and-authorization"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Unisciti a LRS VPSX/MFI EC2 a un dominio AWS Managed Microsoft AD. | Aggiungi LRS VPSX/MFI EC2 al tuo dominio AWS Managed Microsoft AD [automaticamente](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Prova un flusso di lavoro di stampa
<a name="test-a-print-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia una richiesta di stampa in batch dall'app Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Tecnico collaudatore | 
| Controllate l'output di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)È ora possibile visualizzare l'output di stampa di un estratto conto con le colonne relative al numero di **conto.** , **Descrizione**, **data**, **importo** e **saldo**. Per un esempio, vedete l'allegato **batch\$1print\$1output** per questo pattern. | Tecnico di test | 

## Risorse correlate
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernizzazione dell'output LRS (documentazione](https://www.lrsoutputmanagement.com/) LRS)
+ [ANSI e controlli del trasporto delle macchine](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentazione IBM)
+ [Parole di comando del canale (documentazione IBM](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words))
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro Focus (blog](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) AWS Partner Network)
+ [Crea una PAC Micro Focus Enterprise Server con Amazon EC2 Auto Scaling and 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) (documentazione AWS Prescriptive Guidance)
+ Flusso di [dati AFP (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)

## Informazioni aggiuntive
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerazioni**

Durante il percorso di modernizzazione, potete prendere in considerazione un'ampia varietà di configurazioni sia per i processi batch mainframe che per l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale può incorporare IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS) nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole di comando del canale](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.

**Acquisizione dei dati di stampa**

Rocket Software Print Exit trasmette le informazioni necessarie per consentire a LRS di VPSX/MFI elaborare efficacemente il file di spool. Le informazioni sono costituite da campi passati nei blocchi di controllo pertinenti, come:
+ NOME DEL LAVORO
+ PROPRIETARIO (USERID)
+ DESTINAZIONE
+ MODULO
+ NOME DEL FILE
+ SCRITTORE

LRS VPSX/MFI supporta i seguenti meccanismi batch mainframe per l'acquisizione di dati da Rocket Enterprise Server.
+ Elaborazione COBOL in BATCH utilizzando istruzioni JCL print/spool SYSOUT standard z/OS DD/OUTPUT 
+ Elaborazione BATCH COBOL utilizzando istruzioni JCL print/spool CA-SPOOL SUBSYS DD standard z/OS 
+ IMS/COBOL print/spoolelaborazione tramite l'interfaccia CBLTDLI (per un elenco completo dei metodi supportati e degli esempi di programmazione, consultate la documentazione LRS inclusa nella licenza del prodotto).

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi può rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative. Ad esempio, sicurezza a livello di comando come hold/release, purge, edit, copy e reindirizzamento. La sicurezza può essere impostata dall'ID utente o dal gruppo (simile al gruppo AD o al gruppo LDAP). ****

## Allegati
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernizzazione del mainframe: attiva DevOps AWS con Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Riepilogo
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Sfide dei clienti**

Organizations che eseguono applicazioni di base su hardware mainframe di solito incontrano alcune sfide quando l'hardware deve scalare per soddisfare le esigenze delle innovazioni digitali. Queste sfide includono i seguenti vincoli. 
+ Gli ambienti di sviluppo e test del mainframe non sono scalabili a causa della rigidità dei componenti hardware del mainframe e degli elevati costi di modifica.
+ Lo sviluppo di mainframe sta affrontando una carenza di competenze, perché i nuovi sviluppatori non conoscono e non sono interessati ai tradizionali strumenti di sviluppo mainframe. Le tecnologie moderne come i container, le pipeline di integration/continuous distribuzione continua (CI/CD) e i moderni framework di test non sono disponibili nello sviluppo di mainframe.

**Risultati del modello**

Per affrontare queste sfide, Amazon Web Services (AWS) e Rocket Software Micro Focus, un partner AWS Partner Network (APN), hanno collaborato alla creazione di questo modello. La soluzione è progettata per aiutarti a raggiungere i seguenti risultati.
+ Migliore produttività degli sviluppatori. Agli sviluppatori possono essere fornite nuove istanze di sviluppo mainframe in pochi minuti.
+ Utilizzo di Cloud AWS per creare nuovi ambienti di test mainframe con capacità praticamente illimitata.
+ Fornitura rapida di una nuova infrastruttura mainframe CI/CD . Il provisioning AWS può essere completato entro un'ora utilizzando e. AWS CloudFormation AWS Systems Manager
+ Uso nativo di AWS DevOps strumenti per lo sviluppo di mainframe, tra cui AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, e Amazon Elastic Container Registry (Amazon ECR).
+ Trasforma lo sviluppo tradizionale a cascata in uno sviluppo agile nei progetti mainframe.

**Riepilogo delle tecnologie**

In questo modello, lo stack di destinazione contiene i seguenti componenti.


| 
| 
| Componenti logici | Soluzioni di implementazione | Description | 
| --- |--- |--- |
| Archivi di codice sorgente |  AccuRev Server software Rocket CodeCommit, Amazon ECR  | Gestione del codice sorgente: la soluzione utilizza due tipi di codice sorgente: Codice sorgente del mainframe, ad esempio COBOL e JCL. AWS modelli di infrastruttura e script di automazione Entrambi i tipi di codice sorgente richiedono il controllo della versione, ma vengono gestiti in modo diverso SCMs. Il codice sorgente distribuito nei server mainframe o Rocket Software Enterprise viene gestito in Rocket Software Micro Focus Server. AccuRev AWS i modelli e gli script di automazione sono gestiti in. CodeCommit Amazon ECR viene utilizzato per gli archivi di immagini Docker.  | 
| Istanze per sviluppatori aziendali | Amazon Elastic Compute Cloud (Amazon EC2), sviluppatore aziendale di software Rocket per Eclipse | Gli sviluppatori di mainframe possono sviluppare codice in Amazon EC2 utilizzando Rocket Software Enterprise Developer for Eclipse. Ciò elimina la necessità di affidarsi all'hardware mainframe per scrivere e testare il codice.  | 
| Gestione delle licenze di Rocket Software Enterprise Suite | License Manager di Rocket Software Enterprise Suite | Per la gestione e la governance centralizzate delle licenze di Rocket Software Enterprise Suite, la soluzione utilizza Rocket Software Enterprise Suite License Manager per ospitare la licenza richiesta. | 
| Pipeline CI/CD | CodePipeline,, CodeBuild CodeDeploy, Rocket Software Enterprise Developer in un contenitore, Rocket Software Enterprise Test Server in un contenitore, Rocket Software Micro Focus Enterprise Server | I team di sviluppo del mainframe necessitano di CI/CD pipeline per eseguire la compilazione del codice, i test di integrazione e i test di regressione. In AWS, CodePipeline e CodeBuild può lavorare con Rocket Software Enterprise Developer ed Enterprise Test Server in un container in modo nativo. | 

## Prerequisiti e limitazioni
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Prerequisiti**


| 
| 
| Nome | Description | 
| --- |--- |
| py3270 | py3270 è un'interfaccia Python per x3270, un emulatore di terminale IBM 3270. Fornisce un'API per un sottoprocesso x3270 o s3270. | 
| x3270 | x3270 è un emulatore di terminale IBM 3270 per X Window System e Windows.  Questo può essere usato dallo sviluppatore per il test delle unità a livello locale. | 
| Robot-Framework-Mainframe-3270-Library | Mainframe3270 è una libreria per Robot Framework basata sul progetto py3270. | 
| Rocket Software Verastream | Rocket Software Verastream è una piattaforma di integrazione che consente di testare gli asset mainframe nello stesso modo in cui vengono testate le app mobili, le applicazioni Web e i servizi Web SOA. | 
| Programma di installazione e licenza Rocket Software Unified Functional Testing (UFT) | Rocket Software Unified Functional Testing è un software che fornisce l'automazione dei test funzionali e di regressione per applicazioni e ambienti software. | 
| Programma di installazione e licenza di Rocket Software Enterprise Server | Enterprise Server fornisce l'ambiente di runtime per le applicazioni mainframe. | 
| Programma di installazione e licenza di Rocket Software Enterprise Test Server | Rocket Software Enterprise Test Server è un ambiente di test delle applicazioni mainframe IBM. | 
| Programma di AccuRev installazione e licenza Rocket Software per Server e programma di installazione e licenza Rocket Software Micro Focus per sistemi AccuRev operativi Windows e Linux  | AccuRev fornisce la gestione del codice sorgente (SCM). Il AccuRev sistema è progettato per essere utilizzato da un team di persone che stanno sviluppando un set di file. | 
| Programma di installazione, patch e licenza di Rocket Software Enterprise Developer per Eclipse | Enterprise Developer fornisce agli sviluppatori di mainframe una piattaforma per sviluppare e mantenere le principali applicazioni mainframe online e in batch. | 

**Limitazioni**
+ La creazione di un'immagine Windows Docker non è supportata in. CodeBuild Questo [problema segnalato](https://github.com/docker-library/docker/issues/49) richiede il supporto dei team di Windows Kernel/HCS e Docker. La soluzione alternativa consiste nel creare un runbook di compilazione dell'immagine Docker utilizzando Systems Manager. Questo modello utilizza la soluzione alternativa per creare immagini Rocket Software Enterprise Developer for Eclipse e Rocket Software Micro Focus Enterprise Test Server Container. 
+ La connettività del cloud privato virtuale (VPC) da non CodeBuild è ancora supportata in Windows, quindi il modello non utilizza Rocket Software License Manager per gestire le licenze nei contenitori Rocket Software Enterprise Developer e OpenText Rocket Software Enterprise Test Server.

**Versioni del prodotto**
+ Rocket Software Enterprise Developer 5.5 o versione successiva
+ Rocket Software Enterprise Test Server 5.5 o versione successiva
+ Rocket Software Enterprise Server 5.5 o versione successiva
+ Rocket Software 7.x o versione successiva AccuRev 
+ **Immagine di base di Windows Docker per Rocket Software Enterprise Developer ed Enterprise Test Server: microsoft/dotnet-framework-4.7.2-runtime**
+ **Immagine di base Linux Docker per AccuRev client: amazonlinux:2**

## Architecture
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Ambiente mainframe**

Nello sviluppo di mainframe convenzionali, gli sviluppatori devono utilizzare l'hardware mainframe per sviluppare e testare i programmi. Devono far fronte a limitazioni di capacità, ad esempio limitate per milioni di istruzioni al secondo (MIPS) per l' dev/test ambiente, e devono fare affidamento sugli strumenti disponibili sui computer mainframe.

In molte organizzazioni, lo sviluppo dei mainframe segue la metodologia di sviluppo a cascata, con i team che si affidano a cicli lunghi per rilasciare le modifiche. Questi cicli di rilascio sono generalmente più lunghi rispetto allo sviluppo di prodotti digitali.   

Il diagramma seguente mostra più progetti mainframe che condividono hardware mainframe per il loro sviluppo. Nell'hardware mainframe, è costoso scalare un ambiente di sviluppo e test per più progetti.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Architettura AWS*****

Questo modello estende lo sviluppo del mainframe a. Cloud AWS Innanzitutto, utilizza AccuRev SCM per ospitare il codice sorgente del mainframe. AWS Quindi rende disponibili Enterprise Developer ed Enterprise Test Server per la creazione e il test del codice mainframe. AWS 

Le sezioni seguenti descrivono i tre componenti principali del pattern.

**1. SCM**

Nel AWS, il pattern viene utilizzato AccuRev per creare un set di aree di lavoro SCM e il controllo della versione per il codice sorgente del mainframe. La sua architettura basata su stream consente lo sviluppo parallelo di mainframe per più team. Per unire una modifica, AccuRev utilizza il concetto di promozione. Per aggiungere tale modifica ad altre aree di lavoro, AccuRev utilizza il concetto di aggiornamento.

A livello di progetto, ogni team può creare uno o più flussi AccuRev per tenere traccia delle modifiche a livello di progetto. Questi sono chiamati flussi di progetto. Questi flussi di progetto vengono ereditati dallo stesso flusso principale. Il flusso principale viene utilizzato per unire le modifiche da diversi flussi di progetto.

Ogni stream di progetto può promuovere il codice verso AccuRev e viene impostato un trigger di promozione post per avviare la AWS pipeline CI/CD. La build riuscita di una modifica del flusso di progetto può essere promossa al flusso principale per ulteriori test di regressione.  

Di solito, il flusso principale è chiamato flusso di integrazione del sistema. Quando viene effettuata una promozione da un flusso di progetto a un flusso di integrazione di sistema, un trigger successivo alla promozione avvia un'altra CI/CD pipeline per eseguire i test di regressione.

Oltre al codice mainframe, questo modello include AWS CloudFormation modelli, documenti Systems Manager Automation e script. Seguendo le infrastructure-as-code migliori pratiche, sono controllati in base alla versione. CodeCommit 

Se è necessario sincronizzare il codice del mainframe con un ambiente mainframe per la distribuzione, Rocket Software fornisce la soluzione Enterprise Sync, che sincronizza il codice dall'SCM all'SCM del AccuRev mainframe.

**2. Ambienti di sviluppo e test**

In un'organizzazione di grandi dimensioni, scalare più di cento o addirittura più di mille sviluppatori mainframe è una sfida. Per risolvere questo vincolo, il modello utilizza istanze di Amazon EC2 Windows per lo sviluppo. Sulle istanze, sono installati gli strumenti Enterprise Developer for Eclipse. Lo sviluppatore può eseguire tutti i test e il debug del codice mainframe localmente sull'istanza. 

AWS Systems Manager I documenti State Manager e Automation vengono utilizzati per automatizzare il provisioning delle istanze per sviluppatori. Il tempo medio per creare un'istanza per sviluppatori è di 15 minuti. Vengono preparati i seguenti software e configurazioni:
+ AccuRev Client Windows per il check-out e il salvataggio del codice sorgente AccuRev
+ Strumento Enterprise Developers for Eclipse, per la scrittura, il test e il debug del codice mainframe a livello locale
+ Framework di test open source Python Behavior-driven development (BDD), framework di test Behave, py3270 e l'emulatore x3270 per la creazione di script per testare le applicazioni
+ Uno strumento di sviluppo Docker per creare l'immagine Docker di Enterprise Test Server e testare l'applicazione nel contenitore Docker di Enterprise Test Server 

Nel ciclo di sviluppo, gli sviluppatori utilizzano l' EC2 istanza per sviluppare e testare il codice mainframe a livello locale. Quando le modifiche locali vengono testate con successo, gli sviluppatori promuovono la modifica nel AccuRev server.  

**3. CI/CD oleodotti**

Nello schema, le CI/CD pipeline vengono utilizzate per i test di integrazione e i test di regressione prima della distribuzione nell'ambiente di produzione. 

Come spiegato nella sezione SCM, AccuRev utilizza due tipi di flussi: un flusso di progetto e un flusso di integrazione. Ogni stream è collegato a pipeline. CI/CD Per eseguire l'integrazione tra il AccuRev server e AWS CodePipeline, il pattern utilizza uno script di AccuRev post-promozione per creare un evento per avviare CI/CD.

Ad esempio, quando uno sviluppatore promuove una modifica a un flusso di progetto in AccuRev, avvia uno script di post-promozione da eseguire in Server. AccuRev Quindi lo script carica i metadati della modifica in un bucket Amazon Simple Storage Service (Amazon S3) per creare un evento Amazon S3. Questo evento avvierà l'esecuzione di una pipeline configurata. CodePipeline  

Lo stesso meccanismo di avvio degli eventi viene utilizzato per il flusso di integrazione e le relative pipeline associate. 

Nella CI/CD pipeline, CodePipeline si utilizza CodeBuild con il contenitore client AccuRev Linux per estrarre il codice più recente dagli stream. AccuRev Quindi la pipeline inizia CodeBuild a utilizzare il contenitore Windows Enterprise Developer per compilare il codice sorgente e a utilizzare il contenitore Windows Enterprise Test Server per testare le applicazioni mainframe CodeBuild .

Le CI/CD pipeline vengono create utilizzando CloudFormation modelli e il blueprint verrà utilizzato per nuovi progetti. Utilizzando i modelli, un progetto impiega meno di un'ora per creare una nuova CI/CD pipeline. AWS

Per scalare la capacità di test del mainframe AWS, il modello crea la suite di DevOps test Rocket Software, Verastream e il server UFT. Utilizzando gli DevOps strumenti moderni, puoi eseguire tutti i test di cui hai bisogno. AWS 

Nel diagramma seguente AWS è illustrato un esempio di ambiente di sviluppo mainframe con Rocket Software attivo.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Stack tecnologico Target*

Questa sezione fornisce uno sguardo più da vicino all'architettura di ciascun componente del pattern.

**1. Archivio del codice sorgente: SCM AccuRev **

AccuRev SCM è configurato per gestire le versioni del codice sorgente mainframe. Per un'elevata disponibilità, AccuRev supporta le modalità primaria e di replica. Gli operatori possono eseguire il failover sulla replica durante la manutenzione sul nodo primario. 

Per accelerare la risposta della CI/CD pipeline, il pattern utilizza Amazon CloudWatch Events per rilevare le modifiche al codice sorgente e avviare l'avvio della pipeline.

1. La pipeline è configurata per utilizzare una fonte Amazon S3.

1. Una regola CloudWatch Events è impostata per acquisire gli eventi S3 da un bucket S3 di origine.

1. La regola CloudWatch Events imposta un obiettivo per la pipeline.

1. AccuRev SCM è configurato per eseguire uno script di post-promozione a livello locale dopo il completamento della promozione.

1. AccuRev SCM genera un file XML che contiene i metadati della promozione e lo script carica il file XML nel bucket S3 di origine.

1. Dopo il caricamento, il bucket S3 di origine invia gli eventi che corrispondono alla regola Events e la regola CloudWatch Events avvia l'esecuzione della pipeline CloudWatch . 

Quando la pipeline viene eseguita, avvia un CodeBuild progetto che prevede l'utilizzo di un contenitore client AccuRev Linux per estrarre il codice mainframe più recente da uno stream associato. AccuRev   

Il diagramma seguente mostra una configurazione del server. AccuRev 

![\[Cloud AWS diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Modello Enterprise Developer** 

Il modello utilizza i EC2 modelli Amazon per semplificare la creazione dell'istanza di sviluppo. Utilizzando State Manager, può applicare le impostazioni del software e della licenza alle EC2 istanze in modo coerente.

Il EC2 modello Amazon si basa sulle impostazioni del contesto VPC e sulle impostazioni predefinite dell'istanza e segue i requisiti di tagging aziendali. Utilizzando un modello, un team può creare le proprie nuove istanze di sviluppo. 

All'avvio di un'istanza di sviluppo, tramite l'associazione ai tag, Systems Manager utilizza State Manager per applicare l'automazione. L'automazione include i seguenti passaggi generali.

1. Installa il software Enterprise Developer e installa le patch.

1. Installa il AccuRev client per Windows.

1. Installa lo script preconfigurato per consentire agli sviluppatori di partecipare allo AccuRev stream. Inizializza gli spazi di lavoro di Eclipse.

1. Installa strumenti di sviluppo, tra cui x3270, py3270 e Docker.

1. Configura le impostazioni della licenza in modo che punti a un bilanciamento del carico di License Manager.

Il diagramma seguente mostra un'istanza Enterprise Developer creata dal EC2 modello Amazon, con software e configurazione applicati all'istanza da State Manager. Le istanze Enterprise Developer si connettono AWS License Manager a per attivare la licenza.

![\[Cloud AWS diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Condutture CI/CD**

Come spiegato nella sezione sull' AWS architettura, nel modello sono presenti pipeline a livello di progetto e CI/CD pipeline di integrazione di sistema. Ogni team di progetto mainframe crea una o più CI/CD pipeline per creare i programmi che sta sviluppando in un progetto. Queste CI/CD pipeline di progetto controllano il codice sorgente da un flusso associato. AccuRev  

In un team di progetto, gli sviluppatori promuovono il proprio codice nel AccuRev flusso associato. Quindi la promozione avvia la pipeline del progetto per creare il codice ed eseguire i test di integrazione. 

Ogni CI/CD pipeline di progetto utilizza CodeBuild progetti con l'immagine Amazon ECR dello strumento Enterprise Developer e l'immagine Amazon ECR dello strumento Enterprise Test Server. 

CodePipeline e CodeBuild vengono utilizzati per creare le pipeline. CI/CD Perché CodeBuild non CodePipeline avete commissioni o impegni anticipati, pagate solo per ciò che utilizzate. Rispetto all'hardware mainframe, la AWS soluzione riduce notevolmente i tempi di fornitura dell'hardware e abbassa i costi dell'ambiente di test.

Nello sviluppo moderno, vengono utilizzate più metodologie di test. Ad esempio, test-driven development (TDD), BDD e Robot Framework. Con questo modello, gli sviluppatori possono utilizzare questi strumenti moderni per i test dei mainframe. Ad esempio, utilizzando x3270, py3270 e lo strumento di test Python Behave, è possibile definire il comportamento di un'applicazione online. Puoi anche utilizzare il framework robotico build mainframe 3270 in queste pipeline. CI/CD 

Il diagramma seguente mostra la pipeline del team stream. CI/CD  

![\[Cloud AWS CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


Il diagramma seguente mostra il rapporto di CI/CD test del progetto prodotto da CodePipeline in Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


Il diagramma seguente mostra il rapporto di CI/CD test del progetto prodotto da 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/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Dopo che i test a livello di progetto sono stati superati con successo, il codice testato viene promosso manualmente nel flusso di integrazione in SCM. AccuRev Puoi automatizzare questo passaggio dopo che i team avranno acquisito fiducia nella copertura dei test della loro pipeline di progetto.

Quando il codice viene promosso, la CI/CD pipeline di integrazione del sistema verifica il codice unito ed esegue test di regressione. Il codice unito viene promosso da tutti i flussi di progetto paralleli.

A seconda della granulometria richiesta dall'ambiente di test, i clienti possono disporre di più CI/CD pipeline di integrazione del sistema in un ambiente diverso, ad esempio UAT, Pre-Produzione. 

Nello schema, gli strumenti utilizzati nella pipeline di integrazione del sistema sono Enterprise Test Server, UFT Server e Verastream. Tutti questi strumenti possono essere implementati nel contenitore Docker e utilizzati con. CodeBuild

Dopo aver testato con successo i programmi mainframe, l'elemento viene archiviato, con il controllo della versione, in un bucket S3. 

Il diagramma seguente mostra una pipeline di integrazione del sistema. CI/CD 

![\[CI/CD pipeline showing Servizi AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Dopo che l'artefatto è stato testato con successo nelle CI/CD pipeline di integrazione del sistema, può essere promosso per l'implementazione in produzione. 

Se è necessario redistribuire il codice sorgente sul mainframe, Rocket Software offre la soluzione Enterprise Sync per sincronizzare il codice sorgente da Mainframe a Mainframe Endeavour. AccuRev 

Il diagramma seguente mostra una pipeline di produzione che distribuisce l'artefatto in Enterprise Server CI/CD . In questo esempio, CodeDeploy orchestra la distribuzione dell'elemento mainframe testato in Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Oltre alla descrizione dettagliata dell'architettura della CI/CD pipeline, [consultate il post AWS DevOps sul blog Automatizzate migliaia di test mainframe AWS con Micro Focus Enterprise Suite per ulteriori informazioni sul test delle applicazioni mainframe](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) in and. CodeBuild CodePipeline (Micro Focus è ora Rocket Software). Consultate il post del blog per le migliori pratiche e i dettagli su come eseguire i test del mainframe su. AWS

## Tools (Strumenti)
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS strumenti di automazione**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Eventi 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)
+ [Gestione dei segreti AWS](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)

**Strumenti Rocket Software**
+ [Sviluppatore Rocket Enterprise per Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Server di test Rocket Enterprise](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server (distribuzione](https://www.microfocus.com/documentation/enterprise-developer/es_60/) in produzione)
+ [Software Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [License Manager di Rocket Software Enterprise Suite](https://www.microfocus.com/documentation/slm/)
+ [Integratore di host Rocket Software Verastream](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Software Rocket UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Altri strumenti**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Libreria](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Epiche
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Crea l'infrastruttura AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa un server AccuRev SCM primario utilizzando. CloudFormation |  | AWS CloudFormation | 
| Crea l'utente AccuRev amministratore. | Accedere a AccuRev SCM Server ed eseguire il comando CLI per creare un utente amministratore. | AccuRev Amministratore del server SCM | 
| Crea AccuRev stream. | Crea AccuRev flussi che ereditano i flussi superiori in sequenza: Production, System Integration, Team Streams. | AccuRev Amministratore SCM | 
| Crea gli account di AccuRev accesso per sviluppatori. | Utilizzate i comandi CLI AccuRev SCM per AccuRev creare account di accesso degli utenti per gli sviluppatori mainframe. | AccuRev Amministratore SCM | 

### Crea il modello di EC2 lancio Amazon Enterprise Developer
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Distribuisci il modello di EC2 lancio di Amazon utilizzando CloudFormation. | Utilizzalo CloudFormation per distribuire un modello di EC2 lancio Amazon per le istanze Enterprise Developer. Il modello include un documento Systems Manager Automation per l'istanza Rocket Enterprise Developer. | AWS CloudFormation | 
| Crea l'istanza Enterprise Developer dal EC2 modello Amazon. |  | Accesso alla console AWS e competenze per sviluppatori mainframe | 

### Crea l'immagine Docker dello strumento Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine Docker dello strumento Enterprise Developer. | Usa il comando Docker e lo strumento Enterprise Developer Dockerfile per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR. | Sulla console Amazon ECR, crea il repository per l'immagine Enterprise Developer Docker. | Amazon ECR | 
| Invia l'immagine Docker dello strumento Enterprise Developer ad Amazon ECR. | Esegui il comando Docker push per inviare l'immagine Docker dello strumento Enterprise Developer per salvarla nel repository Docker in Amazon ECR. | Docker | 

### Crea l'immagine Docker di Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine Docker di Enterprise Test Server. | Usa il comando Docker e il Dockerfile di Enterprise Test Server per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR. | Sulla console Amazon ECR, crea l'archivio Amazon ECR per l'immagine Docker di Enterprise Test Server. | Amazon ECR | 
| Invia l'immagine Docker di Enterprise Test Server ad Amazon ECR. | Esegui il comando Docker push per inviare e salvare l'immagine Docker di Enterprise Test Server in Amazon ECR. | Docker | 

### Crea la pipeline di stream del team CI/CD
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il CodeCommit repository. | Sulla CodeCommit console, crea un repository basato su Git per l'infrastruttura e il codice. CloudFormation  | AWS CodeCommit | 
| Carica il CloudFormation modello e il codice di automazione nel CodeCommit repository. | Esegui il comando Git push per caricare il CloudFormation modello e il codice di automazione nel repository. | Git | 
| Implementa la CI/CD pipeline di stream del team utilizzando. CloudFormation | Utilizza il CloudFormation modello preparato per distribuire una pipeline di flusso del team. CI/CD  | AWS CloudFormation | 

### Crea la CI/CD pipeline di integrazione del sistema
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine UFT Docker. | Usa il comando Docker e il Dockerfile UFT per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR per l'immagine UFT. | Sulla console Amazon ECR, crea il repository Docker per l'immagine UFT. | Amazon ECR | 
| Invia l'immagine UFT Docker ad Amazon ECR. | Esegui il comando Docker push per inviare e salvare l'immagine Docker di Enterprise Test Server in Amazon ECR. | Docker | 
| Crea l'immagine Verastream Docker. | Usa il comando Docker e il Dockerfile Verastream per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR per l'immagine Verastream. | Sulla console Amazon ECR, crea il repository Docker per l'immagine Verastream. | Amazon ECR | 
| Implementa la pipeline di integrazione del sistema utilizzando. CI/CD CloudFormation | Utilizza il CloudFormation modello preparato per implementare una pipeline di integrazione del sistema. CI/CD  | AWS CloudFormation | 

### Crea una CI/CD pipeline di distribuzione di produzione
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa Enterprise Server utilizzando AWS Quick Start. | Per distribuire Enterprise Server utilizzando CloudFormation, avviare Enterprise Server su AWS Quick Start. | AWS CloudFormation | 
| Implementa una CI/CD pipeline di distribuzione in produzione. | Sulla CloudFormation console, utilizza il CloudFormation modello per implementare una pipeline di distribuzione in produzione. CI/CD  | AWS CloudFormation | 

## Risorse correlate
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Riferimenti**
+ [AWS DevOps Blog - Automatizza migliaia di test del mainframe AWS con Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (Micro Focus è ora Rocket Software).
+ [repository py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Archivio della libreria Altran-PT-GDC/Robot-Framework-Mainframe-3270 GitHub ](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Benvenuti a comportarvi bene\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog dei partner APN - Tag: Micro Focus (Micro](https://aws.amazon.com/blogs/apn/tag/micro-focus/) Focus è ora Rocket Software).
+ [Avvio di un'istanza da un modello di avvio](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**Marketplace AWS**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Quick Start**
+ [Rocket Enterprise Server attivo AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e 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 and Shoup Inc*

## Riepilogo
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Questo modello mostra come modernizzare i carichi di lavoro di stampa online mainframe critici per l'azienda sul cloud Amazon Web Services (AWS) utilizzando Micro Focus Enterprise Server come runtime per un'applicazione mainframe modernizzata e LRS VPSX/MFI (Micro Focus Interface) come server di stampa. [Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) In questo approccio, esegui la migrazione della tua applicazione mainframe online su Amazon Elastic Compute Cloud (Amazon EC2) e la migrazione del database mainframe, ad esempio IBM for DB2 ) 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/DIS è integrato con AWS Managed Microsoft AD per l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Modernizzando i carichi di lavoro di stampa online, puoi ridurre i costi dell'infrastruttura IT, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy, rimuovere i silos di dati, aumentare l'agilità e l'efficienza con un DevOps modello e sfruttare le risorse e l'automazione su richiesta nel cloud AWS.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un carico di lavoro di stampa o gestione dell'output online su mainframe
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Micro Focus Enterprise Server (per ulteriori informazioni, consultate la scheda tecnica di [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) nella documentazione Micro Focus).
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di LRS (per ulteriori informazioni, vedete [Output Modernization](https://www.lrsoutputmanagement.com/products/modernization-products) nella documentazione di LRS).
+ Software e licenza Micro Focus Enterprise Server (per ulteriori informazioni, contattate il reparto vendite di [Micro Focus](https://www.microfocus.com/en-us/contact/contactme)).
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenze LRS (per ulteriori informazioni, contattate il reparto vendite [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/)).

**Nota**  
*Per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di stampa mainframe online, vedete *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.*

**Versioni del prodotto**
+ [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 o versioni successive
+ [LRS VPSX/MFI V1R3 o versione successiva](https://www.lrsoutputmanagement.com/products/modernization-products/)

## Architecture
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL) e Customer Information Control System (CICS) 
+ Database: IBM DB2 per z/OS IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gestione della stampa e dell'output: prodotti di z/OS stampa mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA View)

**Stack tecnologico Target**
+ Sistema operativo: Microsoft Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Linguaggio di programmazione: COBOL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Gestione della stampa e dell'output: soluzione di stampa LRS su AWS
+ Ambiente di runtime mainframe: Micro Focus Enterprise Server

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di stampa online mainframe.

![\[Processo in sei fasi per produrre un output visualizzabile.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM for z/OS. DB2 

1. Il SoR conserva i dati aziendali del SoE.

1. Un utente avvia una richiesta per generare un output di stampa dal CICS SoE, che avvia un'applicazione di transazione di stampa per elaborare la richiesta di stampa. 

1. L'applicazione per le transazioni di stampa (ad esempio un programma CICS e COBOL) estrae i dati dal database, li formatta in base ai requisiti aziendali e genera risultati aziendali (dati di stampa) come estratti conto, carte d'identità o estratti conto di prestito. Quindi, l'applicazione invia una richiesta di stampa utilizzando il metodo di accesso virtuale alle telecomunicazioni (VTAM). Un server di z/OS stampa (come IBM Infoprint Server) utilizza NetSpool un componente VTAM simile per intercettare le richieste di stampa, quindi crea set di dati di output di stampa sulla bobina JES utilizzando i parametri di output JES. I parametri di output JES specificano le informazioni di routing utilizzate dal server di stampa per trasmettere l'output a una particolare stampante di rete. Il termine *VTAM* si riferisce al z/OS Communications Server e all'elemento dei servizi SNA (System Network Architecture) di z/OS.

1. Il componente di trasmissione dell'output di stampa trasmette i set di dati di stampa in uscita dalla bobina JES a stampanti o server di stampa remoti, come LRS (come illustrato in questo modello), IBM Infoprint Server o destinazioni e-mail.

**Architettura Target**

Il diagramma seguente mostra un'architettura per un carico di lavoro di stampa online mainframe distribuito nel cloud AWS:

![\[Processo in quattro fasi, dall'avvio della richiesta di stampa all'elaborazione su AWS fino alla stampa LRS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente avvia una richiesta di stampa da un'interfaccia utente online (CICS) per creare output di stampa, come estratti conto di fatturazione, carte d'identità o estratti conto di prestito.

1. L'applicazione online mainframe ([riplatformata su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime Micro Focus Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica aziendale ai dati, formattare i dati e quindi inviarli a una destinazione di stampa utilizzando [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilizza un nome di coda. 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 

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Per ulteriori informazioni sull'utilizzo di Micro Focus per la migrazione e la modernizzazione delle applicazioni mainframe su AWS, consulta [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus nella documentazione AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di stampa online mainframe:

![\[Due zone di disponibilità con server Micro Focus Enterprise EC2 attivo, Amazon RDS e stampa LRS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'applicazione online mainframe (scritta in un linguaggio di programmazione come CICS o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto, carte d'identità e dichiarazioni di prestito. L'applicazione online è distribuita su Amazon EC2 in due [zone di disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) per l'alta disponibilità (HA) e utilizza Micro Focus CICS Print Exit per indirizzare l'output di stampa a LRS VPSX/MFI per la stampa da parte dell'utente finale.

1. LRS utilizza un comando. VPSX/MFI 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 
**Nota**  
*Per ulteriori informazioni sui vari metodi di programmazione delle applicazioni CICS per la stampa e su come sono supportati nel server Micro Focus Enterprise e LRS VPSX/MFI, vedete *Print data capture* nella sezione Informazioni aggiuntive di questo modello.*

1. 
**Nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare Micro Focus Enterprise Server con 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 indirizza il traffico verso le destinazioni registrate che sono integre.

1. Il server di VPSX/MFI stampa LRS è distribuito EC2 su Amazon in due zone di disponibilità per HA e utilizza [Amazon EBS come archivio](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) dati operativo. LRS VPSX/MFI supporta le modalità di servizio attivo-attivo e attivo-passivo. Questa architettura utilizza più zone di disponibilità in una coppia attiva-passiva come standby attivo e hot standby. Il Network Load Balancer esegue un controllo dello stato delle istanze LRS e indirizza il traffico verso VPSX/MFI EC2 istanze hot standby in un'altra zona di disponibilità se un'istanza attiva non è integra. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di ripristino, è necessario riavviare un'istanza fallita affinché i servizi LRS riprendano l'elaborazione della richiesta di stampa. 
**Nota**  
LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti* nella sezione *Informazioni aggiuntive* di questo modello.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) si integra con LRS/DIS per eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione alla stampa* nella sezione *Informazioni aggiuntive* di questo modello.

1. LRS VPSX/MFI utilizza Amazon EBS per lo storage a blocchi. Puoi eseguire il backup dei dati di Amazon EBS da EC2 istanze attive su Amazon S3 point-in-time come snapshot e ripristinarli su volumi EBS in hot standby. [Per automatizzare la creazione, la conservazione e l'eliminazione degli snapshot di volume Amazon EBS, puoi utilizzare [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) per impostare la frequenza degli snapshot automatici e ripristinarli in base ai requisiti RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools (Strumenti)
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Block Store (Amazon EBS) fornisce volumi di storage a livello di blocco da utilizzare con le istanze Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EC2 Il comportamento dei volumi EBS è simile a quello dei dispositivi a blocchi non formattati e non elaborati. Puoi montare questi volumi come dispositivi sulle istanze.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [AWS Directory Service per Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), noto anche come AWS Managed Microsoft Active Directory, consente ai carichi di lavoro compatibili con le directory e alle risorse AWS di utilizzare Active Directory gestita in AWS.

**Altri strumenti**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), sviluppato congiuntamente da LRS e Micro Focus, acquisisce l'output da una bobina JES di Micro Focus Enterprise Server e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS Directory Information Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, per raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione Print Exit online di Micro Focus.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di esecuzione per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Micro Focus Enterprise Developer.

## Epiche
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configura Micro Focus Enterprise Server su Amazon EC2 e distribuisci un'applicazione mainframe online
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurate Micro Focus Enterprise Server e distribuite un'applicazione demo online. | Configurate Micro Focus Enterprise Server su Amazon EC2, quindi distribuite l'applicazione Micro Focus Account Demo (ACCT Demo) su Amazon EC2 seguendo le istruzioni di [Tutorial: CICS Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) nella documentazione Micro Focus.L'applicazione ACCT Demo è un'applicazione mainframe online (CICS) che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza del prodotto LRS per la stampa. | Per ottenere una licenza di prodotto LRS per LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contattate il team di [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS. | Costruisci piombo | 
| Crea un'istanza Amazon EC2 Windows per installare LRS VPSX/MFI. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon. L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.Quando crei l'istanza di Windows, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Create un gruppo target e registrate LRS VPSX/MFI EC2 come target. | Crea un gruppo target seguendo le istruzioni contenute in [Crea un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) nella documentazione di Elastic Load Balancing.Quando crei il gruppo target, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Segui le istruzioni contenute in [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) nella documentazione di Elastic Load Balancing. Il Network Load Balancer indirizza il traffico da Micro Focus Enterprise Server a LRS. VPSX/MFI EC2Quando create il Network Load Balancer, effettuate le seguenti operazioni nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Integra Micro Focus Enterprise Server con LRS VPSX/MFI e LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurate Micro Focus Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Rendete CICS Print Exit (DFHUPRNT) disponibile per l'inizializzazione di Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Verificare che Micro Focus Enterprise Server abbia rilevato CICS Print Exit (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Definite l'ID del terminale della stampante CICS (TERMIDs) come Micro Focus Enterprise Server. | **Abilitate la stampa 3270 in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Definite il terminale della stampante CICS in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configurate stampanti e utenti di stampa in Micro Focus Enterprise Server e LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una coda di stampa in LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)La coda di stampa deve essere equivalente alla stampa TERMIDs creata in Micro Focus Enterprise Server. | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configura l'autenticazione e l'autorizzazione di stampa
<a name="set-up-print-authentication-and-authorization"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Unisciti a LRS VPSX/MFI EC2 a un dominio AWS Managed Microsoft AD. | Aggiungi LRS VPSX/MFI EC2 al tuo dominio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Prova un flusso di lavoro di stampa online
<a name="test-an-online-print-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avviate una richiesta di stampa online dall'app Micro Focus ACCT Demo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Il messaggio «Richiesta di stampa pianificata» viene visualizzato nella parte inferiore dello schermo. Ciò conferma che una richiesta di stampa online è stata generata dall'applicazione ACCT Demo e inviata a LRS VPS/MFI per l'elaborazione della stampa.  | Architetto del cloud | 
| Controllate l'output di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)È ora possibile visualizzare l'output di stampa di un estratto conto con le colonne per Numero di conto, COGNOME, PRIMO, INDIRIZZO, TELEFONO, N. Carte emesse, data di emissione, importo e saldo.Per un esempio, vedi l'allegato **online\$1print\$1output** per questo modello. | Tecnico di test | 

## Risorse correlate
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernizzazione dell'output LRS (documentazione](https://www.lrsoutputmanagement.com/products/modernization-products) LRS)
+ Concetti di [rete VTAM (documentazione IBM)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts)
+ [Riepilogo dei tipi di unità logiche (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentazione IBM)
+ [ANSI e controlli del trasporto delle macchine](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentazione IBM)
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro Focus (blog](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) AWS Partner Network)
+ [Crea una PAC Micro Focus Enterprise Server con Amazon EC2 Auto Scaling and 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) (documentazione AWS Prescriptive Guidance)
+ Flusso di [dati AFP (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)

## Informazioni aggiuntive
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerazioni**

Durante il percorso di modernizzazione, è possibile prendere in considerazione un'ampia varietà di configurazioni per i processi mainframe online e l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale può incorporare IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS) nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole di comando del canale](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.

**Acquisizione dei dati di stampa**

Questa sezione riassume i metodi di programmazione delle applicazioni CICS che è possibile utilizzare in un ambiente mainframe IBM per la stampa. VPSX/MFI I componenti LRS forniscono tecniche per consentire agli stessi programmi applicativi di creare dati nello stesso modo. La tabella seguente descrive come ogni metodo di programmazione dell'applicazione è supportato in un'applicazione CICS modernizzata in esecuzione in AWS e Micro Focus Enterprise Server con un server di stampa LRS VPSX/MFI .


| 
| 
| Metodo | Description | Support per il metodo in un ambiente modernizzato | 
| --- |--- |--- |
| EXEC CICS INVIA TESTO.. o EXEC CICS SEND MAP..  | Questi metodi CICS e VTAM sono responsabili della creazione e della fornitura di flussi di dati di stampa 3270/SCS a LUTYPE0 e dispositivi di stampa. LUTYPE1 LUTYPE3  | Un'interfaccia API (Application Program Interface) online Print Exit (DFHUPRNT) di Micro Focus consente l'elaborazione dei dati di stampa entro il momento in cui i flussi di dati di stampa 3270/SCS vengono creati utilizzando uno di questi metodi. VPSX/MFI  | 
| EXEC CICS INVIA TESTO.. o EXEC CICS SEND MAP.. (con software mainframe IBM di terze parti) | I metodi CICS e VTAM sono responsabili della creazione e della fornitura di flussi di dati di stampa 3270/SCS a LUTYPE0 e dispositivi di stampa. LUTYPE1 LUTYPE3 I prodotti software di terze parti intercettano i dati di stampa, li convertono in dati di formato di stampa standard con un carattere di ASA/MCH controllo e inseriscono i dati sulla bobina JES per essere elaborati da sistemi di stampa basati su mainframe che utilizzano JES.  | Un'API Micro Focus online Print Exit (DFHUPRNT) consente l'elaborazione dei dati di stampa entro il momento in VPSX/MFI cui i flussi di dati di stampa 3270/SCS vengono creati utilizzando uno di questi metodi.  | 
| EXEC CICS SPOOLOPEN  | Questo metodo viene utilizzato dai programmi applicativi CICS per scrivere dati direttamente nella bobina JES. I dati diventano quindi disponibili per essere elaborati da sistemi di stampa basati su mainframe che utilizzano JES.  | Micro Focus Enterprise Server sposta i dati nello spool Enterprise Server dove possono essere elaborati da VPSX/MFI Batch Print Exit (LRSPRTE6) che sposta i dati su VPSX.  | 
| DRS/API | Un'interfaccia programmatica fornita da LRS viene utilizzata per scrivere dati di stampa su JES.  | VPSX/MFI fornisce un'interfaccia sostitutiva che trasferisce i dati di stampa direttamente su VPSX.  | 

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi è in grado di rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative. Ad esempio, sicurezza a livello di comando come hold/release, purge, edit, copy e reindirizzamento. La sicurezza può essere impostata dall'ID utente o dal gruppo (simile al gruppo AD o al gruppo LDAP).

## Allegati
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Sposta i file mainframe direttamente su Amazon S3 utilizzando Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Riepilogo
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Come parte del percorso di modernizzazione, puoi affrontare la sfida del trasferimento di file tra i tuoi server locali e il cloud Amazon Web Services (AWS). Il trasferimento di dati dai mainframe può essere una sfida importante perché i mainframe in genere non possono accedere a data store moderni come Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS) o Amazon Elastic File System (Amazon EFS).

Molti clienti utilizzano risorse di staging intermedie, come server Linux, Unix o Windows locali, per trasferire file nel cloud AWS. Puoi evitare questo metodo indiretto utilizzando AWS Transfer Family con il Secure Shell (SSH) File Transfer Protocol (SFTP) per caricare i file mainframe direttamente su Amazon S3.

## Prerequisiti e limitazioni
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) con una sottorete raggiungibile dalla tua piattaforma legacy
+ Un endpoint Transfer Family per il tuo VPC
+ File VSAM (Mainframe Virtual Storage Access Method) convertiti in file sequenziali a lunghezza [fissa](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (documentazione IBM)

**Limitazioni**
+ Per impostazione predefinita, SFTP trasferisce i file in modalità binaria, il che significa che i file vengono caricati su Amazon S3 con la codifica EBCDIC preservata. Se il tuo file non contiene dati binari o compressi, puoi utilizzare il [sottocomando **sftp** ascii (documentazione IBM) per convertire i](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) file in testo durante il trasferimento.
+ È necessario [decomprimere i file mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (AWS Prescriptive Guidance) che contengono contenuti compressi e binari per utilizzare questi file nell'ambiente di destinazione.
+ Le dimensioni degli oggetti Amazon S3 possono variare da un minimo di 0 byte a un massimo di 5 TB. Per ulteriori informazioni sulle funzionalità di Amazon S3, consulta Amazon [S3](https://aws.amazon.com/s3/faqs/?nc1=h_ls). FAQs

## Architecture
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Stack tecnologico di origine**
+ Linguaggio Job control (JCL)
+ Shell Unix z/OS e ISPF
+ SFTP
+ VSAM e file flat

**Stack tecnologico Target**
+ Transfer Family
+ Simple Storage Service (Amazon S3)
+ Amazon Virtual Private Cloud (Amazon VPC) (Amazon VPC)

**Architettura di destinazione**

Il diagramma seguente mostra un'architettura di riferimento per l'utilizzo di Transfer Family con SFTP per caricare i file mainframe direttamente in un bucket S3.

![\[Utilizzo di Transfer Family con SFTP per caricare i file mainframe direttamente su un bucket S3\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Utilizzi un job JCL per trasferire i file del mainframe dal mainframe legacy al cloud AWS tramite Direct Connect.

1. Direct Connect consente al traffico di rete di rimanere sulla rete globale AWS e di bypassare la rete Internet pubblica. Direct Connect migliora anche la velocità di rete, a partire da 50 Mbps e scalabile fino a 100 Gbps.

1. L'endpoint VPC consente le connessioni tra le risorse VPC e i servizi supportati senza utilizzare la rete Internet pubblica. L'accesso a Transfer Family e Amazon S3 raggiunge un'elevata disponibilità grazie alle interfacce di rete elastiche situate in due sottoreti private e zone di disponibilità.

1. Transfer Family autentica gli utenti e utilizza SFTP per ricevere i file dall'ambiente legacy e spostarli in un bucket S3.

**Automazione e scalabilità**

Una volta attivato il servizio Transfer Family, puoi trasferire un numero illimitato di file dal mainframe ad Amazon S3 utilizzando un job JCL come client SFTP. Puoi anche automatizzare il trasferimento dei file utilizzando un programma di pianificazione dei processi in batch del mainframe per eseguire i processi SFTP quando sei pronto a trasferire i file mainframe.

## Tools (Strumenti)
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare le risorse AWS in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di AWS.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) ti consente di scalare in modo sicuro i trasferimenti ricorrenti di business-to-business file verso Amazon S3 e Amazon EFS utilizzando i protocolli SFTP, FTPS e FTP.

## Epiche
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Crea il bucket S3 e la politica di accesso
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per ospitare i file che trasferisci dal tuo ambiente legacy. | Informazioni generali su AWS | 
| Crea il ruolo e la policy di IAM. | Transfer Family utilizza il tuo ruolo AWS Identity and Access Management (IAM) per concedere l'accesso al bucket S3 che hai creato in precedenza.[Crea un ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) che includa la seguente [policy 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>Devi scegliere lo use case Transfer quando crei il ruolo IAM. | Informazioni generali su AWS | 

### Definisci il servizio di trasferimento
<a name="define-the-transfer-service"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il server SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Per ulteriori informazioni su come configurare un server SFTP, consulta [Creare un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (AWS Transfer Family User Guide). | Informazioni generali su AWS | 
| Ottieni l'indirizzo del server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 
| Crea la key pair del client SFTP. | Crea una coppia di chiavi SSH per [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) o [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS generale, SSH | 
| Crea l'utente SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 

### Trasferisci il file mainframe
<a name="transfer-the-mainframe-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia la chiave privata SSH al mainframe. | Usa SFTP o SCP per inviare la chiave privata SSH all'ambiente legacy.Esempio SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Esempio SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Quindi, memorizza la chiave SSH nel file system z/OS Unix con il nome utente che successivamente eseguirà il processo batch di trasferimento dei file (ad esempio,). `/u/CONTROLM` Per ulteriori informazioni sulla shell z/OS Unix, vedere [Introduzione alle z/OS shell](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (documentazione IBM). | Mainframe, shell z/OS Unix, FTP, SCP | 
| Crea il client SFTP JCL. | Poiché i mainframe non dispongono di un client SFTP nativo, è necessario utilizzare l'utilità BPXBATCH per eseguire il client SFTP dalla shell Unix. z/OS Nell'editor ISPF, create il client SFTP JCL. Esempio:<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>Per ulteriori informazioni su come eseguire un comando nella shell z/OS Unix, vedere L'utilità [BPXBATCH (documentazione](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) IBM). [Per ulteriori informazioni su come creare o modificare i job JCL in z/OS, consulta Cos'è ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) e [L'editor ISPF (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor)). | JCL, mainframe, shell Unix z/OS  | 
| Esegui il client SFTP JCL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Per ulteriori informazioni su come controllare l'attività dei processi in batch, consulta la Guida per l'[utente di z/OS SDSF](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) (documentazione IBM). | Mainframe, JCL, ISPF | 
| Convalida il trasferimento dei file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 
| Automatizza il client SFTP JCL. | Usa Job Scheduler per attivare automaticamente il client SFTP JCL.È possibile utilizzare strumenti di pianificazione dei processi mainframe, come [BMC Control-M](https://www.bmcsoftware.pt/it-solutions/control-m.html) o [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7), per automatizzare i processi in batch per i trasferimenti di file in base all'ora e ad altre dipendenze dei processi batch. | Job scheduler | 

## Risorse correlate
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Come funziona AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Ottimizza le prestazioni della tua applicazione modernizzata AWS Blu Age
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy e Himanshu Sah, Amazon Web Services*

## Riepilogo
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Le applicazioni mainframe modernizzate con AWS Blu Age richiedono test di equivalenza funzionale e prestazionale prima di essere implementate in produzione. Nei test delle prestazioni, le applicazioni modernizzate possono funzionare più lentamente rispetto ai sistemi legacy, in particolare nei lavori in batch complessi. Questa disparità esiste perché le applicazioni mainframe sono monolitiche, mentre le applicazioni moderne utilizzano architetture a più livelli. [Questo modello presenta tecniche di ottimizzazione per colmare queste lacune prestazionali per le applicazioni modernizzate utilizzando il refactoring automatizzato con Blu Age. AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)

Il modello utilizza il framework di modernizzazione AWS Blu Age con Java nativo e funzionalità di ottimizzazione del database per identificare e risolvere i problemi di prestazioni. Il modello descrive come utilizzare la profilazione e il monitoraggio per identificare problemi di prestazioni con metriche quali i tempi di esecuzione SQL, l'utilizzo della memoria e i modelli. I/O Spiega quindi come applicare ottimizzazioni mirate, tra cui la ristrutturazione delle query del database, la memorizzazione nella cache e il perfezionamento della logica aziendale.

I miglioramenti nei tempi di elaborazione in batch e nell'utilizzo delle risorse di sistema aiutano a raggiungere i livelli di prestazioni del mainframe nei sistemi modernizzati. Questo approccio mantiene l'equivalenza funzionale durante la transizione verso le moderne architetture basate sul cloud.

[Per utilizzare questo modello, configura il sistema e identifica gli hotspot prestazionali seguendo le istruzioni nella sezione [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) e applica le tecniche di ottimizzazione descritte in dettaglio nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture)

## Prerequisiti e limitazioni
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Prerequisiti**
+ Un'applicazione AWS modernizzata di Blu Age
+ [Una licenza JProfiler ](https://www.ej-technologies.com/store/jprofiler)
+ Privilegi amministrativi per installare client di database e strumenti di profilazione
+ AWS Certificazione Blu Age [Level 3](https://bluinsights.aws/certification/)
+ Comprensione di livello intermedio del framework AWS Blu Age, della struttura del codice generato e della programmazione Java

**Limitazioni**

Le seguenti funzionalità e funzionalità di ottimizzazione non rientrano nell'ambito di questo modello:
+ Ottimizzazione della latenza di rete tra i livelli di applicazione
+ Ottimizzazioni a livello di infrastruttura tramite tipi di istanze Amazon Elastic Compute Cloud (Amazon EC2) e ottimizzazione dello storage
+ Test di carico utente e test di stress simultanei

**Versioni del prodotto**
+ JProfiler versione 13.0 o successiva (consigliamo la versione più recente)
+ pgAdmin versione 8.14 o successiva

## Architecture
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Questo modello imposta un ambiente di profilazione per un'applicazione AWS Blu Age utilizzando strumenti come JProfiler pgAdmin. Supporta l'ottimizzazione tramite DAOManager and SQLExecution Builder APIs fornito da Blu Age. AWS 

La parte restante di questa sezione fornisce informazioni dettagliate ed esempi per identificare gli hotspot prestazionali e le strategie di ottimizzazione per le applicazioni modernizzate. I passaggi della sezione [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) fanno riferimento a queste informazioni per ulteriori indicazioni.

**Identificazione degli hotspot prestazionali nelle applicazioni mainframe modernizzate**

Nelle applicazioni mainframe modernizzate, gli *hotspot prestazionali* sono aree specifiche del codice che causano rallentamenti o inefficienze significativi. Questi hotspot sono spesso causati dalle differenze architettoniche tra le applicazioni mainframe e quelle modernizzate. Per identificare questi ostacoli prestazionali e ottimizzare le prestazioni dell'applicazione modernizzata, è possibile utilizzare tre tecniche: registrazione SQL, piano di query e analisi. `EXPLAIN` JProfiler 

*Tecnica di identificazione degli hotspot: registrazione SQL*

Le moderne applicazioni Java, comprese quelle che sono state modernizzate utilizzando AWS Blu Age, dispongono di funzionalità integrate per registrare le query SQL. È possibile abilitare logger specifici nei progetti AWS Blu Age per tracciare e analizzare le istruzioni SQL eseguite dall'applicazione. Questa tecnica è particolarmente utile per identificare modelli di accesso al database inefficienti, come query individuali eccessive o chiamate al database mal strutturate, che potrebbero essere ottimizzati mediante il raggruppamento in batch o il perfezionamento delle query.

Per implementare la registrazione SQL nella tua applicazione modernizzata AWS Blu Age, imposta il livello di registro su affinché le istruzioni SQL nel file acquisiscano `DEBUG` i dettagli sull'esecuzione delle `application.properties` query:

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

Monitora le query ad alta frequenza e con prestazioni lente utilizzando i dati registrati per identificare gli obiettivi di ottimizzazione. Concentrati sulle query all'interno dei processi batch perché in genere hanno il massimo impatto sulle prestazioni.

*Tecnica di identificazione degli hotspot: piano Query EXPLAIN*

Questo metodo utilizza le funzionalità di pianificazione delle interrogazioni dei sistemi di gestione di database relazionali. È possibile utilizzare comandi come `EXPLAIN` PostgreSQL o MySQL `EXPLAIN PLAN` o Oracle per esaminare in che modo il database intende eseguire una determinata query. L'output di questi comandi fornisce informazioni preziose sulla strategia di esecuzione delle query, incluso se verranno utilizzati gli indici o verranno eseguite scansioni complete della tabella. Queste informazioni sono fondamentali per ottimizzare le prestazioni delle query, specialmente nei casi in cui un'indicizzazione corretta può ridurre significativamente i tempi di esecuzione.

Estrai le query SQL più ripetitive dai log delle applicazioni e analizza il percorso di esecuzione delle query con prestazioni lente utilizzando il comando specifico del tuo database. `EXPLAIN` Ecco un esempio di database PostgreSQL.

Query:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

`EXPLAIN`comando:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Output:

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

È possibile interpretare l'`EXPLAIN`output come segue:
+ Leggete il `EXPLAIN` piano dalle operazioni più interne a quelle più esterne (dal basso verso l'alto).
+ Cerca i termini chiave. Ad esempio, `Seq Scan` indica la scansione completa della tabella e `Index Scan` mostra l'utilizzo dell'indice.
+ Verifica i valori dei costi: il primo numero è il costo iniziale e il secondo numero è il costo totale.
+ Vedi il `rows` valore per il numero stimato di righe di output.

In questo esempio, il motore di query utilizza una scansione dell'indice per trovare le righe corrispondenti, quindi recupera solo quelle righe (`Bitmap Heap Scan`). Ciò è più efficiente rispetto alla scansione dell'intera tabella, nonostante il costo più elevato dell'accesso alle singole righe.

Le operazioni di scansione delle tabelle nell'output di un `EXPLAIN` piano indicano un indice mancante. L'ottimizzazione richiede la creazione di un indice appropriato.

*Tecnica di identificazione degli hotspot: analisi JProfiler *

JProfiler è uno strumento completo di profilazione Java che consente di risolvere i problemi di prestazioni identificando le chiamate lente al database e le chiamate che richiedono un uso intensivo della CPU. Questo strumento è particolarmente efficace per identificare le query SQL lente e l'utilizzo inefficiente della memoria.

Esempio di analisi per le interrogazioni:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

La visualizzazione JProfiler Hot Spots fornisce le seguenti informazioni:
+ Colonna relativa all'**ora**
  + Mostra la durata totale dell'esecuzione (ad esempio, 329 secondi)
  + Visualizza la percentuale del tempo totale di applicazione (ad esempio, 58,7%)
  + Aiuta a identificare le operazioni che richiedono più tempo
+ **Colonna Tempo medio**
  + Mostra la durata per esecuzione (ad esempio, 2.692 microsecondi)
  + Indica le prestazioni delle singole operazioni
  + Aiuta a individuare le singole operazioni lente
+ Colonna **Eventi**
  + Mostra il conteggio delle esecuzioni (ad esempio, 122.387 volte)
  + Indica la frequenza operativa
  + Aiuta a identificare i metodi chiamati di frequente

Per i risultati di esempio:
+ Alta frequenza: 122.387 esecuzioni indicano un potenziale di ottimizzazione
+ Problema relativo alle prestazioni: il tempo medio di 2.692 microsecondi indica un'inefficienza
+ Impatto critico: il 58,7% del tempo totale indica un grave ostacolo

JProfiler è in grado di analizzare il comportamento di esecuzione dell'applicazione per individuare punti critici che potrebbero non essere visibili mediante l'analisi statica del codice o la registrazione SQL. Queste metriche aiutano a identificare le operazioni che necessitano di ottimizzazione e a determinare la strategia di ottimizzazione più efficace. Per ulteriori informazioni sulle JProfiler funzionalità, consulta la [JProfiler documentazione](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Quando si utilizzano queste tre tecniche (registrazione SQL, `EXPLAIN` piano di query e JProfiler) in combinazione, è possibile ottenere una visione olistica delle caratteristiche prestazionali dell'applicazione. Identificando e risolvendo gli hotspot prestazionali più critici, è possibile colmare il divario prestazionale tra l'applicazione mainframe originale e il sistema modernizzato basato sul cloud.

Dopo aver identificato gli hotspot prestazionali dell'applicazione, è possibile applicare le strategie di ottimizzazione, illustrate nella sezione successiva.

**Strategie di ottimizzazione per la modernizzazione del mainframe**

Questa sezione descrive le strategie chiave per ottimizzare le applicazioni che sono state modernizzate dai sistemi mainframe. Si concentra su tre strategie: utilizzo delle strategie esistenti APIs, implementazione di un caching efficace e ottimizzazione della logica aziendale.

*Strategia di ottimizzazione: utilizzo delle soluzioni esistenti APIs*

AWS Blu Age offre diverse potenti APIs interfacce DAO che è possibile utilizzare per ottimizzare le prestazioni. Due interfacce principali, DAOManager e SQLExecution Builder, offrono funzionalità per migliorare le prestazioni delle applicazioni.

**DAOManager**

DAOManager funge da interfaccia principale per le operazioni di database nelle applicazioni modernizzate. Offre diversi metodi per migliorare le operazioni del database e migliorare le prestazioni delle applicazioni, in particolare per le semplici operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) e l'elaborazione in batch.
+ **Usa. SetMaxResults** Nell' DAOManager API, è possibile utilizzare il **SetMaxResults**metodo per specificare il numero massimo di record da recuperare in una singola operazione di database. Per impostazione predefinita, DAOManager recupera solo 10 record alla volta, il che può portare a più chiamate al database durante l'elaborazione di set di dati di grandi dimensioni. Utilizzate questa ottimizzazione quando l'applicazione deve elaborare un gran numero di record e attualmente sta effettuando più chiamate al database per recuperarli. Ciò è particolarmente utile negli scenari di elaborazione in batch in cui si esegue l'iterazione su un set di dati di grandi dimensioni. Nell'esempio seguente, il codice a sinistra (prima dell'ottimizzazione) utilizza il valore di recupero dei dati predefinito di 10 record. Il codice a destra (dopo l'ottimizzazione) è impostato **setMaxResults**per recuperare 100.000 record alla volta.  
![\[Esempio di utilizzo SetMaxResults per evitare più chiamate al database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**Nota**  
Scegliete con attenzione batch di dimensioni maggiori e controllate le dimensioni degli oggetti, poiché questa ottimizzazione aumenta l'ingombro di memoria.
+ **Sostituisci SetOnGreatorOrEqual con SetOnEqual.** Questa ottimizzazione comporta la modifica del metodo utilizzato per impostare la condizione per il recupero dei record. Il **SetOnGreatorOrEqual**metodo recupera i record che sono maggiori o uguali a un valore specificato, mentre **SetOnEqual**recupera solo i record che corrispondono esattamente al valore specificato.

  **Utilizza **SetOnEqual**come illustrato nel seguente esempio di codice, quando sai di aver bisogno di corrispondenze esatte e stai attualmente utilizzando il **SetOnGreatorOrEqual**metodo seguito da readNextEqual ().** Questa ottimizzazione riduce il recupero di dati non necessario.  
![\[Esempio di utilizzo SetOnEqual per recuperare i record in base a una corrispondenza esatta.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Utilizza operazioni di scrittura e aggiornamento in batch.** È possibile utilizzare le operazioni batch per raggruppare più operazioni di scrittura o aggiornamento in un'unica transazione di database. Ciò riduce il numero di chiamate al database e può migliorare significativamente le prestazioni per le operazioni che coinvolgono più record.

  Nell'esempio seguente, il codice a sinistra esegue operazioni di scrittura in un ciclo, il che rallenta le prestazioni dell'applicazione. È possibile ottimizzare questo codice utilizzando un'operazione di scrittura in batch: durante ogni iterazione del `WHILE` ciclo, si aggiungono record a un batch finché la dimensione del batch non raggiunge una dimensione predeterminata di 100. È quindi possibile svuotare il batch quando raggiunge la dimensione predeterminata e quindi scaricare tutti i record rimanenti nel database. Ciò è particolarmente utile negli scenari in cui si elaborano set di dati di grandi dimensioni che richiedono aggiornamenti.  
![\[Esempio di raggruppamento di più operazioni in un'unica transazione di database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Aggiungere indici.** L'aggiunta di indici è un'ottimizzazione a livello di database che può migliorare significativamente le prestazioni delle query. Un indice consente al database di individuare rapidamente le righe con un valore di colonna specifico senza eseguire la scansione dell'intera tabella. Utilizza l'indicizzazione sulle colonne utilizzate di frequente in `WHERE` clausole, `JOIN` condizioni o istruzioni. `ORDER BY` Ciò è particolarmente importante per tabelle di grandi dimensioni o quando il recupero rapido dei dati è fondamentale.

**SQLExecutionCostruttore**

SQLExecutionBuilder è un'API flessibile che puoi utilizzare per assumere il controllo delle query SQL che verranno eseguite, recuperare solo determinate colonne, utilizzare e utilizzare nomi `INSERT` di tabelle `SELECT` dinamici. Nell'esempio seguente, SQLExecutor Builder utilizza una query personalizzata definita dall'utente. 

![\[Esempio di utilizzo di SQLExecutor Builder con una query personalizzata.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Scelta tra DAOManager e Builder SQLExecution**

La scelta tra questi APIs dipende dal caso d'uso specifico:
+ Usalo DAOManager quando vuoi che AWS Blu Age Runtime generi le query SQL invece di scriverle tu stesso.
+ Scegli SQLExecution Builder quando devi scrivere query SQL per sfruttare le funzionalità specifiche del database o scrivere query SQL ottimali.

*Strategia di ottimizzazione: caching*

Nelle applicazioni modernizzate, l'implementazione di strategie di caching efficaci può ridurre significativamente le chiamate al database e migliorare i tempi di risposta. Questo aiuta a colmare il divario di prestazioni tra ambienti mainframe e cloud.

Nelle applicazioni AWS Blu Age, le semplici implementazioni di caching utilizzano strutture di dati interne come mappe hash o elenchi di array, quindi non è necessario configurare una soluzione di caching esterna che richieda una ristrutturazione dei costi e del codice. Questo approccio è particolarmente efficace per i dati a cui si accede frequentemente ma che vengono modificati raramente. Quando implementi la memorizzazione nella cache, considera i vincoli di memoria e i modelli di aggiornamento per garantire che i dati memorizzati nella cache rimangano coerenti e offrano vantaggi effettivi in termini di prestazioni.

La chiave per una corretta memorizzazione nella cache è identificare i dati giusti da memorizzare nella cache. Nell'esempio seguente, il codice a sinistra legge sempre i dati dalla tabella, mentre il codice a destra legge i dati dalla tabella quando la mappa hash locale non ha un valore per una determinata chiave. `cacheMap`è un oggetto di mappa hash creato nel contesto del programma e cancellato nel metodo di pulizia del contesto del programma.

Memorizzazione nella cache con: DAOManager

![\[Esempio di ottimizzazione della memorizzazione nella cache con. DAOManager\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Memorizzazione nella cache con Builder: SQLExecution

![\[Esempio di ottimizzazione della memorizzazione nella cache con Builder. SQLExecution\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Strategia di ottimizzazione: ottimizzazione della logica aziendale*

L'ottimizzazione della logica aziendale si concentra sulla ristrutturazione del codice generato automaticamente da AWS Blu Age per allinearlo meglio alle funzionalità dell'architettura moderna. Ciò diventa necessario quando il codice generato mantiene la stessa struttura logica del codice mainframe legacy, il che potrebbe non essere ottimale per i sistemi moderni. L'obiettivo è migliorare le prestazioni mantenendo l'equivalenza funzionale con l'applicazione originale.

Questo approccio di ottimizzazione va oltre le semplici modifiche alle API e le strategie di memorizzazione nella cache. Implica modifiche al modo in cui l'applicazione elabora i dati e interagisce con il database. Le ottimizzazioni più comuni includono l'eliminazione di operazioni di lettura non necessarie per semplici aggiornamenti, la rimozione delle chiamate ridondanti al database e la ristrutturazione dei modelli di accesso ai dati per allinearli meglio alla moderna architettura applicativa. Di seguito si riportano alcuni esempi:
+ **Aggiornamento dei dati direttamente nel database.**Ristruttura la logica di business utilizzando gli aggiornamenti SQL diretti anziché più DAOManager operazioni con loop. Ad esempio, il codice seguente (lato sinistro) effettua più chiamate al database e utilizza una quantità eccessiva di memoria. In particolare, utilizza più operazioni di lettura e scrittura del database all'interno dei loop, aggiornamenti individuali anziché l'elaborazione in batch e la creazione di oggetti non necessari per ogni iterazione.

  Il seguente codice ottimizzato (lato destro) utilizza una singola operazione di aggiornamento Direct SQL. In particolare, utilizza una singola chiamata al database anziché più chiamate e non richiede cicli perché tutti gli aggiornamenti vengono gestiti in un'unica istruzione. Questa ottimizzazione offre prestazioni e utilizzo delle risorse migliori e riduce la complessità. Previene l'iniezione di SQL, offre una migliore memorizzazione nella cache del piano di query e aiuta a migliorare la sicurezza.  
![\[Ristrutturazione del codice utilizzando aggiornamenti SQL diretti anziché DAOManager operazioni con loop.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**Nota**  
Utilizza sempre query parametrizzate per impedire l'iniezione di SQL e garantire una corretta gestione delle transazioni.
+ **Riduzione delle chiamate ridondanti al database.** Le chiamate ridondanti al database possono influire in modo significativo sulle prestazioni delle applicazioni, in particolare quando avvengono all'interno di loop. Una tecnica di ottimizzazione semplice ma efficace consiste nell'evitare di ripetere più volte la stessa query sul database. Il seguente confronto di codice dimostra come lo spostamento della chiamata al `retrieve()` database all'esterno del ciclo impedisca l'esecuzione ridondante di query identiche, migliorando l'efficienza.  
![\[alt text not found\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Riduzione delle chiamate al database utilizzando** **la clausola SQL. `JOIN`** Implementa SQLExecution Builder per ridurre al minimo le chiamate al database. SQLExecutionBuilder offre un maggiore controllo sulla generazione di SQL ed è particolarmente utile per query complesse che DAOManager non possono essere gestite in modo efficiente. Ad esempio, il codice seguente utilizza più DAOManager chiamate:

  ```
  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);
  }
  ```

  Il codice ottimizzato utilizza una singola chiamata al database in 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);
  }
  ```

*Utilizzo congiunto di strategie di ottimizzazione*

Queste tre strategie funzionano in modo sinergico: APIs forniscono gli strumenti per un accesso efficiente ai dati, la memorizzazione nella cache riduce la necessità di recuperi ripetuti dei dati e l'ottimizzazione della logica aziendale garantisce che questi APIs vengano utilizzati nel modo più efficace possibile. Il monitoraggio e la regolazione regolari di queste ottimizzazioni garantiscono continui miglioramenti delle prestazioni, pur mantenendo l'affidabilità e la funzionalità dell'applicazione modernizzata. La chiave del successo sta nel capire quando e come applicare ciascuna strategia in base alle caratteristiche e agli obiettivi prestazionali dell'applicazione.

## Tools (Strumenti)
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)è uno strumento di profilazione Java progettato per sviluppatori e ingegneri delle prestazioni. Analizza le applicazioni Java e aiuta a identificare rallentamenti nelle prestazioni, perdite di memoria e problemi di threading. JProfiler offre la profilazione di CPU, memoria e thread, nonché il monitoraggio di database e macchine virtuali Java (JVM) per fornire informazioni sul comportamento delle applicazioni.
**Nota**  
[In alternativa JProfiler, è possibile utilizzare Java VisualVM.](https://visualvm.github.io/) Si tratta di uno strumento gratuito e open source di profilazione e monitoraggio delle prestazioni per applicazioni Java che offre il monitoraggio in tempo reale dell'utilizzo della CPU, del consumo di memoria, della gestione dei thread e delle statistiche sulla raccolta dei rifiuti. Poiché Java VisualVM è uno strumento JDK integrato, è più conveniente rispetto alle esigenze di profilazione di base. JProfiler 
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di amministrazione e sviluppo open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database. È possibile utilizzare pgAdmin per eseguire un'ampia gamma di attività, dalla scrittura di semplici query SQL allo sviluppo di database complessi. Le sue funzionalità includono un editor SQL che evidenzia la sintassi, un editor di codice lato server, un agente di pianificazione per attività SQL, shell e batch e il supporto per tutte le funzionalità di PostgreSQL sia per utenti PostgreSQL principianti che esperti.

## Best practice
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identificazione degli hotspot prestazionali:
+ Documenta le metriche prestazionali di base prima di iniziare le ottimizzazioni.
+ Stabilisci obiettivi chiari di miglioramento delle prestazioni in base ai requisiti aziendali.
+ Durante il benchmarking, disabilita la registrazione dettagliata, poiché può influire sulle prestazioni.
+ Configura una suite di test delle prestazioni ed eseguila periodicamente.
+ Usa l'ultima versione di pgAdmin. (Le versioni precedenti non supportano il piano di `EXPLAIN` interrogazione).
+ Per il benchmarking, scollegatelo JProfiler dopo aver completato le ottimizzazioni perché aumenta la latenza.
+ Per il benchmarking, assicuratevi di eseguire il server in modalità start anziché in modalità debug, perché la modalità di debug aumenta la latenza.

Strategie di ottimizzazione:
+ Configura **SetMaxResults**i valori nel `application.yaml` file per specificare i batch delle dimensioni corrette in base alle specifiche del sistema.
+ Configura **SetMaxResults**i valori in base al volume di dati e ai vincoli di memoria.
+ Passa **SetOnGreatorOrEqual**a **SetOnEqual**solo in caso di chiamate successive. `.readNextEqual()`
+ Nelle operazioni di scrittura o aggiornamento in batch, gestite l'ultimo batch separatamente, poiché potrebbe essere inferiore alla dimensione del batch configurato e potrebbe non essere rilevato dall'operazione di scrittura o aggiornamento.

Memorizzazione nella cache:
+ I campi introdotti per la memorizzazione nella cache`processImpl`, che mutano ad ogni esecuzione, devono sempre essere definiti nel contesto di tale operazione. `processImpl` I campi devono essere cancellati anche utilizzando il `doReset()` metodo or. `cleanUp()`
+ Quando implementate la memorizzazione nella cache in memoria, dimensionate correttamente la cache. Le cache molto grandi archiviate in memoria possono occupare tutte le risorse, il che potrebbe influire sulle prestazioni complessive dell'applicazione.

SQLExecutionCostruttore:
+ Per le query che intendi utilizzare in SQLExecution Builder, utilizza nomi chiave come. `PROGRAMNAME_STATEMENTNUMBER`
+ Quando usi SQLExecution Builder, controlla sempre il campo. `Sqlcod` Questo campo contiene un valore che specifica se la query è stata eseguita correttamente o se sono stati rilevati errori.
+ Utilizza query con parametri per impedire l'iniezione di SQL.

Ottimizzazione della logica aziendale:
+ Mantieni l'equivalenza funzionale durante la ristrutturazione del codice ed esegui test di regressione e confronto tra database per il sottoinsieme di programmi pertinente.
+ Conserva istantanee di profilazione per il confronto.

## Epiche
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Installazione JProfiler e pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa e configura JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 
| Installa e configura pgAdmin. | In questo passaggio, si installa e si configura un client DB per interrogare il database. Questo modello utilizza un database PostgreSQL e pgAdmin come client di database. Se utilizzi un altro motore di database, segui la documentazione per il client DB corrispondente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 

### Identifica gli hotspot
<a name="identify-hotspots"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la registrazione delle query SQL nell'applicazione AWS Blu Age. | [Abilita i logger per la registrazione delle query SQL nel `application.properties` file dell'applicazione AWS Blu Age, come spiegato nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture) | Sviluppatore di app | 
| Genera e analizza i `EXPLAIN` piani di interrogazione per identificare gli hotspot prestazionali del database. | Per i dettagli, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app | 
| Crea un' JProfiler istantanea per analizzare un test case con prestazioni lente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 
| Analizza l' JProfiler istantanea per identificare i punti deboli in termini di prestazioni. | Segui questi passaggi per analizzare l'istantanea. JProfiler [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Per ulteriori informazioni sull'utilizzo JProfiler, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture) e la [JProfiler documentazione](https://www.ej-technologies.com/jprofiler/docs). | Sviluppatore di app | 

### Stabilisci una linea di base
<a name="establish-a-baseline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Stabilisci una linea di base delle prestazioni prima di implementare le ottimizzazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 

### Applica strategie di ottimizzazione
<a name="apply-optimization-strategies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottimizza le chiamate di lettura. | Ottimizza il recupero dei dati utilizzando il DAOManager **SetMaxResults**metodo. Per ulteriori informazioni su questo approccio, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app, DAOManager | 
| Rifattorizza la logica aziendale per evitare chiamate multiple al database. | Riduci le chiamate al database utilizzando una `JOIN` clausola SQL. Per dettagli ed esempi, consulta *Ottimizzazione della logica aziendale* nella sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app, SQLExecution Builder | 
| Rifattorizza il codice per utilizzare la memorizzazione nella cache per ridurre la latenza delle chiamate di lettura. | [Per informazioni su questa tecnica, consulta la sezione *Caching* nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture) | Sviluppatore di app | 
| Riscrivi codice inefficiente che utilizza più DAOManager operazioni per semplici operazioni di aggiornamento. | Per ulteriori informazioni sull'aggiornamento dei dati direttamente nel database, consulta *Ottimizzazione della logica aziendale* nella sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app | 

### Verificate le strategie di ottimizzazione
<a name="test-optimization-strategies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida ogni modifica di ottimizzazione in modo iterativo mantenendo l'equivalenza funzionale. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)L'utilizzo di metriche di base come riferimento garantisce una misurazione accurata dell'impatto di ogni ottimizzazione, mantenendo al contempo l'affidabilità del sistema. | Sviluppatore di app | 

## risoluzione dei problemi
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Quando si esegue l'applicazione moderna, viene visualizzata un'eccezione con l'errore. `Query_ID not found` | Per risolvere il problema:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Hai aggiunto degli indici, ma non vedi alcun miglioramento delle prestazioni. | Segui questi passaggi per assicurarti che il motore di query utilizzi l'indice:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Si verifica un' out-of-memoryeccezione. | Verificate che il codice rilasci la memoria contenuta nella struttura dei dati. | 
| Le operazioni di scrittura in batch provocano la mancanza di record nella tabella | Esamina il codice per assicurarti che venga eseguita un'ulteriore operazione di scrittura quando il conteggio dei batch è diverso da zero. | 
| La registrazione SQL non viene visualizzata nei registri delle applicazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Risorse correlate
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Rifattorizzazione automatica delle applicazioni con AWS Blu Age (Guida per Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) *l'utente*)
+ [Documentazione pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentazione](https://www.ej-technologies.com/jprofiler/docs)

# Proteggi e semplifica l'accesso degli utenti in un database federativo Db2 su AWS utilizzando contesti affidabili
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Riepilogo
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Molte aziende stanno migrando i propri carichi di lavoro mainframe legacy su Amazon Web Services (AWS). Questa migrazione include lo spostamento di IBM Db2 per z/OS database a Db2 per Linux, Unix e Windows (LUW) su Amazon Elastic Compute Cloud (Amazon). EC2 Durante una migrazione graduale da locale ad AWS, gli utenti potrebbero dover accedere ai dati in IBM Db2 z/OS e in Db2 LUW su Amazon EC2 fino alla completa migrazione di tutte le applicazioni e i database su Db2 LUW. In questi scenari di accesso remoto ai dati, l'autenticazione degli utenti può essere difficile perché piattaforme diverse utilizzano meccanismi di autenticazione diversi.

Questo modello illustra come configurare un server federativo su Db2 per LUW con Db2 come database remoto. z/OS Il modello utilizza un contesto affidabile per propagare l'identità di un utente da Db2 LUW a Db2 senza eseguire nuovamente l'autenticazione sul database z/OS remoto. [Per ulteriori informazioni sui contesti affidabili, vedere la sezione Informazioni aggiuntive.](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional)

## Prerequisiti e limitazioni
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su un'istanza Amazon EC2 
+ Un Db2 remoto per z/OS database in esecuzione in locale
+ La rete locale connessa ad AWS tramite AWS [ Site-to-SiteVPN o AWS](https://aws.amazon.com/vpn/) [Direct Connect](https://aws.amazon.com/directconnect/)

## Architecture
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Architettura Target**

![\[Il mainframe locale si connette tramite server Db2 e VPN locali al database Db2 attivo. EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Tools (Strumenti)
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ti aiuta a trasferire il traffico tra le istanze che avvii su AWS e la tua rete remota.

**Altri strumenti**
+ [db2cli è il comando CLI](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) (Interactive Command Line Interface) di Db2.

## Epiche
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Abilita la federazione sul database Db2 LUW in esecuzione su AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la federazione sul DB DB2 LUW. | Per abilitare la federazione su DB2 LUW, esegui il comando seguente.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Riavviare il database. | Per riavviare il database, esegui il comando seguente.<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Catalogare il database remoto
<a name="catalog-the-remote-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Catalogare il z/OS sottosistema Db2 remoto. | Per catalogare il z/OS database Db2 remoto su Db2 LUW in esecuzione su AWS, usa il seguente comando di esempio.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Catalogare il database remoto. | Per catalogare il database remoto, utilizzare il seguente comando di esempio.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Crea la definizione del server remoto
<a name="create-the-remote-server-definition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Raccogli le credenziali utente per il database Db2 z/OS remoto. | Prima di procedere con i passaggi successivi, raccogli le seguenti informazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Crea il wrapper DRDA. | Per creare il wrapper DRDA, esegui il comando seguente.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Crea la definizione del server. | Per creare la definizione del server, esegui il seguente comando di esempio.<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>In questa definizione, `FED_PROXY_USER` specifica l'utente proxy che verrà utilizzato per stabilire connessioni affidabili al database Db2 z/OS . L'ID utente e la password di autorizzazione sono necessari solo per creare l'oggetto server remoto nel database Db2 LUW. Non verranno utilizzati in seguito durante il runtime. | DBA | 

### Crea mappature degli utenti
<a name="create-user-mappings"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una mappatura utente per l'utente proxy. | Per creare una mappatura utente per l'utente proxy, esegui il comando seguente.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Crea mappature utente per ogni utente su Db2 LUW. | Crea mappature utente per tutti gli utenti del database Db2 LUW su AWS che devono accedere ai dati remoti tramite l'utente proxy. Per creare le mappature degli utenti, esegui il comando seguente.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>L'istruzione specifica che un utente su Db2 LUW (`PERSON1`) può stabilire una connessione affidabile al database Db2 remoto (). z/OS `USE_TRUSTED_CONTEXT 'Y'` Dopo aver stabilito la connessione tramite l'utente proxy, l'utente può accedere ai dati utilizzando l'ID utente Db2 z/OS (). `REMOTE_AUTHID 'USERZID'` | DBA | 

### Crea l'oggetto contestuale affidabile
<a name="create-the-trusted-context-object"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'oggetto contestuale affidabile. | Per creare l'oggetto di contesto affidabile sul z/OS database Db2 remoto, utilizzate il seguente comando di esempio.<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>In questa definizione, `CTX_LUW_ZOS` è un nome arbitrario per l'oggetto di contesto affidabile. L'oggetto contiene l'ID utente proxy e l'indirizzo IP del server da cui deve provenire la connessione affidabile. In questo esempio, il server è il database Db2 LUW su AWS. È possibile utilizzare il nome di dominio anziché l'indirizzo IP. La clausola `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indica che la modifica dell'ID utente su una connessione affidabile è consentita per ogni ID utente. Non è necessario fornire una password. | DBA | 

## Risorse correlate
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [Impianto di controllo degli accessi alle risorse IBM (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federazione IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contesti affidabili](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Informazioni aggiuntive
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contesti affidabili Db2**

Un contesto affidabile è un oggetto di database Db2 che definisce una relazione di trust tra un server federato e un server di database remoto. Per definire una relazione di fiducia, il contesto affidabile specifica gli attributi di fiducia. Esistono tre tipi di attributi di fiducia:
+ L'ID di autorizzazione del sistema che effettua la richiesta iniziale di connessione al database
+ L'indirizzo IP o il nome di dominio da cui viene effettuata la connessione
+ L'impostazione di crittografia per le comunicazioni di dati tra il server del database e il client del database

Una connessione affidabile viene stabilita quando tutti gli attributi di una richiesta di connessione corrispondono agli attributi specificati in qualsiasi oggetto di contesto affidabile definito sul server. Esistono due tipi di connessioni affidabili: implicite ed esplicite. Dopo aver stabilito una connessione implicita affidabile, un utente eredita un ruolo che non gli è disponibile al di fuori dell'ambito di tale definizione di connessione affidabile. Dopo aver stabilito una connessione affidabile esplicita, gli utenti possono attivare la stessa connessione fisica, con o senza autenticazione. Inoltre, agli utenti Db2 possono essere concessi ruoli che specificano privilegi utilizzabili solo all'interno della connessione affidabile. Questo modello utilizza una connessione esplicita e affidabile.

*Contesto attendibile in questo modello*

Una volta completato il pattern, PERSON1 su Db2 LUW accede ai dati remoti da Db2 utilizzando un contesto z/OS fidato federato. La connessione per PERSON1 viene stabilita tramite un utente proxy se la connessione proviene dall'indirizzo IP o dal nome di dominio specificato nella definizione del contesto affidabile. Dopo aver stabilito la connessione, PERSON1 l'ID z/OS utente Db2 corrispondente viene cambiato senza riautenticarsi e l'utente può accedere ai dati o agli oggetti in base ai privilegi Db2 impostati per quell'utente.

*Vantaggi dei contesti fidati federati*
+ Questo approccio mantiene il principio del privilegio minimo eliminando l'uso di un ID utente o di un'applicazione comune che richiederebbe un superset di tutti i privilegi richiesti da tutti gli utenti.
+ La vera identità dell'utente che esegue la transazione sia sul database federato che su quello remoto è sempre nota e può essere verificata.
+ Le prestazioni migliorano perché la connessione fisica viene riutilizzata tra gli utenti senza che il server federato debba eseguire nuovamente l'autenticazione.

# Trasferisci z/OS dati Db2 su larga scala su Amazon S3 in file 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*

## Riepilogo
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Un mainframe è ancora un sistema di registrazione in molte aziende, che contiene un'enorme quantità di dati, tra cui entità di dati master con registrazioni delle transazioni commerciali correnti e storiche. Spesso è isolato e non è facilmente accessibile dai sistemi distribuiti all'interno della stessa azienda. Con l'avvento della tecnologia cloud e la democratizzazione dei big data, le aziende sono interessate a utilizzare le informazioni nascoste nei dati del mainframe per sviluppare nuove funzionalità aziendali.

Con questo obiettivo, le aziende stanno cercando di aprire i dati mainframe Db2 all'ambiente cloud Amazon Web Services (AWS). Le ragioni commerciali sono diverse e i metodi di trasferimento variano da caso a caso. Potresti preferire connettere l'applicazione direttamente al mainframe oppure replicare i dati quasi in tempo reale. Se il caso d'uso è quello di alimentare un data warehouse o un data lake, avere una up-to-date copia non è più un problema e la procedura descritta in questo schema potrebbe essere sufficiente, soprattutto se si desidera evitare i costi di licenza di prodotti di terze parti. Un altro caso d'uso potrebbe essere il trasferimento di dati su mainframe per un progetto di migrazione. In uno scenario di migrazione, i dati sono necessari per eseguire il test di equivalenza funzionale. L'approccio descritto in questo post è un modo conveniente per trasferire i dati Db2 all'ambiente cloud AWS.

Poiché Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) è uno dei servizi AWS più integrati, puoi accedere ai dati da lì e raccogliere informazioni direttamente utilizzando altri servizi AWS come Amazon Athena, le funzioni AWS Lambda o Amazon. QuickSight Puoi anche caricare i dati su Amazon Aurora o Amazon DynamoDB utilizzando AWS Glue o AWS Database Migration Service (AWS DMS). Con questo obiettivo in mente, questo descrive come scaricare i dati Db2 in file CSV in formato ASCII sul mainframe e trasferire i file su Amazon S3.

A tal fine, sono stati sviluppati [script mainframe](https://github.com/aws-samples/unloaddb2-samples) per aiutare a generare linguaggi di controllo del lavoro (JCLs) per scaricare e trasferire tutte le tabelle Db2 necessarie.

## Prerequisiti e limitazioni
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Prerequisiti**
+ Un utente z/OS del sistema operativo IBM con autorizzazione a eseguire script Restructured Extended Executor (REXX) e JCL.
+ Accesso a z/OS Unix System Services (USS) per generare chiavi private e pubbliche SSH (Secure Shell).
+ Un bucket S3 scrivibile. Per ulteriori informazioni, consulta [Crea il tuo primo bucket S3 nella documentazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) di Amazon S3.
+ Un server abilitato al protocollo SFTP (SSH File Transfer Protocol) di AWS Transfer Family che utilizza **Service gestito** come provider di identità e Amazon S3 come servizio di storage AWS. Per ulteriori informazioni, consulta [Creare un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) nella documentazione di AWS Transfer Family.

**Limitazioni**
+ Questo approccio non è adatto per la sincronizzazione dei dati quasi in tempo reale o in tempo reale.
+ I dati possono essere spostati solo da Db2 z/OS ad Amazon S3, non viceversa.

## Architecture
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Stack tecnologico di origine**
+ Mainframe che esegue Db2 su z/OS

**Stack tecnologico Target**
+ AWS Transfer Family
+ Simple Storage Service (Amazon S3)
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Architettura di origine e destinazione**

Il diagramma seguente mostra il processo di generazione, estrazione e trasferimento di z/OS dati Db2 in formato ASCII CSV su un bucket S3.

![\[Data flow from corporate data center to Cloud AWS, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Viene selezionato un elenco di tabelle per la migrazione dei dati dal catalogo Db2.

1. L'elenco viene utilizzato per guidare la generazione di lavori di scaricamento con le colonne numeriche e di dati in formato esterno.

1. I dati vengono quindi trasferiti su Amazon S3 utilizzando AWS Transfer Family.

1. Un job di estrazione, trasformazione e caricamento (ETL) di AWS Glue può trasformare i dati e caricarli in un bucket elaborato nel formato specificato, oppure AWS Glue può inserire i dati direttamente nel database.

1. Amazon Athena e Amazon QuickSight possono essere utilizzati per interrogare ed eseguire il rendering dei dati per favorire l'analisi.

Il diagramma seguente mostra un flusso logico dell'intero processo.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. Il primo JCL, chiamato TABNAME, utilizzerà l'utilità Db2 DSNTIAUL per estrarre e generare l'elenco di tabelle che intendi scaricare da Db2. Per scegliere le tabelle, è necessario adattare manualmente l'input SQL per selezionare e aggiungere criteri di filtro per includere uno o più schemi Db2.

1. Il secondo JCL, chiamato REXXEXEC, utilizzerà uno scheletro JCL e il programma REXX forniti per elaborare l'elenco di tabelle creato da JCL TABNAME e generare un JCL per nome di tabella. Ogni JCL conterrà un passaggio per lo scaricamento della tabella e un altro passaggio per l'invio del file al bucket S3 utilizzando il protocollo SFTP.

1. L'ultimo passaggio consiste nell'eseguire JCL per scaricare la tabella e trasferire il file su AWS. L'intero processo può essere automatizzato utilizzando uno scheduler locale o su AWS.

## Tools (Strumenti)
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Servizi AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) è un motore di database relazionale completamente gestito creato per il cloud e compatibile con MySQL e PostgreSQL.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) è un servizio di estrazione, trasformazione e caricamento (ETL) completamente gestito. Ti aiuta a classificare, pulire, arricchire e spostare i dati in modo affidabile tra archivi di dati e flussi di dati.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e riportare i tuoi dati in un'unica dashboard.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) è un servizio di data warehouse gestito su scala petabyte nel cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) è un servizio di trasferimento sicuro che consente di trasferire file da e verso i servizi di storage AWS.

**Strumenti mainframe**
+ [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) è un protocollo di trasferimento file sicuro che consente l'accesso remoto e il trasferimento di file tra server. SSH fornisce sicurezza crittografando tutto il traffico.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) è un programma di esempio fornito da IBM per lo scaricamento dei dati.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) è un programma batch di utilità fornito da IBM per lo scarico di dati con diverse opzioni di DSNTIAUL.
+ [z/OS OpenSSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) è una porta del software Open Source SSH in esecuzione su Unix System Service nella rete del sistema operativo IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Fornisce diverse utilità, tra cui ssh-keygen.
+ Lo script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) viene utilizzato per automatizzare la generazione di JCL con i passaggi Db2 Unload e SFTP.

**Codice**

[Il codice per questo pattern è disponibile nel repository unloaddb2. GitHub ](https://github.com/aws-samples/unloaddb2-samples)

## Best practice
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Per il primo scaricamento, i dati generati JCLs dovrebbero scaricare l'intera tabella.

Dopo il primo scaricamento completo, esegui scaricamenti incrementali per migliorare le prestazioni e risparmiare sui costi. Aggiorna la query SQL nel deck JCL del modello per adattare eventuali modifiche al processo di scaricamento.

È possibile convertire lo schema manualmente o utilizzando uno script su Lambda con Db2 SYSPUNCH come input. Per un processo industriale, [AWS Schema Conversion Tool (SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html) è l'opzione preferita.

Infine, utilizza uno scheduler basato su mainframe o uno scheduler su AWS con un agente sul mainframe per gestire e automatizzare l'intero processo.

## Epiche
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configura il bucket S3
<a name="set-up-the-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | Per istruzioni, consulta [Creare il tuo primo bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | Informazioni generali su AWS | 

### Configurare il server Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un server compatibile con SFTP. | Per aprire e creare un server SFTP sulla [console AWS Transfer Family](https://console.aws.amazon.com/transfer/), procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Informazioni generali su AWS | 
| Crea un ruolo IAM per Transfer Family. | Per creare un ruolo AWS Identity and Access Management (IAM) per Transfer Family per accedere ad Amazon S3, segui le istruzioni in [Creare un ruolo e una policy IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Amministratore AWS | 
| Aggiungi un utente gestito dal servizio Amazon S3. | Per aggiungere l'utente gestito dal servizio Amazon S3, segui le istruzioni nella [documentazione AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) e usa il tuo ID utente mainframe. | Informazioni generali su AWS | 

### Proteggi il protocollo di comunicazione
<a name="secure-the-communication-protocol"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea la chiave SSH. | Nel tuo ambiente USS mainframe, esegui il seguente comando.<pre>ssh-keygen -t rsa</pre>Quando viene richiesta una passphrase, lasciala vuota. | Sviluppatore di mainframe | 
| Assegna i giusti livelli di autorizzazione alla cartella SSH e ai file chiave. | Per impostazione predefinita, le chiavi pubbliche e private verranno archiviate nella directory `/u/home/username/.ssh` utente.È necessario fornire l'autorizzazione 644 ai file chiave e 700 alla cartella.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Sviluppatore di mainframe | 
| Copia il contenuto della chiave pubblica sul tuo utente gestito dal servizio Amazon S3. | Per copiare il contenuto della chiave pubblica generato da USS, apri la console [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Sviluppatore di mainframe | 

### Genera il JCLs
<a name="generate-the-jcls"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera l'elenco di tabelle Db2 relativo all'ambito. | Fornisci un codice SQL di input per creare un elenco delle tabelle destinate alla migrazione dei dati. Questo passaggio richiede di specificare i criteri di selezione per interrogare la tabella del catalogo Db2 SYSIBM.SYSTABLES utilizzando una clausola SQL where. I filtri possono essere personalizzati per includere uno schema o nomi di tabelle specifici che iniziano con un prefisso particolare o basati su un timestamp per lo scaricamento incrementale. L'output viene acquisito in un set di dati sequenziali fisici (PS) sul mainframe. Questo set di dati fungerà da input per la fase successiva della generazione di JCL.Prima di utilizzare JCL TABNAME (puoi rinominarlo se necessario), apporta le seguenti modifiche:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Processo di estrazione dell'elenco delle tabelle 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> | Sviluppatore di mainframe | 
| Modifica i modelli JCL. | I modelli JCL forniti con questo modello contengono una scheda di lavoro generica e nomi di librerie. Tuttavia, la maggior parte dei siti mainframe avrà i propri standard di denominazione per i nomi dei set di dati, i nomi delle librerie e le job card. Ad esempio, potrebbe essere necessaria una classe di job specifica per eseguire i job Db2. Il Job Entry Subsystem implementa JES2 e JES3 può imporre ulteriori modifiche. Le librerie di caricamento standard potrebbero avere un primo qualificatore diverso `SYS1` da, che è l'impostazione predefinita di IBM. Pertanto, personalizza i modelli per tenere conto degli standard specifici del sito prima di eseguirli.Apportate le seguenti modifiche allo scheletro JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Unload e SFTP (JCL skeleton)**<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>  | Sviluppatore di mainframe | 
| Genera il Mass Unload JCL. | Questo passaggio prevede l'esecuzione di uno script REXX in un ambiente ISPF utilizzando JCL. Fornisci l'elenco delle tabelle relative all'ambito create nel primo passaggio come input per la generazione di massa di JCL in base al nome. `TABLIST DD` Il JCL genererà un nuovo JCL per nome di tabella in un set di dati partizionato specificato dall'utente specificato in base al nome. `ISPFILE DD` Alloca prima questa libreria. Ogni nuovo JCL avrà due passaggi: un passaggio per scaricare la tabella Db2 in un file e un passaggio per inviare il file al bucket S3.Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Lavoro di generazione JCL di 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>Prima di utilizzare lo script REXX, apportate le seguenti modifiche:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script STEPS REX**<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> | Sviluppatore di mainframe | 

### Esegui il JCLs
<a name="run-the-jcls"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire la fase Db2 Unload. | Dopo la generazione di JCL, ne avrai tante JCLs quante sono le tabelle da scaricare.Questa storia utilizza un esempio generato da JCL per spiegare la struttura e i passaggi più importanti.Non è richiesta nessuna azione da parte tua. Le seguenti informazioni sono solo di riferimento. Se intendi inviare JCLs ciò che hai generato nel passaggio precedente, vai alla sezione *Invia l' LODnnnnn JCLs*attività.Quando si scaricano dati Db2 utilizzando un JCL con l'utilità DSNUTILB Db2 fornita da IBM, è necessario assicurarsi che i dati scaricati non contengano dati numerici compressi. A tale scopo`DELIMITED`, utilizzare il parametro DSNUTILB.Il `DELIMITED` parametro supporta lo scaricamento dei dati in formato CSV aggiungendo un carattere come delimitatore e virgolette doppie per il campo di testo, rimuovendo la spaziatura interna nella colonna VARCHAR e convertendo tutti i campi numerici in FORMATO ESTERNO, inclusi i campi DATE.L'esempio seguente mostra l'aspetto della fase di scaricamento nel JCL generato, utilizzando il carattere virgola come delimitatore.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Sviluppatore di mainframe, ingegnere di sistema | 
| Esegui la fase SFTP. | Per utilizzare il protocollo SFTP di un JCL, utilizzate l'utilità BPXBATCH. L'utilità SFTP non può accedere direttamente ai set di dati MVS. È possibile utilizzare il comando copy (`cp`) per copiare il file `&USRPFX..DB2.UNLOAD.&JOBNAME` sequenziale nella directory USS, dove diventa. `&TABNAME..csv`Esegui il `sftp` comando utilizzando la chiave privata (`id_rsa`) e utilizzando l'ID utente RACF come nome utente per connetterti all'indirizzo IP di 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> | Sviluppatore di mainframe, ingegnere di sistema | 
| Invia il. LODnnnnn JCLs | Il JCL precedente ha generato tutte le tabelle LODnnnnn JCL che devono essere scaricate, trasformate in CSV e trasferite nel bucket S3.Esegui il `submit` comando su tutto ciò che è stato generato. JCLs  | Sviluppatore di mainframe, ingegnere di sistema | 

## Risorse correlate
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Per ulteriori informazioni sui diversi strumenti e soluzioni utilizzati in questo documento, consultate quanto segue:
+ [Guida per l'utente di z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Esempi di istruzioni di controllo UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Scaricamento di file delimitati](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family: creazione di un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family: collaborazione con utenti gestiti dal servizio](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Informazioni aggiuntive
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Dopo aver archiviato i dati Db2 su Amazon S3, hai a disposizione molti modi per sviluppare nuove informazioni. Poiché Amazon S3 si integra con i servizi di analisi dei dati AWS, puoi utilizzare o esporre liberamente questi dati sul lato distribuito. Ad esempio, puoi eseguire le operazioni seguenti:
+ Crea un [data lake su Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) ed estrai informazioni preziose utilizzando query-in-place strumenti di analisi e apprendimento automatico senza spostare i dati.
+ Avvia una funzione [Lambda](https://aws.amazon.com/lambda/) configurando un flusso di lavoro di elaborazione post-caricamento integrato con AWS Transfer Family.
+ Sviluppa nuovi microservizi per accedere ai dati in Amazon S3 o [in database completamente gestiti](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) utilizzando [AWS Glue](https://aws.amazon.com/glue/), un servizio di integrazione dei dati senza server che semplifica la scoperta, la preparazione e la combinazione di dati per l'analisi, l'apprendimento automatico e lo sviluppo di applicazioni.

In un caso di migrazione, poiché puoi trasferire qualsiasi dato dal mainframe a S3, puoi fare quanto segue:
+ Elimina l'infrastruttura fisica e crea una strategia di archiviazione dei dati conveniente con Amazon S3 Glacier e S3 Glacier Deep Archive. 
+ Crea soluzioni di backup e ripristino scalabili, durevoli e sicure con Amazon S3 e altri servizi AWS, come S3 Glacier e Amazon Elastic File System (Amazon EFS), per aumentare o sostituire le funzionalità locali esistenti.

# Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

*Shubham Roy, Subramanyam Malisetty e Harshitha Shashidhar, Amazon Web Services*

## Riepilogo
<a name="transform-easytrieve-modern-languages-summary"></a>

[https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) language-to-language Risolve le sfide legate alla modernizzazione dei carichi di lavoro EZT mainframe proprietari e di nicchia, comunemente utilizzati per l'elaborazione di dati in batch e la generazione di report. Il modello sostituisce approcci di migrazione costosi, lunghi e soggetti a errori che si basano su strumenti proprietari e rare competenze nel mainframe con una soluzione automatizzata di intelligenza artificiale agentica su cui creare. AWS Transform

Questo modello fornisce una definizione di trasformazione personalizzata pronta all'uso per la trasformazione EZT. La definizione utilizza più input di trasformazione:
+ [regole aziendali EZT estratte utilizzando per mainframe AWS Transform](https://aws.amazon.com/transform/mainframe/)
+ Documentazione di riferimento sulla programmazione EZT
+ Codice sorgente EZT
+ Set di dati di input e output del mainframe

AWS Transform custom utilizza questi input per generare applicazioni funzionalmente equivalenti nei linguaggi di destinazione moderni, come Java o Python.

Il processo di trasformazione utilizza l'esecuzione intelligente dei test, il debug automatizzato e le funzionalità di correzione iterativa per convalidare l'equivalenza funzionale rispetto agli output previsti. Supporta inoltre l'apprendimento continuo, abilitando la definizione di trasformazione personalizzata per migliorare la precisione e la coerenza tra le trasformazioni successive. Utilizzando questo modello, le organizzazioni possono ridurre gli sforzi e i rischi legati alla migrazione, far fronte al debito tecnico di nicchia nel settore mainframe e modernizzare i carichi di lavoro EZT AWS per migliorare l'agilità, l'affidabilità, la sicurezza e l'innovazione.

## Prerequisiti e limitazioni
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Prerequisiti**
+ Un account attivo AWS  
+ Un carico di lavoro EZT mainframe con dati di input e output 

**Limitazioni**

*Limitazioni dell'ambito*
+ **Supporto linguistico: per** questo modello di trasformazione specifico è supportata solo la trasformazione da EZT a Java. 
+ **Fuori ambito**: la trasformazione di altri linguaggi di programmazione mainframe richiede una nuova definizione di trasformazione personalizzata in custom. AWS Transform 

*Limitazioni del processo*
+ **Dipendenza dalla convalida**: senza dati di output di base, la trasformazione non può essere convalidata. 
+ **Logica proprietaria**: utilità altamente specifiche e sviluppate su misura richiedono documentazione utente aggiuntiva e materiali di riferimento per essere interpretate correttamente dall'agente AI.

*Limitazioni tecniche*
+ **Limiti del servizio**: per i limiti e le quote di servizio AWS Transform personalizzati, consulta la [Guida per AWS Transform l'utente - Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) e il [riferimento AWS generale - Transform](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) Quotas.

**Versioni del prodotto**
+ AWS Transform CLI — Versione più recente
+ Node.js — versione 20 o successiva
+ Git — Versione più recente
+ Ambiente di destinazione
  + Java: versione 17 o successiva
  + Spring Boot: la versione 3.x è l'obiettivo principale per le applicazioni refactorizzate
  + Maven — versione 3.6 o successiva

## Architecture
<a name="transform-easytrieve-modern-languages-architecture"></a>

**Stack tecnologico di origine**
+ **Sistema operativo**: IBM z/OS
+ **Linguaggio di programmazione** — Easytrieve, Job control language (JCL)
+ **Database**: IBM DB2 for z/OS, Virtual Storage Access Method (VSAM), file flat per mainframe

**Stack tecnologico Target**
+ **Sistema operativo**: Amazon Linux
+ **Elaborazione**: Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute
+ **Linguaggio di programmazione**: Java
+ **Database** Amazon Relational Database Service (Amazon RDS)

**Architettura di Target**

![\[diagramma dell'architettura di destinazione per utilizzare AWS Transform custom per trasformare EZT in codice moderno.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Flusso di lavoro**

Questa soluzione utilizza un modello di trasformazione di language-to-language migrazione AWS Transform personalizzato per modernizzare le applicazioni mainframe Easytrieve (EZT) verso Java attraverso un flusso di lavoro automatizzato in quattro fasi.

*Fase 1: Fornisci il codice legacy a For Mainframe, che: AWS Transform *
+ Analizza il codice
+ Estrae la logica aziendale di alto livello
+ Estrae la logica aziendale dettagliata.

*Passaggio 2: crea una cartella con gli input richiesti:*
+ Regole aziendali EZT estratte utilizzando per mainframe AWS Transform  
+ Documentazione di riferimento sulla programmazione EZT 
+ Codice sorgente EZT
+ Set di dati di input e output del mainframe

*Fase 3: Creare ed eseguire una definizione di trasformazione personalizzata*

1. Usa la AWS Transform CLI per descrivere gli obiettivi di trasformazione in linguaggio naturale. AWS Transform custom analizza le guide di programmazione BRE, codice sorgente ed EZT per generare una definizione di trasformazione personalizzata per la revisione e l'approvazione degli sviluppatori.

1. Quindi, richiama la AWS Transform CLI con il codice sorgente del progetto. AWS Transform custom crea piani di trasformazione, converte EZT in Java dopo l'approvazione, genera file di supporto, crea il JAR eseguibile e convalida i criteri di uscita.

1. Utilizzate l'agente di convalida per testare l'equivalenza funzionale rispetto all'output del mainframe. L'agente Self-Debugger risolve i problemi in modo autonomo. I risultati finali includono codice Java convalidato e report di convalida HTML.

**Automazione e scalabilità**
+ Architettura di esecuzione multimodale Agentic AI: AWS Transform personalizzata sfrutta l'intelligenza artificiale agentica con 3 modalità di esecuzione (conversazionale, interattiva e di automazione completa) per automatizzare attività di trasformazione complesse tra cui analisi del codice, refactoring, pianificazione e test della trasformazione.
+ Sistema di feedback adattivo per l'apprendimento: la piattaforma implementa meccanismi di apprendimento continuo attraverso l'analisi di esempi di codice, l'analisi della documentazione e l'integrazione del feedback degli sviluppatori con definizioni di trasformazione versionate.
+ Architettura di elaborazione simultanea delle applicazioni: il sistema consente l'esecuzione parallela distribuita di più operazioni di trasformazione delle applicazioni contemporaneamente su un'infrastruttura scalabile.

## Tools (Strumenti)
<a name="transform-easytrieve-modern-languages-tools"></a>

**Servizi AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) è un servizio di intelligenza artificiale agentica utilizzato per trasformare le applicazioni EZT legacy in linguaggi di programmazione moderni. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come .NET, mainframe e carichi di lavoro. VMware 
+ [AWS Transform for mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) viene utilizzato per analizzare le applicazioni EZT legacy per estrarre la logica di business incorporata e generare una documentazione completa sulle regole aziendali, inclusi riepiloghi logici, definizioni di acronimi e basi di conoscenza strutturate. Questi servono come dati di input personalizzati. AWS Transform  
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati. Amazon S3 funge da servizio di storage principale per l'archiviazione AWS Transform personalizzata di definizioni di trasformazione, repository di codice e risultati di elaborazione. 
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle. IAM fornisce il framework di sicurezza per la gestione AWS Transform personalizzata delle autorizzazioni e del controllo degli accessi per le operazioni di trasformazione.

**Altri strumenti**
+ [AWS Transform CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) è l'interfaccia a riga di comando AWS Transform personalizzata, che consente agli sviluppatori di definire, eseguire e gestire trasformazioni di codice personalizzate tramite conversazioni in linguaggio naturale e modalità di esecuzione automatizzate. AWS Transform custom supporta sia sessioni interattive (atx custom def exec) sia trasformazioni autonome per la modernizzazione scalabile delle codebase.
+ Sistema di controllo della versione [Git](https://git-scm.com/doc) utilizzato per la protezione delle filiali, il monitoraggio delle modifiche e le funzionalità di rollback durante le applicazioni di correzione automatizzate. 
+ [Java](https://www.java.com/en/) è il linguaggio di programmazione e l'ambiente di sviluppo utilizzati in questo modello. 

**Deposito di codice**

Il codice per questo modello è disponibile in [Easytrieve to Modern Languages Transformation con 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

## Best practice
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Stabilisci una struttura di progetto standardizzata: crea una struttura a quattro cartelle (codice sorgente, bre-doc, dati di input, dati di output), convalida la completezza e il contenuto del documento prima della trasformazione.
+ Utilizza i file di base per la convalida: utilizza i file di input di base di produzione, esegui il confronto con l'output di base, accetta la tolleranza zero per le deviazioni. byte-by-byte
+ Utilizza tutti i documenti di riferimento disponibili: per aumentare la precisione della trasformazione, fornisci tutti i documenti di riferimento disponibili, come i requisiti aziendali e le liste di controllo per la codifica.
+ Fornisci input per il miglioramento della qualità: la funzionalità AWS Transform personalizzata estrae automaticamente gli apprendimenti dalle esecuzioni di trasformazione (feedback degli sviluppatori, problemi relativi al codice) e crea elementi di conoscenza per essi. Dopo ogni trasformazione riuscita, rivedi gli elementi di conoscenza e approva quelli che desideri utilizzare nelle future esecuzioni. Ciò migliora la qualità delle trasformazioni future.

## Epiche
<a name="transform-easytrieve-modern-languages-epics"></a>

### Genera un estratto di regole aziendali (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurazione AWS Transform per mainframe. | Configura l'ambiente e le autorizzazioni richieste AWS Identity and Access Management (IAM) per supportare i flussi di lavoro di modernizzazione del mainframe. Per ulteriori informazioni, consulta la sezione [Trasformazione delle applicazioni mainframe nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html). AWS  | Sviluppatore di app | 
| Genera la documentazione Business Rule Extract (BRE). | Estrai la logica aziendale dal codice sorgente EZT o COBOL per generare documentazione funzionale. Per istruzioni su come avviare il processo di estrazione e rivedere l'output, consulta [Extract business logic nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). AWS Transform  | Sviluppatore di app | 

### Configurazione personalizzata AWS Transform
<a name="set-up-trn-custom"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Fornisci l'infrastruttura per scopi AWS Transform personalizzati. | Implementa l'infrastruttura pronta per la produzione necessaria per ospitare un ambiente di trasformazione sicuro. Ciò include un'istanza Amazon EC2 privata configurata con gli strumenti necessari, le autorizzazioni IAM e le impostazioni di rete per la conversione del codice Easytrieve. Per effettuare il provisioning dell'ambiente utilizzando l'infrastruttura come codice (IaC), segui le istruzioni di distribuzione nell'archivio [Easytrieve](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) to Modern Languages Transformation with Custom. AWS Transform GitHub  | Sviluppatore di app, amministratore AWS | 
| Prepara i materiali di input per la trasformazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 

###  Crea una definizione di trasformazione personalizzata
<a name="create-a-custom-transformation-definition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una definizione di trasformazione. | Segui questi passaggi per creare la definizione di trasformazione personalizzata per la trasformazione da EZT a Java con convalida funzionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Pubblica la definizione di trasformazione. | *Dopo la revisione e la convalida della definizione di trasformazione, è possibile pubblicarla nel registro AWS Transform personalizzato con un prompt in linguaggio naturale, fornendo un nome di definizione come EasyTrieve-to-Java-Migration.* | Sviluppatore di app | 

### Prepara i dati di base per la convalida.
<a name="prepare-baseline-data-for-validation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | Prima di eseguire la trasformazione AWS Transform personalizzata, verificate che la `input-data` cartella contenga i file di dati richiesti acquisiti prima dell'esecuzione del processo batch del mainframe. Dopo l'esecuzione del processo batch del mainframe, assicuratevi che la `output-data` cartella acquisisca i file risultanti. Tutti i file sono in formato Sequential/Text/DB 2 e utilizzano la codifica EBCDIC in base ai requisiti di esecuzione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Esegui il processo di trasformazione personalizzato. | Esegui il comando AWS Transform CLI, scegliendo l'opzione non interattiva o interattiva:<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 si convalida automaticamente tramite build/test comandi durante l'esecuzione della trasformazione. | Sviluppatore di app | 

### Convalida e distribuisci codice testato
<a name="validate-and-deliver-tested-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Accedi ai report di convalida. | Inserisci questi comandi per esaminare gli artefatti di convalida dettagliati:<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> | Sviluppatore di app | 
| Abilita gli elementi di conoscenza per l'apprendimento continuo. | Migliora la precisione delle trasformazioni future promuovendo gli elementi di conoscenza suggeriti nella tua configurazione persistente. Dopo una trasformazione, l'agente memorizza i modelli e le regole di mappatura identificati nella directory della sessione locale. Per rivedere e applicare questi elementi appresi, esegui questi comandi sulla tua istanza 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> | Sviluppatore di app | 

## Risoluzione dei problemi
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| *Configurazione del percorso di input e output*I file di input non vengono letti o i file di output non vengono scritti correttamente.  | Specificate il percorso completo della directory in cui sono archiviati i file di input e indicate chiaramente la posizione in cui scrivere l'output. Assicurati che siano configurate le autorizzazioni di accesso adeguate per queste directory. Le migliori pratiche includono l'utilizzo di percorsi assoluti anziché percorsi relativi per evitare ambiguità e la verifica che tutti i percorsi specificati esistano con le autorizzazioni appropriate. read/write   | 
| *Ripresa delle esecuzioni interrotte*L'esecuzione è stata interrotta o deve essere continuata dal punto in cui è stata interrotta | Puoi riprendere l'esecuzione dal punto in cui l'avevi interrotta fornendo l'ID della conversazione nel comando CLI.Trova l'ID della conversazione nei registri del tuo precedente tentativo di esecuzione.   | 
| *Risoluzione dei vincoli di memoria*Si verifica un errore di memoria esaurita durante l'esecuzione. | È possibile chiedere AWS Transform di condividere la dimensione corrente della JVM in memoria e quindi aumentare l'allocazione della memoria in base a queste informazioni. Questa regolazione consente di soddisfare requisiti di elaborazione più elevati.Prendi in considerazione la possibilità di suddividere i lavori di grandi dimensioni in batch più piccoli se i vincoli di memoria persistono dopo le regolazioni.  | 
| *Risolvere le discrepanze tra i file di output*I file di output non corrispondono alle aspettative e AWS Transform indicano che non sono possibili ulteriori modifiche. | Fornisci feedback specifici e motivi tecnici che spieghino perché l'uscita corrente non è corretta. Includi documentazione tecnica o commerciale aggiuntiva a supporto delle tue esigenze. Questo contesto dettagliato aiuta a AWS Transform correggere il codice per generare i file di output corretti. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Risorse correlate
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentazione personalizzata](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Generatore di report Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

## Allegati
<a name="attachments-71f15422-42cb-4c7e-94fa-051a4f130445"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Altri modelli
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Implementa le automazioni di sicurezza per la AWS WAF soluzione utilizzando Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replica i database mainframe su AWS utilizzando Precisly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)