BULUT TEKNOLOJİSİ VE AWS: YOLCULUĞA HOŞ GELDİNİZ!

Miray TOPAL
5 min readSep 4, 2023

--

Yeni bir makaleden size “Merhaba” demekten mutluluk duyuyorum! :) Öğrenmek, içselleştirmek ve paylaşmak benim için büyük bir keyif. Öğrenme yolculuğumu bulut teknolojilerine çevirdiğim bu dönemde AWS ile ilgili görece kısıtlı kaynakların olduğu bu ortamda yazılacak doğru şeylerin kıymetli olabileceğini düşünüyorum bu yüzden hemen başlayalım!

Bir işletmenin uygulamalarını çalıştırmak için bir ham bilgi işlem kapasitesine ihtiyacı vardır. Bunu kendi bünyesinde yapabilmesi için fiziksel bir altyapı kurmak gerekir. Bu altyapı kurma maliyetleri onları kullansak da kullanmasak da karşılamamız gereken maliyetlerdir ve ölçeklendirmeye(scaling) pek uygun değildir. İşte tam da bu noktada bulut sistemleri devreye girmiştir. Bu sistemlerle fiziksel olarak bir sunucu sahibi olmadan bulut sistemlerin fiziksel altyapısını kullanarak sanal sunucular kurarak işletmenin compute ihtiyacını karşılayabiliriz.

Bu noktada AWS’den biraz bahsetmeye başlayabiliriz. AWS, Amazon firmasının kullanıma sunduğu bulut hizmetlerinin adıdır. Diğer bulut sunucularında da olduğu gibi çeşitli hizmetler vasıtasıyla kullanıcılarına gerekli bilgi işleme kapasitesi(compute) için fiziksel altyapı sunar.

AWS’nin kullanıcılarına sunduğu kullanım tekliflerine buradan bir göz atabilirsiniz. AWS yeni kaydolan kullanıcılarına belirli hizmetler için ücretsiz veya bir limit dahilinde(süre, kullanım kotası) ücretsiz olacak şekilde bazı kullanım hakları sağlıyor. Bu hakları bilmek ve doğru kullanmak ileride doğabilecek faturaların engellenmesi veya minimumda tutulması için önemlidir diyerek konuya devam ediyorum.

AWS’nin Altyapısı

Herhangi bir bulut bilişim hizmetinin temeli, büyük ve güvenilir veri merkezlerinde barındırılan fiziksel altyapıdır. AWS, dünya çapında farklı coğrafi bölgelerde bulunan veri merkezlerini gruplara ayırır ve her bir grup bir “Bölge”(Region) olarak adlandırılır. Her bölge, bağımsız güç kaynakları, ağ bağlantıları ve veri merkezleri içerir. Bu yapı, yüksek kullanılabilirlik ve yük dengelemesi sağlamak amacıyla kullanılır. AWS’de her bölge bir kodla temsil ediliyor, aşağıda bazı Bölgelere ait kod örneklerini görebilirsiniz.

Şekil 1: AWS Bölge(Region) kodları

AWS Küresel Altyapısı

AWS, birden fazla bölgeyi kapsayan geniş bir ağı kullanır. Bu altyapı, hizmetlerin yüksek oranda erişilebilir ve dayanıklı olmasını sağlar. AWS’nin altyapısı, farklı coğrafi bölgelerde bulunan birçok Bölgeye(Region) sahiptir. Her bölge, bir veya daha fazla “Erişilebilirlik Alanı” (Availability Zone) içerir. Erişilebilirlik alanları, yüksek oranda yedeklilik ve izolasyon sağlayan farklı veri merkezlerini ifade eder.

Şekil 2: Bölge(Region) ve Erişebilirlik Alanları (Availability Zone(AZ))

AWS’nin fiziksel olarak sunucuları nasıl sağladığını anladık, peki bu bilgiyi nasıl kullanacağız? Uygulamalarınızın veya iş yüklerinizin hangi AWS bölgesinde barındırılacağına karar vermeniz için dört ana unsur göz önüne almanız gerekir: gecikme süresi, fiyat, hizmet kullanılabilirliği ve uyumluluk.

Gecikme: Uygulamanız gecikmeye duyarlıysa kullanıcı tabanınıza yakın bir bölge seçerek gecikmeyi azaltabilir ve müşterilerinizin uzun süre beklemelerini önleyebilirsiniz. Oyun, telefon, WebSockets ve IoT gibi eşzamanlı uygulamalar, yüksek gecikmeden önemli ölçüde etkilenir, ancak e-ticaret uygulamaları gibi eşzamanlı olmayan iş yükleri bile kullanıcı bağlantısı üzerindeki etkilerden zarar görebilir.

Fiyat: Farklı Bölgelerde veri merkezlerinin işletilmesi nedeniyle fiyatlar değişebilir. AWS, dünya çapında sabit bir ücretlendirme yapmak yerine konuma özel finansal faktörlere göre ücretlendirme yapar.

Servis Uygunluğu: AWS’nin sunduğu her hizmet her bölgede kullanılamayabilir, bölge seçimi yaparken bunu göz önünde bulundurmanız gerekir.

Veri uyumluluğu: Bazı şirketler, müşteri verilerini belirli bir coğrafi bölgede saklanmasını gerektiren düzenlemelere uymak zorundadır. Eğer bu tür bir gerekliliğiniz varsa, bölge seçimini buna göre yapmalısınız.

AWS İle Etkileşim

Evet, gereksinimlerimize uygun bölgeyi seçtik şimdi AWS ile etkileşime geçerek ilgili kaynakları kullanmaya başlayabiliriz. AWS ile etkileşime geçmek için üç temel yol vardır: AWS Management Console, AWS Command Line Interface (CLI) ve Software Development Kit (SDK’lar).

