Video: Introduction to Amazon EC2 - Elastic Cloud Server & Hosting with AWS 2024
Tänk på betydelsen av elastisk i många av AWS-tjänstenamnen (Amazon Web Services). När du ser ordet elastiskt, bör du tänka på förmågan att sträcka och komma i kontakt. Alla AWS-dokumentationen hänvisar till detta faktum, men det gör att hela processen låter ganska komplicerad när det verkligen inte är. Tänk bara på en dator som kan sträcka när du behöver mer resurser och kontrakt när du inte gör det.
Med AWS betalar du bara för de tjänster du faktiskt använder, så det här möjligheten att sträcka och kontrakt är viktigt eftersom det innebär att din organisation kan spendera mindre pengar och ändå sluta med rätt mängd av tjänster som behövs.
Även om vissa medlemmar i din organisation kan fixa på frågan om pengar, är det verkliga värdet bakom termen elastisk tid. Att hålla din egen utrustning rätt storlek är tidskrävande, särskilt när du behöver minska. Med EC2 kan du lägga till eller ta bort datakapacitet på bara några minuter, i stället för veckor eller månader. Eftersom nya krav tenderar att förändras snabbt idag är möjligheten till rätt storlek din kapacitet i minuter avgörande, speciellt om du verkligen vill ha den lönehöjningen.
Så viktigt som att vara smidig och hålla kostnaderna låga till en administratör är en annan fråga ännu viktigare: att kunna göra förändringarna utan att hoppa genom alla typer av hoops. EC2 tillhandahåller två vanliga metoder för att göra konfigurationsändringar:
- Manuell användning av AWS-konsolen
- Automatiskt använd AWS Application Programming Interface (API)
Precis som du gör med din lokala server har du val att göra när du bygger en EC2 instans (en enda session som används för att utföra en eller flera relaterade uppgifter). Instansen kan förlita sig på ett visst operativsystem, som Linux eller Windows. Du kan också ställa in förekomsten för att tillhandahålla ett litet antal tjänster eller att fungera som ett kluster av datorer för stora datoruppgifter (och allt däremellan). AWS baserar instansstorleken på mängden CPU-typ, minne och lagring som krävs för att utföra de uppgifter du tilldelar instansen. Faktum är att du kan skapa optimerade instanser för uppgifter som kräver fler resurser inom följande områden:
- CPU
- Minne
- Förvaring
- GPU
Som de uppgifter du tilldelar en instansförändring, kan även förekomstkonfigurationen. Du kan justera minnesallokeringen för en instans eller ge mer lagring vid behov. Du kan också välja en prissättningsmodell som är meningsfull för de typer av instanser du skapar:
- On Demand: Du betalar för vad du använder.
- Reserverad Instans: Ger ett väsentligt reducerat pris i motsats till en engångsbetalning baserad på vad du tror du kan behöva i vägen för service.
- Spot Instance: Låt dig ange det pris du vill betala, med priset som påverkar servicenivån du får.
Autoscaling är en EC2-funktion som du använder för att säkerställa att din instans automatiskt ändrar konfigurationen när belastningen på den ändras. I stället för att kräva att någon ska hantera EC2 hela tiden, kan du tillåta förekomsten att göra vissa ändringar efter behov baserat på de krav du anger. De mätvärden du definierar bestämmer antalet och typen av instanser som EC2 körs. Mätvärdena innehåller standarder, till exempel CPU-användningsnivå, men du kan också definiera anpassade mätvärden efter behov. Ett potentiellt problem med autoskalning är att du också debiteras för de tjänster du använder, vilket kan innebära en oväntat stor faktura. Varje EC2-funktion har för- och nackdelar som du måste balansera när du bestämmer dig för hur du konfigurerar din inställning.
AWS ger också tydliga säkerhetsfunktioner. Användningen av dessa säkerhetsfunktioner blir mer detaljerad när boken fortskrider. Men här är en sammanfattning av säkerhetsfunktionerna som används med EC2:
- Virtual Private Cloud (VPC): Skiljer varje instans som körs på den fysiska servern från alla andra fall. Teoretiskt kan ingen få tillgång till någon annans förekomst (även om det kan hända i den verkliga världen).
- Nätverksåtkomstkontrolllistor (ACL) (Valfritt): Fungerar som en brandvägg för att styra både inkommande och utgående förfrågningar på subnätnivå.
- Identitets- och åtkomsthantering (IAM) Användare och behörigheter: Kontrollerar åtkomstnivån till enskilda användare och användargrupper. Du kan både tillåta och neka åtkomst till specifika resurser som hanteras av EC2.
- Säkerhetsgrupper: Fungerar som en brandvägg för att styra både inkommande och utgående förfrågningar på instansnivå. Varje instans kan ha upp till fem säkerhetsgrupper, som var och en kan ha olika behörigheter. Den här säkerhetsfunktionen ger finare kontroll över åtkomst än nätverks-ACL, men du måste också behålla den för varje instans snarare än för den virtuella maskinen som helhet.
- Maskinvaru Säkerhetsenhet: Beroende på en hårdvarubaserad säkerhetsenhet som du installerar för att styra säkerheten mellan ditt lokalt nätverk och AWS-molnet.
Ingen säkerhet kommer att motverka en bestämd inkräktare. Den som vill få tillgång till din server kommer hitta ett sätt att göra det oavsett hur högt du bygger väggarna. Förutom stor säkerhet måste du övervaka systemet och, genom att anta att någon kommer att bryta in, ta hand om inkräktaren så fort som möjligt. Att tillhandahålla säkerhet hindrar den mindre kvalificerade inkräktaren och hjälper till att hålla väsentligt ärliga människor ärliga, men kvalificerade inkräktare kommer alltid att hitta ett sätt. Svårighetsgraden av dessa överträdelser varierar, men det kan faktiskt få företag att misslyckas, som i fallet med Kodrum. Ett antal säkerhetsforskare varnar för att AWS är benägen att säkerhetsfallen upphör.Antag dock inte att andra molntjänster ger bättre säkerhet. Varje gång du använder externa tjänster, tar du också betydande risker.
Ett slutligt övervägande är användningen av lagring. Varje instans kommer med en viss mängd lagring baserat på vilken typ av instans du skapar. Om instanslagret inte ger den funktion eller kapacitet du behöver, kan du också lägga till Elastic Block Store (EBS) support. Den största fördelen med att använda EBS, förutom kapacitet och flexibilitet, är förmågan att definiera en specifik nivå för lagringsprestanda för att säkerställa att din applikation går som förväntat.