0Pricing
AWS Solutions Architect · Ders

NAT Ağ Geçidi ve Özel Alt Ağlar

Yönetilen bir NAT ağ geçidi kullanarak özel alt ağ kaynaklarının doğrudan erişilebilir olmadan internete ulaşmasını sağlayacaksınız.

NAT Ağ Geçidi ve Özel Alt Ağlar, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

Private Subnet'lerin İnternet Erişimi Sorunu

Private subnet içindeki kaynaklar yalnızca özel IP adreslerine ve Internet Gateway'e giden bir route'a sahip olmadığından internete giden bağlantıları başlatamaz. Ancak çoğu zaman internete erişmeleri gerekir: OS yamalarını indirmek, Docker görüntülerini çekmek, üçüncü taraf API'lerini çağırmak veya yazılımları güncellemek için. Çözüm, private subnet trafiğini internet erişimi olan ve NAT (Network Address Translation) gerçekleştiren bir cihaz üzerinden yönlendirmektir; bu cihaz özel IP'leri genel bir IP'nin arkasında gizler. AWS iki seçenek sunar: yönetilen NAT Gateway ve kendi yönettiğiniz NAT Instance (eski seçenek).

NAT Gateway: Yönetilen Giden NAT

NAT Gateway, private subnet'lerdeki örneklerin internete giden bağlantıları başlatmasını sağlayan, istenmeyen gelen trafiği engelleyen, tamamen yönetilen ve yüksek kullanılabilirlikli bir hizmettir. Bir public subnet içinde bulunur, bir Elastic IP'ye sahiptir ve bant genişliğini otomatik olarak 100 Gbps'ye kadar ölçeklendirir. Temel altyapıyı yamalamanız, ölçeklendirmeniz veya yönetmeniz gerekmez. NAT Gateway, giden paketlerin özel kaynak IP'sini kendi EIP'siyle değiştirir ve ardından yanıtları özgün özel IP'ye geri iletir.

# 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}]'

Özel Alt Ağ Trafiğini NAT Üzerinden Yönlendirme

Bir NAT Gateway oluşturduktan sonra özel alt ağın yönlendirme tablosuna şu rotayı ekleyin: hedef 0.0.0.0/0 → NAT Gateway ID. Bu, özel alt ağdaki Instance'ların internete giden tüm trafiğinin NAT Gateway'e gitmesini sağlar; NAT Gateway de bu trafiği Internet Gateway üzerinden internete iletir. Yönlendirme tablosunda, dahili trafik için yerel VPC rotası (ör. 10.0.0.0/16 → local) yine bulunur. Bu rota girişi olmadan, bir NAT Gateway dağıtılmış olsa bile özel alt ağdaki Instance'ların internet erişimi olmaz.

# 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-12345678

Çoklu-AZ NAT Gateway Mimarisi

Bir NAT Gateway AZ'ye özgüdür; yalnızca aynı AZ'deki alt ağlardan gelen trafiği işler. Yüksek erişilebilirlik için her AZ'ye bir NAT Gateway dağıtın ve AZ'ye özgü özel yönlendirme tabloları oluşturun: AZ-a'daki özel yönlendirme tablosu 0.0.0.0/0 rotasını AZ-a'daki NAT-GW'ye yönlendirir; AZ-b'deki özel yönlendirme tablosu ise rotayı AZ-b'deki NAT-GW'ye yönlendirir. Bu yaklaşım, AZ'ler arası veri aktarımı ücretlerini önler ve AZ-a başarısız olursa, kendi NAT'ına sahip AZ-b'deki Instance'ların internet erişimini sürdürmesini sağlar.

# 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-1a

NAT Gateway ve NAT Instance Karşılaştırması

