Gerbang NAT dan Subnet Privat
Izinkan sumber daya subnet privat mengakses internet tanpa dapat dijangkau secara langsung dengan menggunakan gerbang NAT terkelola.
Gerbang NAT dan Subnet Privat adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Masalah Internet pada Subnet Privat
Sumber daya di subnet privat hanya memiliki alamat IP privat dan tidak memiliki rute ke Internet Gateway, sehingga tidak dapat memulai koneksi keluar ke internet. Namun, sumber daya tersebut sering kali perlu mengakses internet untuk mengunduh patch OS, mengambil image Docker, memanggil API pihak ketiga, atau memperbarui perangkat lunak. Solusinya adalah merutekan lalu lintas subnet privat melalui perangkat yang memiliki akses internet dan melakukan NAT (Network Address Translation), dengan menyembunyikan IP privat di balik IP publik. AWS menyediakan dua opsi: NAT Gateway (terkelola) dan NAT Instance yang dikelola sendiri (warisan).
NAT Gateway: NAT Keluar Terkelola
NAT Gateway adalah layanan yang sepenuhnya dikelola, memiliki ketersediaan tinggi, dan memungkinkan instans di subnet privat memulai koneksi keluar ke internet sekaligus memblokir lalu lintas masuk yang tidak diminta. Layanan ini berada di subnet publik, memiliki Elastic IP, dan secara otomatis dapat diskalakan hingga bandwidth 100 Gbps. Anda tidak perlu menambal, menskalakan, atau mengelola infrastruktur di bawahnya. NAT Gateway menerjemahkan IP sumber privat dari paket keluar menjadi EIP miliknya, lalu mengembalikan respons ke IP privat 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}]'Merutekan Lalu Lintas Subnet Privat Melalui NAT
Setelah membuat NAT Gateway, tambahkan rute ke tabel rute subnet privat: tujuan 0.0.0.0/0 → ID NAT Gateway. Dengan demikian, semua lalu lintas dari instans subnet privat yang menuju internet akan diarahkan ke NAT Gateway, yang kemudian meneruskannya melalui Internet Gateway ke internet. Tabel rute tersebut tetap memiliki rute VPC lokal (misalnya, 10.0.0.0/16 → local) untuk lalu lintas internal. Tanpa entri rute ini, instans subnet privat tetap tidak memiliki akses internet meskipun NAT Gateway telah diterapkan.
# 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-12345678Arsitektur NAT Gateway Multi-AZ
NAT Gateway bersifat spesifik AZ—hanya menangani lalu lintas dari subnet di AZ yang sama. Untuk ketersediaan tinggi, terapkan satu NAT Gateway per AZ dan buat tabel rute privat khusus untuk setiap AZ: tabel rute privat di AZ-a merutekan 0.0.0.0/0 ke NAT-GW di AZ-a; tabel rute privat di AZ-b merutekan lalu lintas ke NAT-GW di AZ-b. Hal ini menghindari biaya transfer data antar-AZ dan memastikan bahwa jika AZ-a gagal, instans di AZ-b (dengan NAT-nya sendiri) tetap memiliki 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 vs Instans NAT
Instans NAT adalah instans EC2 yang dikelola sendiri dan menjalankan AMI NAT—pendekatan lama sebelum NAT Gateway tersedia. Instans NAT mengharuskan Anda untuk menonaktifkan pemeriksaan sumber/tujuan pada instans EC2, mengelola bandwidth dan penskalaan, menambal OS, serta menangani kegagalan. Instans ini lebih murah untuk kasus penggunaan dengan bandwidth yang sangat rendah dan dapat digunakan sebagai host bastion. NAT Gateway adalah pilihan yang direkomendasikan untuk produksi: dikelola sepenuhnya, diskalakan secara otomatis, memiliki SLA ketersediaan 99,99% dalam satu AZ, dan tidak memerlukan penambalan. Ujian secara historis sering 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 terdiri dari dua komponen: biaya per jam untuk setiap NAT Gateway (sekitar $0,045/jam di us-east-1, atau sekitar $32/bulan), serta biaya pemrosesan data per GB (sekitar $0,045/GB di us-east-1). Untuk beban kerja yang mentransfer data dalam jumlah besar melalui NAT (misalnya, mengambil citra kontainer berukuran besar atau mengunduh data dalam jumlah besar), biaya pemrosesan data dapat menjadi komponen terbesar. Optimalkan biaya NAT dengan merutekan lalu lintas S3 dan DynamoDB melalui VPC Gateway Endpoint (sepenuhnya melewati NAT dan gratis), serta merutekan panggilan API AWS melalui VPC Interface Endpoint, bukan melalui NAT.
Desain Subnet Privat untuk RDS
Instans basis data di subnet privat seharusnya tidak merutekan lalu lintas melalui NAT Gateway karena tidak perlu memulai koneksi ke internet. Basis data hanya perlu menerima koneksi dari tingkat aplikasi (di dalam VPC) dan mungkin mengakses layanan AWS seperti S3 (untuk ekspor/impor) melalui VPC endpoint. Untuk penambalan dan pembaruan basis data, RDS adalah layanan terkelola sehingga Anda tidak menerapkan tambalan OS secara langsung. Untuk basis data yang dikelola sendiri di EC2, gunakan Patch Manager milik Systems Manager, yang dapat melakukan penambalan melalui SSM tanpa akses internet jika VPC endpoint SSM telah dikonfigurasi.
NAT Gateway dan Keamanan
NAT Gateway menyediakan NAT keluar satu arah yang bersifat stateful: NAT Gateway mengizinkan koneksi keluar yang dimulai dari dalam beserta responsnya, tetapi memblokir semua lalu lintas masuk yang tidak diminta. NAT Gateway bukan firewall—NAT Gateway tidak memeriksa atau menyaring isi lalu lintas. Untuk menyaring lalu lintas keluar (misalnya, hanya mengizinkan domain atau alamat IP tujuan tertentu dari subnet privat), Anda memerlukan kontrol tambahan: AWS Network Firewall yang diterapkan di VPC, atau perangkat firewall pihak ketiga di belakang Gateway Load Balancer. Security group dan NACL tetap berlaku untuk instans di subnet privat, terlepas dari NAT.
NAT Gateway Privat
Selain NAT Gateway publik (dengan EIP untuk akses internet), AWS mendukung NAT Gateway privat tanpa EIP. NAT Gateway privat digunakan untuk menerjemahkan alamat IP privat bagi lalu lintas antara VPC atau antara VPC dan jaringan lokal ketika rentang CIDR saling tumpang tindih. Misalnya, jika VPC-A (10.0.0.0/16) perlu berkomunikasi dengan jaringan lokal yang juga menggunakan 10.0.0.0/16, NAT Gateway privat di VPC-A menerjemahkan IP sumber ke rentang yang tidak tumpang tindih sebelum merutekannya melalui Transit Gateway ke jaringan lokal.
Memantau Metrik NAT Gateway
Pantau kondisi dan kinerja NAT Gateway melalui metrik CloudWatch. Metrik utama: ActiveConnectionCount (jumlah koneksi TCP aktif saat ini melalui NAT), BytesInFromDestination / BytesInFromSource (transfer data dalam kedua arah), PacketDropCount (paket yang dibuang—menunjukkan batas bandwidth atau kesalahan), dan ErrorPortAllocation (NAT kehabisan alokasi port—dapat menunjukkan kehabisan port akibat terlalu banyak koneksi). Setiap NAT Gateway mendukung hingga 55.000 koneksi simultan untuk setiap tujuan unik; setelah batas tersebut terlampaui, koneksi dapat dibuang.
# 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 MaximumKapan Subnet Privat Tidak Memerlukan NAT
Tidak semua beban kerja subnet privat memerlukan NAT Gateway. Pertimbangkan pola aksesnya: jika instans hanya perlu berkomunikasi dengan sumber daya VPC lain dan layanan AWS yang dapat diakses melalui VPC endpoint (S3, DynamoDB, SSM, ECR, Secrets Manager), Anda dapat menghapus NAT Gateway sepenuhnya—menghemat sekitar $32/bulan per AZ, ditambah biaya pemrosesan data. Ini adalah pola ideal untuk layanan mikro yang sepenuhnya privat dan menggunakan VPC Interface Endpoint untuk semua akses ke layanan AWS. Evaluasi setiap layanan yang dipanggil instans Anda dan periksa apakah Gateway Endpoint gratis atau Interface Endpoint berbayar dapat menggantikan NAT.
Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini, Anda mempelajari bahwa: NAT Gateway memungkinkan akses internet keluar bagi instans subnet privat dengan menerjemahkan IP privatnya menjadi Elastic IP, Anda harus menambahkan rute 0.0.0.0/0 di tabel rute subnet privat yang mengarah ke NAT Gateway, dan Anda harus menerapkan satu NAT Gateway per AZ untuk mencapai ketersediaan tinggi serta menghindari biaya transfer data antar-AZ. Selanjutnya, kita akan membandingkan Network ACL dan Security Group sebagai lapisan perlindungan VPC.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Gerbang NAT dan Subnet Privat” gratis?
Ya — teks lengkap “Gerbang NAT dan Subnet Privat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Gerbang NAT dan Subnet Privat”?
Izinkan sumber daya subnet privat mengakses internet tanpa dapat dijangkau secara langsung dengan menggunakan gerbang NAT terkelola. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?
Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Gerbang NAT dan Subnet Privat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Arsitektur VPC dan Blok CIDR
- Gerbang Internet dan Tabel Rute
- Gerbang NAT dan Subnet Privat
- ACL Jaringan vs Grup Keamanan