AWS DynamoDB: Hızın Ötesinde

Oğuzhan Purtaş
Miuul AWS Community
8 min readApr 12, 2024

--

Bir uygulamanın kalbi olan veritabanı teknolojisi, performans ve güvenilirlik talepleriyle sürekli evrilmektedir. AWS’nin DynamoDB’si, bu evrime hızlı ve ustalıkla yanıt veriyor. Geliştiricilere sadece aradıkları hızı ve ölçeklenebilirliği değil, aynı zamanda sürekli genişleyen bir kapasite ve esneklik sunan bu servis, modern veritabanı çözümlerinin sınırlarını zorlamaktadır. Gelin, DynamoDB’nin nasıl çalıştığını ve uygulamalarınızı nasıl dönüştürebileceğini keşfedelim.

Anahtar Özellikler:

  • Hızlı Erişim: Tek haneli milisaniye gecikme süreleriyle, veriye anında erişim imkanı sağlar.
  • Otomatik Ölçeklendirme: Kaynak kullanımınıza göre veritabanı boyutunuzu otomatik olarak ayarlayarak yönetim yükünüzü azaltır.
  • Maliyet Etkinliği: Kaynak optimizasyonu sayesinde, yalnızca kullandığınız kadar ödersiniz.

AWS DynamoDB, gerçek zamanlı uygulamalarınız için mükemmel bir altyapı sunar.

Tam Yönetim Kontrolü:

AWS’nin sunmuş olduğu DynamoDB hizmeti, altyapı yönetimi derdini tamamen ortadan kaldırıyor. Donanım sağlama, kurulum ve bakım işlemleri AWS tarafından ele alınırken, siz tamamen uygulamanızın geliştirilmesine odaklanabilirsiniz.

Küresel Çoğaltma ve Yüksek Performans:

DynamoDB Global Tablolar, düşük gecikme süreleriyle verilerinizi birden fazla AWS bölgesine çoğaltmanıza olanak tanır.

AWS Ekosistemi ile Entegrasyon:

AWS Lambda, Amazon S3, Amazon Redshift gibi diğer AWS hizmetleriyle sorunsuz bir şekilde entegre olur.

Kapasite Birimi Limitleri:

Okuma Kapasitesi Birimi (RCU): Her bir okuma kapasitesi birimi, saniyede iki öğe (satır) okuyabilir ve bu öğelerin toplam boyutu 4KB’yi geçemez. Bu, hızlı okuma işlemleri için etkili bir veri akışı sağlar ve düşük gecikme süreleriyle anında veri erişimi sunar.

Yazma Kapasitesi Birimi (WCU): Her bir yazma kapasitesi birimi, saniyede bir öğe yazabilir ve bu öğenin boyutu 1KB’yi geçemez. Bu, veri yazma işlemlerinin verimliliğini ve tutarlılığını garantiler.

Tablo Seviyesi Kotalar:

  • RCU kotası varsayılan olarak 40.000 birimdir.
  • WCU kotası varsayılan olarak 40.000 birimdir.

Her bir kapasite birimi, belirli bir maliyet üzerinden ($0.65 gibi) kiralama esasına göre çalışır. Böylece kullanıcılar, gerçek kullanımlarına göre ödeme yaparlar.

Esnek Şema ve PartiQL İle Dinamik Veritabanı Yönetimi:

AWS DynamoDB, veritabanınızın evrimleşen ihtiyaçlarına uyum sağlamak için esnek bir şema yapısı sunar. Her öğe, farklı ve çeşitlendirilmiş nitelikler taşıyabilir, bu da veritabanınızın büyümesi ve değişmesi sürecini doğal bir şekilde destekler. PartiQL’nin SQL tarzı sorgulama kapasitesi ise ilişkisel veritabanı kullanıcılarına aşina oldukları deneyimi sunarak geçişleri kolaylaştırır. Örnek bir PartiQL sorgusu:

select * from deneme where id = 3

Bu sorgu, ‘deneme’ tablosunda ‘id’ değeri 3 olan öğeleri seçer ve kullanıcıya döndürür. Ayrıca, DynamoDB’nin anahtar-değer tabanlı yapısı sayesinde, belirtilen sütun veritabanında yoksa, yeni veri girdisi otomatik olarak sütun eklenmesini tetikler. Bu özellik, veritabanınızın, yeni veri tipleri ve yapılarına esnek bir şekilde adaptasyonunu mümkün kılar ve böylece uygulamanızın sürekli değişen gereksinimlerini karşılar.

