İçeriğe geç
Eren Gaygusuz
Geri dön

AWS RDS Üzerinde MySQL Veritabanı Sunucusu Kullanma

Amazon RDS, veritabanı sunucusunu doğrudan yönetmeden ilişkisel veritabanı çalıştırmanızı sağlar. Bu yazıda AWS RDS üzerinde MySQL database instance oluşturmayı, MySQL Workbench ile bağlanmayı, küçük bir Library şeması hazırlamayı ve MySQL function oluştururken gerekli olabilen parameter group ayarını yapmayı ele alıyorum.

Temel akış şudur: RDS instance oluşturulur, security group üzerinden bağlantıya izin verilir, MySQL Workbench ile bağlanılır, tablo ve sorgularla veritabanı test edilir, ardından server seviyesindeki MySQL davranışı için RDS parameter group güncellenir.

MySQL Workbench ve parameter ayarlarıyla AWS RDS MySQL bağlantı akışı

İçindekiler

İçindekileri aç

AWS RDS Üzerinde MySQL Veritabanı Oluşturma

AWS Console üzerinden RDS servisini açın. Yeni bir database oluşturma akışını başlatın ve engine olarak MySQL seçin. Öğrenme amaçlı bir kurulumda Free Tier seçeneği genellikle yeterlidir; gerçek projelerde instance class, storage, backup ve availability ayarları iş yüküne göre seçilmelidir.

AWS Console üzerinden RDS servisini açma

Bu ekranda Amazon RDS üzerinde database oluşturmayı başlatma adımını görüyoruz.

Amazon RDS üzerinde database oluşturmayı başlatma

Bu ekranda RDS database engine olarak MySQL seçme adımını görüyoruz.

RDS database engine olarak MySQL seçme

Bu ekranda RDS MySQL database template seçimi adımını görüyoruz.

RDS MySQL database template seçimi

Database identifier ve master kullanıcı bilgilerini dikkatli girin. Endpoint AWS tarafından oluşturulur, fakat kullanıcı adı ve parola daha sonra MySQL Workbench bağlantısında gerekir.

RDS database identifier ve kullanıcı bilgilerini ayarlama

Bu ekranda RDS instance yapılandırmasını seçme adımını görüyoruz.

RDS instance yapılandırmasını seçme

Bu ekranda RDS storage seçeneklerini yapılandırma adımını görüyoruz.

RDS storage seçeneklerini yapılandırma

Kendi bilgisayarınızdan bağlanacaksanız network ayarları önemlidir. Database sizin makinenizden erişilebilir olmalı ve bağlı security group, 3306 portunda MySQL inbound trafiğine izin vermelidir.

RDS connectivity ve network ayarlarını yapılandırma

Bu ekranda RDS için VPC ve security group ayarlarını seçme adımını görüyoruz.

RDS için VPC ve security group ayarlarını seçme

Bu ekranda Database authentication seçeneklerini yapılandırma adımını görüyoruz.

Database authentication seçeneklerini yapılandırma

Kalan ayarları gözden geçirip database oluşturma işlemini başlatın. RDS instance’ın hazırlanması birkaç dakika sürebilir; endpoint de bu işlemden sonra kullanılabilir hale gelir.

RDS database oluşturma ayarlarını gözden geçirme

Bu ekranda RDS MySQL database instance oluşturma adımını görüyoruz.

RDS MySQL database instance oluşturma

Bu ekranda RDS MySQL database oluşturma işleminin devam etmesi adımını görüyoruz.

RDS MySQL database oluşturma işleminin devam etmesi

Bu ekranda RDS MySQL database instance oluşturuldu adımını görüyoruz.

RDS MySQL database instance oluşturuldu

MySQL Workbench ile Bağlanma

Database kullanılabilir hale geldikten sonra detay sayfasını açın ve endpoint değerini kopyalayın. MySQL Workbench içinde bu endpoint, 3306 portu ve RDS kurulumunda belirlediğiniz master kullanıcı bilgileriyle yeni bir connection oluşturun.

RDS database detay sayfasını açma

Bu ekranda RDS database endpoint değerini kopyalama adımını görüyoruz.

RDS database endpoint değerini kopyalama

Bu ekranda MySQL Workbench içinde yeni connection oluşturma adımını görüyoruz.

MySQL Workbench içinde yeni connection oluşturma

Bu ekranda MySQL Workbench içinde RDS endpoint ve kullanıcı bilgilerini girme adımını görüyoruz.

MySQL Workbench içinde RDS endpoint ve kullanıcı bilgilerini girme

İlk bağlantı denemesi başarısız olursa en yaygın sebep security group ayarıdır. RDS instance’a bağlı security group’u açın ve 3306 portu için MySQL/Aurora inbound rule ekleyin. Kişisel testte kendi IP adresinizi kullanabilirsiniz; production ortamında bu kural olabildiğince dar tutulmalıdır.

