Amazon's Elastic Cloud Computing (EC2) is het middelpunt van Amazon Web Services, 's werelds meest gebruikte cloud-gebaseerde infrastructuur-als-een-service oplossing.[1][2] EC2 biedt een breed scala aan opties die samen zeer krachtig zijn. Aan de andere kant is het ook uiterst ingewikkeld voor beginners, en als het niet goed begrepen wordt, kan dit betekenen dat je aanzienlijk meer aan infrastructuur uitgeeft. Deze pagina beschrijft in vrij gedetailleerd detail hoe je EC2-instanties beter kunt beheren om de kosten beheersbaar te houden. De doelgroep van deze pagina zijn personen of bedrijven waarvan de verwachte jaarlijkse EC2-kosten in het bereik van $ 10.000 - $ 200.000 liggen. Gezien de complexiteit van het materiaal hier, is het misschien niet logisch om tijd en energie te investeren in kostenoptimalisatie tegen een jaarlijkse kostprijs van minder dan $ 10.000. Als uw jaarlijkse kosten meer dan $ 200.000 bedragen, is het waarschijnlijk logisch om het equivalent van een full-time ontwikkelaarsexploitant aan te nemen om uw Amazon EC2-instanties en -kosten te beheren.

Deel een van de negen:
Begrijpen of EC2 geschikt voor u is

  1. 1 Begrijp dat EC2 niet de goedkoopste is. In termen van prijs-prestatieverhoudingen voor de hardware alleen is EC2 verre van het goedkoopste alternatief op de markt. Zelfs rekening houden met de betrouwbaarheid van de service maakt het nog niet het meest kostenconcurrerend.[3][4][5][6]
    • Als u verwacht veel data-overdracht te hebben (uitgaande van uw server), kunnen Amazon Web Services behoorlijk duur zijn in vergelijking met verschillende aanbieders van virtuele privéserver (VPS) zoals Linode en Digital Ocean. Dit komt omdat AWS ongeveer 9 cent per GB in rekening brengt, wat neerkomt op ongeveer $ 90 / TB, een bedrag dat de meeste VPS-providers gratis aanbieden met hun minimalistische maandelijkse abonnementen (ongeveer $ 5 of $ 10 per maand).[7][8][9] Met andere woorden, als u een eenvoudige website heeft die veel verkeer genereert, is het onwaarschijnlijk dat AWS de juiste keuze voor u is.
    • In termen van hardware-prestaties heeft Amazon EC2 in het verleden slechtere prestaties geleverd dan Linode en Digital Ocean voor servers van dezelfde prijs en vergelijkbare hardware-specificaties (in termen van vCPU's en geheugen). Deels komt dit door verschillen in de onderliggende architectuur.[10][11]
  2. 2 Begrijp enkele van de belangrijkste voordelen van EC2 en van Infrastructure-as-a-Service (IaaS) -oplossingen in het algemeen.[12][11][13]
    • Een flexibele, schaalbare infrastructuur die u kunt aanpassen aan uw veranderende behoeften.
    • Mogelijkheid om instanties te implementeren en de architectuur programmatisch te wijzigen.
    • De beschikbaarheid van spotinstanties.
    • Een groot aantal beheerde services die, indien samen gebruikt in dezelfde regio, niets (of heel weinig) kosten in de gegevensoverdracht.
  3. 3 Houd er rekening mee dat u EC2 niet hoeft te gebruiken alleen omdat u andere Amazon-services gebruikt. Een aantal mensen gebruiken bijvoorbeeld Amazon S3 voor goedkope, flexibele en redundante bulkopslag, maar lopen hun machines niet op EC2.

Deel twee van de negen:
Inzicht typen typen

  1. 1 Begrijp de verschillende aspecten van de beschrijving van een exemplaar van het Amazon-type.[14][15]
    • Een typerende naam bestaat uit drie delen: een letter die de instantieklasse (R, M, C, T, G, D, I, P, X) beschrijft, een getal dat de generatie beschrijft (1, 2, 3, 4, 5), en een tekenreeks die de grootte binnen die instantie klasse en generatie beschrijft (klein, medium, groot, xlarge, 2xlarge, 4xlarge, 8xlarge, 10xlarge, 16xlarge, 32xlarge). Bijvoorbeeld, "r3.4xlarge" is bijvoorbeeld type R, generatie 3 en grootte 4xlarge.
    • Een eenvoudige manier om te onthouden wat de grootte betekent: "large" staat voor 2 vCPU's, "xlarge" staat voor 4 vCPU's en nxlarge betekent 4n vCPUs. Een vCPU is een "hyperthread" in het jargon van Intel, de chipfabrikant.[16] Het kan naïef worden beschouwd als overeenkomend met één kern op een consumentenlaptop of desktop; Fysiek gezien hebben de Intel-chips die worden gebruikt door recente generaties EC2-exemplaren echter twee vCPU's (of twee threads) per kern. Als u een vergelijking maakt met bestaande fysieke servers, moet u het aantal fysieke serverkernen met twee vermenigvuldigen om het juiste vCPU-nummer te krijgen.[17][18][19]
    • De instantieklasse geeft de verhouding tussen de verschillende delen van de specificaties van de instantie. De meest relevante verhouding is de verhouding tussen vCPU's en RAM. De klasse C instance (waarbij C staat voor compute-geoptimaliseerd) biedt bijvoorbeeld 1 vCPU voor elke (ongeveer) 2 gigabyte RAM. De exacte verhoudingen verschillen lichtjes tussen verschillende generaties, omdat latere gevallen een beter resultaat opleveren door meer waarde uit de hardware te persen.
    • Generaties verschillen ook in enkele van de extra functies die ze bieden. De C-, M- en R-klassen van de derde generatie (C3, M3 en R3) hebben bijvoorbeeld allemaal lokale SSD's, maar de vierde generatie (C4, M4 en R4) doet dat niet.
    • Voor een bepaalde instantieklasse en generatie betekenen grootteverschillen alleen verschillende hoeveelheden van elke resource, maar in dezelfde verhouding (merk op dat sommige perifere aspecten van de specificaties, zoals SSD-opslag en doorvoer, niet lineair schalen). Voor on-demand en gereserveerde instanties schalen de kosten lineair af met de grootte binnen een bepaald exemplaartype en generatie. Voor een exemplaar kunnen de kosten mogelijk niet lineair worden geschaald omdat ze worden bepaald door vraag en aanbod, maar voor de meest voorkomende instantie typen is de schaalverhouding bijna lineair.
    • Voor een gegeven instantie type en generatie is het over het algemeen mogelijk om een ​​reserveringstype te wijzigen (nadat de reservering al is gemaakt) om capaciteit tussen verschillende groottes opnieuw toe te wijzen. C3.2xlarge is bijvoorbeeld tweemaal de capaciteit van c3.xlarge, dus het is mogelijk om een ​​reservering van 5 c3.2xlarge's te veranderen in 10 c3.xlarge's, of in 3 c3.2xlarge's en 4 c3.xlarge's.
    • Houd er rekening mee dat de namen van de typen exemplaren geen diepere betekenis hebben dan alleen een intuïtieve beschrijving van de specificaties. Dus, bijvoorbeeld, is C "berekend-geoptimaliseerd" maar dit betekent dat de verhouding van vCPU's tot geheugen meer in het voordeel van vCPU's is dan in geheugen.Er is geen specifieke berekening-specifieke optimalisatie buiten wat de specificaties al onthullen.
    • De doorvoer van het netwerk verloopt niet helemaal lineair.
  2. 2 Begrijp de verhoudingen van de drie hoofdinstance-klassen. Merk op dat de exacte verhoudingen een beetje verschillen tussen generaties.
    • De klasse R instance is geoptimaliseerd voor het geheugen en biedt het meeste geheugen per vCPU (d.w.z. het minste aantal vCPU's per geheugeneenheid). De verhouding is ongeveer 7,5 GB / vCPU.
    • De klasse M instance is intermediate. Het biedt 3,75 GB / vCPU.
    • De klasse C instance is berekend voor optimalisatie en biedt het minste geheugen per vCPU (d.w.z. het grootste aantal vCPU's per geheugeneenheid). De verhouding is ongeveer 1,875 GB / vCPU.
  3. 3 Begrijp de maximaal beschikbare capaciteiten van de instanties, om de limieten van verticale schaling te identificeren.
    • M exemplaarklasse: M3 gaat omhoog naar alleen m3.2xlarge (30 GB, 8 vCPU's). M4 gaat omhoog naar m4.16xlarge (256 GB, 64 vCPU's) maar mist SSD.
    • R instance klasse: R3 gaat omhoog naar r3.8xlarge (244 GB, 32 vCPU's). R4 gaat omhoog naar r4.16xlarge (488 GB, 64 vCPU's) maar mist SSD.
    • C instantie klasse: C3 gaat omhoog naar c3.8xlarge (60 GB, 32 vCPUs). C4 gaat omhoog naar c4.8xlarge (60 GB, 36 vCPU's) maar mist SSD. C5 (dat vanaf december 2016 wordt uitgerold) gaat omhoog naar c5.18xlarge (144 GB, 72 vCPU's) en heeft ook geen SSD.
  4. 4 Begrijp extra beperkingen waarmee u te maken kunt krijgen op basis van het besturingssysteem en de AMI die u wilt gebruiken.
    • De meeste opmerkingen in dit artikel, evenals de meeste online discussie over EC2, richten zich op het gebruik van Linux / Unix-instanties zonder licentiekosten.
    • U kunt EC2-instanties ook implementeren met andere besturingssystemen, zoals Windows. Deze instanties kosten meer (waarbij het exemplaartype en de aankoopoptie constant blijven). Ze bieden ook minder flexibiliteit bij het veranderen van reserveringen. Er zijn geen afzonderlijke licentiekosten; Amazon betaalt voor de licenties en neemt deze op in de voorbeeldkosten.[20]

Deel drie van de negen:
Toepassingsvereisten begrijpen

  1. 1 Voer in sommige gevallen uw toepassing uit om te zien hoe verschillende bronnen (computing, geheugen, lokale opslag, netwerk) worden gebruikt en wat de knelpunten zijn.
    • CPU- en netwerkgebruik worden opgeslagen in metrieken in Amazon CloudWatch, Amazon's systeem voor het opnemen van statistieken. Ze zijn ook toegankelijk via de EC2-console.
    • Geheugengebruik is niet traceerbaar via de Amazon EC2-console. Daarom moet u het geheugengebruik in uw toepassing traceren of via een ander geheugenregistratieproces dat u op uw instantie installeert. Een dergelijk proces aanbevolen door Amazon (en dat kan exporteren naar CloudWatch) wordt verzameld.[21]
    • Houd er rekening mee dat CPU- en netwerkgebruiksgegevens niet meer beschikbaar zijn in de EC2-console nadat uw exemplaren zijn beëindigd. Ze kunnen echter worden bekeken in CloudWatch-statistieken (voornamelijk de reden waarom u ze niet kunt zien in de EC2-console is dat het exemplaar hier niet meer wordt vermeld).
    • CloudWatch-statistieken voor CPU- en netwerkgebruik (evenals andere aangepaste statistieken die u exporteert) worden gedurende een bewegend venster van 15 maanden gehandhaafd, vanaf een bewegend venster van 2 weken eerder. Sinds de wijziging onlangs is ingevoerd, kunt u vanaf nu alleen de statistieken voor de afgelopen drie maanden bekijken.[22]
  2. 2 Identificeer de belangrijkste variabelen die van invloed zijn op het resourcegebruik van uw applicaties.
    • Voor frontend-applicaties is een sleutelvariabele die het gebruik van bronnen beïnvloedt verkeersniveaus. Bepaal hoe uw resourcegebruik (zowel geheugen als berekeningsbronnen) varieert met verschillende verkeersniveaus. Verkeersniveaus kunnen dagelijks en per seizoen fluctueren, evenals seculaire trends hebben (d.w.z. langetermijntrends). Mogelijk wilt u kunstmatig hogere verkeersbelastingen simuleren met behulp van hulpmiddelen zoals Gatling[23] of services zoals Blitz.io.
    • De grootte van de gegevens die uw toepassing gebruikt, kan ook veranderen, onafhankelijk van de verkeersniveaus. Als uw toepassing bijvoorbeeld een website bedient, kunnen statistieken over de grootte van de website (aantal pagina's, aantal afzonderlijke gebruikersaccounts) van invloed zijn op het gebruik van bronnen. Deze statistieken variëren niet veel op de korte termijn, maar nemen in de loop van de tijd de neiging toe, dus u moet extrapoleren van het huidige gebruik of een grotere websitegrootte of meer gebruikersaccounts simuleren.
  3. 3 Identificeer interacties en compromissen tussen brongebruik in uw code.
    • Voor toepassingen die op de Java Virtual Machine (JVM) worden uitgevoerd, geldt dat hoe dichter uw geheugen bij volledig gebruik is, hoe meer tijd en middelen worden besteed aan het verzamelen van garbage.[24] Hierdoor kan het CPU-gebruik omhoog schieten en de latentie toenemen. Soortgelijke verschijnselen kunnen optreden voor toepassingen die in andere omgevingen worden uitgevoerd.
    • Daarom is het bijzonder belangrijk om bij te houden en te begrijpen wat de oorspronkelijke oorzaak van knelpunten is. Als je het CPU-gebruik alleen maar 100% ziet stijgen, betekent dit nog niet dat het probleem met te weinig CPU's was. Het probleem kan zijn dat er te weinig geheugen is waardoor CPU-bronnen gedwongen worden om de garbagecollection in te stellen.
  4. 4 Als u overweegt om identieke toepassingen op meerdere exemplaren uit te voeren (typisch voor frontends die hoge belastingen dienen), onderzoek dan de wisselwerking tussen horizontale schaling (met meer instanties) en verticale schaling (met grotere exemplaren). [25] Bepaal bijvoorbeeld of het beter is om een ​​paar xgrote instanties te gebruiken, of twee keer zoveel grote exemplaren.[26]
    • grenzen (in het voordeel van horizontaal schalen): Verticaal schalen heeft vrij strakke limieten: er is een vrij lage bovengrens voor de grootte van EC2-instanties die u kunt gebruiken (zie deel 2, stap 3). Met de infrastructuurschaal van AWS zijn de limieten op horizontale schaalvergroting veel groter (hoewel uw account mogelijk eigen limieten heeft die zijn ingesteld door AWS, kunt u een limietverhoging aanvragen). Als u 1000 vCPU's aan berekeningen nodig hebt, moet u op zijn minst enige horizontale schaling gebruiken, omdat zelfs de limieten van verticale schaling u slechts 64 vCPU's opleveren.
    • Meer verdeelbaarheid en dus betere precisie in capaciteit (ten gunste van horizontaal schalen): Met behulp van kleinere typen exemplaren kunt u het aantal exemplaren meer afstemmen op de verkeerscapaciteit. Stel dat u weet dat uw verkeersbehoefte 9 c3.grote instanties nodig heeft om te dienen. Aangenomen dat er geen gedeelde geheugen- of andere gedeelde bronproblemen zijn, Als u c3.xlarge-exemplaren wilt gebruiken, hebt u er 5 nodig, omdat u geen 4,5 exemplaren kunt krijgen en dus effectief het equivalent van één c3.large in computationele bronnen verspilt. . Als u c3.2xgrote exemplaren hebt gebruikt, heeft u er 3 nodig, waardoor het equivalent van drie c3.large's in rekenbronnen wordt verspild. Als je c3.4xlarge hebt gebruikt, heb je er 2 nodig, waarmee je effectief het equivalent van zeven c3.large's verspilt. Merk op dat dit zowel van toepassing is als u veel behoefte hebt aan verkeer en als u variabele verkeersbehoeften heeft, maar een goed systeem voor automatisch schalen hebt.
    • Verbeterde beschikbaarheid (gemengd, maar in het algemeen ten gunste van horizontale schaal): Horizontaal schalen zorgt voor meer beschikbaarheid omdat als een van de instanties uitvalt, uw capaciteit tijdelijk slechts een klein beetje wordt verminderd. In tegenstelling, met verticale schaling, doet elk afzonderlijk exemplaar dat naar beneden gaat de capaciteit veel pijn. Aan de andere kant kan horizontale schaalverkleining de beschikbaarheid verminderen als de instanties, die klein zijn, minder buffer hebben om één enkel rekenintensief verzoek te behandelen, en tijdelijk de tijd nemen om een ​​dergelijk verzoek te ontvangen.
    • Kosten stabiliteit (gemengd, maar in het algemeen voor horizontale schaalvergroting): met name voor spotinstanties zijn de kosten voor kleinere instanties stabieler vanwege het grotere aantal mensen dat ze gebruikt. Dit is echter niet uniform waar.
    • Gedeelde herinnering (in het voordeel van verticale schaling): als uw toepassing veel gemeenschappelijke gegevens uit het geheugen gebruikt om verzoeken te verwerken, is verticale schaling beter, omdat hiermee gegevens in het geheugen kunnen worden gedeeld. Bijvoorbeeld, als u een zoekmachine levert en u alle indexen opslaat in RAM, en de indexen 6 GB aan gegevens gebruiken. Als u twee grote m3-exemplaren gebruikt, dupliceert u de 6 GB voor beide computers en hebt u nog slechts 1,5 GB (= 7,5 - 6) over voor het uitvoeren van berekeningen op elk exemplaar. Aan de andere kant, als u één m3.2xlarge gebruikt, hebt u nog een effectief geheugen van 9 GB voor het uitvoeren van berekeningen. Zelfs als u niet alle gegevens in het geheugen opslaat, maar ernaar zoekt vanuit een gegevensopslag, kan gedeeld geheugen u nog steeds helpen door u in staat te stellen bronnen te cachen. Merk op dat de overweging van het gedeelde geheugen ook relevant is om te beslissen tussen instantieklassen, bijvoorbeeld het bepalen of M of C logischer is.

Deel vier van de negen:
AWS-regio's en beschikbaarheidszones begrijpen

  1. 1 Begrijp het concept van een AWS-regio. AWS-regio's zijn namen die worden gegeven aan clusters van geografisch nabijgelegen datacenters van Amazon Web Services. Vanaf december 2016 zijn er twaalf AWS-regio's (met uitzondering van AWS GovCloud):[27] vier in de Verenigde Staten, vijf in Azië-Pacific, twee in Europa en één in Zuid-Amerika. Verwacht wordt dat binnenkort nog meer AWS-regio's in Europa zullen worden toegevoegd.[28]
    • Rondetijden binnen een AWS-regio zijn ongeveer 2 milliseconden.
    • Gegevensoverdracht tussen verschillende AWS-services binnen een regio, inclusief naar en van EC2-instanties, is aanzienlijk goedkoper dan gegevensoverdracht tussen regio's, maar niet volledig gratis.
    • Prijzen verschillen per AWS-regio, maar zijn hetzelfde binnen een bepaalde AWS-regio.
  2. 2 Begrijp het concept van een AWS-beschikbaarheidzone (AZ).[29]
    • De AZ's zijn onderverdelingen binnen AWS-regio's. Het aantal AZ's per regio varieert van 2 tot 4.
    • De AZ's zijn allemaal geïsoleerd van elkaar, zodat storingen in één AZ (zoals branden of stroomuitval) de werking van de andere AZ niet nadelig mogen beïnvloeden.
    • De AZ voor een EC2-instantie wordt opgegeven op het moment dat de instantie wordt aangemaakt.
    • Hoewel de prijzen voor on-demand en gereserveerde exemplaren in verschillende regio's in een regio hetzelfde zijn, zijn de spot-instance-markten verschillend voor de verschillende beschikbaarheidszones.
    • Reserveringen waren vroeger gebonden aan een bepaalde beschikbaarheidszone. Vanaf september 2016 kunnen reserveringen zone bereik of regiobereik krijgen. Als regiobereik wordt gegeven, is de reservering niet gekoppeld aan een beschikbaarheidszone.[30] Exemplaren die voorafgaand zijn gereserveerd, hebben een bereik voor beschikbaarheidzones, maar kunnen worden gewijzigd in regiobereik.

Vijfde deel van Nine:
Begrijpen hoe elastische blokopslag (EBS) de kosten beïnvloedt

  1. 1 Begrijp de twee verschillende soorten schijfopslag die Amazon biedt voor zijn EC2-instanties.[31][32][33]
    • Elastische blokopslag (EBS) is een opslagvolume met hoge doorvoer dat wordt gerepliceerd door de beschikbaarheidszone. Een gegeven EBS kan worden gekoppeld aan maximaal één EC2-subsysteem tegelijk, maar de instantie waaraan deze is gekoppeld, kan worden gewijzigd. EBS kan blijven bestaan, zelfs wanneer de instantie wordt gestopt en (indien opgegeven bij de lancering), zelfs nadat de instantie is beëindigd.
    • Exemplaaropslag is lokale opslag die is gekoppeld aan een bepaald exemplaar. Het biedt een snellere invoer / uitvoer, maar geen redundantie en geen persistentie.
    • Afhankelijk van de AMI (Amazon Machine Image) die wordt gebruikt bij het starten van een exemplaar, kan het hoofdvolume van het exemplaar een EBS-winkel of een exemplaararchief zijn. De eerste typen exemplaren worden EBS-opstartexemplaren of door EBS-ondersteunde exemplaren genoemd.
    • Nieuwe generatie-instanties (C4, M4, R4 en C5) bieden geen opslag van exemplaren. Ze ondersteunen alleen EBS.
  2. 2 Begrijp de kostenimplicaties van het gebruik van door EBS-ondersteunde instanties.[34]
    • De kosten van een EBS-instantie zijn afhankelijk van de grootte die is opgegeven bij het maken van het volume.
    • EBS rekent ook voor I / O. Er zijn een paar verschillende soorten EBS met verschillende prijsmodellen. Voor gebruikelijke EBS treden I / O-ladingen op wanneer I / O optreedt.Voor gp2, dat is ontworpen voor hoge doorvoer, wordt u in rekening gebracht voor provisioned throughput in plaats van het werkelijke gebruik, maar met een systeem van credit-rollovers.
    • Voor EBS-ondersteunde exemplaren blijven de EBS-volumes bestaan, zelfs wanneer de instantie wordt gestopt. Voor langlopende exemplaren zijn de EBS-kosten vrij klein in vergelijking met de instantiekosten. In gevallen die slechts enkele uren per dag worden uitgevoerd en de rest van de tijd worden gestopt, kunnen de EBS-volumes een aanzienlijk deel van de totale kosten uitmaken.
    • Afhankelijk van de instellingen die worden gebruikt bij het starten van de EBS, kan het EBS-volume na het beëindigen van de instantie al dan niet behouden blijven. Als het volume aanhoudt, kan dat aanzienlijke kostenlekken veroorzaken als de EBS-volumes niet worden gewist.
    • Als u regelmatig nieuwe exemplaren instelt en de EBS niet automatisch beëindigt na beëindiging van het exemplaar, kan EBS aanzienlijke kostenlekken veroorzaken.
  3. 3 Begrijp hoe EBS-snapshots werken. Een EBS-momentopname slaat een momentopname op van de huidige inhoud van de EBS naar S3.[35][36]
    • Terwijl een EBS gekoppeld is aan een beschikbaarheidszone, is de EBS-momentopname beschikbaar in de hele regio, zodat deze kan worden teruggevonden in elke beschikbaarheidszone binnen de regio. Het kan ook over regio's worden overgedragen.
    • Hoewel EBS-momentopnamen worden opgeslagen in S3, worden de metagegevens om ze op te halen opgeslagen in het EBS-systeem. Ze kunnen niet rechtstreeks worden benaderd als S3-objecten. Dus, hoewel de onderliggende gegevens op een zeer redundante manier worden opgeslagen, genieten de snapshots slechts 99,9% betrouwbaarheid (in tegenstelling tot 99,99% + voor S3).
    • EBS-snapshots kunnen over regio's worden overgedragen. De gebruikelijke kosten voor grensoverschrijdende gegevensoverdracht zijn van toepassing.[37]
    • Opslag voor EBS-snapshots is incrementeel, zodat als een EBS meerdere keren wordt snapshotted, alleen de gewijzigde inhoud tussen snapshots wordt opgeslagen. Het verwijderingsproces is echter slim en reconstrueert latere snapshots voordat eerdere versies worden verwijderd.[32]

Deel zes van de negen:
Aankoopopties begrijpen

  1. 1 On-demand instanties zijn het duurst, maar het gemakkelijkst om mee aan de slag te gaan.[38]
    • Instanties op aanvraag kunnen op elk moment worden gecentrifugeerd en worden in rekening gebracht op basis van het exemplaartype en de hoeveelheid tijd dat het exemplaar wordt uitgevoerd.
    • Instanties op aanvraag kunnen op elk moment worden gestopt en opnieuw worden gestart. De instantie wordt niet in rekening gebracht terwijl deze is gestopt. De lokale opslag (indien aanwezig) van de instantie wordt vernietigd en alle openbare IP die aan de instantie is gekoppeld, wordt vrijgegeven (tenzij het een elastische IP was). De Elastische blokopslag (EBS) die aan het exemplaar is gekoppeld, blijft echter behouden en AWS laadt het nog steeds op.
    • On-demand instanties kunnen op elk moment door de gebruiker worden beëindigd. Nadat de on-demand-instance is beëindigd, kan de bijbehorende Elastische blokopslag wel of niet worden verwijderd. Dit is afhankelijk van de instellingen die bij het opstarten zijn opgegeven.
    • AWS stopt niet of beëindigt on-demand exemplaren, hoewel de instanties af en toe niet meer beschikbaar zijn vanwege hardwaredegradatie of andere problemen met datacenters.
    • Instanties op aanvraag komen ook in aanmerking voor beëindigingsbeveiliging, waardoor het voor de gebruiker iets moeilijker wordt om de instance per ongeluk te beëindigen.
  2. 2 Spotinstanties zijn aanzienlijk goedkoper dan on-demand-instanties.
    • Op het moment van maken specificeert de gebruiker die de instantie maakt de maximale spotprijs naast de specificatie van de beschikbaarheidszone en het instantietype.
    • Zolang de huidige spotprijs voor die beschikbaarheidszone en het instantietype minder is dan de maximale spotprijs, kan het exemplaar worden gemaakt en niet worden beëindigd. Zodra de huidige prijs echter hoger is dan de prijs van de spotinstance, wordt de instantie beëindigd.
    • De prijs die daadwerkelijk per tijdseenheid wordt berekend, is de huidige spotprijs in plaats van de maximale spotprijs.
    • Spotinstances kunnen niet worden gestopt. Ze kunnen alleen worden beëindigd door de gebruiker of door AWS om prijstechnische redenen.
    • De spotprijs voor een spotinstantie kan niet worden gewijzigd nadat de instantie is gemaakt.
    • Spotprijsbepalingsgeschiedenis per regio, beschikbaarheidszone en instantietype is beschikbaar op Amazon en kan worden gebruikt om slimme biedingsbeslissingen te nemen.
    • Er zijn limieten voor het aantal spotinstances dat door een bepaalde gebruiker kan worden gemaakt voor een bepaald instantietype en beschikbaarheidsgebied. Deze limieten zijn over het algemeen veel krapper dan de limieten die zijn gekoppeld aan het totale aantal exemplaren, vanwege de ravage die mensen kunnen veroorzaken door onverantwoord spinnende exemplaren te roteren met hoge spotprijzen (en de totale prijzen te laten stijgen). Deze limieten kunnen echter in het algemeen op verzoek worden verhoogd op voorwaarde dat er capaciteit beschikbaar is.[39]
    • Voor sommige instantietypen en beschikbaarheidszones, met name het I-instantietype, kan het veel tijd kosten om een ​​spinstart op te draaien vanwege de lage algemene spotcapaciteit, ondanks een nominaal lage spotprijs.
  3. 3 Reserveringen kunnen voor 1 of 3 jaar worden gemaakt, met drie soorten betalingsplannen: niet vooraf, gedeeltelijk vooraf, en helemaal vooraf.[40]
    • Sommige aspecten van een reservering kunnen niet worden gewijzigd nadat de reservering is gemaakt. Deze omvatten de tijdsperiode voor de reservering, het type betalingsplan, het besturingssysteem, het type huur (specifiek versus standaard) en de regio.
    • Voor standaard gereserveerde exemplaren (standaard RI's), kunnen de instantie klasse en generatie (zoals R3, C3, M3, M4) niet worden gewijzigd.
    • Voor standaard RI's, jij kan de instantiegrootte binnen dezelfde instantie klasse en generatie wijzigen. De instantiegrootte kan worden gewijzigd terwijl de totale capaciteit hetzelfde blijft. Een reservering voor drie m3.xlarge exemplaren kan bijvoorbeeld worden gewijzigd in een reservering voor één m3.2xlarge exemplaar en één m3.xlarge exemplaar.
    • Als uw reserveringen een beschikbaarheidszonebereik hebben, moet u de beschikbaarheidszone omschakelen of de regiobereik wijzigen om de reservering in een andere beschikbaarheidszone te gebruiken.
    • Houd er rekening mee dat het wijzigen van instanties, het verkrijgen van een regiobereik of het wijzigen van de beschikbaarheidszone niet mogelijk is voor reserveringen die zijn gekoppeld aan besturingssystemen die licentiekosten hebben, zoals Windows-besturingssystemen.
    • De reservering is niet gekoppeld aan een bepaald geval. In feite worden de exemplaren waarop reserveringen van toepassing zijn, op dezelfde manier gemaakt als on-demand exemplaren. De manier waarop reserveringen werken is dat op elk uur dat de facturering wordt berekend, de bestaande on-demand exemplaren die worden gebruikt worden vergeleken met de reserveringen die momenteel actief zijn. Als een van de reserveringen van toepassing is, zijn de gereduceerde prijzen op basis van de reserveringen van toepassing op de instanties. Anders is de volledige on-demand prijs van toepassing.
    • Voor converteerbare gereserveerde exemplaren (converteerbare RI's) kunnen de instantieklasse en -generatie worden gewijzigd. Als de nieuwe configuratie meer kost dan de oude, betaalt u het verschil, als het minder kost, betaalt AWS u het verschil niet terug, maar u kunt de overcapaciteit in de gereserveerde instance-marktplaats verkopen.

Part Seven of Nine:
Werken aan een robuuste, instantie-onafhankelijke architectuur

  1. 1 Vermijd de sneeuwvlokservermentaliteit.[41] Investeer extra tijd en moeite in het schrijven van scripts (met tools zoals Ansible of Chef) waarmee u met één opdracht nieuwe instanties voor uw toepassingen kunt inzetten. Maak dit script voldoende flexibel zodat u zowel on-demand als ter plaatse exemplaren met hetzelfde script kunt implementeren.
  2. 2Als uw toepassing variabele belastingen van real-time webverkeer afhandelt, plaatst u de instanties achter een elastische load balancer (ELB).
  3. 3 Onderzoek automatisch schalen en gebruik deze indien mogelijk. Met Automatisch schalen kunt u de capaciteit van de instantie in realtime vergroten in reactie op toename van de belasting. Het is een beetje extra werk om op te zetten.
  4. 4 Behoud alle kritieke langlevende gegevens buiten individuele EC2-instanties (met de mogelijke uitzondering van speciale exemplaren die zijn gereserveerd voor gegevensarchieven, waarvan u regelmatig een back-up maakt). Gebruik voor zover mogelijk S3 of databases voor langlevende gegevens.
  5. 5 Uw scripts moeten in staat zijn om updates van uw applicatie soepel af te handelen. Ze konden updates op een van de volgende manieren afhandelen:
    • De toepassingen zelf kunnen worden bijgewerkt op een live productie-instantie zonder dat die instantie offline hoeft te worden genomen. Hoewel dit mogelijk geldt voor sommige soorten updates, moet u er niet op vertrouwen dat dit de enige manier is waarop de toepassing kan worden bijgewerkt.
    • Nieuwe instanties met de bijgewerkte toepassingscode worden geïmplementeerd en verbonden met de load balancer en de oude exemplaren worden vervolgens losgekoppeld van de load balancer en beëindigd. Voor dit soort updates is de capaciteit tijdelijk grotere tijdens de update. Houd er rekening mee dat de extra capaciteit van de instance buiten de gereserveerde capaciteit valt en dat de nieuwe exemplaren, indien on-demand, tijdens de transitie volledig op aanvraag worden belast.
    • Elk van de bestaande exemplaren is bijgewerkt. Als de huidige productiebelasting kan worden afgehandeld met minder dan de volledige set exemplaren, kunnen de exemplaren één voor één worden bijgewerkt: elke instantie wordt losgekoppeld van de load balancer, bijgewerkt en vervolgens opnieuw verbonden met de load balancer. Voor dit soort updates is de capaciteit tijdelijk kleiner tijdens de update. Als de productiebelasting per tijdstip varieert, kan dit soort update worden uitgevoerd op een moment dat de productiebelasting laag is.
  6. 6Stel alarmen in voor de loadbalancers om te kunnen detecteren dat er te weinig gezonde hosts, ongebruikelijke verkeerspatronen of een groot aantal fouten zijn.
  7. 7 Verspreid instanties over meerdere beschikbaarheidszones binnen een regio voor meer robuustheid tegen schade aan een bepaalde beschikbaarheidszone. Elke beschikbaarheidszone in een bepaalde regio kan worden geactiveerd voor een ELB gebonden aan die regio.
  8. 8Gebruik routecontroles en failovers voor cross-regio redundantie in live-weergave.

Part Eight of Nine:
Tracking en monitoring instellen

  1. 1 In de Amazon EC2-console (sectie "Rapporten") kunt u rapporten opvragen over de Amazon EC2-kosten (dit omvat geen enkele kosten voor gegevensoverdracht) en het gebruik van de gereserveerde instantie. U kunt de informatie opsplitsen op regio, beschikbaarheidszone, instantieklasse, instantietype en aankoopoptie en het gebruik op uur- of dagbasis bekijken. Gegevens komen niet onmiddellijk binnen en kunnen 24-48 uur worden vertraagd.
  2. 2 Uw AWS-account heeft toegang tot de factureringsgegevens die de volledige uitsplitsing van de kosten weergeven. Stel een factureringsmelding in zodat de gegevens naar Amazon CloudWatch worden verzonden. U kunt dan meer meldingen instellen met behulp van CloudWatch.[42] CloudWatch-gegevens worden om de paar uur aangeboden als gegevenspunten, maar bevatten geen gedetailleerde uitsplitsing.
  3. 3 U kunt op elk gewenst moment gedetailleerd overzicht per uur en servicetype downloaden van uw AWS-account. Deze gegevens zijn meestal tot 6 uur te laat, hoewel het voor sommige diensten zelfs nog langer kan duren.

Deel Negen van de Negen:
Maken en verbeteren van uw aankoopbeslissingen

  1. 1 Zet alle factoren samen en begin te beslissen. U moet uitzoeken welke combinatie van instanties u gebruikt op subsysteemklasse, instantietype, regio, beschikbaarheidszone en aankoopoptie.
  2. 2 Idealiter moet u ervoor zorgen dat al uw instanties worden gereserveerd of instanties opsporen. Er mag geen onvoorwaardelijke capaciteit op aanvraag zijn, behalve zeer tijdelijk bij het draaien van nieuwe exemplaren om bestaande exemplaren te vervangen.
    • Omdat reserveringen echter een verbintenis op lange termijn met zich meebrengen, is het misschien zinvol om in plaats daarvan exemplaren op aanvraag te gebruiken voor missiekritieke toepassingen waarbij de details van de typen instanties en de benodigde capaciteit nog steeds onduidelijk zijn.
    • Over het algemeen geven reserveringen de meeste besparing voor meer exotische exemplaren (zoals de D-, I- of P-instanties), maar ze zijn ook het meest risicovol omdat deze gevallen zeer specifieke gebruiksgevallen zijn waar ze waardevol zijn.
  3. 3 Houd de kosten in de gaten, naast alle andere dingen die u bewaakt. Zorg ervoor dat de kosten deel uitmaken van de gegevens die u op gezette tijden bekijkt. Bekijk uw capaciteitsbeslissingen opnieuw op basis van wat u blijft ontdekken.