AWS Region İçerisinde Endpoint’ler Aracılığıyla Güvenli Erişim:

DynamoDB’ye güvenli erişim, AWS Region içerisinde oluşturulan özel uç noktalar (endpoints) aracılığıyla sağlanır. Bu uç noktalar, veri tabanına erişim için gerekli ağ geçitleri (gateways) ve ağ arayüzleri (network interfaces) gibi bileşenleri içerir.

Uzaktan Erişim ve NoSQL Workbench:

DynamoDB’nin güçlü ve kullanıcı dostu araçlarından biri de NoSQL Workbench’tir. Bu araç, geliştiricilere uzaktan ve kolay bir şekilde DynamoDB veritabanlarına bağlanma olanağı sunar.

NoSQL Workbench ile Bağlantı Kurmak:

  • Uzaktan bağlantı kurmak için NoSQL Workbench kullanabilirsiniz. Bu, veritabanı yapılarınızı modelleme, veri keşfi ve sorgu oluşturma işlemlerini basitleştirir.
  • AWS kimlik bilgilerinizin (credentials) NoSQL Workbench’te ayarlanmış olması gerekir. Bu kimlik bilgileri, AWS hesabınız ve veritabanınız arasında güvenli bir bağlantı kurulmasını sağlar.

NoSQL Workbench’in Kurulum ve Ayarları İçin Rehber

Kurulum Rehberi

Adım 1: DynamoDB’de Tablo Oluşturma

  1. AWS Management Console’a Giriş Yapın: İlk olarak, AWS hesabınıza AWS Management Console üzerinden giriş yapın.
  2. DynamoDB Hizmetini Seçin: Sol taraftaki menüden ‘DynamoDB’ seçeneğine tıklayın. Bu sizi DynamoDB’nin yönetim paneline yönlendirecektir.
  3. Yeni Tablo Oluşturun: Yönetim panelinde, tablolar listesinin üstündeki ‘Create table’ butonuna tıklayın.

Adım 2: Tablo Detaylarını Ayarlama

  1. Tablo Adını Girin: ‘Table name’ alanına, tablonuzu tanımlayacak bir isim girin; örneğin ‘binance’.
  2. Partition Key Belirleyin: Bir ‘Partition key’ (bölüm anahtarı) tanımlayın. Bu, tablonuzun birincil anahtarının bir parçası olacak ve veri alımında önemli bir rol oynayacak. Genellikle, benzersiz bir tanımlayıcı olması tercih edilir. Bu örnekte ‘id’ alanı, bir ‘String’ (dizi) tipi olarak seçilmiştir.
  3. Sort Key Seçin (İsteğe Bağlı): Bir ‘Sort key’ (sıralama anahtarı) ekleyebilirsiniz. Bu, birincil anahtarın ikinci bölümü olarak işlev görür ve aynı bölüm anahtarını paylaşan öğeler arasında sıralama veya arama yapmanıza olanak tanır.
  4. Tablo Ayarlarına Karar Verin: ‘Default settings’ (varsayılan ayarlar) seçeneği hızlı bir şekilde tablo oluşturmanızı sağlar, ancak özel ihtiyaçlarınız için ‘Customize settings’ (ayarları özelleştir) seçeneğini tercih edebilirsiniz.

Adım 3: Kapasite Ayarlarını Yapılandırma

  1. Veritabanınızın beklenen iş yükünü yönetmek için gereken kaynakları ve bunların maliyetini anlamanızı sağlar

