NAT-gateway og private undernet
Lad ressourcer i private undernet få adgang til internettet uden at være direkte tilgængelige udefra ved hjælp af en administreret NAT-gateway.
NAT-gateway og private undernet er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Problemet med internetadgang fra private subnets
Ressourcer i private subnets har kun private IP-adresser og ingen rute til en Internet Gateway, så de kan ikke starte udgående forbindelser til internettet. Men de skal ofte have adgang til internettet for at downloade OS-rettelser, hente Docker-images, kalde tredjeparts-API'er eller opdatere software. Løsningen er at dirigere trafik fra det private subnet gennem en enhed, der har internetadgang og udfører NAT (Network Address Translation), så de private IP-adresser skjules bag en offentlig IP-adresse. AWS tilbyder to muligheder: NAT Gateway (administreret) og en selvadministreret NAT Instance (ældre løsning).
NAT Gateway: Administreret udgående NAT
En NAT Gateway er en fuldt administreret tjeneste med høj tilgængelighed, der gør det muligt for instanser i private subnets at starte udgående forbindelser til internettet, samtidig med at uopfordret indgående trafik blokeres. Den findes i et offentligt subnet, har en Elastic IP og skalerer automatisk op til 100 Gbps båndbredde. Du behøver aldrig at patche, skalere eller administrere den underliggende infrastruktur. NAT Gateway oversætter den private kilde-IP-adresse for udgående pakker til sin egen EIP og sender derefter svarene tilbage til den oprindelige private IP-adresse.
# Create a NAT Gateway in the public subnet
aws ec2 allocate-address --domain vpc # Get an EIP
aws ec2 create-nat-gateway \
--subnet-id subnet-public-1a \
--allocation-id eipalloc-12345678 \
--tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-gw-1a}]'Routing af trafik fra private undernet gennem NAT
Efter du har oprettet en NAT Gateway, skal du tilføje en rute til det private undernets routingtabel: destination 0.0.0.0/0 → NAT Gateway-id. Det fortæller al internetbundtet trafik fra instanser i det private undernet, at den skal gå til NAT Gateway, som derefter videresender den gennem Internet Gateway til internettet. R outingtabellen har stadig den lokale VPC-rute (f.eks. 10.0.0.0/16 → local) til intern trafik. Uden denne rute har instanser i det private undernet stadig ingen internetadgang, selv om der er implementeret en NAT Gateway.
# Add route in private subnet's route table pointing to NAT gateway
aws ec2 create-route \
--route-table-id rtb-private-app-1a \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-12345678NAT Gateway-arkitektur i flere AZ'er
En NAT Gateway er specifik for en AZ—den håndterer kun trafik fra undernet i den samme AZ. For høj tilgængelighed skal du implementere én NAT Gateway pr. AZ og oprette private routingt abeller, der er specifikke for hver AZ: Den private routingtabel i AZ-a sender 0.0.0.0/0 til NAT-GW i AZ-a, og den private routingtabel i AZ-b sender trafikken til NAT-GW i AZ-b. Det undgår gebyrer for dataoverførsel mellem AZ'er og sikrer, at instanserne i AZ-b (med deres egen NAT) fortsat har internetadgang, hvis AZ-a svigter.
# Architecture: two NAT gateways, two private route tables
# NAT-GW-1a in subnet-public-1a --> rtb-private-1a
# NAT-GW-1b in subnet-public-1b --> rtb-private-1b
# Associate private-1a subnets with rtb-private-1a (NAT-GW-1a)
aws ec2 associate-route-table \
--route-table-id rtb-private-1a \
--subnet-id subnet-private-app-1aNAT Gateway sammenlignet med NAT Instance
En NAT Instance er en selvadministreret EC2-instans, der kører et NAT AMI—den ældre tilgang fra før NAT Gateways fandtes. NAT Instances kræver, at du deaktiverer kilde-/destinationskontrollen på EC2-instansen, administrerer båndbredde og skalering, installerer rettelser til operativsystemet og håndterer fejl. De er billigere til anvendelser med meget lav båndbredde og kan bruges som bastionværter. NAT Gateways er det anbefalede valg i produktion: fuldt administrerede, skaleres automatisk, har en tilgængeligheds-SLA på 99,99 % inden for en AZ, og kræver ingen installation af rettelser. Eksamen har historisk testet denne sammenligning.
# For NAT Instance: disable source/dest check (required!)
aws ec2 modify-instance-attribute \
--instance-id i-nat-instance-id \
--no-source-dest-checkPriser for NAT Gateway
Prisen for NAT Gateway består af to dele: en timepris pr. NAT Gateway (ca. 0,045 USD/time i us-east-1, omkring 32 USD/måned) og et databehandlingsgebyr pr. GB (ca. 0,045 USD/GB i us-east-1). For arbejdsbelastninger, der overfører store datamængder gennem NAT (f.eks. hentning af store containerafbildninger eller massehentninger), kan databehandlingsomkostningen blive den største udgift. Optimér NAT-omkostningerne ved at sende S3- og DynamoDB-trafik gennem VPC Gateway Endpoints (omgår NAT helt og er gratis) og ved at sende AWS API-kald gennem VPC Interface Endpoints i stedet for gennem NAT.
Design af private undernet til RDS
Databaseinstanser i private undernet bør ikke sende trafik gennem NAT Gateway—de har ingen grund til at oprette forbindelser til internettet. Databaser skal kun modtage forbindelser fra applikationslaget (inden for VPC'en) og eventuelt få adgang til AWS-tjenester som S3 (til eksport og import) via et VPC-endpoint. RDS er en administreret tjeneste, så du installerer ikke rettelser til operativsystemet direkte i forbindelse med rettelser og opdateringer af databasen. Til selvadministrerede databaser på EC2 skal du bruge Systems Manager Patch Manager, som kan installere rettelser via SSM uden internetadgang, hvis du har konfigureret SSM VPC-endpointet.
NAT Gateway og sikkerhed
NAT Gateway leverer tilstandsbevarende, kun udgående NAT: Den tillader udgående forbindelser, der er startet indefra, samt deres svar, men blokerer alle uopfordrede indgående forbindelser. Den er ikke en firewall—den inspicerer eller filtrerer ikke trafikindhold. Til filtrering af udgående trafik (f.eks. kun at tillade bestemte destinationsdomæner eller IP-adresser fra private undernet) har du brug for yderligere kontroller: AWS Network Firewall implementeret i VPC'en eller en firewall-appliance fra en tredjepart bag en Gateway Load Balancer. Sikkerhedsgrupper og NACL'er gælder stadig for instanser i private undernet uanset NAT.
Privat NAT Gateway
Ud over offentlige NAT Gateways (med EIP'er til internetadgang) understøtter AWS private NAT Gateways uden en EIP. Private NAT Gateways bruges til at oversætte private IP-adresser for trafik mellem VPC'er eller mellem en VPC og lokale netværk, når CIDR-intervaller overlapper. Hvis VPC-A (10.0.0.0/16) f.eks. skal kommunikere med et lokalt netværk, der også bruger 10.0.0.0/16, oversætter en privat NAT Gateway i VPC-A kilde-IP-adresserne til et ikke-overlappende interval, før trafikken routes gennem en Transit Gateway til det lokale netværk.
Overvågning af NAT Gateway-målepunkter
Overvåg NAT Gateways tilstand og ydeevne via CloudWatch-målepunkter. Vigtige målepunkter er: ActiveConnectionCount (det aktuelle antal aktive TCP-forbindelser gennem NAT), BytesInFromDestination / BytesInFromSource (dataoverførsel i begge retninger), PacketDropCount (tabte pakker—angiver begrænsninger på båndbredden eller fejl) og ErrorPortAllocation (NAT har opbrugt porttildelinger—kan angive, at der er opbrugt porte på grund af for mange forbindelser). Hver NAT Gateway understøtter op til 55.000 samtidige forbindelser pr. unik destination; derefter kan forbindelser blive droppet.
# Get NAT Gateway active connection count
aws cloudwatch get-metric-statistics \
--namespace AWS/NATGateway \
--metric-name ActiveConnectionCount \
--dimensions Name=NatGatewayId,Value=nat-12345678 \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-01T01:00:00Z \
--period 300 --statistics MaximumNår private undernet ikke har brug for NAT
Ikke alle arbejdsbelastninger i private undernet har brug for en NAT Gateway. Overvej adgangsmønstret: Hvis instanserne kun har brug for at kommunikere med andre VPC-ressourcer og AWS-tjenester, der er tilgængelige via VPC-endpoints (S3, DynamoDB, SSM, ECR, Secrets Manager), kan du helt fjerne NAT Gateway og dermed spare ca. 32 USD/måned pr. AZ samt databehandlingsgebyrer. Dette er det ideelle mønster for fuldt private mikrotjenester, der bruger VPC Interface Endpoints til al adgang til AWS-tjenester. Gennemgå hver tjeneste, som instanserne kalder, og kontrollér, om et gratis Gateway Endpoint eller et betalt Interface Endpoint kan erstatte NAT.
Hurtigt tjek
Test din forståelse af begreberne i AWS Solutions Architect (SAA-C03) fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at NAT Gateways giver instanser i private undernet udgående internetadgang ved at oversætte deres private IP-adresser til en Elastic IP, at du skal tilføje en 0.0.0.0/0-rute i det private undernets routingtabel, som peger på NAT Gateway, og at du skal implementere én NAT Gateway pr. AZ for at opnå høj tilgængelighed og undgå dataomkostninger på tværs af AZ'er. Næste emne er en sammenligning af Network ACL'er og Security Groups for lagdelt VPC-forsvar.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “NAT-gateway og private undernet” gratis?
Ja — hele teksten til “NAT-gateway og private undernet” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “NAT-gateway og private undernet”?
Lad ressourcer i private undernet få adgang til internettet uden at være direkte tilgængelige udefra ved hjælp af en administreret NAT-gateway. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “NAT-gateway og private undernet”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- VPC-arkitektur og CIDR-blokke
- Internetgateway og routingtabeler
- NAT-gateway og private undernet
- Netværks-ACL'er vs sikkerhedsgrupper