Pianificare e implementare configurazioni di sicurezza di rete per un ambiente del servizio app

Completato

Un ambiente del servizio app è una distribuzione del Servizio app di Azure in una subnet nell'istanza di Rete virtuale di Azure del cliente. Un ambiente del servizio app è costituito da:

  • Front-end: dove termina HTTP o HTTPS in un ambiente del servizio app
  • Ruoli di lavoro: risorse che ospitano le app
  • Database: contiene informazioni che definiscono l'ambiente
  • Archiviazione: usata per ospitare le app pubblicate dal cliente

È possibile distribuire un ambiente del servizio app con un indirizzo IP virtuale (VIP) esterno o interno per l'accesso alle app. Una distribuzione con un indirizzo VIP esterno viene comunemente denominata ambiente del servizio app esterno. Una distribuzione con un indirizzo VIP interno è denominata ambiente del servizio app con bilanciamento del carico interno perché usa un servizio di bilanciamento del carico interno.

Creare un'app in un ambiente del servizio app

Per creare un'app in un ambiente del servizio app, si usa lo stesso processo di quando si crea normalmente un'app, ma con alcune piccole differenze. Quando si crea un nuovo piano di servizio app:

  • Invece di selezionare una località geografica per distribuire l'app, selezionare un ambiente del servizio app come posizione.
  • Tutti i piani di servizio app creati in un ambiente del servizio app possono risiedere solo in un piano tariffario Isolato.

Se non si dispone di un ambiente del servizio app, è possibile crearne uno seguendo le istruzioni riportate in Creare un ambiente del servizio app.

Per creare un'app in un ambiente del servizio app:

  1. Selezionare Crea una risorsa, Web e dispositivi mobili, App Web.

  2. Immetti il nome per l'app. Se è già stato selezionato un piano di servizio app in un ambiente del servizio app, il nome di dominio per l'app riflette il nome di dominio dell'ambiente del servizio app:

Screenshot che mostra un esempio di come creare un'applicazione Web.

  1. Seleziona un abbonamento.

  2. Immettere un nome per un nuovo gruppo di risorse, oppure fare clic su Usa esistente e selezionarne uno dall'elenco a discesa.

  3. Selezionare il sistema operativo.

  4. Selezionare un piano di servizio app esistente nell'ambiente del servizio app o crearne uno nuovo con la procedura seguente:

    a. Nel menu a sinistra del portale di Azure selezionare Crea una risorsa>App Web.

    b. Selezionare la sottoscrizione.

    c. Selezionare o creare il gruppo di risorse.

    d. Immettere il nome dell'app Web.

    e. Selezionare Code o DockerContainer.

    f. Select a runtime stack.

    g. Selezionare Linux o Windows.

    h. Selezionare l'ambiente del servizio app nell'elenco a discesa Area.

    i. Selezionare o creare un nuovo piano di servizio app. Se si crea un nuovo piano di servizio app, selezionare le dimensioni dello SKU Isolato appropriate.

Screenshot che mostra il dashboard di selezione specifiche.

  1. Selezionare Rivedi e crea, verificare che le informazioni siano corrette e quindi selezionare Crea.

Come funziona il ridimensionamento

Ogni app del servizio app viene eseguita in un piano di servizio app. Gli ambienti del servizio app di Azure contengono piani del servizio app, che a loro volta contengono app. Quando si ridimensiona un'app, si ridimensiona anche il piano di servizio app e tutte le app nello stesso piano.

Quando si ridimensiona un piano di servizio app, l'infrastruttura necessaria viene aggiunta automaticamente. Il ridimensionamento delle operazioni mentre viene aggiunta l'infrastruttura determina un ritardo di tempo. Se si eseguono diverse operazioni di ridimensionamento in sequenza, viene eseguita la prima richiesta di ridimensionamento dell'infrastruttura e le altre vengono inserite in una coda. Al termine della prima operazione di ridimensionamento, tutte le altre richieste dell'infrastruttura operano insieme. E quando viene aggiunta l'infrastruttura, i piani di servizio app vengono assegnati nel modo previsto. La creazione di un nuovo piano di servizio app è un'operazione di ridimensionamento perché richiede hardware aggiuntivo. Il completamento di un'operazione di ridimensionamento richiede in genere 30-60 minuti.

