För några år sedan valde man vilken instans som skulle användas för en ansökan en enkel affär. Amazon Web Services (AWS) tillhandahöll några exempeltyper som varierade på ett primärt linjärt sätt; det vill säga om du ville ha mer bearbetningseffekt valde du en instans typ som innehöll mer ECU, och den levererades med större mängder minne och lagring - en cakewalk.
Det är mycket svårare att nu bestämma vilken förekomsttyp som ska användas, eftersom Amazon har lanserat (ursäkta ordspetsen) flera familjer av instanser som är utformade för att hjälpa dig att optimera för en viss typ av funktionalitet.
Till exempel, om din ansökan är minnesintensiv, eftersom vissa analysprogram är? Du brukade använda en instans från familjen av standardinstanstyper, och du var tvungen att använda instanser med stora mängder minne som hade ett stort antal ecu, även om din applikation inte krävde mycket bearbetningskraft. Det var precis som det var.
Bildtyper är bara en sida av EC2-myntet. Du måste också överväga förekomsttyper - vilka typer av virtuella maskiner du kan köra i AWS.
Instanser varierar med antalet tre typer av beräkningsresurser:
-
Behandlingseffekt: Varje instans har ett visst antal EC2 beräkningsenhet s (ECU), vilket är en jämförd mängd bearbetningseffekt (motsvarande CPU-kapaciteten hos en 1, 0-1. 2 GHz 2007 Opteron eller 2007 Xeon-processor). Till exempel har den lilla förekomsten i AWS 1 EC2-beräkningsenhet, eller 1 ECU.
-
Minne: Varje instans innehåller en viss mängd minne, uppmätt i gigabyte. En liten instans har 1. 7 GB minne.
-
Lagring: Varje instans har en viss mängd lagringsutrymme. En liten instans har 170 GB disklager.
Beroende på förekomsttypen kan en del av skivförvaringen associerad med en instans tillhandahållas i oformaterad form. Innan den kan användas måste den formateras med ett filsystem som kan användas av instansens operativsystem.
-
Nätverksanslutning: Varje instans levereras med ett virtuellt nätverkskort (NIC) som används för att kommunicera med andra enheter eller tjänster. Varje instans ges två IP-adresser: En privat adress som används enbart inom AWS och en allmän adress som används för tillgång till Internet till exemplet.
Inte alla instansstyper får bara en NIC. Instanser inom AWS Virtual Private Cloud (VPC) kan ha mer än en NIC.
Det är uppenbarligen att det här är ett positivt dilemma eftersom du kan hitta en familj som är väl anpassad för användarprofilen för din ansökan. å andra sidan (och det är alltid en annan hand) måste du använda due diligence när du bestämmer vilken förekomstfamilj som är mest angenäm i din ansökan (vilket kräver att du förstår användarens operativa egenskaper).
I EC2-dokumentationen beskriver Amazon erbjudandenen för EC2-instanser (t.ex. hög-CPU) som familjer, och de olika storlekarna av instanser (M1, där M står för medium), som typer.
I praktiken hänvisar nästan alla andra (inklusive AWS-anställda) till en familj från AWS-dokumentationen som en typ ("Det är en exemplar med hög CPU-typ", till exempel) och till typ från AWS-dokumentationen som storlek ("Det är en M1 Large Size-instans" till exempel). Denna diskussion använder det vanligare sättet eftersom det är så som du hör det diskuterade av nästan alla, men också för att det är mer logiskt.
Hoppa till en beskrivning av förekomsttyperna:
-
Mikro: Mycket, väldigt liten; ger en begränsad mängd av både CPU och minne, även om mikroexemplstyper kan brista till 2 ecu under korta perioder. Använd den här typen för program med låg genomströmning och webbplatser med låg trafik. Mikrotypen är också tillgänglig som en del av AWS Free Usage Tier, vilket är användbart för lärande och experiment.
-
Standard: Den "genomsnittliga" typen och den överlägset mest använda; erbjuder en balans mellan CU, minne och disk som passar för vanliga applikationer.
-
Hög CPU: Går för högre CU istället för minne och är väl lämpad för bearbetning-tunga applikationer. En talande applikation är det kanoniska användningsfallet för hög CPU-instanser.
-
Högt minne: Höger upp minne istället för CPU. Den här typen är väl lämpad för databasapplikationer, analytikapprogram och appar som är beroende av minnehantering. Om du kör en cache-tierprodukt som memcached, är denna instans typ ett bra val.
-
Hög I / O: Ger hög genomströmning (ingång + utgång - I / O, med andra ord) och passar väl för applikationer som rör mycket data. Det är ett bra val för att driva din egen nyckelvärdes lagringstjänst, som Cassandra eller MongoDB, istället för att använda AWS DynamoDB-tjänst. Hög-I / O-instanser har höga genomströmningsanslutningar (10 Gbps) och använder solid state-enheter för att ge höga prestanda.
-
Cluster Compute: Ger ett stort antal ECU tillsammans med högpresterande nätverk (10 Gbps). Denna typ av instans, som är väl lämpad för högpresterande databearbetningsuppgifter (mycket stora applikationer för specialkryptering, som seismisk analys av oljefält), körs på specialiserad hårdvara, med anpassade AMI som använder en annan, mer effektiv typ av virtualisering som nära anslutna maskiner för bättre nätverksprestanda.
-
Cluster GPU: Analoga till Cluster Compute-instanser, men använder grafiska bearbetningsenheter (tänk på processorn inuti grafikkortet på din dator, om du är en spelare) som passar bättre för vissa typer av applikationer, inklusive vissa varianter av HPC-nätverksanalys. Cluster GPU-instanser fungerar på samma sätt som Cluster Compute-instanser, om än med olika CPU-chips i servrarna som dessa instanser går på.