VPC (Virtual Private Cloud)

VPC en temel servislerden birisidir. Aslında çoğu kaynağı biz VPC içinde kullanırız. Çok fazla kavram olacak o yüzden başlangıçta nelerden bahsedeceğimizi kısaca konuşalım. Önce VPC'yi anlatmaya çalışacağım. VPC içerisinden internete açılan kapı olan Internet Gateway'i konuşacağız. Daha sonra VPC içerisinde alt ağlar yani subnet'lerden bahsedeceğim. VPC içerisinde kuralları belirlediğimiz Route table'ları, güvenlik katmanları Security group ve ACL(Accsess Control List) konularını anlattıktan sonra temel seviyede bir VPC kurmuş olacağız. Devamında VPC ile dışarısı arasında bağlantı kurmamıza yarayan NAT Instance / NAT Gateway ve Bastion Host/Jump Box oluşturmayı göreceğiz. Daha sonra birden fazla VPC'yi bir birine bağlamak için VPC peering kuracağız. Son bölümde de teorik olarak bahsedeceğimiz VPN ve Direct Connect konularını işleyeceğiz. Daha öncesinde temel seviyede Network altyapınız olduğunu varsayarak anlatacağım.


VPC için On-premises sistemlerdeki data center'ın sanal versiyonu diyebiliriz. İçerisinde kaynaklar(instance, database vs), güvenlik duvarları, bağlantı kabloları gibi tüm sistemin sanal versiyonu. S3 veya IAM gibi global servisler için VPC kullanmayız. VPC Kullanıcı tarafından oluşturulur, kurallar ve içerisine koyulacak kaynaklar da yine kullanıcı tarafından seçilir. İlk hesap oluşturduğunuzda default olarak VPC oluşturulur ve kaynaklarımızı onun içerisinde kullanırız. Default VPC haricinde 5 adet daha VPC oluşturabiliriz. Bu soft limittir istenirse AWS ile iletişime geçilip artırılabilir.

Yukarıdaki şekilden VPC içerisinde oluşturabileceğimiz unsurları konuşalım. Her unsuru teorik olarak anlattıktan sonra konsoldan oluşturulmasını anlatacağım. Tabi ki hepsinden önce yukarıda anlatmaya çalıştığımız VPC'mizi konsoldan oluşturalım.

Servislerden VPC'yi seçelim.

1- VPC içerisinde oluşturabileceğimiz unsurları left-hand menü den görebiliriz.

2- Dash board sayesinde oluşturduğunuz unsurların adetlerini tek sayfadan takip edebiliriz.

3- Launch VPC wizard ile hızlı bir şekilde public, private subnetlerin olduğu ilave VPN seçenekleriyle hızlı VPC oluşturabiliriz.

Şimdi sol menüden Your VPC'yi seçelim. Create VPC ile yeni bir VPC oluşturalım.

Önce bir isim veriyoruz. Takiben ip bloğu belirtiyoruz. Bu ip bloğu üzerinden subnet oluşturacağız. Tenancy kısmına da default bırakalım. Diğer seçenek dedicated idi, özel fiziksel bir alan istemiyoruz ekstra ücret ödememek için. VPC hazır şimdi bir sonraki adıma geçelim.

Internet Gateway

Internet Gateway bizim dışarıya yani internete açılan kapımız. Dış hatlar terminali gibi düşünelim. VPC'nin dışarıya açıldığı kapı. Çift yönlü içeriden dışarıya ve dışarıdan içeriye geçişi sağlar. Tabi kapı açtık diye VPC tamamen dışarıya açık olmayacak daha sonra o kapıyı kimler kullanabilir tanımlamaları yapacağız. Sol konsoldan Internet Gateways seçelim. Default 1 adet vardı biz yenisini oluşturmak için Create Internet Gateway diyeceğiz.

