๐ŸฆˆRDS

AWS Database

Veritabanฤฑ, Temelde iรงerisinde bir ve ya binlerce yapฤฑsal tablolar yapฤฑp, iรงerisine veri doldurduฤŸumuz uygulamalardฤฑr. Belirli bir formatta veriyi saklamaya ve kendi รถzel dilinde yapฤฑlan sorgularla bu saklanan veriden cevaplar รงฤฑkarmaya ve aynฤฑ zamanda bu veriye yeni eklemeler yapmaya yarayan uygulamalarฤฑn ortak adฤฑdฤฑr.

Veritabanlarฤฑ 2'ye ayrฤฑlฤฑr.

1- Relational database (iliลŸkisel)

  • Tablo tabanlฤฑdฤฑr.

  • HiyerarลŸik ve iliลŸkisel veriler iรงin uygun.

  • ร–n tanฤฑmlฤฑ ลŸema gerektirir.

  • Dikey geniลŸler.

  • SQL dilini destekler.

  • KarmaลŸฤฑk sorgularฤฑ destekler.

  • Join iลŸlemine imkan verir.

  • Yรผksek iลŸlem kapasitesi saฤŸlar.

  • En eski ve en รงok kullanฤฑlan database tipidir. Verileri kolonlar ve satฤฑrlar halinde tablolar iรงerisinde barฤฑndฤฑrฤฑyor.

  • Bu SQL tipine iliลŸkisel denilmesinin sebebi tablolarฤฑn kendi aralarฤฑnda iliลŸki-baฤŸlantฤฑ kurup, ortak sonuรงlar รงฤฑkarabilmesidir.

  • ฤฐki ve ya daha fazla tablodaki satฤฑrlarฤฑ aralarฤฑnda ilgili bir sรผtuna gรถre birleลŸtirmek iลŸlemine join denilmektedir.

2- Non-relational database

  • Dรถkรผman tabanlฤฑ.

  • DaฤŸฤฑtฤฑk ve bรผyรผk veri setlerine uygun.

  • ลžema dinamiktir.

  • Yatay geniลŸler.

  • SQL dilini desteklemez.

  • Daha temel ve basit sorgularฤฑ destekler.

  • Join iลŸlemine imkan saฤŸlamaz.

  • Tek dize iลŸlem kapasitesi saฤŸlar.

  • Veriler tablolarda deฤŸil, dรถkรผmanlarda anahtar-veri eลŸlikleri halinde tutuluyor.

  • Tablo yok, koleksiyon denilen iรงerisinde json formatฤฑnda veri tutan dรถkรผmanlar mevcut.

  • Dinamik olarak, kodun iรงerisinde istediฤŸin veriyi, istediฤŸin veri tipini bir ortalama yazabiliyoruz.

  • Join iลŸlemi yok, karmaลŸฤฑk sorgu yok.

AWS hem SQL hem de NoSQL yรถnetilebilen veri tabanฤฑ hizmeti sunmaktadฤฑr. Yรถnetilen veri tabanฤฑ hizmeti olarak RDS :

  • MSSQL

  • Oracle

  • MYSQL

  • MariaDB

  • PostgreSQL

  • Amazon Aurora

Gibi servisleri kullanma imkanฤฑ sunmaktadฤฑr.

NoSQL tarafฤฑnda ise, DynamoDB hizmetini AWS bize sunuyor.

RDS AWS tarafฤฑnda yรถnetilen DB servisi hizmetidir. Yรถnetilen kฤฑsmฤฑ, veritabanฤฑnฤฑn kurulumu, kaynak yรถnetimi, bakฤฑm iลŸlemlerinin AWS tarafฤฑndan yapฤฑlฤฑyor olmasฤฑdฤฑr. Veritabanฤฑ dizayn ve veri manipรผlasyon iลŸlemleri bize aittir. Ek olarak Aurora mysql ve postgresql veritabanฤฑ moturunu destekliyor.

