Bu konuda AWS’deki network konularına temel bir giriş yapacağım daha sonrasında private subnet, public subnet ve diğer ağ temellerini ayrı başlıklarla uygulayacağız.
VPC nedir?
Bir VPC (Virtual Private Cloud / Sanal Özel Ağ):
- Bunu bir ağ gibi düşünebilirsiniz — sadece sanal ve bulut üzerinde
- Bir VPC içindeki kaynaklar (örneğin EC2 sunucuları) birbirleriyle doğrudan iletişim kurabilir
- AWS, her bölge (region) için varsayılan bir VPC oluşturur ama siz ek VPC’ler de oluşturabilirsiniz
Virtual (Sanal):
- Tüm ağ yapısı AWS tarafından yönetilir (AWS sana sanal bir ağ ortamı sunar)
- Bizim için davranışı, sanki tamamen bize ait olan fiziksel bir ağmış gibi görünür.
Private Cloud (Özel Bulut):
- Instance’larınız (sunucularınız) ayrı bir ağda bulunur
- Başka insanların makineleri sizin VPC’nizde olamaz
- Bu nedenle VPC, makineleriniz için özel, izole bir ağ alanı oluşturur

Bu aslında bizim varsayılan vpc’mizdir. Çünkü biz yeni bir VPC oluşturmadık. Şimdi bir tane de EC2 Instance oluşturalım ve bu instance’ın gördüğümüz bu vpc içerisinde oluşturulduğunu görelim.

VPC’nin CIDR blokları (örn: 172.31.0.0/16)
- VPC içinde kullanılabilecek tüm özel IP adresleri 172.31.x.x’tir.
- Yani EC2, RDS, Lambda ENI… ne yaratıyorsak hepsi bu aralıktan IP alır.
EC2 Instance bu VPC içindeki bir bilgisayardır. Bu nedenle otomatik olarak VPC’nin içinden bir PRIVATE IP alır.
VPC = Büyük bir IP havuzu (network)
Subnet = Bu IP havuzunun daha küçük parçaları
EC2 Instance = Subnet içinden IP alan makine
Bir EC2 oluşturduğunda:
- EC2’nin private IP adresi, bulunduğu subnet’in IP range’i içinden otomatik verilir.
Subnet’in IP aralığı:
172.31.0.0 – 172.31.15.255
EC2’ye verilen private IP:
172.31.5.12

Public Subnet Nedir?
Bir subnet’in public olabilmesi için tek bir şart vardır:
Route Table içinde Internet Gateway’e (IGW) giden bir route bulunmalıdır.
Yani route table’da şu kayıt varsa, o subnet = public:
0.0.0.0/0 → igw-123abc
Bu ne sağlar?
- EC2 dış internete çıkabilir
• Internet’ten EC2’ye geri dönebilirsin (eğer security group izin veriyorsa)
Private Subnet Nedir?
Bir subnet’in private sayılması için:
Route Table içinde Internet Gateway bulunmaması gerekir.
Yani şu yoksa = private subnet:
0.0.0.0/0 → IGW
EC2’ye public IP versen bile, eğer route table IGW’ye gitmiyorsa internet çalışmaz.
Public Subnet → “Dış dünya ile konuşan yer”
- Load balancer
- API Gateway
- Reverse proxy
Private Subnet → “Gizli, iç ağ”
- Uygulama sunucuları
- DB
- Cache
- Message queue
Şimdi bir VPC ve subnetler oluşturalım.



1) “Resources to create” → VPC and more
Bu seçeneği işaretleyince AWS diyor ki:
“Sadece VPC değil, VPC içinde çalışabilmen için gerekli networking bileşenlerini de oluşturayım.”
Internet Gateway
Route Tables
Subnets
NAT Gateway (istersen)
Kısacası: tam bir VPC altyapısı yaratıyor.
2) IPv4 CIDR Block → 10.0.0.0/16
Bu senin VPC’nin IP havuzu.
10.0.0.0 → 10.0.255.255
Toplam: 65.536 IP
Bu havuz daha sonra subnetlere bölünüyor.
Number of AZs → 3
Bu, VPC’nin kaç farklı availability zone içinde subnet yaratacağını belirliyor.
Number of AZs → 3
Bu, VPC’nin kaç farklı availability zone içinde subnet yaratacağını belirliyor.
Number of public subnets → 3: Bunlar internete çıkabilen subnetlerdir.
Number of private subnets → 0: Bunlar internete çıkamayan subnetlerdir.
NAT Gateway: Şimdilik none seçtik.
NAT Gateway şunu yapar:
- Private subnet içindeki EC2 internete erişebilir
- Ama internet private subnet içindeki instance’a erişemez
Kısaca özet;
VPC = 10.0.0.0/16
Public subnetler şöyle bölünmüş:
- subnet1 → 10.0.0.0/20
- subnet2 → 10.0.16.0/20
- subnet3 → 10.0.32.0/20
Bu bölme AWS tarafından otomatik yapılıyor.
Şimdi bir ec2 instance oluşturup bu vpc’e dahil edelim.


AUTO ASSIGN PUBLIC IP ENABLE OLMALI YOKSA EC2 PUBLIC IP ALAMAZ VE INTERNETE ÇIKAMAZ.

Şimdi bu ayarlarla 2 adet ec2 instance oluşturuyorum ve bu instanceleri aynı VPC’e atıyorum.

- Makine: 10.0.29.33
- Makine: 10.0.18.131

İlk makineyi seçip connect diyorum ve ikinci makineye ping atıp birbirlerine erişimlerini kontrol edeceğim

Erişimde sorun yok.
EC2 İnternete Nasıl Çıkar?
EC2’nin internete çıkabilmesi için birkaç şeyin aynı anda doğru olması gerekir:
1- Public subnet içinde olmalı. Public subnet olabilmesi içinde route table’a internet gateway eklenmiş olmalı.
2- EC2’nin public ip adresi olmalı.
3- Security group kuralları trafiğe izin vermeli.

project-igw adında internet gateway’imiz var ve VPC’mize attached durumda.
Bu VPC’deki public subnet’ler internete çıkabilir.

10.0.0.0/16 → local
Bu VPC içindeki tüm kaynakların birbiriyle konuşmasını sağlar.
0.0.0.0/0 → igw-02f7c4d70600d34d2
Bu rota sayesinde internet trafiği Internet Gateway’e yönleniyor.
Yani bu subnet gerçekten public subnet.
Peki şimdi EC2 internetten erişilebilir mi?
Eğer EC2 bu subnet içinde ise
Eğer EC2’nin public IP’si varsa
Eğer security group’ta doğru portlar açıksa
Evet, artık internete tamamen açık olur.
Network ACL (NACL) Nedir?
Bir Network ACL, AWS VPC içinde subnet seviyesinde çalışan bir güvenlik duvarıdır.
Yani Security Group → Instance seviyesinde
NACL → Subnet seviyesinde çalışır.
Örneğin:
- Bu subnet’e sadece 80 portundan trafik gelsin
- Bu subnet’ten 0.0.0.0/0’a çıkış serbest olsun
- Şu IP’den gelen trafik yasak olsun (Deny)
gibi kurallar koyabilirsin.


- Rule 100: Her yerden gelen tüm trafiğe izin ver
- *Rule : Buraya kadar eşleşmeyen her şey DENY
Security group ise subnet seviyesinde değil instance seviyesinde çalışır.