MySQL, Hızı, sağlamlığı ve kullanım kolaylığı ile tanınan, dünyanın en popüler açık kaynak kodlu “ilişkisel veri tabanı yönetim sistemleri”nden (RDBMS) biridir. Geniş topluluk desteği, çeşitli araçları ve çoğu programlama dili ile uyumlu olması nedeniyle geliştiriciler arasında da oldukça yaygın. MySQL, Açık kaynaklı olup, genel bir kamu lisansı ile sunulur; bu da ek ücret ödemeden uygulama geliştirmenize olanak tanır.
MySQL, geliştiricilerin popüler tercihi olan açık kaynak kodlu yazılım mimarisi kısaca LAMP adı verilen (Linux, Apache, MySQL, Perl/PHP/Python) yığının ayrılmaz bir parçası. Kişisel web siteleri ve bloglardan, e-ticaret çözümleri ve çevrimiçi sistemlere kadar pek çok uygulamayı destekler. MySQL'in önemli özelliği çok yönlü olmasıdır. Tüm büyük “Hosting” web sağlayıcılarıyla uyumludur ve WordPress gibi birçok içerik yönetim sisteminin temel bileşenidir. Bu nedenle, taşınabilir, yüksek performanslı ve ölçeklenebilir bir uygulama geliştiriyorsanız, bence Azure MySQL'i değerlendirmeye değer. Gelin, MySQL'i Azure'da nasıl kullanacağınızı hep birlikte inceleyelim.
Azure'da MySQL Database Dağıtım Yöntemleri
MySQL veri tabanınızı Azure'da barındırmak için iki ana seçeneğiniz var. Birinci seçenek Azure VM (Yani Infra-structre as a Service Seçeneği). Bu seçenekte, MySQL'i sizin yönettiğiniz bir sanal makinede çalıştırırsınız. Microsoft, donanım ve sanallaştırmayı yönetir, ancak MySQL sunucusunun yüksek erişilebilirliği, güvenliği, veri koruması ve izlenmesi gibi konulardan siz sorumlu olursunuz.
2nci seçenek ise Platform as a Servis Seçeneği. Bu tamamen yönetilen hizmet kapsamındadır. Yani altyapı, yedeklemeler, yüksek erişilebilirlik ve güvenliği Microsoft yönetir, siz sadece uygulama ve şema geliştirme, kullanıcı yönetimi ve performansa odaklanırsınız. Azure MySQL Database, açık kaynaklı, maliyeti düşük ve tamamen yönetilen bir hizmettir. Yüksek erişilebilirlik desteğiyle sunucunuzu Azure’da hızla oluşturabilir veya ölçeklendirebilir ve SLA'larla desteklenen %99,99'a kadar çalışma süresi elde edebilirsiniz. Üstelik, Azure araçları ve hizmetleriyle de sorunsuz bir şekilde entegre olur, yerleşik şifreleme ve kurumsal düzeyde güvenlikle daha hızlı dağıtımlar sağlar.
Azure’un esnek sunucu mimarisi, daha yüksek erişilebilirlik sağlamak için işlemci ve depolamayı birbirinden ayırır. MySQL sunucunuz, verilerin premium dosya depolama alanında saklandığı ve dayanıklılık için üç kez kopyalandığı bir Linux sanal makinesinde çalışır. Aynı bölge veya farklı bölgelere yedekli bir şekilde yüksek erişilebilirlik desteği sunar, bu sistem otomatik geçiş ve sıfır veri kaybı sağlar. Azure Mimarisi, geliştirdiğiniz uygulamayı ve veri tabanı sunucunuzu aynı konumda barındırarak gecikmeyi en aza indirir. Yedeklemeler otomatik bir şekilde yerel olarak saklanır ve felaket kurtarma için coğrafi yedekli depolama seçeneği de sunar. Üstelik Azure MySQL database, açık kaynak kodlu topluluk sürümünde çalışır, bu nedenle yeniden yapılandırma veya ek sürücüler gerekmez. Hizmeti başlattığınızda doğrudan çalışır.
Azure MySQL Database'in Mimari Yapısı
Azure’un esnek sunucu mimarisi, daha yüksek erişilebilirlik sağlamak için işlemci ve depolamayı birbirinden ayırır. MySQL sunucunuz, verilerin premium dosya depolama alanında saklandığı ve dayanıklılık için üç kez kopyalandığı bir Linux sanal makinesinde çalışır. Aynı bölge veya farklı bölgelere yedekli bir şekilde yüksek erişilebilirlik desteği sunar, bu sistem otomatik geçiş ve sıfır veri kaybı sağlar.
Azure Mimarisi, geliştirdiğiniz uygulamayı ve veri tabanı sunucunuzu aynı konumda barındırarak gecikmeyi en aza indirir. Yedeklemeler otomatik bir şekilde yerel olarak saklanır ve felaket kurtarma için coğrafi yedekli depolama seçeneği de sunar. Üstelik Azure MySQL database, açık kaynak kodlu topluluk sürümünde çalışır, bu nedenle yeniden yapılandırma veya ek sürücüler gerekmez. Hizmeti başlattığınızda doğrudan çalışır.
Azure'da MySQL Flex Sunucu Oluşturma
Azure portalına [portal.azure.com] adresinden gidin ve giriş yapın. Eğer bir Azure aboneliğiniz yoksa, başlamanın en iyi yolu ücretsiz Azure hesabınızı oluşturmaktır. [azure.microsoft.com] adresine gidip, Ücretsiz hesap ile, MySQL’i 12 aya kadar ücretsiz kullanabilir ve birçok diğer özelliğe de erişebilirsiniz. Hangi hizmetlerin ücretsiz olduğunu görmek için Azure portalında "ücretsiz hizmetler" yazarak arama yapabilir ve tüm hizmetlerin listesini görüntüleyebilirsiniz. Ücretsiz hizmetlerdeki Azure Database for MySQL’i seçerseniz, aylık 750 saate kadar çalışma ve yaklaşık 32GB depolama sunan hizmeti kullanmaya başlayabilirsiniz.
Başlamadan önce bir kaynak grubu oluşturmalısınız. Oluştur düğmesine tıklayın. Azure aboneliğinizi açılır menüden seçin ve kaynak grubu için bir isim verin. Ardından bulunduğunuz yere en yakın bölgeyi seçtikten sonra gözden geçir ve oluştura basın. Ve ardından işlemi tamamlayın. Kaynak grubuna gidip ardından kaynak oluşturmak için oluştur’a tıklıyoruz. Azure MySQL database oluşturmak için arama kısmına "Azure MySQL " yazın ve arama yapın, çıkan birinci seçeneği seçiyoruz. Ardından tekrar "Oluştur" seçeneğine tıklayın. Tıkladığınızda servis sizi dağıtım seçeneğini seçebileceğiniz bir sayfaya yönlendirecektir. İlk seçenek Esnek Sunucu'dur ve genellikle uygulamanızı çalıştıracağınız için en çok önerilen seçenektir.
Ayrıca açık kaynaklı bir İçerik Yönetim Sistemi Wordpress seçeneği de vardır. Daha sonra bu seçeneği de başka bir video da göstereceğim. Şimdilik Esnek Sunucu oluşturalım. Öncelikle abonelik detaylarını doldurmanız gerekiyor. Bu kısımda isterseniz yeni bir kaynak grubu oluşturabilir veya daha önce oluşturduğunuz mevcut bir kaynak grubunu kullanabilirsiniz. Ardından, Azure genelinde benzersiz olması gereken bir sunucu adı yazmalıyız. Server adını yazdıktan sonra size en yakın bölgeyi seçin, tavsiyem: kaynak grubuyla aynı bölgede olmasını tercih edin. Ardından iş yükü türünü belirleyebilirsiniz. Hobi amaçlı küçük projeleri test ediyor veya geliştiriyorsanız, geliştirme seçeneğini seçin; ya da geliştirdiğiniz ticari uygulamanızı yayına olacağınız kritik iş yükü veya küçük ila orta ölçekli bir iş yükü için size en uygun iş yükü türünü seçebilirsiniz. Seçtiğiniz iş yüküne göre, işlemci ve depolama konfigürasyonları ve ücretleri değişecektir.
Yapılandırma seçeneklerine giderek, işlemci, depolama, yüksek kullanılabilirlik ve yedekleme ayarlarını değiştirebilirsiniz. Size uygun seçenekleri belirledikten sonra ayarlarınızı kaydedip oluşturma ekranına dönebilirsiniz. Sonraki adımda, kullanılabilirlik bölgelerini isterseniz seçebilirsiniz. Bu sayede bir bölgedeki ayrı veri merkezi grupları olan kullanılabilirlik alanları avantajından yararlanabilirsiniz. Böylece herhangi bir hizmet kesintisine karşı Yüksek erişilebilirlik sağlarsınız. Yüksek erişilebilirlik ve diğer seçeneklerin varsayılan olarak bırakalım. Ardından, MySQL Esnek Sunucusuna erişmek için kimlik doğrulama yöntemini kararlaştırıyoruz. Kullanıcı adı ve parola tabanlı MySQL yerel kimlik doğrulamasına ek olarak, Microsoft Entra ID kimlik doğrulama desteği de bulunmaktadır. MySQL Flex Sunucusuna erişmek için kullanacağınız kullanıcı adınızı ve şifrenizi girin ve sonraki sekme olan ağ ayarlarına geçin.
Ağ ayarları bölümünde, bir bağlantı yöntemi seçmeniz gerekir. Bunlar genel veya özel. Bu örnekte genel erişimi seçeceğiz. Sunucuya sisteminizden bağlanmak istiyorsanız, mevcut IP adresinizi ekleyin. Genel erişimde, sunucunuza yalnızca güvenlik duvarı kuralına eklediğiniz IP adresleri bağlanabilir. Dış uygulamalar ve araçlar, sadece belirli IP adresleri için güvenlik duvarını açmadığınız sürece sunucuya erişemez. Diğer Azure servislerinin bu flex sunucuya erişmesini istiyorsanız bu kısımdan erişim izni verebilirsiniz. Ayrıca, bir sanal ağdaki ana bilgisayarların bu sunucuya erişimini sağlamak için özel uç noktalar da oluşturabilirsiniz.
Güvenlik ayarlarında ise müşteri tarafından yönetilen anahtarlarla veri şifreleme sağlayabiliyorsunuz. Azure Key Vault sayesinde MySQL Flexible server için müşteri tarafından yönetilen anahtarlarla veri şifreleme yapabilirsiniz. Daha fazla bilgi için bu adresi ziyaret edebilirsiniz. Şimdilik bu seçenekleri varsayılan bırakıyoruz.Sunucu için etiketler belirleyebilirsiniz. Etiketler, aynı etiketi birden fazla kaynağa ve kaynak grubuna uygulayarak sınıflandırma yapmanıza ve birleştirilmiş faturalamayı görmenize olanak tanıyan bir özelliktir. Etiket için mysql ve azuremysql yazın. Ardından, sunucu ayarlarını “Gözden geçirin ve Oluştur" seçeneğine tıklayın. Yapılandırmanızı gözden geçirdikten sonra oluştura tıklayın. Dağıtımı başlattıktan sonra, bildirim bölümünü görebilirsiniz. Sunucu oluşturma süresi yaklaşık 5 dakika sürer.
İşlem tamamlandıktan sonra oluşturduğumuz kaynağa geçebiliriz. Bu ekran MySQL Flex Sunucuya genel bakış penceresidir. Burada, sunucunun adı, yönetici giriş adı, yapılandırdığınız sunucunun mimari özellikleri, konumu, kaynak grubu ve daha birçok detay için sekmeler bulabilirsiniz. Tutorials bölümünde, geliştirmeye başlayabilmeniz için size yardımcı olabilecek kaynakların bir listesini de görebilirsiniz. Başlangıç bölümünde, ağ yapılandırması, sunucuya bağlanmak için gerekli bilgileri, veritabanını yapılandırmak için bakım programı oluşturmak, performans için sunucu parametrelerini ayarlamak, yedekleme, geri yükleme ve yüksek erişilebilirlik ve replikasyon gibi gelişmiş özellikleri keşfetmek için bu belgelerden herhangi birine başvurabilirsiniz.
Azure MySQL Flex Sunucunun Özelliklerini Tanıyalım
Üst kısımda ayrıca sunucuyu durdurma, yeniden başlatma veya şifrenizi unuttuysanız sıfırlama seçeneklerini görebilirsiniz. Gelin diğer panelleri de keşfedelim; sol taraftaki menüde işlemci ve depolama ayarlarınızı doğrulayıp değiştirebilirsiniz. Güvenlik duvarı kurallarının güncel olduğundan emin olmak için ağ bölümünü gözden geçirebilir ve kuralları her zaman değiştirebilirsiniz. Ayrıca mevcut veri tabanlarını—sistem veri tabanları da dahil—görebilirsiniz. MySQL Esnek Sunucusuna bağlanmak için kullanılan bağlantı dizelerini gözden geçirebilir, sunucu parametrelerini ayarlayabilirsiniz. 300’den fazla parametreyi ayarlayabilirsiniz.
Replikasyon işlevini yapılandırabilir, bakımları yönetebilir ve yedekleme ve geri yükleme işlemlerini gerçekleştirebilirsiniz. Hobi ve geliştirme amaçlı bir flex sunucu oluşturduğumuz replica desteklenmiyor. Ancak ticari uygulamalarınız için iş kritik yükleri seçerseniz bu ayarları yapabilirsiniz. Ayrıca bir sunucunuzun çalışmasını izleyebileceğiniz bir monitoring bölümü var. Bu kısımda metriklere gelerek, sunucunuzun sağlığı hakkındaki detaylı metrikleri, ilgili metriği seçerek takip edebilirsiniz.
Yardım için sorun giderme bölümü de bulunmaktadır. Sunucu içinde bulunan "Sorunları Teşhis Et ve Çöz" seçeneği oldukça yararlı bir özellik; Flex sunucunuzdaki sorunları gidermek için Sorunları Teşhis Et ve Çöz özelliğini kullanabilirsiniz. Örneğin, yedekleme ile ilgili bir sorun yaşarsanız, "Backup" seçeneği seçebilir ve karşılaşabileceğiniz başlıca sorunların bir listesini açılan menüden seçip, yaşadığınız sorunları çözmek için bilgi alabilirsiniz. Yönlendirilen sayfada başarılı bir yedekleme oluşturmayı sağlamak için önerileri uygulayabilirsiniz.
Azure'da MySQL Flex Sunucunuzu sağladıktan sonra, sunucu parametre yapılandırabilirsiniz. Diğer Platform-as-a-Service (PaaS) sağlayıcılarındaki MySQL motorunun altındaki yapılandırma dosyalarını göremezsiniz. Azure MySQL, bu parametreleri ayarlamanız için size izin verir. Bu yapılandırmalar genellikle kullanıcılar, geliştiriciler veya DBA'lar tarafından yönetilir. Örneğin, SSL'i kapatmanız gerekiyorsa, SSL parametresini arayarak buradan devre dışı bırakabilirsiniz. MySQL Flex Sunucu, MySQL motorunu ihtiyaçlarınıza göre optimize etmek için 300'den fazla sunucu parametresi sunar.
Sunucunuz çalışır duruma geldiğinde ve üretime hazır olduğunda, bakım dönemlerini ayarlamak isteyeceksiniz. Azure MySQL’ı seçmek için diğer bir neden de bakımlar. Bu özellik MySQL sunucunuzun hangi gün ve saatte bakım yapacağınızı belirlemenize yardımcı olur. İşletmeniz için çalışma süresini en üst düzeye çıkarmak ve kesinti süresini en aza indirmek amacıyla bu pencere üzerinden bakım zamanlarını belirleyebilirsiniz.
Yedeklemeler hizmet tarafından otomatik olarak yapılsa da, kendiniz de her zaman yedekleme alabilir ve bu yedeklemelere bu kısımdan göz atmak isteyebilirsiniz. "Yedekleme ve Geri Yükleme" bölümünde, günlük olarak yapılan tam yedeklemeleri görebilir ve bu yedeklemeleri geri yükleyebilirsiniz. Ayrıca, normal yedekleme programının dışında anlık yedekleme oluşturmak için istediğiniz zaman talep üzerine yedekleme başlatabilirsiniz.
Geliştiriciler ve DBA'lar arasında popüler olan bir başka özellik de MySQL motorundaki yavaş sorguların kaydıdır. Bu özellik, yavaş çalışan sorguları kaydetmenizi ve sunucu parametreleri aracılığıyla kayıt için eşikler belirlemenizi sağlar. Diagnosting ayarları kısmından tanımlaya yaparak, bu günlükleri daha derinlemesine analizler için Log Analytics çalışma alanına aktarabilirsiniz. İlgili tanımlamayı yaptıktan sonra Sorgu performansı hakkında bilgi sağlayan, önceden oluşturulmuş çalışma kitabı raporlarını bu kısımdan kullanmaya başlayabilirsiniz; Sorgu performans içgörüleri bölümünden yavaş çalışan sorguları hızlıca görselleştirip analiz edebilirsiniz. Database’i kullandıkça bu kısımda sorgular görünmeye başlayacaktır.
Bu raporları özelleştirmek isterseniz— düzenle düğmesine tıklayarak sorguları kolayca düzenleyebilirsiniz. Ayrıca metrikler kısmından ise sunucudaki önemli metrikleri izleyip, düzenle kısmına gelip yeni metrikler de ekleyebiliyorsunuz. Yüksek kullanılabilirlik, MySQL Flex Sunucunuz için kritik bir faktördür. %99,99 kullanılabilirlik için verilerin senkronize edildiği farklı bir bölgede yedek sunucular oluşturabilirsiniz. Daha düşük gecikme isterseniz, aynı bölgede yedek sunucu kurarak %99,95 kullanılabilirlik derecesi elde edebilirsiniz.
Tüm bunları Yüksek kullanılabilirlik sekmesinden yapılandırabiliyorsunuz. Bu seçenek başlangıçta seçtiğiniz bölgelere göre değişkenlik gösterebilir. Kurulum sırasında Yüksek kullanılabilirlik seçeneğini aktif ettiğinizde verilerin senkronize edildiği farklı bir bölgede yedek sunucu oluşturabilirsiniz ya da aynı bölgede yedek sunucu kurarak %99,95 kullanılabilirlik derecesi elde edebilirsiniz. Bu seçenek başlangıçta seçili değildir çünkü kullanım maliyetinizi neredeyse 2 katına çıkaracağı için devre dışı bırakılmıştır. Geliştireceğiniz uygulama için Yüksek kullanılabilirlik gerekiyorsa Azure Mysql bu yapılandırma için hazırdır.
Azure'da MySQL Flex Sunucu'ya geçiş yaptığınızda önemli maliyet tasarrufları elde edersiniz. Sunucuyu kullanmadığınızda durdurmanızı sağlayan Başlat/Durdur işlevi gibi özellikleri kullanarak faturaları hemen düşürebilirsiniz. Bu özellik, özellikle geliştirme veya test senaryolarında faydalıdır. Diğer bulut sağlayıcılarına oranla %54’e kadar maliyet tasarrufu elde edebilirsiniz. Ayrıca yıllık taahhüt vermek şartıyla alarak %63'e kadar tasarruf edebilir, MySQL Esnek Sunucu'yu maliyet açısından avantajlı hale getirebilirsiniz.
Azure Mysql İşlem gücü ve depolama yapılandırmasını ihtiyaçlarınıza göre optimize etmenizi sağlayan ayrıntılı bir kontrol sunar ve yalnızca kullandığınız kadar ödeme yapmanızı sağlayan Otomatik Ölçeklendirme gibi seçeneklerle maliyetleri daha da düşürebilirsiniz. Azure MySQL Esnek Sunucu'ya, aşina olduğunuz herhangi bir araç ile bağlanabilir ve sorgu yazabilirsiniz: MySQL CLI, Azure CLI, MySQL Workbench veya Azure Data Studio ya da PHP, Python, C++, Java gibi programlama dillerini kullanarak bağlanabilirsiniz. Her bir aracının kendine özgü avantajları var; örneğin, Azure Data Studio ile Azure AD Kimlik Doğrulaması kullanarak MySQL database’e bağlanabilirsiniz.
Bu demoda, en popüler araçlardan biri olan MySQL Workbench kullanarak MySQL Flex Sunucu'ya bağlanalım. Öncelikle, veri tabanından bazı bağlantı bilgilerini alalım. Flex sunucunuzdaki bağlantı sekmesinden, bağlantı detayları bölümünden bu bilgileri öğrenebilirsiniz. Ardından Workbench’i çalıştırın. Önce sunucu için bir isim ardından Sunucu adını, yönetici adını ve şifreyi yazın. Şifrenizi unuttuysanız, Flex sunucudan tekrar sıfırlayabilirsiniz. Daha sonra SSL bölümünden gerekli seçeneğini seçin ve bağlatınızı test edin. Bunu yaptıktan sonra Azure MySQL database’e erişim sağlayabilirsiniz.
Size çalışabilmeniz için örnek bir SQL scripti içeren bir bağlantı paylaşıyorum. Bu bağlantıyı açıklamalara bırakıyorum. Gelin MySQL Sunucu'daki veri tabanlarına bakalım. Azure Portal'daki Veri tabanı sekmesinden veri tabanlarına göz atabilir ve buradan özel veri tabanları ekleyip silebilirsiniz. Bu kısımdan Yeni bir veritabanı ekleyebilirsiniz. Adını mysqldemodb olarak belirleyip UTF-8 karakter setini seçelim, ardından Kaydet'e tıklayalım. Harika database hazır. Artık kullanmaya başlayabilirsiniz. Data Platform MVP olarak beğendiğim özelliklerden biri de Power BI ile hemen görselleştirmeye başlayabilirsiniz.
Bu yazı, Azure üzerinde MySQL kullanımıyla ilgili genel bilgiler ve uygulamalı bir rehber sunuyor. MySQL'in açık kaynak kodlu bir ilişkisel veritabanı yönetim sistemi olduğu, esnekliği, yüksek performansı ve taşınabilirliği ile ön plana çıktığı belirtiliyor. Azure’da MySQL’i barındırmanın iki yolu var: Azure VM (altyapıyı yönetmek kullanıcıya bırakıyor) ve tamamen yönetilen PaaS hizmeti (kullanıcı sadece uygulamaya odaklanıyor). Azure MySQL, yüksek erişilebilirlik, güvenlik, otomatik yedekleme ve esnek sunucu yapılandırması gibi avantajlarla sunuluyor. Ayrıca, maliyet tasarrufu sağlamak ve performansı optimize etmek için çeşitli ayarlamalar da yapabilirsiniz.
Yorumlar