RDS Kullanmak iรงin,

  • Hangi DB uygulamasฤฑnฤฑ kullanacaksak bunu seรงiyoruz.

  • Ardฤฑndan DB servisimizin kaynaklarฤฑnฤฑ seรงiyoruz.

  • Disk tipini seรงiyoruz (disk i/o รถnemli)

RDS ร–zellikleri,

  • Instance start-stop desteฤŸi var. 7 gรผn sonra instance terminate olur.

  • Tek butona tฤฑklayฤฑp, instance boyutunu bรผyรผtรผp ve ya kรผรงรผltebiliriz.

  • Kesintisiz depolama imkanฤฑ.

  • Otomatik bakฤฑm ve gรผncelleme.

  • Otomatik yedekleme, manuel yedekleme, snapshot ve snapshot'dan yeni database oluลŸturmak.

  • Gรผnรผn istenilen anฤฑna yedekten dรถnme imkanฤฑ.

Multi AZ,

  • Veri tabanฤฑnฤฑn aynฤฑ region iรงerisindeki senkron bir kopyasฤฑ.

  • Aktif-Pasif cluster.

  • Otomatik failover imkanฤฑna sahip.

  • Kesintisiz รงalฤฑลŸma ve felaketten kurtarma senaryolarฤฑ iรงin.

  • Performans artฤฑลŸฤฑ saฤŸlamฤฑyor.

Read Replica,

  • Veritabanฤฑnฤฑn aynฤฑ ve ya farklฤฑ region'da oluลŸturabileceฤŸimiz bir ve ya birden fazla asenkron kopyasฤฑ.

  • Bu bir cluster deฤŸil.

  • Read only bir kopya.

  • Performans artฤฑลŸฤฑ saฤŸlamak iรงin.

EฤŸer amacฤฑmฤฑz performans ise, Read replica mantฤฑklฤฑ seรงenektir. Amacฤฑmฤฑz kesintisiz - saฤŸlam altyapฤฑ ise, multi AZ mantฤฑklฤฑ bir seรงenektir.

RDS Servisi OluลŸturmak,

  • RDS > Create Database

  • Hangi DB kullanacaksak, bunu seรงiyoruz. Misal Mysql.

  • Next

  • DB Engine versiyonunu seรงiyoruz.

  • DB instance class seรงiyoruz. Hangi tip kaynaklarda DB istediฤŸimizi soruyor.

  • Allocate Storage. Disk Alanฤฑ seรงiyoruz.

  • Storage Type, Disk tipini seรงiyoruz.

Settings,

  • DB instance idenfier : OluลŸturacaฤŸฤฑmฤฑz DB'nin isimini giriyoruz.

  • Storage Type, Disk tipini seรงiyoruz.

  • Master username, Database yetkili kullanฤฑcฤฑsฤฑnฤฑn oluลŸturulmasฤฑnฤฑ istiyor. Buraya DB kullanฤฑcฤฑ ismini giriyoruz. Misal : admin

  • Master password, Kullanฤฑcฤฑmฤฑzฤฑn ลŸifresini oluลŸturuyoruz.

  • Next

VPC Ayarlarฤฑ,

  • Public Accesibilty : Yes, Tรผm dรผnyadan eriลŸme aรงฤฑk. Bรถylelikle public bir IP alacak. No, seรงersek eฤŸer, sadece bulunduฤŸu VPCden eriลŸlebilir.

  • VPC Sec Group, ister mevcut, istersek yeni bir sec grup yaratabiliriz.

Database Options,

  • Dbname, database ismini giriyoruz.

  • Port, Dilersek farklฤฑ bir port yazabilir, dilersek boลŸ bฤฑrakฤฑp default kullanabiliriz.

  • DB Parameter group : Default

  • IAM DB Auth : Disable, Normal mysql kullanฤฑcฤฑsฤฑ ve ลŸifre ile dbye baฤŸlanabiliriz. Enable ettiฤŸimiz de, IAM de yaratฤฑlan kullanฤฑcฤฑlar bu db รผzerinde yetkilendirebiliriz.