Yukarıda görüldüğü gibi çok basit sadece isim veriyoruz. Fakat bir işlem daha yapmalıyız. Bu internet gateway'i oluşturduğumuz VPC ile ilişkilendirmemiz gerekiyor.

Yukarıda görüldüğü gibi detached durumunda yani boşta. Action menüsünden Attach VPC diyerek yeni oluşturduğumuz VPC ile ilişkilendirelim. Bunun için boşta VPC olması gerekiyor. Bir VPC ancak bir internet gateway ile ilişkilendirilebilir. Şimdi subnet'leri oluşturacağız daha sonra da dışarıya açılmasını istediğimiz subnetler için kurallar koyacağız. Onun için internet gateway'imizi şimdiden hazırladık.

Subnet

VPC kurarken bir ip aralığı tanımlamıştık. Private ip olduğu için bazı kısıtlamaları var kafamıza göre veremiyoruz. 10.0.0.0/16 şeklinde aldığımız bir ip bloğunun ilk 16 bittine dokunmadan son 16 biti kadar yani 2^16 adet host tanımlayabiliyoruz. Tek bir ağ için çok yüksek bir sayı. Bizim alt ağlara ihtiyacımız olacak bunun için bu bloğu mantıksal alt ağlara böleceğiz bunlara subnet diyeceğiz. Subnetler için /24 kullandığımızda 8 bit network için diğer 8 biti de host için ayırmış oluyoruz. Bu şu anlama geliyor 256 adet subnet ve her subnet içinde 256 adet host tanımlayabiliriz. Fakat burada AWS 5 ip'yi kullandırmıyor yani 251 gibi düşünebiliriz. Örneğin 10.0.0.0/24 için Kullanamadığımız ip'ler;

10.0.0.0 network adresi için

10.0.0.1 VPC Router için

10.0.0.2 DNS içi

10.0.0.3 provizyon(daha sonra kullanılır diye)

10.0.0.255 Boradcast için ayrılmıştır.

Alt ağ maskesi için seçebileceğimiz aralık /16 ile /28 'dir. Subnet'lere ayırmamız sayesinde VPC içerisinde haberleşmesini istediğimiz veya dış dünyaya açık seçenekler üretebiliyoruz.

Üstte VPC unsurlarını gördüğümüz resimde 10.0.0.0/16 ip aralığı her AZ de bir public ve bir private olmak üzere 6 adet subnet'e ayrılmış. Public veya private olmasını oluşturacağımız kurallar ile belirleyeceğiz. Şimdi konsola geçelim 1 public, 1 private subnet yapalım. Siz sayıyı artırabilirsiniz. Sol konsoldan subnets seçelim. Create subnet'e tıklayalım.

Öncelikle VPC seçiyoruz. Hemen altında seçtiğimiz VPC'nin ip'sini görebiliriz. Subnet kısmına geldiğimizde public olduğunu anlayacak şekilde egitim-subnet-public-1A şeklinde bir isim verdim. Hemen altından AZ olarak 1a seçtim. CIDR bloğu olarak da 10.0.20.0 seçtim. En altta add new subnet'e tıkladığınızda hızlı şekilde altta açılan menüden diğer subneti oluşturabilirsiniz. İsim olarak egitim-subnet-private-1A ve CIDR bloğu olarak da 10.0.30.0 seçtim. Burada public veya private dedik diye public veya private olmayacak daha sonra bunlara atanan kurallarla tamamlayacağız.

Yukarıdaki resimden kontrolümüzü yapalım.

Route Tables

Şimdi sıra kuralları tanımlamaya geldi. Route Table'a pasaport diyebiliriz. Hangi ip bloğunun nereden nereye gideceğini belirleyen kuralları koyacağız. Burada iki route table tanımlayacağız birisi public diğeri private olacak ve daha sonra subnetler ile ilişkilendireceğiz. Sol konsoldan Route Tables seçelim. Create route table diyelim.

