Gerbang NAT dan Subnet Persendirian
Benarkan sumber subnet persendirian mengakses internet tanpa boleh dicapai secara langsung dengan menggunakan gerbang NAT terurus.
Gerbang NAT dan Subnet Persendirian ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Masalah Internet Subnet Persendirian
Sumber dalam subnet persendirian hanya mempunyai alamat IP persendirian dan tiada laluan ke Internet Gateway, jadi sumber tersebut tidak boleh memulakan sambungan keluar ke Internet. Namun, sumber ini sering perlu mencapai Internet: untuk memuat turun tampalan OS, mengambil imej Docker, memanggil API pihak ketiga atau mengemas kini perisian. Penyelesaiannya ialah menghalakan trafik subnet persendirian melalui peranti yang mempunyai akses Internet dan melaksanakan NAT (Terjemahan Alamat Rangkaian), dengan menyembunyikan IP persendirian di sebalik IP awam. AWS menyediakan dua pilihan: NAT Gateway (terurus) dan NAT Instance yang diurus sendiri (warisan).
NAT Gateway: NAT Keluar Terurus
NAT Gateway ialah perkhidmatan terurus sepenuhnya dan tersedia tinggi yang membolehkan tika dalam subnet persendirian memulakan sambungan keluar ke Internet sambil menyekat trafik masuk yang tidak diminta. Ia berada dalam subnet awam, mempunyai Elastic IP dan diskala secara automatik sehingga lebar jalur 100 Gbps. Anda tidak perlu menampal, menskala atau mengurus infrastruktur asasnya. NAT Gateway menterjemahkan IP sumber persendirian paket keluar kepada EIP miliknya, kemudian mengembalikan respons kepada IP persendirian asal.
# 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}]'Menghalakan Trafik Subnet Private Melalui NAT
Selepas mencipta NAT Gateway, tambahkan route pada jadual route subnet private: destinasi 0.0.0.0/0 → ID NAT Gateway. Ini memberitahu semua trafik daripada tikaian dalam subnet private yang menuju ke internet supaya pergi ke NAT Gateway, yang kemudiannya menghantarnya melalui Internet Gateway ke internet. Jadual route itu masih mempunyai route VPC tempatan (contohnya, 10.0.0.0/16 → local) untuk trafik dalaman. Tanpa entri route ini, tikaian dalam subnet private masih tidak mempunyai akses internet walaupun NAT Gateway telah digunakan.
# 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-12345678Seni Bina NAT Gateway Berbilang AZ
NAT Gateway adalah khusus AZ—ia hanya mengendalikan trafik daripada subnet dalam AZ yang sama. Untuk ketersediaan tinggi, gunakan satu NAT Gateway bagi setiap AZ dan cipta jadual route private yang khusus untuk setiap AZ: jadual route private dalam AZ-a menghalakan 0.0.0.0/0 kepada NAT-GW dalam AZ-a; jadual route private dalam AZ-b menghalakan trafik kepada NAT-GW dalam AZ-b. Ini mengelakkan caj pemindahan data antara AZ dan memastikan bahawa jika AZ-a gagal, tikaian dalam AZ-b (dengan NAT sendiri) terus mempunyai akses internet.
# 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 berbanding NAT Instance
NAT Instance ialah tikaian EC2 yang diurus sendiri dan menjalankan AMI NAT—pendekatan lama sebelum NAT Gateway wujud. NAT Instance memerlukan anda melakukan perkara berikut: nyahdayakan semakan sumber/destinasi pada tikaian EC2, mengurus lebar jalur dan penskalaan, menampal OS, serta mengendalikan kegagalan. Ia lebih murah untuk kes penggunaan dengan lebar jalur yang sangat rendah dan boleh digunakan sebagai hos bastion. NAT Gateways ialah pilihan yang disyorkan untuk pengeluaran: diurus sepenuhnya, diskalakan secara automatik, mempunyai SLA ketersediaan 99.99% dalam AZ, dan tidak memerlukan penampalan. Peperiksaan secara sejarahnya kerap menguji perbandingan ini.
# For NAT Instance: disable source/dest check (required!)
aws ec2 modify-instance-attribute \
--instance-id i-nat-instance-id \
--no-source-dest-checkHarga NAT Gateway
Harga NAT Gateway mempunyai dua komponen: caj setiap jam bagi setiap NAT Gateway (kira-kira $0.045/jam di us-east-1, sekitar $32/bulan), dan caj pemprosesan data setiap GB (~$0.045/GB di us-east-1). Untuk beban kerja yang memindahkan jumlah data yang besar melalui NAT (contohnya, mengambil imej bekas yang besar atau memuat turun secara pukal), kos pemprosesan data boleh menjadi komponen terbesar. Optimumkan kos NAT dengan: menghalakan trafik S3 dan DynamoDB melalui VPC Gateway Endpoints (memintas NAT sepenuhnya dan percuma), serta menghalakan panggilan API AWS melalui VPC Interface Endpoints dan bukannya melalui NAT.
Reka Bentuk Subnet Private untuk RDS
Tikaian pangkalan data dalam subnet private tidak sepatutnya menghala melalui NAT Gateway—tiada keperluan untuknya memulakan sambungan ke internet. Pangkalan data hanya perlu menerima sambungan daripada peringkat aplikasi (dalam VPC) dan berkemungkinan mencapai perkhidmatan AWS seperti S3 (untuk eksport/import) melalui titik akhir VPC. Untuk penampalan dan kemas kini pangkalan data, RDS ialah perkhidmatan terurus, jadi anda tidak menggunakan tampalan OS secara langsung. Bagi pangkalan data yang diurus sendiri pada EC2, gunakan Systems Manager Patch Manager, yang boleh melakukan penampalan melalui SSM tanpa akses internet jika titik akhir VPC SSM telah dikonfigurasi.
NAT Gateway dan Keselamatan
NAT Gateway menyediakan NAT keluar sahaja yang mengekalkan keadaan: ia membenarkan sambungan keluar yang dimulakan dan responsnya, tetapi menyekat semua trafik masuk yang tidak diminta. Ia bukan tembok api—ia tidak memeriksa atau menapis kandungan trafik. Untuk menapis trafik keluar (contohnya, membenarkan hanya domain atau IP destinasi tertentu daripada subnet private), anda memerlukan kawalan tambahan: tembok api rangkaian AWS yang digunakan dalam VPC, atau perkakas tembok api pihak ketiga di belakang Gateway Load Balancer. Kumpulan keselamatan dan NACL masih terpakai pada tikaian dalam subnet private tanpa mengira NAT.
NAT Gateway Private
Selain NAT Gateway awam (dengan EIP untuk akses internet), AWS menyokong NAT Gateway private tanpa EIP. NAT Gateway private digunakan untuk menterjemah alamat IP private bagi trafik antara VPC atau antara VPC dengan rangkaian di premis apabila julat CIDR bertindih. Contohnya, jika VPC-A (10.0.0.0/16) perlu berkomunikasi dengan rangkaian di premis yang turut menggunakan 10.0.0.0/16, NAT Gateway private dalam VPC-A menterjemah IP sumber kepada julat yang tidak bertindih sebelum menghalakan trafik melalui Transit Gateway ke lokasi di premis.
Memantau Metrik NAT Gateway
Pantau kesihatan dan prestasi NAT Gateway melalui metrik CloudWatch. Metrik utama: ActiveConnectionCount (sambungan TCP aktif semasa melalui NAT), BytesInFromDestination / BytesInFromSource (pemindahan data dalam kedua-dua arah), PacketDropCount (paket yang digugurkan—menunjukkan had lebar jalur atau ralat), dan ErrorPortAllocation (NAT telah kehabisan peruntukan port—mungkin menunjukkan kehabisan port akibat terlalu banyak sambungan). Setiap NAT Gateway menyokong sehingga 55,000 sambungan serentak bagi setiap destinasi unik; selepas jumlah itu, sambungan mungkin digugurkan.
# 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 MaximumApabila Subnet Private Tidak Memerlukan NAT
Tidak semua beban kerja subnet private memerlukan NAT Gateway. Pertimbangkan corak akses: jika tikaian hanya perlu berkomunikasi dengan sumber VPC lain dan perkhidmatan AWS yang boleh dicapai melalui titik akhir VPC (S3, DynamoDB, SSM, ECR, Secrets Manager), anda boleh menghapuskan NAT Gateway sepenuhnya—menjimatkan kira-kira ~$32/bulan bagi setiap AZ serta caj pemprosesan data. Ini ialah corak ideal untuk perkhidmatan mikro yang sepenuhnya private dan menggunakan VPC Interface Endpoints bagi semua akses perkhidmatan AWS. Nilai setiap perkhidmatan yang dipanggil oleh tikaian anda dan semak sama ada Gateway Endpoint percuma atau Interface Endpoint berbayar boleh menggantikan NAT.
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Imbas Kembali Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: NAT Gateways membolehkan akses internet keluar untuk tikaian subnet private dengan menterjemah IP private mereka kepada Elastic IP, anda mesti menambahkan route 0.0.0.0/0 dalam jadual route subnet private yang menunjuk kepada NAT Gateway, dan anda perlu menggunakan satu NAT Gateway bagi setiap AZ untuk mencapai ketersediaan tinggi serta mengelakkan caj data antara AZ. Seterusnya, kita akan membandingkan Network ACL dengan Security Groups untuk pertahanan VPC berlapis.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Gerbang NAT dan Subnet Persendirian” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “Gerbang NAT dan Subnet Persendirian”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Gerbang NAT dan Subnet Persendirian”?
Benarkan sumber subnet persendirian mengakses internet tanpa boleh dicapai secara langsung dengan menggunakan gerbang NAT terurus. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Gerbang NAT dan Subnet Persendirian” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Seni Bina VPC dan Blok CIDR
- Gerbang Internet dan Jadual Laluan
- Gerbang NAT dan Subnet Persendirian
- ACL Rangkaian berbanding Kumpulan Keselamatan