Welke AWS-opslag moet u gebruiken voor een databaseserver?

Inhoudsopgave:

Welke AWS-opslag moet u gebruiken voor een databaseserver?
Welke AWS-opslag moet u gebruiken voor een databaseserver?
Anonim

Databaseprestaties worden sterk beïnvloed door de prestaties van het onderliggende geheugen. Voor leesbewerkingen kan het hebben van veel RAM de zaken versnellen, maar voor schrijfzware bewerkingen is de bottleneck de SSD van de harde schijf die leeg raakt. AWS heeft veel opties voor opslag, dus welke is het beste voor jou?

Database-gerichte EC2-instanties

Naast de onderliggende opslag zijn er nog tal van andere factoren die de prestaties van de database beïnvloeden. AWS heeft veel verschillende klassen van instanties met individuele lagen erin.

De meest database-georiënteerde instantie is de R5-serie. Scripties zijn geoptimaliseerd voor geheugenprestaties, zowel met RAM-snelheid en -grootte als EBS-prestaties. Ze bieden een hoge verhouding tussen het aantal cores en het beschikbare geheugen, tot wel 768 GB RAM op de r5.24xlarge.

Er is ook de r5d-serie, een subklasse van R5 die een rechtstreekse lokale schijf biedt, niet op EBS. De grootste laag heeft vier 900 GB NVMe SSD's. Kleiner dan de maximale capaciteit van EBS, maar zal geweldige prestaties en een geweldige latentie hebben.

Er is ook de D3-serie, die de grootst mogelijke hoeveelheid lokale opslag biedt voor een EC2-instantie, tot 336 TB. Als u op zoek bent naar een bijzonder omvangrijke instantie die veel gegevens opslaat, kan D3 het beste voor u werken.

EBS-volumetypes

EBS heeft een paar verschillende niveaus. De meest voorkomende is gp3, een volume met SSD-ondersteuning voor algemeen gebruik dat solide prestaties biedt tegen een hogere prijs dan volumes met een harde schijf.

gp3

is de nieuwste generatie, vervangt

gp2 en biedt 4x betere prestaties met PCIe Gen 4 SSD's.

gp3 gebruikt een burst-bucket prijsmodel. Afhankelijk van de grootte van het volume, verdient het "IO-credits" per uur die automatisch worden gebruikt om IOPS te kopen, of input-output-operaties-per-seconde. Dit maakt snelle prestatie-uitbarstingen mogelijk wanneer dat nodig is, maar als je stabiele, solide prestaties nodig hebt, is het geen goed idee om hierop te vertrouwen. Er is ook een maximum aantal IOPS; voor gp3 is dat 16.000.

GP2 burst-emmermodel
GP2 burst-emmermodel

Volumes verdienen IO-credits met een snelheid van 3 per GB per seconde. Dit betekent dat als je een volume van meer dan 1 TB hebt, je bucket altijd vol is en je je geen zorgen hoeft te maken over burst-prestaties. Alles lager dan dat, en je bent beperkt tot de basisprestaties op basis van het aantal credits dat je verdient.

Basisprestatie overschrijdt burst na 1 TB
Basisprestatie overschrijdt burst na 1 TB

Wat dit in de praktijk betekent, is dat als je extra prestaties nodig hebt, je het tweede op SSD gebaseerde volume wilt gebruiken,

io2

, ook wel bekend als Provisioned IOPS SSD. Hiermee kunt u letterlijk rechtstreeks schijfprestaties kopen, ingericht op uw EBS-volume. De beste laag,

io2 Block Express, biedt tot 4000 MB/s per volume en 7.500 MB/s per instantie.

Dat is tot vier keer de prestatie van

gp3

, maar alleen als je ervoor kunt betalen - bandbreedte is duur en je moet voor elk stukje betalen. Een top-of-the-line

io2 volume kan gemakkelijk duizenden dollars per maand kosten, meer dan de EC2-instantie die erop draait. Dat komt bovenop de 83% stijging van de opslagkosten per GB.

Terwijl

io2

een optie is voor klanten die elke greintje prestatie nodig hebben die ze kunnen krijgen, tenzij je het maximale uit je drive ha alt, is het algemene doel

gp3volumes zullen voor veel mensen geweldig zijn.

Harde-schijfvolumes

Er zijn twee EBS-hoofdvolumes voor harde schijven, Throughput Optimized HDD (st1) Volumes en Cold HDD (sc1) Volumes. De namen spreken voor zich - st1 is geoptimaliseerd voor voldoende sequentiële leessnelheden (hoewel verschrikkelijke willekeurige prestaties, zoals alle harde schijven). Voor niet-kritieke toepassingen die grote bestandsgroottes vereisen, biedt sc1 geweldige lokale opslagprestaties.

Beide typen volumes gebruiken ook het burst-bucketmodel, maar komen uit op een vast MBps-nummer op basis van de volumegrootte.

Basisdoorvoer is altijd lager dan burst
Basisdoorvoer is altijd lager dan burst

Voor databases kunnen willekeurige lees- en schrijfprestaties er echter veel toe doen, net als latentie. Het is 2020 en uw gebruikers hoeven niet te wachten tot een schijf begint te draaien en te wachten tot een magnetische leeskop wat basisgegevens opha alt. Om nog maar te zwijgen over hoe het zou omgaan met complexe SQL-query's die de schijf tot stilstand zouden kunnen brengen.

Voor alles wat met de gebruiker te maken heeft, zijn prestaties van belang, en je zou een SSD moeten gebruiken. Het enige geval waar het zinvol is, is in zware leestoepassingen waar de database klein genoeg is om grotendeels in het geheugen te kunnen worden bewaard, maar zelfs dan zou het klein genoeg zijn waar de kleine premie van zelfs een standaard gp3-volume het waard zou zijn.

Voor big data, analyses en andere interne databases kan de database echter zo groot zijn dat de kosten van lokale opslag te hoog zijn om op SSD's te draaien. Als u op zoek bent naar een data lake met hoge capaciteit of een cluster met meerdere servers, geeft u misschien niet zo veel om een iets lagere schijfsnelheid, vooral als het u geld bespaart in het proces.

Populair onderwerp