Bir public için bir de private için yapacağız. İlki public için olacak. Benzerini private için de yapacağız. Create dediğimizde Route tables menüsüne dönelim ve edit route ile kuralları belirleyelim.

İlk route default olarak geliyor. İlk kuralın türkçe meali şu, benim VPC'me ancak local'den ulaşılabilinir. Aslında bu kural tek başına private anlamı taşıyor.Yani private için yapacağımız route table sadece bu kural ile kalacak. İkinci kural ise bize şunu diyor ilk kural haricinde hedef her neresi olursa(0.0.0.0/0) tüm trafik internet gateway'e yönlendirilecek. İkinci kuralı biz edit seçeneği ile yaptık. Şimdi bu kuralı public subnet ile ilişkilendirelim.

Aynı menüde subnet associations kısmına gelip edit'i tıkladığınızda boşta olan subnet'ler görülecek işaretleyip eklediğinizde artık işlem tamamlanmış olacak.

Aynı şekilde Private için bir route table yapalım. Kural kısmını default bırakalım ve private ismini verdiğimiz subnet'i bu kural ile ilişkilendirelim.

Yukarıdaki gibi 3 route table gözükecek. Birisi default kendi yaptı. Biz oluşturduğumuz iki subneti de diğer route table'lar ile ilişkilendirdiğimiz için default boş kaldı. İlk o oluştuğu için main oldu ama siz action menüsünden herhangi bir table'ı seçip set main ile değiştirebilirsiniz. Main olan route table silinemez.

1 VPC başına 200 route table, her route table içinde de 50 route tanımlanabilir.

AWS'te oluşturduğumuz EC2'lara dışarıdan erişilmesini istersek public ip ataması yapılması gerekiyor bunun içinde bir işlem yapmamız gerekiyor.

Subnet menüsünde iken public olanı seçelim ve action kısmından modify-auto-assign ip setting seçeneğini tıklayalım. Açılan sayfada Enable auto-assign public IPv4 address seçeneğini tikleyelim. Artık bu subnette oluşturulan EC2'lar için otomatik public ip ataması yapılacak

Ayrıca VPC içerisindeki bazı Load Balancer gibi kaynaklar sadece DNS name kullanır public ip olmaz. Oluşan kaynaklarda DNS name oluşturabilmek için de bir işlem yapmamız gerekiyor.

VPC menüsüne gelelim action kısmından Edit DNS hostnames'e tıklayalım. Enable seçeneğini seçelim ve kaydedelim.

Birazda security kısmına bakalım.Bu başlıkta iki konumuz var birincisi Network ACLs diğeri security grops. Security Group kısmını daha önce EC2'da anlattığımız için burada ayrı bahsetmeyeceğim sadece karşılaştırmada kullanacağım.

Network ACLs(NACL)

Network ACL için subnet bazında güvenlik bileşeni diyebiliriz. Security grubu EC2'lar için tanımlıyorduk. NACL ise subnet'e atanır. Security gruplar instance tabanlıdır RDS ve EC2'lar için kullanılır. Eğer siz bir subnet içinde EC2 tanımlarsanız ACL'den geçmeden Security Grup'a ulaşılamaz. ACL'ler sadece ip/port kontrolü yapar. Hem giriş için hemde çıkış için ayrı kural belirlememiz gerekir. Yani hangi kaynaktan hangi trafiğin kabul edileceğini ve hangi hedefe hangi trafiğin gönderileceğini belirler. Default ACL bütün giren çıkan trafiğe izin verir. Fakat yeni ilk oluştururken ACL kural eklenene kadar tüm giren çıkan trafiği engeller. Her subnet için ayrı ayrı ACL oluşturulabileceği gibi bir ACL oluşturulup tüm subnetlere atanabilir. Security grup'larda ise default olan tüm gelen trafiği engellerken tüm dışarıya giden trafiğe izin verir. 1 EC2 en fazla 5 security grup ile ilişkilendirilebilir.

