Scenario punto cieco - AWS Guida prescrittiva

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

Scenario punto cieco

Questa sezione fornisce un esempio di scenario in cui un team di ingegneri può prendere una decisione IT che si traduce in un punto cieco con conseguenze non intenzionali che possono danneggiare l'organizzazione. Lo scenario ipotetico presuppone che un volume di storage Amazon Elastic Block Store (AmazonEBS) venga creato nel AWS cloud utilizzando AWS CloudFormationcome parte di un approccio IaC.

Per questo esempio, supponiamo che un team di ingegneri scriva e poi distribuisca un programma completamente testato che genera una risposta automatica se la capacità di un volume utilizzato supera l'80% (un numero arbitrario per questo esempio). Il programma risponde all'evento di soglia chiamando per aumentare la dimensione del volume. APIs Il team di progettazione prevede che il volume continui a crescere nel tempo ma non comporti un'interruzione della produzione. Il team di ingegneri ha risolto il problema dello spazio di archiviazione, ma un altro problema sottile e spesso trascurato emerge involontariamente: la deriva.

Nota

Questo è solo un esempio e sono possibili altri scenari. Ad esempio, è possibile sostituire il EBS volume con un gruppo di sicurezza in cui il team di progettazione crea una regola di ingresso che consente il traffico proveniente da un indirizzo IP dinamico in base a un evento.

Conseguenze involontarie

La deriva si verifica quando si modificano le proprietà delle risorse all'esterno del sistema IAc. In questo scenario, ciò significa le risorse fornite da. CloudFormation Gli ingegneri in questo scenario utilizzano un API per aumentare le dimensioni di un EBS volume. La deriva introdotta dall'uso di API instead of CloudFormation ha un effetto a catena che porta a ulteriori problemi. Il problema è aggravato anche dalla distribuzione degli aggiornamenti dello stesso stack in un processo. DevOps

Poiché la dimensione del volume sulla risorsa esterna all'archivio del codice è cambiata, il CloudFormation modello non è a conoscenza della modifica. Pertanto, qualsiasi implementazione fallirà finché l'aumento delle dimensioni del volume non sarà incorporato nel CloudFormation modello. Ancora più importante, se gli ingegneri non sono a conoscenza delle variazioni del volume delle risorse, i loro modelli non disporranno degli aggiornamenti necessari. I volumi sono particolarmente vulnerabili alla deriva. Dopo aver aumentato la dimensione di archiviazione del volume, non è possibile diminuire la dimensione di archiviazione del volume. Pertanto, il CloudFormation modello non solo non riesce ad aggiornarsi, ma non riesce anche a ripristinarlo perché il valore del parametro size non può essere applicato.

Approccio problematico

Il diagramma seguente mostra una soluzione problematica allo scenario di esempio. L'utente, come parte del flusso di lavoro, segue un approccio IaC ed effettua il provisioning di un EBS volume utilizzando un modello. CloudFormation Il team di monitoraggio della produzione utilizza un approccio di EDP automazione e crea una regola Amazon CloudWatch Events. Questa regola è configurata per richiamare una funzione AWSLambda quando EBS il volume raggiunge una soglia di archiviazione specifica. Quindi, la funzione Lambda chiama API per aumentare la dimensione del EBS volume.

Scenario problematico con volume EBS

Il diagramma seguente mostra un approccio consigliato in linea con le migliori pratiche illustrate nella sezione Best practice di questa guida. Questo approccio comporta una maggiore complessità e più AWS servizi, tra cui Amazon Simple Notification Service (AmazonSNS) per l'invio di notifiche, per il controllo del codice sorgente, AWS CodeCommitper la distribuzione automatizzata del codice e AWSStep Functions per l'orchestrazione del flusso di lavoro senza server. AWS CodePipeline In questo approccio, CodePipeline aggiunge inizialmente la dimensione EBS del volume a Parameter Store (una funzionalità di AWSSystems Manager), quindi Step Functions effettua eventuali aggiornamenti successivi.

Nota

AWS CodeCommit non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

È possibile utilizzare Parameter Store per visualizzare una cronologia dei valori e utilizzarla per i valori che cambiano. Parameter Store si integra anche con più servizi, come CloudFormation Lambda. La funzione Lambda in questo scenario non interagisce direttamente con il EBS volume per aumentarne le dimensioni. Invece, la funzione Lambda interagisce con CloudFormation per aggiornare il. API Di conseguenza, gli CloudFormation stack sono protetti dalla deriva. Infine, questo approccio si basa su un'unica fonte per CloudFormation l'esecuzione degli aggiornamenti.

Scenario consigliato con volume EBS