• Sonuç bulunamadı

Colm MacCárthaigh Karışık parçalama kullanarak iş yükü yalıtımı

N/A
N/A
Protected

Academic year: 2022

Share "Colm MacCárthaigh Karışık parçalama kullanarak iş yükü yalıtımı"

Copied!
7
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Karışık parçalama kullanarak iş yükü yalıtımı

Colm MacCárthaigh

Karışık parçalama kullanarak iş yükü yalıtımı

Telif Hakkı © 2019 Amazon Web Services, Inc. ve/veya bağlı kuruluşları. Tüm hakları

saklıdır.

(2)

Bugün Amazon Route 53, dünyanın en büyük işletmelerinin ve en popüler web sitelerinin çoğunu barındırıyor ancak başlangıçta çok daha sıradandı.

DNS barındırmayı alma

AWS hizmet vermeye başladıktan kısa bir süre sonra, AWS müşterileri, Amazon Simple Storage Service (S3), Amazon CloudFront ve Elastic Load Balancing hizmetlerimizi etki alanlarının

“kökünde” yani sadece “www.amazon.com” gibi isimler için değil “www.amazon.com” gibi isimler için de kullanmak istediklerini açıkça belirttiler.

Bu çok basit görünebilir. Ancak, 1980'lerde yapılan DNS protokolündeki tasarım kararı nedeniyle bu, göründüğünden daha zordur. DNS, bir etki alanı sahibinin etki alanının bir kısmını barındırması için başka bir sağlayıcıya boşaltmasını sağlayan CNAME adlı bir özelliğe sahiptir.

Ancak bir etki alanının kök veya üst düzeyinde çalışmaz. Müşterilerimizin ihtiyaçlarını karşılamak için aslında müşterilerimizin etki alanlarını barındırmak zorundayız. Bir müşterinin etki alanını barındırdığımız zaman, Amazon S3, Amazon CloudFront veya Elastic Load Balancing için mevcut IP adresleri kümesi ne olursa olsun geri döndürebiliriz. Bu hizmetler sürekli olarak genişliyor ve IP adresleri ekliyor. Bu nedenle bu, müşterilerin etki alanı yapılandırmalarında da kolaylıkla doğrudan kodlayabilecekleri bir şey değil.

DNS barındırmak kolay bir iş değildir. DNS'de sorun varsa tüm bir işletme çevrimdışı olabilir.

Ancak, ihtiyacı belirledikten sonra sorunu Amazon'da olduğu gibi çözmek için acil olarak yola koyulduk. Küçük bir mühendis ekibi oluşturduk ve çalışmaya başladık.

DDOS saldırıları ile başa çıkmak

Herhangi bir DNS sağlayıcısına en büyük zorluklarının ne olduğunu sorarsanız onlar size bunun dağıtılmış hizmet engelleme (DDOS) saldırıları ile başa çıkmak olduğunu söyleyeceklerdir. DNS, UDP protokolünün üzerine kuruludur, bu da DNS isteklerinin internetin kanunsuz ortamlarının çoğunluğunda taklit edilebilir olduğu anlamına gelir. DNS aynı zamanda kritik bir altyapı olduğu için bu kombinasyon, işleri bozmaya çalışan ahlaksız aktörler, çeşitli nedenlerle kesintileri tetiklemeyi amaçlayan “vurucular” ve somut kişisel sonuçlar doğurabilecek ciddi bir suçu işlediklerinin farkında olmayan arada bir yanlış yönlendirilen huzursuzluk çıkaranlar için kendisini ideal bir hedef haline getiriyor. Sebep ne olursa olsun, her gün etki alanlarına karşı işlenen binlerce DDOS saldırısı vardır.

Bu saldırıları azaltmak için bir yaklaşım, büyük miktarda sunucu kapasitesi kullanmaktır. Her ne

(3)

için bu gereçlerin birçoğuna Amazon'da sahibiz ve başka ne temin edilebileceği konusunda donanım satıcılarıyla görüştük. Her bir Route 53 etki alanını tamamen kapsayacak kadar gereç satın almanın on milyonlarca dolara mal olacağını ve teslim edilmelerinin, kurulmalarının ve operasyonlarının gerçekleştirilmesinin programımıza aylar ekleyeceğini gördük. Bu, planlarımızın aciliyetine veya tutumlu olma çabalarımıza uymuyordu. Bu yüzden, bunları hiçbir zaman ciddi olarak göz önünde bulundurmadık. Gerçekten bir saldırı yaşayan etki alanlarını savunan kaynakları harcamak için bir yol bulmamız gerekiyordu. “İhtiyaçlar icatların anasıdır”

şeklindeki eski prensibe geri döndük. İhtiyacımız olan şey, az miktarda kaynak kullanarak hızlı bir şekilde dünya standartlarında, yüzde 100 çalışma süresiyle DNS hizmeti oluşturmaktı.

Buluşumuz karışık parçalama idi.

Karışık parçalama nedir?