Backup,

  • Kaรง gรผn geriye dรถnรผk backup alacaksak, bunu belirtiyoruz.

  • Backup Window, yedek ne zamanlar alฤฑnmalฤฑ? Select windows diyerek bir zaman seรงebiliriz.

  • Duration , Kaรง saate kadar iลŸini bitirmeli?

Monitoring,

  • ฤฐzlemeyi aรงฤฑp, kapatabiliriz.

Log Exports,

  • Hangi log tipini cloudwatch servisine gรถndereceฤŸimizi soruyor.

Maintenance,

  • Otomatik minรถr updateler yapฤฑlsฤฑn mฤฑ?

  • Maintenance Window, Ne zaman minรถr updateler kontrol edilsin?

  • Deletion Protection, Enable dersek, RDS'i manuel olarak silemeyiz.

  • Create

DB oluลŸturulmasฤฑ 5 dakikayฤฑ bulabilir. Yaratฤฑlan instance SSH ile baฤŸlanamayฤฑz. Bu instance AWS'ye aittir Sadece SQL client ile baฤŸlantฤฑ kurabiliriz. DB Sec Group รผzerinden bu DB iรงin gerekli izinleri inbound rule'da gรถrebiliriz. Databases sekmesinde "endpoint" kฤฑsmฤฑnda yazan dns name ile DBye baฤŸlanabiliriz. BaฤŸlanฤฑrken SQL client ugulamarฤฑndan yararlanabiliriz.

RDS Yapฤฑlandฤฑrma Sekmeleri,

Performance insights : DB performasฤฑna yรถnelik istatisliklerini gรถrebiliriz.

Snapshots : Alฤฑnan yedekleri gรถrebileceฤŸimiz kฤฑsฤฑm. Otomatik backup yanฤฑ sฤฑra manuel olarak da yedekleme iลŸlemini baลŸlatabiliriz.

Automated Backups : Backuplarฤฑn nasฤฑl hangi zamanlarda alฤฑndฤฑฤŸฤฑnฤฑ gรถrรผyoruz.

Reserved Instance : Rezerve edilmiลŸ kaynaklar alabiliyoruz.

Subnet Groups : DB'mizin kayฤฑtlฤฑ olduฤŸu subnet grubu.

Parameter groups : DB mizin, ekleyebileceฤŸimiz modรผlleri, ayarlamalarฤฑnฤฑ seรงebiliyoruz.

Option Group : DB iรงin seรงebileceฤŸimiz ek รถzellikler.

Events : DBnin geรงmiลŸe ait loglarฤฑnฤฑ gรถrebiliriz.

Events Subs : ร–nemli olaylarฤฑ mail gรถndermesini istiyorsak, buradan ayarlayabiliriz.

Recommendations : AWS nin DBmiz iรงin bize sunduฤŸu รถneriler bu kฤฑsฤฑmda bulunuyor.

Actions Kฤฑsmฤฑ,

  • Create Read Replica : Read replika yaratabiliriz.

  • Create Aurora Read Replika : Aurora DB kullanฤฑyorsak, read replika oluลŸturabiliriz.

  • Migrate snapshots : Mevcut DBmizi seรงtiฤŸimiz farklฤฑ bir DB engine รงevirmemize yarฤฑyor.

Restore iลŸlemi ile yeni bir DB instance yaratฤฑlarak olmaktadฤฑr. Mevcut DBnin รผzerine yedek yazฤฑlmaz.

Latest restoreble tpye : son alฤฑnan yedeฤŸe geri dรถnmek.

Custom : ฤฐstediฤŸimiz bir zaman dilimine dรถnebiliriz.

