๐Ÿ”VPC

Virtual Private Cloud

Kendi รถzel aฤŸ alt yapฤฑmฤฑzฤฑ oluลŸturmamฤฑzฤฑ saฤŸlayan, sanal aฤŸ katmanฤฑdฤฑr. Tamamen kullanฤฑcฤฑya รถzel ve paylaลŸฤฑmlฤฑ deฤŸil.

Her AWS hesabฤฑnda, her region da bir adet varsayฤฑlan VPC ile gelmektedir. Biz istersek her region iรงin 5 tane daha VPC yaratabiliriz. 5 soft bir limittir. 5den fazla VPC ihtiyacฤฑmฤฑz olduฤŸunda AWS den bunu talep edebiliriz.

Her VPC bizim รถnceden tanฤฑmladฤฑฤŸฤฑmฤฑz IP aralฤฑฤŸฤฑna sahip olur. Yani VPC iรงerisinde kullanabileceฤŸimiz IP bloฤŸu tanฤฑmlฤฑyoruz.

ร–rneฤŸin 10.0.0.0/16lฤฑ bir blok ekleyip, bunlarฤฑ alt subnetlere ayฤฑrabiliyoruz.

Subnetler public ve private olarak 2 รงeลŸitle ayrฤฑlabiliyor.

Public : DฤฑลŸ dรผnyadan eriลŸimin yapฤฑlacaฤŸฤฑ subnet.

Private : VPC iรงerisindeki sunucularฤฑn birbirine eriลŸim yaparken kullanฤฑlฤฑr.

VPC altฤฑnda tรผm trafik yรถnlendirmesini "routing table" dediฤŸimiz servisle yaparฤฑz.

ร–rnek olarak, X subnetinden Y subnetine ya da Z subnetinden internete nasฤฑl gidileceฤŸini ya da, hangi yolun kullanฤฑlacaฤŸฤฑnฤฑ anlatan ayarlama (konfigรผrasyon) dosyalarฤฑ arayฤฑcฤฑlฤฑฤŸฤฑyla yapฤฑlฤฑr.

Tรผm bu karmaลŸฤฑk yapฤฑnฤฑn, gรผvenliฤŸini saฤŸlamak adฤฑna da, aฤŸ alt yapฤฑsฤฑnda hangi subnet'e, hangi trafik gidebilsin, ve ya hangi subnet'den hangi trafik dฤฑลŸarฤฑya รงฤฑkabilsin gibi kurallarฤฑ belirlediฤŸimiz Network access list ya da network ACL ayarlamalarฤฑ yapabiliyoruz.

Buna ek olarak VPC de oluลŸturduฤŸumuz kaynaklara, direkt atayarak da bu kaynaklara ne tarz bir trafik eriลŸimine izin verebileceฤŸimizi belirlediฤŸimiz EC2 kฤฑsmฤฑnda da gรถrdรผฤŸรผmรผz SGlar yaratabiliyoruz.

Public subnetlerin internet eriลŸimini saฤŸlayan ve aynen evimizde bulunan internete girmemizi saฤŸlayan modem,router larla aynฤฑ mantฤฑฤŸa sahip olan, internet gateway hizmetini de VPC altฤฑnda kullanabiliyoruz.

Bunun yanฤฑ sฤฑra kendi ลŸirket aฤŸ altyapฤฑsฤฑ ile bu VPC arasฤฑndaki direkt bir baฤŸlantฤฑ olacak olan VPN baฤŸlantฤฑsฤฑnฤฑ sonlandฤฑrmak iรงin VPN gateway tanฤฑmฤฑ yapฤฑlabiliyor.

S3 ya da dynomoDB gibi diฤŸer AWS servislerine bu vpc'den direkt ulaลŸmak adฤฑna private endpoint linkleri yaratabiliyoruz. Ayrฤฑca hem kendi hesabฤฑmฤฑzda bulunan diฤŸer VPC'ler, hem baลŸka hesapta bulunan VPCler ile pear dediฤŸimiz ayarlamalar yaparak bu VPCler arasฤฑnda direkt baฤŸlantฤฑ kurulabiliyor. Ve bu VPClerde bulunan kaynaklarฤฑn birbirine eriลŸebilmelerini saฤŸlayabiliyoruz.

