NAT ve Bastion Host Kavramı
Bastion Hosts
Bastion Host kullanarak özel EC2 instance'larımıza SSH ile bağlanabiliriz
Bastion, genel (public) subnet içinde bulunur ve diğer tüm özel (private) subnet'lere bağlıdır
Bastion Host'un güvenlik grubu, internetten gelen trafiğe 22 numaralı porttan (SSH) izin vermelidir (sınırlı bir CIDR aralığından, örneğin şirketinizin public CIDR bloğundan)
EC2 instance'larının güvenlik grubu, Bastion Host’un güvenlik grubuna veya Bastion Host’un özel IP’sine (private IP) erişime izin vermelidir.

Sonuç: EC2' sunucularının Kaynağını Bastion Host'un Security Groupu yaparak işlemi kolaylaştırabiliriz.
NAT (Eski Teknoloji):
NAT = Ağ Adresi Çevirisi (Network Address Translation)
Özel subnet’lerdeki EC2 instance’larının internete bağlanmasını sağlar
Genel (public) bir subnet’te başlatılmalıdır
EC2 ayarı olan "Source / destination check" devre dışı bırakılmalıdır
Elastic IP ile ilişkilendirilmiş olmalıdır
Yönlendirme tabloları, trafiğin özel subnet’lerden NAT instance’ına yönlendirilmesi için yapılandırılmalıdır

NAT Sunucusu
Önceden yapılandırılmış Amazon Linux AMI mevcuttur
Standart destek süresi 31 Aralık 2020 tarihinde sona ermiştir
Kutudan çıktığı haliyle yüksek erişilebilirlik / dayanıklılık sunmaz
Çoklu AZ'de (Availability Zone) bir ASG (Auto Scaling Group) + dayanıklı bir user-data betiği oluşturmanız gerekir
İnternet trafiği bant genişliği kullanılan EC2 instance tipine bağlıdır
Güvenlik gruplarını ve kuralları sizin yönetmeniz gerekir:
Gelen trafik (Inbound):
Özel subnet’lerden gelen HTTP / HTTPS trafiğine izin verin
Kendi ağınızdan SSH erişimine izin verin (erişim Internet Gateway üzerinden sağlanır)
Giden trafik (Outbound):
İnternete HTTP / HTTPS trafiğine izin verin
NAT Gateway (NATGW)
AWS tarafından yönetilen NAT, daha yüksek bant genişliği, yüksek erişilebilirlik ve yönetim gerektirmez
Kullanım ve bant genişliği başına saatlik ödeme yapılır
NAT Gateway belirli bir Erişilebilirlik Bölgesinde (Availability Zone) oluşturulur, bir Elastic IP kullanır
Aynı subnet’teki EC2 instance'ları tarafından kullanılamaz (sadece diğer subnet’lerden erişilebilir)
Bir IGW (Internet Gateway) gerektirir (Özel Subnet => NAT Gateway => Internet Gateway)
5 Gbps başlangıç bant genişliği ile otomatik olarak 100 Gbps’ye kadar ölçeklenebilir
Yönetilecek veya tanımlanacak bir güvenlik grubuna gerek yoktur

Yüksek Erişilebilir NATGW
NAT Gateway, tek bir Availability Zone (AZ) içinde dayanıklıdır
Hata toleransı (fault-tolerance) için birden fazla AZ'de birden fazla NAT Gateway oluşturmanız gerekir
AZ'ler arası (cross-AZ) failover gerekmez, çünkü bir AZ devre dışı kalırsa NAT’a ihtiyaç kalmaz

NATGW vs NAT Instance
Erişilebilirlik
AZ içinde yüksek erişilebilirlik (başka bir AZ’de yeniden oluşturulmalı)
Instancelar arasında failover için script gerekir
Bant Genişliği
100 Gbps’ye kadar
EC2 instance türüne bağlı
Bakım
AWS tarafından yönetilir
Siz yönetirsiniz (örn: yazılım, işletim sistemi yamaları vb.)
Maliyet
Saatlik + aktarılan veri miktarına göre
Saatlik, EC2 türü + boyutu + ağ maliyeti
Genel IPv4
✅
✅
Özel IPv4
✅
✅
Security Groups
❌ (Gerekmez)
✅
Bastion Host Olarak Kullanılabilir mi?
❌
✅
Last updated