NACL'larda birden fazla kural konulabilir. Numarası en küçük olan kuralın önceliği vardır. Dışarıdan gelen istek öncelikle Subnet'e atanan NACL'ı geçmesi gerekiyor. NACL'da belirtilen kurallara uyarsa bu sefer kaynakların security grupları tarafından kontrol edilecek. NACL'lar subnet içindeki kaynakların birbirine erişimi için de geçerlidir. Şimdi sol konsoldan Network ACLs'e tıklayalım.

VPC oluşturduğumuzda default bir NACL oluşurur ve değiştirmezseniz VPC içindeki tüm subnetler Bu NACL ile ilişkilendirilir. Default inbound ve outbound kuralları da her yere açıktır.

Yukarıda 2 kural var. Numarası küçük olanın önceliği var demiştik zaten tek 100 numaralı kural var her yerden bütün portlardan gelen trafiğe izin veriyor. Altta "*" kuralı ise üstteki herhangi bir kurala uymaz ise engelle anlamına gelir. Yeni bir NACL oluşturmak için Create network ACL tıklayın isim verip VPC seçelim.

Daha sonra subnetleri egitim-NACL'e eklemek için Subnet associations menüsüne gelelim. Edit diyelim ve subnet'leri ekleyip kaydedelim.

Yukarıda gördüğünüz gibi ilk oluşturulan NACL'da tüm trafik yasakla kuralı var sadece. Edit inbound rules ile kural ekleyelim.

İki kural ekledim rule numarası, tip ve kaynak belirttim. Bu NACL'a bağlanılan subnet'ler bu kurallara göre erişimleri ayarlanacak. NACL'da ayrıca inbound kuralı belirlediğimiz gibi outbound kuralları da tanımlamamız gerekiyor.

Buraya kadar temel seviyede bir VPC oluşturmuş olduk. Şimdi biraz daha derine inelim


NAT Gateway / NAT Instance

Private subnet içerisinde bulunan cihazlarımızın da güncelleme gibi konularda internet erişimine ihtiyacı olabilir. Bu durumu çözebilmek için NAT Gateway(NAT GW) kullanıyoruz. NAT GW'i public subnet'lerin birisine konumlandırıyoruz. İnternete ulaşmasını istediğimiz paketleri private subnet içindeki kaynaklar NAT GW'e bırakıyor. Fakat NAT GW bir internet GW olmadığı için dışarıdan erişmek isteyenler erişemiyor.

Bunun için iki adımlı bir işlem yapacağız. Birincisi public subnetlerin birinde bir adet NAT GW oluşturacağız. İkinci adımda da private subnetin route table'ına bir kural ekleyeceğiz. Herhangi bir adrese ulaşmak isteyenler için hedef olarak oluşturduğumuz NAT GW'i işaret edeceğiz. Sol konsoldan NAT GW'e tıklayalım. Sağ üst kısımdan Create NAT gateway'e tıklayalım.

Önce isim girdim sonra hangi public subnet içerisinde oluşturacaksam o subneti seçtim. Son olarak burada elastic ip'ye ihtiyacımız olacağından ve bizim de şuan olmadığı için Allocate Elastic IP diyerek yeni bir ip oluşturulup bunun için atamasını yapıyoruz. Birinci aşamayı tamamladık. Şimdi route table menüsüne gidelim ve pivate subnetlerin olduğu route table'i düzenleyelim.

İlk kuralı oluşturmuştuk ve eğer paket bu VPC içine gidecekse paketler local'de kalacak demiştik. Şimdi ikinci kuralı oluşturuyoruz. Eğer hedef ilk kural dışında herhangi bir adres ise NAT GW'e başvuracağız.

