AWS RDS: Güçlü Veritabanları İçin Temel Kurulum Rehberi

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

--

Veri yönetimi ve analizi, günümüzün dijital dünyasında her alanda karşımıza çıkan temel ihtiyaçlardan biri haline geldi.Bu yazıda, Amazon Web Services’in (AWS) güçlü veritabanı hizmeti Relational Database Service (RDS) üzerine odaklanacağız.RDS’in ne olduğundan, AWS konsolu üzerinden RDS’i nasıl kuracağımıza kadar adım adım ele alacağız. Başlayalım!

AWS Relational Database Service (RDS), veri tabanı yönetimi konusunda güçlü ve esnek bir çözüm sunuyor. RDS, karmaşık veri tabanı yönetim görevlerini basitleştirerek, yüksek kullanılabilirlik ve maliyet etkinliği sağlıyor. Bir tıkla yönetilen yedeklemeler, yazılım yamaları ve genişletilebilir depolama kapasitesi ile RDS, ölçeklenebilir bir veri tabanı çözümü arayan herkes için idealdir. Şimdi, bu çözümün temel bileşenlerine yakından bakalım.

DB Instances: EC2 Üzerinde Veritabanı Oluşturma

DB Instance Nedir?

AWS RDS’de bir “DB instance”, aslında özel bir EC2 makinesidir. Burada alınan bir veri tabanı hizmeti, özelleştirilmiş bir Linux üzerinde çalışan ve belirli bir DB Engine ile donatılmıştır. Bu hizmet, veritabanı işlevselliği için gerekli olan tüm bileşenlerle tam bir paket sunar.

DB Engines: Çeşitlilik ve Performans

Veritabanı Motorları (Engines)

RDS’nin desteklediği çeşitli veri tabanı motorları arasında, performans odaklı PostgreSQL’den, MySQL’den ayrılarak daha gelişmiş hale getirilen ve hız açısından MySQL’den üstün olan MariaDB bulunmaktadır. Ancak büyük veri setleriyle çalışırken, bu motorların performans sınırlamalarına dikkat etmek önemlidir. Özellikle 10 milyon satır üzerindeki verilerle çalışırken, bu sınırlamalar daha belirgin hale gelebilir.

DB Instance Classes: İşlem Gücü ve Kapasite Seçimi

Instance Sınıfları

Veritabanınızın gereksinimleri doğrultusunda çeşitli ‘DB Instance Classes’ mevcuttur. Genel amaçlı kullanım için ‘M’ serisi yeterli olabilirken, daha yüksek performans gerektiren iş yükleri için ‘R’ veya ‘X’ serileri tercih edilebilir.

Burstable Instances

