

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

# Nozioni di base su Amazon RDS
<a name="CHAP_GettingStarted"></a>

Negli esempi seguenti, sono disponibili informazioni su come creare ed eseguire la connessione a un'istanza database utilizzando Amazon Relational Database Service (Amazon RDS). Puoi creare un’istanza database che utilizza Db2, MariaDB, MySQL, Microsoft SQL Server, Oracle, o PostgreSQL.

**Importante**  
Devi completare le attività indicate su [Configurazione dell’ambiente Amazon RDS](CHAP_SettingUp.md) prima di poter creare o connetterti a un'istanza database.

Creare un'istanza database e connettersi a un database su un'istanza database sono operazioni che variano leggermente in base al motore di database utilizzato. Scegli uno dei motori di database seguenti che desideri utilizzare per informazioni dettagliate sulla creazione e connessione all'istanza database. Dopo aver creato ed esserti connesso alla tua istanza database, visualizzi delle istruzioni che ti aiutano a eliminare l'istanza database.

**Topics**
+ [Creazione e connessione di un'istanza database MariaDB](CHAP_GettingStarted.CreatingConnecting.MariaDB.md)
+ [Creazione e connessione a un'istanza database Microsoft SQL Server](CHAP_GettingStarted.CreatingConnecting.SQLServer.md)
+ [Creazione e connessione di un'istanza database MySQL](CHAP_GettingStarted.CreatingConnecting.MySQL.md)
+ [Creazione e connessione a un'istanza database Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md)
+ [Creazione e connessione di un'istanza database PostgreSQL](CHAP_GettingStarted.CreatingConnecting.PostgreSQL.md)
+ [Tutorial: creazione di un server Web e un’istanza database Amazon RDS](TUT_WebAppWithRDS.md)
+ [Tutorial: utilizzo di una funzione Lambda per accedere a un database Amazon RDS](rds-lambda-tutorial.md)

# Creazione e connessione di un'istanza database MariaDB
<a name="CHAP_GettingStarted.CreatingConnecting.MariaDB"></a>

Questo tutorial illustra come creare un'istanza EC2 e un'istanza database RDS per MariaDB. Il tutorial mostra come accedere all'istanza database dall'istanza EC2 utilizzando il client MySQL standard. Come best practice, questo tutorial spiega come creare un'istanza database privata in un cloud privato virtuale (VPC). Nella maggior parte dei casi, le risorse presenti nello stesso VPC, come le istanze EC2, possono accedere all'istanza database, mentre le risorse esterne al VPC non possono accedervi.

Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC. In una zona di disponibilità, l'istanza EC2 si trova nella sottorete pubblica mentre l'istanza database si trova nella sottorete privata.

**Importante**  
Non ci sono costi per la creazione di un Account AWS. Tuttavia, completando l’esercitazione, potresti incorrere in costi per le risorse utilizzate. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Istanza EC2 e istanza database MariaDB.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-mariadb.png)


Questo tutorial consente di creare le risorse utilizzando uno dei seguenti metodi:

1. Usa Console di gestione AWS ‐ [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2) e [Per creare un’istanza database MariaDB](#CHAP_GettingStarted.Creating.MariaDB) 

1. Utilizzare CloudFormation per creare l'istanza del database e l'istanza EC2 ‐ [(Facoltativo) Crea VPC, istanza EC2 e istanza MariaDB utilizzando CloudFormation](#CHAP_GettingStarted.CFN.MariaDB) 

Il primo metodo utilizza **Creazione semplice** per creare un’istanza database privata di MariaDB DB con la Console di gestione AWS. In questo caso, specifichi solo il tipo di motore di database, la dimensione dell’istanza database e l’identificatore dell’istanza database. **Easy create (Creazione rapida)** utilizza l'impostazione predefinita per altre opzioni di configurazione. 

Quando utilizzi la **Creazione standard** invece, puoi specificare diverse opzioni di configurazione al momento della creazione di un’istanza database. Tali opzioni includono impostazioni per la disponibilità, la sicurezza, i backup e la manutenzione. Per creare un'istanza database pubblica, è necessario utilizzare la **Creazione standard**. Per informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Prerequisiti](#CHAP_GettingStarted.Prerequisites.MariaDB)
+ [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.MariaDB.EC2)
+ [Per creare un’istanza database MariaDB](#CHAP_GettingStarted.Creating.MariaDB)
+ [(Facoltativo) Crea VPC, istanza EC2 e istanza MariaDB utilizzando CloudFormation](#CHAP_GettingStarted.CFN.MariaDB)
+ [Connessione a un'istanza database MariaDB](#CHAP_GettingStarted.Connecting.MariaDB)
+ [Elimina l’istanza EC2 e l’istanza database](#CHAP_GettingStarted.Deleting.MariaDB)
+ [(Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation](#CHAP_GettingStarted.DeletingCFN.MariaDB)
+ [(Facoltativo) Connessione dell'istanza database a una funzione Lambda](#CHAP_GettingStarted.ComputeConnect.MariaDB)

## Prerequisiti
<a name="CHAP_GettingStarted.Prerequisites.MariaDB"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Creazione di un’istanza EC2
<a name="CHAP_GettingStarted.Creating.MariaDB.EC2"></a>

Crea un'istanza Amazon EC2 da utilizzare per connetterti al database.

**Per creare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli l'istanza EC2 Regione AWS in cui desideri creare l'istanza EC2.

1. Seleziona **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Viene visualizzata la pagina **Avvia un'istanza**.

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **ec2-database-connect**.

   1. In **Immagini applicazione e sistema operativo (Amazon Machine Image)**, scegli **Amazon Linux**, quindi **AMI Amazon Linux 2023**. Mantieni le selezioni predefinite per le altre opzioni.  
![\[Scegli un'Amazon Machine Image.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) nella *Guida per l’utente di Amazon EC2*.

   1. In **Consenti traffico SSH**, nell'area **Impostazioni di rete** scegliere l'origine delle connessioni SSH all'istanza EC2. 

      È possibile scegliere **My IP** (Il mio IP) se l'indirizzo IP visualizzato è corretto per le connessioni SSH. In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando Secure Shell (SSH). Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) Un esempio di indirizzo IP è 192.0.2.1/32.

       In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

      L'immagine seguente mostra un esempio della sezione **Impostazioni di rete**.  
![\[Impostazioni di rete per un'istanza EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Lascia i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza EC2 nel pannello **Riepilogo** e, quando è tutto pronto, scegli **Avvia istanza**.

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2, quindi seleziona l'istanza EC2.

1. Nella scheda **Dettagli**, annota i seguenti valori, necessari quando ti connetti tramite SSH:

   1. Nel **riepilogo dell'istanza**, annota il valore per **Public IPv4 DNS**.  
![\[Il nome DNS pubblico EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. In **Dettagli istanza**, annota il valore visualizzato in **Nome coppia di chiavi**.  
![\[Il nome della coppia di chiavi EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Attendi che **Stato dell'istanza** diventi **In esecuzione** per l'istanza EC2 prima di continuare.

## Per creare un’istanza database MariaDB
<a name="CHAP_GettingStarted.Creating.MariaDB"></a>

L'istanza database rappresenta l'elemento di base di Amazon RDS. Questo è l'ambiente dove esegui i tuoi database MariaDB.

Per questo esempio, utilizzi la **Creazione semplice** per creare un’istanza database che esegue un motore di database MariaDB con una classe di istanza database db.t4g.micro.

**Per creare un’istanza database MariaDB con Easy create (Creazione rapida)**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della console Amazon RDS, scegli l'istanza database Regione AWS in cui desideri creare l'istanza DB.

1. Nel pannello di navigazione, seleziona **Database**.

1. Scegli **Crea database**, quindi **Creazione semplice**.   
![\[Opzione Creazione semplice.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. In **Configuration (Configurazione)**, seleziona **MariaDB**.

1. Per **Dimensione dell’istanza database**, scegli **Piano gratuito** o **Sandbox**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.

1. Per l'**identificatore dell'istanza DB**, inserisci **database-test1**.

1. Per **Nome utente master**, inserisci un nome per l'utente master o lascia il nome predefinito.

   La pagina **Create database (Crea database)** la pagina dovrebbe apparire simile alla seguente immagine. Per gli account con piano gratuito, viene visualizzato **Piano gratuito**. Per gli account con piano a pagamento, viene visualizzato **Sandbox**.  
![\[Pagina Crea database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-mariadb.png)

1. Per utilizzare una password master generata automaticamente per l'istanza database, seleziona **Genera automaticamente una password**.

   Per inserire la password master, deseleziona **Genera automaticamente una password**, quindi immetti la stessa password in **Password master** e **Conferma password master**.

1. Per configurare una connessione con l’istanza EC2 creata in precedenza, apri **Configura connessione EC2 - *Facoltativa***.

   Seleziona **Connetti a una risorsa di calcolo EC2**. Scegli l'istanza EC2 creata in precedenza.  
![\[Opzione Configura connessione EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Espandi **Visualizza le impostazioni predefinite per la creazione Semplice**.   
![\[Impostazioni predefinite di Easy create (Creazione rapida).\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-view-default-maria.png)

   Puoi esaminare le impostazioni predefinite utilizzate con **Easy create (Creazione rapida)**. La colonna **Modificabile dopo la creazione del database** mostra le opzioni che puoi modificare dopo aver creato il database.
   + Se un'impostazione contiene **No** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database.
   + Se un'impostazione contiene **Sì** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database o modificare l'istanza database dopo averla creata per cambiare l'impostazione.

1. Scegliere **Crea database**.

   Per vedere nome utente e password per l'istanza database, seleziona **View credential details (Vedi dettagli delle credenziali)**.

   Per connetterti all'istanza database come utente principale, utilizza il nome utente e la password visualizzati.
**Importante**  
Non potrai visualizzare di nuovo la password dell'utente principale. Se non la registri, potresti doverla modificare.   
Se devi modificare la password dell'utente principale dopo che l'istanza database è disponibile, puoi modificare l'istanza database per eseguire tale operazione. Per ulteriori informazioni sulla modifica di un'istanza database , consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Nell'elenco **Database** seleziona il nome della nuova istanza database MariaDB per visualizzarne i dettagli.

   L'istanza database ha lo stato **Creazione in corso** fino a quando non è pronta per essere utilizzata.  
![\[Dettagli dell'istanza database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/MariaDB-Launch06.png)

   Quando lo stato cambia in **Available** (Disponibile), puoi connettersi all'istanza database. A seconda della classe di istanza database e della quantità di storage, prima che la nuova istanza sia disponibile possono trascorrere fino a 20 minuti.

## (Facoltativo) Crea VPC, istanza EC2 e istanza MariaDB utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.MariaDB"></a>

Invece di usare la console per creare il tuo VPC, l'istanza EC2 e l'istanza MariaDB, puoi usarla CloudFormation per fornire AWS risorse trattando l'infrastruttura come codice. Per aiutarti a organizzare AWS le tue risorse in unità più piccole e più gestibili, puoi utilizzare la funzionalità nested stack. CloudFormation Per ulteriori informazioni, consulta [Creare uno stack sulla CloudFormation console e [Lavorare](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) con gli stack](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) annidati. 

**Importante**  
CloudFormation è gratuito, ma le risorse che CloudFormation crea sono attive. Il costo di utilizzo standard per queste risorse sarà addebitato finché non vengono terminate. Per ulteriori informazioni, consulta [Prezzi di Amazon RDS per MariaDB](https://aws.amazon.com//rds/mariadb/pricing).
+ Scarica il CloudFormation modello
+ Configura le tue risorse utilizzando CloudFormation

### Scarica il CloudFormation modello
<a name="CHAP_GettingStarted.CFN.MariaDB.Step1"></a>

Un CloudFormation modello è un file di testo JSON o YAML che contiene le informazioni di configurazione sulle risorse che desideri creare nello stack. Questo modello crea anche un VPC e un host bastione per te insieme all’istanza RDS.

Per scaricare il file modello, apri il seguente link, [MariaDB CloudFormation ](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mariadb-main.template.yaml) template.

Nella pagina Github, fare clic sul pulsante *Scarica file non elaborato* per salvare il file YAML.

### Configura le tue risorse usando CloudFormation
<a name="CHAP_GettingStarted.CFN.MariabDB.Step2"></a>

**Nota**  
Prima di iniziare questo processo, assicurati di avere una coppia di chiavi per un’istanza EC2 nel tuo Account AWS. Per ulteriori informazioni, consulta [Coppie di chiavi Amazon EC2 e istanze Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Quando si utilizza il CloudFormation modello, è necessario selezionare i parametri corretti per assicurarsi che le risorse vengano create correttamente. Segui la procedura riportata di seguito:

1. Accedi Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Crea stack**.

1. Nella sezione in cui specificare il modello, seleziona **Carica un file modello dal computer**, quindi **Avanti**.

1. Nella pagina **Specifica i dettagli dello stack**, impostare i seguenti parametri:

   1. **Imposta il **nome dello stack** su Maria Stack. DBTest**

   1. In **Parametri**, imposta **Zone di disponibilità** selezionando tre zone di disponibilità.

   1. In **Configurazione host bastione di Linux**, per **Nome chiave**, seleziona una coppia di chiavi per accedere all’istanza EC2.

   1. Nelle impostazioni di **Configurazione host bastione di Linux**, imposta **Intervallo IP consentito** sul tuo indirizzo IP. Per connetterti alle istanze EC2 nel tuo VPC utilizzando Secure Shell (SSH), determina il tuo indirizzo IP pubblico utilizzando il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è 192.0.2.1/32.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

   1. In **Configurazione generale del database**, imposta **Classe di istanza del database** su **db.t3.micro**.

   1. Imposta **Database name** su **database-test1**.

   1. Per **Nome utente principale del database**, specifica il nome dell’utente master.

   1. Imposta **Gestisci password utente master di database con Secrets Manager** su `false` per questo tutorial.

   1. Per **Database password**, imposta una password di tua scelta. Ricorda questa password per ulteriori passaggi del tutorial.

   1. In **Database Storage configuration**, imposta **Database storage type** su **gp2**.

   1. In **Database Monitoring configuration**, imposta **Enable RDS Performance Insights** su false.

   1. Lascia i valori predefiniti per tutte le altre impostazioni. Fai clic su **Next** per continuare.

1. Nella pagina **Rivedi stack**, seleziona **Invia** dopo aver verificato le opzioni del database e dell’host bastione di Linux.

Una volta completato il processo di creazione dello stack, visualizza gli stack con nomi *BastionStack*e *RDSNS per annotare le informazioni necessarie per connetterti* al database. Per ulteriori informazioni, vedere [Visualizzazione dei dati e delle risorse CloudFormation dello stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html) su. Console di gestione AWS

## Connessione a un'istanza database MariaDB
<a name="CHAP_GettingStarted.Connecting.MariaDB"></a>

È possibile utilizzare qualsiasi applicazione client SQL standard per la connessione all'istanza database. In questo esempio, ti connetti a un'istanza database MariaDB utilizzando il client della linea di comando mysql.

**Per eseguire la connessione a un'istanza database MariaDB**

1. Individuare l'endpoint (nome DNS) e il numero di porta per l'istanza database. 

   1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Nell'angolo in alto a destra della console Amazon RDS, scegli l' Regione AWS istanza DB.

   1. Nel pannello di navigazione, seleziona **Database**.

   1. Scegliere il nome dell'istanza database MariaDB per visualizzarne i dettagli. 

   1. Nella scheda **Connectivity & security (Connettività e sicurezza)**, copiare l'endpoint. Annotare anche il numero di porta. L'endpoint e il numero di porta sono necessari per la connessione all'istanza database.   
![\[Esegui la connessione a un'istanza database MariaDB.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/MariaDBConnect1.png)

1. Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all’istanza di Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella *Guida per l’utente per di Amazon EC2*.

   Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Ad esempio, supponi che `ec2-database-connect-key-pair.pem` sia archiviato in `/dir1` su Linux e che il DNS IPv4 pubblico per l'istanza EC2 sia `ec2-12-345-678-90.compute-1.amazonaws.com`. Il comando SSH sarà simile al seguente:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Ottieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A questo scopo, eseguire il comando seguente.
**Nota**  
L'opzione `-y` installa gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.

   ```
   sudo dnf update -y
   ```

1. Installa il client della linea di comando mysql da MariaDB.

   Per installare il client della linea di comando MariaDB su Amazon Linux 2023, esegui il comando seguente:

   ```
   sudo dnf install mariadb105
   ```

1. Esegui la connessione all'istanza database MariaDB. Ad esempio, specifica il comando seguente: Questa azione consente di connetterti all'istanza database MariaDB utilizzando il client MySQL.

   Sostituisci l'endpoint dell'istanza database (nome DNS) per `endpoint` e il nome utente master utilizzato per `admin`. Devi fornire la password master utilizzata quando viene richiesta una password.

   ```
   mysql -h endpoint -P 3306 -u admin -p
   ```

   Dopo aver immesso la password per l'utente, l'output dovrebbe essere analogo a quanto mostrato di seguito.

   ```
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MariaDB connection id is 156
   Server version: 10.6.10-MariaDB-log managed by https://aws.amazon.com/rds/
    
   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
     
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
   MariaDB [(none)]>
   ```

   Per ulteriori informazioni sulla connessione a un'istanza database MariaDB, consulta [Connessione all’istanza database MariaDB](USER_ConnectToMariaDBInstance.md). In caso di mancata connessione all'istanza database, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Per motivi di sicurezza, la best practice è utilizzare connessioni crittografate. Usa una connessione MariaDB non crittografata solo quando il client e il server sono nello stesso VPC e la rete è attendibile. Per ulteriori informazioni sull'uso di connessioni crittografate, consulta [Connessione alla tua istanza DB MariadB su Amazon RDS SSL/TLS dal client a riga di comando MySQL (crittografato)](USER_ConnectToMariaDBInstanceSSL.CLI.md).

1. Eseguire comandi SQL.

   Ad esempio, il seguente comando SQL mostra la data e l'ora correnti:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Elimina l’istanza EC2 e l’istanza database
<a name="CHAP_GettingStarted.Deleting.MariaDB"></a>

Dopo la connessione e l'esplorazione dell'istanza EC2 e dell'istanza database di esempio che hai creato, eliminale per evitare di ricevere l'addebito dei relativi costi.

Se in passato CloudFormation creavi risorse, salta questo passaggio e vai al passaggio successivo.

**Per eliminare l'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza EC2 e scegli **Stato istanza, Termina istanza**.

1. Quando viene richiesta la conferma, seleziona **Interrompi**.

Per ulteriori informazioni sull’eliminazione di un’istanza EC2, consulta [Interruzione di un’istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l’utente di Amazon EC2*.

**Per eliminare l'istanza database senza snapshot database finale**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere l'istanza database da eliminare.

1. In **Actions (Azioni)**, selezionare **Delete (Elimina)**.

1. Deseleziona **Creare uno snapshot finale?** e **Conserva backup automatizzati**.

1. Completa la conferma e scegli **Elimina**.

## (Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MariaDB"></a>

Se prima creavi CloudFormation risorse, elimina lo CloudFormation stack dopo esserti connesso ed esplorato l'istanza EC2 e l'istanza DB di esempio, in modo che non ti vengano più addebitati costi.

**Per eliminare le risorse CloudFormation**

1. Apri la CloudFormation console.

1. Nella pagina **Stacks** della CloudFormation console, seleziona lo stack principale (lo stack senza il nome VPCStack BastionStack o RDSNS).

1. Scegli **Elimina**.

1. Quando viene richiesta la conferma, seleziona **Elimina stack**.

*Per ulteriori informazioni sull'eliminazione di uno stack in CloudFormation, consulta Eliminazione di uno stack sulla console nella [Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) per l'utente. CloudFormation AWS CloudFormation *

## (Facoltativo) Connessione dell'istanza database a una funzione Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MariaDB"></a>

Puoi anche connettere l'istanza database RDS per MariaDB a una risorsa di calcolo serverless Lambda. Le funzioni Lambda consentono di eseguire il codice senza il provisioning o la gestione dell'infrastruttura. Una funzione Lambda consente inoltre di rispondere automaticamente alle richieste di esecuzione del codice su qualsiasi scala, da una dozzina di eventi al giorno a centinaia al secondo. Per ulteriori informazioni, consulta [Connessione automatica di una funzione Lambda e di un'istanza database](lambda-rds-connect.md).

# Creazione e connessione a un'istanza database Microsoft SQL Server
<a name="CHAP_GettingStarted.CreatingConnecting.SQLServer"></a>

Questo tutorial illustra come creare un'istanza EC2 e un'istanza database RDS per Microsoft SQL Server. Il tutorial mostra come accedere all'istanza database dall'istanza EC2 utilizzando il client Microsoft SQL Server Management Studio. Come best practice, questo tutorial spiega come creare un'istanza database privata in un cloud privato virtuale (VPC). Nella maggior parte dei casi, le risorse presenti nello stesso VPC, come le istanze EC2, possono accedere all'istanza database, mentre le risorse esterne al VPC non possono accedervi. 

Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC. In una zona di disponibilità, l'istanza EC2 si trova nella sottorete pubblica mentre l'istanza database si trova nella sottorete privata.

**Importante**  
La creazione di un AWS account è gratuita. Tuttavia, completando questo tutorial, potresti incorrere in costi per le AWS risorse che utilizzi. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Istanza EC2 e istanza database Microsoft SQL Server.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-sqlserver.png)


Questo tutorial consente di creare le risorse utilizzando uno dei seguenti metodi:

1. Usa ‐ e Console di gestione AWS [Crea un’istanza database SQL Server](#CHAP_GettingStarted.Creating.SQLServer) [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)

1. Utilizzare CloudFormation per creare l'istanza del database e l'istanza EC2 ‐ [(Facoltativo) Crea VPC, istanza EC2 e istanza SQL Server utilizzando CloudFormation](#CHAP_GettingStarted.CFN.SQLServer) 

Il primo metodo utilizza **Creazione semplice** per creare un’istanza database SQL Server privata con la Console di gestione AWS. In questo caso, specifichi solo il tipo di motore di database, la dimensione dell’istanza database e l’identificatore dell’istanza database. **Easy create (Creazione rapida)** utilizza l'impostazione predefinita per altre opzioni di configurazione. 

Quando utilizzi la **Creazione standard** invece, puoi specificare diverse opzioni di configurazione al momento della creazione di un’istanza database. Tali opzioni includono impostazioni per la disponibilità, la sicurezza, i backup e la manutenzione. Per creare un'istanza database pubblica, è necessario utilizzare la **Creazione standard**. Per informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Prerequisiti](#CHAP_GettingStarted.Prerequisites.SQLServer)
+ [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.SQLServer.EC2)
+ [Crea un’istanza database SQL Server](#CHAP_GettingStarted.Creating.SQLServer)
+ [(Facoltativo) Crea VPC, istanza EC2 e istanza SQL Server utilizzando CloudFormation](#CHAP_GettingStarted.CFN.SQLServer)
+ [Esegui la connessione all’istanza database SQL Server](#CHAP_GettingStarted.Connecting.SQLServer)
+ [Esame dell’istanza database SQL Server di esempio](#CHAP_GettingStarted.SQLServer.Exploring)
+ [Elimina l’istanza EC2 e l’istanza database](#CHAP_GettingStarted.Deleting.SQLServer)
+ [(Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation](#CHAP_GettingStarted.DeletingCFN.SQLServer)
+ [(Facoltativo) Connessione dell'istanza database a una funzione Lambda](#CHAP_GettingStarted.ComputeConnect.SQLServer)

## Prerequisiti
<a name="CHAP_GettingStarted.Prerequisites.SQLServer"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Creazione di un’istanza EC2
<a name="CHAP_GettingStarted.Creating.SQLServer.EC2"></a>

Crea un'istanza Amazon EC2 da utilizzare per connetterti al database.

**Per creare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli quello che Regione AWS hai usato in precedenza per il database.

1. Seleziona **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Viene visualizzata la pagina **Avvia un'istanza**.

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **ec2-database-connect**.

   1. In **Immagini di applicazioni e sistema operativo (Amazon Machine Image)**, scegli **Windows**, quindi scegli **Microsoft Windows Server 2022 Base**. Mantieni le selezioni predefinite per le altre opzioni.  
![\[Scegli un'Amazon Machine Image.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial_ec2_sqlserver_create1.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) nella *Guida per l'utente di Amazon EC2 per istanze Windows*.

   1. Nel campo **Firewall (gruppi di sicurezza)** nella sezione **Impostazioni di rete**, scegliere **Consenti traffico RDP da** per connettersi all'istanza EC2. 

      È possibile scegliere **Il mio IP** se l'indirizzo IP visualizzato è corretto per le connessioni RDP. In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando RDP. Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) Un esempio di indirizzo IP è 192.0.2.1/32.

       In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso RDP, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando RDP. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per l'accesso alle istanze EC2 utilizzando RDP.

      L'immagine seguente mostra un esempio della sezione **Impostazioni di rete**.  
![\[Impostazioni di rete per un'istanza EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettingsRDSMS.png)

   1. Non modificare i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza EC2 nel pannello **Riepilogo** e, quando è tutto pronto, scegli **Avvia istanza**.

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2. 

1. Attendi che **Stato dell'istanza** diventi **In esecuzione** per l'istanza EC2 prima di continuare.

## Crea un’istanza database SQL Server
<a name="CHAP_GettingStarted.Creating.SQLServer"></a>

L'istanza database rappresenta l'elemento di base di Amazon RDS. Questo è l'ambiente dove esegui i tuoi database SQL Server.

In questo esempio, utilizzi **Creazione semplice** per creare una istanza database che esegue un motore di database SQL Server con una classe di istanza database db.t2.micro.

**Per creare una istanza database Microsoft SQL Server con l'opzione Creazione rapida**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della console Amazon RDS, scegli l'istanza database Regione AWS in cui desideri creare l'istanza DB.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Create database (Crea database)** e verificare che l'opzione **Easy Create (Creazione rapida)** sia selezionata.   
![\[Opzione Creazione semplice.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. In **Configuration (Configurazione)**, selezionare **Microsoft SQL Server**.

1. In **Edizione**, scegli **SQL Server Express Edition**.

1. Per **Dimensione istanza database**, seleziona **Piano gratuito**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.

1. Per l'**identificatore dell'istanza DB**, inserisci **database-test1**.

   La pagina **Create database (Crea database)** la pagina dovrebbe apparire simile alla seguente immagine. Per gli account con piano gratuito, viene visualizzato **Piano gratuito**. Per gli account con piano a pagamento, viene visualizzato **Sandbox**.  
![\[Engine options (Opzioni motore)\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver.png)

1. Per **Nome utente master**, inserisci un nome per l'utente master o lascia il nome predefinito.

1. Per configurare una connessione con l'istanza EC2 creata in precedenza, apri **Configura connessione EC2 - *opzionale***.

   Seleziona **Connetti a una risorsa di calcolo EC2**. Scegli l'istanza EC2 creata in precedenza.  
![\[Opzione Configura connessione EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Per utilizzare una password master generata automaticamente per l'istanza database, seleziona la casella **Genera automaticamente una password**.

   Per inserire la password master, deseleziona la casella **Auto generate a password (Genera automaticamente una password)** e inserisci la stessa password in **Master password (Password master)** e **Confirm password (Conferma password)**.

1. Apri **Visualizza le impostazioni predefinite per la creazione Semplice**.  
![\[Impostazioni predefinite di Easy create (Creazione rapida).\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-confirm.png)

   Puoi esaminare le impostazioni predefinite utilizzate con **Easy create (Creazione rapida)**. La colonna **Modificabile dopo la creazione del database** mostra le opzioni che puoi modificare dopo aver creato il database.
   + Se un'impostazione contiene **No** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database.
   + Se un'impostazione contiene **Sì** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database o modificare l'istanza database dopo averla creata per cambiare l'impostazione.

1. Scegliere **Crea database**.

   Per vedere nome utente e password per l'istanza database, seleziona **View credential details (Vedi dettagli delle credenziali)**.

   Per connetterti all'istanza database come utente principale, utilizza il nome utente e la password visualizzati.
**Importante**  
Non potrai visualizzare di nuovo la password dell'utente principale. Se non la registri, potresti doverla modificare.   
Se devi modificare la password dell'utente principale dopo che l'istanza database è disponibile, puoi modificare l'istanza database per eseguire tale operazione. Per ulteriori informazioni sulla modifica di un'istanza database , consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Nell'elenco **Database** seleziona il nome della nuova istanza database SQL Server per visualizzarne i dettagli.

   L'istanza database ha lo stato **Creazione in corso** fino a quando non è pronta per essere utilizzata.  
![\[Screenshot dei dettagli dell'istanza database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-sqlserver-launch.png)

   Quando lo stato cambia in **Available** (Disponibile), puoi connettersi all'istanza database. A seconda della classe di istanza database e della quantità di storage, prima che la nuova istanza sia disponibile possono trascorrere fino a 20 minuti.

## (Facoltativo) Crea VPC, istanza EC2 e istanza SQL Server utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer"></a>

Invece di usare la console per creare il tuo VPC, l'istanza EC2 e l'istanza di SQL Server, puoi usarla CloudFormation per fornire AWS risorse trattando l'infrastruttura come codice. Per aiutarti a organizzare AWS le tue risorse in unità più piccole e più gestibili, puoi utilizzare la funzionalità CloudFormation nested stack. Per ulteriori informazioni, consulta [Creazione di uno stack sulla CloudFormation console e [Utilizzo](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) degli](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) stack annidati. 

**Importante**  
CloudFormation è gratuito, ma le risorse che CloudFormation crea sono attive. Il costo di utilizzo standard per queste risorse sarà addebitato finché non vengono terminate. Per ulteriori informazioni, consulta [Prezzi di Amazon RDS per SQL Server](https://aws.amazon.com//rds/sqlserver/pricing).

Per creare le tue risorse utilizzando la CloudFormation console, completa i seguenti passaggi:
+ Scarica il CloudFormation modello
+ Configura le tue risorse utilizzando CloudFormation

### Scarica il CloudFormation modello
<a name="CHAP_GettingStarted.CFN.SQLServer.Step1"></a>

Un CloudFormation modello è un file di testo JSON o YAML che contiene le informazioni di configurazione sulle risorse che desideri creare nello stack. Questo modello crea anche un VPC e un host bastione per te insieme all’istanza RDS.

[Per scaricare il file modello, apri il seguente link, modello SQL Server. CloudFormation ](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-sqlserver-main.template.yaml)

Nella pagina Github, fare clic sul pulsante *Scarica file non elaborato* per salvare il file YAML.

### Configura le tue risorse utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.SQLServer.Step2"></a>

**Nota**  
Prima di iniziare questo processo, assicurati di avere una coppia di chiavi per un’istanza EC2 nel tuo Account AWS. Per ulteriori informazioni, consulta [Coppie di chiavi Amazon EC2 e istanze Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Quando si utilizza il CloudFormation modello, è necessario selezionare i parametri corretti per assicurarsi che le risorse vengano create correttamente. Segui la procedura riportata di seguito:

1. Accedi Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Crea stack**.

1. Nella sezione in cui specificare il modello, seleziona **Carica un file modello dal computer**, quindi **Avanti**.

1. Nella pagina **Specifica i dettagli dello stack**, impostare i seguenti parametri:

   1. Imposta il nome **dello stack** su. **SQLServerTestStack**

   1. In **Parametri**, imposta **Zone di disponibilità** selezionando tre zone di disponibilità.

   1. In **Configurazione host bastione di Linux**, per **Nome chiave**, seleziona una coppia di chiavi per accedere all’istanza EC2.

   1. Nelle impostazioni di **Configurazione host bastione di Linux**, imposta **Intervallo IP consentito** sul tuo indirizzo IP. Per connetterti alle istanze EC2 nel tuo VPC utilizzando Secure Shell (SSH), determina il tuo indirizzo IP pubblico utilizzando il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è 192.0.2.1/32.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

   1. In **Configurazione generale del database**, imposta **Classe di istanza del database** su **db.t3.micro**.

   1. Imposta **Database name** su **database-test1**.

   1. Per **Nome utente principale del database**, specifica il nome dell’utente master.

   1. Imposta **Gestisci password utente master di database con Secrets Manager** su `false` per questo tutorial.

   1. Per **Database password**, imposta una password di tua scelta. Ricorda questa password per ulteriori passaggi del tutorial.

   1. In **Database Storage configuration**, imposta **Database storage type** su **gp2**.

   1. In **Database Monitoring configuration**, imposta **Enable RDS Performance Insights** su false.

   1. Lascia i valori predefiniti per tutte le altre impostazioni. Fai clic su **Next** per continuare.

1. Nella pagina **Configura opzioni dello stack**, lasciare tutte le opzioni predefinite. Fai clic su **Next** per continuare.

1. Nella pagina **Rivedi stack**, seleziona **Invia** dopo aver verificato le opzioni del database e dell’host bastione di Linux.

Una volta completato il processo di creazione dello stack, visualizza gli stack con nomi *BastionStack*e *RDSNS per annotare le informazioni necessarie per connetterti* al database. Per ulteriori informazioni, vedere [Visualizzazione dei dati e delle risorse CloudFormation dello stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html) su. Console di gestione AWS

## Esegui la connessione all’istanza database SQL Server
<a name="CHAP_GettingStarted.Connecting.SQLServer"></a>

Nella procedura seguente, eseguirai la connessione all'istanza database utilizzando Microsoft SQL Server Management Studio (SSMS).

**Per connettersi all'istanza database RDS per SQL Server utilizzando SSMS**

1. Individuare l'endpoint (nome DNS) e il numero di porta per l'istanza database. 

   1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Nell'angolo in alto a destra della console Amazon RDS, scegli l' Regione AWS istanza DB.

   1. Nel pannello di navigazione, seleziona **Database**.

   1. Scegliere il nome dell'istanza database SQL Server per visualizzarne i dettagli. 

   1. Nella scheda **Connectivity (Connettività)**, copiare l'endpoint. Annotare anche il numero di porta. L'endpoint e il numero di porta sono necessari per la connessione all'istanza database.  
![\[Stabilisci la connessione a un'istanza database Microsoft SQL Server.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/SQLServerConnect2.png)

1. Esegui la connessione all'istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all'istanza Microsoft Windows](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows) nella *Guida per l'utente per istanze Windows di Amazon EC2*.

1. Installa il client SQL Server Management Studio (SSMS) di Microsoft.

   Per scaricare una versione autonoma di SSMS nell'istanza EC2, consulta l'argomento relativo al [download di SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) nella documentazione di Microsoft.

   1. Usa il menu Start per aprire Internet Explorer.

   1. Usa Internet Explorer per scaricare e installare una versione autonoma di SSMS. Se viene visualizzato un messaggio indicante che il sito non è attendibile, aggiungi il sito all'elenco dei siti attendibili.

1. Avvia SQL Server Management Studio (SSMS). 

   Viene visualizzata la finestra di dialogo **Connect to Server (Connettiti al server)**. 

1. Fornire le informazioni seguenti per l'istanza database di esempio: 

   1. In **Server type (Tipo di server)** scegliere **Database Engine (Motore di database)**. 

   1. Per **Server name (Nome server)**, inserire il nome DNS, seguito da una virgola e dal numero di porta (la porta predefinita è 1433). Ad esempio, il nome del server dovrebbe essere simile al seguente:

      ```
      database-test1.0123456789012.us-west-2.rds.amazonaws.com,1433
      ```

   1. In **Authentication (Autenticazione)** selezionare **SQL Server Authentication (Autenticazione SQL Server)**. 

   1. In **Accesso**, inserisci il nome utente scelto per l'istanza database di esempio. Questo è anche noto come nome utente master.

   1. In **Password** digitare la password scelta in precedenza per l'istanza database di esempio. Questa è anche nota come password utente master.

1. Scegliere **Connetti**. 

   Dopo qualche secondo, SSMS effettua la connessione all'istanza database. Per motivi di sicurezza, la best practice è utilizzare connessioni crittografate. Utilizza una connessione SQL Server non crittografata solo quando il client e il server sono nello stesso VPC e la rete è attendibile. Per ulteriori informazioni sull'uso di connessioni crittografate, consulta [Utilizzo di SSL con un'istanza database Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md).

Per ulteriori informazioni sulla connessione a un'istanza database Microsoft SQL Server, consulta [Connessione all’istanza database Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Per informazioni sui problemi di connessione, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

## Esame dell’istanza database SQL Server di esempio
<a name="CHAP_GettingStarted.SQLServer.Exploring"></a>

È possibile esplorare l'istanza database di esempio utilizzando Microsoft SQL Server Management Studio (SSMS).

**Per esaminare un'istanza database utilizzando SSMS**

1. L'istanza database SQL Server integra i database di sistema standard di SQL Server (master, model, msdb e tempdb). Per esaminare i database di sistema, procedere nel modo seguente: 

   1. In SSMS, nel menu **View (Visualizza)**, scegliere **Object Explorer**.

   1. Espandi l'istanza database, seleziona **Database** quindi **Database di sistema** come mostrato di seguito.   
![\[Object Explorer che visualizza i database di sistema.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/SQL-SSMS-SystemDBs.png)

   L'istanza database di SQL Server viene inoltre fornita con un database denominato `rdsadmin`. Amazon RDS usa questo database per archiviare gli oggetti usati per gestire il database. Il database `rdsadmin` include anche le stored procedure che puoi eseguire per svolgere attività avanzate. 

1. Puoi iniziare a creare database personali ed eseguire normalmente query sull'istanza e sui database. Per eseguire una query di test dell'istanza database di esempio, utilizzare la seguente procedura: 

   1. In SSMS, nel menu **File** seleziona **Nuovo**, quindi scegliere **Query con connessione corrente**. 

   1. Inserisci la query SQL seguente.

      ```
      select @@VERSION
      ```

   1. Eseguire la query. SSMS restituisce la versione di SQL Server dell'istanza database Amazon RDS.   
![\[Finestra della query SQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/SQL-Connect-Query.png)

## Elimina l’istanza EC2 e l’istanza database
<a name="CHAP_GettingStarted.Deleting.SQLServer"></a>

Dopo la connessione e l'esplorazione dell'istanza EC2 e dell'istanza database di esempio che hai creato, eliminale per evitare di ricevere l'addebito dei relativi costi.

Se in passato CloudFormation creavi risorse, salta questo passaggio e vai al passaggio successivo.

**Per eliminare l'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza EC2 e scegli **Stato istanza, Termina istanza**.

1. Quando viene richiesta la conferma, seleziona **Interrompi**.

Per ulteriori informazioni sull'eliminazione di un'istanza EC2, consulta [Interruzione di un'istanza](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/terminating-instances.html) nella *Guida per l'utente per istanze Windows*.

**Per eliminare l'istanza database senza snapshot database finale**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere l'istanza database da eliminare.

1. In **Actions (Azioni)**, selezionare **Delete (Elimina)**.

1. Deseleziona **Creare uno snapshot finale?** e **Conserva backup automatizzati**.

1. Completa la conferma e scegli **Elimina**. 

## (Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.SQLServer"></a>

Se prima creavi CloudFormation risorse, elimina lo CloudFormation stack dopo esserti connesso ed esplorato l'istanza EC2 e l'istanza DB di esempio, in modo che non ti vengano più addebitati costi.

**Per eliminare le risorse CloudFormation**

1. Apri la CloudFormation console.

1. Nella pagina **Stacks** CloudFormationconsole, seleziona lo stack principale (lo stack senza il nome VPCStack BastionStack o RDSNS).

1. Scegli **Elimina**.

1. Quando viene richiesta la conferma, seleziona **Elimina stack**.

*Per ulteriori informazioni sull'eliminazione di uno stack in CloudFormation, consulta Eliminazione di uno stack sulla console nella [Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) per l'utente. CloudFormation AWS CloudFormation *

## (Facoltativo) Connessione dell'istanza database a una funzione Lambda
<a name="CHAP_GettingStarted.ComputeConnect.SQLServer"></a>

Puoi anche connettere la tua istanza database RDS per SQL Server a una risorsa di elaborazione serverless Lambda. Le funzioni Lambda consentono di eseguire il codice senza il provisioning o la gestione dell'infrastruttura. Una funzione Lambda consente inoltre di rispondere automaticamente alle richieste di esecuzione del codice su qualsiasi scala, da una dozzina di eventi al giorno a centinaia al secondo. Per ulteriori informazioni, consulta [Connessione automatica di una funzione Lambda e di un'istanza database](lambda-rds-connect.md).

# Creazione e connessione di un'istanza database MySQL
<a name="CHAP_GettingStarted.CreatingConnecting.MySQL"></a>

Questo tutorial illustra come creare un'istanza EC2 e un'istanza database RDS per MySQL. Il tutorial mostra come accedere all'istanza database dall'istanza EC2 utilizzando il client MySQL standard. Come best practice, questo tutorial spiega come creare un'istanza database privata in un cloud privato virtuale (VPC). Nella maggior parte dei casi, le risorse presenti nello stesso VPC, come le istanze EC2, possono accedere all'istanza database, mentre le risorse esterne al VPC non possono accedervi.

Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC. In una zona di disponibilità, l'istanza EC2 si trova nella sottorete pubblica mentre l'istanza database si trova nella sottorete privata.

**Importante**  
La creazione di un AWS account è gratuita. Tuttavia, completando questo tutorial, potresti incorrere in costi per le AWS risorse che utilizzi. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Istanza EC2 e istanza database MySQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-mysql.png)


Questo tutorial consente di creare le risorse utilizzando uno dei seguenti metodi:

1. Usa ‐ e Console di gestione AWS [Creare un’istanza database MySQL.](#CHAP_GettingStarted.Creating.MySQL) [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.MySQL.EC2) 

1. Utilizzare CloudFormation per creare l'istanza del database e l'istanza EC2 ‐ [(Facoltativo) Crea VPC, istanza EC2 e istanza MySQL utilizzando CloudFormation](#CHAP_GettingStarted.CFN.MySQL) 

Il primo metodo utilizza **Creazione semplice** per creare un’istanza database MySQL privata con la Console di gestione AWS. In questo caso, specifichi solo il tipo di motore di database, la dimensione dell’istanza database e l’identificatore dell’istanza database. **Easy create (Creazione rapida)** utilizza l'impostazione predefinita per altre opzioni di configurazione.

Quando utilizzi la **Creazione standard** invece, puoi specificare diverse opzioni di configurazione al momento della creazione di un’istanza database. Tali opzioni includono impostazioni per la disponibilità, la sicurezza, i backup e la manutenzione. Per creare un'istanza database pubblica, è necessario utilizzare la **Creazione standard**. Per informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Prerequisiti](#CHAP_GettingStarted.Prerequisites.MySQL)
+ [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.MySQL.EC2)
+ [Creare un’istanza database MySQL.](#CHAP_GettingStarted.Creating.MySQL)
+ [(Facoltativo) Crea VPC, istanza EC2 e istanza MySQL utilizzando CloudFormation](#CHAP_GettingStarted.CFN.MySQL)
+ [Connessione a un'istanza database MySQL](#CHAP_GettingStarted.Connecting.MySQL)
+ [Elimina l’istanza EC2 e l’istanza database](#CHAP_GettingStarted.Deleting.MySQL)
+ [(Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation](#CHAP_GettingStarted.DeletingCFN.MySQL)
+ [(Facoltativo) Connessione dell'istanza database a una funzione Lambda](#CHAP_GettingStarted.ComputeConnect.MySQL)

## Prerequisiti
<a name="CHAP_GettingStarted.Prerequisites.MySQL"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Creazione di un’istanza EC2
<a name="CHAP_GettingStarted.Creating.MySQL.EC2"></a>

Crea un'istanza Amazon EC2 da utilizzare per connetterti al database.

**Per creare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli l'istanza EC2 Regione AWS in cui desideri creare l'istanza EC2.

1. Seleziona **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Viene visualizzata la pagina **Avvia un'istanza**.

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **ec2-database-connect**.

   1. In **Immagini applicazione e sistema operativo (Amazon Machine Image)**, scegli **Amazon Linux**, quindi **AMI Amazon Linux 2023**. Mantieni le selezioni predefinite per le altre opzioni.  
![\[Scegli un'Amazon Machine Image.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) nella *Guida per l’utente di Amazon EC2*.

   1. In **Consenti traffico SSH**, nell'area **Impostazioni di rete** scegliere l'origine delle connessioni SSH all'istanza EC2. 

      È possibile scegliere **My IP** (Il mio IP) se l'indirizzo IP visualizzato è corretto per le connessioni SSH. In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando Secure Shell (SSH). Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) Un esempio di indirizzo IP è 192.0.2.1/32.

       In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

      L'immagine seguente mostra un esempio della sezione **Impostazioni di rete**.  
![\[Impostazioni di rete per un'istanza EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Lascia i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza EC2 nel pannello **Riepilogo** e, quando è tutto pronto, scegli **Avvia istanza**.

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2, quindi seleziona l'istanza EC2.

1. Nella scheda **Dettagli**, annota i seguenti valori, necessari quando ti connetti tramite SSH:

   1. Nel **riepilogo dell'istanza**, annota il valore per **Public IPv4 DNS**.  
![\[Il nome DNS pubblico EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. In **Dettagli istanza**, annota il valore visualizzato in **Nome coppia di chiavi**.  
![\[Il nome della coppia di chiavi EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Attendi che **Stato dell'istanza** diventi **In esecuzione** per l'istanza EC2 prima di continuare.

## Creare un’istanza database MySQL.
<a name="CHAP_GettingStarted.Creating.MySQL"></a>

L'istanza database rappresenta l'elemento di base di Amazon RDS. Questo è l'ambiente dove esegui i tuoi database MySQL.

In questo esempio, utilizzi la **Creazione semplice** per creare un'istanza database che esegue un motore di database MySQL con una classe di istanza database db.t3.micro.

**Per creare una istanza database MySQL con Easy Create (Creazione rapida)**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della console Amazon RDS, scegli quella che Regione AWS hai usato in precedenza per l'istanza EC2.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Create database (Crea database)** e verificare che l'opzione **Easy Create (Creazione rapida)** sia selezionata.   
![\[Opzione Creazione semplice.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. In **Configuration (Configurazione)**, seleziona **MySQL**.

1. Per **DB instance size (Dimensione istanza database)**, seleziona **Free tier (Piano gratuito)**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.

1. Per l'**identificatore dell'istanza DB**, inserisci **database-test1**.

1. Per **Nome utente master**, inserisci un nome per l'utente master o lascia il nome predefinito.

   La pagina **Create database (Crea database)** la pagina dovrebbe apparire simile alla seguente immagine. Per gli account con piano gratuito, viene visualizzato **Piano gratuito**. Per gli account con piano a pagamento, viene visualizzato **Sandbox**.  
![\[Pagina Crea database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-mysql.png)

1. Per utilizzare una password master generata automaticamente per l'istanza database, seleziona **Genera automaticamente una password**.

   Per inserire la password master, deseleziona la casella **Genera automaticamente una password** e inserisci la stessa password in **Password master** e **Conferma password**.

1. Per configurare una connessione con l'istanza EC2 creata in precedenza, apri **Configura connessione EC2 - *opzionale***.

   Seleziona **Connetti a una risorsa di calcolo EC2**. Scegli l'istanza EC2 creata in precedenza.  
![\[Opzione Configura connessione EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. (Facoltativo) Aprire **View default settings for Easy create (Visualizza impostazioni predefinite per Creazione rapida)**.  
![\[Impostazioni predefinite di Easy create (Creazione rapida).\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-view-default-mysql.png)

   Puoi esaminare le impostazioni predefinite utilizzate con **Easy create (Creazione rapida)**. La colonna **Modificabile dopo la creazione del database** mostra le opzioni che puoi modificare dopo aver creato il database.
   + Se un'impostazione contiene **No** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database.
   + Se un'impostazione contiene **Sì** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database o modificare l'istanza database dopo averla creata per cambiare l'impostazione.

1. Scegliere **Crea database**.

   Per vedere nome utente e password per l'istanza database, seleziona **View credential details (Vedi dettagli delle credenziali)**.

   Per connetterti all'istanza database come utente principale, utilizza il nome utente e la password visualizzati.
**Importante**  
Non potrai visualizzare di nuovo la password dell'utente principale. Se non la registri, potresti doverla modificare.   
Se devi modificare la password dell'utente principale dopo che l'istanza database è disponibile, puoi modificare l'istanza database per eseguire tale operazione. Per ulteriori informazioni sulla modifica di un'istanza database , consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Nell'elenco **Database** seleziona il nome della nuova istanza database MySQL per visualizzarne i dettagli.

   L'istanza database ha lo stato **Creazione in corso** fino a quando non è pronta per essere utilizzata.  
![\[Dettagli dell'istanza database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/MySQL-Launch06.png)

   Quando lo stato cambia in **Available** (Disponibile), puoi connettersi all'istanza database. A seconda della classe di istanza database e della quantità di storage, prima che la nuova istanza sia disponibile possono trascorrere fino a 20 minuti.

## (Facoltativo) Crea VPC, istanza EC2 e istanza MySQL utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL"></a>

Invece di usare la console per creare il tuo VPC, l'istanza EC2 e l'istanza MySQL, puoi usarla CloudFormation per fornire AWS risorse trattando l'infrastruttura come codice. Per aiutarti a organizzare AWS le tue risorse in unità più piccole e più gestibili, puoi utilizzare la funzionalità nested stack. CloudFormation Per ulteriori informazioni, consulta [Creare uno stack sulla CloudFormation console e [Lavorare](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) con gli stack](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) annidati. 

**Importante**  
CloudFormation è gratuito, ma le risorse che CloudFormation crea sono attive. Il costo di utilizzo standard per queste risorse sarà addebitato finché non vengono terminate. Per ulteriori informazioni, consulta [Prezzi di Amazon RDS per MySQL](https://aws.amazon.com//rds/mysql/pricing).

Per creare le tue risorse utilizzando la CloudFormation console, completa i seguenti passaggi:
+ Scarica il CloudFormation modello
+ Configura le tue risorse utilizzando CloudFormation

### Scarica il CloudFormation modello
<a name="CHAP_GettingStarted.CFN.MySQL.Step1"></a>

Un CloudFormation modello è un file di testo JSON o YAML che contiene le informazioni di configurazione sulle risorse che desideri creare nello stack. Questo modello crea anche un VPC e un host bastione per te insieme all’istanza RDS.

Per scaricare il file modello, apri il seguente link, modello [ CloudFormation MySQL](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-mysql-main.template.yaml).

Nella pagina Github, fare clic sul pulsante *Scarica file non elaborato* per salvare il file YAML.

### Configura le tue risorse usando CloudFormation
<a name="CHAP_GettingStarted.CFN.MySQL.Step2"></a>

**Nota**  
Prima di iniziare questo processo, assicurati di avere una coppia di chiavi per un’istanza EC2 nel tuo Account AWS. Per ulteriori informazioni, consulta [Coppie di chiavi Amazon EC2 e istanze Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Quando si utilizza il CloudFormation modello, è necessario selezionare i parametri corretti per assicurarsi che le risorse vengano create correttamente. Segui la procedura riportata di seguito:

1. Accedi Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Crea stack**.

1. Nella sezione in cui specificare il modello, seleziona **Carica un file modello dal computer**, quindi **Avanti**.

1. Nella pagina **Specifica i dettagli dello stack**, impostare i seguenti parametri:

   1. **Imposta il **nome dello stack** su My Stack. SQLTest**

   1. In **Parametri**, imposta **Zone di disponibilità** selezionando tre zone di disponibilità.

   1. In **Configurazione host bastione di Linux**, per **Nome chiave**, seleziona una coppia di chiavi per accedere all’istanza EC2.

   1. Nelle impostazioni di **Configurazione host bastione di Linux**, imposta **Intervallo IP consentito** sul tuo indirizzo IP. Per connetterti alle istanze EC2 nel tuo VPC utilizzando Secure Shell (SSH), determina il tuo indirizzo IP pubblico utilizzando il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è 192.0.2.1/32.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

   1. In **Configurazione generale del database**, imposta **Classe di istanza del database** su **db.t3.micro**.

   1. Imposta **Database name** su **database-test1**.

   1. Per **Nome utente principale del database**, specifica il nome dell’utente master.

   1. Imposta **Gestisci password utente master di database con Secrets Manager** su `false` per questo tutorial.

   1. Per **Database password**, imposta una password di tua scelta. Ricorda questa password per ulteriori passaggi del tutorial.

   1. In **Database Storage configuration**, imposta **Database storage type** su **gp2**.

   1. In **Database Monitoring configuration**, imposta **Enable RDS Performance Insights** su false.

   1. Lascia i valori predefiniti per tutte le altre impostazioni. Fai clic su **Next** per continuare.

1. Nella pagina **Configura opzioni dello stack**, lasciare tutte le opzioni predefinite. Fai clic su **Next** per continuare.

1. Nella pagina **Rivedi stack**, seleziona **Invia** dopo aver verificato le opzioni del database e dell’host bastione di Linux.

Una volta completato il processo di creazione dello stack, visualizza gli stack con nomi *BastionStack*e *RDSNS per annotare le informazioni necessarie per connetterti* al database. Per ulteriori informazioni, vedere [Visualizzazione dei dati e delle risorse CloudFormation dello stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html) su. Console di gestione AWS

## Connessione a un'istanza database MySQL
<a name="CHAP_GettingStarted.Connecting.MySQL"></a>

È possibile utilizzare qualsiasi applicazione client SQL standard per la connessione all'istanza database. In questo esempio, ti connetti a un'istanza database MySQL utilizzando il client della linea di comando mysql.

**Per eseguire la connessione a un'istanza database MySQL**

1. Individuare l'endpoint (nome DNS) e il numero di porta per l'istanza database. 

   1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Nell'angolo in alto a destra della console Amazon RDS, scegli l' Regione AWS istanza DB.

   1. Nel pannello di navigazione, seleziona **Database**.

   1. Scegliere il nome dell'istanza database MySQL per visualizzarne i dettagli. 

   1. Nella scheda **Connectivity & security (Connettività e sicurezza)**, copiare l'endpoint. Annotare anche il numero di porta. L'endpoint e il numero di porta sono necessari per la connessione all'istanza database.   
![\[Connessione a un'istanza database MySQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/MySQLConnect1.png)

1. Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all’istanza di Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella *Guida per l’utente per di Amazon EC2*.

   Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Ad esempio, supponi che `ec2-database-connect-key-pair.pem` sia archiviato in `/dir1` su Linux e che il DNS IPv4 pubblico per l'istanza EC2 sia `ec2-12-345-678-90.compute-1.amazonaws.com`. Il comando SSH sarà simile al seguente:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Ottieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A questo scopo, eseguire il comando seguente.
**Nota**  
L'opzione `-y` installa gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.

   ```
   sudo dnf update -y
   ```

1.  Per installare il client della linea di comando MySQL da MariaDB su Amazon Linux 2023, esegui il comando seguente:

   ```
   sudo dnf install mariadb105
   ```

1. Effettua la connessione all'istanza database MySQL. Ad esempio, specifica il comando seguente: Questa azione consente di connetterti all'istanza database MySQL utilizzando il client MySQL.

   Sostituisci l'endpoint dell'istanza database (nome DNS) per `endpoint` e il nome utente master utilizzato per `admin`. Devi fornire la password master utilizzata quando viene richiesta una password.

   ```
   mysql -h endpoint -P 3306 -u admin -p
   ```

   Dopo aver immesso la password per l'utente, l'output dovrebbe essere analogo a quanto mostrato di seguito.

   ```
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MySQL connection id is 3082
   Server version: 8.0.28 Source distribution
   
   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
   
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
   
   MySQL [(none)]>
   ```

   Per ulteriori informazioni sulla connessione a un'istanza database di MySQL, consulta [Connessione all’istanza database MySQL](USER_ConnectToInstance.md). In caso di mancata connessione all'istanza database, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Per motivi di sicurezza, la best practice è utilizzare connessioni crittografate. Utilizzare una connessione MySQL non crittografata solo quando il client e il server sono nello stesso VPC e la rete è attendibile. Per ulteriori informazioni sull'uso di connessioni crittografate, consulta [Connessione alla tua istanza DB MySQL su Amazon RDS SSL/TLS dal client a riga di comando MySQL (crittografato)](USER_ConnectToInstanceSSL.CLI.md).

1. Eseguire comandi SQL.

   Ad esempio, il seguente comando SQL mostra la data e l'ora correnti:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Elimina l’istanza EC2 e l’istanza database
<a name="CHAP_GettingStarted.Deleting.MySQL"></a>

Dopo la connessione e l'esplorazione dell'istanza EC2 e dell'istanza database di esempio che hai creato, eliminale per evitare di ricevere l'addebito dei relativi costi.

Se in passato CloudFormation creavi risorse, salta questo passaggio e vai al passaggio successivo.

**Per eliminare l'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza EC2 e scegli **Stato istanza, Termina istanza**.

1. Quando viene richiesta la conferma, seleziona **Interrompi**.

Per ulteriori informazioni sull’eliminazione di un’istanza EC2, consulta [Interruzione di un’istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l’utente di Amazon EC2*.

**Per eliminare l'istanza database senza snapshot database finale**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere l'istanza database da eliminare.

1. In **Actions (Azioni)**, selezionare **Delete (Elimina)**.

1. Deseleziona **Creare uno snapshot finale?** e **Conserva backup automatizzati**.

1. Completa la conferma e scegli **Elimina**. 

## (Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.MySQL"></a>

Se prima creavi CloudFormation risorse, elimina lo CloudFormation stack dopo esserti connesso ed esplorato l'istanza EC2 e l'istanza DB di esempio, in modo che non ti vengano più addebitati costi.

**Per eliminare le risorse CloudFormation**

1. Apri la CloudFormation console.

1. Nella pagina **Stacks** CloudFormationconsole, seleziona lo stack principale (lo stack senza il nome VPCStack BastionStack o RDSNS).

1. Scegli **Elimina**.

1. Quando viene richiesta la conferma, seleziona **Elimina stack**.

*Per ulteriori informazioni sull'eliminazione di uno stack in CloudFormation, consulta Eliminazione di uno stack sulla console nella [Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) per l'utente. CloudFormation AWS CloudFormation *

## (Facoltativo) Connessione dell'istanza database a una funzione Lambda
<a name="CHAP_GettingStarted.ComputeConnect.MySQL"></a>

Puoi anche connettere la tua istanza database RDS per MySQL a una risorsa di elaborazione serverless Lambda. Le funzioni Lambda consentono di eseguire il codice senza il provisioning o la gestione dell'infrastruttura. Una funzione Lambda consente inoltre di rispondere automaticamente alle richieste di esecuzione del codice su qualsiasi scala, da una dozzina di eventi al giorno a centinaia al secondo. Per ulteriori informazioni, consulta [Connessione automatica di una funzione Lambda e di un'istanza database](lambda-rds-connect.md).

# Creazione e connessione a un'istanza database Oracle
<a name="CHAP_GettingStarted.CreatingConnecting.Oracle"></a>

Questo tutorial illustra come creare un'istanza EC2 e un'istanza database RDS per Oracle. Il tutorial mostra come accedere all'istanza database dall'istanza EC2 utilizzando il client Oracle standard. Come best practice, questo tutorial spiega come creare un'istanza database privata in un cloud privato virtuale (VPC). Nella maggior parte dei casi, le risorse presenti nello stesso VPC, come le istanze EC2, possono accedere all'istanza database, mentre le risorse esterne al VPC non possono accedervi.

Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC. In una zona di disponibilità, l'istanza EC2 si trova nella sottorete pubblica mentre l'istanza database si trova nella sottorete privata.

**Importante**  
Non ci sono costi per la creazione di un AWS account. Tuttavia, completando questo tutorial, potresti incorrere in costi per le AWS risorse che utilizzi. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Istanza EC2 e istanza database Oracle.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-oracle.png)


Questo tutorial ti consente di creare le risorse utilizzando uno dei seguenti metodi:

1. Usa ‐ e Console di gestione AWS [Fase 2: creazione di un'istanza database Oracle](#CHAP_GettingStarted.Creating.Oracle) [Fase 1: creazione di un'istanza EC2](#CHAP_GettingStarted.Creating.Oracle.EC2) 

1. Utilizzare CloudFormation per creare l'istanza del database e l'istanza EC2 ‐ [(Facoltativo) Crea VPC, istanza EC2 e istanza Oracle DB utilizzando CloudFormation](#CHAP_GettingStarted.CFN.Oracle) 

Il primo metodo utilizza **Creazione semplice** per creare un’istanza database Oracle privata con la Console di gestione AWS. In questo caso, specifichi solo il tipo di motore di database, la dimensione dell’istanza database e l’identificatore dell’istanza database. **Easy create (Creazione rapida)** utilizza l'impostazione predefinita per altre opzioni di configurazione.

Quando utilizzi la **Creazione standard** invece, puoi specificare diverse opzioni di configurazione al momento della creazione di un’istanza database. Tali opzioni includono impostazioni per la disponibilità, la sicurezza, i backup e la manutenzione. Per creare un'istanza database pubblica, è necessario utilizzare la **Creazione standard**. Per informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Prerequisiti](#CHAP_GettingStarted.Prerequisites.Oracle)
+ [Fase 1: creazione di un'istanza EC2](#CHAP_GettingStarted.Creating.Oracle.EC2)
+ [Fase 2: creazione di un'istanza database Oracle](#CHAP_GettingStarted.Creating.Oracle)
+ [(Facoltativo) Crea VPC, istanza EC2 e istanza Oracle DB utilizzando CloudFormation](#CHAP_GettingStarted.CFN.Oracle)
+ [Fase 3: connessione del client SQL a un'istanza database Oracle.](#CHAP_GettingStarted.Connecting.Oracle)
+ [Fase 4: eliminazione dell'istanza EC2 e dell'istanza database](#CHAP_GettingStarted.Deleting.Oracle)
+ [(Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation](#CHAP_GettingStarted.DeletingCFN.Oracle)
+ [(Facoltativo) Connessione dell'istanza database a una funzione Lambda](#CHAP_GettingStarted.ComputeConnect.Oracle)

## Prerequisiti
<a name="CHAP_GettingStarted.Prerequisites.Oracle"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Fase 1: creazione di un'istanza EC2
<a name="CHAP_GettingStarted.Creating.Oracle.EC2"></a>

Crea un'istanza Amazon EC2 da utilizzare per connetterti al database.

**Per creare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli l'istanza EC2 Regione AWS in cui desideri creare l'istanza EC2.

1. Seleziona **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Viene visualizzata la pagina **Avvia un'istanza**.

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **ec2-database-connect**.

   1. In **Immagini applicazione e sistema operativo (Amazon Machine Image)**, scegli **Amazon Linux**, quindi **AMI Amazon Linux 2023**. Mantieni le selezioni predefinite per le altre opzioni.  
![\[Scegli un'Amazon Machine Image.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) nella *Guida per l’utente di Amazon EC2*.

   1. In **Consenti traffico SSH**, nell'area **Impostazioni di rete** scegliere l'origine delle connessioni SSH all'istanza EC2. 

      È possibile scegliere **My IP** (Il mio IP) se l'indirizzo IP visualizzato è corretto per le connessioni SSH. In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando Secure Shell (SSH). Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) Un esempio di indirizzo IP è 192.0.2.1/32.

       In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

      L'immagine seguente mostra un esempio della sezione **Impostazioni di rete**.  
![\[Impostazioni di rete per un'istanza EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Lascia i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza EC2 nel pannello **Riepilogo** e, quando è tutto pronto, scegli **Avvia istanza**.

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2, quindi seleziona l'istanza EC2.

1. Nella scheda **Dettagli**, annota i seguenti valori, necessari quando ti connetti tramite SSH:

   1. Nel **riepilogo dell'istanza**, annota il valore per **Public IPv4 DNS**.  
![\[Il nome DNS pubblico EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. In **Dettagli istanza**, annota il valore visualizzato in **Nome coppia di chiavi**.  
![\[Il nome della coppia di chiavi EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Attendi che **Stato dell'istanza** diventi **In esecuzione** per l'istanza EC2 prima di continuare.

## Fase 2: creazione di un'istanza database Oracle
<a name="CHAP_GettingStarted.Creating.Oracle"></a>

L'istanza database rappresenta l'elemento di base di Amazon RDS. Questo è l'ambiente dove esegui i tuoi database Oracle.

Per questo esempio, utilizza **Creazione semplice** per creare una istanza database che esegue un motore di database Oracle con una classe di istanza database db.m5.large.

**Per creare una istanza database Oracle con Creazione semplice**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della console Amazon RDS, scegli l'istanza database Regione AWS in cui desideri creare l'istanza DB.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Create database (Crea database)** e verificare che l'opzione **Easy Create (Creazione rapida)** sia selezionata.   
![\[Opzione Creazione semplice.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. In **Configuration (Configurazione)**, seleziona **Oracle**.

1. Per **DB instance size (Dimensione istanza database)**, seleziona **Dev/Test**.

1. Per l'**identificatore dell'istanza DB**, inserisci **database-test1**.

1. Per **Nome utente master**, inserisci un nome per l'utente master o lascia il nome predefinito.

   La pagina **Create database (Crea database)** la pagina dovrebbe apparire simile alla seguente immagine.  
![\[Pagina Crea database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-oracle2.png)

1. Per utilizzare una password master generata automaticamente per l'istanza database, seleziona **Genera automaticamente una password**.

   Per inserire la password master, deseleziona la casella **Genera automaticamente una password** e inserisci la stessa password in **Password master** e **Conferma password**.

1. Per configurare una connessione con l'istanza EC2 creata in precedenza, apri **Configura connessione EC2 - *opzionale***.

   Seleziona **Connetti a una risorsa di calcolo EC2**. Scegli l'istanza EC2 creata in precedenza.  
![\[Opzione Configura connessione EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Apri **Visualizza le impostazioni predefinite per la creazione Semplice**.  
![\[Impostazioni predefinite di Easy create (Creazione rapida).\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-view-default-Oracle.png)

   Puoi esaminare le impostazioni predefinite utilizzate con **Easy create (Creazione rapida)**. La colonna **Modificabile dopo la creazione del database** mostra le opzioni che puoi modificare dopo aver creato il database.
   + Se un'impostazione contiene **No** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database.
   + Se un'impostazione contiene **Sì** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database o modificare l'istanza database dopo averla creata per cambiare l'impostazione.

1. Scegliere **Crea database**.

   Per vedere nome utente e password per l'istanza database, seleziona **View credential details (Vedi dettagli delle credenziali)**.

   Per connetterti all'istanza database come utente principale, utilizza il nome utente e la password visualizzati.
**Importante**  
Non potrai visualizzare di nuovo la password dell'utente principale. Se non la registri, potresti doverla modificare.   
Se devi modificare la password dell'utente principale dopo che l'istanza database è disponibile, puoi modificare l'istanza database per eseguire tale operazione. Per ulteriori informazioni sulla modifica di un'istanza database , consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Nell'elenco **Database** seleziona il nome della nuova istanza database Oracle per visualizzarne i dettagli.

   L'istanza database ha lo stato **Creazione in corso** fino a quando non è pronta per essere utilizzata.  
![\[Dettagli dell'istanza database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Oracle-Launch05.png)

   Quando lo stato cambia in **Available** (Disponibile), puoi connettersi all'istanza database. A seconda della classe di istanza database e della quantità di storage, prima che la nuova istanza sia disponibile possono trascorrere fino a 20 minuti. Durante la creazione dell'istanza database, puoi passare alla fase successiva e creare un'istanza EC2.

## (Facoltativo) Crea VPC, istanza EC2 e istanza Oracle DB utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle"></a>

Invece di utilizzare la console per creare il tuo VPC, l'istanza EC2 e l'istanza Oracle DB, puoi utilizzarla CloudFormation per fornire AWS risorse trattando l'infrastruttura come codice. Per aiutarti a organizzare AWS le tue risorse in unità più piccole e più gestibili, puoi utilizzare la funzionalità CloudFormation nested stack. Per ulteriori informazioni, consulta [Creare uno stack sulla CloudFormation console e [Lavorare](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) con gli stack](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) annidati. 

**Importante**  
CloudFormation è gratuito, ma le risorse che CloudFormation crea sono attive. Il costo di utilizzo standard per queste risorse sarà addebitato finché non vengono terminate. Per ulteriori informazioni, consulta [Prezzi di Amazon RDS per Oracle](https://aws.amazon.com//rds/oracle/pricing).

Per creare le tue risorse utilizzando la CloudFormation console, completa i seguenti passaggi:
+ Passaggio 1: scarica il CloudFormation modello
+ Passaggio 2: configura le tue risorse utilizzando CloudFormation

### Scarica il CloudFormation modello
<a name="CHAP_GettingStarted.CFN.Oracle.Step1"></a>

Un CloudFormation modello è un file di testo JSON o YAML che contiene le informazioni di configurazione sulle risorse che desideri creare nello stack. Questo modello crea anche un VPC e un host bastione per te insieme all’istanza RDS.

[Per scaricare il file modello, apri il seguente link, Oracle template. CloudFormation ](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-oracle-main.template.yaml)

Nella pagina Github, fare clic sul pulsante *Scarica file non elaborato* per salvare il file YAML.

### Configura le tue risorse utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.Oracle.Step2"></a>

**Nota**  
Prima di iniziare questo processo, assicurati di avere una coppia di chiavi per un’istanza EC2 nel tuo Account AWS. Per ulteriori informazioni, consulta [Coppie di chiavi Amazon EC2 e istanze Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Quando si utilizza il CloudFormation modello, è necessario selezionare i parametri corretti per assicurarsi che le risorse vengano create correttamente. Segui la procedura riportata di seguito:

1. Accedi Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Crea stack**.

1. Nella sezione in cui specificare il modello, seleziona **Carica un file modello dal computer**, quindi **Avanti**.

1. Nella pagina **Specifica i dettagli dello stack**, impostare i seguenti parametri:

   1. Imposta il nome **dello stack** su. **OracleTestStack**

   1. In **Parametri**, imposta **Zone di disponibilità** selezionando tre zone di disponibilità.

   1. In **Configurazione host bastione di Linux**, per **Nome chiave**, seleziona una coppia di chiavi per accedere all’istanza EC2.

   1. Nelle impostazioni di **Configurazione host bastione di Linux**, imposta **Intervallo IP consentito** sul tuo indirizzo IP. Per connetterti alle istanze EC2 nel tuo VPC utilizzando Secure Shell (SSH), determina il tuo indirizzo IP pubblico utilizzando il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è 192.0.2.1/32.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

   1. In **Configurazione generale del database**, imposta **Classe di istanza del database** su **db.t3.micro**.

   1. Imposta **Database name** su **database-test1**.

   1. Per **Nome utente principale del database**, specifica il nome dell’utente master.

   1. Imposta **Gestisci password utente master di database con Secrets Manager** su `false` per questo tutorial.

   1. Per **Database password**, imposta una password di tua scelta. Ricorda questa password per ulteriori passaggi del tutorial.

   1. In **Database Storage configuration**, imposta **Database storage type** su **gp2**.

   1. In **Database Monitoring configuration**, imposta **Enable RDS Performance Insights** su false.

   1. Lascia i valori predefiniti per tutte le altre impostazioni. Fai clic su **Next** per continuare.

1. Nella pagina **Configura opzioni dello stack**, lasciare tutte le opzioni predefinite. Fai clic su **Next** per continuare.

1. Nella pagina **Rivedi stack**, seleziona **Invia** dopo aver verificato le opzioni del database e dell’host bastione di Linux.

Una volta completato il processo di creazione dello stack, visualizza gli stack con nomi *BastionStack*e *RDSNS per annotare le informazioni necessarie per connetterti* al database. Per ulteriori informazioni, vedere [Visualizzazione dei dati e delle risorse CloudFormation dello stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html) su. Console di gestione AWS

## Fase 3: connessione del client SQL a un'istanza database Oracle.
<a name="CHAP_GettingStarted.Connecting.Oracle"></a>

È possibile utilizzare qualsiasi applicazione client SQL standard per la connessione all'istanza database. In questo esempio, ti connetti a un'istanza database Oracle utilizzando il client della linea di comando Oracle.

**Per connettersi a un'istanza database Oracle**

1. Individuare l'endpoint (nome DNS) e il numero di porta per l'istanza database. 

   1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Nell'angolo superiore destro della console Amazon RDS, scegli la Regione AWS dell'istanza database.

   1. Nel pannello di navigazione, seleziona **Database**.

   1. Scegliere il nome dell'istanza database Oracle per visualizzarne i dettagli. 

   1. Nella scheda **Connectivity & security (Connettività e sicurezza)**, copiare l'endpoint. Annotare anche il numero di porta. L'endpoint e il numero di porta sono necessari per la connessione all'istanza database.   
![\[Stabilisci una connessione a un'istanza Oracle.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

1. Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all’istanza di Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella *Guida per l’utente per di Amazon EC2*.

   Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Ad esempio, supponi che `ec2-database-connect-key-pair.pem` sia archiviato in `/dir1` su Linux e che il DNS IPv4 pubblico per l'istanza EC2 sia `ec2-12-345-678-90.compute-1.amazonaws.com`. Il comando SSH sarà simile al seguente:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Ottieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A tale scopo, utilizzare il comando seguente.
**Nota**  
L'opzione `-y` installa gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.

   ```
   sudo dnf update -y
   ```

1. In un browser Web, vai a [https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html).

1. Per la versione più recente del database visualizzata nella pagina web, copia i collegamenti .rpm (non i collegamenti .zip) per il pacchetto Instant Client Basic e il pacchetto SQL\$1Plus. Ad esempio, i seguenti link si riferiscono alla versione 21.9 di Oracle Database:
   + https://download.oracle.com/otn\$1software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86\$164.rpm
   + https://download.oracle.com/otn\$1software/linux/instantclient/219000/oracle-client istantaneo -sqlplus-21.9.0.0.0-1.el8.x86\$164.rpm

1. Nella sessione SSH, esegui il comando `wget` per scaricare i file .rpm dai collegamenti che hai ottenuto nel passaggio precedente. L'esempio seguente scarica i file .rpm per Oracle Database versione 21.9:

   ```
   wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm
   wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
   ```

1. Installa i pacchetti eseguendo il comando `dnf` come segue:

   ```
   sudo dnf install oracle-instantclient-*.rpm
   ```

1. Avvia SQL\$1Plus e stabilisci una connessione all'istanza database Oracle. Ad esempio, specifica il comando seguente:

   Sostituisci l'endpoint dell'istanza database (nome DNS) per `oracle-db-instance-endpoint` e il nome utente master utilizzato per `admin`. Quando usi **Creazione semplice** per Oracle, il nome del database è`DATABASE`. Devi fornire la password master utilizzata quando viene richiesta una password.

   ```
   sqlplus admin@oracle-db-instance-endpoint:1521/DATABASE
   ```

   Dopo aver immesso la password per l'utente, l'output dovrebbe essere analogo a quanto mostrato di seguito.

   ```
   SQL*Plus: Release 21.0.0.0.0 - Production on Wed Mar 1 16:41:28 2023
   Version 21.9.0.0.0
   
   Copyright (c) 1982, 2022, Oracle.  All rights reserved.
   
   Enter password: 
   Last Successful login time: Wed Mar 01 2023 16:30:52 +00:00
   
   Connected to:
   Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
   Version 19.18.0.0.0
   
   SQL>
   ```

   Per ulteriori informazioni sulla connessione a un'istanza database RDS per Oracle, consulta [Connessione all'istanza database Oracle](USER_ConnectToOracleInstance.md). In caso di mancata connessione all'istanza database, consulta [Impossibile connettersi all'istanza database di Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

   Per motivi di sicurezza, la best practice è utilizzare connessioni crittografate. Utilizza una connessione Oracle non crittografata solo quando il client e il server sono nello stesso VPC e la rete è attendibile. Per ulteriori informazioni sull'uso di connessioni crittografate, consulta [Protezione delle connessioni di istanze database di Oracle](Oracle.Concepts.RestrictedDBAPrivileges.md).

1. Eseguire comandi SQL.

   Ad esempio, il seguente comando SQL mostra la data corrente:

   ```
   SELECT SYSDATE FROM DUAL;
   ```

## Fase 4: eliminazione dell'istanza EC2 e dell'istanza database
<a name="CHAP_GettingStarted.Deleting.Oracle"></a>

Dopo la connessione e l'esplorazione dell'istanza EC2 e dell'istanza database di esempio che hai creato, eliminale per evitare di ricevere l'addebito dei relativi costi.

Se in passato creavi risorse, salta questo passaggio e vai al passaggio successivo. CloudFormation 

**Per eliminare l'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza EC2 e scegli **Stato istanza, Termina istanza**.

1. Quando viene richiesta la conferma, seleziona **Interrompi**.

Per ulteriori informazioni sull’eliminazione di un’istanza EC2, consulta [Interruzione di un’istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l’utente di Amazon EC2*.

**Per eliminare l'istanza database senza snapshot database finale**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere l'istanza database da eliminare.

1. In **Actions (Azioni)**, selezionare **Delete (Elimina)**.

1. Deseleziona **Creare uno snapshot finale?** e **Conserva backup automatizzati**.

1. Completa la conferma e scegli **Elimina**. 

## (Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.Oracle"></a>

Se prima creavi CloudFormation risorse, elimina lo CloudFormation stack dopo esserti connesso ed esplorato l'istanza EC2 e l'istanza DB di esempio, in modo che non ti vengano più addebitati costi.

**Per eliminare le risorse CloudFormation**

1. Apri la CloudFormation console.

1. Nella pagina **Stacks** CloudFormationconsole, seleziona lo stack principale (lo stack senza il nome VPCStack BastionStack o RDSNS).

1. Scegli **Elimina**.

1. Quando viene richiesta la conferma, seleziona **Elimina stack**.

*Per ulteriori informazioni sull'eliminazione di uno stack in CloudFormation, consulta Eliminazione di uno stack sulla console nella [Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) per l'utente. CloudFormation AWS CloudFormation *

## (Facoltativo) Connessione dell'istanza database a una funzione Lambda
<a name="CHAP_GettingStarted.ComputeConnect.Oracle"></a>

Puoi anche connettere la tua istanza database RDS per Oracle a una risorsa di elaborazione serverless Lambda. Le funzioni Lambda consentono di eseguire il codice senza il provisioning o la gestione dell'infrastruttura. Una funzione Lambda consente inoltre di rispondere automaticamente alle richieste di esecuzione del codice su qualsiasi scala, da una dozzina di eventi al giorno a centinaia al secondo. Per ulteriori informazioni, consulta [Connessione automatica di una funzione Lambda e di un'istanza database](lambda-rds-connect.md).

# Creazione e connessione di un'istanza database PostgreSQL
<a name="CHAP_GettingStarted.CreatingConnecting.PostgreSQL"></a>

Questo tutorial illustra come creare un'istanza EC2 e un'istanza database RDS per PostgreSQL. Il tutorial mostra come accedere all'istanza database dall'istanza EC2 utilizzando il client PostgreSQL standard. Come best practice, questo tutorial spiega come creare un'istanza database privata in un cloud privato virtuale (VPC). Nella maggior parte dei casi, le risorse presenti nello stesso VPC, come le istanze EC2, possono accedere all'istanza database, mentre le risorse esterne al VPC non possono accedervi.

Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC. In una zona di disponibilità, l'istanza EC2 si trova nella sottorete pubblica mentre l'istanza database si trova nella sottorete privata.

**Importante**  
La creazione di un AWS account è gratuita. Tuttavia, completando questo tutorial, potresti incorrere in costi per le AWS risorse che utilizzi. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Istanza EC2 e istanza database PostgreSQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-postgresql.png)


Questo tutorial consente di creare le risorse utilizzando uno dei seguenti metodi:

1. Usa ‐ e Console di gestione AWS [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2) [Creazione di un’istanza database PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL) 

1. Utilizzare CloudFormation per creare l'istanza del database e l'istanza EC2 ‐ [(Facoltativo) Crea VPC, istanza EC2 e istanza PostgreSQL utilizzando CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL) 

Il primo metodo utilizza **Creazione semplice** per creare un’istanza database privata di PostgreSQL DB con la Console di gestione AWS. In questo caso, specifichi solo il tipo di motore di database, la dimensione dell’istanza database e l’identificatore dell’istanza database. **Easy create (Creazione rapida)** utilizza l'impostazione predefinita per altre opzioni di configurazione. 

Quando utilizzi la **Creazione standard** invece, puoi specificare diverse opzioni di configurazione al momento della creazione di un’istanza database. Tali opzioni includono impostazioni per la disponibilità, la sicurezza, i backup e la manutenzione. Per creare un'istanza database pubblica, è necessario utilizzare la **Creazione standard**. Per informazioni, consulta [Creazione di un'istanza database Amazon RDS](USER_CreateDBInstance.md).

**Topics**
+ [Prerequisiti](#CHAP_GettingStarted.Prerequisites.RDSPostgreSQL)
+ [Creazione di un’istanza EC2](#CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2)
+ [Creazione di un’istanza database PostgreSQL](#CHAP_GettingStarted.Creating.PostgreSQL)
+ [(Facoltativo) Crea VPC, istanza EC2 e istanza PostgreSQL utilizzando CloudFormation](#CHAP_GettingStarted.CFN.PostgreSQL)
+ [Connessione a un'istanza database PostgreSQL](#CHAP_GettingStarted.Connecting.PostgreSQL)
+ [Elimina l’istanza EC2 e l’istanza database](#CHAP_GettingStarted.Deleting.PostgreSQL)
+ [(Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation](#CHAP_GettingStarted.DeletingCFN.PostgreSQL)
+ [(Facoltativo) Connessione dell'istanza database a una funzione Lambda](#CHAP_GettingStarted.ComputeConnect.PostreSQL)

## Prerequisiti
<a name="CHAP_GettingStarted.Prerequisites.RDSPostgreSQL"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Creazione di un’istanza EC2
<a name="CHAP_GettingStarted.Creating.RDSPostgreSQL.EC2"></a>

Crea un'istanza Amazon EC2 da utilizzare per connetterti al database.

**Per creare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli l'istanza EC2 Regione AWS in cui desideri creare l'istanza EC2.

1. Seleziona **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

   Viene visualizzata la pagina **Avvia un'istanza**.

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **ec2-database-connect**.

   1. In **Immagini applicazione e sistema operativo (Amazon Machine Image)**, scegli **Amazon Linux**, quindi **AMI Amazon Linux 2023**. Mantieni le selezioni predefinite per le altre opzioni.  
![\[Scegli un'Amazon Machine Image.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) nella *Guida per l’utente di Amazon EC2*.

   1. In **Consenti traffico SSH**, nell'area **Impostazioni di rete** scegliere l'origine delle connessioni SSH all'istanza EC2. 

      È possibile scegliere **My IP** (Il mio IP) se l'indirizzo IP visualizzato è corretto per le connessioni SSH. In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando Secure Shell (SSH). Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) Un esempio di indirizzo IP è 192.0.2.1/32.

       In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

      L'immagine seguente mostra un esempio della sezione **Impostazioni di rete**.  
![\[Impostazioni di rete per un'istanza EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Connect_NtwkSettings.png)

   1. Lascia i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza EC2 nel pannello **Riepilogo** e, quando è tutto pronto, scegli **Avvia istanza**.

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2, quindi seleziona l'istanza EC2.

1. Nella scheda **Dettagli**, annota i seguenti valori, necessari quando ti connetti tramite SSH:

   1. Nel **riepilogo dell'istanza**, annota il valore per **Public IPv4 DNS**.  
![\[Il nome DNS pubblico EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. In **Dettagli istanza**, annota il valore visualizzato in **Nome coppia di chiavi**.  
![\[Il nome della coppia di chiavi EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Attendi che **Stato dell'istanza** diventi **In esecuzione** per l'istanza EC2 prima di continuare.

## Creazione di un’istanza database PostgreSQL
<a name="CHAP_GettingStarted.Creating.PostgreSQL"></a>

L'istanza database rappresenta l'elemento di base di Amazon RDS. Questo è l'ambiente dove esegui i tuoi database PostgreSQL.

In questo esempio, utilizzi la funzionalità **Creazione semplice** per creare un'istanza database che esegue un motore di database PostgreSQL con una classe di istanza database db.t3.micro.

**Per creare un'istanza database PostgreSQL con Easy Create (Creazione rapida)**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della console Amazon RDS, scegli la AWS regione in cui desideri creare l'istanza DB. 

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Create database (Crea database)** e verificare che l'opzione **Easy Create (Creazione rapida)** sia selezionata.  
![\[Opzione Creazione semplice.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-option.png)

1. In **Configuration (Configurazione)**, seleziona **PostgreSQL**.

1. Per **DB instance size (Dimensione istanza database)**, seleziona **Free tier (Piano gratuito)**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.

1. Per l'**identificatore dell'istanza DB**, inserisci **database-test1**.

1. In **Nome utente master**, inserisci un nome dell'utente master o lascia invariato il nome predefinito (**postgres**).

   La pagina **Create database (Crea database)** la pagina dovrebbe apparire simile alla seguente immagine. Per gli account con piano gratuito, viene visualizzato **Piano gratuito**. Per gli account con piano a pagamento, viene visualizzato **Sandbox**.  
![\[Pagina Crea database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-postgresql.png)

1. Per utilizzare una password master generata automaticamente per l'istanza database, seleziona **Genera automaticamente una password**.

   Per inserire la password master, deseleziona la casella **Genera automaticamente una password** e inserisci la stessa password in **Password master** e **Conferma password**.

1. Per configurare una connessione con l'istanza EC2 creata in precedenza, apri **Configura connessione EC2 - *opzionale***.

   Seleziona **Connetti a una risorsa di calcolo EC2**. Scegli l'istanza EC2 creata in precedenza.  
![\[Opzione Configura connessione EC2.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/EC2_RDS_Setup_Conn-EasyCreate.png)

1. Apri **Visualizza le impostazioni predefinite per la creazione Semplice**.  
![\[Impostazioni predefinite della funzionalità Creazione semplice per RDS per PostgreSQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-view-default-postgres.png)

   Puoi esaminare le impostazioni predefinite utilizzate con **Easy create (Creazione rapida)**. La colonna **Modificabile dopo la creazione del database** mostra le opzioni che puoi modificare dopo aver creato il database.
   + Se un'impostazione contiene **No** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database.
   + Se un'impostazione contiene **Sì** in quella colonna e desideri cambiarla, puoi utilizzare la **Creazione standard** per creare l'istanza database o modificare l'istanza database dopo averla creata per cambiare l'impostazione.

1. Scegliere **Crea database**.

   Per vedere nome utente e password per l'istanza database, seleziona **View credential details (Vedi dettagli delle credenziali)**.

   Per connetterti all'istanza database come utente principale, utilizza il nome utente e la password visualizzati.
**Importante**  
Non potrai visualizzare di nuovo la password dell'utente principale. Se non la registri, potresti doverla modificare.   
Se devi modificare la password dell'utente principale dopo che l'istanza database è disponibile, puoi modificare l'istanza database per eseguire tale operazione. Per ulteriori informazioni sulla modifica di un'istanza database , consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

1. Nell'elenco **Database** seleziona il nome della nuova istanza database PostgreSQL per visualizzarne i dettagli.

   L'istanza database ha lo stato **Creazione in corso** fino a quando non è pronta per essere utilizzata.  
![\[Dettagli dell'istanza database.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Postgres-Launch06.png)

   Quando lo stato cambia in **Available** (Disponibile), puoi connettersi all'istanza database. A seconda della classe di istanza database e della quantità di storage, prima che la nuova istanza sia disponibile possono trascorrere fino a 20 minuti.

## (Facoltativo) Crea VPC, istanza EC2 e istanza PostgreSQL utilizzando CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL"></a>

Invece di usare la console per creare il tuo VPC, l'istanza EC2 e l'istanza PostgreSQL, puoi CloudFormation usarla per fornire risorse trattando l'infrastruttura come codice. AWS Per aiutarti a organizzare AWS le tue risorse in unità più piccole e più gestibili, puoi utilizzare la funzionalità nested stack. CloudFormation Per ulteriori informazioni, consulta [Creare uno stack sulla CloudFormation console e [Lavorare](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) con gli stack](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) annidati. 

**Importante**  
CloudFormation è gratuito, ma le risorse che CloudFormation crea sono attive. Il costo di utilizzo standard per queste risorse ti sarà addebitato finché non le terminerai. Per ulteriori informazioni, consulta [Prezzi di Amazon RDS per PostgreSQL](https://aws.amazon.com//rds/postgresql/pricing).

Per creare le tue risorse utilizzando la CloudFormation console, completa i seguenti passaggi:
+ Scarica il CloudFormation modello
+ Configura le tue risorse utilizzando CloudFormation

### Scarica il CloudFormation modello
<a name="CHAP_GettingStarted.CFN.PostgreSQL.Step1"></a>

Un CloudFormation modello è un file di testo JSON o YAML che contiene le informazioni di configurazione sulle risorse che desideri creare nello stack. Questo modello crea anche un VPC e un host bastione per te insieme all’istanza RDS.

Per scaricare il file modello, apri il seguente link, modello [PostgreSQL CloudFormation ](https://github.com/aws-ia/cfn-ps-amazon-rds/blob/main/templates/rds-postgres-main.template.yaml).

Nella pagina Github, fare clic sul pulsante *Scarica file non elaborato* per salvare il file YAML.

### Configura le tue risorse usando CloudFormation
<a name="CHAP_GettingStarted.CFN.PostgreSQL.Step2"></a>

**Nota**  
Prima di iniziare questo processo, assicurati di avere una coppia di chiavi per un’istanza EC2 nel tuo Account AWS. Per ulteriori informazioni, consulta [Coppie di chiavi Amazon EC2 e istanze Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-key-pairs.html).

Quando si utilizza il CloudFormation modello, è necessario selezionare i parametri corretti per assicurarsi che le risorse vengano create correttamente. Segui la procedura riportata di seguito:

1. Accedi Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Crea stack**.

1. Nella sezione in cui specificare il modello, seleziona **Carica un file modello dal computer**, quindi **Avanti**.

1. Nella pagina **Specifica i dettagli dello stack**, impostare i seguenti parametri:

   1. **Imposta il **nome dello stack su Postgree Stack**. SQLTest**

   1. In **Parametri**, imposta **Zone di disponibilità** selezionando tre zone di disponibilità.

   1. In **Configurazione host bastione di Linux**, per **Nome chiave**, seleziona una coppia di chiavi per accedere all’istanza EC2.

   1. Nelle impostazioni di **Configurazione host bastione di Linux**, imposta **Intervallo IP consentito** sul tuo indirizzo IP. Per connetterti alle istanze EC2 nel tuo VPC utilizzando Secure Shell (SSH), determina il tuo indirizzo IP pubblico utilizzando il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è 192.0.2.1/32.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze EC2 pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze EC2 utilizzando SSH.

   1. In **Configurazione generale del database**, imposta **Classe di istanza del database** su **db.t3.micro**.

   1. Imposta **Database name** su **database-test1**.

   1. Per **Nome utente principale del database**, specifica il nome dell’utente master.

   1. Imposta **Gestisci password utente master di database con Secrets Manager** su `false` per questo tutorial.

   1. Per **Database password**, imposta una password di tua scelta. Ricorda questa password per ulteriori passaggi del tutorial.

   1. In **Database Storage configuration**, imposta **Database storage type** su **gp2**.

   1. In **Database Monitoring configuration**, imposta **Enable RDS Performance Insights** su false.

   1. Lascia i valori predefiniti per tutte le altre impostazioni. Fai clic su **Next** per continuare.

1. Nella pagina **Configura opzioni dello stack**, lasciare tutte le opzioni predefinite. Fai clic su **Next** per continuare.

1. Nella pagina **Rivedi stack**, seleziona **Invia** dopo aver verificato le opzioni del database e dell’host bastione di Linux.

Una volta completato il processo di creazione dello stack, visualizza gli stack con nomi *BastionStack*e *RDSNS per annotare le informazioni necessarie per connetterti* al database. Per ulteriori informazioni, consulta [Visualizzazione dei dati stack e delle risorse CloudFormation sulla Console di gestione AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html).

## Connessione a un'istanza database PostgreSQL
<a name="CHAP_GettingStarted.Connecting.PostgreSQL"></a>

È possibile connettersi all'istanza database utilizzando pgadmin o psql. Questo esempio spiega come connettersi a un'istanza database PostgreSQL utilizzando il client della linea di comando psql.

**Per connettersi a un'istanza database PostgreSQL tramite psql**

1. Individuare l'endpoint (nome DNS) e il numero di porta per l'istanza database. 

   1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Nell'angolo superiore destro della console Amazon RDS, scegli la Regione AWS dell'istanza database.

   1. Nel pannello di navigazione, seleziona **Database**.

   1. Scegliere il nome dell'istanza database PostgreSQL per visualizzarne i dettagli. 

   1. Nella scheda **Connectivity & security (Connettività e sicurezza)**, copiare l'endpoint. Annotare anche il numero di porta. L'endpoint e il numero di porta sono necessari per la connessione all'istanza database.   
![\[Stabilisci una connessione a un'istanza database PostgreSQL.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/PostgreSQL-endpoint.png)

1. Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all’istanza di Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella *Guida per l’utente per di Amazon EC2*.

   Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Ad esempio, supponi che `ec2-database-connect-key-pair.pem` sia archiviato in `/dir1` su Linux e che il DNS IPv4 pubblico per l'istanza EC2 sia `ec2-12-345-678-90.compute-1.amazonaws.com`. Il comando SSH sarà simile al seguente:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Ottieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A questo scopo, eseguire il comando seguente.
**Nota**  
L'opzione `-y` installa gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.

   ```
   sudo dnf update -y
   ```

1. Per installare il client della linea di comando psql da PostgreSQL su Amazon Linux 2023, esegui il comando seguente:

   ```
   sudo dnf install postgresql15
   ```

1. Stabilisci una connessione a un'istanza database PostgreSQL. Ad esempio, immetti il seguente comando in un prompt dei comandi in un computer client. Questa azione consente di connetterti all'istanza database PostgreSQL utilizzando il client psql.

   Sostituisci l'endpoint dell'istanza database (nome DNS) per `endpoint`, sostituisci il nome database `--dbname` a cui vuoi connetterti per `postgres` e sostituisci il nome utente master utilizzato per `postgres`. Devi fornire la password master utilizzata quando viene richiesta una password.

   ```
   psql --host=endpoint --port=5432 --dbname=postgres --username=postgres
   ```

   Dopo aver immesso la password per l'utente, l'output dovrebbe essere analogo a quanto mostrato di seguito:

   ```
   psql (14.3, server 14.6)
   SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
   Type "help" for help.
   
   postgres=>
   ```

   Per ulteriori informazioni sulla connessione a un'istanza database PostgreSQL, consulta [Connessione a un'istanza database che esegua il motore di database di PostgreSQL](USER_ConnectToPostgreSQLInstance.md). In caso di mancata connessione all'istanza database, consulta [Risoluzione dei problemi relativi alle connessioni all'istanza RDS per PostgreSQL](USER_ConnectToPostgreSQLInstance.Troubleshooting.md). 

   Per motivi di sicurezza, la best practice è utilizzare connessioni crittografate. Utilizza una connessione PostgreSQL non crittografata solo quando il client e il server sono nello stesso VPC e la rete è attendibile. Per ulteriori informazioni sull'uso di connessioni crittografate, consulta [Connessione a un'istanza database PostgreSQL tramite SSL](PostgreSQL.Concepts.General.SSL.md#PostgreSQL.Concepts.General.SSL.Connecting).

1. Eseguire comandi SQL.

   Ad esempio, il seguente comando SQL mostra la data e l'ora correnti:

   ```
   SELECT CURRENT_TIMESTAMP;
   ```

## Elimina l’istanza EC2 e l’istanza database
<a name="CHAP_GettingStarted.Deleting.PostgreSQL"></a>

Dopo la connessione e l'esplorazione dell'istanza EC2 e dell'istanza database di esempio che hai creato, eliminale per evitare di ricevere l'addebito dei relativi costi.

Se in passato CloudFormation creavi risorse, salta questo passaggio e vai al passaggio successivo.

**Per eliminare l'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza EC2 e scegli **Stato istanza, Termina istanza**.

1. Quando viene richiesta la conferma, seleziona **Interrompi**.

Per ulteriori informazioni sull’eliminazione di un’istanza EC2, consulta [Interruzione di un’istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l’utente di Amazon EC2*.

**Per eliminare un'istanza database senza snapshot DB finale**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere l'istanza database da eliminare.

1. In **Actions (Azioni)**, selezionare **Delete (Elimina)**.

1. Deseleziona **Creare uno snapshot finale?** e **Conserva backup automatizzati**.

1. Completa la conferma e scegli **Elimina**. 

## (Facoltativo) Elimina l'istanza EC2 e l'istanza DB create con CloudFormation
<a name="CHAP_GettingStarted.DeletingCFN.PostgreSQL"></a>

Se prima creavi CloudFormation risorse, elimina lo CloudFormation stack dopo esserti connesso ed esplorato l'istanza EC2 e l'istanza DB di esempio, in modo che non ti vengano più addebitati costi.

**Per eliminare le risorse CloudFormation**

1. Apri la CloudFormation console.

1. Nella pagina **Stacks** CloudFormationconsole, seleziona lo stack principale (lo stack senza il nome VPCStack BastionStack o RDSNS).

1. Scegli **Elimina**.

1. Quando viene richiesta la conferma, seleziona **Elimina stack**.

*Per ulteriori informazioni sull'eliminazione di uno stack in CloudFormation, consulta Eliminazione di uno stack sulla console nella [Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) per l'utente. CloudFormation AWS CloudFormation *

## (Facoltativo) Connessione dell'istanza database a una funzione Lambda
<a name="CHAP_GettingStarted.ComputeConnect.PostreSQL"></a>

Puoi anche connettere la tua istanza database RDS per PostgreSQL a una risorsa di elaborazione serverless Lambda. Le funzioni Lambda consentono di eseguire il codice senza il provisioning o la gestione dell'infrastruttura. Una funzione Lambda consente inoltre di rispondere automaticamente alle richieste di esecuzione del codice su qualsiasi scala, da una dozzina di eventi al giorno a centinaia al secondo. Per ulteriori informazioni, consulta [Connessione automatica di una funzione Lambda e di un'istanza database](lambda-rds-connect.md).

# Tutorial: creazione di un server Web e un’istanza database Amazon RDS
<a name="TUT_WebAppWithRDS"></a>

Questo tutorial descrive come installare un server Web Apache con PHP e creare un database MariaDB, MySQL o PostgreSQL. Il server Web viene eseguito in un'istanza Amazon EC2 utilizzando Amazon Linux 2023 e puoi scegliere tra un'istanza database MySQL o PostgreSQL. Sia l'istanza Amazon EC2 che l'istanza database vengono eseguite in un virtual private cloud (VPC) basato sul servizio Amazon VPC. 

**Importante**  
La creazione di un account è gratuita. AWS Tuttavia, completando questo tutorial, potresti incorrere in costi per le AWS risorse che utilizzi. È possibile eliminare queste risorse dopo aver completato l'esercitazione se non sono più necessarie.

**Nota**  
Questo tutorial funziona con Amazon Linux 2023 e potrebbe non funzionare per altre versioni di Linux.

Nel tutorial che segue, viene creata un'istanza EC2 che utilizza VPC, sottoreti e gruppo di sicurezza predefiniti per Account AWS. In questo tutorial viene illustrato come creare l'istanza database e configurare automaticamente la connettività con l'istanza EC2 creata. Nel tutorial viene quindi mostrato come installare il server Web sull'istanza EC2. Il server Web viene connesso all'istanza database nel VPC utilizzando l'endpoint dell'istanza del database.

1. [Avvio di un’istanza EC2 per la connessione all’istanza database](CHAP_Tutorials.WebServerDB.LaunchEC2.md)

1. [Creazione di un'istanza database Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md)

1. [Installazione di un server Web nell'istanza EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md)

Il seguente diagramma illustra la configurazione al completamento del tutorial.

![\[Scenario VPC singolo\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


**Nota**  
Dopo aver completato il tutorial, è presente una sottorete pubblica e una privata in ogni zona di disponibilità del VPC.  Se preferisci invece configurare un nuovo VPC per questo scenario, completa le attività in [Tutorial: crea un VPC da utilizzare con un ) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md).

# Avvio di un’istanza EC2 per la connessione all’istanza database
<a name="CHAP_Tutorials.WebServerDB.LaunchEC2"></a>

Crea un'istanza Amazon EC2 nella sottorete pubblica del VPC.

**Per avviare un'istanza EC2**

1. Accedi Console di gestione AWS e apri la console Amazon EC2 all'indirizzo. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Nell'angolo in alto a destra di Console di gestione AWS, scegli Regione AWS dove vuoi creare l'istanza EC2.

1. Selezionare **Pannello di controllo EC2**, quindi **Avvia istanza**, come visualizzato di seguito.  
![\[Pannello di controllo EC2\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_11.png)

1. Scegli le seguenti impostazioni nella pagina **Avvia un'istanza**.

   1. Nell'area **Name and tags** (Nome e tag), in **Name** (Nome) inserisci **tutorial-ec2-instance-web-server**.

   1. In **Immagini applicazione e sistema operativo (Amazon Machine Image)**, scegli **Amazon Linux**, quindi **AMI Amazon Linux 2023**. Manteni i valori predefiniti per le altre opzioni.  
![\[Scegliere un'Amazon Machine Image\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_12.png)

   1. In **Instance type** (Tipo di istanza), scegli **t2.micro**.

   1. In **Key pair (login)** (Coppia di chiavi (login), per **Key pair name** (Nome della coppia di chiavi), scegli una coppia di chiavi esistente. Per creare una nuova coppia di chiavi per l'istanza Amazon EC2, scegli **Create new key pair** (Crea nuova coppia di chiavi) e quindi utilizza la finestra **Create key pair** (Crea coppia di chiavi) per crearla.

      Per ulteriori informazioni sulla creazione di una nuova coppia di chiavi, consulta [Creazione di una coppia di chiavi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-a-key-pair) nella *Guida per l’utente di Amazon EC2*.

   1. In **Network settings** (Impostazioni di rete), imposta questi valori e conserva le impostazioni predefinite degli altri valori:
      + In **Allow SSH traffic from** (Consenti traffico SSH da), scegli l'origine delle connessioni SSH all'istanza EC2.

        È possibile scegliere **My IP** (Il mio IP) se l'indirizzo IP visualizzato è corretto per le connessioni SSH.

        In caso contrario, è possibile determinare l'indirizzo IP da utilizzare per connettersi alle istanze EC2 nel VPC utilizzando Secure Shell (SSH). Per determinare il tuo indirizzo IP pubblico, in un'altra finestra o scheda del browser, puoi utilizzare il servizio all'indirizzo. [https://checkip.amazonaws.com](https://checkip.amazonaws.com) Un esempio di indirizzo IP è `203.0.113.25/32`.

        In molti casi, è possibile eseguire la connessione tramite un fornitore di servizi Internet (ISP) o con la protezione di un firewall senza un indirizzo IP statico. In tal caso, accertati di determinare l'intervallo di indirizzi IP utilizzati dai computer client.
**avvertimento**  
Se utilizzi `0.0.0.0/0` per l'accesso SSH, consenti a tutti gli indirizzi IP di accedere alle istanze pubbliche utilizzando SSH. Questo approccio è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicuro per gli ambienti di produzione. In produzione, autorizza solo un determinato indirizzo IP o un intervallo di indirizzi per accedere alle istanze utilizzando SSH.
      + Attiva **Consenti il HTTPs traffico da Internet**.
      + Attiva **Allow HTTP traffic from the internet** (Autorizzare il traffico HTTP da Internet).  
![\[Configura i dettagli dell'istanza\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_14.png)

   1. Lascia i valori predefiniti per le sezioni rimanenti.

   1. Analizza un riepilogo della configurazione dell'istanza nel pannello **Summary** (Riepilogo) e, quando è tutto pronto, scegli **Launch instance** (Avvia istanza).

1. Nella pagina **Stato avvio** prendi nota dell'identificatore per la nuova istanza EC2, ad esempio: `i-1234567890abcdef0`.  
![\[Identificatore dell'istanza EC2 nella pagina Stato avvio.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/getting-started-ec2-id.png)

1. Scegli l'identificatore dell'istanza EC2 per aprire l'elenco delle istanze EC2, quindi seleziona l'istanza EC2.

1. Nella scheda **Dettagli**, annota i seguenti valori, necessari quando ti connetti tramite SSH:

   1. Nel **riepilogo dell'istanza**, annota il valore per **Public IPv4 DNS**.  
![\[Il nome DNS pubblico EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-public-dns.png)

   1. In **Dettagli istanza**, annota il valore visualizzato in **Nome coppia di chiavi**.  
![\[Il nome della coppia di chiavi EC2 nella scheda Dettagli della pagina Istanze.\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/easy-create-ec2-key-pair.png)

1. Attendi che **Instance state** (Stato istanza) per l'istanza sia **Running** (In esecuzione) prima di continuare.

1. Completo [Creazione di un'istanza database Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md).

# Creazione di un'istanza database Amazon RDS
<a name="CHAP_Tutorials.WebServerDB.CreateDBInstance"></a>

Crea un'istanza database RDS per MariaDB, RDS per MySQL or RDS per PostgreSQL che mantiene i dati utilizzati da un'applicazione Web. 

------
#### [ RDS for MariaDB ]

**Creazione di un'istanza database MariaDB**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della Console di gestione AWS, seleziona la Regione AWS. Deve essere identica a quella in cui hai creato l'istanza EC2.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Crea database**.

1. Nella pagina **Crea database** scegli **Creazione standard**.

1. In **Opzioni motore**, seleziona **MariaDB**.  
![\[Seleziona il tipo di motore\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-mariadb.png)

1. Per **Modelli**, scegli **Piano gratuito** o **Sandbox**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.  
![\[Seleziona il modello\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Nella sezione **Availability and durability** (Disponibilità e durata), mantieni i valori predefiniti.

1. Nella sezione **Settings (Impostazioni)** impostare questi valori:
   + **DB Instance Identifier** (Identificatore istanze database): **tutorial-db-instance**
   + **Master username** (Nome utente master): digita **tutorial\$1user**.
   + **Auto generate a password** (Genera automaticamente una password): lascia l'opzione disattivata.
   + **Master password** (Password master): scegli una password.
   + **Confirm password (Conferma la password):** –digitare di nuovo la password.  
![\[Sezioni impostazioni\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Nella sezione **Instance configuration** (Configurazione dell'istanza), imposta i seguenti valori:
   + **Classi espandibili (include le classi t)**
   + **db.t3.micro**  
![\[Sezione di configurazione dell'istanza\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Nella sezione **Storage** (Archiviazione), mantieni le impostazioni di default.

1. Nella sezione **Connectivity** (Connettività), imposta i seguenti valori e lascia gli altri valori come predefiniti:
   + In **Compute resource** (Risorse di calcolo), seleziona **Connect to an EC2 compute resource** (Connetti a una risorsa di calcolo EC2).
   + In **EC2 instance** (Istanza EC2), scegli l'istanza EC2 creata in precedenza, ad esempio **tutorial-ec2-instance-web-server**.  
![\[Sezione connettività\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Nella sezione **Autenticazione database** verifica che sia selezionata l'opzione **Autenticazione con password**.

1. Aprire la sezione **Additional configuration (Configurazione aggiuntiva)** e specificare **sample** per **Initial database name (Nome database iniziale)**. Lasciare le impostazioni predefinite per le altre opzioni.

1. Per creare l'istanza MariaDB, scegli **Crea database**.

   La nuova istanza database apparirà nell'elenco **Databases** con lo stato **Creating (Creazione in corso)**.

1. Attendere che lo **Status (Stato)** della nuova istanza database appaia come **Available (Disponibile)**. Quindi scegliere il nome dell'istanza database per visualizzarne i dettagli.

1. Nella sezione **Connectivity & security (Connettività e sicurezza**, visualizzare **Endpoint** e **Port (Porta)** dell'istanza database.  
![\[Dettagli istanza database\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Prendere nota dell'endpoint e della porta dell'istanza database. Queste informazioni verranno utilizzate per effettuare la connessione del server Web all'istanza del database.

1. Completo [Installazione di un server Web nell'istanza EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------
#### [ RDS for MySQL ]

**Per creare un'istanza database MySQL**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della Console di gestione AWS, seleziona la Regione AWS. Deve essere identica a quella in cui hai creato l'istanza EC2.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Crea database**.

1. Nella pagina **Crea database** scegli **Creazione standard**.

1. In **Opzioni motore**, seleziona **MySQL**.  
![\[Seleziona il tipo di motore\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-mysql.png)

1. Per **Modelli**, scegli **Piano gratuito** o **Sandbox**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.  
![\[Seleziona il modello\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Nella sezione **Availability and durability** (Disponibilità e durata), mantieni i valori predefiniti.

1. Nella sezione **Settings (Impostazioni)** impostare questi valori:
   + **DB Instance Identifier** (Identificatore istanze database): **tutorial-db-instance**
   + **Master username** (Nome utente master): digita **tutorial\$1user**.
   + **Auto generate a password** (Genera automaticamente una password): lascia l'opzione disattivata.
   + **Master password** (Password master): scegli una password.
   + **Confirm password (Conferma la password):** –digitare di nuovo la password.  
![\[Sezioni impostazioni\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Nella sezione **Instance configuration** (Configurazione dell'istanza), imposta i seguenti valori:
   + **Classi espandibili (include le classi t)**
   + **db.t3.micro**  
![\[Sezione di configurazione dell'istanza\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Nella sezione **Storage** (Archiviazione), mantieni le impostazioni di default.

1. Nella sezione **Connectivity** (Connettività), imposta i seguenti valori e lascia gli altri valori come predefiniti:
   + In **Compute resource** (Risorse di calcolo), seleziona **Connect to an EC2 compute resource** (Connetti a una risorsa di calcolo EC2).
   + In **EC2 instance** (Istanza EC2), scegli l'istanza EC2 creata in precedenza, ad esempio **tutorial-ec2-instance-web-server**.  
![\[Sezione connettività\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Nella sezione **Autenticazione database** verifica che sia selezionata l'opzione **Autenticazione con password**.

1. Aprire la sezione **Additional configuration (Configurazione aggiuntiva)** e specificare **sample** per **Initial database name (Nome database iniziale)**. Lasciare le impostazioni predefinite per le altre opzioni.

1. Per creare l'istanza database MySQL, scegli **Crea database**.

   La nuova istanza database apparirà nell'elenco **Databases** con lo stato **Creating (Creazione in corso)**.

1. Attendere che lo **Status (Stato)** della nuova istanza database appaia come **Available (Disponibile)**. Quindi scegliere il nome dell'istanza database per visualizzarne i dettagli.

1. Nella sezione **Connectivity & security (Connettività e sicurezza**, visualizzare **Endpoint** e **Port (Porta)** dell'istanza database.  
![\[Dettagli istanza database\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port.png)

   Prendere nota dell'endpoint e della porta dell'istanza database. Queste informazioni verranno utilizzate per effettuare la connessione del server Web all'istanza del database.

1. Completo [Installazione di un server Web nell'istanza EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------
#### [ RDS for PostgreSQL ]

**Creazione di un'istanza database PostgreSQL**

1. Accedi alla Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nell'angolo in alto a destra della Console di gestione AWS, seleziona la Regione AWS. Deve essere identica a quella in cui hai creato l'istanza EC2.

1. Nel riquadro di navigazione, scegliere **Databases (Database)**.

1. Scegliere **Crea database**.

1. Nella pagina **Crea database** scegli **Creazione standard**.

1. In **Opzioni motore**, seleziona **PostgreSQL**.  
![\[Seleziona il tipo di motore\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-postgres.png)

1. Per **Modelli**, scegli **Piano gratuito** o **Sandbox**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.  
![\[Seleziona il modello\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/tutorial-create-template.png)

1. Nella sezione **Availability and durability** (Disponibilità e durata), mantieni i valori predefiniti.

1. Nella sezione **Settings (Impostazioni)** impostare questi valori:
   + **DB Instance Identifier** (Identificatore istanze database): **tutorial-db-instance**
   + **Master username** (Nome utente master): digita **tutorial\$1user**.
   + **Auto generate a password** (Genera automaticamente una password): lascia l'opzione disattivata.
   + **Master password** (Password master): scegli una password.
   + **Confirm password (Conferma la password):** –digitare di nuovo la password.  
![\[Sezioni impostazioni\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Settings.png)

1. Nella sezione **Instance configuration** (Configurazione dell'istanza), imposta i seguenti valori:
   + **Classi espandibili (include le classi t)**
   + **db.t3.micro**  
![\[Sezione di configurazione dell'istanza\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_DB_instance_micro.png)

1. Nella sezione **Storage** (Archiviazione), mantieni le impostazioni di default.

1. Nella sezione **Connectivity** (Connettività), imposta i seguenti valori e lascia gli altri valori come predefiniti:
   + In **Compute resource** (Risorse di calcolo), seleziona **Connect to an EC2 compute resource** (Connetti a una risorsa di calcolo EC2).
   + In **EC2 instance** (Istanza EC2), scegli l'istanza EC2 creata in precedenza, ad esempio **tutorial-ec2-instance-web-server**.  
![\[Sezione connettività\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Connectivity.png)

1. Nella sezione **Autenticazione database** verifica che sia selezionata l'opzione **Autenticazione con password**.

1. Aprire la sezione **Additional configuration (Configurazione aggiuntiva)** e specificare **sample** per **Initial database name (Nome database iniziale)**. Lasciare le impostazioni predefinite per le altre opzioni.

1. Per creare l'istanza database PostgreSQL, scegli **Crea database**.

   La nuova istanza database apparirà nell'elenco **Databases** con lo stato **Creating (Creazione in corso)**.

1. Attendere che lo **Status (Stato)** della nuova istanza database appaia come **Available (Disponibile)**. Quindi scegliere il nome dell'istanza database per visualizzarne i dettagli.

1. Nella sezione **Connectivity & security (Connettività e sicurezza**, visualizzare **Endpoint** e **Port (Porta)** dell'istanza database.  
![\[Dettagli istanza database\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/Tutorial_WebServer_Endpoint_Port_postgres.png)

   Prendere nota dell'endpoint e della porta dell'istanza database. Queste informazioni verranno utilizzate per effettuare la connessione del server Web all'istanza del database.

1. Completo [Installazione di un server Web nell'istanza EC2](CHAP_Tutorials.WebServerDB.CreateWebServer.md).

------

# Installazione di un server Web nell'istanza EC2
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer"></a>

Installa un server Web in un'istanza EC2 creata in [Avvio di un’istanza EC2 per la connessione all’istanza database](CHAP_Tutorials.WebServerDB.LaunchEC2.md). Il server Web si connette all'istanza database Amazon RDS creata in [Creazione di un'istanza database Amazon RDS](CHAP_Tutorials.WebServerDB.CreateDBInstance.md). 

## Installazione di un server Web Apache con PHP e MariaDB
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.Apache"></a>

Esegui la connessione all'istanza EC2 e installa il server Web Apache.

**Per effettuare la connessione all'istanza EC2 e installare il server Web Apache con PHP.**

1. Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in [Connessione all’istanza di Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella *Guida per l’utente per di Amazon EC2*.

   Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:

   ```
   ssh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name
   ```

   Ad esempio, supponi che `ec2-database-connect-key-pair.pem` sia archiviato in `/dir1` su Linux e che il DNS IPv4 pubblico per l'istanza EC2 sia `ec2-12-345-678-90.compute-1.amazonaws.com`. Il comando SSH sarà simile al seguente:

   ```
   ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
   ```

1. Ottieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A questo scopo, eseguire il comando seguente.
**Nota**  
L'opzione `-y` installa gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.

   ```
   sudo dnf update -y
   ```

1. Al completamento degli aggiornamenti, installa il server Web Apache, PHP e il software MariaDB utilizzando i comandi seguenti. Con questo comando vengono installati contemporaneamente più pacchetti software e dipendenze correlate.

------
#### [ MariaDB & MySQL ]

   ```
   sudo dnf install -y httpd php php-mysqli mariadb105
   ```

------
#### [ PostgreSQL ]

   ```
   sudo dnf install -y httpd php php-pgsql postgresql15
   ```

------

   Se si verifica un errore, è possibile che l'istanza non sia stata lanciata con un'AMI Amazon Linux 2023. Puoi invece utilizzare l'AMI Amazon Linux 2. È possibile visualizzare la versione di Amazon Linux con il comando seguente.

   ```
   cat /etc/system-release
   ```

   Per ulteriori informazioni, consulta la pagina relativa all'[aggiornamento del software dell'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-updates.html).

1. Avviare il server Web con il comando visualizzato di seguito.

   ```
   sudo systemctl start httpd
   ```

   È possibile verificare che il server Web sia installato e avviato correttamente. A tale scopo, immettere il nome DNS (Domain Name System) pubblico dell'istanza EC2 nella barra degli indirizzi di un browser Web, ad esempio: `http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com`. Se il server Web è in esecuzione, verrà visualizzata la pagina di test di Apache. 

   Se la pagina di test Apache non viene visualizzata, controllare le regole in entrata per il gruppo di sicurezza VPC creato in [Tutorial: crea un VPC da utilizzare con un ) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md). Assicurati che le regole in entrata ne includano una che consenta l'accesso HTTP (porta 80) per l'indirizzo IP utilizzato per connettersi al server Web.
**Nota**  
La pagina di test di Apache viene visualizzata solo quando la directory principale dei documenti è vuota, `/var/www/html`. Dopo aver aggiunto contenuti alla directory root dei documenti, i contenuti vengono visualizzati all'indirizzo DNS pubblico dell'istanza EC2. Prima di questo punto, vengono visualizzati nella pagina di test di Apache.

1. Configurare il server Web affinché si avvii a ogni avvio del sistema tramite il comando `systemctl`.

   ```
   sudo systemctl enable httpd
   ```

Per permettere a `ec2-user` di gestire file nella directory principale predefinita del server Web Apache, è necessario modificare la proprietà e le autorizzazioni della directory `/var/www`. Sono disponibili molti modi per completare questa attività. In questo tutorial, aggiungi l'utente `ec2-user` al gruppo `apache` per assegnare la proprietà del gruppo `apache` della directory `/var/www` e assegnare autorizzazioni di scrittura al gruppo.

**Per impostare le autorizzazioni dei file sul server Web Apache**

1. Aggiungere l'utente `ec2-user` al gruppo `apache`.

   ```
   sudo usermod -a -G apache ec2-user
   ```

1. Per aggiornare le autorizzazioni e includere il nuovo gruppo `apache`, eseguire la disconnessione.

   ```
   exit
   ```

1. Effettuare nuovamente l'accesso e verificare che il gruppo `apache` esista mediante il comando `groups`.

   ```
   groups
   ```

   L'output avrà un aspetto simile al seguente:

   ```
   ec2-user adm wheel apache systemd-journal
   ```

1. Cambiare la proprietà del gruppo della directory `/var/www` e dei suoi contenuti sul gruppo `apache`.

   ```
   sudo chown -R ec2-user:apache /var/www
   ```

1. Cambiare le autorizzazioni della directory `/var/www` e delle sue sottodirectory per aggiungere le autorizzazioni di scrittura di gruppo e impostare l'ID di gruppo per le sottodirectory create in futuro.

   ```
   sudo chmod 2775 /var/www
   find /var/www -type d -exec sudo chmod 2775 {} \;
   ```

1. Cambiare le autorizzazioni in modo ricorsivo per i file nella directory `/var/www` e nelle sue sottodirectory per aggiungere le autorizzazioni di scrittura di gruppo.

   ```
   find /var/www -type f -exec sudo chmod 0664 {} \;
   ```

Ora, `ec2-user` (e qualsiasi membro futuro del gruppo `apache`) può aggiungere, eliminare e modificare i file nella root del documento di Apache. Questo consente di aggiungere contenuti, ad esempio un sito Web statico o un'applicazione PHP. 

**Nota**  
Un server Web che esegue il protocollo HTTP non offre alcuna sicurezza di trasporto per i dati inviati e ricevuti. Quando ti connetti a un server HTTP tramite un browser Web, la molte informazioni sono visibili a persone non autorizzate in qualsiasi punto del percorso di rete. Queste informazioni includono ciò URLs che visiti, il contenuto delle pagine Web che ricevi e il contenuto (comprese le password) di qualsiasi modulo HTML.   
La best practice per la protezione del tuo server Web prevede l'installazione del supporto per HTTPS (HTTP Secure). Questo protocollo protegge i dati con la SSL/TLS crittografia. Per ulteriori informazioni, consulta [Tutorial: Configure SSL/TLS with the Amazon Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-ami.html) nella *Amazon EC2 User* Guide.

## Connessione del server web Apache all'istanza
<a name="CHAP_Tutorials.WebServerDB.CreateWebServer.PHPContent"></a>

Successivamente, aggiungere contenuti al server Web Apache che effettua la connessione all'istanza database Amazon RDS.

**Per aggiungere contenuti al server Web Apache che effettua la connessione all'istanza database.**

1. Mentre è ancora in corso la connessione all'istanza EC2, modificare la directory in `/var/www` e creare una nuova sottodirectory denominata `inc`.

   ```
   cd /var/www
   mkdir inc
   cd inc
   ```

1. Creare un nuovo file nella directory `inc` denominato `dbinfo.inc` e poi modificarlo con nano (o un altro editor a scelta).

   ```
   >dbinfo.inc
   nano dbinfo.inc
   ```

1. Aggiungi i seguenti contenuti al file `dbinfo.inc`. 
**Nota**  
Si consiglia di inserire le informazioni relative al nome utente e alla password in una cartella che non fa parte della directory principale del documento per il server Web. In questo modo si riduce la possibilità che le informazioni di sicurezza vengano esposte.  
Assicurati di modificare `master password` in una password adatta per la tua applicazione.

   ```
   <?php
   
   define('DB_SERVER', 'db_instance_endpoint');
   define('DB_USERNAME', 'tutorial_user');
   define('DB_PASSWORD', 'master password');
   define('DB_DATABASE', 'sample');
   ?>
   ```

1. Salvare e chiudere il file `dbinfo.inc`. Se stai usando nano, salva e chiudi il file usando Ctrl\$1S e Ctrl\$1X.

1. Cambiare la directory in `/var/www/html`.

   ```
   cd /var/www/html
   ```

1. Creare un nuovo file nella directory `html` denominato `SamplePage.php` e poi modificarlo con nano (o un altro editor a scelta).

   ```
   >SamplePage.php
   nano SamplePage.php
   ```

1. Aggiungere i seguenti contenuti al file `SamplePage.php`:

------
#### [ MariaDB & MySQL ]

   ```
   <?php include "../inc/dbinfo.inc"; ?>
   <html>
   <body>
   <h1>Sample page</h1>
   <?php
   
     /* Connect to MySQL and select the database. */
     $connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
   
     if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
   
     $database = mysqli_select_db($connection, DB_DATABASE);
   
     /* Ensure that the EMPLOYEES table exists. */
     VerifyEmployeesTable($connection, DB_DATABASE);
   
     /* If input fields are populated, add a row to the EMPLOYEES table. */
     $employee_name = htmlentities($_POST['NAME']);
     $employee_address = htmlentities($_POST['ADDRESS']);
   
     if (strlen($employee_name) || strlen($employee_address)) {
       AddEmployee($connection, $employee_name, $employee_address);
     }
   ?>
   
   <!-- Input form -->
   <form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST">
     <table border="0">
       <tr>
         <td>NAME</td>
         <td>ADDRESS</td>
       </tr>
       <tr>
         <td>
           <input type="text" name="NAME" maxlength="45" size="30" />
         </td>
         <td>
           <input type="text" name="ADDRESS" maxlength="90" size="60" />
         </td>
         <td>
           <input type="submit" value="Add Data" />
         </td>
       </tr>
     </table>
   </form>
   
   <!-- Display table data. -->
   <table border="1" cellpadding="2" cellspacing="2">
     <tr>
       <td>ID</td>
       <td>NAME</td>
       <td>ADDRESS</td>
     </tr>
   
   <?php
   
   $result = mysqli_query($connection, "SELECT * FROM EMPLOYEES");
   
   while($query_data = mysqli_fetch_row($result)) {
     echo "<tr>";
     echo "<td>",$query_data[0], "</td>",
          "<td>",$query_data[1], "</td>",
          "<td>",$query_data[2], "</td>";
     echo "</tr>";
   }
   ?>
   
   </table>
   
   <!-- Clean up. -->
   <?php
   
     mysqli_free_result($result);
     mysqli_close($connection);
   
   ?>
   
   </body>
   </html>
   
   
   <?php
   
   /* Add an employee to the table. */
   function AddEmployee($connection, $name, $address) {
      $n = mysqli_real_escape_string($connection, $name);
      $a = mysqli_real_escape_string($connection, $address);
   
      $query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');";
   
      if(!mysqli_query($connection, $query)) echo("<p>Error adding employee data.</p>");
   }
   
   /* Check whether the table exists and, if not, create it. */
   function VerifyEmployeesTable($connection, $dbName) {
     if(!TableExists("EMPLOYEES", $connection, $dbName))
     {
        $query = "CREATE TABLE EMPLOYEES (
            ID int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            NAME VARCHAR(45),
            ADDRESS VARCHAR(90)
          )";
   
        if(!mysqli_query($connection, $query)) echo("<p>Error creating table.</p>");
     }
   }
   
   /* Check for the existence of a table. */
   function TableExists($tableName, $connection, $dbName) {
     $t = mysqli_real_escape_string($connection, $tableName);
     $d = mysqli_real_escape_string($connection, $dbName);
   
     $checktable = mysqli_query($connection,
         "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t' AND TABLE_SCHEMA = '$d'");
   
     if(mysqli_num_rows($checktable) > 0) return true;
   
     return false;
   }
   ?>
   ```

------
#### [ PostgreSQL ]

   ```
   <?php include "../inc/dbinfo.inc"; ?>
   
   <html>
   <body>
   <h1>Sample page</h1>
   <?php
   
   /* Connect to PostgreSQL and select the database. */
   $constring = "host=" . DB_SERVER . " dbname=" . DB_DATABASE . " user=" . DB_USERNAME . " password=" . DB_PASSWORD ;
   $connection = pg_connect($constring);
   
   if (!$connection){
    echo "Failed to connect to PostgreSQL";
    exit;
   }
   
   /* Ensure that the EMPLOYEES table exists. */
   VerifyEmployeesTable($connection, DB_DATABASE);
   
   /* If input fields are populated, add a row to the EMPLOYEES table. */
   $employee_name = htmlentities($_POST['NAME']);
   $employee_address = htmlentities($_POST['ADDRESS']);
   
   if (strlen($employee_name) || strlen($employee_address)) {
     AddEmployee($connection, $employee_name, $employee_address);
   }
   
   ?>
   
   <!-- Input form -->
   <form action="<?PHP echo $_SERVER['SCRIPT_NAME'] ?>" method="POST">
     <table border="0">
       <tr>
         <td>NAME</td>
         <td>ADDRESS</td>
       </tr>
       <tr>
         <td>
       <input type="text" name="NAME" maxlength="45" size="30" />
         </td>
         <td>
       <input type="text" name="ADDRESS" maxlength="90" size="60" />
         </td>
         <td>
       <input type="submit" value="Add Data" />
         </td>
       </tr>
     </table>
   </form>
   <!-- Display table data. -->
   <table border="1" cellpadding="2" cellspacing="2">
     <tr>
       <td>ID</td>
       <td>NAME</td>
       <td>ADDRESS</td>
     </tr>
   
   <?php
   
   $result = pg_query($connection, "SELECT * FROM EMPLOYEES");
   
   while($query_data = pg_fetch_row($result)) {
     echo "<tr>";
     echo "<td>",$query_data[0], "</td>",
          "<td>",$query_data[1], "</td>",
          "<td>",$query_data[2], "</td>";
     echo "</tr>";
   }
   ?>
   </table>
   
   <!-- Clean up. -->
   <?php
   
     pg_free_result($result);
     pg_close($connection);
   ?>
   </body>
   </html>
   
   
   <?php
   
   /* Add an employee to the table. */
   function AddEmployee($connection, $name, $address) {
      $n = pg_escape_string($name);
      $a = pg_escape_string($address);
      echo "Forming Query";
      $query = "INSERT INTO EMPLOYEES (NAME, ADDRESS) VALUES ('$n', '$a');";
   
      if(!pg_query($connection, $query)) echo("<p>Error adding employee data.</p>"); 
   }
   
   /* Check whether the table exists and, if not, create it. */
   function VerifyEmployeesTable($connection, $dbName) {
     if(!TableExists("EMPLOYEES", $connection, $dbName))
     {
        $query = "CREATE TABLE EMPLOYEES (
            ID serial PRIMARY KEY,
            NAME VARCHAR(45),
            ADDRESS VARCHAR(90)
          )";
   
        if(!pg_query($connection, $query)) echo("<p>Error creating table.</p>"); 
     }
   }
   /* Check for the existence of a table. */
   function TableExists($tableName, $connection, $dbName) {
     $t = strtolower(pg_escape_string($tableName)); //table name is case sensitive
     $d = pg_escape_string($dbName); //schema is 'public' instead of 'sample' db name so not using that
   
     $query = "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = '$t';";
     $checktable = pg_query($connection, $query);
   
     if (pg_num_rows($checktable) >0) return true;
     return false;
   
   }
   ?>
   ```

------

1. Salvare e chiudere il file `SamplePage.php`.

1. Verificare che il server Web effettui correttamente la connessione all'istanza  aprendo un browser web e navigando fino a `http://EC2 instance endpoint/SamplePage.php`, ad esempio: `http://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php`.

È possibile utilizzare `SamplePage.php` per aggiungere dati all'istanza. I dati aggiunti verranno visualizzati nella pagina. Per verificare che i dati siano stati inseriti nella tabella, installa il client MySQL nell'istanza Amazon EC2. Esegui quindi la connessione all'istanza database ed esegui la query sulla tabella. 

Per informazioni sull’istallazione di un client SQL e la connessione a un'istanza database Oracle, consulta [Connessione all’istanza database MySQL](USER_ConnectToInstance.md).

Per assicurarsi che l’istanza sia il più possibile sicura, verificare che le fonti esterne al VPC non possano connettersi all’istanza. 

Dopo aver terminato il test del server Web e del database, è necessario eliminare l' il cluster DB e l'istanza Amazon EC2.
+ Per eliminare un’istanza database, segui le istruzioni riportate in [Eliminazione di un'istanza database](USER_DeleteInstance.md). Non è necessario creare uno snapshot finale.
+ Per terminare un'istanza Amazon EC2, segui le istruzioni riportate in [Termina istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l'utente di Amazon EC2*.

# Tutorial: utilizzo di una funzione Lambda per accedere a un database Amazon RDS
<a name="rds-lambda-tutorial"></a>

In questo tutorial, viene utilizzata una funzione Lambda per scrivere dati su un database [Amazon Relational Database Service](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) (Amazon RDS) tramite RDS Proxy. La funzione Lambda legge i record da una coda Amazon Simple Queue Service (Amazon SQS) e scrive un nuovo elemento in una tabella del database ogni volta che viene aggiunto un messaggio. In questo esempio, viene utilizzata la Console di gestione AWS per aggiungere manualmente i messaggi alla coda. Il diagramma seguente mostra le AWS risorse che usi per completare il tutorial.

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_1.png)


Con Amazon RDS, è possibile eseguire un database relazionale gestito nel cloud utilizzando prodotti database comuni come Microsoft SQL Server, MariaDB, MySQL, Oracle Database e PostgreSQL. Utilizzando Lambda per accedere al tuo database, puoi leggere e scrivere dati in risposta a eventi, come ad esempio un nuovo cliente che si registra sul tuo sito Web. La funzione, l'istanza database e il proxy vengono dimensionati automaticamente per rispondere ai periodi di forte domanda.

Per completare questo tutorial, completa le seguenti attività:

1. Avvia un'istanza di database RDS for MySQL e un proxy nel tuo Account AWS VPC predefinito.

1. Crea e testa una funzione Lambda che crea una nuova tabella nel tuo database e vi scrive i dati.

1. Crea una coda Amazon SQS e configurala per richiamare la funzione Lambda ogni volta che viene aggiunto un nuovo messaggio.

1. Verifica la configurazione completa aggiungendo messaggi alla coda utilizzando Console di gestione AWS e monitorando i risultati utilizzando Logs. CloudWatch 

Completando questi passaggi, imparerai:
+ Come usare Amazon RDS per creare un'istanza database e un proxy e connettere una funzione Lambda al proxy.
+ Come usare Lambda per eseguire operazioni di creazione e lettura su un database Amazon RDS.
+ Come utilizzare Amazon SQS per richiamare una funzione Lambda.

Puoi completare questo tutorial usando Console di gestione AWS o il AWS Command Line Interface ()AWS CLI.

## Prerequisiti
<a name="vpc-rds-prereqs"></a>

Prima di iniziare, completa le fasi descritte in questa sezione:
+ [Registrati per un Account AWS](CHAP_SettingUp.md#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](CHAP_SettingUp.md#create-an-admin)

## Creazione di un'istanza database Amazon RDS
<a name="vpc-rds-create-RDS-instance"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step1.png)


Un'istanza database Amazon RDS è un ambiente di database isolato in esecuzione nel Cloud AWS. Un'istanza può contenere uno o più database creati dall'utente. Se non diversamente specificato, Amazon RDS crea nuove istanze di database nel VPC predefinito incluso nel tuo. Account AWS Per ulteriori informazioni su Amazon VPC, consulta la [Guida per l'utente di Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html).

In questo tutorial, crei una nuova istanza nel tuo Account AWS VPC predefinito e crei un database denominato `ExampleDB` in quell'istanza. È possibile creare l'istanza DB e il database utilizzando il Console di gestione AWS o il AWS CLI.

**Per creare un'istanza database**

1. Apri la console Amazon RDS e scegli **Crea database**.

1. Lascia selezionata l'opzione **Creazione standard**, quindi in **Opzioni del motore**, scegli **MySQL**.

1. In **Modelli**, scegli **Piano gratuito** o **Sandbox**. **Piano gratuito** viene visualizzato per gli account con piano gratuito. **Sandbox** viene visualizzato per gli account con piani a pagamento.

1. In **Impostazioni**, per **Identificatore istanza database**, immetti **MySQLForLambda**.

1. Per impostare il nome e la password, procedi come segue:

   1. In **Impostazioni delle credenziali**, lascia il campo **Nome utente master** impostato su `admin`.

   1. Per **Password master**, inserisci una password e confermala per accedere al database.

1. Specifica il nome del database effettuando le seguenti operazioni:
   + Lascia selezionate tutte le opzioni predefinite rimanenti e scorri verso il basso fino alla sezione **Configurazione aggiuntiva**.
   + Espandi questa sezione e immetti **ExampleDB** in **Nome database iniziale**.

1. Lascia selezionate tutte le opzioni predefinite rimanenti e scegli **Crea database**.

## Creazione di una funzione Lambda e un proxy
<a name="auto-create-Lambda"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step2.png)


È possibile utilizzare la console RDS per creare una funzione Lambda e un proxy nello stesso VPC del database. 

**Nota**  
È possibile creare queste risorse associate solo al termine della creazione del database e quando si trova nello stato **Disponibile**.

**Per creare una funzione e un proxy associati**

1. Dalla pagina **Database**, controlla se il database si trova nello stato **Disponibile**. In questo caso, passa alla fase successiva. Altrimenti, attendi che il database sia disponibile.

1. Seleziona il database e scegli **Configurazione della connessione Lambda** da **Azioni**.

1. Nella pagina **Configurazione della connessione Lambda**, scegli **Crea una nuova funzione**.

   Imposta il **nuovo nome della funzione Lambda** su **LambdaFunctionWithRDS**.

1. Nella sezione **RDS Proxy**, seleziona l'opzione **Connetti tramite RDS Proxy**. Scegli **Crea nuovo proxy**.
   + Per **Credenziali del database**, scegli **nome utente e password del database**.
   + Per **Nome utente**, specifica `admin`.
   + Per **Password**, immetti la password creata per l'istanza database. 

1. Seleziona **Configurare** per completare la creazione del proxy e della funzione Lambda.

La procedura guidata completa la configurazione e fornisce un collegamento alla console Lambda per esaminare la nuova funzione. Prendi nota dell'endpoint proxy prima di passare alla console Lambda.

## Creazione di un ruolo di esecuzione della funzione
<a name="vpc-rds-create-execution-role"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step3.png)


Prima di creare la funzione Lambda, è necessario creare un ruolo di esecuzione per assegnare alla funzione le autorizzazioni necessarie. Per questo tutorial, Lambda richiede l'autorizzazione per gestire la connessione di rete al VPC contenente l'istanza database e per eseguire il polling dei messaggi da una coda Amazon SQS.

Per assegnare alla funzione Lambda le autorizzazioni necessarie, questo tutorial utilizza policy gestite da IAM. Si tratta di policy che concedono le autorizzazioni per molti casi d'uso e sono disponibili nel tuo Account AWS. Per ulteriori informazioni sull'uso delle policy gestite, consulta [Best practice delle policy](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices).

**Creazione del ruolo di esecuzione di Lambda**

1. Apri la pagina [Ruoli](https://console.aws.amazon.com/iamv2/home#/roles) della console IAM, quindi scegli **Crea ruolo**.

1. Per **Tipo di entità attendibile**, scegli il **servizio AWS ** e per **Caso d'uso**, scegli **Lambda**.

1. Scegli **Next (Successivo)**.

1. Aggiungi le policy gestite da IAM effettuando le seguenti operazioni:

   1. Utilizzando la casella di ricerca delle policy, cerca **AWSLambdaSQSQueueExecutionRole**.

   1. Nell'elenco dei risultati, seleziona la casella di controllo accanto al ruolo, quindi scegli **Cancella filtri**.

   1. Utilizzando la casella di ricerca delle policy, cerca **AWSLambdaVPCAccessExecutionRole**.

   1. Nell'elenco dei risultati, seleziona la casella di controllo accanto al ruolo, quindi scegli **Successivo**.

1. In **Nome ruolo**, immetti **lambda-vpc-sqs-role** e quindi seleziona **Crea ruolo**.

Più avanti nel tutorial sarà necessario il nome della risorsa Amazon (ARN) del ruolo di esecuzione appena creato.

**Individuazione dell'ARN del ruolo di esecuzione**

1. Apri la pagina [Ruoli](https://console.aws.amazon.com/iamv2/home#/roles) della console IAM e scegli il ruolo (`lambda-vpc-sqs-role`).

1.  Copia l'**ARN** visualizzato nella sezione **Riepilogo**.

## Creazione di un pacchetto di implementazione Lambda
<a name="vpc-rds-create-deployment-package"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step4.png)


L'esempio seguente di codice Python utilizza il pacchetto [PyMySQL](https://pymysql.readthedocs.io/en/latest/) per aprire una connessione al database. La prima volta che viene richiamata la funzione, crea anche una nuova tabella chiamata `Customer`. La tabella utilizza lo schema seguente, dove `CustID` è la chiave primaria:

```
Customer(CustID, Name)
```

La funzione utilizza anche PyMy SQL per aggiungere record a questa tabella. La funzione aggiunge record utilizzando clienti IDs e nomi specificati nei messaggi che aggiungerai alla coda Amazon SQS.

Il codice crea la connessione al database al di fuori della funzione di gestione. La creazione della connessione nel codice di inizializzazione consente di riutilizzarla da chiamate della funzione successive e migliora le prestazioni. In un'applicazione di produzione, è inoltre possibile utilizzare la [simultaneità fornita](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) per inizializzare un numero richiesto di connessioni al database. Queste connessioni sono disponibili non appena viene richiamata la funzione.

```
import sys
import logging
import pymysql
import json
import os

# rds settings
user_name = os.environ['USER_NAME']
password = os.environ['PASSWORD']
rds_proxy_host = os.environ['RDS_PROXY_HOST']
db_name = os.environ['DB_NAME']

logger = logging.getLogger()
logger.setLevel(logging.INFO)

# create the database connection outside of the handler to allow connections to be
# re-used by subsequent function invocations.
try:
        conn = pymysql.connect(host=rds_proxy_host, user=user_name, passwd=password, db=db_name, connect_timeout=5)
except pymysql.MySQLError as e:
    logger.error("ERROR: Unexpected error: Could not connect to MySQL instance.")
    logger.error(e)
    sys.exit(1)

logger.info("SUCCESS: Connection to RDS for MySQL instance succeeded")

def lambda_handler(event, context):
    """
    This function creates a new RDS database table and writes records to it
    """
    message = event['Records'][0]['body']
    data = json.loads(message)
    CustID = data['CustID']
    Name = data['Name']

    item_count = 0
    sql_string = f"insert into Customer (CustID, Name) values(%s, %s)"

    with conn.cursor() as cur:
        cur.execute("create table if not exists Customer ( CustID  int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (CustID))")
        cur.execute(sql_string, (CustID, Name))
        conn.commit()
        cur.execute("select * from Customer")
        logger.info("The following items have been added to the database:")
        for row in cur:
            item_count += 1
            logger.info(row)
    conn.commit()

    return "Added %d items to RDS for MySQL table" %(item_count)
```

**Nota**  
In questo esempio, le credenziali di accesso al database vengono archiviate come variabili di ambiente. Nelle applicazioni di produzione, si consiglia di utilizzare [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) per maggiore sicurezza. Tieni presente che, se la funzione Lambda si trova in un VPC, per eseguire la connessione a Secrets Manager devi creare un endpoint VPC. Per ulteriori informazioni, consulta la pagina [How to connect to Secrets Manager service within a Virtual Private Cloud](https://aws.amazon.com/blogs/security/how-to-connect-to-aws-secrets-manager-service-within-a-virtual-private-cloud/). 

 Per includere la dipendenza PyMy SQL nel codice della funzione, crea un pacchetto di distribuzione.zip. I seguenti comandi funzionano per Linux, macOS o Unix:

**Creazione di un pacchetto di implementazione .zip**

1. Salva il codice di esempio come un file denominato `lambda_function.py`. 

1. Nella stessa directory in cui hai creato il `lambda_function.py` file, crea una nuova directory denominata `package` e installa la libreria PyMy SQL. 

   ```
   mkdir package
   pip install --target package pymysql
   ```

1. Create un file zip contenente il codice dell'applicazione e la libreria PyMy SQL. Su Linux o macOS, esegui i comandi della CLI riportati. Su Windows, usa il tuo strumento di compressione preferito per creare il file `lambda_function.zip`. Il file del codice sorgente `lambda_function.py` e le cartelle contenenti le dipendenze devono essere installati nella directory principale del file .zip.

   ```
   cd package
   zip -r ../lambda_function.zip .
   cd ..
   zip lambda_function.zip lambda_function.py
   ```

   Puoi creare il tuo pacchetto di implementazione anche utilizzando un ambiente virtuale Python. Consulta [Distribuisci funzioni Lambda per Python con gli archivi di file .zip](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-create-package-with-dependency).

## Aggiornamento della funzione Lambda
<a name="vpc-rds-update-function"></a>

Utilizzando il nuovo pacchetto .zip creato, viene aggiornata una funzione Lambda tramite la console Lambda. Per consentire alla funzione di accedere al database, è inoltre necessario configurare le variabili di ambiente con le credenziali di accesso.

**Per aggiornare la funzione Lambda**

1. Apri la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda e scegli la tua funzione `LambdaFunctionWithRDS`.

1. Nella scheda **Impostazioni di runtime**, seleziona **Modifica** per modificare il **Runtime** della funzione in **Python 3.10**.

1. Cambia il **Gestore** in `lambda_function.lambda_handler`.

1. Nella scheda **Codice**, scegli **Carica da**, quindi **File .zip**.

1. Seleziona il file `lambda_function.zip` che hai creato nella fase precedente e scegli **Salva**.

A questo punto, configura la funzione con il ruolo di esecuzione creato in precedenza. Ciò concede alla funzione le autorizzazioni necessarie per accedere all'istanza del database ed eseguire il polling di una coda Amazon SQS.

**Per configurare il ruolo di esecuzione della funzione**

1. Nella pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda, seleziona la scheda **Configurazione**, quindi scegli **Autorizzazioni**.

1. In **Ruolo di esecuzione**, scegli **Modifica**.

1. In **Ruolo esistente**, scegli il ruolo di esecuzione (`lambda-vpc-sqs-role`).

1. Scegli **Save** (Salva).

**Per configurare le variabili di ambiente della funzione**

1. Nella pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda, seleziona la scheda **Configurazione**, quindi scegli **Variabili di ambiente**.

1. Scegli **Modifica**.

1. Per aggiungere le credenziali di accesso al database, procedi come segue:

   1. Scegli **Aggiungi variabili di ambiente**, quindi in **Chiave** inserisci **USER\$1NAME** e in **Valore** inserisci **admin**.

   1. Scegli **Aggiungi variabili di ambiente**, quindi in **Chiave** inserisci **DB\$1NAME** e in **Valore** inserisci **ExampleDB**.

   1. Scegli **Aggiungi variabili di ambiente**, quindi in **Chiave** inserisci **PASSWORD** e in **Valore** inserisci la password che hai scelto quando hai creato il database.

   1. Scegli **Aggiungi variabili di ambiente**, quindi per **Chiave** inserisci **RDS\$1PROXY\$1HOST** e per **Valore** inserisci l'endpoint di RDS Proxy di cui hai preso nota in precedenza.

   1. Scegli **Save** (Salva).

## Test della funzione Lambda nella console
<a name="vpc-rds-test-function"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step5.png)


A questo punto è possibile utilizzare la console Lambda per testare la funzione. Viene creato un evento di test che imita i dati che verranno ricevuti dalla tua funzione quando questa viene richiamata utilizzando Amazon SQS nella fase finale del tutorial. L'evento di test contiene un oggetto JSON che specifica un ID cliente e un nome del cliente da aggiungere alla tabella `Customer` creata dalla funzione.

**Verifica della funzione Lambda**

1. Apri la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda e scegli la tua funzione.

1. Scegli la sezione **Test**.

1. Scegli **Crea nuovo evento** e immetti **myTestEvent** per il nome dell'evento.

1. Copia il seguente codice in **JSON dell'evento** e scegli **Salva**.

   ```
   {
     "Records": [
       {
         "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d",
         "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...",
         "body": "{\n     \"CustID\": 1021,\n     \"Name\": \"Martha Rivera\"\n}",
         "attributes": {
           "ApproximateReceiveCount": "1",
           "SentTimestamp": "1545082649183",
           "SenderId": "AIDAIENQZJOLO23YVJ4VO",
           "ApproximateFirstReceiveTimestamp": "1545082649185"
         },
         "messageAttributes": {},
         "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
         "eventSource": "aws:sqs",
         "eventSourceARN": "arn:aws:sqs:us-west-2:123456789012:my-queue",
         "awsRegion": "us-west-2"
       }
     ]
   }
   ```

1. Scegli **Test (Esegui test)**.

Nella scheda **Risultati di esecuzione**, si dovrebbero ottenere risultati simili ai seguenti visualizzati nei **log della funzione**:

```
[INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f The following items have been added to the database:
[INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f (1021, 'Martha Rivera')
```

## Creazione di una coda Amazon SQS
<a name="vpc-rds-create-queue"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step6.png)


Hai testato con successo l'integrazione della tua funzione Lambda e dell'istanza del database Amazon RDS. Adesso creerai la coda Amazon SQS che verrà utilizzata per richiamare la funzione Lambda nella fase finale del tutorial.

**Creazione della coda Amazon SQS (console)**

1. Apri la pagina [Code](https://console.aws.amazon.com/sqs/v2/home#/queues) della console Amazon SQS e seleziona **Crea coda**.

1. Lascia il campo **Tipo** impostato su **Standard** e inserisci **LambdaRDSQueue** per il nome della coda.

1. Lascia selezionate tutte le opzioni predefinite e scegli **Crea coda**.

## Creazione di uno strumento di mappatura dell'origine degli eventi per richiamare la funzione Lambda
<a name="vpc-rds-create-event-source-mapping"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step7.png)


Uno [strumento di mappatura dell'origine degli eventi](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html) è una risorsa Lambda che legge gli elementi da un flusso o da una coda e chiama una funzione Lambda. Quando si configura uno strumento di mappatura dell'origine degli eventi, puoi specificare una dimensione batch in modo che i record del flusso o della coda vengano raggruppati in un unico payload. In questo esempio, la dimensione del batch viene impostata su 1 in modo che la funzione Lambda venga richiamata ogni volta che viene inviato un messaggio alla coda. È possibile configurare la mappatura delle sorgenti degli eventi utilizzando la console AWS CLI o Lambda.

**Creazione di uno strumento di mappatura dell'origine degli eventi (console)**

1. Apri la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda e scegli la tua funzione (`LambdaFunctionWithRDS`).

1. Nella sezione **Panoramica della funzione**, scegli **Aggiungi trigger**.

1. Per l'origine, seleziona **Amazon SQS**, quindi seleziona il nome della coda (`LambdaRDSQueue`).

1. Per **Dimensioni del batch**, immetti **1**.

1. Lascia tutte le altre opzioni impostate sui valori predefiniti e scegli **Aggiungi**.

A questo punto, è possibile testare la configurazione completa aggiungendo un messaggio alla coda Amazon SQS.

## Test e monitoraggio della configurazione
<a name="vpc-rds-test-setup"></a>

![\[\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/images/TUT_Lambda_step8.png)


Per testare la configurazione completa, aggiungi i messaggi alla coda Amazon SQS utilizzando la console. Utilizzate quindi CloudWatch Logs per confermare che la funzione Lambda sta scrivendo i record nel database come previsto.

**Test e monitoraggio della configurazione**

1. Apri la pagina [Code](https://console.aws.amazon.com/sqs/v2/home#/queues) della console Amazon SQS e seleziona la coda (`LambdaRDSQueue`).

1. Scegli **Invio e ricezione di messaggi** e incolla il seguente JSON nel **Corpo del messaggio** nella sezione **Invia messaggio**.

   ```
   {
       "CustID": 1054,
       "Name": "Richard Roe"
   }
   ```

1. Scegliere **Invia messaggio**.

   L'invio del messaggio alla coda farà sì che Lambda richiami la funzione tramite lo strumento di mappatura dell'origine degli eventi. Per confermare che Lambda abbia richiamato la funzione come previsto, usa CloudWatch Logs per verificare che la funzione abbia scritto il nome e l'ID del cliente nella tabella del database.

1. Apri la pagina [Log groups](https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups) della CloudWatch console e seleziona il gruppo di log per la tua funzione (). `/aws/lambda/LambdaFunctionWithRDS`

1. Nella sezione **Flussi di log**, scegli il flusso di log più recente.

   La tabella deve contenere due record relativi ai clienti, uno per ogni chiamata della funzione. Nel flusso di log, si dovrebbero visualizzare messaggi simili ai seguenti:

   ```
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 The following items have been added to the database:
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1021, 'Martha Rivera')
   [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1054, 'Richard Roe')
   ```

## Pulizia delle risorse
<a name="rds-tutorial-cleanup"></a>

Ora è possibile eliminare le risorse create per questo tutorial, a meno che non si voglia conservarle. Eliminando AWS le risorse che non utilizzi più, eviti addebiti inutili sul tuo AWS account.

**Per eliminare la funzione Lambda**

1. Aprire la pagina [Functions (Funzioni)](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Selezionare la funzione creata.

1. Scegliere **Actions (Operazioni)**, **Delete (Elimina)**.

1. Scegliere **Delete (Elimina)**.

**Per eliminare il ruolo di esecuzione**

1. Aprire la pagina [Ruoli](https://console.aws.amazon.com/iam/home#/roles) della console IAM.

1. Selezionare il ruolo di esecuzione creato.

1. Scegliere **Delete role (Elimina ruolo)**.

1. Scegliere **Yes, delete (Sì, elimina)**.

**Per eliminare l'istanza database MySQL**

1. Aprire la [pagina Database](https://console.aws.amazon.com//rds/home#databases:) della console Amazon RDS.

1. Selezionare il database creato.

1. Scegli **Operazioni** > **Elimina**.

1. Deselezionare la casella per **Create final snapshot (Crea snapshot finale)**.

1. Immettere **delete me** nella casella di testo.

1. Scegli **Elimina**.

**Per eliminare la coda Amazon SQS**

1. Accedi Console di gestione AWS e apri la console Amazon SQS all'indirizzo. [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)

1. Selezionare la coda creata.

1. Scegliere **Delete (Elimina)**.

1. Immettere **delete** nella casella di testo.

1. Scegli **Delete** (Elimina).