RDS için MySQL Workbench bağlantı testi

Bu ekranda RDS security group ayarını açma adımını görüyoruz.

RDS security group ayarını açma

Bu ekranda RDS security group inbound rules düzenleme adımını görüyoruz.

RDS security group inbound rules düzenleme

Bu ekranda 3306 portu için MySQL inbound rule ekleme adımını görüyoruz.

3306 portu için MySQL inbound rule ekleme

Kural eklendikten sonra MySQL Workbench üzerinden yeniden bağlanın ve server bağlantısının başarılı olduğunu doğrulayın.

AWS RDS üzerine başarılı MySQL Workbench bağlantısı

Örnek Library Veritabanı Oluşturma

Yeni server’ı test etmek için MySQL Workbench içinde basit bir Library şeması oluşturun. Böylece schema oluşturma, tablo hazırlama, ilişkiler, insert işlemleri ve select sorguları pratik şekilde doğrulanabilir.

MySQL Workbench içinde yeni Library şeması oluşturma

Bu ekranda MySQL Workbench içinde schema oluşturma işlemini uygulama adımını görüyoruz.

MySQL Workbench içinde schema oluşturma işlemini uygulama

Authors ve Books gibi temel tabloları oluşturun, ardından bu tabloları bağlayan ilişki tablosunu ekleyin. Bu küçük bir many-to-many örneğidir: bir yazarın birden fazla kitabı olabilir, bir kitap da gerekirse birden fazla yazarla ilişkilendirilebilir.

Library şemasında ilk tabloyu oluşturma

Bu ekranda MySQL Workbench içinde tablo kolonlarını tanımlama adımını görüyoruz.

MySQL Workbench içinde tablo kolonlarını tanımlama

Bu ekranda MySQL Workbench içinde tablo oluşturma işlemini uygulama adımını görüyoruz.

MySQL Workbench içinde tablo oluşturma işlemini uygulama

Bu ekranda Library içinde başka bir tablo oluşturma adımını görüyoruz.

Library içinde başka bir tablo oluşturma

Bu ekranda Tablo kolonları ve key ayarlarını yapılandırma adımını görüyoruz.

Tablo kolonları ve key ayarlarını yapılandırma

Bu ekranda Books ve authors için ilişki tablosu oluşturma adımını görüyoruz.

Books ve authors için ilişki tablosu oluşturma

Tablolar hazırlandıktan sonra örnek kayıtlar ekleyin ve ilişkilerin beklenen sonucu döndürdüğünü görmek için join sorgusu çalıştırın.

Örnek author kayıtları ekleme

Bu ekranda Örnek book kayıtları ekleme adımını görüyoruz.

Örnek book kayıtları ekleme

Bu ekranda Books ve authors ilişki kayıtlarını ekleme adımını görüyoruz.

Books ve authors ilişki kayıtlarını ekleme

Bu ekranda MySQL Workbench içinde select sorgusu çalıştırma adımını görüyoruz.

MySQL Workbench içinde select sorgusu çalıştırma

Bu ekranda Library veritabanı için join sorgusu çalıştırma adımını görüyoruz.

Library veritabanı için join sorgusu çalıştırma

Bu ekranda MySQL Workbench içinde Library sorgu sonuçlarını görüntüleme adımını görüyoruz.

MySQL Workbench içinde Library sorgu sonuçlarını görüntüleme

View, Stored Procedure ve Function Oluşturma

Temel sorgu çalıştıktan sonra tekrar kullanılan SQL mantığını database nesnelerine dönüştürebilirsiniz. Önce join sorgusu için bir view, ardından tekrar çağrılabilir bir stored procedure oluşturun.

MySQL Workbench içinde view oluşturma

Bu ekranda Library veritabanı için view SQL yazma adımını görüyoruz.

Library veritabanı için view SQL yazma

Bu ekranda MySQL Workbench içinde view oluşturma işlemini uygulama adımını görüyoruz.

MySQL Workbench içinde view oluşturma işlemini uygulama

Bu ekranda Oluşturulan view üzerinde sorgu çalıştırma adımını görüyoruz.

Oluşturulan view üzerinde sorgu çalıştırma

Bu ekranda MySQL Workbench içinde stored procedure oluşturma adımını görüyoruz.

MySQL Workbench içinde stored procedure oluşturma

Bu ekranda Stored procedure SQL kodunu yazma adımını görüyoruz.

Stored procedure SQL kodunu yazma

Bu ekranda Stored procedure oluşturma işlemini uygulama adımını görüyoruz.

Stored procedure oluşturma işlemini uygulama

Bu ekranda Stored procedure çağırma adımını görüyoruz.

Stored procedure çağırma

Function oluşturma da benzer şekilde ilerler; fakat RDS üzerinde binary logging ve trust ayarına bağlı olarak yetki hatası alınabilir. Function oluştururken privilege hatası görürseniz çözüm genellikle custom DB parameter group içinde log_bin_trust_function_creators değerini 1 yapmaktır.

