Questa sezione riassume le nostre best practice e fornisce i nostri consigli per l'utilizzo di OPDK con il cloud AWS.
Cassandra viene utilizzato come backend e datastore per quasi tutte le policy ed è una parte fondamentale dell'ambiente di runtime di Apigee Edge. Questo documento si concentra sull'ottimizzazione di Cassandra per l'ambiente AWS.
Requisiti di archiviazione e I/O
La maggior parte delle operazioni di I/O di Cassandra è sequenziale, ma in alcuni casi è necessario l'I/O casuale. Un esempio è la lettura di tabelle di stringhe ordinate durante le operazioni di lettura. L'SSD è il meccanismo di archiviazione consigliato per Cassandra, perché fornisce tempi di risposta a latenza estremamente bassa per le operazioni di lettura casuale, fornendo al contempo prestazioni di scrittura sequenziale sufficienti per le operazioni di compattazione. Anche la replica viene presa in considerazione in questo caso.
Molte istanze in AWS EC2 sono dotate di spazio di archiviazione locale in cui il disco rigido è fisicamente collegato all'hardware su cui è ospitata l'istanza EC2. Apigee consiglia di utilizzare sia gli archivi di istanze sia gli SSD quando esegui Cassandra in produzione. Quando utilizzi un tipo di istanza con più di un'unità SSD, puoi utilizzare RAID0 per ottenere più throughput e capacità di archiviazione.
Requisiti di rete
Cassandra utilizza il protocollo Gossip per scambiare informazioni con altri nodi sulla topologia di rete. L'utilizzo di Gossip, unito alla natura distribuita di Cassandra, che prevede la comunicazione con più nodi per le operazioni di lettura e scrittura, comporta un notevole trasferimento di dati attraverso la rete. Apigee consiglia di utilizzare un tipo di istanza con una larghezza di banda di rete di almeno 1 Gbps e superiore a 1 Gbps per i sistemi di produzione.
Utilizza un VPC con CIDR /16. Poiché le subnet in AWS non possono estendersi su più di una zona di disponibilità, Apigee consiglia quanto segue:
- Crea una subnet per zona di disponibilità (AZ)
- Utilizza tre subnet private per l'installazione di Apigee, con un nodo Cassandra in ogni zona di disponibilità. Le tre subnet devono avere blocchi CIDR sufficienti per consentire l'espansione orizzontale del cluster Cassandra.
- Configura tre subnet pubbliche con NAT dedicato per consentire a Cassandra di comunicare con internet per il download del software e gli aggiornamenti della sicurezza.
A differenza delle architetture master-slave legacy, Cassandra ha un'architettura senza master in cui tutti i nodi svolgono un ruolo identico, quindi non esiste un single point of failure. Valuta la possibilità di distribuire i nodi Cassandra su più zone di disponibilità per garantire un'alta affidabilità. Distribuendo i nodi tra le zone di disponibilità, puoi comunque mantenere la disponibilità e l'uptime in caso di emergenza.
Scelta di una famiglia di istanze
Quando si esaminano i requisiti della CPU di Cassandra, è utile notare che i workload con un numero elevato di inserimenti sono limitati dalla CPU in Cassandra prima di essere limitati dall'I/O. In altre parole, tutte le operazioni di scrittura vanno al log dei commit, ma Cassandra è così efficiente nella scrittura che la CPU diventa il fattore limitante. Cassandra è altamente simultaneo e utilizza tutti i core della CPU disponibili.
Apigee consiglia di utilizzare una famiglia di istanze, che offre un equilibrio tra CPU e memoria. Nello specifico, ti consigliamo di utilizzare le istanze della famiglia C5, se disponibili nella tua regione AWS, e C3 come opzione di riserva. In alcuni casi, 4xlarge è l'istanza ottimale in entrambe le famiglie che offre il miglior rapporto prezzo/prestazioni.
Apigee consiglia inoltre di utilizzare una tenancy predefinita per le istanze Cassandra. Se esegui lo scale up a più di un'istanza per zona di disponibilità, molto probabilmente tutte le istanze Cassandra verranno posizionate sullo stesso hardware sottostante se imposti la tenancy su Dedicata. Pertanto, in caso di guasto dell'hardware, è probabile che perderai tutte le istanze in quella zona di disponibilità.
Riepilogo consigli
La tabella seguente riassume i suggerimenti di Apigee per l'utilizzo di AWS con Apigee Edge for Private Cloud:
| Famiglia di istanze | C5d (preferito) o C3 |
| Tipo di istanza | C(x).4xlarge |
| Archiviazione istanza | SSD (archiviazione locale) con RAID0 |
| Tipo di tenancy | predefinito |
| Posizionamento dei nodi | 1 nodo Cassandra per zona di disponibilità |
| VPC e subnet | 1 subnet per zona di disponibilità e un VPC per regione |
Per saperne di più, consulta Tipi di istanze Amazon.