

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

# Utilizzo di un archivio dati di back-end
<a name="customizing-rds"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Gli stack di server applicativi includono in genere un server di database per fornire un data store di back-end. OpsWorks [Stacks fornisce supporto integrato per i server MySQL tramite il livello MySQL e per diversi tipi di server di database tramite il livello Amazon Relational Database [Service](workinglayers-db-rds.md) (Amazon RDS).](workinglayers-db-mysql.md) Tuttavia, puoi personalizzare facilmente uno stack in modo che i server delle applicazioni utilizzino altri server di database come Amazon DynamoDB o MongoDB. Questo argomento descrive la procedura di base per la connessione di un server di applicazione a un server di database AWS. Utilizza lo stack e l'applicazione da [Nozioni di base sugli stack Linux Chef 11](gettingstarted.md) per mostrare come connettere manualmente un server di applicazione PHP a un database RDS. Anche se l'esempio è basato su uno stack di Linux, i principi di base, inoltre, si applicano agli stack Windows. [Per un esempio di come incorporare un server di database MongoDB in uno stack, vedi Deploying MongoDB with. OpsWorks](https://aws.amazon.com/blogs/devops/deploying-mongodb-with-opsworks/)

**Nota**  
Questo argomento utilizza Amazon RDS come esempio pratico. Tuttavia, se desideri utilizzare un database Amazon RDS con il tuo stack, è molto più semplice utilizzare un livello Amazon RDS. 

**Topics**
+ [Come impostare una connessione di database](customizing-rds-setup.md)
+ [Come connettere un'istanza di Application Server ad Amazon RDS](customizing-rds-connect.md)

# Come impostare una connessione di database
<a name="customizing-rds-setup"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Configurare la connessione tra un server di applicazione e il suo database di back-end utilizzando una ricetta personalizzata. La ricetta configura il server di applicazione come richiesto, in genere mediante la creazione di un file di configurazione. La ricetta ottiene i dati di connessione, come il nome dell'host e del database, da un set di attributi negli attributi di [configurazione e distribuzione dello stack](workingcookbook-json.md) che OpsWorks Stacks installa su ogni istanza.

Ad esempio, Step 2 of si [Nozioni di base sugli stack Linux Chef 11](gettingstarted.md) basa su uno stack denominato MyStack con due livelli, PHP App Server e MySQL, ciascuno con un'istanza. Si distribuisce un'app denominata PHPApp Simple nell'istanza PHP App Server che utilizza il database sull'istanza MySQL come archivio dati di back-end. Quando si distribuisce l'applicazione, OpsWorks Stacks installa la configurazione stack e gli attributi di distribuzione che contengono le informazioni di connessione al database. L'esempio seguente mostra gli attributi di connessione al database, rappresentati come JSON:

```
{
  ...
  "deploy": {
    "simplephpapp": {
      ...
      "database": {
        "reconnect": true,
        "password": null,
        "username": "root",
        "host": null,
        "database": "simplephpapp"
        ...
      },
      ...
    }
  }
}
```

I valori degli attributi sono forniti da OpsWorks Stacks e sono generati o basati sulle informazioni fornite dall'utente.

[Per consentire a Simple di accedere PHPApp al data store, è necessario configurare la connessione tra il server delle applicazioni PHP e il database MySQL assegnando una ricetta personalizzata `appsetup.rb` denominata all'evento Deploy del ciclo di vita Deploy del livello PHP App Server.](workingcookbook-events.md) Quando si distribuisce SimplePHPApp, viene eseguito OpsWorks Stacks`appsetup.rb`, che crea un file di configurazione denominato `db-connect.php` che configura la connessione, come illustrato nel seguente estratto.

```
node[:deploy].each do |app_name, deploy|
  ...
  template "#{deploy[:deploy_to]}/current/db-connect.php" do
    source "db-connect.php.erb"
    mode 0660
    group deploy[:group]

    if platform?("ubuntu")
      owner "www-data"
    elsif platform?("amazon")   
      owner "apache"
    end

    variables(
      :host =>     (deploy[:database][:host] rescue nil),
      :user =>     (deploy[:database][:username] rescue nil),
      :password => (deploy[:database][:password] rescue nil),
      :db =>       (deploy[:database][:database] rescue nil),
      :table =>    (node[:phpapp][:dbtable] rescue nil)
    )
    ...
  end
end
```

[Le variabili che caratterizzano la connessione, e così via `host``user`, vengono impostate con i valori corrispondenti dagli attributi JSON di deploy.](workingcookbook-json.md#workingcookbook-json-deploy) `[:deploy][:app_name][:database]` Per semplicità, l'esempio presuppone sia già stata creata una tabella denominata `urler`, quindi il nome della tabella è rappresentato da `[:phpapp][:dbtable]` nel file attributi del libro di cucina.

Questa ricetta può effettivamente connettere il server delle applicazioni PHP a qualsiasi server di database MySQL, non solo ai membri di un livello MySQL. [Per utilizzare un server MySQL diverso, devi solo impostare gli attributi su valori appropriati per `[:database]` il tuo server, cosa che puoi fare utilizzando JSON personalizzato.](workingstacks-json.md) OpsWorks Stacks incorpora quindi tali attributi e valori negli attributi di configurazione e distribuzione dello stack e li `appsetup.rb` utilizza per creare il modello che configura la connessione. Per ulteriori informazioni sulla sostituzione della configurazione stack e implementazione JSON, consulta [Sostituzione degli attributi](workingcookbook-attributes.md).

# Come connettere un'istanza di Application Server ad Amazon RDS
<a name="customizing-rds-connect"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Questa sezione descrive come personalizzare il MyStack modulo per connettere il server delle applicazioni PHP a un'istanza RDS. [Nozioni di base sugli stack Linux Chef 11](gettingstarted.md)

**Topics**
+ [Crea un database Amazon RDS MySQL](customizing-rds-connect-create.md)
+ [Personalizzare lo Stack per la connessione al database RDS](customizing-rds-connect-customize.md)

# Crea un database Amazon RDS MySQL
<a name="customizing-rds-connect-create"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Ora sei pronto per creare un database RDS per l'esempio utilizzando il Launch DB Instance Wizard della console Amazon RDS. La procedura seguente è un breve riepilogo dei principali dettagli. Per una descrizione dettagliata di come creare un database, consulta [Nozioni di base su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.html).

**Per creare il database Amazon RDS**

1. Se è la prima volta che si crea un database RDS, fare clic su **Get Started Now (Inizia subito)**. In caso contrario, fare clic su **RDS Dashboard (Pannello di controllo RDS)** nel riquadro di navigazione e fare clic su **Launch a DB Instance (Avvia un'istanza di database)**.

1. Selezionare **MySQL Community Edition (Edizione community MySQL)** come istanza database.

1. Per **Do you plan to use this database for production purposes? (Intendi utilizzare questo database per scopi di produzione?)** selezionare **No, this instance... (No, questa istanza...)**, che è sufficiente per l'esempio. Per l'uso nella produzione, è consigliabile selezionare **Yes, use Multi-AZ Deployment... (Sì, utilizzare implementazione Multi-AZ...)**. Fare clic su **Next Step (Fase successiva)**.

1. Nella pagina **Specify DB Details (Specifica dettagli database)**, specificare le seguenti impostazioni:
   + **DB Instance Class (Classe di istanza database)**: **db.t2.micro**
   + **Multi-AZ deployment (Implementazione Multi-AZ)**: **No**
   + **Allocated Storage (Storage allocato)**: **5** GB
   + **DB Instance Identifier (Identificatore istanze DB)**: **rdsexample**
   + **Master Username (Nome utente master)**: **opsworksuser**.
   + **Master Password (Password master)**: specificare una password adatta e registrarla per l'utilizzo in un secondo momento.

   Accettare le impostazioni predefinite per le altre opzioni e fare clic su **Next Step (Fase successiva)**.

1. Nella pagina **Configure Advanced Settings (Configura impostazioni avanzate)**, specificare le seguenti impostazioni:
   + Nella sezione **Network & Security (Rete e sicurezza)**, per **VPC Security Group(s) (Gruppi di sicurezza VPC)**, selezionare **phpsecgroup (VPC)**
   + Nella sezione **Database Options (Opzioni database)**, per **Database Name (Nome del database)**, digitare **rdsexampledb**.
   + Nella sezione **Backup**, impostare **Backup Retention Period (Periodo di ritenzione dei backup)** su **0** ai fini di questo scenario.

   Accettare le impostazioni predefinite per le altre opzioni e fare clic su **Launch DB Instance (Avvia istanza database)**.

1. Scegliere **View Your DB Instances (Visualizza istanze database)** per visualizzare un elenco di istanze database.

1. Selezionare l'istanza **rdsexample** nell'elenco e fare clic sulla freccia per rivelare l'endpoint dell'istanza e altri dettagli. Registrare l'endpoint da utilizzare in futuro. Avrà un nome tipo `rdsexample.c6c8mntzhgv0.us-west-2.rds.amazonaws.com:3306`. Basta registrare il nome DNS; non è necessario il numero di porta.

1. Utilizzare uno strumento come MySQL Workbench per creare una tabella denominata `urler` nel database `rdsexampledb` utilizzando il seguente comando SQL:

   ```
   CREATE TABLE urler(id INT UNSIGNED NOT NULL AUTO_INCREMENT,author VARCHAR(63) NOT NULL,message TEXT,PRIMARY KEY (id))
   ```

# Personalizzare lo Stack per la connessione al database RDS
<a name="customizing-rds-connect-customize"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Dopo aver [creato un'istanza RDS](customizing-rds-connect-create.md) da utilizzare come database di back-end per il server delle applicazioni PHP, puoi personalizzare da. MyStack [Nozioni di base sugli stack Linux Chef 11](gettingstarted.md)

**Per connettere il server PHP App a un database RDS**

1. Apri la console OpsWorks Stacks e crea uno stack con un livello PHP App Server che contenga un'istanza e distribuisci Simple, come descritto in. PHPApp [Nozioni di base sugli stack Linux Chef 11](gettingstarted.md) Questo stack utilizza la versione 1 di SimplePHPApp, che non utilizza una connessione al database. 

1. [Aggiornare la configurazione dello stack](workingstacks-edit.md) per utilizzare i libri di cucina personalizzati che includono la ricetta `appsetup.rb` e i relativi file di modello e attributo.

   1. Impostare **Use custom Chef Cookbooks (Utilizza i libri di ricette di Chef personalizzati)** su **Yes (Sì)**.

   1. Impostare **Repository type (Tipo archivio)** su **Git** e **Repository URL (Archivio URL)** su `git://github.com/amazonwebservices/opsworks-example-cookbooks.git`.

1. Aggiungere alla casella dello stack **Custom Chef JSON (Chef JSON personalizzato)** per assegnare i dati di connessione RDS agli attributi `[:database]` che `appsetup.rb` utilizza per creare il file di configurazione.

   ```
   {
     "deploy": {
       "simplephpapp": {
         "database": {
           "username": "opsworksuser",
           "password": "your_password",
           "database": "rdsexampledb",
           "host": "rds_endpoint",
           "adapter": "mysql"
         }
       }
     }
   }
   ```

   Utilizzare i seguenti valori di attributo:
   + **username (nome utente)**: il nome utente master specificato durante la creazione dell'istanza RDS.

     Questo esempio usa `opsworksuser`.
   + **password**: la password master specificata durante la creazione dell'istanza RDS.

     Inserire la password specificata.
   + **database**: il database creato durante la creazione dell'istanza RDS.

     Questo esempio usa `rdsexampledb`.
   + **host**: l'endpoint dell'istanza RDS, ottenuta dalla console di RDS durante la creazione dell'istanza nella sezione precedente. Non includere il numero di porta.
   + **adapter (adattatore)**: l'adattatore.

     L'istanza RDS per questo esempio utilizza MySQL, perciò **adapter (adattatore)** è impostato su `mysql`. A differenza degli altri attributi, **adapter (adattatore)** non viene utilizzato da `appsetup.rb`. Viene invece utilizzato dalla ricetta Configure integrata nel livello PHP App Server per creare un file di configurazione diverso.

1. [Modifica la PHPApp configurazione Simple](workingapps-editing.md) per specificare una versione di Simple PHPApp che utilizza un database di back-end, come segue:
   + **Document root (Documento root)**: impostare questa opzione su `web`.
   + **Branch/Revision (Ramo/Revisione)**: impostare questa opzione su `version2`.

   Lasciare le opzioni rimanenti invariate.

1. [Modifica il livello PHP App Server](workinglayers-basics-edit.md) per configurare la connessione al database aggiungendole `phpapp::appsetup` alle ricette Deploy del livello.

1. [Implementa la nuova versione Simple](workingapps-deploying.md). PHPApp

1. Quando Simple PHPApp è distribuito, esegui l'applicazione andando alla pagina **Istanze** e facendo clic sull'indirizzo IP pubblico dell'istanza php-app1. Dovrebbe apparire la pagina seguente nel browser, che consente di immettere testo e memorizzarlo nel database.  
![\[Text input field labeled "Your Thoughts" with a "Share Your Thought" button.\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/gsb7.png)

**Nota**  
Se lo stack ha un livello MySQL OpsWorks , Stacks assegna automaticamente i dati di connessione corrispondenti agli attributi. `[:database]` Tuttavia, se si assegna JSON personalizzato allo stack che definisce valori diversi `[:database]`, sostituiscono i valori predefiniti. Poiché gli `[:deploy]` attributi sono installati su ogni istanza, tutte le ricette che dipendono dagli `[:database]` attributi utilizzeranno i dati di connessione personalizzati, non i dati del livello MySQL per. Se si desidera che un determinato livello di server di applicazione utilizzi dati di connessione personalizzati, assegnare JSON personalizzato all'evento di distribuzione del livello e limitare tale distribuzione a quel livello. Per ulteriori informazioni su come utilizzare gli attributi di distribuzione, consulta [Distribuzione di app](workingapps-deploying.md). Per ulteriori informazioni sulla sostituzione di attributi integrati OpsWorks Stacks, consulta [Sostituzione degli attributi](workingcookbook-attributes.md).