Internet Gateway, DฤฑลŸ dรผnyaya รงฤฑkฤฑลŸ ve dฤฑลŸ dรผnyadan geliลŸi saฤŸlar.

Nat Gateway, Private subnetlerde bulunan sunucular internete รงฤฑkmasฤฑ iรงin kullanฤฑlacak. Public subnetlerin birinde bulunmasฤฑ gerekmektedir.

Private subnet'de bulunan sunucularฤฑmฤฑzฤฑn S3 servisi gibi servislerle iletiลŸime geรงebilmesi iรงin bir private link oluลŸturmalฤฑyฤฑz.

VPC OluลŸtururken,

  • VPC konsoluna girip, create diyoruz. IP bloฤŸu ne olacaksa onu giriyoruz.

  • IPv6 istiyorsak VPC oluลŸtururken seรงiyoruz.

Her region'da default bir VPC bulunur.

ฤฐlk VPC yaratฤฑldฤฑktan sonra VPC'ye tฤฑklayฤฑp actions kฤฑsmฤฑndan DNS hostname aรงmamฤฑz gerekiyor. Bunu seรงmezsek VPC altฤฑnda bulunan sunucular VPC DNS'i รผzerinden haberleลŸemez.

Route tables, her VPC yaratฤฑldฤฑฤŸฤฑnda otomatik olarak bir route table oluลŸur. Route table VPCnin nereye nasฤฑl eriลŸeceฤŸini belirlediฤŸimiz kฤฑsฤฑmdฤฑr.

Internet Gateway, ฤฐnternet gw oluลŸturup, yapฤฑmฤฑzฤฑ internete รงฤฑkarmalฤฑyฤฑz. oluลŸturup, รผzerine รงift tฤฑklayฤฑp VPCmize mount ediyoruz. Bรถylelikle dฤฑลŸarฤฑdan da kaynaklarฤฑmฤฑza eriลŸim olacak.

Route table, 0.0.0.0/0 a giderken internet gw kullan diyerek. ฤฐnternet รงฤฑkฤฑลŸฤฑmฤฑz aktif oluyor.

Subnets kฤฑsmฤฑndan yeni bir subnet yaratabiliriz.

  • Create subnet

  • ฤฐsim giriyoruz.

  • Yeni yarattฤฑฤŸฤฑmฤฑz VPCyi seรงiyoruz.

  • Hangi AZ olacaฤŸฤฑnฤฑ seรงiyoruz. Hangi blokta olacaksa bunu seรงiyoruz.

Private subnetler iรงin yeni bir route table yaratฤฑyoruz. subnet associations kฤฑsmฤฑndan edit diyerek private bloklarฤฑmฤฑzฤฑ seรงiyoruz private ve public ayrฤฑmฤฑnฤฑ bu ลŸekilde yapฤฑyoruz. Subnets kฤฑsmฤฑna gelip, public subnetleri tek tek seรงip, Actions kฤฑsmฤฑndan Auto-assingn IP setting enable diyoruz. Ve bรถylelikle public subnetlere otomatik olarak public IP adresi tanฤฑmlanacak.

DฤฑลŸ dรผnyadan iรงeride private subnet' de bulunan sunuculara eriลŸmek istersek, public subnet bloฤŸuna jump box sunucusu kurup ilk bu sunucuya baฤŸlanฤฑp, daha sonra private blokta bulunan sunuculara eriลŸebiliriz.

Sunucu kurulumu esnasฤฑnda oluลŸturduฤŸumuz VPC seรงebiliriz. Auto-assingn public IP kฤฑsmฤฑnฤฑ eฤŸer public subnetler auto assingn IP olarak seรงmediysek enable diyoruz. Fakat biz public subnetlerde enable etmiลŸtik. O yรผzden default kalabilir.

Sunucu kurulumunda VPC seรงtiฤŸimizde bu VPC iรงin yeni bir SG oluลŸturmalฤฑyฤฑz. ร‡รผnkรผ her VPC nin SG kurallarฤฑ farklฤฑdฤฑr. Ek olarak private blokta sunucu oluลŸturuyoruz. Jump box sunucudan private subnet de bulunan sunucuya eriลŸmek iรงin AWS nin bize verdiฤŸi pem dosyasฤฑnฤฑ JUMP box sunucuna import ediyoruz.

