Distribuire un Autonomous Database con un server Web Flask
Abilita l'accesso privato a un database completamente gestito e autonomo in Oracle Cloud Infrastructure in una subnet privata. In questo modo verrà assegnato un IP privato al database autonomo per l'accesso.
Architettura
Questa architettura mostra un server Web Flask rivolto al pubblico connesso a un database autonomo con un endpoint privato di cui è stato eseguito il provisioning in Oracle Cloud Infrastructure.

Descrizione dell'immagine autonomous-db-private-endpoint.png
autonomous-db-private-endpoint-oracle.zip
L'architettura ha i seguenti componenti:
- Database autonomo, con endpoint privato
Questa architettura utilizza un database autonomo (che può essere un database Oracle Autonomous Transaction Processing o un Oracle Autonomous Data Warehouse) di cui è stato eseguito il provisioning in una subnet privata, ovvero con un endpoint privato.
- Area
Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni, e vaste distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area. Le risorse fisiche in ogni dominio di disponibilità vengono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono infrastrutture quali l'alimentazione o il raffreddamento o la rete di dominio di disponibilità interna. È quindi improbabile che un errore a un dominio di disponibilità influenzi gli altri domini di disponibilità nell'area.
- Rete cloud virtuale (VCN) e subnet
Un VCN è una rete customizzabile e definita dal software impostata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, i VCN ti danno il controllo completo sul tuo ambiente di rete. Un VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo la creazione di VCN. È possibile segmentare un VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet in VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
In questa architettura, il server Web è collegato a una subnet pubblica e il database autonomo si trova in una subnet privata.
Suggerimenti
Le vostre esigenze potrebbero differire dall'architettura descritta qui. Utilizzare i suggerimenti riportati di seguito come punto di partenza.
- Forme di computazione
Questa architettura utilizza un'istanza di computazione di Oracle Linux 7.7 con una forma VM.Standard2.1 per il server basato su Flask. Se l'applicazione ha bisogno di maggiore potenza di elaborazione, memoria o larghezza di banda di rete, scegliere una forma più grande.
- VCN
Quando si crea un VCN, determinare il numero di blocchi CIDR richiesti e la dimensione di ciascun blocco in base al numero di risorse che si prevede di associare alle subnet in VCN. Utilizzare blocchi CIDR all'interno dello spazio di indirizzi IP privati standard.
Dopo aver creato un VCN, è possibile modificare, aggiungere e rimuovere i blocchi CIDR.
- Database autonomo
In questa architettura, l'applicazione memorizza i dati relazionali in un database autonomo. Si consiglia di utilizzare la versione più recente di Oracle Database.
Considerazioni
- Scalabilità del server Web
È possibile scalare l'applicazione Flask utilizzando il pool di istanze di calcolo e le funzioni di ridimensionamento automatico.
I pool di istanze consentono di eseguire il provisioning e creare più istanze di calcolo in base alla stessa configurazione all'interno della stessa area.
Il ridimensionamento automatico consente di regolare automaticamente il numero di istanze di calcolo in un pool di istanze in base alle metriche delle prestazioni, ad esempio l'utilizzo della CPU. Il ridimensionamento automatico consente di fornire prestazioni coerenti agli utenti durante i periodi di elevata domanda e consente di ridurre i costi durante i periodi di bassa domanda.
- Scalabilità autonoma del database
È possibile scalare manualmente il numero base di core CPU del database su o giù in qualsiasi momento. La funzione di ridimensionamento automatico consente al database di utilizzare fino a tre volte il numero base corrente di core CPU in qualsiasi momento. Con l'aumentare della domanda, il ridimensionamento automatico aumenta automaticamente il numero di core in uso. È possibile scalare la capacità di memorizzazione del database in qualsiasi momento senza influire sulla disponibilità o sulle prestazioni.
- Disponibilità applicazioni
I domini di errore forniscono la migliore resilienza all'interno di un dominio di disponibilità. Se è necessaria una maggiore disponibilità, prendere in considerazione l'utilizzo di più domini di disponibilità o più aree.
- Backup autonomi del database
Il backup automatico del database autonomo viene eseguito e i backup vengono conservati per 60 giorni. È possibile ripristinare e recuperare il database in qualsiasi momento durante il periodo di conservazione.
È inoltre possibile creare backup manuali per integrare i backup automatici. I backup manuali vengono memorizzati in un bucket creato in Oracle Cloud Infrastructure Object Storage e i backup vengono conservati per 60 giorni.
- Calcola backup
Il servizio Oracle Cloud Infrastructure Block Volumes consente di eseguire backup puntuali dei dati su un volume a blocchi. È quindi possibile ripristinare i backup su nuovi volumi immediatamente o in un secondo momento.
È inoltre possibile utilizzare il servizio per eseguire un backup puntuale e resistente al crash di un volume di avvio senza interruzione dell'applicazione o tempi di inattività. Le funzionalità di backup del volume di avvio sono le stesse delle funzionalità di backup del volume a blocchi.
- Sicurezza
- Criteri
Utilizzare i criteri per limitare gli utenti che possono accedere alle risorse Oracle Cloud Infrastructure e le operazioni che possono eseguire.
- Sicurezza della rete
Il servizio di rete offre due funzioni del firewall virtuale che utilizzano le regole di sicurezza per controllare il traffico a livello di pacchetto: liste di sicurezza e gruppi di sicurezza di rete (NSG).
Un NSG è costituito da un set di regole di sicurezza in entrata e in uscita che si applicano solo a un set di VNIC di vostra scelta all'interno di un VCN. Ad esempio, un NSG può includere le VNIC di tutte le istanze di calcolo nel livello Web di un'applicazione multilivello.
Le regole di sicurezza NSG funzionano come le regole dell'elenco di sicurezza. Tuttavia, per l'origine o la destinazione di una regola di sicurezza NSG, è possibile specificare un NSG anziché un blocco CIDR. È quindi possibile scrivere facilmente regole di sicurezza per controllare il traffico tra due NSG nello stesso VCN o il traffico all'interno di un singolo NSG.
Quando si esegue il provisioning del database autonomo in Oracle Cloud Infrastructure, è possibile specificare uno o più NSG. È inoltre possibile aggiornare un database esistente per utilizzare uno o più NSG.
- Criteri
Distribuisci
Il codice Terraform per questa architettura di riferimento è disponibile in GitHub. È possibile estrarre il codice in Oracle Cloud Infrastructure Resource Manager con un solo clic, creare lo stack e distribuirlo. In alternativa, è possibile scaricare il codice da GitHub al computer, personalizzare il codice e distribuire l'architettura utilizzando Terraform CLI.
- Distribuisci utilizzando Oracle Cloud Infrastructure Resource Manager:
- Fare clic su
Se non si è già connessi, immettere la tenancy e le credenziali utente.
- Rivedere e accettare i termini e le condizioni.
- Selezionare l'area in cui distribuire lo stack.
- Seguire i prompt e le istruzioni sullo schermo per creare lo stack.
- Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
- Attendere il completamento del job e rivedere il piano.
Per apportare eventuali modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire di nuovo l'azione Piano.
- Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
- Fare clic su
- Distribuire utilizzando Terraform CLI:
- Andare a GitHub.
- Scaricare o clonare il codice sul computer locale.
- Seguire le istruzioni contenute nel README.
Log modifiche
Questo log elenca solo le modifiche significative:
5 maggio 2022 | Aggiunta l'opzione per scaricare versioni modificabili (. SVG e . DRAWIO) del diagramma dell'architettura. |
20 aprile 2021 | Aggiornato il collegamento per distribuire l'architettura utilizzando Oracle Cloud Infrastructure Resource Manager. |
4 novembre 2020 | Aggiunti passi per distribuire l'architettura utilizzando Oracle Cloud Infrastructure Resource Manager. |