Bu tip instance’lar, bir EC2 makinesinin belirli sürelerde (örneğin, makinenin çalışma süresinin %20'si kadar) yüksek performans sunmasına olanak tanır. Bu süre zarfında makine, örneğin 4 GHz gibi yüksek bir frekans kullanabilir ve sonrasında 3.2 GHz gibi bir base performans seviyesine döner. Maliyet etkinliği açısından, genellikle daha uygun fiyatlıdır ve daha az öngörülebilir iş yükleri için idealdir.

DB Instance Storage: Veri Depolama ve I/O Performansı

Depolama Türleri

RDS’de seçebileceğiniz depolama türleri arasında General Purpose SSD (gp2, gp3), Provisioned IOPS SSD (io1), ve Magnetic gibi seçenekler bulunur. ‘gp3’ tipi SSD’ler genel kullanım için yeterli olmakla birlikte, I/O yoğun uygulamalar için ‘io1’ gibi daha performanslı depolama seçenekleri tercih edilmelidir.

I/O Performansı

DB instance storage’ın belirleyici faktörlerinden biri olan I/O performansı, veritabanınıza yapılan ve veritabanınızdan yapılan okuma ve yazma işlemlerinin hızını ifade eder. Yüksek I/O performansına ihtiyaç duyan uygulamalar için daha hızlı diskler tercih edilmelidir.

VPC İçinde RDS ve EC2'nin Benzer Konumlandırılması

Entegre Mimari

Görselde görüldüğü üzere, veri tabanımız RDS, AWS’nin sanal özel ağı olan VPC içinde, bir EC2 instance’ı ile aynı şekilde konumlanıyor. Her iki hizmet de, veri ve uygulama katmanlarımızın izole ve güvenli bir şekilde çalışmasını sağlayan aynı Availability Zone (AZ) içerisinde yer alır.

Elastic Network Interface

(ENI) RDS ve EC2, her birinin ağ arabirimi olan ENI’lar vasıtasıyla ağa bağlanır. Bu ENI’lar, her bir hizmetin kendine özel bir ağ kimliği oluşturmasına ve VPC içerisinde iletişim kurmasına olanak tanır.

Security Groups ve IP Yönetimi

Hem RDS hem de EC2 instance’ları, dış dünya ile iletişimi yöneten Security Groups tarafından korunur. EC2 instance’ına atanan public IP adresi üzerinden gelen trafik, bu güvenlik grupları tarafından denetlenir ve uygun kurallar çerçevesinde instance’a yönlendirilir. Bu IP adresini, ENI üzerinden doğrudan gözlemleyebiliriz. RDS ise doğrudan bir public IP adresine sahip olmamakla birlikte, ENI ve güvenlik grupları vasıtasıyla EC2 ve diğer AWS hizmetleriyle güvenli bir şekilde iletişim kurabilir.

Amazon RDS Monitoring

Amazon RDS monitoring özelliği sayesinde, veritabanınızın performansını yakından takip edebilirsiniz. Bu araç, saniyede kaç istek alındığı ve hangi sorguların yavaş çalıştığı gibi önemli bilgilere erişim sağlar. Bu bilgilerle, performans iyileştirmeleri için doğru adımları atabilirsiniz.

Database Cluster’ı ve Instance’ları Anlamak

Cluster ve Instance İlişkisi:

Cluster, yüksek kullanılabilirlik, yük dengeleme ve hata toleransı sağlamak üzere tasarlanmış birden fazla veritabanı instance’ından oluşan bir bütündür. Bir cluster’daki instance’lar, olası bir arızanın etkisini minimize etmek ve sürekliliği korumak amacıyla birlikte çalışır. Bu, özellikle kritik veritabanı operasyonlarında, bir instance’daki potansiyel bir problem karşısında bile sürekliliğin sürdürülmesini sağlar.

Subnet Grupları ve Database Yapılandırması:

Subnet grupları, veritabanı instance’larını yönetirken ağ izolasyonunun yanı sıra veri güvenliğini de artırmak için kullanılır. Örnek olarak, bir writer instance’a yazılan veriler, hemen ardından farklı bir subnet grubundaki reader instance’lardan okunabilir. Bu yapılandırma sayesinde, yüksek okuma kapasitesine sahip uygulamalar için okuma işlemleri hızlanır ve yük dengeleme optimizasyonu sağlanır. Reader instance’lar, sorgu yükünü dağıtarak yazma işlemlerine ayrılan kaynakların verimliliğini artırır.

Şimdi, AWS konsolu ile RDS kurulum sürecimize göz atalım.

Adım 1: Veritabanı Motoru Seçimi

AWS RDS kurulumunuzda ilk adım, uygun veritabanı motorunu seçmektir. Aurora, MySQL, PostgreSQL gibi çeşitli seçenekler arasından ihtiyacınıza en uygun olanı tercih edersiniz. Ancak, unutmayın ki Aurora için free tier seçeneği mevcut değildir.

Adım 2: Şablon ve Ayarlar

Bir sonraki adımda, kullanım amacınıza en uygun şablonu seçersiniz: ‘Production’ yüksek kullanılabilirlik ve performans gerektirirken, ‘Dev/Test’ geliştirme ve test işlemleri için idealdir. Daha sonra, veritabanı cluster’ınıza benzersiz bir tanımlayıcı atar ve master kullanıcı adı ile şifre belirlersiniz. Bu bilgiler, veritabanınıza erişim için kullanılacak temel kimlik bilgileridir.

Adım 3: Depolama ve Instance Seçimi

Aurora’nın standard ve I/O-optimized seçenekleri arasından uygulamanızın ihtiyaçlarına uygun depolama yapılandırmasını seçin. Aurora Standard, maliyet-etkin fiyatlandırma sunarken, I/O-Optimized yüksek giriş/çıkış performansı gerektiren uygulamalar için idealdir. Daha sonra, seçtiğiniz veritabanı motoruna uygun bir DB instance sınıfı seçersiniz, örneğin db.t3.large, belirli CPU ve RAM kapasitesine sahip olacak şekilde ayarlanabilir. Bu adım, veritabanınızın performansını ve maliyetini etkileyecektir.

Adım 4: Yüksek Kullanılabilirlik Ayarı

RDS kurulumunuzda yüksek kullanılabilirlik ve dayanıklılık için, Multi-AZ dağıtımı seçeneğini göz önünde bulundurun. Bu seçenek, Aurora Replica veya okuma amaçlı bir node’u farklı bir Availability Zone (AZ) içinde oluşturarak hizmet sürekliliği ve yüksek erişilebilirliği garanti altına alır. Bu, önceden açıkladığımız read-only instance’ları eklemenin bir yoludur ve özellikle ölçeklenebilirliği artırmak için önerilir.

Adım 5: VPC ve DNS Ayarları

Veritabanınız için sanal özel ağınızın (VPC) ayarlarını yaparken, DNS çözünürlüğü ve DNS hostname’lerinin etkinleştirilmesi önem taşır. Bu, veritabanınızın ve bağlantılı hizmetlerin sorunsuz iletişim kurabilmesi için gerekli olan ağ çözünürlüğünü ve isimlendirmesini sağlar.

Adım 6: Bağlantı ve Ağ Ayarları

RDS instance’ınız için bağlantı ayarlarınızı yaparken, bir EC2 compute resource’a şimdi bağlanmayı seçebilir ya da bunu daha sonra manuel olarak ayarlayabilirsiniz. Ağ tipi olarak, IPv4 ya da çift yığın modunu (IPv4 ve IPv6 desteği) tercih edebilirsiniz. Ayrıca, veritabanı cluster’ınız için uygun VPC’yi seçmek, veritabanınızın ağ izolasyonunu ve güvenliğini sağlayacaktır. Bu ayarlar, RDS instance’ınızın erişilebilirliğini ve ağ üzerindeki iletişimini yönlendirecektir.

Adım 7: DB Subnet Grubu ve Güvenlik Ayarları

Veritabanınız için uygun DB subnet grubunu seçerek başlayın. Geliştirme ve test aşamalarında, dışarıdan erişim gerektiğinde, RDS’nin kamu erişimine izin veren ‘Evet’ seçeneğini etkinleştirin. Ancak, unutmayın ki bu, genellikle yalnızca geliştirme süreci için uygundur; üretim ortamında, güvenlik endişeleri nedeniyle dış erişim genellikle kapalı tutulmalıdır. VPC güvenlik grubunuzu seçin veya yeni bir tane oluşturarak, trafiğinizi yönetin ve veritabanınızın korunmasını sağlayın. Bu aşamalar, RDS instance’ınızın ağ güvenliği için son derece önemlidir.

Adım 8: RDS Proxy ve Sertifika Otoritesi Ayarları

İhtiyacınıza göre RDS Proxy oluşturmayı düşünebilirsiniz. RDS Proxy, veritabanı bağlantılarınızı yöneterek uygulamanızın ölçeklenebilirliğini, direncini ve güvenliğini artırır. Ancak ek maliyetler gerektirebilir. Sertifika otoritesi seçeneği ise bağlantı güvenliği için ekstra bir güvenlik katmanı sunar; eğer bir sertifika otoritesi seçmezseniz, AWS sizin için otomatik bir seçim yapar. Bu ayarlar, veritabanınızın güvenli bir şekilde iletişim kurmasını sağlar.

Adım 9: Ek Yapılandırma Ayarları

Veritabanınız için ek güvenlik önlemleri almak isterseniz, ‘Şifrelemeyi Etkinleştir’ seçeneğini işaretleyerek verilerinizi koruma altına alabilirsiniz. AWS Key Management Service (KMS) kullanarak oluşturulan anahtarlar, veritabanı şifreleme sürecinde kullanılır. Ancak biz burada ihtiyacımı olmadığı için ve performans issue olsun istemediğimiz için seçmeyeceğiz.

Veritabanı aktivitelerini izlemek ve yönetmek için, CloudWatch ile entegrasyonu etkinleştirerek gerekli logları toplayabiliriz. Bu, sisteminizdeki olayları anlık olarak takip etme ve olası sorunlara hızla müdahale etme imkanı tanır.

Veritabanınızın güncel ve güvenli kalmasını sağlamak için, otomatik küçük sürüm yükseltmelerini etkinleştirebilirsiniz. Bu seçenek, yeni sürümler çıktıkça veritabanınızın otomatik olarak güncellenmesini sağlar. Ayrıca, bakım için bir zaman aralığı belirleyebilir veya AWS’nin otomatik olarak bir zaman seçmesine izin verebilirsiniz. Bu, planlanan bakım işlemlerinin veritabanınızın kullanılabilirliğini en az etkileyecek zamanlarda gerçekleşmesini sağlar.

Veritabanınızın yanlışlıkla silinmesini önlemek için, silme korumasını etkinleştirebilirsiniz. Bu, veritabanınızın istenmeyen veya beklenmedik bir silme işlemine karşı korunmasını sağlar ve veri kaybını önlemeye yardımcı olur. Bu ayar, veritabanınızın sürekliliği için ek bir güvenlik katmanı olarak işlev görür.

Adım 10: Uzaktan Erişim ve Güvenlik Grubu Ayarları

Uzaktan bir bağlantı kurarken, güvenlik grubunuzun gelen trafiği doğru şekilde yönlendirdiğinden emin olun. Eğer bağlantıda sorun yaşarsanız, AWS Management Console üzerinden güvenlik grubunuzun ‘Inbound rules’ bölümüne giderek IP adresinizi eklemeniz gerekebilir. Bu, belirli port aralığına erişimi sadece güvenli IP adreslerinden izin verecek şekilde yapılandırmanıza olanak tanır.

Veritabanınızı güvenli bir şekilde yeniden başlatmak ve bu yapılandırmaların etkin olmasını sağlamak için, database’e reboot işlemi gerçekleştirmeniz gerekir. Bu, tüm yeni güvenlik ayarlarının devreye girmesini ve erişimin düzgün bir şekilde sağlanmasını garanti eder.

Ve böylece, AWS RDS’de güçlü ve esnek bir veritabanı çözümünün nasıl adım adım kurulacağını öğrendik. Bu rehberin, AWS konsolunu kullanarak veritabanı hizmetlerinizi etkili bir şekilde ayarlamanıza ve yönetmenize yardımcı olacağını umuyorum. Yeni bilgiler edindik, önemli ayarları gerçekleştirdik ve artık veritabanımız kullanıma hazır. Umarım bu süreçte size yardımcı olabilmişimdir. Yeni projelerinizde başarılar ve bulut yolculuğunuzda rahat seyrüseferler dilerim!

Ç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!

--

--