๐ฆ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