RDS veritabanlarฤฑna IP adreslerinden eriลŸilemez. DNSname kullanarak eriลŸilir. Bu dns ismine databases altฤฑnda instance'nฤฑn รผzerine tฤฑklayฤฑp "endpoint" kฤฑsmฤฑndan gรถrebiliyoruz.

Modify > Multi AZ deployment > Yes > Contiune > Apply immendatly > modifydb instance : Bรถylelikle veritabanฤฑmฤฑzฤฑ multi az olarak ayarladฤฑk.

Multi AZ : DB'mizin bir kopyasฤฑnฤฑ baลŸka bir AZye alฤฑyor. Ana sunucuda sorun olduฤŸunda, diฤŸeri devreye girecek. Aktif-pasif รงalฤฑลŸacaktฤฑr. Bรถylelikle ana sunucuda yapฤฑlan her deฤŸiลŸiklik pasif sunucuya da yansฤฑr.

Read Replica oluลŸturmak,

  • DB seรง > Actions > Create read replika

  • Destination Region > DB mizin, nerede hangi region'da aynฤฑsฤฑnฤฑ oluลŸturmak istiyoruz?

  • DB instance identifiler : veritabanฤฑmฤฑzฤฑ seรงiyoruz. misal, calisanlar_db

  • DiฤŸer ayarlar default kalabilir.

  • Create read replika

Read replika sunucumuza eriลŸmek iรงin sec-group ayarฤฑ yapฤฑlmalฤฑ. Read replika sunuculardan okuma yapฤฑlฤฑr. Veri girilmez. DBmizi sildiฤŸimiz zaman otomatik backuplarฤฑn tamamฤฑ silinir. Manuel olarak bizim aldฤฑklarฤฑmฤฑz (snaphot) silinmez. Dilersek ileride manuel aldฤฑฤŸฤฑmฤฑz snapshotlarฤฑ kullanarak yeni bir DB yaratabiliriz.

Redshift - Veri Ambarฤฑ

Veri ambarฤฑnda bulunan tรผm verileri analiz etmemize yarar. Mevcut veri analizi yapabildiฤŸi gibi, S3de de bulunan verileri de analiz etmemize yarar.

Online transaction processing,

  • Veri tabanฤฑ.

  • Veri giriลŸ ve veri manipรผlasyonu.

  • Operasyonel gรผnlรผk veri iลŸlemleri iรงin.

  • Veri analiz sorgularฤฑnฤฑ รงalฤฑลŸtฤฑrmak, veri tabanฤฑnฤฑn performansฤฑnฤฑ dรผลŸรผrรผyor ve mevcut iลŸ akฤฑลŸฤฑnฤฑn yavaลŸlamasฤฑna neden oluyor. Mevcut verileri saklamak iรงin bu seรงeneฤŸi kullanabiliriz.

Online analytical processing,

  • Veri ambarฤฑ (redshift)

  • Veri analizi.

  • Konsolide edilmiลŸ birden fazla kaynaktan gelen veri ile รงalฤฑลŸabilir.

  • OluลŸan verileri analiz etmek iรงin kullanabiliriz.

Analiz isteฤŸini SQL sorgusu halinde master node'a gรถnderir. Master node compute node'lara gรถnderir, gelen cevabฤฑ iลŸ zekasฤฑ yazฤฑlฤฑmฤฑ ile gรถrsel bir grafiฤŸe dรถnรผลŸtรผrรผr ve kullanฤฑcฤฑya sunar.

Maneger node รผcretsizdir.