Bir NAT Instance, NAT AMI çalıştıran ve sizin yönettiğiniz bir EC2 Instance'ıdır; NAT Gateway'ler ortaya çıkmadan önce kullanılan eski yaklaşımdır. NAT Instance'ları kullanırken şunları yapmanız gerekir: EC2 Instance'ında kaynak/hedef denetimini devre dışı bırakmak, bant genişliğini ve ölçeklendirmeyi yönetmek, OS'yi yamalamak ve hataları ele almak. Bunlar çok düşük bant genişlikli kullanım senaryolarında daha ucuzdur ve bastion host olarak kullanılabilir. NAT Gateway'ler, üretim ortamları için önerilen seçenektir: tamamen yönetilir, otomatik olarak ölçeklenir, bir AZ içinde %99,99 kullanılabilirlik SLA'sı sunar ve yama uygulanmasını gerektirmez. Sınavda bu karşılaştırma geçmişte sıkça test edilmiştir.

# For NAT Instance: disable source/dest check (required!)
aws ec2 modify-instance-attribute \
  --instance-id i-nat-instance-id \
  --no-source-dest-check

NAT Gateway Fiyatlandırması

NAT Gateway fiyatlandırması iki bileşenden oluşur: NAT Gateway başına saatlik ücret (us-east-1'de yaklaşık 0,045 ABD doları/saat, ayda yaklaşık 32 ABD doları) ve GB başına veri işleme ücreti (us-east-1'de yaklaşık 0,045 ABD doları/GB). NAT üzerinden büyük miktarda veri aktaran iş yüklerinde (ör. büyük kapsayıcı görüntülerini çekme veya toplu indirmeler) veri işleme maliyeti baskın olabilir. NAT maliyetlerini şu yollarla optimize edin: S3 ve DynamoDB trafiğini VPC Gateway Endpoint'leri üzerinden yönlendirin (NAT tamamen devre dışı kalır ve bu kullanım ücretsizdir) ve AWS API çağrılarını NAT yerine VPC Interface Endpoint'leri üzerinden yönlendirin.

RDS için Özel Alt Ağ Tasarımı

Özel alt ağlardaki veritabanı Instance'ları NAT Gateway üzerinden yönlendirilmemelidir; internete bağlantı başlatmaları için bir gereksinimleri yoktur. Veritabanlarının yalnızca uygulama katmanından (VPC içinde) bağlantı alması ve gerektiğinde bir VPC Endpoint üzerinden S3 gibi AWS hizmetlerine (dışa veya içe aktarma işlemleri için) erişmesi gerekir. Veritabanı yamaları ve güncellemeleri için RDS yönetilen bir hizmet olduğundan OS yamalarını doğrudan uygulamazsınız. EC2 üzerinde kendi yönettiğiniz veritabanları için, SSM VPC Endpoint'ini yapılandırdıysanız internet erişimi olmadan yama uygulayabilen Systems Manager Patch Manager'ı kullanın.

NAT Gateway ve Güvenlik

