Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform - Prontuario AWS

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

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

Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform

Creato da Richard Milner-Watts (AWS)

Riepilogo

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:

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. 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 Professional Services.

Prerequisiti e limitazioni

Prerequisiti

  • L'applicazione di esempio di Blu Age containerizzata fornita dai carichi di lavoro mainframe Containerize 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à.

Versioni del prodotto

Questa soluzione è stata testata con le seguenti versioni:

  • Terraform 1.3.6

  • Terraform AWS Provider 4.46.0

Architettura

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

  • Servizio di notifica semplice Amazon (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.
  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.

  2. Amazon ECR viene utilizzato per archiviare l'immagine del contenitore orchestrata da questo modello.

  3. AWS Systems Manager Parameter Store fornisce dati di configurazione su ciascun ambiente alla definizione delle attività di Amazon ECS in fase di esecuzione.

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

  5. I moduli Terraform creano definizioni di attività Amazon ECS per tutte le attività in tempo reale e in batch.

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

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

  8. 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à.

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

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

  11. Il servizio AWS Step Functions viene utilizzato per orchestrare l'esecuzione delle attività di Amazon ECS per elaborare carichi di lavoro in batch.

  12. 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 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 Task CPU e memoria nella documentazione di Amazon ECS.

Per scalare orizzontalmente i carichi di lavoro in tempo reale, puoi aggiungere contenitori.

Strumenti

Servizi AWS

Altri servizi

  • HashiCorp Terraform è uno strumento open source di infrastruttura come codice (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).

Best practice

  • 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 per ottenere indicazioni su potenziali colli di bottiglia.

Epiche

AttivitàDescrizioneCompetenze richieste

Clona il codice sorgente della soluzione.

Clona il codice della soluzione dal GitHub progetto.

DevOps ingegnere

Avvia l'ambiente distribuendo risorse per archiviare lo stato di Terraform.

  1. Apri una finestra di terminale e conferma che Terraform sia installato e che le credenziali AWS siano disponibili.

  2. Accedi alla cartella bootstrap-terraform.

  3. Modifica il file main.tf se desideri cambiare i nomi del bucket S3 (<accountId>-terraform-backend) e della tabella Amazon DynamoDB (). terraform-lock

  4. Esegui il terraform apply comando per distribuire le risorse. Prendi nota del bucket S3 e dei nomi delle tabelle DynamoDB.

DevOps ingegnere

Prepara l'ambiente per l'implementazione

AttivitàDescrizioneCompetenze richieste

Clona il codice sorgente della soluzione.

Clona il codice della soluzione dal GitHub progetto.

DevOps ingegnere

Avvia l'ambiente distribuendo risorse per archiviare lo stato di Terraform.

  1. Apri una finestra di terminale e conferma che Terraform sia installato e che le credenziali AWS siano disponibili.

  2. Accedi alla cartella bootstrap-terraform.

  3. Modifica il file main.tf se desideri cambiare i nomi del bucket S3 (<accountId>-terraform-backend) e della tabella Amazon DynamoDB (). terraform-lock

  4. Esegui il terraform apply comando per distribuire le risorse. Prendi nota del bucket S3 e dei nomi delle tabelle DynamoDB.

DevOps ingegnere
AttivitàDescrizioneCompetenze 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:

  1. Aggiorna la regione AWS cercando e sostituendo la stringa eu-west-1 con la regione desiderata che desideri utilizzare.

  2. Aggiorna il nome del bucket nel Terraform Backend blocco se il valore predefinito è stato modificato nell'epopea precedente.

  3. Aggiorna il dynamodb_table valore se il valore predefinito è stato modificato nell'epopea precedente.

  4. Aggiorna il valore della stack_prefix variabile nella stringa che desideri. Questa stringa verrà aggiunta ai nomi di tutte le risorse create da questo modello.

  5. Aggiorna il valore di vpc_cidr Questo dovrebbe essere almeno un intervallo di /24 indirizzi.

  6. Rivedi la Locals sezione. Viene utilizzato per definire le attività di Blu Age che verranno implementate. La soluzione eseguirà un'iterazione sull'oggetto elencobluage_batch_modules, creando le risorse associate (macchina a stati Step Functions, definizione dell'attività e argomento SNS) per ogni elemento dell'elenco. In alcuni casi, potresti voler regolare le variabili per ambienti diversi. Ad esempio, per forzare il runtime negli ambienti di test, puoi modificare il valore della force_execution_time variabile.

  7. Per attivare l'accesso a Internet, modificate il valore direct_internet_access_required da false atrue. Questo implementerà un gateway Internet, insieme ai gateway NAT e alle tabelle di routing che attivano l'accesso pubblico a Internet per l'infrastruttura. Per impostazione predefinita, la soluzione implementerà gli endpoint VPC di interfaccia in un VPC senza accesso diretto a Internet.

  8. Per concedere l'accesso a qualsiasi carico di lavoro client-server servito tramite Elastic Load Balancing, aggiorna i valori additional_nlb_igress_cidrs di con le reti CIDR che dovrebbero essere consentiti.

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

Implementa l'infrastruttura della soluzione

AttivitàDescrizioneCompetenze 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:

  1. Aggiorna la regione AWS cercando e sostituendo la stringa eu-west-1 con la regione desiderata che desideri utilizzare.

  2. Aggiorna il nome del bucket nel Terraform Backend blocco se il valore predefinito è stato modificato nell'epopea precedente.

  3. Aggiorna il dynamodb_table valore se il valore predefinito è stato modificato nell'epopea precedente.

  4. Aggiorna il valore della stack_prefix variabile nella stringa che desideri. Questa stringa verrà aggiunta ai nomi di tutte le risorse create da questo modello.

  5. Aggiorna il valore di vpc_cidr Questo dovrebbe essere almeno un intervallo di /24 indirizzi.

  6. Rivedi la Locals sezione. Viene utilizzato per definire le attività di Blu Age che verranno implementate. La soluzione eseguirà un'iterazione sull'oggetto elencobluage_batch_modules, creando le risorse associate (macchina a stati Step Functions, definizione dell'attività e argomento SNS) per ogni elemento dell'elenco. In alcuni casi, potresti voler regolare le variabili per ambienti diversi. Ad esempio, per forzare il runtime negli ambienti di test, puoi modificare il valore della force_execution_time variabile.

  7. Per attivare l'accesso a Internet, modificate il valore direct_internet_access_required da false atrue. Questo implementerà un gateway Internet, insieme ai gateway NAT e alle tabelle di routing che attivano l'accesso pubblico a Internet per l'infrastruttura. Per impostazione predefinita, la soluzione implementerà gli endpoint VPC di interfaccia in un VPC senza accesso diretto a Internet.

  8. Per concedere l'accesso a qualsiasi carico di lavoro client-server servito tramite Elastic Load Balancing, aggiorna i valori additional_nlb_igress_cidrs di con le reti CIDR che dovrebbero essere consentiti.

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
AttivitàDescrizioneCompetenze richieste

Invia l'immagine del contenitore Blu Age ad Amazon ECR.

Inserisci il contenitore nel repository Amazon ECR che hai creato nell'epic precedente. Per istruzioni, consulta la documentazione di Amazon ECR.

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

(Facoltativo) Implementa un'applicazione containerizzata Blu Age valida

AttivitàDescrizioneCompetenze richieste

Invia l'immagine del contenitore Blu Age ad Amazon ECR.

Inserisci il contenitore nel repository Amazon ECR che hai creato nell'epic precedente. Per istruzioni, consulta la documentazione di Amazon ECR.

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

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.