Network Access list, atandฤฑฤŸฤฑ subnetin hangi originden hangi tรผrden trafiฤŸi kabul edeceฤŸini,hangi destination hangi tรผrde trafik gรถndermesine izin verileceฤŸini belirlediฤŸimiz kural bรถlรผmรผ. Her subnet de en azฤฑndan bir ACL atanmak zorundadฤฑr. Her subnet iรงin ayrฤฑ ayrฤฑ ACL yaratฤฑlabilir. Tek bir ACL yaratฤฑlฤฑp birden fazla subnete atanabilir. Bir nevi subnet bazฤฑnda SGlardฤฑr.

Network ACL : Subnetlere atanฤฑp, subnet bazฤฑnda kurallar oluลŸturulur.

Security Group : Sunuculara atanฤฑp, sunucu bazฤฑnda kurallar oluลŸturulur.

Network ACL de kurallar baลŸtan sona bakฤฑlฤฑr. Kurallar ACL de yoksa paket (istek) deny olur.

NACL, alt aฤŸ dรผzeyinde รงalฤฑลŸฤฑr ve bu nedenle รถnce trafiฤŸe eriลŸim saฤŸlar. Bu, trafiฤŸi bir sonraki seviyeye, yani Gรผvenlik grubuna ulaลŸmadan รถnce filtrelemesine izin verir. NACL tarafฤฑndan herhangi bir trafik reddedilirse, gรผvenlik grubu bunu asla gรถrmez. Gรผvenlik grubu, NACL tarafฤฑndan izin verilen trafiฤŸi yine de reddedebilir.

Normal de Public bir blokta bulunan sunucular her restart ettiฤŸimizde IP adresleri deฤŸiลŸiyor. Sunucularฤฑmฤฑzฤฑn da sabit bir IP adresi olmasฤฑnฤฑ istersek aลŸaฤŸฤฑda bulunan adฤฑmlarฤฑ yapmalฤฑyฤฑz.

  • Elastic IPs

  • Allocate new address

  • Allocate

Bรถylelikle AWS bize sabit bir IP adresi verdi. Bu IP adresinin รผzerine tฤฑklayฤฑp,

  • Actions

  • Associate address

  • instance (IP adresini kullanacaฤŸฤฑmฤฑz sunucuyu seรงiyoruz)

  • Associate

Sabit IP adresimizi yukarฤฑda belirttiฤŸimiz sunucuya tanฤฑmlamฤฑลŸ olduk. Ve ilgili sunucu sรผrekli olarak bu IP adresini kullanฤฑyor olacak.

Subnetlerin, private ve public olmasฤฑnฤฑ belirleyen etken route table'dฤฑr. Route table รผzerinde private blok kendi iรงerisinde haberleลŸebiliyor. Public ise internet GW kullanarak dฤฑลŸarฤฑ รงฤฑkabiliyor.