Nel servizio app multi-tenant il ridimensionamento è immediato perché un pool di risorse è immediatamente disponibile per supportarlo. In un ambiente del servizio app non esiste un buffer di questo tipo e le risorse vengono allocate in base alle esigenze.

In un ambiente del servizio app è possibile ridimensionare un piano di servizio app fino a 100 istanze. Un ambiente del servizio app può avere fino a 201 istanze totali in tutti i piani di servizio app in tale ambiente del servizio app.

Indirizzi IP

Il servizio app può allocare un indirizzo IP dedicato a un'app. Questa funzionalità è disponibile dopo aver configurato un'associazione TLS/SSL basata su IP, come descritto in Associare un certificato TLS/SSL personalizzato esistente al servizio app di Azure. In un ambiente del servizio app con bilanciamento del carico interno non è possibile aggiungere altri indirizzi IP da usare per l'associazione TLS/SSL basata su IP.

Con un ambiente del servizio app esterno, è possibile configurare un'associazione TLS/SSL basata su IP per l'app esattamente come per un servizio app multi-tenant. Esiste sempre un indirizzo di riserva nell'ambiente del servizio app, fino a 30 indirizzi IP. Ogni volta che se ne usa uno, ne viene aggiunto un altro affinché ce ne sia uno sempre prontamente disponibile. L'allocazione di un altro indirizzo IP richiede un certo tempo. Questo ritardo impedisce l'aggiunta di indirizzi IP in rapida successione.

Scalabilità front-end

Quando si aumenta il numero di istanze dei piani di servizio app, vengono aggiunti automaticamente i ruoli di lavoro per supportarli. Ogni ambiente del servizio app viene creato con due front-end. I front-end aumentano automaticamente il numero di istanze del piano di servizio app alla frequenza di un front-end per ogni set di 15 istanze del piano di servizio app. Se, ad esempio, sono presenti tre piani servizio app con cinque istanze ciascuno, si avrà un totale di 15 istanze e tre front-end. Se si aumenta il numero fino a un totale di 30 istanze, saranno presenti quattro front-end. Questo modello continua man mano che si aumenta il numero di istanze.

Il numero di front-end allocati per impostazione predefinita è ideale per un carico moderato. È possibile ridurre il rapporto fino a un front-end per ogni cinque istanze. È anche possibile modificare le dimensioni dei front-end. Per impostazione predefinita, prevedono un singolo core. Nel portale di Azure è possibile modificare le dimensioni a due o quattro core.

È previsto un addebito per la modifica del rapporto o delle dimensioni dei front-end. Per altre informazioni, vedere Prezzi del Servizio app di Azure. Se si vuole migliorare la capacità di carico dell'ambiente del servzio app, si otterrà un miglioramento maggiore passando ai front-end a due core prima di regolare il rapporto di ridimensionamento. La modifica delle dimensioni dei core dei front-end causerà un aggiornamento dell'ambiente del servizio app e dovrebbe essere eseguita al di fuori dell'orario di ufficio normale.

Le risorse front-end sono gli endpoint HTTP/HTTPS per l'ambiente del servizio app. Con la configurazione front-end predefinita, l'uso della memoria per ogni front-end è di circa il 60%. Il motivo principale per ridimensionare i front-end è l'utilizzo della CPU, che è principalmente basato sul traffico HTTPS.

Accesso all'app

In un ambiente del servizio app esterno il suffisso di dominio usato per la creazione dell'app è .<asename>.p.azurewebsites.net. Se l'ambiente del servizio app è denominato external-ase e si ospita un'app denominata contoso in tale ambiente del servizio app, è possibile raggiungerlo a questi URL:

  • contoso.external-ase.p.azurewebsites.net
  • contoso.scm.external-ase.p.azurewebsites.net

In un ambiente del servizio app con bilanciamento del carico interno il suffisso del dominio usato per la creazione dell'app è .<asename>.appserviceenvironment.net. Se l'ambiente del servizio app è denominato ilb-ase e si ospita un'app denominata contoso in tale ambiente del servizio app, è possibile raggiungerlo a questi URL:

  • contoso.ilb-ase.appserviceenvironment.net
  • contoso.ilb-ase.appserviceenvironment.net