Adım 4: Kapasite Modunu ve Güvenlik Ayarlarını Konfigüre Etme

  1. Kapasite Modunu Seçin: İki seçenek arasında tercih yapabilirsiniz:
  • Provisioned: Önceden belirlenmiş okuma/yazma kapasitesi ayırarak maliyetlerinizi yönetebilirsiniz.
  • On-demand: Uygulamanızın gerçekleştirdiği okuma ve yazma işlemleri için ödeme yaparak faturalandırmayı basitleştirir.
  1. Otomatik Ölçeklendirmeyi Ayarlayın: Eğer ‘Provisioned’ seçeneğini tercih ettiyseniz, otomatik ölçeklendirmeyi aktif hale getirebilirsiniz. Bu, gerçek zamanlı trafik modellerine göre kapasitenizin dinamik olarak ayarlanmasını sağlar.
  2. Minimum ve Maksimum Kapasite Birimlerini Belirleyin: Okuma ve yazma için minimum ve maksimum kapasite birimlerini girin. Örneğin, minimum 1 okuma ve maksimum 5 okuma kapasitesi birimi.
  3. Hedef Kullanım Yüzdesini Ayarlayın: Sistem, belirlediğiniz hedef kullanım oranına ulaşmaya çalışacak şekilde kapasite birimlerini ayarlar. Burada %70 hedef kullanım belirlenmiş.
  1. Veri Şifrelemesini Yönetin: ‘Encryption at rest’ seçeneği ile verilerinizin dinlenme durumunda iken şifrelendiğinden emin olun. AWS, DynamoDB için varsayılan olarak veri şifrelemesini yönetir ve ekstra bir ücret talep etmez.

Adım 5: İleri Seviye Ayarlar ve Tablo Oluşturma

  1. İndeksler Oluşturun (İsteğe Bağlı): Tablo performansını ve erişimini optimize etmek için Global Secondary Index (GSI) veya Local Secondary Index (LSI) ekleyebilirsiniz.
  2. Diğer Tablo Özelliklerini Ayarlayın: Öğe silme politikası (Deletion protection), otomatik yedekleme ayarları (Backup) ve veri ithal/ihracat ayarları (Import/Export) gibi diğer tablo özelliklerini yapılandırın.
  3. Tablo Oluştur’u Tıklayın: Tüm ayarları gözden geçirdikten sonra, ‘Create table’ düğmesine tıklayarak tablo oluşturma işlemini başlatın.

Adım 6: IAM Kullanıcısı Oluşturma ve Yapılandırma

DynamoDB tablonuzu yönetmek için gereken AWS Identity and Access Management (IAM) kullanıcısını oluşturma adımları:

  1. IAM Yönetim Paneline Git: AWS Management Console içerisinden ‘Services’ menüsünden ‘IAM’ seçeneğini bulun ve tıklayın.
  2. Kullanıcılar Bölümünü Açın: Sol taraftaki menüden ‘Users’ sekmesini seçin. Bu, AWS hesabınızdaki mevcut IAM kullanıcılarının listesini gösterecektir.
  3. Yeni Kullanıcı Oluştur: ‘Create user’ butonuna tıklayın. Bu, yeni bir IAM kullanıcısı oluşturma işlemine başlamanızı sağlar.

Adım 7: IAM Kullanıcısına İzinler Atama

  1. İzin Seçeneklerini Belirleyin: Kullanıcıya izinler atarken, onu mevcut bir gruba ekleyebilir, bir başka kullanıcının izinlerini kopyalayabilir veya politikaları doğrudan atayabilirsiniz.
  2. Politikaları Direkt Atayın: ‘Attach policies directly’ seçeneğini kullanarak, yeni kullanıcınıza gerekli DynamoDB izinlerini verecek politikaları belirleyin.
  3. DynamoDB Tam Erişim Politikası: Kullanıcının DynamoDB ile ilgili tüm işlemleri gerçekleştirebilmesi için ‘AmazonDynamoDBFullAccess’ politikasını aratın ve işaretleyin.
  4. Politikaları Filtreleyin ve Ekleyin: Arama çubuğuna ‘dynamodb’ yazarak gerekli politikaları filtreleyin ve listelenen politikalardan uygun olanları seçin.
  5. Politikayı Seçin: ‘AmazonDynamoDBFullAccess’ politikasını bulun ve onay kutusunu işaretleyerek bu politikayı kullanıcınıza atayın.

