DynamoDB yerelde çalıştırılabilir mi?
Evet. AWS, DynamoDB'nin kendi makinenizde bir Docker imajı, bir Java çalıştırılabiliri ya da bir Apache Maven bağımlılığı olarak çalışan ücretsiz, indirilebilir sürümü olan DynamoDB Local'ı sunar. Web hizmetiyle aynı API'yi sunar, dolayısıyla çevrimdışı geliştirip test edebilir, sonra kodunuzu basitçe AWS'ye yöneltebilirsiniz.
Onu çalıştırmanın üç yolu
- Docker imajı — en yaygın seçim: tek bir
docker runve uç nokta yerel bir portta ayakta. - İndirilebilir arşiv — doğrudan başlattığınız bir Java uygulaması (bir JRE gerektirir).
- Apache Maven bağımlılığı — JVM test paketlerine gömün.
Neden yerelde geliştirmeli
Veritabanı bilgisayarınızda kendi kendine yeterlidir, dolayısıyla verim, veri depolama ve veri aktarım ücretlerinden tasarruf edersiniz — ve geliştirirken internet bağlantısına ihtiyacınız olmaz. Dağıtmaya hazır olduğunuzda yerel uç noktayı koddan kaldırırsınız ve kod DynamoDB web hizmetine yönelir.
Farklara dikkat
DynamoDB Local API'yi taklit eder, ama üretim motoru değildir — AWS, kullanım notlarında davranış farklarını belgeler (örneğin verim zorunlu kılınmaz). Onu bir performans modeli olarak değil, işlevsel bir geliştirme/test dublörü olarak görün.
Ölçtüğümüz üç sapma
Hata sayfalarımızda alıntılanan hataları yeniden üretmek için sürekli çalışan bir DynamoDB Local konteyneri tutuyoruz; bu da düzenli olarak kenarlarına çarptığımız anlamına geliyor. Yeşil bir yerel teste güvenmeden önce bilmeye değer üç tanesi var.
Sağlanan verim hiç zorunlu kılınmıyor. 1 RCU ile bir tablo oluşturduk, 3,5 KB'lık tek bir öğe yazdık ve SDK yeniden denemeleri kapalıyken (maxAttempts: 1) onu bir döngüde güçlü tutarlı olarak geri okuduk:
reads=5000 ok=5000 errors=0 elapsed=2.5s rate=1997/sBeş bin okuma, sıfır kısıtlama, bir birim için kapasite sağlanmış bir tabloya karşı saniyede kabaca 2.000 okuma birimi sürdürüldü. Aynı döngü canlı hizmete karşı 49. okumada ProvisionedThroughputExceededException fırlatır. Bir kapasite hatası yerelde başarısız olamaz.
Bir hata adını değiştiriyor. Aynı PartiQL INSERT'ünü iki kez çalıştırın; DynamoDB Local Duplicate primary key exists in table mesajıyla DuplicateItem yanıtı verir. Hizmet ise There was an attempt to insert an item with the same primary key as an item that already exists in the DynamoDB table mesajıyla DuplicateItemException yanıtı verir. Ada göre dallanan hata işleme yerelde geçer ve üretimde ıskalar.
Bazı API'ler basitçe yoktur. ExportTableToPointInTime şu yanıtı verir:
UnknownOperationException: An unknown operation was requested.Bu, aynı çağrı için hizmetin hatası değildir; dolayısıyla PointInTimeRecoveryUnavailableException üzerinde koruma yapan bir kod yolu da yerelde çalıştırılamaz.
Daha derine inin
DynamoDB Local kılavuzu kurulumu adım adım anlatır, yerel & LocalStack bağlantı kılavuzu ise bir GUI'nin ona nasıl yöneltileceğini gösterir — DynoTable yerel uç noktalara tam olarak AWS'ye bağlandığı gibi bağlanır. İlk sorgunuzu expression builder ile test edin.
Kaynaklar
- Setting up DynamoDB local (downloadable version) — Amazon DynamoDB Developer Guide
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide
- Deploying DynamoDB locally on your computer — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.
Üç sapma 2026-07-28 tarihinde DynamoDB Local 3.3.0'a (amazon/dynamodb-local, Corretto 17.0.17) karşı, Node v24.18.0 üzerinde @aws-sdk/client-dynamodb 3.1095.0 ile yeniden üretildi. Yukarıdaki her çıktı satırı motorun kendi çıktısıdır, düzenlenmemiştir.