Vad Är AWS Elastic Nätverksgränssnitt (ENIs), och Hur Använder Du Dem?

0
68

I huvudsak, ENIs är virtuella nätverkskort som du kan bifoga till din EC2-instanser. De används för att möjliggöra nätverksanslutning av ditt fall, och med mer än en av dem ansluten till ditt exempel gör det möjligt att kommunicera på två olika subnät.

Vad Är Elastisk Nätverksgränssnitt?

Du redan använder dem om du kör på EC2—gränssnittet, eth0, är ansluten till en ENI som skapades när du har startat exempel, och används för att hantera all trafik som skickas och tas emot från den instans.

Du är inte begränsad till bara ett nätverksgränssnitt om—att fästa en sekundär network interface kan du ansluta din EC2 exempel att två nätverk på en gång, vilket kan vara mycket användbart när du utformar ditt nätverk arkitektur. Du kan använda dem för att vara värd lastbalanserare, proxy-servrar och NAT-servrar på en EC2 exempel routing-trafik från ett undernät till en annan.

ENIs har säkerhet grupper, precis som EC2-instanser, som fungerar som en inbyggd brandvägg. Du kan använda dessa, snarare än en Linux brandvägg som iptables, att hantera inter-subnät trafik.

Ett vanligt användningsområde fall för ENIs är skapandet av management nätverk. Detta gör att du kan ha en offentlig program som webbservrar i en offentlig subnet men lås SSH-åtkomst ner till ett privat subnät på en sekundär nätverksgränssnittet. I det här scenariot, skulle du ansluta med en VPN privat förvaltning subnät sedan administrera dina servrar som vanligt.

I detta diagram, subnät till vänster är den offentliga subnät som kommunicerar med internet via Internet Gateway för VPC. Subnät till höger är privat förvaltning subnät som endast kan nås i detta exempel av AWS Direct Connect-gateway, som gör att nätverket på lokaler för att hantera autentisering, och helt enkelt sträcker sig som nätverk i molnet. Du kan också använda AWS Klient VPN, som kommer att köra en VPN-server som kan nås med privat nyckel referenser.

ENIs är också ofta används som den primära nätverksgränssnitt för Docker behållare som lanserades på ECS använder Fargate. Detta gör att Fargate uppgifter för att hantera komplexa nätverk, brandväggar ställa på plats med hjälp av säkerhetsgrupper och lanseras i privat subnät.

ENIs är också ofta används som den primära nätverksgränssnitt för Docker behållare som lanserades på ECS använder Fargate. Detta gör att Fargate uppgifter för att hantera komplexa nätverk, brandväggar ställa på plats med hjälp av säkerhetsgrupper och lanseras i privat subnät.

Enligt AWS, ENIs ha följande attribut:

  • En primär privata IPv4-adress från IPv4-adress utbud av din VPC
  • En eller flera sekundära privata IPv4-adresser i IPv4-adress utbud av din VPC
  • En Elastisk IP-adress (IPv4) per privat IPv4-adress
  • En publik IPv4-adress
  • En eller flera IPv6-adresser
  • En eller flera säkerhetsgrupper
  • En MAC-adress
  • En source/destination flaggan
  • Beskrivning

ENIs är helt gratis att använda, även om de inte är undantagna från standard AWS avgifter för dataöverföring.

Genomförandet Av Billiga Failover Med ENIs

Eftersom ENIs kan ha sin förening dynamiskt tilldelade, de är vanligen används för att genomföra växling vid fel i nätet design. Om du använder en tjänst som kräver hög tillgänglighet, du kan köra två servrar, en primär server och en standby-server. Om den primära servern misslyckas av någon anledning, tjänsten kan ställas om till standby-servern.

ENIs kan uppfylla detta mönster helt enkelt—helt enkelt starta två servrar, skapa en sekundär ENI exempelvis att använda som switch, och koppla det till den primära servern, eventuellt med en elastisk IP. När du behöver för att byta till standby exempel, du helt enkelt måste byta ENI över (om än manuellt, eller med ett script).

Men, ENIs som inte är den bästa vägen att gå om detta i AWS ekosystem. AWS stöder automatisk skalning, som kan användas för att uppnå samma effekt i ett mer kostnadseffektivt sätt. Istället för att betala extra för redundans, skulle du i stället köra många mindre servrar i en automatisk skalning flotta. Om en av de fall som går ner, det är inte en big deal. En ny server kan spinnas upp snabbt för att hantera nedgången i trafiken.

Medan manuellt stänga av ENI över till standby exempel är det lätt att automatisera failover-processen är en mycket mer komplicerad. Du måste ställa in en CloudWatch larm på den primära instans för brand när den instans går ner (om du vill skicka ett meddelande till dig i processen), teckna det till en SNS message queue, och utlösa en Lambda-funktion som kommer att köras av att kön och hantera ansluta och koppla bort process med AWS SDK. Det är genomförbart, men vi rekommenderar att du tittar på att använda Route 53 DNS-failover snarare än detta.

Om du inte vill att automatisera processen, kan du följa denna guide från AWS om hur man kopplar en CloudWatch larm till Lambda.