Adım 8: Programatik Erişim İçin Erişim Anahtarları Oluşturma

  1. Güvenlik Kimlik Bilgilerine Git: Oluşturduğunuz IAM kullanıcısının özet sayfasında, ‘Security credentials’ sekmesine tıklayın.
  1. Erişim Anahtarı Oluştur: ‘Access keys’ bölümünde ‘Create access key’ seçeneğini kullanarak yeni bir erişim anahtarı oluşturun. Bu anahtarlar, AWS CLI, API’ler ve diğer geliştirme araçları üzerinden programatik erişim için kullanılacak.
  1. Kullanım Durumunu Belirleyin: Erişim anahtarınızın kullanım durumunu seçin. Bu, anahtarın hangi amaçla kullanılacağını belirler — örneğin, AWS CLI, yerel kod, bir AWS hesap servisi üzerinde çalışan uygulamalar veya AWS dışında çalışan uygulamalar için olabilir.
  1. En İyi Uygulamaları Onaylayın: AWS’nin önerdiği en iyi uygulamaları ve alternatifleri inceleyin. AWS, programatik erişim için uzun süreli kimlik bilgileri yerine kısa süreli kimlik doğrulama araçları kullanmanızı önerir.
  1. Anahtarları İndirin: Erişim anahtarı oluşturulduğunda, görüntülenen açılır pencerede belirtilen ‘Access key ID’ ve ‘Secret access key’i içeren bir dosya indirin. Bu bilgileri güvenli bir yere kaydedin, çünkü ‘Secret access key’ sadece bu anda gösterilecektir ve daha sonra tekrar erişilemez.

Adım 9: AWS CLI ve NoSQL Workbench ile DynamoDB’ye Erişim

AWS CLI Yapılandırma:

  1. AWS CLI Yapılandırın: Terminalinizi açın ve aws configure komutunu girin. Bu komut, AWS CLI için erişim anahtarlarınızı ve tercih edilen bölgenizi ayarlamanıza olanak tanır.
  2. Erişim Anahtarlarını Girin: Önceden indirdiğiniz ‘Access key ID’ ve ‘Secret access key’i ilgili alanlara girin. Bölge kodunu ve çıktı formatını da belirttikten sonra, CLI kullanıma hazır hale gelir.

NoSQL Workbench İle Tabloya Erişim:

  1. NoSQL Workbench Açın: AWS NoSQL Workbench uygulamasını başlatın.
  2. Bağlantı Kurun: ‘Operation builder’ bölümünden veya sol menüden bağlantı ayarlarınıza gidin. ‘Connection’ bölümünde tablonuzun bulunduğu AWS bölgesini seçin ve tablonuzun ismini girin.
  3. Tablo Operasyonlarını Yapılandırın: DynamoDB’deki tablonuz için gerekli sorgu ve işlemleri oluşturun. Örneğin, verileri görüntülemek, sorgulamak veya yeni veri eklemek için PartiQL veya arayüz tabanlı işlemleri kullanabilirsiniz.
  4. Tablo Verilerini İnceleyin: Yapılandırdığınız işlemleri çalıştırdığınızda, NoSQL Workbench sonuçları size gösterecektir. Bu sayede tablonuzun mevcut durumunu gözlemleyebilir ve gerekli analizleri yapabilirsiniz.

Adım 10: DynamoDB Tablosuna Veri Ekleyip Kontrol Etme

  1. AWS Management Console Üzerinden Tabloya Veri Ekleme:
  • DynamoDB hizmetine gidin ve ‘Tables’ listesinden tablonuzu seçin.
  • ‘Explore items’ sekmesine gidin ve ‘Create item’ düğmesine tıklayın.
  • Yeni bir öğe oluşturun. ‘Attribute name’ alanına ‘id’ girin ve değer olarak benzersiz bir değer (örneğin, 1) atayın.
  • ‘Create item’ butonuna basarak veri eklemeyi tamamlayın.
  1. NoSQL Workbench Kullanarak Veri Ekleme ve Kontrol Etme:
  • NoSQL Workbench uygulamasını açın ve ‘Operation builder’ sekmesine gidin.
  • Bağlantı ayarlarınızı kontrol edin ve tablonuzu seçin.
  • ‘Scan’ veya ‘Query’ operasyonları kullanarak tablonuzda mevcut öğeleri görüntüleyin.
  • İşlemleri çalıştırın ve tablonuza eklediğiniz verinin sonuçlarda göründüğünü doğrulayın.

Buraya kadar eşlik eden herkese teşekkürler.🙏🏻❤️

Çalışmalarımı yakından takip etmek ve iletişime geçmek için:

https://www.linkedin.com/in/mrpurtas/

Bir sonraki yazımda görüşmek üzere…

Teşekkürler!

--

--