DynamoDB

  • ฤฐliลŸkisel olmayan veri tabanฤฑ (noSQL)

  • Key-value ลŸeklinde kodlanan verileri json formatฤฑnda dรถkรผmanlar halinde saklayan noSQL veri tabanฤฑ tรผrรผdรผr.

  • Temelde noSQL veri tabanlarฤฑ tek anahtar รผzerinden index'lemeye izin verirken, DynamoDB birden fazla anahtarฤฑn birleลŸmesinden 2.index yaratฤฑlmasฤฑna izin verir.

  • <10ms gecikme sรผresi saฤŸlayan, yรถnetiken no-SQL veri tabanฤฑ hizmetidir. Alt yapฤฑ AWS'ye aittir.

  • Veriler key-value eลŸlenikler ลŸeklinde json dosyalarฤฑnda saklanฤฑr.

  • Multi key indexleme imkanฤฑ saฤŸlar.

  • SSD tabanlฤฑ 3 farklฤฑ veri merkezinde 3 farklฤฑ kopya halinde tutularak, yรผksek eriลŸilebilirlik ve tutarlฤฑlฤฑk saฤŸlar.

  • Autoscaling imkanฤฑ bulunur.

  • Read-write capacity รผstรผnden scaling saฤŸlar.

  • ฤฐhtiyaca gรถre read-write kapasitemizi geniลŸletebiliriz.

  • Global tables รถzelliฤŸi ile multi region hem okuma, hem yazma imkanฤฑ saฤŸlar.

  • Streams รถzelliฤŸi devreye alฤฑnฤฑr. Streams ile yapฤฑlan her iลŸlemin kaydฤฑ tutulur. Streamsler baลŸka olaylarฤฑ da tetiklememizi saฤŸlayabilir.

  • Stream servisi aktif hale getirirsek, multi region รถzelliฤŸini kullanabiliriz.

  • Streams, รถฤŸe bazฤฑnda yapฤฑlan her deฤŸiลŸikliฤŸin kaydฤฑnฤฑn tutulmasฤฑnฤฑ saฤŸlar.

Global Tables,

Kullanฤฑcฤฑlar dรผnyanฤฑn farklฤฑ bรถlgelerinde replike รงalฤฑลŸan dynamoDB nosql veritabanฤฑndan okuma yazma yapabilir.

DynamoDB accelerator,

DynamoDB accelerator ile in-memory caching imkanฤฑ saฤŸlanฤฑr. 35 gรผne kadaar otomatik yedeklemenin yanฤฑ sฤฑra manuel yedekleme imkanฤฑ da vardฤฑr. ร–ฤŸelere TTL deฤŸerleri atanabilir.