AWS Management Console: Yeni başlayanlar için AWS Management Console en kolay yoldur ve AWS arayüzü üzerinden hizmetlere erişerek manuel olarak işlemleri gerçekleştirmemizi sağlar.

Şekil 3: AWS Management Console

AWS Command Line Interface (CLI): AWS hizmetlerine komut satırı aracılığıyla erişmenizi sağlayan bir araçtır. AWS CLI’i kullanarak; EC2 örnekleri oluşturmak, veritabanı yedekleme işlemleri, kaynakların oluşturulması ve sonlandırılması gibi işlemleri manuel olarak yapmak yerine otomatize olarak gerçekleştirebilirsiniz Bu özellikle büyük ve karmaşık AWS altyapısına sahip olanlar için faydalı olabilir.

Software Development Kit(SDK’lar): Amazon Web Services (AWS) için SDK’lar, geliştiricilere AWS hizmetleriyle programatik olarak etkileşim kurma yeteneği sağlar. Bu SDK’lar, farklı programlama dillerinde (örneğin, Python, Java, JavaScript, .NET vb.) mevcuttur ve AWS hizmetlerine erişmek, veri işlemek, hizmetleri yönetmek, uygulama geliştirmek ve hizmetleri özelleştirmek için kullanılırlar. Geliştiriciler, uygulamalarını AWS hizmetleriyle entegre etmek ve özelleştirmek için genellikle AWS SDK’larını tercih ederler.

AWS kullanırken iyi bilmemiz gereken bir konu da kimlik doğrulama ve yetkilendirme meselesidir. Erişim yönetimini doğru şekilde yapabilmek için bu kavramları iyi bilmek ve kullanıcıları buna göre yönetmek önemlidir.

Kimlik doğrulama, bir kullanıcının sisteme giriş yapmaya yetkili olup olmadığını belirlemek için kullanılır. Kullanıcı adları ve parolalar, kimlik doğrulamanın temelini oluşturur, ancak token tabanlı kimlik doğrulama veya biyometrik veriler gibi diğer yöntemler de kullanılabilir.

Yetkilendirme, bir kullanıcının belirli eylemleri gerçekleştirmesine (kaynakları okumak, düzenlemek, silmek veya oluşturmak) izin verip vermeyeceğini belirler. Yetkilendirme, “Kullanıcı hangi işlemleri gerçekleştirebilir?” sorusuna yanıt verir.

AWS Kullanıcı Türleri

AWS Root User(AWS Kök Kullanıcı): Kök kullanıcı, AWS hesabının sahibi veya kurucusu olarak varsayılan olarak oluşturulan ilk kullanıcıdır ve AWS hizmetlerine tam erişime sahip olur. En üst seviye yetkilendirmeye sahip bu hesabın kullanılması kimlik bilgilerinin çalınması gibi durumlarda büyük riskler oluşturabileceği için AWS tarafından bunu yerine IAM (Identity and Access Management) kullanıcıları ve rolleri oluşturmanız önerilir. Yani AWS’ye ilk girdiğinizde seçmeniz gereken kullanıcı çeşidi IAM kullanıcıdır.

Şekil 4: AWS’de Giriş Kullanıcı Seçenekleri

IAM User’a birazdan geleceğiz ama önce IAM kavramını tanıyalım.

IAM Nedir?

IAM, AWS hesabınıza ve kaynaklarınıza erişimi yönetmenize olanak tanıyan bir web hizmetidir. Ayrıca AWS hesabınızda kimlere ve nelere izin verildiğine (kimlik doğrulama) ve AWS kaynaklarınızı kullanma ve bunlarla çalışma izinlerine (yetkilendirme) sahip olanlara ilişkin merkezi bir görünüm sağlar.

IAM User: IAM kullanıcısı, AWS ile etkileşime giren bir kişiyi veya hizmeti temsil eder. Kullanıcıyı AWS hesabınızda tanımlarsınız. Ve bu kullanıcı tarafından gerçekleştirilen tüm etkinlikler hesabınıza faturalandırılır. Bir AWS hesabı için birden çok IAM user oluşturabilir ve çeşitli yetkiler verebilirsiniz. Bu birkaç kullanıcı için kullanışlı olabilse de sayı arttıkça yetkileri düzenlemek oldukça karmaşık hale gelebilmektedir. İşte burada karşımıza IAM Group kavramı çıkar.

IAM Grubu (IAM Group): IAM grubu, birden çok IAM kullanıcısını bir araya getiren bir yapıdır. Gruba atanmış izinler, tüm üyelere otomatik olarak devredilir. Bu, çok sayıda kullanıcı için izinleri daha kolay yönetmenize olanak tanır. Özellikle büyük organizasyonlarda kullanışlıdır.

Son olarak IAM Gruplarının bazı özelliklerini belirtmekte fayda var

  • Grupların çok sayıda kullanıcısı olabilir.
  • Kullanıcılar birçok gruba ait olabilir.
  • Gruplar gruplara ait olamaz.

IAM konseptini anladıktan sonra, AWS hesabınızı oluşturabilir, bölge seçiminizi yapabilir ve kullanıcıları doğru şekilde yönetebilirsiniz. Bu, AWS’nin sunduğu hizmetlere daha etkili bir şekilde erişmenize ve kullanmanıza yardımcı olacaktır. AWS’de çok fazla kavram ve hizmet olduğu için konuları bölerek bir makale dizisi haline getireceğim. İkinci makalemizin konusu AWS’de compute hizmetleri. İkinci yazıda görüşmek üzere :)

Kaynaklar

[1] https://aws.amazon.com/tr/?nc2=h_lg

[2] https://www.coursera.org/learn/aws-cloud-technical-essentials/home/welcome

--

--