Private blokta bulunan sunucularฤฑn (lokal IP 'ye sahip olan) internete รงฤฑkmasฤฑnฤฑ istersek nat gw yaratฤฑp, public subnet'in iรงerisine konumlandฤฑrฤฑyoruz. (herhangi bir public subnet'e konumlandฤฑrabiliriz) daha sonra private subnetlerin bulunduฤŸu route table'na diyoruz ki, sen internete giderken bu nat gw servisine paketleri teslim et. Dolayฤฑsฤฑyla private sunucular internete bu ลŸekilde eriลŸebilir. Ama nat gw bir internet gw olmadฤฑฤŸฤฑ iรงin dฤฑลŸ dรผnyadan burada bulunan sunuculara eriลŸilemiyor.

NATGW VS INTERNETGW

Bu ลŸekilde dรผลŸรผnebilirsiniz, diyelim ki iki alt aฤŸฤฑnฤฑz var. sunucularฤฑ her iki alt aฤŸda da baลŸlatฤฑrsฤฑnฤฑz. ลžimdi IGW'yi alt aฤŸlara eklerseniz, bu alt aฤŸ herkese aรงฤฑk hale gelir. Bu, dฤฑลŸ dรผnyanฤฑn bu alt aฤŸa baฤŸlanabileceฤŸi anlamฤฑna gelir. Bulut sunucunuza dฤฑลŸarฤฑdan eriลŸilebildiฤŸi ve bulut sunucunuzun dฤฑลŸ dรผnyaya baฤŸlanabileceฤŸi anlamฤฑna gelir.

Ancak dฤฑลŸ dรผnyanฤฑn sizin bulut sunucunuza baฤŸlanamamasฤฑ gibi bir gereksiniminiz varsa, o zaman alt aฤŸฤฑnฤฑzda NAT kullanmanฤฑz gerekir ve alt aฤŸฤฑnฤฑz รถzel alt aฤŸ olur. Bรถylece, bu alt aฤŸdaki her รถrnek dฤฑลŸ dรผnyaya baฤŸlanabilir, ancak dฤฑลŸ dรผnya sizin bulut sunucularฤฑnฤฑza baฤŸlanamaz.

---------------------------------------------------------------------------------------------------

Bir ฤฐnternet AฤŸ Geรงidi (IGW), VPC'nizdeki kaynaklarฤฑn internete eriลŸmesine izin verir ve bunun tersi de geรงerlidir. Bunun olmasฤฑ iรงin, bir alt aฤŸฤฑn IGW'ye eriลŸmesine izin veren bir yรถnlendirme tablosu giriลŸi olmasฤฑ gerekir.

Yani - bir IGW, genel alt aฤŸฤฑnฤฑzdaki kaynaklarฤฑn internete eriลŸmesine ve internetin sรถz konusu kaynaklara eriลŸmesine izin verir.

Bir NAT AฤŸ Geรงidi benzer bir ลŸey yapar, ancak iki ana fark vardฤฑr:

  1. ร–zel bir alt aฤŸdaki kaynaklarฤฑn internete eriลŸmesine izin verir (yum gรผncellemelerini, harici veritabanฤฑ baฤŸlantฤฑlarฤฑnฤฑ, wget รงaฤŸrฤฑlarฤฑnฤฑ vb. dรผลŸรผnรผn) ve

  2. sadece tek yรถnlรผ รงalฤฑลŸฤฑr. Siz aรงฤฑkรงa izin vermedikรงe, internet genel olarak NAT'ฤฑnฤฑzdan รถzel kaynaklarฤฑnฤฑza ulaลŸamaz.

Nat Gateway OluลŸturmak;

  • Create Nat Gateway

  • Subnet (Hangi public subnet de olacaฤŸฤฑnฤฑ seรงiyoruz)

  • Elastic IP allocation ( Nat gw iรงin bir IP adresi ayฤฑrฤฑyoruz )

  • Create Nat GW

Ardฤฑndan private subnet iรงin yarattฤฑฤŸฤฑmฤฑz route table geliyoruz. 0.0.0.0/0 a giderken NAT GW 'kullanmasฤฑnฤฑ sรถyleyen route ekliyoruz.

Private sunucularฤฑn internete รงฤฑkmasฤฑnฤฑ saฤŸlayan bir diฤŸer yolu nat instance kurmaktฤฑr. Bunun iรงin yeni sunucu kuruyoruz. Ami olarak arama kฤฑsmฤฑna "NAT" yazฤฑp, amazonun nat ami 'ฤฑnฤฑ seรงiyoruz. EฤŸer ki yapฤฑmฤฑz bรผyรผk ise, nat instance olarak kuracaฤŸฤฑmฤฑz sunucunun instance type'ฤฑnฤฑ daha uygun yรผksek paketler seรงmeliyiz. Bu sunucuyu da Public Subnetlerin birine kuruyoruz. Mevcut yarattฤฑฤŸฤฑmฤฑz SG seรงiyoruz. Bรถylelikle nat instance oluลŸturuluyor. Ardฤฑndan nat instance olarak oluลŸturduฤŸumuz sunucuyu seรงip, Actions kฤฑsmฤฑndan source/destination check kฤฑsmฤฑnฤฑ disable ediyoruz.

Private subnetlerin route tablolarฤฑna gidip 0.0.0.0/0 a giderken bu sunucuyu kullan diyebiliyoruz.

Nat GW : AWS kontrolรผ altฤฑndadฤฑr. Nat Instance : Bizim kontrolรผmรผz altฤฑndadฤฑr.

Endpoints, sunucularฤฑn internete รงฤฑkmadan (zaman harcamadan) AWS servislerine eriลŸmesini saฤŸlar.

Endpoints OluลŸturmak iรงin;

  • Create endpoints

  • AWS services (AWS servislerine eriลŸmek iรงin kullanacaฤŸฤฑz) ร–rnek olarak S3 servisini seรงebiliriz.

  • Service Name : S3

  • VPC ( kullanacaฤŸฤฑmฤฑz, yarattฤฑฤŸฤฑmฤฑz VPC'yi seรงmeliyiz)

  • Route tables, Hangi subnetler endpoint รผzerinden AWS servislerine ulaลŸabilsin? Burada bunu seรงmeliyiz. Hepsini seรงiyoruz.

  • Policy, EriลŸimleri vs kฤฑsฤฑtlamak istersek custom bir policy yaratabiliriz. Biz full access seรงebiliriz.

  • Create endpoint

Route tablolarฤฑna bu endpoint iรงin ilgili rule'lar otomatik olarak eklendi.

VPC Peering, Farklฤฑ VPCler internete รงฤฑkmadan kendi aralarฤฑnda haberleลŸmelerini saฤŸlar. ร–rnek olarak A VPC'si B VPC'si arasฤฑnda peering yaparsak kendi aralarฤฑnda irtibatฤฑ olur.

Peering connections, รถrnek olarak varsayฤฑlan VPC'miz ile sonradan yarattฤฑฤŸฤฑmฤฑz VPCyi peering yaparak birbirleri ile haberleลŸtirebiliriz.

Peering connections name : isim giriyoruz.

VPC (requester) : BaฤŸlantฤฑ kurmayฤฑ kim talep ediyor? Bunu seรงmeliyiz.

Select Another VPC to peer with : Neredeki VPC ile iletiลŸim kuracaฤŸฤฑz bunu seรงiyoruz. Kendi hesabฤฑmฤฑzdaki mi? BaลŸka bir hesapta bulunan VPC mi?

VPC (accepter) : BaฤŸlantฤฑyฤฑ hangi VPC ye gรถndereceฤŸiz bunu seรงmeliyiz. Create diyerek ilerleyebiliriz.

Farklฤฑ bir hesapta bulunan VPC ile de baฤŸlantฤฑ kurabiliriz. Ayrฤฑca farklฤฑ bir region da bulunan VPCler iรงinde peering yapabiliriz. Peering yaparken, VPClerin IP bloklarฤฑ (lokal) birbirinden farklฤฑ olmalฤฑdฤฑr.

Farklฤฑ bir hesap ile peering yaparsak o hesaba bir onay gidecektir. O hesap onay verirse, baฤŸlantฤฑ sorunsuz saฤŸlanacaktฤฑr. Kendi hesabฤฑmฤฑzda bulunan VPCler iรงin peering 'imizi seรงip actions kฤฑsmฤฑndan Accept VPC peering connections request diyoruz. Ardฤฑndan route tablolarฤฑnฤฑ gรผncellememiz gerekiyor. Sayfada รงฤฑkan modify my route tables now seรงeneฤŸine tฤฑklฤฑyoruz. ร–ncelikle isteฤŸi gรถnderen VPCnin route tablosuna gelip, edit diyoruz.

Her 2 VPC nin route tablolarฤฑna gidip, birbilerinin subnetlerini destination olarak belirtip, Peering connections' servisini kullanmalarฤฑnฤฑ sรถyledik.

Yani her 2 VPCnin de birbirine eriลŸebilmeleri iรงin route tablolarฤฑnฤฑ gรผncelledik. 2 VPC birbirleri ile iletiลŸim kurabilir.

Direct Connect ve VPN

VPN ลŸirket aฤŸฤฑmฤฑzdan VPC arasฤฑnda internet รผzerinden baฤŸlantฤฑ kurmamฤฑzฤฑ saฤŸlar.

Direct Connect, ร–rnek olarak AWS Tรผrkiye de Turk Telekom ile kendi arasฤฑnda kapalฤฑ devre yรผksek hฤฑzlarda baฤŸlantฤฑ kuruyor. Biz de Turk Telekom tarafฤฑna hat รงekerek AWS ile iletiลŸimi saฤŸlฤฑyoruz.

Last updated