Herşeyi AWS'e yaptırdık işimizi gördük 😂. Her ne kadar NAT GW hazır bir hizmet olsa da bazı durumlarda manual işlem yapmamıza müsaade etmiyor. İstersek biz bu NAT GW işini bir EC2 üzerinden de halledebilirdik. Bu şekilde NAT GW yerine NAT instance kullanabiliriz ve biz NAT instance kullanırsak ücret anlamında da tasarruf etmiş oluruz. Normal EC2 kurar gibi adımları yapıyoruz fakat AMI olarak arama çubuğuna NAT yazdığınızda çıkan AMI'lerden bir tanesini seçmeniz gerekiyor.

Instance tipini seçerken de kaç makineye hizmet verecekseniz o ölçüde bir makine özelliği seçmelisiniz. Son olarak bu ec2'yu istediğimiz VPC içerisinde public subnete koyalım ve security grup olarak dışarıya açık bir sec-grup seçelim.

EC2 hazır olduktan sonra bir işlem daha yapmamız gerekiyor action menüsünden Networking > change source/dest check 'e girelim ve disable edelim.

Bu instance'ı ortalık malı gibi kullanacağımız için 🙂 kaynak neresi hedef neresi kontrol etmesini istemiyoruz. Şimdi de son işlem olarak NAT GW'de olduğu gibi route table'ı ayarlamak. Daha önce yaptığımız gibi 0.0.0.0/0 yani herhangi bir yere gidecek paketler için oluşturduğumuz NAT ınstance'ı hedef göstereceğiz.

Daha önce NAT GW olarak belirttiğimiz target kısmına artık oluşturduğumuz NAT ınstance'ı seçtik.

Bastion Host/Jump Box

Yukarıda NAT Gateway ile private subnet içerisindeki bir makineden dış dünyaya bağlanmıştık. Şimdi dış dünyadan private subnet içindeki makineye nasıl bağlanacağımızı göreceğiz. İsterseniz bunu görmeden önce private ve public subnet'lerde birer ec2 oluşturalım ve private subnetteki ec2'ya bağlanamadığımızı görelim. Çünkü bağlantı sağlayabileceğimiz bir public adresimiz olmayacak. Bunun için Public Subnet içerisinde bir atlama tahtası(jump box) oluşturacağız. Aslında atlama tahtası olarak bir makine kullanacağız. Public subnet'teki makinemizin security grup olarak 22 portunu dış dünyaya açalım ve bağlanalım. Bu noktada benim pem uzantılı key'e ihtiyacım olacak. pem dosyamızı local'de iken not defteri ile açalım ve içeriğini kopyalayalım. Daha sonra public'deki ec2 içerisinde aynı isimle bir dosya oluşturalım. Herhangi bir text editör ile içine girip kopyaladığımız pem dosyasının içeriğini yapıştıralım. Biz buraya kadar aslında pem dosyamızın aynısını public subnet üzerindeki ec2 içerisinde oluşturmuş olduk. Bu dosyaya chmod 400 xxx.pem ile sadece kullanıcı için okuma izni verelim. Son olarak ssh bağlantısı yapar gibi ssh -i xxx.pem ec2-user@private-ip ile bağlanmış olacağız. Yani private ip ile public subnetteki ec2'u kullanarak bağlantı sağlamış olduk. İşte bu public subnet'teki ec2'ya jump box veya bastion host deniliyor. Son olarak neden böyle bir ihtiyacımız olabilir onu söylemiş olalım. Monitör etmek veya kontrol etmek için bağlantı sağlamak zorunda kalabiliriz.

End Point

VPC içerisindeki kaynakların S3 servisine veya farklı bir VPC'deki herhangi bir servise ulaşması internet üzerinden gerçekleşebilir fakat biz bunun daha hızlı bir şekilde AWS altyapısı kullanarak erişebilmesi için end point oluşturuyoruz. Sadece AWS servisleri için değil ayrıca Market Place'deki 3. parti uygulamalar için veya farklı bir AWS accout'undaki kaynaklar için de bunu kullanabiliyoruz.