MySQL Workbench içinde function oluşturma

Bu ekranda MySQL function SQL kodunu yazma adımını görüyoruz.

MySQL function SQL kodunu yazma

Bu ekranda MySQL Workbench içinde function oluşturma hatası adımını görüyoruz.

MySQL Workbench içinde function oluşturma hatası

Bu ekranda MySQL function privilege hatasını inceleme adımını görüyoruz.

MySQL function privilege hatasını inceleme

Bu ekranda MySQL function oluşturma davranışını kontrol etme adımını görüyoruz.

MySQL function oluşturma davranışını kontrol etme

Bu ekranda RDS parameter ayarlarını güncellemeye hazırlanma adımını görüyoruz.

RDS parameter ayarlarını güncellemeye hazırlanma

Bu ekranda Configuration kontrolü sonrası function çalıştırma adımını görüyoruz.

Configuration kontrolü sonrası function çalıştırma

Bu ekranda MySQL Workbench function test sonucu adımını görüyoruz.

MySQL Workbench function test sonucu

RDS Parameter Group Güncelleme

RDS default parameter group içindeki birçok ayar doğrudan düzenlenemez. Bu yüzden MySQL sürümünüze uygun custom parameter group oluşturun. Ardından log_bin_trust_function_creators parametresini arayıp değerini 1 olarak ayarlayın.

Amazon RDS içinde parameter groups sayfasını açma

Bu ekranda Yeni RDS parameter group oluşturma adımını görüyoruz.

Yeni RDS parameter group oluşturma

Bu ekranda Parameter group için MySQL family seçme adımını görüyoruz.

Parameter group için MySQL family seçme

Bu ekranda Custom RDS parameter group adını belirleme adımını görüyoruz.

Custom RDS parameter group adını belirleme

Bu ekranda Custom parameter group içindeki parametreleri açma adımını görüyoruz.

Custom parameter group içindeki parametreleri açma

Bu ekranda log_bin_trust_function_creators parametresini arama adımını görüyoruz.

log_bin_trust_function_creators parametresini arama

Bu ekranda log_bin_trust_function_creators değerini düzenleme adımını görüyoruz.

log_bin_trust_function_creators değerini düzenleme

Parametre güncellendikten sonra custom parameter group’u Modify ekranından RDS database instance’a bağlayın. Değişikliği uygulayın ve AWS gerekli görürse ayarın etkili olması için instance’ı reboot edin.

RDS database modify ekranını açma

Bu ekranda RDS database için custom parameter group seçme adımını görüyoruz.

RDS database için custom parameter group seçme

Bu ekranda RDS database modification akışında devam etme adımını görüyoruz.

RDS database modification akışında devam etme

Bu ekranda RDS parameter group değişikliğini uygulama adımını görüyoruz.

RDS parameter group değişikliğini uygulama

Bu ekranda RDS database pending parameter group change durumu adımını görüyoruz.

RDS database pending parameter group change durumu

Bu ekranda RDS database instance reboot etme adımını görüyoruz.

RDS database instance reboot etme

Bu ekranda RDS reboot işlemini onaylama adımını görüyoruz.

RDS reboot işlemini onaylama

Instance tekrar available olduktan sonra MySQL Workbench ile bağlanın ve function oluşturma işlemini yeniden deneyin. Parametre etkin olduğunda function başarıyla oluşturulup çağrılabilir.

Reboot sonrası RDS database available durumu

Bu ekranda MySQL Workbench ile RDS database’e tekrar bağlanma adımını görüyoruz.

MySQL Workbench ile RDS database'e tekrar bağlanma

Bu ekranda Parameter group güncellemesi sonrası MySQL function oluşturma adımını görüyoruz.

Parameter group güncellemesi sonrası MySQL function oluşturma

Bu ekranda MySQL function başarıyla çağırma adımını görüyoruz.

MySQL function başarıyla çağırma

Bu ekranda Workbench içinde başarılı MySQL function sonucu adımını görüyoruz.

Workbench içinde başarılı MySQL function sonucu

Özet

Bu kurulumla MySQL server yönetimi AWS RDS tarafında kalırken, geliştirme ve test işlemlerini MySQL Workbench ile sürdürebilirsiniz. Dikkat edilmesi gereken ana noktalar bağlantı için security group ayarını doğru yapmak, database kullanıcı bilgilerini saklamak ve server seviyesinde MySQL ayarı gerektiğinde custom parameter group kullanmaktır.


Bu yazıyı paylaş:

Yorumlar


Önceki Yazı
AWS ACM ile SSL Sertifikası Oluşturma ve Load Balancer ile Kullanma
Sonraki Yazı
WinSCP ve PuTTY ile AWS EC2 Instance'a Bağlanma