

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

# Controlli dello stato delle applicazioni
<a name="application-status-checks"></a>

I controlli dello stato delle applicazioni ti aiutano a monitorare le prestazioni e lo stato delle applicazioni in esecuzione su Amazon EC2. Con i controlli dello stato delle applicazioni, puoi rilevare e rispondere ai problemi di salute delle applicazioni monitorando le applicazioni attraverso percorsi e porte configurabili. Ad esempio, è possibile utilizzare i controlli dello stato delle applicazioni per confermare che il server Web è in ascolto sulla porta prevista e accetta nuove connessioni.

I controlli dello stato delle applicazioni monitorano le risposte HTTP e HTTPS delle applicazioni su percorsi e porte configurabili. Vengono eseguiti ogni 60 secondi e si integrano con Amazon EC2 Auto Scaling, in modo da poter sostituire automaticamente le istanze le cui applicazioni sono danneggiate.

**Topics**
+ [Come funzionano i controlli dello stato delle applicazioni](#how-application-status-checks-work)
+ [Inizia con i controlli dello stato delle applicazioni](#get-started-application-status-checks)
+ [Opzioni di configurazione](#asc-configuration-options)
+ [Impostazioni predefinite](#asc-default-settings)
+ [Integrazione con Amazon EC2 Auto Scaling](#asc-auto-scaling-integration)
+ [Gestione della distribuzione, dell'applicazione di patch sul posto e delle sostituzioni](#asc-handling-deployment-and-patching)
+ [Test di una nuova verifica dello stato dell'applicazione](#asc-testing-a-new-check)
+ [Rete avanzata](#asc-advanced-networking)
+ [Risoluzione dei problemi](#asc-troubleshooting)
+ [Monitora i controlli sullo stato delle applicazioni](#asc-monitoring)
+ [Sicurezza e autorizzazioni](#asc-security-and-permissions)
+ [Prezzi](#asc-pricing)
+ [Quote](#asc-quotas)

## Come funzionano i controlli dello stato delle applicazioni
<a name="how-application-status-checks-work"></a>

I controlli dello stato delle applicazioni inviano richieste HTTP o HTTPS a un endpoint in ascolto su una porta di rete dell'istanza ogni 60 secondi. AWS confronta il codice di risposta con il matcher del codice di stato configurato. Il controllo viene contrassegnato come compromesso dopo un numero di richieste consecutive non riuscite e viene ripristinato dopo un numero di richieste consecutive riuscite. Entrambi i conteggi sono predefiniti e sono configurabili. Per ulteriori informazioni, consulta [Soglie di valutazione](#asc-config-evaluation).

**Nota**  
I controlli sullo stato dell'applicazione inviano la richiesta di controllo dello stato di salute. HTTP/2  
Il controllo del protocollo HTTPS non convalida il certificato del server.

Durante un riavvio, i controlli dello stato dell'applicazione segnalano un errore fino a quando l'istanza non diventa nuovamente disponibile perché l'applicazione non è in grado di rispondere alle richieste di controllo dello stato durante il riavvio del sistema operativo.

### Architettura di rete
<a name="asc-network-architecture"></a>

I controlli sullo stato delle applicazioni provengono dal servizio di controllo dello stato delle applicazioni di Amazon EC2. Per raggiungere le tue istanze, AWS crea un'interfaccia di rete elastica gestita (ENI) nel tuo VPC. AWS crea un ENI per combinazione di sottorete di origine e gruppo di sicurezza a cui sono associate istanze. AWS crea l'ENI gestito quando un controllo dello stato dell'applicazione richiede per la prima volta tale combinazione e lo rimuove quando nessun controllo dello stato dell'applicazione rimanente lo richiede. L'ENI gestito non viene conteggiato nel limite ENI dell'istanza, ma viene conteggiato nel limite globale di ENI per VPC.

I controlli sullo stato delle applicazioni raggiungono le tue istanze da un punto di vista privato all'interno del tuo VPC. L'ambito descrive l'origine del controllo, non una proprietà dell'indirizzo IP dell'istanza. AWS crea l'ENI gestito in una sottorete all'interno del tuo VPC e raggiunge l'istanza tramite il percorso di rete privato.

Il traffico di controllo dello stato proviene da istanze Amazon EC2 AWS gestite nella stessa zona di disponibilità dell'istanza di destinazione (o nella zona di disponibilità principale per le destinazioni della zona locale), viaggia sulla rete AWS interna e non attraversa la rete Internet pubblica. Per ulteriori informazioni, consulta le domande frequenti su [ Amazon VPC sul sito Web di Amazon Web Services. ](https://aws.amazon.com/vpc/faqs/)

### AWS percorsi di rete gestiti e gestiti dal cliente
<a name="asc-onboarding-modes"></a>

I controlli dello stato delle applicazioni supportano due modalità di onboarding che determinano chi seleziona le sottoreti e i gruppi di sicurezza di origine per il controllo dello stato ENI e le sottoreti e i gruppi di sicurezza di destinazione per le istanze di destinazione.

AWS percorsi di rete gestiti  
AWS seleziona le sottoreti e i gruppi di sicurezza di origine per il controllo dello stato dell'ENI e le sottoreti e i gruppi di sicurezza di destinazione per le istanze di destinazione.

Customer-managed percorsi di rete  
Si specificano le sottoreti e i gruppi di sicurezza di origine per il controllo dello stato dell'ENI e le sottoreti e i gruppi di sicurezza di destinazione per le istanze di destinazione.  
Utilizza i percorsi di rete gestiti dal cliente quando devi controllare da quali sottoreti e gruppi di sicurezza proviene il traffico di controllo dello stato, ad esempio quando il tuo VPC è soggetto a rigide segmentazioni di rete, regole firewall o requisiti di conformità che limitano le fonti che possono raggiungere gli endpoint delle applicazioni.

Puoi scegliere la modalità includendo o omettendo il parametro nel comando create. `--health-check-paths` Se si omette il `--health-check-paths` parametro, AWS vengono selezionate le sottoreti e i gruppi di sicurezza di origine e destinazione (AWS percorsi di rete gestiti). Se includi il `--health-check-paths` parametro, li gestisci (percorsi di rete gestiti dal cliente).

### Versione IP
<a name="asc-ipv4-ipv6"></a>

Ogni controllo dello stato dell'applicazione è associato a una singola versione IP (IPv4 o IPv6). Per monitorare un'istanza sia su IPv4 che su IPv6, create due controlli di stato dell'applicazione separati e associateli entrambi all'istanza.

I controlli arrivano all'istanza dall'interno del tuo VPC sia per IPv4 che per IPv6.

### Controlla i valori di stato
<a name="asc-check-status-values"></a>

Ogni singolo controllo riporta uno dei seguenti stati:
+ `passed`: il controllo è stato completato con successo
+ `failed`: il controllo non è riuscito. La risposta include il codice di stato HTTP restituito dall'applicazione. Per indicazioni sull'interpretazione e la correzione, vedere[Risoluzione dei problemi](#asc-troubleshooting).
+ `initializing`: il controllo non ha ancora completato la sua prima valutazione
+ `insufficient-data`: il controllo non ha ricevuto dati sufficienti per determinare un risultato
+ `not-applicable`: il controllo non è associato all'istanza

Lo stato complessivo dell'applicazione riportato per l'istanza aggrega tutti i risultati dei singoli controlli. Lo stato complessivo è uno dei seguenti:
+ `ok`: tutti i controlli sono stati superati
+ `impaired`: uno o più controlli non riusciti
+ `initializing`: uno o più controlli non hanno ancora completato la prima valutazione
+ `insufficient-data`: uno o più controlli riportano dati insufficienti
+ `not-applicable`: tutti i controlli sullo stato delle applicazioni associati sono esclusi dall'aggregazione
+ `suppressed`: la valutazione del controllo dello stato dell'applicazione viene soppressa per l'istanza

### Aggregazione
<a name="asc-aggregation"></a>

È possibile contrassegnare ogni controllo dello stato dell'applicazione come incluso o escluso dallo stato generale dell'istanza. Per impostazione predefinita, un segno di spunta è`included`.

`included`  
Il controllo contribuisce allo stato generale dell'istanza e Amazon EC2 Auto Scaling lo utilizza.

`excluded`  
Il controllo riporta lo stato individuale ma non contribuisce allo stato generale dell'istanza e Amazon EC2 Auto Scaling non lo utilizza. Usa questa impostazione per convalidare un nuovo check-in in produzione senza influire sullo stato generale o attivare le sostituzioni di Amazon EC2 Auto Scaling. Questo è il flusso di lavoro consigliato quando si aggiunge un assegno a un carico di lavoro di produzione esistente; vedi. [Test di una nuova verifica dello stato dell'applicazione](#asc-testing-a-new-check)

## Inizia con i controlli dello stato delle applicazioni
<a name="get-started-application-status-checks"></a>

**Prerequisiti**  
Prima di creare un controllo dello stato dell'applicazione, assicurati di avere quanto segue:
+ Un VPC con le istanze che desideri monitorare.
+ Un endpoint applicativo su ogni istanza in grado di rispondere alle richieste HTTP o HTTPS sulla porta e sul percorso HTTP che configurerai.
+ Un gruppo di sicurezza su ogni istanza di destinazione che consente il traffico in entrata sulla porta di controllo proveniente dal gruppo di sicurezza di origine utilizzato dal controllo dello stato dell'applicazione. Per informazioni, consulta [Sicurezza e autorizzazioni](#asc-security-and-permissions).

**Fase 1: configurazione dell'applicazione**  
Configura l'endpoint dell'applicazione per rispondere alle richieste HTTP o HTTPS sulla porta e sul percorso HTTP che specificherai al momento della creazione del controllo. Restituisci un codice di risposta incluso nel codice di stato per indicare che l'applicazione è integra.

Assicurati che il gruppo di sicurezza dell'istanza di destinazione consenta il traffico in entrata sulla porta di controllo proveniente dal gruppo di sicurezza di origine utilizzato dal controllo dello stato dell'applicazione. Per i percorsi di rete gestiti, AWS fornisce il gruppo di sicurezza di origine al momento della creazione del controllo. Per i percorsi di rete gestiti dal cliente, si specifica il gruppo di sicurezza di origine al momento della creazione del controllo.

**Passaggio 2: creare una definizione di controllo**  
Usa la AWS CLI per creare un controllo dello stato dell'applicazione.

------
#### [ AWS CLI ]

Per utilizzare percorsi di rete AWS gestiti, omettete il `--health-check-paths` parametro e lasciate AWS selezionare le sottoreti e i gruppi di sicurezza di origine e destinazione.

```
aws ec2 create-application-status-check \
        --protocol https \
        --port 443 \
        --path "/health" \
        --status-code-matcher "200"
```

Per utilizzare percorsi di rete gestiti dal cliente, includete il parametro. `--health-check-paths` Ogni percorso di controllo dello stato contiene un'origine (sottorete e gruppo di sicurezza per il controllo dello stato ENI) e una o più destinazioni (sottorete e gruppo di sicurezza per le istanze di destinazione).

```
aws ec2 create-application-status-check \
        --protocol https \
        --port 443 \
        --path "/health" \
        --status-code-matcher "200" \
        --health-check-paths '[{"Source":{"SubnetId":"subnet-111","SecurityGroupId":"sg-aaa"},"Destinations":[{"SubnetId":"subnet-222","SecurityGroupId":"sg-bbb"}]}]'
```

------

**Fase 3: Associare il controllo alle istanze**  
Associa il controllo alle istanze che desideri monitorare, per ID dell'istanza o per tag.

------
#### [ AWS CLI ]

Per ID dell'istanza:

```
aws ec2 associate-application-status-check \
        --application-status-check-id asc-1234567890abcdef0 \
        --instance-ids i-0123456789abcdef0
```

Per tag:

```
aws ec2 associate-application-status-check \
        --application-status-check-id asc-1234567890abcdef0 \
        --target-tag-associations Key=Environment,Value=production
```

Per associarti a tutte le istanze di un gruppo Auto Scaling, usa il tag di `aws:autoscaling:groupName` sistema:

```
aws ec2 associate-application-status-check \
        --application-status-check-id asc-1234567890abcdef0 \
        --target-tag-associations Key=aws:autoscaling:groupName,Value={{my-asg}}
```

------

Le operazioni di associazione e dissociazione restituiscono risultati positivi e negativi per istanza. Se alcune istanze non possono essere associate (ad esempio, perché il controllo è già associato), tali istanze vengono visualizzate nei risultati non riusciti con un motivo.

**Fase 4: Visualizza i risultati**  
Visualizza lo stato di integrità dell'applicazione per istanza.

------
#### [ AWS CLI ]

```
aws ec2 describe-application-status \
        --instance-ids i-0123456789abcdef0
```

La risposta include lo stato generale dell'applicazione e, per ogni controllo associato, lo stato del controllo e, per i controlli non riusciti, il codice di stato HTTP restituito dall'applicazione.

Risposta di esempio:

```
{
        "ApplicationStatuses": [
            {
                "InstanceId": "i-0123456789abcdef0",
                "ApplicationStatus": {
                    "Status": "ok",
                    "Details": [
                        {
                            "ApplicationStatusCheckId": "asc-1234567890abcdef0",
                            "Status": "passed",
                            "Reason": {
                                "Code": "ResponseCodeMatched",
                                "StatusCode": 200,
                                "Protocol": "HTTP"
                            }
                        }
                    ]
                }
            }
        ]
    }
```

Per visualizzare le definizioni dei controlli (non lo stato per istanza), usa [ describe-application-status-checks. ](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-application-status-checks.html) Questo comando restituisce la configurazione dei controlli di stato dell'applicazione, incluse le impostazioni del protocollo, della porta, del percorso HTTP e del codice di stato.

------

## Opzioni di configurazione
<a name="asc-configuration-options"></a>

I controlli dello stato dell'applicazione accettano diversi parametri di configurazione. Questa sezione spiega i parametri in cui il comportamento non è evidente dal nome del parametro. Per l'elenco completo dei parametri e delle regole di convalida, consulta [ CreateApplicationStatusCheck ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateApplicationStatusCheck.html) e [ AssociateApplicationStatusCheck ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateApplicationStatusCheck.html) nella sezione * Amazon EC2 API Reference. *

### Soglie di valutazione
<a name="asc-config-evaluation"></a>

`FailureThreshold`  
Il numero di richieste consecutive non riuscite prima del controllo è contrassegnato come ridotto. Default: 2

`SuccessThreshold`  
Il numero di richieste consecutive riuscite prima del controllo viene nuovamente contrassegnato come integro. Default: 2

`Timeout`  
Il numero di secondi di attesa per una risposta prima che la richiesta venga registrata come non riuscita. Viene applicato come timeout forzato; se l'applicazione non risponde entro questa finestra, la richiesta viene registrata come un errore indipendentemente dall'eventuale risposta. Predefinito: 6. Intervallo valido: 1-30.

### Periodo di tolleranza all'avvio
<a name="asc-config-startup-grace"></a>

`InitializationGracePeriodSeconds`  
Il numero di secondi di attesa dopo l'avvio di un'istanza prima di AWS iniziare a valutare il controllo. Utilizzate questo parametro per dare alle applicazioni il tempo di iniziare ad ascoltare prima dell'inizio dei controlli. Se il periodo di tolleranza è troppo breve, Amazon EC2 Auto Scaling potrebbe sostituire nuove istanze prima che l'applicazione sia pronta. Predefinito: 300. Intervallo valido: da 1 a 600.

### Ambito IP
<a name="asc-config-ip-scope"></a>

`IpScope`  
I controlli sullo stato dell'applicazione utilizzano l'`private`ambito; il controllo viene eseguito dall'interno del tuo VPC. Per IPv4, corrisponde all'indirizzo IP privato dell'istanza. Per IPv6, AWS non classifica l'indirizzo come pubblico o privato; il controllo accetta qualsiasi indirizzo IPv6 e lo valuta dall'interno del VPC.

### Indice dei dispositivi
<a name="asc-config-device-index"></a>

`DeviceIndex`  
L'indice del dispositivo di rete sull'istanza che AWS viene valutato per il controllo dello stato. Modificalo quando il dispositivo di rete principale della tua istanza non è quello che desideri controllare. Impostazione predefinita: 0.

L'aggregazione, la versione IP e i percorsi di controllo dello stato (sottoreti di origine e destinazione e gruppi di sicurezza) sono trattati nelle rispettive sezioni precedenti di questa pagina.

## Impostazioni predefinite
<a name="asc-default-settings"></a>

Con i percorsi di rete AWS gestiti, i controlli dello stato delle applicazioni utilizzano le seguenti impostazioni predefinite.


| Impostazione | Predefinita | 
| --- | --- | 
| Intervallo di controllo | 60 secondi (fisso; non configurabile) | 
| Soglia di errore | 2 guasti consecutivi | 
| Soglia di successo | 2 successi consecutivi | 
| Timeout | 6 secondi | 
| Codice di stato corrispondente | 200 | 
| Percorso HTTP | / | 
| Versione IP | ipv4 | 
| Ambito IP | private | 
| Indice del dispositivo | 0 | 
| Periodo di tolleranza per l'inizializzazione | 300 secondi | 
| Aggregazione | incluso | 
| Sottoreti di origine e gruppi di sicurezza | Gestito da AWS | 

## Integrazione con Amazon EC2 Auto Scaling
<a name="asc-auto-scaling-integration"></a>

Amazon EC2 Auto Scaling termina e sostituisce automaticamente le istanze il cui stato complessivo dell'applicazione viene riportato`impaired`, purché il controllo sia incluso nell'aggregazione. Non è richiesta alcuna configurazione del gruppo Auto Scaling oltre all'associazione del controllo dello stato dell'applicazione alle istanze del gruppo.

Amazon EC2 Auto Scaling utilizza lo stato generale dell'istanza, non lo stato di controllo individuale. I controlli contrassegnati `excluded` non determinano le azioni di Amazon EC2 Auto Scaling. I controlli nello `suppressed` stato non determinano le azioni di Amazon EC2 Auto Scaling.

Utilizza il `InitializationGracePeriodSeconds` parametro sul controllo per consentire l'avvio di nuove istanze prima che inizino i controlli sullo stato dell'applicazione. Se il periodo di tolleranza è troppo breve, le nuove istanze potrebbero essere terminate e sostituite da Amazon EC2 Auto Scaling prima che l'applicazione sia pronta a servire il traffico.

Per ulteriori informazioni su come Amazon EC2 Auto Scaling utilizza i controlli di integrità, consulta [ i controlli dello stato delle istanze in un gruppo Auto Scaling ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) e [ Use application status checks with an Auto Scaling group nella Amazon EC2 Auto Scaling User Guide. ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/use-application-status-checks-auto-scaling-group.html) * *

## Gestione della distribuzione, dell'applicazione di patch sul posto e delle sostituzioni
<a name="asc-handling-deployment-and-patching"></a>

Le implementazioni, l'applicazione di patch sul posto e altre operazioni di manutenzione possono arrestare o riavviare temporaneamente l'applicazione. Durante questo periodo, i controlli sullo stato dell'applicazione segnalano un errore perché l'applicazione non è in grado di rispondere alle richieste di controllo dello stato. Se le istanze fanno parte di un gruppo Auto Scaling con controlli sullo stato delle applicazioni inclusi nell'aggregazione, Amazon EC2 Auto Scaling potrebbe terminare e sostituire queste istanze anche se è prevista l'interruzione.

### Opzione A: sopprimere il controllo
<a name="asc-option-a-suppress"></a>

Usa la soppressione per finestre di manutenzione limitate di cui conosci la durata. La soppressione viene applicata a livello di istanza. Specificate una durata o la omettete per sopprimere il controllo finché non disattivate la soppressione.

------
#### [ AWS CLI ]

```
aws ec2 enable-application-status-check-suppression \
        --instance-ids i-0123456789abcdef0 \
        --duration-seconds 3600
```

La risposta restituisce, per ogni istanza, quando è iniziata la soppressione e quando terminerà. È possibile un successo parziale; alcune istanze potrebbero non essere soppresse e apparire nella risposta con una motivazione.

Per riprendere i controlli prima della scadenza del periodo di soppressione:

```
aws ec2 disable-application-status-check-suppression \
        --instance-ids i-0123456789abcdef0
```

------

Quando viene soppressa, viene riportato lo stato generale dell'applicazione per l'istanza. `suppressed` Amazon EC2 Auto Scaling non agisce sulle istanze. `suppressed`

### Opzione B: escludi l'assegno dall'aggregazione
<a name="asc-option-b-exclude"></a>

Se desideri che il controllo continui a valutare e riportare il suo stato individuale ma non influenzi lo stato generale né attivi le azioni di Amazon EC2 Auto Scaling, imposta l'impostazione di aggregazione dell'assegno su. `excluded` Ciò è utile per scenari più duraturi, come l'implementazione di una nuova versione di controllo o la convalida di una modifica senza rischiare la sostituzione e per i casi in cui desideri che la telemetria continui senza impatto operativo.

Per ulteriori informazioni, consulta [Aggregazione](#asc-aggregation).

### Opzione C: dissociare il controllo
<a name="asc-option-c-disassociate"></a>

Usa la dissociazione per una rimozione più lunga o indefinita.

```
aws ec2 disassociate-application-status-check \
        --application-status-check-id asc-1234567890abcdef0 \
        --instance-ids i-0123456789abcdef0
```

Se l'hai associato tramite tag, rimuovi il tag dall'istanza da dissociare. Dopo la dissociazione, viene riportato lo stato generale dell'applicazione per l'istanza. `not-applicable`

### Guida all'implementazione
<a name="asc-deployment-guidance"></a>

Le implementazioni sono lo scenario di manutenzione più comune che richiede la soppressione. Usa la soppressione quando il tuo strumento di distribuzione ha un hook pre-distribuzione e un hook post-distribuzione in modo da poter sopprimere il controllo prima dell'inizio della distribuzione e disabilitare la soppressione al termine della distribuzione.

Lo schema generale è:

1. Nell'hook di pre-distribuzione, chiama [ enable-application-status-check-suppression ](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-application-status-check-suppression.html) per l'istanza, con una durata che copra la finestra di distribuzione prevista.

1. Esegui la distribuzione.

1. Nell'hook successivo alla distribuzione, chiama [https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-application-status-check-suppression.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-application-status-check-suppression.html) disable-application-status-check-suppression per l'istanza.

Se il tuo strumento di distribuzione non dispone di hook, attiva la soppressione dalla pipeline che richiama la distribuzione. CI/CD 

## Test di una nuova verifica dello stato dell'applicazione
<a name="asc-testing-a-new-check"></a>

È possibile convalidare un nuovo controllo dello stato dell'applicazione in produzione prima che inizi a contribuire al monitoraggio a livello di istanza. Imposta l'impostazione di aggregazione su `excluded` quando crei il controllo, quindi conferma che riporti lo stato previsto e i codici di risposta HTTP. Quando sei pronto, modifica l'impostazione `included` in modo che il controllo contribuisca allo stato generale dell'istanza e si integri con Amazon EC2 Auto Scaling.

1. Crea il controllo con l'impostazione di aggregazione impostata su. `excluded`

   ```
   aws ec2 create-application-status-check \
           --protocol https \
           --port 443 \
           --path "/health" \
           --status-code-matcher "200" \
           --aggregation excluded
   ```

1. Associa il controllo a un'istanza di test o a un sottoinsieme del tuo parco di produzione.

1. Attendi almeno due intervalli di controllo (circa due minuti) per consentire al controllo di completare una valutazione iniziale.

1. Utilizza [ describe-application-status ](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-application-status.html) per verificare che il controllo riporti lo stato previsto e il codice di risposta HTTP.

   ```
   aws ec2 describe-application-status \
           --instance-ids i-0123456789abcdef0
   ```

1. Se il controllo viene riportato come previsto, aggiorna l'impostazione di aggregazione per `included` fare in modo che il controllo contribuisca allo stato generale dell'istanza e favorisca le azioni di Amazon EC2 Auto Scaling.

   ```
   aws ec2 modify-application-status-check \
           --application-status-check-id asc-1234567890abcdef0 \
           --aggregation included
   ```

## Rete avanzata
<a name="asc-advanced-networking"></a>

I controlli dello stato dell'applicazione provengono da un ENI gestito nella sottorete di origine e nel gruppo di sicurezza specificati dall'utente (o che AWS seleziona automaticamente). Per i carichi di lavoro che richiedono una disponibilità più elevata rispetto a quella fornita da una configurazione a fonte singola o per i carichi di lavoro eseguiti in zone locali o avamposti, considera i seguenti modelli.

### Local Zones
<a name="asc-local-zones"></a>

Per le istanze eseguite nelle zone AWS locali, l'interfaccia di rete elastica gestita (ENI) risiede nella AWS regione principale, non nella zona locale. Il traffico di Health Check tra la regione madre e le istanze della zona locale attraversa il collegamento del servizio Local Zone, il che potrebbe comportare costi aggiuntivi per il trasferimento dei dati.

## Risoluzione dei problemi
<a name="asc-troubleshooting"></a>

Se il controllo dello stato dell'applicazione risulta compromesso ma prevedi che l'applicazione sia integra, verifica quanto segue:

1. *Raggiungibilità dell'istanza. * Conferma che i controlli dello stato dell'istanza e del sistema dell'istanza lo siano`ok`.

1. *Regola in entrata del gruppo di sicurezza. * Il gruppo di sicurezza dell'istanza di destinazione deve consentire il traffico in entrata sulla porta di controllo dal gruppo di sicurezza di origine utilizzato dal controllo dello stato dell'applicazione. Per i percorsi di rete AWS gestiti, AWS fornisce il gruppo di sicurezza di origine; per i percorsi di rete gestiti dal cliente, utilizza il gruppo di sicurezza specificato come origine.

1. *Firewall host. * Qualsiasi firewall a livello di host (iptables, Windows Firewall, firewall host di terze parti) sull'istanza deve consentire il traffico in entrata sulla porta di controllo.

1. *Endpoint dell'applicazione. * L'applicazione deve essere in ascolto sulla porta e sul percorso configurati. Conferma con una richiesta locale dall'istanza (`curl http://localhost:PORT/PATH`).

1. *Mancata corrispondenza del protocollo. * Se il controllo è configurato come HTTPS ma l'endpoint serve solo HTTP (o viceversa), tutte le chiamate avranno esito negativo.

1. *Matcher del codice di stato. * Verifica che il codice di risposta effettivo della tua applicazione sia incluso nel codificatore del codice di stato configurato.

1. *Percorso di rete. * Se hai configurato percorsi di rete gestiti dal cliente, verifica che la sottorete di origine e il gruppo di sicurezza siano connessi alla sottorete di destinazione. Usa [ VPC Reachability ](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) Analyzer per tracciare il percorso di rete.

1. *Quota ENI disponibile. * AWS crea un'interfaccia di rete elastica gestita (ENI) nel tuo account per ogni combinazione di sottorete di origine e gruppo di sicurezza. Verifica che il tuo account abbia un ENI disponibile nella sua quota per il VPC. Se il tuo account ha raggiunto la quota ENI per VPC, AWS non può creare l'ENI gestito e il controllo non può essere eseguito. Per ulteriori informazioni, consulta la pagina relativa alle [quote di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html).

### Codici dei motivi
<a name="asc-troubleshoot-reason-codes"></a>

La [ risposta ](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-application-status.html) describe-application-status include un motivo per ogni controllo. Il motivo contiene il codice di stato HTTP restituito dall'applicazione (sotto forma di numero), insieme al protocollo utilizzato per il controllo. Viene contrassegnato un segno di spunta `passed` se il codice di stato restituito è incluso nel codificatore del codice di stato e in `failed` caso contrario.

Il motivo include anche un codice motivo e, per HTTP-level i risultati, il protocollo e il codice di stato HTTP restituito. Il motivo contiene i seguenti campi:

`Code`  
Il codice del motivo del risultato del controllo dello stato della domanda. Uno dei seguenti valori:  
+ `ResponseCodeMatched`: il codice di stato HTTP restituito dal controllo di integrità corrisponde a quello configurato`StatusCodeMatcher`.
+ `ResponseCodeMismatch`: il codice di stato HTTP restituito dal controllo di integrità non corrispondeva a quello configurato`StatusCodeMatcher`.
+ `ConnectionTimeout`: la connessione alla destinazione è scaduta.
+ `ResponseTimeout`: il controllo sanitario è scaduto in attesa di una risposta dal bersaglio.
+ `ConnectionRefused`: il bersaglio ha rifiutato la connessione per il controllo dello stato di salute.
+ `ConnectionReset`: la connessione di controllo dello stato è stata ripristinata prima della ricezione di una risposta.
Per `ResponseCodeMatched` e`ResponseCodeMismatch`, il `StatusCode` campo contiene il codice di stato HTTP restituito e il `Protocol` campo contiene il protocollo utilizzato per il controllo dello stato. Per gli errori di connessione`ConnectionTimeout`, ad esempio`ResponseTimeout`,`ConnectionRefused`, e`ConnectionReset`, i `Protocol` campi `StatusCode` and non sono presenti.

`Protocol`  
Il protocollo utilizzato per il controllo dello stato di salute. Uno dei `HTTP` nostri`HTTPS`.

`StatusCode`  
Il codice di stato HTTP restituito dal controllo dello stato.

Utilizza il codice di stato HTTP restituito per identificare il motivo per cui un controllo non è riuscito. Alcuni esempi comuni:


| Codice di stato HTTP | Significato tipico | Correzione comune | 
| --- | --- | --- | 
| `200` | L'applicazione ha restituito una risposta positiva. | Nessuna. Si tratta in genere di uno stato integro. | 
| `301`, `302` | L'applicazione ha restituito un reindirizzamento. Le chiamate di controllo dello stato non seguono i reindirizzamenti. | Indirizza il percorso di controllo dello stato alla destinazione del reindirizzamento o aggiungi il codice di reindirizzamento al tuo codice di stato se lo ritieni valido. | 
| `401`, `403` | L'applicazione richiede l'autenticazione o l'accesso negato al percorso di controllo dello stato. | Configura il percorso di controllo dello stato in modo che non sia autenticato o esegui i controlli di integrità su un percorso che non richiede credenziali. | 
| `404` | Il percorso di controllo dello stato configurato non è stato trovato nell'applicazione. | Verifica che il percorso corrisponda a quello utilizzato dall'applicazione. | 
| `500` | L'applicazione ha restituito un errore interno del server. | Analizza i log dell'applicazione sull'istanza. | 
| `502`, `503`, `504` | L'applicazione è raggiungibile ma segnala problemi a monte o di capacità. | Analizza lo stato, le dipendenze e la capacità delle applicazioni. Se l'applicazione restituisce questi codici durante l'avvio, `InitializationGracePeriodSeconds` aumentali. | 

Per la `ApplicationStatusReason` struttura completa, consulta [ ApplicationStatusReason ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ApplicationStatusReason.html) l'API Reference * di * Amazon EC2.

### Errori comuni
<a name="asc-troubleshoot-common-mistakes"></a>
+ Il gruppo di sicurezza non consente il traffico in entrata dalla fonte del controllo dello stato sulla porta di controllo.
+ L'applicazione è associata all'interfaccia di rete `127.0.0.1` e non è in ascolto.
+ Il percorso di controllo dello stato restituisce un reindirizzamento (301, 302) anziché una risposta positiva e lo status code matcher non include il codice di reindirizzamento.
+ Il controllo è configurato per HTTPS ma l'applicazione serve solo HTTP o viceversa.
+ L'avvio dell'applicazione richiede più tempo rispetto al `InitializationGracePeriodSeconds` valore e Amazon EC2 Auto Scaling sostituisce l'istanza prima che sia pronta.

## Monitora i controlli sullo stato delle applicazioni
<a name="asc-monitoring"></a>

È possibile monitorare i controlli dello stato delle applicazioni in tre modi:
+ **Amazon CloudWatch**. La `StatusCheckFailed_Application` metrica riflette lo stato complessivo dell'applicazione per l'istanza e può generare allarmi. La metrica viene aggregata per istanza tra i controlli associati la cui impostazione di aggregazione è. `included` CloudWatch pubblica inoltre una metrica per controllo per ogni controllo associato, denominata. `StatusCheckFailed_Application_{{application-status-check-id}}`
+ **[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html)**describe-instance-status. Restituisce lo stato generale dell'applicazione insieme alle altre informazioni sullo stato dell'istanza.
+ **[descrivi lo stato ](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-application-status.html) ** della domanda. Restituisce risultati dettagliati per istanza, incluso lo stato individuale di ogni controllo associato e il codice di stato HTTP restituito dall'applicazione.

Usa la CloudWatch metrica per l'automazione basata sugli allarmi. Usala `describe-instance-status` quando la richiedi già per verificare lo stato dell'istanza. Usalo `describe-application-status` per una visibilità dettagliata per ogni controllo.

## Sicurezza e autorizzazioni
<a name="asc-security-and-permissions"></a>

AWS crea e gestisce le interfacce di rete utilizzate per i controlli dello stato delle applicazioni tramite un ruolo collegato al servizio. Non è richiesta alcuna configurazione IAM per consentire al servizio di creare questi ENI. Il ruolo collegato al servizio utilizza la [`EC2ApplicationStatusChecksServiceRolePolicy`](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2ApplicationStatusChecksServiceRolePolicy.html) AWS policy gestita.

Per creare, associare, descrivere, eliminare ed eliminare autonomamente i controlli sullo stato delle applicazioni, l'utente o il ruolo IAM necessita delle autorizzazioni Amazon EC2 corrispondenti. Consulta l'API Reference di * Amazon EC2 * per l'elenco completo delle azioni.

Il gruppo di sicurezza della tua istanza deve consentire il traffico in entrata dal gruppo di sicurezza di origine di Health Check sulla porta che hai configurato. Con i percorsi di rete AWS gestiti, AWS fornisce il gruppo di sicurezza di origine; con i percorsi di rete gestiti dal cliente, utilizza il gruppo di sicurezza specificato come origine.

## Prezzi
<a name="asc-pricing"></a>

I controlli sullo stato delle applicazioni vengono fatturati sui seguenti componenti:
+ Una tariffa oraria di 0,01 USD per ogni interfaccia di rete elastica gestita (ENI), per zona di disponibilità.
+  CloudWatch I prezzi standard di Amazon si applicano alle metriche di controllo dello stato delle applicazioni.

## Quote
<a name="asc-quotas"></a>

I controlli sullo stato delle applicazioni sono soggetti a quote AWS di servizio. Per i nomi delle quote, i valori predefiniti e le descrizioni, consulta gli endpoint e le quote [ di ](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html) Amazon EC2 nella Guida generale. *AWS *

Oltre alle quote di AWS servizio che influiscono sulle interfacce di rete gestite, i controlli dello stato delle applicazioni hanno le seguenti quote di servizio. È possibile visualizzare l'utilizzo e richiedere aumenti dalla console Service Quotas.

In queste quote, un * obiettivo * è una singola istanza monitorata da un controllo dello stato. Se più di un controllo dello stato monitora un'istanza, ogni associazione tra istanza e controllo dello stato viene conteggiata come destinazione separata. Un'*associazione * è una singola regola di tag o un ID di singola istanza che si associa a un controllo dello stato. Ogni regola o ID di istanza conta come un'associazione, indipendentemente dal numero di istanze in cui viene risolta.


| Quota | Predefinita | Adattabile | 
| --- | --- | --- | 
| Controlli dello stato di salute per account | 50 | Sì, automaticamente | 
| Associazioni per controllo sanitario | 50 | Sì, automaticamente | 
| Associazioni per account | 200 | Sì, automaticamente | 
| Obiettivi per account | 5.000 | Sì, su richiesta | 

La maggior parte degli aumenti delle quote viene approvata automaticamente. L'aumento * degli obiettivi per account * richiede una richiesta e un'approvazione manuale.

**Importante**  
Se il numero di obiettivi nel tuo account supera la * quota * Obiettivi per account, gli obiettivi che superano il limite non vengono monitorati e non segnalano lo stato della domanda. Per evitare lacune nel monitoraggio, mantieni il numero degli obiettivi entro la quota o richiedi un aumento.

Ti consigliamo di creare un CloudWatch allarme Amazon in caso di verifica dello stato della domanda di utilizzo delle quote, in modo da ricevere una notifica prima del raggiungimento di una quota. Service Quotas pubblica le metriche di utilizzo nel `AWS/Usage` namespace in CloudWatch cui puoi creare l'allarme.