L'URL di Gestione configurazione software (SCM) viene usato per accedere alla console Kudu o pubblicare l'app tramite Distribuzione Web. La console Kudu offre un'interfaccia utente Web per il debug, il caricamento di file, la modifica di file e altro ancora.

Configurazione del DNS

Sei si usa un ambiente del servizio app esterno, le app create al suo interno vengono registrate con DNS di Azure. In un ambiente del servizio app esterno per rendere le app disponibili pubblicamente non sono previsti passaggi aggiuntivi. In un ambiente del servizio app ILB, è necessario gestire il proprio DNS. È possibile farlo nel proprio server DNS o nelle zone private di DNS di Azure.

Per configurare DNS nel proprio server DNS con l'ambiente del servizio app ILB:

  1. Creare una zona per <nome dell'ambiente del servizio app>.appserviceenvironment.net
  2. creare un record A in tale zona che punti * all'indirizzo IP del servizio ILB
  3. creare un record A in tale zona che punti @ all'indirizzo IP del servizio ILB
  4. Creare una zona in <nome dell'ambiente del servizio app>.appserviceenvironment.net denominata scm
  5. creare un record A nella zona che punti * all'indirizzo IP del servizio ILB

Per configurare DNS nelle zone private di DNS di Azure:

  1. creare una zona privata di DNS di Azure denominata <nome ambiente del servizio app>.appserviceenvironment.net
  2. creare un record A in tale zona che punti * all'indirizzo IP del servizio ILB
  3. creare un record A in tale zona che punti @ all'indirizzo IP del servizio ILB
  4. Creare un record A in tale zona che punta *.scm all'indirizzo IP del servizio ILB

Le impostazioni DNS per il suffisso di dominio predefinito dell'ambiente del servizio app non limitano l'accesso alle app solo a questi nomi. In un ambiente del servizio app ILB è possibile impostare un nome di dominio personalizzato senza alcuna convalida nelle app. Se poi si vuole creare una zona denominata contoso.net, è possibile farlo e puntarla all'indirizzo IP di ILB. Il nome del dominio personalizzato funziona per le richieste di app ma non per il sito scm. Il sito scm è disponibile solo in <appname>.scm.<asename>.appserviceenvironment.net.

La zona denominata .<asename>.appserviceenvironment.net è univoca a livello globale. Prima del mese di maggio 2019, i clienti potevano specificare il suffisso di dominio dell'ambiente del servizio app ILB. Se si voleva, era possibile usare contoso.com per il suffisso di domino, che avrebbe incluso il sito scm. Con tale modello si sono verificati problemi, ad esempio gestione del certificato TLS/SSL predefinito, mancanza di accesso Single Sign-On con il sito scm e il requisito di usare un certificato con caratteri jolly. Il processo di aggiornamento del certificato predefinito dell'ambiente del servizio app ILB era inoltre complicato e causava il riavvio dell'applicazione. Per risolvere questi problemi, il comportamento dell'ambiente del servizio app ILB è stato cambiato e prevede ora l'uso di un suffisso di domino basato sul nome dell'ambiente del servizio app con un suffisso di proprietà di Microsoft. La modifica del comportamento dell'ambiente del servizio app ILB influisce solo su tali ambienti creati dopo maggio 2019. Gli ambienti del servizio app ILB preesistenti continuano a gestire il certificato predefinito dell'ambiente e la rispettiva configurazione DNS. Se l'ambiente del servizio app con bilanciamento del carico interno V2 è stato creato dopo il mese di maggio 2019, non è necessario gestire il certificato predefinito del servizio di bilanciamento del carico perché è gestito da Microsoft.

Pubblicazione

In un ambiente del servizio app, come nel servizio app multi-tenant, è possibile pubblicare tramite questi metodi:

  • Distribuzione Web
  • FTP
  • Integrazione continua (CI)
  • Trascinamento della selezione nella console Kudu
  • Un IDE, ad esempio Visual Studio, Eclipse o IntelliJ IDEA