Karışık parçalama basit ancak güçlüdür. Hatta, ilk fark ettiğimizden daha güçlüdür. Onu defalarca kullandık ve AWS'nin her müşteriye tek kiracılı bir deneyim sunan düşük maliyetli çok kiracılı hizmetleri sunmasını sağlayan temel bir model haline geldi.

Karışık parçalamanın nasıl çalıştığını görmek için önce sıradan parçalama ile bir sistemin nasıl daha ölçeklenebilir ve esnek hale getirilebileceğini düşünün. Sekiz çalışandan oluşan yatay bir biçimde ölçeklenebilir bir sistem veya hizmet düşünün. Aşağıdaki resim çalışanları ve onların isteklerini göstermektedir. Çalışanlar; sisteminizi oluşturan “şey” her şey -sunucular, kuyruklar veya veri tabanları olabilir.

Herhangi bir parçalama olmadan çalışan filosu bütün işleri yönetir. Her çalışan herhangi bir isteği yerine getirebilmelidir. Bu, verimlilik ve yedeklilik için mükemmeldir. Bir çalışan başarısız olursa diğer yedisi işin kontrolünü eline alabilir. Yani, sistem nispeten az miktarda boş kapasite gerektirir. Ancak, hataların belirli bir istek veya bir DDOS saldırısı gibi bir istek seliyle tetiklenebilmesi durumunda büyük bir sorun ortaya çıkar. Aşağıdaki iki resim böyle bir saldırının ilerleyişini göstermektedir.

(4)

Sorun, etkilenen ilk çalışanı çıkaracak, ancak daha sonra diğer çalışanlar devraldıkça onların arasında kademeli olarak ilerlemeye devam edecektir. Sorun, çalışanların tümünü ve tüm hizmeti çok hızlı bir şekilde çıkarabilir.

Bu tür bir hatanın etkisinin kapsamı “her şey ve herkes” olur. Tüm hizmet kapanır. Her müşteri etkilenir. Erişilebilirlik mühendisliğinde dediğimiz gibi: Bu uygun değildir.

Düzenli parçalama ile daha iyisini yapabiliriz. Filoyu 4 çalışan grubuna bölersek etki kapsamı için verimlilik ticareti yapabiliriz. Aşağıdaki iki resim, parçalamanın bir DDOS saldırısının etkisini nasıl sınırlayabileceğini göstermektedir.

(5)

Bu parçalama dünyasında etkinin kapsamı parçaların sayısıyla birlikte azalır. İşte burada dört parça ile, eğer bir müşteri bir sorunla karşılaşırsa o zaman onları barındıran parça ve bu parçadaki diğer tüm müşteriler etkilenebilir. Ancak, bu parça genel hizmetin sadece dörtte birini temsil etmektedir. Yüzde 25 etki, yüzde 100 etkiden çok daha iyidir. Karışık parçalama ile tekrar katlanarak daha iyisini yapabiliriz.

Karışık parçalama ile her biri iki çalışandan oluşan sanal parçalar yaratıyoruz ve müşterilerimizi veya kaynaklarımızı veya yalıtmak istediklerimizi o sanal parçalardan birine atıyoruz.

Aşağıdaki resim her biri iki çalışana atanan sekiz çalışan ve sekiz müşteriden oluşan bir örnek paylaşma düzenini göstermektedir. Normalde çalışanlardan çok daha fazla müşterimiz olur, ancak işleri daha küçük tutarsak takip etmesi daha kolay olacaktır. İki müşteriye odaklanacağız:

gökkuşağı müşterisi ve gül müşterisi.

Örneğimizde gökkuşağı müşterisini birinci ve dördüncü çalışana atıyoruz. Bu iki çalışanın kombinasyonu o müşterinin karışık parçasını oluşturuyor. Diğer müşteriler kendi iki çalışan karışımı ile farklı sanal parçalara gidecekler. Örneğin gül müşterisi aynı zamanda birinci çalışana atanır, ancak diğer çalışanı sekizinci çalışandır.

Çalışan bir ve çalışan dörde atanan gökkuşağı müşterisinin bir sorunu olursa (kötü niyetli bir istek ya da bir istek seli gibi), bu sorun o sanal parçayı etkileyecek, ancak diğer karışık parçalama alanlarını tamamen etkilemeyecektir. Aslında, başka bir karışık parçanın çalışanlarından en fazla biri etkilenecektir. İstek sahipleri hataya toleranslıysa ve hatadan sakınarak işini yapabiliyorsa (örneğin, yeniden denemelerle), aşağıdaki resimdeki gibi müşteriler veya kalan parçalardaki kaynaklar için kesintisiz hizmet devam edebilir.

(6)

Başka bir deyişle, gökkuşağına hizmet veren çalışanların tümü bir sorun ya da saldırı yaşarken, diğer çalışanlar hiç etkilenmez. Müşteriler için bu, gül müşterisi ile ayçiçeği müşterisinin her birinin gökkuşağı ile bir çalışanı paylaşmasına rağmen etkilenmeyeceği anlamına gelir. Gül müşterisi, çalışan sekizden hizmet alabilir ve ayçiçeği, aşağıdaki resimde görüldüğü gibi, çalışan altıdan hizmet alabilir.