NAT Gateway, durum bilgili ve yalnızca dışa doğru çalışan NAT sağlar: başlatılmış dışa doğru bağlantılara ve bunların yanıtlarına izin verir, ancak istenmeyen tüm içeriye doğru trafiği engeller. Bir güvenlik duvarı değildir; trafik içeriğini incelemez veya filtrelemez. Dışa doğru trafiği filtrelemek (ör. özel alt ağlardan yalnızca belirli hedef etki alanlarına veya IP'lere izin vermek) için ek denetimlere ihtiyacınız vardır: VPC'ye dağıtılmış AWS Ağ Güvenlik Duvarı veya Gateway Load Balancer'ın arkasında çalışan üçüncü taraf bir güvenlik duvarı cihazı. Güvenlik grupları ve NACL'ler, NAT'tan bağımsız olarak özel alt ağlardaki Instance'lara uygulanmaya devam eder.

Özel NAT Gateway

AWS, internet erişimi için EIP kullanan genel NAT Gateway'lere ek olarak EIP içermeyen özel NAT Gateway'leri de destekler. Özel NAT Gateway'ler, CIDR aralıkları çakıştığında VPC'ler arasındaki veya bir VPC ile şirket içi ağlar arasındaki trafikte özel IP adreslerini çevirmek için kullanılır. Örneğin VPC-A'nın (10.0.0.0/16), yine 10.0.0.0/16 kullanan bir şirket içi ağla iletişim kurması gerekiyorsa VPC-A içindeki özel bir NAT Gateway, şirket içi ağa Transit Gateway üzerinden yönlendirmeden önce kaynak IP'lerini çakışmayan bir aralığa çevirir.

NAT Gateway Ölçümlerini İzleme

NAT Gateway'in durumunu ve performansını CloudWatch ölçümleri üzerinden izleyin. Önemli ölçümler şunlardır: ActiveConnectionCount (NAT üzerinden geçen mevcut etkin TCP bağlantıları), BytesInFromDestination / BytesInFromSource (her iki yöndeki veri aktarımı), PacketDropCount (bant genişliği sınırlarına veya hatalara işaret eden bırakılmış paketler) ve ErrorPortAllocation (NAT'ın bağlantı noktası tahsislerini tükettiğini, dolayısıyla çok fazla bağlantı nedeniyle bağlantı noktalarının tükenmiş olabileceğini gösterir). Her NAT Gateway, benzersiz bir hedef başına en fazla 55.000 eşzamanlı bağlantıyı destekler; bu sınır aşıldığında bağlantılar bırakılabilir.

# 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 Maximum

Özel Alt Ağların NAT'a İhtiyaç Duymadığı Durumlar

Her özel alt ağ iş yükünün NAT Gateway'e ihtiyacı yoktur. Erişim modelini değerlendirin: Instance'ların yalnızca diğer VPC kaynaklarıyla ve VPC Endpoint'leri üzerinden erişilebilen AWS hizmetleriyle (S3, DynamoDB, SSM, ECR, Secrets Manager) iletişim kurması gerekiyorsa NAT Gateway'i tamamen kaldırabilirsiniz. Böylece AZ başına ayda yaklaşık 32 ABD doları ve veri işleme ücretlerinden tasarruf edersiniz. Bu, tüm AWS hizmeti erişimi için VPC Interface Endpoint'lerini kullanan tamamen özel mikro hizmetler için ideal modeldir. Instance'larınızın çağırdığı her hizmeti değerlendirin ve ücretsiz bir Gateway Endpoint'in veya ücretli bir Interface Endpoint'in NAT'ın yerini alıp alamayacağını kontrol edin.

Hızlı Kontrol

Bu derste işlenen AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: NAT Gateway'ler, özel alt ağ Instance'larının özel IP'lerini Elastic IP'ye çevirerek dışa doğru internet erişimi sağlar, özel alt ağın yönlendirme tablosuna NAT Gateway'i gösteren bir 0.0.0.0/0 rotası eklemeniz gerekir ve yüksek erişilebilirlik elde etmek ve AZ'ler arası veri ücretlerinden kaçınmak için her AZ'ye bir NAT Gateway dağıtmalısınız. Sırada, katmanlı VPC savunması için Network ACL'leri ve Security Group'ları karşılaştıracağız.

Sıkça Sorulan Sorular

“NAT Ağ Geçidi ve Özel Alt Ağlar” dersi ücretsiz mi?

Evet — “NAT Ağ Geçidi ve Özel Alt Ağlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“NAT Ağ Geçidi ve Özel Alt Ağlar” dersinde ne öğreneceğim?

Yönetilen bir NAT ağ geçidi kullanarak özel alt ağ kaynaklarının doğrudan erişilebilir olmadan internete ulaşmasını sağlayacaksınız. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“NAT Ağ Geçidi ve Özel Alt Ağlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. VPC Mimarisi ve CIDR Blokları
  2. İnternet Ağ Geçidi ve Yönlendirme Tabloları
  3. NAT Ağ Geçidi ve Özel Alt Ağlar
  4. Ağ ACL'leri ve Güvenlik Grupları
← AWS Solutions Architect Sayfasına Dön