Con un ambiente del servizio app esterno, queste opzioni di pubblicazione funzionano allo stesso modo. Per altre informazioni, vedere Distribuzione nel servizio app di Azure.

Con un ambiente del servizio app con bilanciamento del carico interno, gli endpoint di pubblicazione sono disponibili solo tramite il servizio di bilanciamento del carico interno. Il servizio di bilanciamento del carico interno è in un IP privato nella subnet dell'ambiente del servizio app nella rete virtuale. Se non è disponibile l'accesso alla rete per il servizio di bilanciamento del carico interno, non è possibile pubblicare app in tale ambiente del servizio app. Come indicato in Creare e usare un ambiente del servizio app con bilanciamento del carico interno, è necessario configurare il DNS per le app nel sistema. Questo requisito include l'endpoint SCM. Se gli endpoint non sono definiti correttamente, non è possibile procedere con la pubblicazione. Anche gli IDE devono disporre dell'accesso alla rete per il servizio di bilanciamento del carico interno per procedere direttamente alla pubblicazione.

Senza modifiche aggiuntive, i sistemi di integrazione continua basati su Internet come GitHub e Azure DevOps non funzionano con un ambiente del servizio app con bilanciamento del carico interno perché l'endpoint di pubblicazione non è accessibile da Internet. È possibile abilitare la pubblicazione in un ambiente del servizio app con bilanciamento del carico interno da Azure DevOps installando un agente di versione self-hosted nella rete virtuale che contiene l'ambiente del servizio app con bilanciamento del carico interno. In alternativa, è anche possibile usare un sistema di integrazione continua che usa un modello pull, ad esempio Dropbox.

Gli endpoint di pubblicazione per le app in un ambiente del servizio app con bilanciamento del carico interno usano il dominio con cui l'ambiente del servizio app con bilanciamento del carico interno è stato creato, È disponibile nel profilo di pubblicazione dell'app e nel riquadro del portale dell'app (in Panoramica e Informazioni di base e anche in Proprietà).

Storage

Un ambiente del servizio app dispone di 1 TB di spazio di archiviazione per tutte le app nell'ambiente del servizio app. Un piano servizio app nello SKU Isolato ha un limite di 250 GB. In un ambiente del servizio app vengono aggiunti 250 GB di spazio di archiviazione per ogni piano di servizio app fino al limite di 1 TB. È possibile avere più di quattro piani di servizio app, ma non è disponibile più spazio di archiviazione aggiunto oltre il limite di 1 TB.

Monitoraggio

I clienti devono monitorare i piani di servizio app e le singole app in esecuzione e intraprendere le azioni appropriate. Per l'ambiente del servizio app v2, è necessario prestare attenzione anche alle metriche relative all'infrastruttura della piattaforma. Queste metriche forniscono informazioni dettagliate sullo stato dell'infrastruttura della piattaforma e dei server front-end (multiRole) ed è possibile intervenire se presentano un utilizzo eccessivo che impedisce di ottenere la velocità effettiva massima.

Tramite il portale di Azure e l'interfaccia della riga di comando è possibile configurare il rapporto di ridimensionamento dei server front-end tra 5 e 15 (15 è il valore predefinito) istanze del piano di servizio app per ogni server front-end. Un ambiente del servizio app avrà sempre almeno due server front-end. È anche possibile aumentare le dimensioni dei server front-end.

L'ambito delle metriche usato per monitorare l'infrastruttura della piattaforma è denominato Microsoft.Web/hostingEnvironments/multiRolePools.

Verrà visualizzato un ambito denominato Microsoft.Web/hostingEnvironments/workerPools. Le metriche mostrate qui sono applicabili solo all'ambiente del servizio app v1.

Registrazione

È possibile integrare l'ambiente del servizio app con Monitoraggio di Azure per l'invio dei log sull'ambiente del servizio app ad Archiviazione di Azure, Hub eventi di Azure o Log Analytics. Oggi vengono registrati questi elementi:

