Application Auto Scaling - Guida per l'utente - Amazon.com
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Application Auto Scaling Guida per l'utente
Application Auto Scaling Guida per l'utente Application Auto Scaling: Guida per l'utente Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.
Application Auto Scaling Guida per l'utente Table of Contents Cos'è Application Auto Scaling? ............................................................................................................ 1 Caratteristiche di Application Auto Scaling ...................................................................................... 1 Accesso ad Application Auto Scaling ............................................................................................. 1 Configurazione ................................................................................................................................... 3 Registrazione ad AWS ................................................................................................................ 3 Configurazione di AWS CLI .......................................................................................................... 4 Nozioni di base per l'utilizzo di AWS CLI ........................................................................................ 5 Fase 1: registrazione del target scalabile ............................................................................... 5 Fase 2: creazione di due operazioni pianificate ....................................................................... 6 Fase 3: visualizzazione delle attività di dimensionamento .......................................................... 8 Fase 4: fasi successive ..................................................................................................... 10 Fase 5: elimina ................................................................................................................. 10 Nozioni di base ................................................................................................................................ 12 Policy di dimensionamento di monitoraggio obiettivi ............................................................................... 13 Considerazioni .......................................................................................................................... 13 Periodo di attesa ...................................................................................................................... 14 Supporto della disponibilità delle applicazioni durante periodi di utilizzo elevato ................................... 15 Registrare un target scalabile ..................................................................................................... 15 Creazione di una policy di dimensionamento del monitoraggio di target ............................................. 15 Descrizione di policy di dimensionamento del monitoraggio di target ................................................. 17 Eliminazione di una policy di dimensionamento del monitoraggio di target .......................................... 18 Policy di dimensionamento di fasi ........................................................................................................ 19 Adeguamenti di fasi .................................................................................................................. 19 Tipi di adeguamenti di dimensionamento ...................................................................................... 21 Periodo di attesa ...................................................................................................................... 21 Registrare un target scalabile ..................................................................................................... 22 Configurazione delle policy di dimensionamento a fasi tramite AWS CLI ............................................ 22 Descrizione di policy di dimensionamento per fasi .......................................................................... 23 Eliminazione di una policy di dimensionamento per fasi .................................................................. 24 Dimensionamento pianificato .............................................................................................................. 26 Registrare un target scalabile ..................................................................................................... 26 Creazione o aggiornamento di un'operazione pianificata tramite AWS CLI .......................................... 26 Pianificare operazioni una tantum ........................................................................................ 27 Pianificare operazioni ricorrenti ........................................................................................... 27 Descrizione di operazioni pianificate ............................................................................................ 28 Eliminazione di un'operazione pianificata ...................................................................................... 28 Sospensione dei processi di dimensionamento ...................................................................................... 30 Attività di dimensionamento ........................................................................................................ 30 Sospendere e riprendere le attività di dimensionamento usando l'AWS CLI ........................................ 31 Visualizzare le attività di dimensionamento sospese ............................................................... 32 Riprendere le attività di dimensionamento ............................................................................. 32 Monitoraggio .................................................................................................................................... 33 Pannelli di controllo CloudWatch ................................................................................................. 34 Parametri e dimensioni ...................................................................................................... 34 Eventi e EventBridge ................................................................................................................. 36 Personal Health Dashboard ........................................................................................................ 37 Sicurezza ......................................................................................................................................... 39 Protezione dei dati .................................................................................................................... 39 Identity and Access Management ................................................................................................ 40 Controllo degli accessi ....................................................................................................... 40 Funzionamento di Application Auto Scaling con IAM ............................................................... 41 Ruoli collegati ai servizi ..................................................................................................... 43 Esempi di policy per AWS CLI o SDK .................................................................................. 48 Policy di esempio per la console ......................................................................................... 52 iii
Application Auto Scaling Guida per l'utente Convalida della conformità ......................................................................................................... 53 Resilienza ................................................................................................................................ 54 Sicurezza dell'infrastruttura ......................................................................................................... 54 Utilizzo degli endpoint VPC per la connettività privata ..................................................................... 54 Crea un endpoint VPC dell'interfaccia .................................................................................. 55 Creare una policy di endpoint VPC ...................................................................................... 55 Migrazione degli endpoint ................................................................................................... 56 Quote di servizio ............................................................................................................................... 57 Cronologia dei documenti ................................................................................................................... 58 iv
Application Auto Scaling Guida per l'utente Caratteristiche di Application Auto Scaling Cos'è Application Auto Scaling? Application Auto Scaling è un servizio Web per sviluppatori e agli amministratori di sistema che necessitano di una soluzione per scalare automaticamente le risorse scalabili per singoli servizi AWS oltre Amazon EC2. Application Auto Scaling consente di configurare il dimensionamento automatico per le risorse seguenti: • Servizi Amazon ECS • Richieste di parchi istanze Spot • Cluster Amazon EMR • Parchi istanze AppStream 2.0 • Tabelle DynamoDB e indici secondari globali • Repliche Aurora • Varianti di endpoint Amazon SageMaker • Risorse personalizzate fornite dalle tue applicazioni o dai tuoi servizi. Per ulteriori informazioni, consulta il repository GitHub. • Endpoint di classificazione dei documenti Amazon Comprehend • Concorrenza con provisioning della funzione Lambda • Tabelle di Amazon Keyspaces (per Apache Cassandra) Per visualizzare la disponibilità regionale per uno dei servizi AWS elencati sopra, consulta la Tabella delle regioni. Sono disponibili diverse opzioni di dimensionamento in AWS. Per ulteriori informazioni sul dimensionamento del parco istanze Amazon EC2, consulta la Amazon EC2 Auto Scaling User Guide. Puoi anche utilizzare Application Auto Scaling e Amazon EC2 Auto Scaling in combinazione con AWS Auto Scaling per scalare le risorse tra più servizi. AWS Auto Scaling può aiutarti a mantenere la disponibilità e le prestazioni ottimali combinando insieme dimensionamento predittivo e dimensionamento dinamico (rispettivamente, approcci proattivi e reattivi) per ridimensionare la capacità Amazon EC2 in modo più rapido. Per ulteriori informazioni, consulta la AWS Auto Scaling User Guide. Caratteristiche di Application Auto Scaling Application Auto Scaling ti consente di dimensionare automaticamente le risorse scalabili in base alle condizioni da te definite. • Dimensionamento del monitoraggio di obiettivi—-Esegue il dimensionamento di una risorsa in base a un valore di target per un parametro CloudWatch specifico. • Dimensionamento per fasi— - Esegue il dimensionamento di una risorsa in base a un set di adeguamenti del dimensionamento che variano in base alle dimensioni dell'utilizzo fuori limite segnalato dall'allarme. • Dimensionamento pianificato—-Esegue il dimensionamento di una risorsa in base alla data e all'ora. Accesso ad Application Auto Scaling Se ti sei registrato per un account AWS, è possibile accedere a Application Auto Scaling accedendo alla AWS Management Console. Apri quindi la console di servizio per una delle risorse elencate 1
Application Auto Scaling Guida per l'utente Accesso ad Application Auto Scaling nell'introduzione. Assicurati di aprire la console nella stessa regione AWS della risorsa che desideri utilizzare. Per ulteriori informazioni, consulta Nozioni di base su Application Auto Scaling (p. 12). È inoltre possibile accedere a Application Auto Scaling utilizzando l'API Application Auto Scaling. Application Auto Scaling fornisce un'API di query. Queste richieste sono richieste HTTP o HTTPS che utilizzano i verbi HTTP GET o POST e un parametro di query denominato Action. Per ulteriori informazioni, consulta la sezione relativa alle operazioni nella Application Auto Scaling API Reference. Per gli sviluppatori di software che preferiscono creare applicazioni utilizzando API specifiche del linguaggio, anziché inviare una richiesta tramite HTTP o HTTPS, AWS fornisce librerie, codice di esempio, tutorial e altre risorse. Le librerie offrono funzioni di base per automatizzare attività quali la firma crittografica delle richieste, la ripetizione delle richieste e la gestione delle risposte agli errori e semplificare le attività iniziali. Per ulteriori informazioni, consulta la sezione SDK e strumenti di AWS. Se preferisci usare un'interfaccia a riga di comando, hai a disposizione le seguenti opzioni: AWS Command Line Interface (AWS CLI) Fornisce comandi per un ampio kit di prodotti AWS e offre il supporto per Windows, macOS e Linux. Per iniziare, consulta AWS Command Line Interface User Guide. Per ulteriori informazioni consulta application-autoscaling nella AWS CLI Command Reference. AWS Tools for Windows PowerShell Fornisce comandi per un ampio kit di prodotti AWS per coloro che eseguono script nell'ambiente PowerShell. Per iniziare, consulta AWS Tools for Windows PowerShell User Guide. Per ulteriori informazioni, consulta la guida AWS Tools for PowerShell Cmdlet Reference. Per ulteriori informazioni sulle credenziali di accesso ad AWS, consulta Credenziali di sicurezza AWS nella Amazon Web Services General Reference. Per informazioni su regioni ed endpoint per Application Auto Scaling, consulta Regioni ed endpoint AWS nella Application Auto Scaling. 2
Application Auto Scaling Guida per l'utente Registrazione ad AWS Configurazione Prima di utilizzare Application Auto Scaling per configurare la scalabilità automatica, crea un account AWS, configura le autorizzazioni di accesso e configura AWS Command Line Interface (AWS CLI). Argomenti • Registrazione ad AWS (p. 3) • Configurazione di AWS CLI (p. 4) • Nozioni di base per l'utilizzo di AWS CLI (p. 5) Registrazione ad AWS Quando ti registri ad AWS, il tuo account AWS viene automaticamente registrato per tutti i servizi AWS, tra cui Application Auto Scaling. Ti vengono addebitati solo i servizi che utilizzi. Se non disponi già di un account AWS, devi crearne uno. Se disponi già di un account AWS, puoi ignorare le fasi di creazione di un account nella procedura seguente e passare alla creazione di un utente IAM nella fase 3. Per registrarti a AWS 1. Apri https://aws.amazon.com/ e scegli Sign Up (Registrazione). 2. Segui le istruzioni online. Come parte della procedura di registrazione riceverai una telefonata, durante la quale dovrai inserire un codice di verifica sulla tastiera del telefono. AWS invia un'e-mail di conferma al termine del processo di registrazione. 3. Crea un utente amministratore di AWS Identity and Access Management (IAM). Per istruzioni, consulta Creazione del primo utente e gruppo IAM nella IAM User Guide. Important Per eseguire gli esercizi delle Nozioni di base di questa guida è necessario disporre di un utente (adminuser) con autorizzazioni di amministratore. Per creare un adminuser nel tuo account, utilizza la procedura indicata di seguito. 4. Assicurati di disporre di un ID chiave di accesso e di una chiave di accesso segreta associati all'utente IAM creato. Per ulteriori informazioni, consulta Chiave di accesso e chiave di accesso segreta nella AWS Command Line Interface User Guide. For more information about IAM, see the following: • AWS Identity and Access Management (IAM) • Getting Started • IAM User Guide Utilizzo di Application Auto Scaling nelle regioni AWS Application Auto Scaling è disponibile in più regioni AWS. Per un elenco delle regioni disponibili, consulta Application Auto Scaling Regioni ed endpoint nel documento AWS General Reference. Un account AWS globale ti consente di lavorare con le risorse nella maggior parte delle regioni. Quando si utilizza Application Auto Scaling con risorse nelle regioni Cina, ricordare che è necessario disporre di un account AWS (Cina) 3
Application Auto Scaling Guida per l'utente Configurazione di AWS CLI separato. Inoltre, vi sono alcune differenze nel modo in cui Application Auto Scaling viene implementata. Per ulteriori informazioni sull'uso di Application Auto Scaling nelle regioni Cina, consulta Application Auto Scaling in Cina. Configurazione di AWS CLI AWS Command Line Interface (AWS CLI) è uno strumento per sviluppatori unificato per la gestione di servizi AWS, incluso Application Auto Scaling. Segui la procedura per scaricare e configurare AWS CLI. Per configurare AWS CLI 1. Scarica e configura AWS CLI. Per istruzioni, consulta i seguenti argomenti nella AWS Command Line Interface User Guide: • Installazione di AWS CLI • Configurazione di AWS CLI 2. Esegui il comando seguente per verificare che i comandi Application Auto Scaling per AWS CLI vengano installati. aws application-autoscaling help 3. Aggiungi un profilo denominato per l'utente amministratore nel file di configurazione di AWS CLI. Puoi utilizzare questo profilo durante l'esecuzione dei comandi AWS CLI. Per ulteriori informazioni sui profili denominati, consulta Profili denominati nella AWS Command Line Interface User Guide. aws configure --profile adminuser Quando richiesto, specifica la chiave di accesso AWS e la chiave di accesso segreta AWS di un utente IAM da utilizzare con Application Auto Scaling. aws_access_key_id = adminuser access key ID aws_secret_access_key = adminuser secret access key region = aws-region default output format = json Per un elenco delle regioni AWS disponibili, consulta Regioni ed endpoint Application Auto Scaling nel documento Amazon Web Services General Reference. 4. Per confermare che il profilo di AWS CLI è configurato correttamente, esegui il comando seguente in una finestra di comando: aws configure --profile adminuser Se il profilo è stato configurato correttamente, dovrebbe essere visualizzato un output simile al seguente. AWS Access Key ID [****************52FQ]: AWS Secret Access Key [****************xgyZ]: Default region name [us-east-1]: Default output format [json]: Dopo aver configurato un account AWS e la AWS CLI, puoi provare il tutorial successivo, in cui configuri le operazioni di dimensionamento pianificate di esempio. 4
Application Auto Scaling Guida per l'utente Nozioni di base per l'utilizzo di AWS CLI Nozioni di base per l'utilizzo di AWS CLI In questo tutorial, utilizzi l'AWS CLI per esplorare Application Auto Scaling. Prima di iniziare, assicurati di disporre di un account AWS e di aver configurato AWS CLI. Per ulteriori informazioni, consulta Configurazione (p. 3). In questo tutorial, crea operazioni pianificate per ridimensionare le risorse scalabili in base a una pianificazione. Con il dimensionamento pianificato, puoi specificare un'operazione una tantum o un'operazione ricorrente. Gli esercizi in questo tutorial presuppongono l'uso delle credenziali di amministratore (profilo adminuser) impostate in Configurazione di AWS CLI (p. 4). Se non si fornisce questo profilo, viene preso in considerazione il profilo predefinito. Nota che per creare, aggiornare, eliminare o elencare le risorse Application Auto Scaling hai bisogno delle autorizzazioni per eseguire l'operazione e l'autorizzazione per accedere alle risorse corrispondenti. Per ulteriori informazioni, consulta Identity and Access Management per Application Auto Scaling (p. 40). I comandi dell'interfaccia a riga di comando descritti in questo tutorial sono stati testati su Linux. Per usare i campioni con Microsoft Windows, cambia le interruzioni riga da barre rovesciate (\) a parentesi angolari (^). Per informazioni sull'uso di comandi dell'interfaccia a riga di comando su Windows, consulta Specifica dei valori di parametro per AWS CLI nella AWS Command Line Interface User Guide. Note Potranno essere addebitati i costi di AWS nell'ambito di questo tutorial. Monitora l'utilizzo del piano gratuito e assicurati di comprendere i costi di AWS pertinenti. Indice • Fase 1: registrazione del target scalabile (p. 5) • Fase 2: creazione di due operazioni pianificate (p. 6) • Fase 3: visualizzazione delle attività di dimensionamento (p. 8) • Fase 4: fasi successive (p. 10) • Fase 5: elimina (p. 10) Fase 1: registrazione del target scalabile Inizia registrando la risorsa come un target scalabile con Application Auto Scaling. Un target scalabile è una risorsa che Application Auto Scaling può incrementare o diminuire. Puoi usare qualsiasi risorsa che funziona con Application Auto Scaling, ma per questi esempi, supponiamo di voler ridimensionare una tabella DynamoDB chiamata my-table. Se non disponi già di una tabella DynamoDB, puoi crearne una ora (Fase 1: creazione di una tabella DynamoDB nella Amazon DynamoDB Developer Guide). Per usare un indice secondario globale DynamoDB o una risorsa per un servizio diverso, aggiorna gli esempi di conseguenza. Specifica i relativi spazi dei nomi in --service-namespace, la dimensione scalabile in --scalable-dimension e l'ID risorsa in --resource-id. Per un elenco di valori validi per ogni opzione, consulta register-scalable-target. Per registrare il target scalabile con Application Auto Scaling 1. (Facoltativo) Utilizzare il comando describe-scalable-targets per controllare se le risorse DynamoDB sono già registrate. Ciò consente di verificare se registrare la tabella my-table. Ad esempio, se in precedenza hai configurato la scalabilità automatica per questa tabella dalla console DynamoDB, potrebbe essere già registrata con Application Auto Scaling. aws application-autoscaling describe-scalable-targets \ 5
Application Auto Scaling Guida per l'utente Fase 2: creazione di due operazioni pianificate --service-namespace dynamodb \ --profile adminuser Se non esistono target scalabili, questa è la risposta. { "ScalableTargets": [] } 2. Utilizzare il comando register-scalable-target seguente per registrare o aggiornare la capacità in scrittura di una tabella DynamoDB denominata my-table. Impostare un capacità desiderata minima di 5 unità di capacità in scrittura e una capacità desiderata massima di 10 unità di capacità in scrittura. aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --min-capacity 5 --max-capacity 10 \ --profile adminuser Questo comando non restituisce alcun output se va a buon fine. Fase 2: creazione di due operazioni pianificate Application Auto Scaling consente di pianificare il tempo in cui si verifica un'operazione di dimensionamento. Specifica il target scalabile, la pianificazione e le capacità minima e massima. Al momento specificato, Application Auto Scaling aggiorna il valore minimo e massimo per il target scalabile. Se la sua capacità attuale è esterna a questo intervallo, questo comporta un'attività di dimensionamento. La pianificazione degli aggiornamenti alla capacità minima e massima è anche utile se decidi di creare una policy di dimensionamento. Una policy di dimensionamento consente di scalare dinamicamente le risorse in base all'utilizzo di risorse corrente. Un guardrail comune per una policy di dimensionamento è avere valori appropriati per le capacità minima e massima. Per questo esercizio, creiamo due operazioni una tantum per diminuire e incrementare. Per creare e visualizzare le operazioni pianificate 1. Per creare la prima operazione pianificata, utilizzare il seguente comando put-scheduled-action. Il comando at in --schedule pianifica l'operazione per l'esecuzione una tantum alla data e ora specificate in futuro. Le ore sono in formato 24 ore in UTC. Pianificare l'operazione da eseguire tra circa 5 minuti da ora. Alla data e ora specificati, Application Auto Scaling aggiorna i valori MinCapacity e MaxCapacity. Ipotizzando che la tabella disponga attualmente di 5 unità di capacità in scrittura, Application Auto Scaling esegue la riduzione fino a MinCapacity per inserire la tabella all'interno del nuovo intervallo desiderato di 15-20 unità di capacità in scrittura. aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-first-scheduled-action \ --schedule "at(2019-05-20T17:05:00)" \ --scalable-target-action MinCapacity=15,MaxCapacity=20 \ --profile adminuser 6
Application Auto Scaling Guida per l'utente Fase 2: creazione di due operazioni pianificate Questo comando non restituisce alcun output se va a buon fine. 2. Per creare la seconda operazione pianificata utilizzata da Application Auto Scaling per l'ingrandimento, utilizzare il comando put-scheduled-action seguente. Pianificare l'operazione affinché venga eseguita tra circa 10 minuti da ora. Alla data e l'ora specificati, Application Auto Scaling aggiorna i valori MinCapacity e MaxCapacity della tabella ed esegue la riduzione fino a MaxCapacity per ripristinare la tabella nell'intervallo desiderato originale di 5-10 unità di capacità in scrittura. aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-second-scheduled-action \ --schedule "at(2019-05-20T17:10:00)" \ --scalable-target-action MinCapacity=5,MaxCapacity=10 \ --profile adminuser 3. (Facoltativo) Ottenere un elenco di operazioni pianificate per lo spazio dei nomi del servizio specificato utilizzando il comando describe-scheduled-actions seguente. aws application-autoscaling describe-scheduled-actions \ --service-namespace dynamodb \ --profile adminuser Di seguito è riportato un output di esempio. { "ScheduledActions": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:35:00)", "ResourceId": "table/my-table", "CreationTime": 1561571888.361, "ScheduledActionARN": "arn:aws:autoscaling:us- east-1:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/ dynamodb/table/my-table:scheduledActionName/my-first-scheduled-action", "ScalableTargetAction": { "MinCapacity": 15, "MaxCapacity": 20 }, "ScheduledActionName": "my-first-scheduled-action", "ServiceNamespace": "dynamodb" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Schedule": "at(2019-05-20T18:40:00)", "ResourceId": "table/my-table", "CreationTime": 1561571946.021, "ScheduledActionARN": "arn:aws:autoscaling:us- east-1:123456789012:scheduledAction:2d36aa3b-cdf9-4565-b290-81db519b227d:resource/ dynamodb/table/my-table:scheduledActionName/my-second-scheduled-action", "ScalableTargetAction": { "MinCapacity": 5, "MaxCapacity": 10 }, "ScheduledActionName": "my-second-scheduled-action", "ServiceNamespace": "dynamodb" } ] 7
Application Auto Scaling Guida per l'utente Fase 3: visualizzazione delle attività di dimensionamento } Fase 3: visualizzazione delle attività di dimensionamento In questa fase è possibile visualizzare le attività di dimensionamento attivate dalle operazioni pianificate e quindi verificare che DynamoDB ha modificato la capacità di scrittura della tabella. Per visualizzare le attività di dimensionamento 1. Attendere il tempo scelto e verificare che le operazioni pianificate siano in funzione utilizzando il comando describe-scaling-activities seguente. aws application-autoscaling describe-scaling-activities \ --service-namespace dynamodb \ --profile adminuser Di seguito è riportato l'output di esempio per la prima operazione pianificata mentre questa è in corso. Le attività di dimensionamento sono ordinate in base alla data di creazione, con le attività di dimensionamento più recenti restituite per prime. { "ScalingActivities": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 15.", "ResourceId": "table/my-table", "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b", "StartTime": 1561574108.904, "ServiceNamespace": "dynamodb", "Cause": "minimum capacity was set to 15", "StatusMessage": "Successfully set write capacity units to 15. Waiting for change to be fulfilled by dynamodb.", "StatusCode": "InProgress" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 15 and max capacity to 20", "ResourceId": "table/my-table", "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2", "StartTime": 1561574108.512, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-first-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20", "StatusCode": "Successful" } ] } L'esempio seguente è l'output dopo l'esecuzione di entrambe le operazioni pianificate. { "ScalingActivities": [ { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 10.", 8
Application Auto Scaling Guida per l'utente Fase 3: visualizzazione delle attività di dimensionamento "ResourceId": "table/my-table", "ActivityId": "4d1308c0-bbcf-4514-a673-b0220ae38547", "StartTime": 1561574415.086, "ServiceNamespace": "dynamodb", "EndTime": 1561574449.51, "Cause": "maximum capacity was set to 10", "StatusMessage": "Successfully set write capacity units to 10. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 5 and max capacity to 10", "ResourceId": "table/my-table", "ActivityId": "f2b7847b-721d-4e01-8ef0-0c8d3bacc1c7", "StartTime": 1561574414.644, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-second-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 5 and max capacity to 10", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting write capacity units to 15.", "ResourceId": "table/my-table", "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b", "StartTime": 1561574108.904, "ServiceNamespace": "dynamodb", "EndTime": 1561574140.255, "Cause": "minimum capacity was set to 15", "StatusMessage": "Successfully set write capacity units to 15. Change successfully fulfilled by dynamodb.", "StatusCode": "Successful" }, { "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "Description": "Setting min capacity to 15 and max capacity to 20", "ResourceId": "table/my-table", "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2", "StartTime": 1561574108.512, "ServiceNamespace": "dynamodb", "Cause": "scheduled action name my-first-scheduled-action was triggered", "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20", "StatusCode": "Successful" } ] } 2. Dopo aver eseguito le operazioni pianificate, passare alla console DynamoDB e scegliere la tabella che si desidera utilizzare. Visualizzare Write capacity units (Unità di capacità in scrittura) nella scheda Capacity (Capacità). Dopo l'esecuzione della seconda operazione di dimensionamento, le unità di capacità in scrittura sono state scalate da 15 a 10. È anche possibile visualizzare queste informazioni tramite AWS CLI. Verificare la capacità di scrittura corrente della tabella utilizzando il comando DynamoDB describe- table. aws dynamodb describe-table --table-name my-table \ --query "Table.[TableName,TableStatus,ProvisionedThroughput]" \ --profile adminuser 9
Application Auto Scaling Guida per l'utente Fase 4: fasi successive Di seguito è riportato un output di esempio. [ "my-table", "ACTIVE", { "NumberOfDecreasesToday": 1, "WriteCapacityUnits": 10, "LastIncreaseDateTime": 1561574133.264, "ReadCapacityUnits": 5, "LastDecreaseDateTime": 1561574435.607 } ] Fase 4: fasi successive Dopo aver acquisito familiarità con Application Auto Scaling e con alcune delle sue caratteristiche, hai altre opzioni a disposizione: • Se desideri provare il dimensionamento su una pianificazione ricorrente, consulta l'esempio in Dimensionamento pianificato per Application Auto Scaling (p. 26). • Se desideri provare il dimensionamento dinamico in risposta a modifiche nell'utilizzo di risorse (ad esempio, utilizzando il parametro DynamoDBWriteCapacityUtilization), segui le fasi in Policy di dimensionamento del monitoraggio di target per Application Auto Scaling (p. 13). Fase 5: elimina Al termine dell'utilizzo degli esercizi sulle nozioni di base, puoi eliminare le risorse associate come segue. Per eliminare le operazioni pianificate Il comando delete-scheduled-action seguente elimina un'operazione pianificata specificata. Puoi ignorare questa fase se desideri mantenere l'operazione pianificata per l'utilizzo futuro. aws application-autoscaling delete-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --scheduled-action-name my-second-scheduled-action \ --profile adminuser Per annullare la registrazione di un obiettivo scalabile Utilizza il comando deregister-scalable-target seguente per annullare la registrazione del target scalabile. Se disponi di policy di dimensionamento create o di eventuali operazioni pianificate che non sono state ancora eliminate, vengono eliminate da questo comando. Puoi ignorare questa fase se desideri mantenere il target scalabile registrato per l'utilizzo futuro. aws application-autoscaling deregister-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --profile adminuser Per eliminare la tabella DynamoDB 10
Application Auto Scaling Guida per l'utente Fase 5: elimina Utilizza il seguente comando delete-table per eliminare la tabella utilizzata in questo tutorial. Puoi ignorare questa fase se desideri mantenere la tabella per un utilizzo futuro. aws dynamodb delete-table --table-name my-table \ --profile adminuser 11
Application Auto Scaling Guida per l'utente Nozioni di base su Application Auto Scaling Application Auto Scaling si integra con altri servizi AWS in modo da poter aggiungere funzionalità di scalabilità per soddisfare le esigenze dell'applicazione. La scalabilità automatica è una funzionalità facoltativa del servizio disabilitata per impostazione predefinita in quasi tutti i casi. Con Application Auto Scaling, esistono due modi per abilitare la scalabilità automatica: puoi utilizzare la console di servizio delle risorse che desideri ridimensionare e accedere all'API Application Auto Scaling a livello di codice o tramite AWS Command Line Interface (AWS CLI). Puoi utilizzare uno dei suddetti metodi o entrambi. Nella maggior parte dei casi, puoi ottenere lo stesso risultato utilizzando uno dei due metodi. Se stai iniziando a utilizzare Application Auto Scaling o stai esplorando la AWS Management Console, ti consigliamo di fare riferimento alla documentazione seguente per le configurazioni di esempio e per ulteriori informazioni su come il servizio si integra con Application Auto Scaling. Se un servizio non include la documentazione per la configurazione della scalabilità nella console, puoi utilizzare la AWS CLI o l'API per configurare la scalabilità. • Scalabilità automatica dei servizi nella Amazon Elastic Container Service Developer Guide • Scalabilità automatica per il parco istanze Spot nella Guida per l'utente Amazon EC2 • Utilizzo della scalabilità automatica in Amazon EMR nella Amazon EMR Management Guide • Scalabilità automatica del parco istanze per AppStream 2.0 nella Amazon AppStream 2.0 Administration Guide • Gestione automatica della capacità di throughput con l'Auto Scaling di DynamoDB nella Amazon DynamoDB Developer Guide • Utilizzo dell'Auto Scaling Amazon Aurora con le repliche Aurora nella Amazon RDS User Guide • Scalabilità automatica dei modelli Amazon SageMaker nella Amazon SageMaker Developer Guide • Dimensionamento automatico con gli endpoint nella Guida per gli sviluppatori di Amazon Comprehend • Gestione della concorrenza per una funzione Lambda nella Guida per gli sviluppatori di AWS Lambda • Managing Amazon Keyspaces Throughput Capacity with Application Auto Scaling (Gestione della capacità di throughput di Amazon Keyspaces con il ridimensionamento automatico delle applicazioni) nella Amazon Keyspaces (for Apache Cassandra) Developer Guide Questa guida utente mostra come lavorare con l'API Application Auto Scaling utilizzando la AWS CLI. Per iniziare, completare gli esercizi in Nozioni di base per l'utilizzo di AWS CLI (p. 5). In questo tutorial, ti mostriamo come utilizzare la AWS CLI per accedere in Application Auto Scaling come utente per la prima volta. Apprenderai i passaggi di base per configurare la scalabilità in modo che la tabella DynamoDB scali in orari pianificati. Abbiamo scelto di utilizzare una tabella DynamoDB come base per il tutorial perché DynamoDB è disponibile nella maggior parte delle regioni, ma puoi utilizzare qualsiasi servizio supportato con il quale hai già confidenza. 12
Application Auto Scaling Guida per l'utente Considerazioni Policy di dimensionamento del monitoraggio di target per Application Auto Scaling Con le policy di dimensionamento di monitoraggio del target, è possibile selezionare un parametro e impostare un valore di destinazione. Application Auto Scaling crea e gestisce gli allarmi CloudWatch che attivano la policy di dimensionamento e calcola il dimensionamento adeguamento in base alla metrica e il valore di destinazione. La policy di dimensionamento aggiunge o rimuove la capacità in base alle necessità, per mantenere il parametro al valore di destinazione specificato o vicino a esso. Oltre a mantenere il parametro vicino al valore di destinazione, una policy di dimensionamento del monitoraggio di destinazione si adatta anche alle modifiche del parametro dovute a un carico di lavoro mutevole È possibile avere una o più policy di dimensionamento di monitoraggio dei target, una o più policy di dimensionamento per fasi o entrambi. Application Auto Scaling esegue il dimensionamento in base alla policy che consente la maggiore capacità di riduzione e incremento. Ciò offre maggiore flessibilità per coprire scenari diversi e garantisce che vi sia sempre capacità sufficiente per elaborare i carichi di lavoro delle applicazioni. Limiti • Le policy di dimensionamento per il monitoraggio delle destinazioni non sono supportate per Amazon EMR. • Non è possibile utilizzare le operazioni API RegisterScalableTarget o PutScalingPolicy per aggiornare un piano di dimensionamento AWS Auto Scaling. Per informazioni sulla console AWS Auto Scaling, CLI o le operazioni API, consulta la documentazione AWS Auto Scaling. • Puoi utilizzare Application Auto Scaling per applicare una policy di dimensionamento di monitoraggio dei target in base a un parametro personalizzato CloudWatch o predefinito. Non tutti i servizi consentono, tuttavia, di gestire i parametri personalizzati tramite la console. Per vedere se un servizio supporta i parametri personalizzati nella console, consulta la documentazione per tale servizio. Considerazioni Tieni presente le seguenti considerazioni: • Non tutti i parametri funzionano per il monitoraggio della destinazione. Questo può essere importante se si sta specificando un parametro personalizzato. Il parametro deve essere un parametro di utilizzo valido e deve descrivere il livello di occupazione di un target scalabile. Il valore del parametro deve aumentare o diminuire in modo proporzionale alla capacità del target scalabile in modo che i dati del parametro possano essere utilizzati per eseguire il dimensionamento proporzionale del target scalabile. • Laddove possibile, dovresti dimensionare sui parametri con una frequenza di 1 minuto in quanto ciò garantisce una risposta più rapida alle variazioni di utilizzo. • Una policy di dimensionamento di monitoraggio obiettivi presuppone che essa debba eseguire un dimensionamento orizzontale quando il parametro specificato supera il valore di destinazione. Non puoi utilizzare una policy di dimensionamento di monitoraggio obiettivi per il dimensionamento orizzontale quando il parametro specificato è inferiore al valore di destinazione. • Una policy di dimensionamento di monitoraggio obiettivi non esegue il dimensionamento quando il parametro specificato non dispone di dati sufficienti, a causa, ad esempio, di un problema di connettività 13
Application Auto Scaling Guida per l'utente Periodo di attesa della rete. Non esegue la scalabilità in quanto la carenza di dati non viene interpretata come basso utilizzo. • Potrebbero esserci delle differenze tra il valore di destinazione e i punti di dati dei parametri reali. Ciò avviene perché Application Auto Scaling agisce sempre con prudenza, arrotondando per eccesso o per difetto quando determina la capacità di aggiungere o rimuovere. In questo modo si impedisce l'aggiunta di capacità insufficiente o la rimozione di capacità eccessiva. Tuttavia, per un obiettivo scalabile con piccole capacità, i punti di dati dei parametri reali potrebbero sembrare lontani dal valore di destinazione. • Per un obiettivo scalabile con maggiori capacità, l'aggiunta o la rimozione di capacità fa sì che vi sia un intervallo minore tra il valore di destinazione e i punti di dati dei parametri reali. • Per garantire la disponibilità delle applicazioni, Application Auto Scaling aumenta in proporzione al parametro il più veloce possibile, ma si riduce in modo più graduale. • È possibile avere più policy di dimensionamento del monitoraggio di target per un target scalabile, purché ciascuna di esse utilizzi un parametro diverso. L'intenzione di Application Auto Scaling è sempre quella di assegnare la priorità alla disponibilità, quindi il suo comportamento varia a seconda che le policy di monitoraggio dei target siano pronte per l'aumento o la riduzione. L'obiettivo scalabile viene aumentato se una qualsiasi delle policy di monitoraggio dei target è pronta per l'aumento e viene ridotto solo se tutte le policy di monitoraggio dei target (con la porzione di riduzione abilitata) sono pronte per essere ridotte. • È inoltre possibile disabilitare la porzione di riduzione di una policy di dimensionamento del monitoraggio di target. Ciò offre la flessibilità di utilizzare un metodo diverso per la riduzione rispetto a quello utilizzato per l'incremento. Ad esempio, è possibile utilizzare un altro tipo di policy di dimensionamento per il dimensionamento verticale e utilizzare una policy di dimensionamento del monitoraggio obiettivi per il dimensionamento orizzontale. • Non modificare o eliminare gli allarmi CloudWatch configurati per la policy di dimensionamento di monitoraggio dei target. Gli allarmi CloudWatch che sono associati alle policy di dimensionamento di monitoraggio dei target vengono eliminati automaticamente quando si elimina la policy di dimensionamento. Periodo di attesa Il tempo di attesa per rendere effettiva una precedente attività di dimensionamento viene chiamato periodo di attesa. Con le policy di dimensionamento del monitoraggio di destinazione, esistono due tipi di periodi di attesa: • Con il periodo di attesa di incremento, l'intenzione è di dimensionare in modo continuo (ma non eccessivamente). Dopo che Application Auto Scaling ha eseguito correttamente l'incremento utilizzando una policy di dimensionamento del monitoraggio della destinazione, inizia a calcolare il periodo di attesa. Mentre è attivo il periodo di attesa di incremento, la capacità aggiunta dall'attività di incremento iniziale viene calcolata come parte della capacità desiderata per il successivo evento di incremento. • Con il periodo attesa di riduzione, l'intenzione è di ridurre in modo conservativo per proteggere la disponibilità dell'applicazione, per cui le attività di riduzione vengo bloccate fino alla scadenza del periodo di attesa. Tuttavia, se un altro allarme attiva un'attività di incremento durante il periodo di attesa Application Auto Scaling incrementa immediatamente la destinazione. In questo caso, il periodo di attesa di riduzione si interrompe e non viene completato. Ogni periodo di attesa viene misurato in secondi e si applica solo alle attività di dimensionamento correlate alle policy. Durante un periodo di attesa, quando un'operazione pianificata inizia all'ora pianificata, può attivare immediatamente un'attività di dimensionamento senza attendere la scadenza del periodo di attesa. È possibile iniziare con i valori predefiniti, che possono essere poi ottimizzati. Ad esempio, potrebbe essere necessario aumentare un periodo di attesa per evitare che la policy di dimensionamento del monitoraggio di destinazione sia troppo aggressiva rispetto alle modifiche che si verificano in brevi periodi di tempo. Per i valori predefiniti, consulta TargetTrackingScalingPolicyConfiguration nella Application Auto Scaling API Reference. 14
Application Auto Scaling Guida per l'utente Supporto della disponibilità delle applicazioni durante periodi di utilizzo elevato Supporto della disponibilità delle applicazioni durante periodi di utilizzo elevato Una policy di dimensionamento del monitoraggio della destinazione è più aggressiva nell'aggiunta di capacità quando l'utilizzo aumenta, rispetto alla rimozione della capacità quando l'utilizzo diminuisce. Ad esempio, se il parametro specificato della policy raggiunge il valore di destinazione, la policy presuppone che l'applicazione sia già caricata in modo elevato. Quindi risponde aggiungendo capacità proporzionale al valore del parametro il più velocemente possibile. Più alto è il parametro, maggiore è la capacità aggiunta. Quando il parametro scende al di sotto del valore di destinazione, la policy prevede che l'utilizzo aumenterà di nuovo. Quindi rallenta il dimensionamento rimuovendo la capacità solo quando l'utilizzo supera una soglia che è del 20% inferiore al valore di destinazione. Lo scopo di questo comportamento più conservativo è garantire che la rimozione della capacità avvenga solo quando l'applicazione non riscontra più una domanda allo stesso livello elevato come in precedenza. Questo è attualmente il comportamento predefinito per tutti le policy di dimensionamento del monitoraggio della destinazione (anche se il comportamento potrebbe cambiare in futuro). Per i carichi di lavoro di natura ciclica, è inoltre possibile automatizzare le modifiche di capacità in una pianificazione utilizzando il dimensionamento pianificato. Per ogni operazione programmata, è possibile definire un nuovo valore di capacità minima e un nuovo valore di capacità massima. Questi valori formano i limiti della policy di dimensionamento. La combinazione di dimensionamento pianificato e di monitoraggio della destinazione può contribuire a ridurre l'impatto di un forte aumento dei livelli di utilizzo, quando la capacità è immediatamente necessaria. Registrare un target scalabile Prima di creare una policy di dimensionamento, è necessario registrare il target scalabile. Utilizza il comando register-scalable-target per registrare un nuovo target scalabile. L'esempio seguente registra una richiesta di parco istanze Spot con Application Auto Scaling. Application Auto Scaling è in grado di ridimensionare il numero di istanze nel parco istanze Spot fino a un minimo di 2 istanze e un massimo di 10. aws application-autoscaling register-scalable-target --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --min-capacity 2 --max-capacity 10 Note Quando configuri le policy di dimensionamento nella console, la risorsa viene registrata automaticamente come target scalabile con Application Auto Scaling. Per ulteriori informazioni, consulta la documentazione nella sezione Nozioni di base su Application Auto Scaling (p. 12). Creazione di una policy di dimensionamento del monitoraggio di target È possibile creare policy di dimensionamento di monitoraggio target che indicano al Application Auto Scaling di eseguire la scalabilità orizzontale o verticale quando cambia il carico sull'applicazione. 15
Application Auto Scaling Guida per l'utente Creazione di una policy di dimensionamento del monitoraggio di target Di seguito è riportato un esempio di configurazione del monitoraggio di target che mantiene l'utilizzo medio della CPU al 40 percento. Salva questa configurazione in un file denominato config.json. { "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" } } In alternativa, è possibile personalizzare il parametro utilizzato per il dimensionamento creando una specifica di parametro personalizzata e aggiungendo i valori per ciascun parametro da CloudWatch. Di seguito è riportato un esempio di configurazione del monitoraggio di target che mantiene l'utilizzo medio del parametro specificato al 40 percento. { "TargetValue":40.0, "CustomizedMetricSpecification":{ "MetricName":"MyUtilizationMetric", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"Percent" } } Utilizza il seguente comando put-scaling-policy insieme al file config.json che hai creato per generare una policy di dimensionamento denominata cpu40-target-tracking-scaling-policy: aws application-autoscaling put-scaling-policy --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --policy-name cpu40-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json Di seguito è riportato un output di esempio. Contiene gli ARN e i nomi dei due allarmi CloudWatch creati per tuo conto. { "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu40-target- tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot- fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a- a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce- aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking- spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63- a812-6c67aaf2910d", 16
Puoi anche leggere