Application Auto Scaling - Guida per l'utente - Amazon.com

Pagina creata da Dario Scala
 
CONTINUA A LEGGERE
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