Situazione Messaggio
L'ambiente del servizio app non è integro L'ambiente del servizio app specificato non è integro a causa di una configurazione di rete virtuale non valida. L'ambiente del servizio app verrà sospeso se perdura lo stato non integro.
La subnet dell'ambiente del servizio app è prossima all'esaurimento dello spazio L'ambiente del servizio app specificato si trova in una subnet prossima all'esaurimento dello spazio. Sono presenti {0} indirizzi rimanenti. Una volta esauriti questi indirizzi, non sarà più possibile ridimensionare l'ambiente del servizio app.
L'ambiente del servizio app sta raggiungendo il limite totale di istanze L'ambiente del servizio app specificato sta raggiungendo il limite totale di istanze dell'ambiente del servizio app. Attualmente contiene {0} istanze del piano di servizio app su un massimo di 201 istanze.
L'ambiente del servizio app non riesce a raggiungere una dipendenza L'ambiente del servizio app specificato non riesce a raggiungere {0}.
L'ambiente del servizio app è sospeso L'ambiente del servizio app specificato è sospeso. La sospensione dell'ambiente del servizio app può essere dovuta a un deficit di account o a una configurazione di rete virtuale non valida. Risolvere la causa radice e riprendere l'ambiente del servizio app per continuare a gestire il traffico.
L'aggiornamento dell'ambiente del servizio app è stato avviato È stato avviato un aggiornamento della piattaforma per l'ambiente del servizio app specificato. Prevedere possibili ritardi nelle operazioni di ridimensionamento.
L'aggiornamento dell'ambiente del servizio app è stato completato È stato completato un aggiornamento della piattaforma per l'ambiente del servizio app specificato.
Le operazioni di ridimensionamento sono state avviate È iniziato il ridimensionamento di un piano servizio app ({0}). Stato desiderato: ruoli di lavoro {1} I{2}.
Le operazioni di ridimensionamento sono state completate Il ridimensionamento di un piano di servizio app ({0}) è terminato. Stato corrente: ruoli di lavoro {1} I{2}.
Operazioni di ridimensionamento non riuscite Non è stato possibile ridimensionare un piano di servizio app ({0}). Stato corrente: ruoli di lavoro {1} I{2}.

Per abilitare la registrazione nell'ambiente del servizio app:

  1. Nel portale passare a Impostazioni di diagnostica.
  2. Selezionare Aggiungi impostazione di diagnostica.
  3. Specificare un nome per l'integrazione dei log.
  4. Selezionare e configurare le destinazioni desiderate per i log.
  5. Selezionare AppServiceEnvironmentPlatformLogs.

Screenshot che mostra la pagina delle impostazioni di diagnostica.

Se si esegue l'integrazione con Log Analytics, per visualizzare i log selezionare Log dal portale dell'ambiente del servizio app ed eseguire una query su AppServiceEnvironmentPlatformLogs. I log vengono generati solo quando nell'ambiente del servizio app si verifica un evento che li attiva. Se nell'ambiente del servizio app non è presente tale, non saranno disponibili log. Per visualizzare rapidamente un esempio di log nell'area di lavoro Log Analytics, eseguire un'operazione di ridimensionamento con uno dei piani di servizio app nell'ambiente del servizio app. Eseguire quindi una query su AppServiceEnvironmentPlatformLogs per visualizzare tali log.

Creazione di un avviso

Per creare un avviso per i log, seguire le istruzioni riportate in Creare, visualizzare e gestire gli avvisi dei log con Monitoraggio di Azure. In breve:

  • Aprire la pagina Avvisi nel portale dell'ambiente del servizio app
  • Selezionare Nuova regola di avviso
  • Selezionare la risorsa come area di lavoro Log Analytics
  • Impostare la condizione con una ricerca log personalizzata per usare una query come "AppServiceEnvironmentPlatformLogs | where ResultDescription contains "ha avviato il ridimensionamento" o ciò che si desidera. Impostare la soglia desiderata.
  • Aggiungere o creare un gruppo di azioni in base alle esigenze. Il gruppo di azioni consente di definire la risposta all'avviso, ad esempio l'invio di un messaggio di posta elettronica o un SMS
  • Assegnare un nome all'avviso e salvarlo.

Preferenza di aggiornamento