Bir sorun olduğunda tüm hizmetin dörtte birini kaybedebiliriz, ancak müşterilerin veya kaynakların atanma şekli, karışık parçalama ile ilgili etki alanının çok daha iyi olduğu anlamına gelir. Sekiz çalışanla, iki çalışanın 28 farklı kombinasyonu var; bu da olası 28 karışık parça olduğu anlamına gelmektedir. Yüzlerce ya da daha fazla müşterimiz varsa ve her müşteriyi karışık bir parçaya tahsis edersek bir sorundan kaynaklanan etkinin kapsamı sadece 1/28’incidir. Bu, normal parçalamadan 7 kat daha iyidir.

Rakamların katlanarak arttığını ve çalışanlarınızın ve müşterileriniz arttığını görmek çok heyecan vericidir. Ölçeklendirme zorluklarının çoğu bu boyutlarda zorlaşır, ancak karışık parçalama bu durumda daha etkili hale gelir. Aslında, yeterli sayıda çalışanla birlikte müşterilerin olduğundan daha fazla karışık parça olabilir ve her müşteri yalıtılabilir.

(7)

bir karışık parçaya atarız. Bu rakamlarla, tam tamına 730 milyar olası karışık parça vardır. O kadar çok olası karışık parçamız var ki her etki alanı için tek bir karışık parça atayabiliriz. Aslına bakılırsa daha ileri gidebilir ve hiçbir müşteri etki alanının ikiden fazla sanal ad sunucusunu başka herhangi bir müşteri etki alanıyla paylaşmamasını sağlayabiliriz.

Sonuçlar muhteşem. Bir müşteri etki alanı bir DDOS saldırısı için hedeflenirse o etki alanına atanan dört sanal ad sunucusu trafikte artar, ancak başka bir müşterinin etki alanı bunu fark etmez. Kötü bir gün geçiren hedeflenen müşteriyi kabullenmeyiz. Karışık parçalama, hedeflenen müşteriyi özel saldırı kapasitesine göre tanımlayabileceğimiz ve yalıtabileceğimiz anlamına gelir. Bununla birlikte, kendi tescilli AWS Shield trafik temizleyiciler katmanımızı geliştirdik. Ayrıca, karışık parçalama, bu olaylar yaşanırken bile genel olarak Route 53 müşteri deneyiminin sorunsuz olmasını sağlamada büyük bir fark yaratır.

Sonuç

Diğer sistemlerimizin çoğuna karışık parçalama özelliğini yerleştirmeye devam ettik. Ek olarak, birden fazla katmanda ögeleri parçaladığımız ve böylece bir müşterinin müşterisini yalıttığımız yinelemeli karışık parçalama gibi iyileştirmelerle karşılaştık. Karışık parçalama son derece uyarlanabilir özelliğe sahiptir. Bu, mevcut kaynakları düzenlemek için akıllıca bir yoldur. O aynı zamanda genellikle ek bir ücret ödenmesini gerektirmez. Bu nedenle tutumluluk ve ekonominin sürdürebileceği büyük bir gelişmedir.

Karışık parçalamayı kendiniz kullanmayla ilgileniyorsanız açık kaynaklı Route 53 Infimakütüphanemize bakın. Bu kitaplık, kaynakları atamak ya da düzenlemek için kullanılabilecek çeşitli karışık parçalama uygulamaları içermektedir.

Referanslar

Benzer Belgeler

İster tek öğütücü pompası, ister komple pompa istasyonları veya bütün bir atık su sistemine ihtiyaç duyun; akıllı ve ekonomik şekilde en yakın pompa istasyonuna veya

Valsli değirmenlerde, özgül güç gereksinimi öteki değirmenlerden düşük olup: öğütülecek ürün cinsine, nem içeriğine öğütme derecesine, vals yapısına, devir

Anadolu Selçuklu devri Konya'sına ait zamanla toplanan taş ve ahşap eserlerin mimarî bütünlüğü ile baş- lıbaşına bir müze olan İnce Minare'- de teşhir

Çünkü orada bir alanda aynı alanın uzmanını yetiştiriyorsunuz ama bizim Eğitim Fakültesi gibi bir yerde sadece eski edebiyat, sadece yeni edebiyat, sadece halk

Aynı zamanda her bir sütun için elde eilen sayıların küçükten büyüğe doğru sıralanması da sayısal loto mantığına daha gerçekçi bir yaklaşım

1) denkleminin kökünü (bu denklem verilen sayının karekökünü bulma ile eşdeğerdir) Newton Raphson yöntemini kullanarak bulacak Matlab programını yazınız...

Aerosol şeklinde solunum yoluyla maruz kalındığında, 4-24 saat içinde genel güçsüzlük, ateş, eklem ağrısı, tüm solunum yollarında yangı, akciğer ödemi, solunum

Aklımdan akraba listesi, açık benzinciler, seyyar turşucular, alt kat kom- şu, muhtar, özel gün ve gecelerde turşu partisi verme potansiyeline sahip mahalle sakinleri, turşu