For nogle år siden valgte du, hvilken forekomst der skulle bruges til en ansøgning en retfærdig affære. Amazon Web Services (AWS) leverede et par forekomsttyper, der varierede på en primært lineær måde; det vil sige, hvis du ville have mere forarbejdningskraft, valgte du en forekomststype, der indeholdt flere ECU'er, og den blev leveret med større mængder hukommelse og opbevaring - en cakewalk.
Det er meget vanskeligere nu at bestemme hvilken forekomsttype der skal bruges, fordi Amazon har lanceret (undskyld ordspillet) flere familier af instanser, der er designet til at hjælpe dig med at optimere til en bestemt type funktionalitet.
For eksempel, hvad hvis din ansøgning er hukommelsesintensiv, da visse analytiske applikationer er? Du var nødt til at bruge en forekomst fra familien af standard forekomsttyper, og du var nødt til at bruge forekomster med store mængder hukommelse, der havde et stort antal ECU, selvom din applikation ikke krævede meget behandlingskraft. Det var bare den måde det var.
Billedtyper er kun den ene side af EC2-mønten. Du skal også overveje forekomsttyper - hvilke typer virtuelle maskiner du kan køre i AWS.
Begivenhederne varierer med mængden af tre typer beregningsressourcer:
-
Behandlingseffekt: Hver forekomst har et vist antal EC2 beregningsenhed s (ECU), hvilket er en benchmarked mængde bearbejdningseffekt (svarende til CPU-kapaciteten på en 1. 0-1. 2 GHz 2007 Opteron eller 2007 Xeon-processor). For eksempel har den lille forekomst i AWS 1 EC2 beregningsenhed, eller 1 ECU.
-
Hukommelse: Hver forekomst indeholder en given mængde hukommelse målt i gigabyte. En lille forekomst har 1. 7 GB hukommelse.
-
Opbevaring: Hver forekomst har en vis mængde diskplads. En lille forekomst har 170 GB diskplads.
Afhængigt af forekomststypen kan nogle af de disklager, der er forbundet med en instans, leveres i uformateret form - inden den kan bruges, skal den formateres med et filsystem, som kan bruges af instansens operativsystem.
-
Netværksforbindelse: Hver forekomst leveres med et virtuelt netværkskort (NIC), som det bruger til at kommunikere med andre enheder eller tjenester. Hvert tilfælde gives to IP-adresser: En privat adresse, der kun bruges inden for AWS og en offentlig adresse, der bruges til internetadgang til forekomsten.
Ikke alle forekomsttyper får kun en NIC. Tilfælde inden for AWS Virtual Private Cloud (VPC) kan have mere end et NIC.
Det er naturligvis et positivt dilemma på den ene side, fordi du måske finder en familie, der er indstillet til din applikations brugsprofil. på den anden side (og der er altid en anden hånd), skal du bruge due diligence til at afgøre, hvilken forekomstfamilie der er mest behageligt for din ansøgning (hvilket kræver, at din applikations driftsegenskaber skal forstås detaljeret).
I EC2-dokumentationen beskriver Amazon tilbudene fra EC2-forekomster (f.eks. Høj-CPU) som familier, og de forskellige størrelser af forekomster (M1, hvor M f.eks. Står for medium), som typer.
I erfaring er næsten alle andre (herunder AWS-medarbejdere) henvist til en familie fra AWS-dokumentationen som en type ("Det er en high-CPU type instance", for eksempel) og til type fra AWS-dokumentationen som størrelse ("Det er eksempelvis et M1 Large Size-eksempel"). Denne diskussion bruger den mere almindelige tilgang, fordi det er den måde du hører det diskuteret af næsten alle, men også fordi det er mere logisk.
Med det skal du springe ind i en beskrivelse af forekomsttyperne:
-
Mikro: Meget, meget lille; giver en begrænset mængde af både CPU og hukommelse, selvom mikroinstanstyper kan briste til 2 ECU i korte perioder. Brug denne type til applikationer med lav gennemgang og websider med lav trafik. Micro-typen er også tilgængelig som en del af AWS Free Usage Tier, som er nyttig til læring og eksperimentering.
-
Standard: Den "gennemsnitlige" type og langt den mest anvendte; tilbyder en balance mellem CU, hukommelse og disk, der passer til almindelige applikationer.
-
Høj CPU: Går til højere CU'er snarere end hukommelse og er velegnet til behandling af tunge applikationer. En nummer-knap applikation er det kanoniske brug tilfælde til high-CPU instanser.
-
Høj hukommelse: Bumper hukommelsen frem for CPU. Denne type er velegnet til databaseapps, analytikapprogrammer og apps, der er afhængige af hukommelse caching. Hvis du kører et caching-niveau produkt som memcached, er denne instans type et godt valg.
-
Høj I / O: Giver høj gennemgang (input + output - I / O, med andre ord) og er velegnet til applikationer, der flytter mange data. Det er et godt valg til at køre din egen nøgleværdiopbevaringstjeneste, som Cassandra eller MongoDB, i stedet for at bruge AWS DynamoDB-service. Høj-I / O-forekomster har høje gennemløbsforbindelser (10 Gbps) og bruger solid state-drev til at give højdiskens ydeevne.
-
Cluster Compute: Giver et stort antal ECU sammen med højtydende netværk (10 Gbps). Denne forekomsttype, som er velegnet til højtydende databehandlingsopgaver (meget store applikationer til specialkrydsning, f.eks. Oliefelt seismisk analyse), kører på special hardware, med brugerdefinerede AMI'er, der bruger en anden og mere effektiv type virtualisering som tæt forbundne maskiner til bedre netværksydelse.
-
Cluster GPU: Analog til Cluster Compute-forekomster, men bruger grafiske behandlingsenheder (tænk på processoren inde i grafikkortet på din pc, hvis du er en gamer), der er bedre egnet til bestemte typer applikationer, herunder visse varianter af high performance computing (HPC) netværksanalyse. Cluster GPU-forekomster fungerer på samme måde som Cluster Compute-forekomster, omend med forskellige CPU-chips i serverne, som disse forekomster kører på.