Se sono presenti più ambienti del servizio app, è possibile che alcuni di essi vengano aggiornati prima di altri. Questo comportamento può essere abilitato tramite il portale dell'ambiente del servizio app. In Configurazione è possibile impostare la Preferenza di aggiornamento. I tre valori possibili sono:

  • Nessuno: Azure aggiornerà l'ambiente del servizio app in nessun batch specifico. Si tratta del valore predefinito.
  • In anticipo: l'ambiente del servizio app verrà aggiornato nella prima metà degli aggiornamenti del servizio app.
  • In ritardo: l'ambiente del servizio app verrà aggiornato nella seconda metà degli aggiornamenti del servizio app.

Selezionare il valore desiderato e fare clic su Salva. Il valore predefinito per tutti gli ambienti del servizio app è Nessuno.

Screenshot che mostra la pagina di configurazione dell'ambiente del servizio dell'applicazione.

La funzionalità upgradePreferences ha più senso quando sono presenti più ambienti del servizio app, in quanto gli ambienti "In anticipo" verranno aggiornati prima degli ambienti "In ritardo". Quando sono presenti più ambienti del servizio app, è necessario impostare gli ambienti del servizio app di sviluppo e test come "In anticipo" e gli ambienti del servizio app di produzione come "In ritardo".

Prezzi

Lo SKU Isolato è destinato all'uso solo con gli ambienti del servizio app. Tutti i piani di servizio app ospitati nell'ambiente del servizio app si trovano nello SKU Isolato. Le tariffe dello SKU Isolato per i piani di servizio app possono variare in base all'area.

Oltre al prezzo dei piani di servizio app, esiste una tariffa fissa per l'ambiente del servizio app stesso. La tariffa fissa non cambia con le dimensioni dell'ambiente del servizio app. Paga l'infrastruttura dell'ambiente del servizio app a una frequenza di ridimensionamento predefinita di un front-end aggiuntivo per ogni 15 istanze del piano di servizio app.

Se la frequenza di ridimensionamento predefinita di un front-end per ogni 15 istanze del piano di servizio app non è sufficiente, è possibile modificare il rapporto per l'aggiunta dei front-end o per l'aumento delle dimensioni dei front-end. Quando si modifica il rapporto o le dimensioni, si paga per i core front-end che non verranno aggiunti per impostazione predefinita.

Se ad esempio si imposta la proporzione di ridimensionamento su 10, verrà aggiunto un front-end ogni 10 istanze nei piani di servizio app. La tariffa fissa copre una proporzione di ridimensionamento pari a un front-end ogni 15 istanze. Con una proporzione di ridimensionamento di 10, il costo verrà addebitato al terzo front-end aggiunto per le 10 istanze del piano di servizio app. Non è necessario pagare quando si raggiungono le 15 istanze, perché il front-end è stato aggiunto automaticamente.

Se si modificano le dimensioni dei front-end passando a due core, ma non si modifica il rapporto, si pagherà per i core aggiuntivi. Un ambiente del servizio app viene creato con due front-end, quindi anche al di sotto della soglia di ridimensionamento automatico si paga per due core aggiuntivi se si aumentano le dimensioni ai front-end a due core.

Eliminare un ambiente del servizio app

  1. Per eliminare un ambiente del servizio app:

  2. Selezionare Elimina nella parte superiore del riquadro Ambiente del servizio app. Immettere il nome dell'ambiente del servizio app per confermare l'eliminazione. Quando si elimina un ambiente del servizio app, si eliminano anche tutti gli elementi contenuti al suo interno.

  3. Seleziona OK.

Screenshot che mostra come eliminare un ambiente del servizio dell'applicazione.

Interfaccia della riga di comando dell'ambiente del servizio app

Sono disponibili funzionalità della riga di comando per amministrare un ambiente del servizio app. I comandi dell'interfaccia della riga di comando di Azure sono indicati di seguito.

C:\>az appservice ase --help Group az appservice ase : Manage App Service Environments v2. This command group is in preview. It may be changed/removed in a future release. Commands: create : Create app service environment. delete : Delete app service environment. list : List app service environments. list-addresses : List VIPs associated with an app service environment. list-plans : List app service plans associated with an app service environment. show : Show details of an app service environment. update : Update app service environment. For more specific examples, use: az find "az appservice ase"