DynamoDB Global Tables
DynamoDB Global Tables
Bilgi kavramı insanlığın tarihi boyunca medeniyetin devamı niteliğindeki her projenin, teorinin, düşüncenin temelini oluşturmaktadır ve her zaman çok kıymetli bir unsur olarak tarih sahnesinde yerini korumuştur.
For knowledge, too, is itself power.
Bilgi güçtür.
Francis Bacon: Meditationes Sacrae
Bu yaklaşım aslında günümüz yazılım projeleri için de geçerlidir. Veri her zaman çok değerlidir, güvenli bir şekilde saklanmalı, felaket senaryolarında veri kaybı yaşanmamalıdır.
Verileri sakladığımız ve yönettiğimiz sistemler ise veritabanı (database) olarak adlandırılmaktadır. Standardize olmaya başladıkları zamanı çıkış noktaları olarak kabul edersek 1974’den beri veritabanları yazılım alanında kullanılmaktadır. Her alanda olduğu gibi veritabanları konusunda da farklı yayınlayıcılara ait ürünler ve farklı kullanım tiplerine uygun veritabanı çeşitleri bulunmaktadır.
Veritabanlarının çıkış noktasında SQL (Structured Query Language) kullanan ilişkisel veritabanları (relational databases) yer almaktadır. İlişkisel veritabanlarının güçlü oldukları bir alan - şemaları belirli, sürekli değişmeyen ve veri kalitesinin sürekli korunmasının gerektiği birbiriyle ilişkili veri gruplarını kolaylıkla yönetilebilir hale getirmesidir. Yeni milenyumun başlarında internetin de genişlemesi ile birlikte gelen devasa bilgi akışının karşısında ise bu teknolojinin bu alanda en doğru çözüm olmadığı anlaşılmıştı. Çünkü artık belirli bir şemaya uymayan, esneklik ihtiyacı duyan, dikey değil de yatay olarak büyüyebilecek veritabanlarına ihtiyaç duyulmaya başlanmıştı. Bu noktada SQL dışına çıkan NoSQL veritabanları hayatımıza girmeye başlamıştır.
NoSQL denildiğinde akla en çok gelen veritabanları arasında Redis, MongoDB, DynamoDB gibi çok yüksek performans veren sistemler bulunmaktadır. DynamoDB ise bulut (cloud) ortamında hazırlanmış, AWS’in getirdiği birçok yetkinliğe sahip extreme performance hedefli geliştirilmiş bir veritabanıdır.
DynamoDB’nin genel olarak özelliklerine baktığımızda on-demand modu dahilinde saniyeler içerisinde saniyede milyonlarca isteğe yanıt verebilecek bir esneklik kapasitesine sahip olduğunu, milisaniye bazında isteklere cevap verebildiğini, data streaming alt yapısı ile birlikte stream datalarını depolayabildiğini, partiQL desteklediğini, 35 güne kadar PITR (point-in-time-restore) desteklediğini görebiliriz.
DynamoDB’ye ait genel özellikler
AWS’in High Availability ve Resiliency gibi ilkelerine bağlı olarak AWS’de bir bölge (region) içerisinde çalışan servisler yapıları sebebiyle başka bir region içerisinde gerçekleşen sorunlardan etkilenmezler. DynamoDB de aslında bölgesel bir servis olması sebebiyle belirli bir region üzerinden istekleri karşılar. Burada latency bazında bazı endişeler yaşanmaya başlanabilir. Dünya çapında kullanılan ve NoSQL veri depoladığımız global bir mobil uygulamada, tüm trafiği tek bir bölgeye yönlendirmek aslında fiziksel uzaklıktan dolayı bir gecikme oluşturacaktır.
İstanbul ve çeşitli AWS Bölgeleri arasındaki ortalama gecikme miktarları
Bu problemle başa çıkabilmek için kullanılabilecek en kolay çözümlerden biri DynamoDB Global Tables seçeneğidir. Bu yöntemle oluşturulan DynamoDB tablosu seçilen ekstra AWS bölgelerine otomatik olarak replike edilmekte ve data consistency DynamoDB tarafından sağlanmaktadır. Global Tables içerisinde ‘latest writer wins’ yaklaşımı ile birlikte aynı alanın farklı kullanıcılar tarafından farklı bölgelerde güncellemesi durumunda en son güncelleme DynamoDB tarafından diğer tablolara senkronize edilmektedir.
DynamoDB Global Tables’ı aktif etmek için ise aşağıdaki adımlar izlenebilir.
1- Yeni bir tablo oluşturun veya halihazırda kullandığınız bir tablonuz varsa bu adımı atlayabilirsiniz.
2- Tablonuzun detay sayfasını açın ve Global Tables sekmesinde Create Replica butonuna tıklayın.
3- Replica oluşturmak istediğiniz bölgeyi seçin.
4- Global olarak kullanabileceğiniz, otomatik olarak scale olan, veri senkronizasyonu sağlayan veritabanı, dakikalar içinde kullanıma hazır.
Semih Alperen Kayaaltı
Buna benzer daha fazla içerik ve eğitim duyurularımız için bizi LinkedIn, Instagram ya da Twitter üzerinden takip edebilirsiniz. Yönetim.Academy markası olan AWS Eğitimi, temel seviyeden ileri seviyeye dek çeşitli ücretli-ücretsiz eğitimleriyle AWS ve hizmetleri üzerine binlerce öğrenci eğitmiştir.
Yazının tüm hakları Yönetim.Academy’e aittir. İzinsiz olarak, kaynak belirtilerek dahi alıntı yapılması ya da yazının tamamının başka yerde yayınlanması yasaktır.