Bunun için VPC'mizde bir end point oluşturacağız ve ulaşmak istediğimiz kaynakları burada seçeceğiz. Sol konsoldan end point'i seçelim ve create end point diyelim.

AWS servislerinden S3'ü seçtik. Sonra hangi VPC'den erişeceğimizi seçtik. Daha sonrada o VPC deki hangi route table'lar ile erişmek istediğimizi seçtik. Ben burada public ve private ikisini de seçtim. En altta da seçtiğimiz kurallara göre json formatında policy'sini çıkarttı. İsterseniz bu policy ile kısıtlamalar yapabilirsiniz. Bu işlemi yaptıktan sonra route table'ı inceleyelim.

Kendisi route table içerisinde bir kural daha yarattı. S3 servisine ulaşmak için bir gateway'i target olarak seçen bir kural eklendi. Bu sayede artık public veya private subnet içindeki kaynaklar bu end point ile hızlı ve daha güvenli bir şekilde ulaşabilecekler.

Elastic IP

Biz gerekli ayarlamaları yaparak ve public subnet'de bir EC2 ayağa kaldırdığımızda AWS public ip atar. Fakat biz bu makineyi stop edip tekrar start ettiğimizde public ip değişir. Biz bazı durumlarda bu adresin değişmemesini isteriz. Böyle bir durumda sabit Public ip adresini ücreti mukabil alabiliriz. Sol menüden Elastic IPs 'e gelelim.

Daha önce oluşturmadığımız için boş geldi. Sağ üstte Allocate Elastic IP address kısmına tıklayalım. Açılan sayfada isim verelim. Havuzdan bir sabit adres almak için Allocate'e tıklayalım.

Tekrar hatırlatayım bu hizmet ücretlidir. Eğer siz oluşan ip'yi bir ec2'da kullanıyorsanız ücret ödemezsiniz. Fakat ilişkilendirmez boşta kalırsa saati 0.01 $'dan ücretini ödemek zorunda kalırsınız. Bunu kullanmak için ise ip'ye tıklayın action menüsünden associate Elastic IP seçerek açılan sayfada ilişkilendirmek istediğiniz kaynağı seçebilirsiniz.

VPC Peering

Bazen birden fazla VPC arasında iletişim ihtiyacı olabilir. Sizin VPC-A daki makineleriniz VPC-B dekilerle iletişime geçmesi gerekiyor bu durumda bunların hepsi için ayrı ayrı kural tanımlamak oldukça güç olurdu. Bunun için AWS'in peering çözümüne bakacağız. Birden fazla VPC'yi birbirine bağlayacağız.

Burada bilmemiz gereken bir kural var. Diyelim ki VPC-A ile VPC-B arasında da peering kurdunuz. Bu VPC-A'nın VPC-C'ye ulaşabileceği anlamına gelmiyor. Eğer ulaşsın istiyor isek onun için ayrı VPC-A ile VPC-C arasında peering kurmamız gerekiyor. Konsola geçelim left-hand menüden Peering connections'ı seçelim ve Create peering connection diyelim.

Önce isim veriyoruz. Sonra peering için ilk VPC'mizi seçiyoruz ben eğitim için olanı seçtim. Diğer VPC'yi farklı bir account üzerinden veya farklı bir region'dan da seçebiliriz. Ben aynı regionda daha önce oluşturduğum VPC-a isimli VPC'yi seçtim. CIDR bloklarına da dikkat edelim aynı regionda aynı CIDR bloğu ile tanımlamış olsaydık bu işlemi yapamayacaktık. Çünkü paket nereye gideceğini bilemeyecekti. En altta create diyelim. Bu işlem bittikten sonra bir onaya ihtiyacımız var.

Action menüsünden Accept request'e tıklayalım. Her iki VPC de benim hesabımda olduğu için kendim talep ettim kendim onayladım. Farklı bir hesapla bu işlemi yapmak isteseydik diğer hesaptan onaylamamız gerekecekti. Bize bildirim şeklinde route table'ları güncelle şeklinde uyarı çıkacak modify diyelim.