DynamoDB OluลŸturmak,

  • Services > DynamoDB > Create table

  • Table Name : calisanlar_db

  • Primary Key : personelno - number (text deฤŸer olarak ekleseydik "string" seรงmeliyiz.

  • Add Sort Key : Ad (string) ฤฐkincil key ekleyebiliyoruz.

  • Use Default Settings : Ayarlarฤฑ otomatik yapmak iรงin.

  • Secondary indexes : ฤฐkincil bir index girebiliriz.

  • Read-Write Capacity mode : On-demand, Her hangi bir kapasite belirtmiyoruz. O andaki yรผke gรถre otomatik olarak AWS ayarlฤฑyor.

  • Provisioned Capacity : ฤฐstediฤŸimiz, ihtiyacฤฑmฤฑz olan, Read-Write deฤŸerlerini girebiliyoruz.

  • AutoScaling : ฤฐhtiyaca gรถre read-write kapasitesini DynamoDB burada belirlediฤŸimiz seรงeneklere gรถre bize saฤŸlฤฑyor.

  • Target utilization : Kapasitesinin %70ini doldurursa, otomatik olarak aลŸaฤŸฤฑdaki kapasiteler eklenecek.

  • Minimum Provisioned : En az vereceฤŸi kapasite.

  • Maximum Provisioned : En fazla vereceฤŸi kapasite

  • Encryption At rest : Default

  • Create

DynamoDB oluลŸturuldu, Streams devreye almak iรงin,

  • Overview > Manage Stream > New and old images > Enable. Bรถylelikle ileride global table yaratabiliriz.

DynamoDB RDS de olduฤŸu gibi, BaฤŸlantฤฑ iรงin DNS ve IP adresi yoktur. Dynamo ile baฤŸlantฤฑ kurmak iรงin tek seรงenek, AWS SDK kullanarak, kendi yarattฤฑฤŸฤฑmฤฑz uygulamalarฤฑ direkt dynamoDB ile baฤŸlantฤฑ kurdurabiliriz. Bunu DynamoDB Api kullanarak yapabiliriz.

Point in time Recovery : Gรผnรผn istediฤŸimiz anฤฑna bu tabloyu geri dรถndรผrebiliriz.

TTL attributes : Manage TTL > TTL Attribute > TTL yazarsak, artฤฑk tablonun iรงinde bir ttl deฤŸeri atayabiliyorum. ร–rnek olarak tabloya ttl kalonu ekleyip, bir tarih yazabiliriz. O tarihten sonra da TTL eklenmiลŸ olduฤŸu o kolondaki kayฤฑt silinecektir. TTL yazmamฤฑzฤฑn sebebi, hangi kolonda bu deฤŸeri tutacaฤŸฤฑmฤฑzฤฑ sรถyledik.

Global Tables OluลŸturmak iรงin, Add region > Frankfurt > Tablomuzun bir kopyasฤฑnฤฑ da frankfurt region'da mevcut.

Stream : YaptฤฑฤŸฤฑmฤฑz tรผm deฤŸiลŸikliklerin saklanmasฤฑnฤฑ saฤŸlฤฑyor.

ฤฐtems > Create items > yeni bir kayฤฑt(dรถkรผman) yaratabiliriz.

  • No SQL de daha sonradan bir tablo (kayฤฑt) yaratฤฑp farklฤฑ kolonlar ekleyebiliriz. ร–rneฤŸin her dรถkรผmanda dogumtarihi ekleme zorunluluฤŸumuz yok.

  • Alarms : Dynamodb iรงin alarmlarฤฑ bilgilendirme maili ve ya SMS gรถnderebilmemizi saฤŸlar.

  • Dynamo 'ya รงoฤŸu รงalฤฑลŸan manuel kayฤฑt girmez. Bu kayฤฑtarฤฑ uygulamarฤฑmฤฑz dynamodb'ye otomatik olarak yazar.

  • Backups : Manuel backup alabilir, ve ya otomatik backup 'lar baลŸlatabiliriz. Gรผnรผn her saniyesine yeni bir restore baลŸlatabiliriz.

  • Trigger : Tablona veri ekleyip, lambda fonksiyonunu รงalฤฑลŸmasฤฑnฤฑ(tetiklemesini) sรถyleyebiliriz.

  • Access Control : Misal, kullanฤฑcฤฑlar yarattฤฑฤŸฤฑmฤฑz uygulamaya facebook bilgileri ile girebilmelerini ve DynamoDB de okuyup, yazabilmeleri iรงin buradan izinler oluลŸturabilir. Sosyal aฤŸlara izinler verebiliriz (Twitter-Instagram-Facebook-Reddit vb)

DynamoDB Accelerator(DAX),

  • <10ms civarฤฑnda uygulamalarฤฑmฤฑz veri okuyabilir ve yazabilir.

  • Caching Cluster, istekler (uygulama istekleri) Dax'a geliyor. Dax bu istekleri dynamodb'ye yรถnlendiriyor.

  • Dax cluster sayesinde in-memory-cache รถzelliฤŸini kullanarak uygulamalarฤฑmฤฑz, DynamoDB tablosundan okuma yapabiliyoruz.

  • Bรถylelikle cluster'ฤฑ ayarlayฤฑp devreye alฤฑrsak, dynamodb yerine dax'a baฤŸlanฤฑp, uygulamalarฤฑmฤฑz dax 'a istekleri iletecek ve dax arkada dynamodb' ile iletiลŸim kuracak.

Last updated