Aşağıdaki tabloda gerekli güncellemeleri yapalım. Önce egitim VPC mizin route table'ına diğer VPC'ye gitmek isteyen paketler için bir kural girelim. Diğer VPC'nin CIDR bloğunu kopyalayalım.

Önce public için yaptığımız table'i seçtim. Routes kısmında edit'e tıklayarak yukarıda gördüğünüz gibi 10.7.0.0/16 adresine bir paket gidecek ise hedef olarak oluşturduğumuz peering'i seçtim. Bunu private için ve daha sonra diğer VPC nin route table'ları için de yapmamız gerekecek.

VPN(Virtual Private Network) & Direct Connect

VPC'mizi diğer VPC'ler ile peering ile bağlamıştık veya herhangi bir servisle End Point ile bağlanabilmiştik. Fakat bağlantı sağlamak istediğimiz konum kendi on-premise data center ise AWS'in iki çözümü var birisi VPN, diğeri ise Direct Connect. AWS ile data center'ınız arasında şifreli ve özel bir bağlantı kuruyoruz. Bu sayede data center'ınızdaki kaynaklara AWS üzerinden ulaşmış oluyoruz.

AWS bunun için iki farklı hizmet sunar. Birincisi AWS Site-to-Site VPN diğeri ise AWS Client VPN. AWS Site-to-Site VPN ile AWS'den data center'ınıza bağlanmayı sağlarken AWS Client VPN ise remote user'ların AWS'e veya data centerlarınıza ulaşmasını sağlar.

AWS Site-to-Site VPN ile AWS tarafında Virtual Private Gateway, kendi veri merkezimizde de customer gateway oluşturuyoruz. Her VPN bağlantısı ile iki tunnel kurulur bu sayede yedeklilik sağlanarak yüksek erişilebilirlik kazandırılmış olur.

AWS Client VPN ile de uzaktan herhangi bir yerden hem AWS hem de on-premise kaynaklarınıza erişim imkanı kazanırsınız. Bunun için öncelikle VPN Client uygulamasına ihtiyacınız var daha sonra AWS tarafında bir Client VPN Endpoint oluşturmanız gerekecek. Tabi ki gerekli izinleri oluşturabilmek için route table vasıtasıyla kuralları oluşturacağız. Son olarak yeni oluşturduğumuz VPN end point ile subnetleri ilişkilendirdikten sonra konsoldan Client VPN Endpoint konfiigürasyon dosyasını alarak VPN bağlantısını sağlayabilirsiniz. Bağlantıyı kurduktan sonra Internet Gateway ile S3 gibi internet üzerinden ulaşılabilen kaynaklara, Virtual Private Gateway ile on-premise sistemlerinize ve VPC peering sayesinde diğer VPC'lerinize ulaşabilirsiniz.

Biz VPN ile şifrelenmiş ama internet'i kullanan bir bağlantı sağladık. Şimdi gelelim son konumuz Direct Connect'e. Direct Connect ile data center ile AWS kaynakları arasında dedicated bir hat kuruyoruz. Bu sayede internet'ten tamamen izalasyon sağlıyoruz ve daha yüksek transfer hızlarına ulaşabiliyoruz. Yukarıdaki resimden de görebileceğiniz gibi 3 ana komponent'i var. Birincisi AWS region VPC içindeki veya dışındaki(S3, DynamoDB vs) kaynakları içerir. İkincisi Direct Connect Location, burada AWS direct connect router ve müşterinin router'ı bulunur. Üçüncüsü ise müşterinin on-premise sistemi. Bu hizmet henüz her yerde mümkün değil deyip bu bölümü bitirelim.

NOTE: NAT GW ve NAT Instance için elastic ip tanımlamıştık onları silelim yoksa ücret ödemek zorunda kalırsınız.