Amazon Web Servisleri ile Verimliliğinizi Artırın

Yayınlanan: 2022-03-11

Son birkaç yıldır herkesin ağzındaki en sıcak kelime “üretkenlik” oldu. Hızla gelişen İnternet dünyasında, bir şeyi hızlı bir şekilde yapmak her zaman bir artı oy alır. Gerçek iş mantığını hızlı ve doğru bir şekilde uygulamaya ihtiyaç duymama rağmen, deneyimli bir PHP geliştiricisi olarak, veritabanı veya önbellek kurma, projeleri dağıtma, çevrimiçi istatistikleri izleme vb. gibi diğer görevlere hala yüzlerce saat harcadım. Pek çok geliştirici, yıllarca bu sözde çeşitli görevlerle mücadele etti ve proje mantığına konsantre olmak yerine zaman kaybetti.

Dört yıl önce bir arkadaşım Amazon Web Services'ten (AWS) bahsettiğinde hayatım değişti. Yeni bir kapı açtı ve üretkenlik ve proje kalitesinde muazzam bir artışa yol açtı. AWS'yi kullanmayanlar için, zaman ayırmaya değer bulacağından emin olduğum bu makaleyi okuyun.

Verimliliğinizi artırmak

Amazon Web Services (AWS), üretkenliğinizi kelimenin tam anlamıyla dakikalar içinde artırabilir.
Cıvıldamak

AWS Arka Planı

Amazon Web Servisleri resmi olarak 2006'da piyasaya sürüldü. Birçok kişi bunu duymuş olacak, ancak muhtemelen neler sunabileceğini bilmiyor. O halde ilk soru şudur: AWS nedir?

Amazon Web Hizmetleri (AWS), Amazon.com tarafından sunulan bir bulut bilişim platformunu oluşturan, web hizmetleri olarak da adlandırılan bir bulut bilişim hizmetleri topluluğudur.

Vikipedi

Bu tanımdan iki şey biliyoruz: AWS bulut tabanlıdır ve AWS, tek bir hizmet yerine bir hizmetler topluluğudur. Bu size pek bir şey söylemediğinden, bence, yeni başlayanlar için AWS'yi şu şekilde anlamak daha iyidir:

  • AWS, tanımın dediği gibi, buluttaki bir hizmetler topluluğudur.
  • AWS, çevrimiçi olarak hızlı bilgi işlem kaynakları sağlar (örneğin, bir Linux sunucusu kurmak için 10 dakikaya ihtiyacınız vardır).
  • AWS uygun ücretler sunar.
  • AWS, bir veritabanı, önbellek, depolama, ağ ve diğer altyapı hizmetlerini manuel olarak ayarlamak için çok zaman kazandıran, kullanıma hazır, kullanımı kolay hizmetler sunar.
  • AWS her zaman kullanılabilir ve yüksek düzeyde ölçeklenebilir.

AWS'yi kullanmanın elbette daha birçok avantajı vardır, bu nedenle üretkenliğinizi nasıl artırabileceğine dair hızlı bir genel bakışa sahip olalım.

Ücretsiz bir AWS hesabı oluşturun

Herhangi bir hizmeti kullanmaya başlamak için bir hesabınızın olması gerekir. AWS için bir hesap oluşturmak beş dakikadan fazla sürmez. Aşağıdaki bilgilerin elinizde olduğundan emin olun:

  • Bir onay e-postası almak için kullanılan bir E-posta adresi.
  • Kurulum işlemi her zaman ücretsiz olduğu için faturalandırılmayacak bir kredi kartı.
  • Kullanıcıyı tanımlamak için otomatik bir sistem çağrısı alacak bir telefon numarası

Bu kadar. Yukarıda listelenen bilgileri hazır hale getirdikten sonra, AWS web sayfasını ziyaret edin ve takip etmesi kolay talimatları izleyerek bir hesap oluşturun.

Aşağıdakilere dikkat et:

  • Çoğu AWS hizmeti, aylık olarak çok sayıda ücretsiz katman kaynağı sunar. Diğer bir deyişle, AWS'yi test etmek size genellikle çok az maliyetlidir veya hiç maliyeti yoktur.
  • Deneyimlerime göre telefon numarası ve diğer kişisel bilgiler kötüye kullanılmadı

İlk EC2 sunucu kurulumunuzu alın

Bulut hizmetinin avantajlarından biri, isteğe bağlı olarak paylaşılan kaynakları alma yeteneğidir. Amazon, kullanıcının hizmetlerine erişmesi için kolaylık sırasına göre listelenen dört hizmet katmanı sağlamıştır:

  • Yönetim konsolu,
  • Komut Satırı Aracı,
  • SDK,
  • RESTful API.

Bu yazımızda Yönetim Konsolu kullanacağız. Yani konsola giriş yaptıktan sonra aşağıdaki gibi bir ekran göreceksiniz.

AWS'de ilk EC2 sunucunuzu kurma

Dikkat edilmesi gereken iki alan vardır:

  • Sağ üst köşede bölge seçiciyi bulacaksınız. AWS, dünya genelinde 11 farklı bölgede hizmet veriyor ve büyümeye devam ediyor. Tercihiniz olarak bir bölge seçin veya varsayılan olarak ABD Doğu (K. Virginia) olarak bırakın. Farklı bölgeler, kullanımınız arttıkça aklınızda bulundurmanız gereken fiyatlandırmada farklılık gösterebilir.
  • Ekranın çoğu bir hizmet listesiyle doludur. Bu bölümde EC2'yi ele alacağız. AWS'nin neler sağladığına hızlıca bir göz atın. Bir anlam ifade etmezlerse endişelenmeyin, tüm hizmetler kendi kendine çalışacaktır. Ancak, bunların bir kombinasyonunu kullanarak daha fazla üretkenlik elde edeceksiniz.

Bir bulut kaynağının en temel ihtiyacı sanal sunucudur. EC2 veya Elastic Compute Cloud, Amazon tarafından sanal sunucu hizmeti için seçilen addır. Bir Linux sunucusunu çevrimiçi hale getirmenin ne kadar kolay olduğuna bir göz atalım.

  • EC2 yönetim konsolunda, başlatma işlemini aşağıdaki gibi başlatın:

AWS'de ilk EC2 sunucunuzu kurma

  • Başlamak için bir makine görüntüsü (kısaca AMI) seçin. Bu, makinenizi çalıştıracak işletim sistemidir. Tercih ettiğiniz herhangi bir sistemi seçin. Paketleri yönetmek için yum kullanan Amazon Linux ile başlamanızı öneririm:

AWS'de ilk EC2 sunucunuzu kurma

  • Ardından, bir örnek türü seçin. Bunu sanal sunucunuz için donanım belirtiminiz olarak anlayabilirsiniz. t2.micro ile başlayabilirsiniz, çünkü bu örnekle ilk yıl için her ay 750 saat ücretsiz kullanım alacaksınız. Bunun yalnızca kaydolduğunuz tarihten itibaren ilk yıl ve yalnızca t2.micro bulut sunucusu için geçerli olduğunu unutmayın. Yalnızca AWS'nin tadına bakmak istiyorsanız bu iyi bir anlaşma.

AWS'de ilk EC2 sunucunuzu kurma

  • Sunucuyu daha ayrıntılı yapılandırma yeteneği ile sunucuyu başlatabilirsiniz. EC2'yi ilk kullandığınızda aşağıdakine benzer bir ekran göreceksiniz. Güvenlikle ilgili uyarı, Amazon'un güvenlik yönüne ne kadar önem verdiğini bize anlatıyor. Ancak, yönetilen hizmetler bölümünü ziyaret edene kadar bu uyarıyı görmezden gelebiliriz.

AWS'de ilk EC2 sunucunuzu kurma

  • Son olarak, uzak bir sunucuya erişmek için bir kimliğe ihtiyacımız var. AWS, aşağıdaki resimdeki gibi bir SSH anahtar çifti seçmemizi isteyecektir. Gizlilik anahtarı dosyasını indirin ve başlat düğmesine tıklayın. Ve evet, işimiz bitti; yeni bir sanal sunucu yapılandırılıyor ve birkaç dakika içinde hazır olacak.

AWS'de ilk EC2 sunucunuzu kurma

  • Örnek hazır olduğunda, gizlilik anahtarınızla sistemde varsayılan kullanıcı ec2-user olarak oturum açabilirsiniz. ec2-user , sudo yeteneğine de sahip olan AWS varsayılanıdır. Varsayılan kullanıcı adını değiştirmek mümkün olmasa da, istediğiniz kullanıcıyı oluşturabilir ve tercihlerinize göre uygun yetkileri atayabilirsiniz. Sunucunuzun adresi burada bulunabilir:

AWS'de ilk EC2 sunucunuzu kurma

Yukarıdaki işlem beş dakikadan az sürmelidir ve bu, bir sanal sunucuyu bu kadar kolay kurup çalışır hale getirmemizdir. Bir sonraki bölümde, AWS'nin yeni oluşturduğumuz bulut sunucusunu yönetmemize nasıl yardımcı olduğunu öğreneceğiz.

İsteğe bağlı faturalandırma

Çoğu AWS kaynağı, iyi bir esneklik sağlayan saat cinsinden faturalandırılır. Örneğin, az önce oluşturduğumuz EC2 örneğini hizmet dışı bırakmanın iki yolu vardır: durdur ve sonlandır. Her iki işlem de faturalandırmayı durduracaktır. Aradaki fark, bir örneği durdurarak, daha sonra tüm çalışmalarımızı kaydettikten sonra yeniden başlatabilmemizdir. Buna karşılık, bir bulut sunucusunu sonlandırarak, bulut sunucusunu geri dönüştürülmesi için AWS'ye geri veririz ve bilgileri kurtarmanın bir yolu yoktur. Bir bulut sunucusunu sonlandırma ihtiyacı, AWS'nin varsayılan olarak hesap başına bölge başına 20 bulut sunucusu sınırı belirlemesinden kaynaklanır ve durdurulan bir bulut sunucusu, sonlandırılana kadar sayılmaya devam eder.

Bir örneği şu şekilde hızlı bir şekilde durdurabiliriz:

AWS'de ilk EC2 sunucunuzu kurma

EC2 bulut sunucunuzu durdurduğunuzda faturanızın büyümesi de durur. Aşağıdaki senaryolarda özellikle yararlıdır:

  • Yeni bir şey denemek istediğinizde, yalnızca birkaç saat için ödeme yapmanız gerekiyorsa daha uygun maliyetlidir ve muhtemelen bazı hizmetler için ücretsiz katmanı aşmazsınız.
  • Bilgi işlem gereksiniminiz üretim ortamındayken ölçeklenir. Örneğin, geçmişte, genellikle en yoğun kullanımdan yüzde 30-50 daha fazla olan bilgi işlem kaynaklarını ayırmam gerekiyordu. AWS ile kaynakları daha esnek bir şekilde sağlayabilirim:

AWS'de ilk EC2 sunucunuzu kurma

AWS için fiyatlandırma bilgileri çevrimiçi olarak mevcuttur. Bazı hesaplamalar yaptıktan sonra şu soruyu sorabilirsiniz: AWS gerçekten daha mı ucuz? Bir aylık süre için saatlik ücreti çarparsak, hiç rekabetçi değil gibi görünüyor. Cevap evet ve hayır.

İsteğe bağlı kaynağın saatlik ücretini bir ay boyunca basitçe hesaplarsanız AWS daha ucuz değildir. Ancak yine de aşağıda gösterildiği gibi ayrılmış örnek faturalandırma seçeneklerine sahibiz:

AWS'de ilk EC2 sunucunuzu kurma

Minimum kaynak gereksinimleri için, isteğe bağlı bulut sunucusu olarak faturalandırılan diğer değişken kaynaklarla birlikte ayrılmış bulut sunucusunu kullanarak yüzde 30 ila 70 arasında bir indirim elde edebiliriz. Uygulamada, bu, bir yıllık taahhütle yüzde 30 ila 40 daha ucuz ve ayrılmış bulut sunucularının kullanıldığı üç yıllık taahhütle daha da ucuz olacaktır. Bu yüzden yukarıdaki soruya “Evet” oyu vereceğim. Güvenlik ve izleme avantajlarını da dahil ederseniz AWS daha da ucuzdur.

Yönetilen hizmetler

AWS'nin amaçlarından biri, işletim maliyetini mümkün olduğunca ortadan kaldırmaktır. Geleneksel olarak, altyapımızın güvenliğini ve sağlığını yerinde çevrimiçi olarak sürdürmek için büyük bir sistem mühendisleri ekibine ihtiyacımız var. Deneyimli ekipler, süreci basitleştirmek için otomatik araçlarını yazacak ve uygulayacaktır. Ancak, hizmetleri yönetmek de uygulamada karmaşık bir proje haline geliyor. AWS, kaynaklarımızı yönetmemize yardımcı olarak bir cankurtaran görevi görür. Aşağıda, AWS tarafından sağlanan ve en çok kullanılan hizmetlerden bazılarını listeledim:

  • AWS Güvenlik Grubu,
  • IAM, Kimlik Erişim Yönetimi,
  • bulutİzle,
  • Ve OpsWorks gibi (bu makalede ele alınmayacak) otomatik dağıtım hizmetlerinin bir listesi.

AWS Güvenlik Grubu

AWS'nin hizmetlerin erişim kontrolünü nasıl ele aldığı, iki ayrı katmanda yapılır. Ağ düzeyinde, "güvenlik grupları" olarak bilinen bir fikir kullanılarak elde edilir. Tüm AWS hizmetleri güvenlik gruplarındadır. Ve güvenlik grubu, kimin geçmesine izin verildiğini belirler. EC2 bulut sunucumuzu alan AWS, bizim için otomatik olarak bir güvenlik grubu oluşturdu:

AWS'de ilk EC2 sunucunuzu kurma

Gelen/giden kurallarını yapılandırarak nelerin girip nelerin çıkabileceğine karar verebiliriz. TCP, UDP ve ICMP kuralları EC2 hizmeti tarafından desteklenir. Güvenlik grubu, donanım düzeyinde harici bir güvenlik duvarı gibi davranır ve onu yamalamayı asla düşünmemize gerek yoktur.

Güvenlik grubu kullanmanın bir diğer avantajı, yeniden kullanılabilir olmasıdır. Bir güvenlik grubu birçok kaynak arasında paylaşılabilir. Uygulamada, her kaynak için tek tek güvenlik politikası belirleme zorluğunu ortadan kaldırarak bakım verimliliğini büyük ölçüde artırır. Ayrıca, bir güvenlik grubunun paylaşılabilir doğası, onu tek bir yerde yapılandırmamıza ve bu güvenlik politikasını her kaynak için tek tek manuel olarak ayarlama zahmetine girmeden diğer kaynaklara uygulamamıza olanak tanır.

Kimlik ve Erişim Yönetimi

AWS, IAM kullanarak erişim kontrolünü işlemek için başka bir yöntem sağlar. Bu, RESTful arabirimlerine erişmeniz gerektiğinde uygulama düzeyinde bir güvenlik denetimidir. AWS'nin hizmete kimlerin eriştiğini bilmesi için her REST isteğinin imzalanması gerekir. Ayrıca, AWS, önceden yapılandırılmış bir ilkeler listesine göre kontrol ederek, eylemin reddedilip reddedilmeyeceğini veya izin verilmesi gerekip gerekmediğini belirleyecektir.

Bu makalede IAM'yi ayrıntılı olarak ele almayacağız. Ancak, yetkisiz ziyaretçilerin gizli verilerinize erişemeyeceğinden emin olabilmeniz için AWS'nin güvenliğe çok önem verdiğini unutmayın.

bulut izle

CloudWatch, AWS kaynaklarınızdan her türlü ölçümü toplamak ve izlemek için AWS tarafından sağlanan bir hizmettir. Belirli olaylara (veya alarmlara) tepki verme yeteneği nedeniyle daha güçlüdür. CloudWatch'ın yardımıyla yeni oluşturulan EC2 bulut sunucumuzun sağlığını izleyebiliyoruz.

  • EC2 örneğimize hızlı bir şekilde alarm ekleyebiliriz:

AWS'de ilk EC2 sunucunuzu kurma

  • Birçok farklı amaç için kriterler belirlenerek alarmlar oluşturulabilir:

AWS'de ilk EC2 sunucunuzu kurma

NOT : SNS, bildirim göndermek için AWS tarafından sağlanan konu tabanlı bir hizmettir. Bildirimler e-posta, SMS, iOS/Android push bildirimi ve diğer birçok formatta gönderilebilir.

CloudWatch, izlemeden bildirime kadar, izleme ihtiyaçlarını birkaç tıklamayla otomatikleştirmeye çalışır. Çeşitli AWS hizmetleri için önceden tanımlanmış tonlarca ölçüm vardır. İleri düzey kullanıcılar için uygulamanız için özel metrikler bile oluşturabilirsiniz.

Maliyetle ilgili olarak, CloudWatch tarafından sağlanan ücretsiz katman hizmeti genellikle başlangıç ​​projeleri için yeterlidir. Ancak, işletmeniz büyüdüğünde bile, ek maliyetler genellikle hizmet maliyetinin yüzde 1'inden daha azdır. Daha fazla bilgi için ayrıntılı fiyatlandırmayı kontrol edin. CloudWatch kullanarak bir izleme sistemi kurmanın ne kadar kolay olduğu düşünüldüğünde, en çok kullanılan izleme aracı haline geldi.

Sorunsuz uygulama hizmetleri

Geliştiriciler olarak, muhtemelen aşağıdaki senaryoları deneyimledik:

  • Uygulamamızın bir veritabanı bileşenine ihtiyacı var, bu da şu anlama geliyor:
    • Veritabanı için bir sunucu alın.
    • Veritabanı yazılımını yükleyin.
    • Sunucu ve veritabanı için monitörleri yapılandırın.
    • Yedekleme şemaları planlayın.
    • Yazılımı gerektiği gibi yamalayın.
    • Ve burada listelenmeyen birçok başka.
  • Uygulamamızın dağıtılmış dosya deposuna ihtiyacı var, bu da şu anlama geliyor:
    • Dağıtılmış dosya depolama için mevcut açık kaynak (veya ticari) çözümleri bulun.
    • Gerekli sunucuları hazırlayın.
    • Genellikle kolay olmayan seçilen çözümü kurun ve yapılandırın.
    • Sunucu ve veritabanı için monitörleri yapılandırın
    • Ve burada listelenmeyen diğer birçok
  • Uygulamamızın bir önbelleğe ihtiyacı var.
  • Uygulamamızın bir mesaj kuyruğuna ihtiyacı var.
  • Ve çözülmesi gereken diğer birçok sorun, ayrıca ön yapılandırma ve izleme sonrası çalışma yapmamız gerekiyor.

Ve zaten tahmin edebileceğiniz gibi, bu, AWS'nin yardımcı olduğu bir başka önemli alandır. Çok sayıda uygulama düzeyinde hizmet mevcuttur, bu nedenle başka bir şey düşünmeniz gerekmeyecektir.

Size hızlı bir resim vermek için bazılarını ele alalım.

RDS, veritabanı sizin için yönetilir, ancak sizin tarafınızdan değil

İlişkisel veritabanları (RDBMS), birçok uygulama tarafından yaygın olarak benimsenmiştir. Üretim ortamında, RDBMS kullanarak uygulamaları dağıtırken, veritabanının nasıl kurulacağı ve yapılandırılacağı, ardından yedeklemelerin ne zaman ve nasıl yapılacağı ve geri yükleneceği ile başlayarak her zaman özel dikkat gerekir.

Ekibimizde, Veritabanı Yöneticimiz (DBA) zamanının en az yüzde 30'unu kurulum ve bakım komut dosyaları yazmaya harcıyordu. AWS RDS'nin kullanıma sunulmasıyla birlikte DBA'mız, DBA'nıza yatırım yapmak için tercih edilen alan olan SQL performans ayarlaması yapmak için daha fazla zamana sahip oldu.

Peki, RDS size ne sunuyor? Kısacası:

  • RDS, MySQL, SQLServer, PostgreSQL dahil olmak üzere popüler veritabanı motorlarının çoğu için destek sağlar.
  • Düğüm veya küme gibi bir veritabanı birkaç tıklamayla oluşturulabilir.
  • RDS, "Parametre Grubu" adlı hizmet altında, paylaşılan veritabanı parametreleri için yerleşik destek sunar.
  • RDS, EC2 için ele aldığımıza oldukça benzeyen Güvenlik Grubu yardımıyla erişim yönetimi için yerleşik destek sağlar.
  • RDS, Multi-AZ'yi tek bir tıklamayla etkinleştirerek ek hizmetler sunar. Tüm izleme, bekleme ve yük devretme geçişleri otomatik olarak yapılır.
  • RDS'nin bakımı ve yedeklenmesi otomatikleştirilmiştir.

Sonuç olarak, RDS, veritabanı hizmetlerinin kurulumu ve bakımı söz konusu olduğunda önemli miktarda zaman tasarrufu sağlar. Karşılığında, ilgili EC2 sunucusundan yaklaşık yüzde 40 daha fazla ödeyeceksiniz. Bu nedenle, RDS'yi seçmek veya ilgili sunucuyu kendi başınıza dağıtmak bir iş kararıdır. Ancak, altyapı istikrarı ve ölçeklenebilirliği yerine gerçek işle ilgili işlere daha fazla zaman ayırmanıza olanak tanır. Ayrıca, kısa süre sonra bunun AWS iş savunucularının tarzı olduğunu fark edeceksiniz.

Milyarlarca kayda ölçeklenen bir anahtar-değer depolaması olan Dynamo DB

NoSQL, son yıllarda favori bir konu haline geldi. Birçok gerçek hayat projesinin çeşitli ilişkisel VTYS desteğine ihtiyacı olmadığından, piyasaya NoSQL veritabanlarının bir listesi sunulmuştur. Amazon bu konuda geri kalmıyor. DynamoDB (https://aws.amazon.com/dynamodb), Amazon tarafından 2012'de duyurulan anahtar-değer deposudur ve bu hizmete en çok katkıda bulunan kişi, ultra-destek konusunda dünyanın en iyi uzmanlarından biri olan Amazon'un CTO'su Werner Vogels'dir. ölçeklenebilir sistemler

Amazon'un yoğun trafiği idare ettiği bir sır değil. DynamoDB, her Noel'de milyarlarca isteğe hizmet eden alışveriş sepeti hizmeti de dahil olmak üzere birçok Amazon işletmesi için dahili depolama motoru olan Dynamo'dan türetilmiştir. DynamoDB'nin ölçeklendirme konusunda herhangi bir sınırlaması yoktur.

Ayrıca, Cassandra veya MongoDB gibi diğer NoSQL çözümleriyle karşılaştırıldığında, DynamoDB'nin muazzam bir ekonomik avantajı vardır; gerçek zamanlı olarak artırılabilen veya azaltılabilen ayrılmış çıktı birimi (saniyede kaç yazma/okumaya izin verilir) cinsinden faturalandırılır. Aşağıda, DynamoDB ile diğer bağımsız NoSQL çözümü arasında bir maliyet karşılaştırma tablosu bulunmaktadır:

İş İhtiyacı DinamoDB hizmeti DynamoDB maliyeti Başka bir hizmet kullanmak Başka bir hizmeti kullanırken maliyet
Küçük iş
(1000 DAU'dan az, 16 GB veri)
10 yazma birimi
10 okuma birimi
$9.07/ay • t1.mikro ••
16GB EBS •••
14.64$/ay
Orta Ölçekli İşletme
(100.000 DAU'dan az, 160 GB veri)
100 yazma birimi
100 okuma birimi
$101.62/ay m4.xlarge
160 GB EBS
190,95 $/ay
Büyük İşletme
(1m DAU'ya kadar, 1TB veri)
1000 yazma birimi
1000 okuma birimi
$852,58/ay Kümelenmiş c4.4xlarge • 512 GB EBS • 1329,24$/ay

• adil olmak gerekirse, fiyat ABD-Doğu bölgesinde talep üzerine fiyatlandırma kullanılarak hesaplanır
•• AWS EC2 bulut sunucuları, diğer NoSQL hizmetlerini barındırmak için seçilir
••• EBS, AWS tarafından sağlanan kalıcı depolama hizmetidir

Tablodan da okuyabileceğimiz gibi, DynamoDB hizmetini kullanıma hazır ve genellikle kendi anahtar/değer depolamanızı oluşturmaya kıyasla daha düşük bir fiyata sunar. Bunun nedeni, MongoDB/Cassandra kümenizin maksimum kapasitesine ulaşmadığınız sürece, hiç kullanmadığınız bir şey için daha fazla ödeme yapıyor olmanızdır.

Amazon, hizmetini tamamen yönetilen bir şekilde sunar. Bu, DynamoDB'nizi nasıl kuracağınız, ölçekleyeceğiniz veya izleyeceğiniz konusunda endişelenmenize gerek olmadığı anlamına gelir; hepsi AWS tarafından yapılır. Aslında, DynamoDB öğelerinin okunması ve yazılması, manipüle edilen verilerin boyutundan bağımsız olarak her zaman sabit zaman karmaşıklığı içinde ölçülür. Bu nedenle, bazı uygulamalar DynamoDB'ye geçtikten sonra önbellek katmanlarını atmayı seçmiştir. Gerçekten harika.

SQS, dağıtılmış kuyruk hizmeti

Büyük hacimli verilerle çalışırken, genellikle hesaplamaları birçok bilgi işlem düğümüne dağıtırız. Küresel olarak iş yaparken, coğrafi olarak geniş bir aralıkta dağıtılan düğümlerden toplanan verileri işlemek için genellikle bir boru hattına ihtiyaç duyarız. AWS, bu tür olayların gereksinimlerinin karşılanmasına yardımcı olmak için SQS, Basit Kuyruk Hizmeti'ni sunar. Onaylanmış birçok kuyruk hizmeti gibi, SQS de mesajları/işleri farklı mantıksal bileşenler arasında kalıcı bir şekilde iletmek için bir yol sunar.

Adından da anlaşılacağı gibi SQS, AWS'nin başlangıcında bulunan temel bir hizmettir. Ancak Amazon, sürekli olarak SQS geliştirmektedir ve ihtiyaca bağlı olarak SQS, birçok özelleştirilebilir parametreyle ihtiyacınız olduğu kadar basit veya güçlü olabilir. SQS'nin gelişmiş özelliklerinden bazıları şunlardır:

  • Mesajları 14 güne kadar saklama.
  • Bir arıza durumunda mesaj kaybını önlemek için görünürlük mekanizması.
  • Mesaj başına teslimat gecikmesi.
  • Başarısız iletileri işlemek için yeniden yönlendirme politikası (sözde ölü mektup).

Kuyruk hizmetleri çok karmaşık olmamalıdır. SQS'yi tanıtmak için neden bütün bir bölümü kullanmaya değer olduğunu merak edebilirsiniz. Belki de nedenini zaten tahmin ettiniz; diğer AWS hizmetleri gibi, SQS de tam olarak yönetilen bir hizmettir, yani:

  • Kuyruk son derece ölçeklenebilir; içinden geçtiğiniz onlarca mesaj veya saniyede milyonlarca mesaj olabilir, bu nedenle SQS anında ölçeklenir.
  • Kuyruk kalıcıdır ve dağıtılır, bu da kritik verilerin süresi dolmadıkça kaybolmayacağı anlamına gelir.
  • Kuyruk yazılımınızı dağıtmak için bir sunucu kurmanız gerekmez. Ve elbette, hizmet için karmaşık izleme kurmanız da gerekmez.

S3, bir dosya deposu, ancak yalnızca bir dosya deposu değil

S3, Basit Depolama Hizmeti anlamına gelir ve son kullanıcı için bir hizmet olarak Dropbox gibidir, ancak bu uygulamalar içindir. Tanım olarak S3, basit bir web arayüzüne sahip nesne tabanlı bir depolamadır.

S3, kullanıcı için basittir, ancak aynı zamanda birçok gelişmiş özellik ile birlikte gelir. I S3, özellikle diğer AWS hizmetlerini kullanan uygulamalar için bir endüstri standardı haline geldi. Bunun temel nedeni, S3'ün entegrasyonunun çok kolay olması ve çoğu AWS hizmeti için popüler bir harici depolama hedefi haline gelmesidir. Ayrıca DynamoDB, SQS vb. gibi birçok hizmet dahili olarak S3'ü yoğun olarak kullanır.

S3'ü anlamak, diğer AWS tarafından yönetilen hizmetleri kullanmanın avantajlarını artırmalıdır. Bunun nedeni, hizmetlerin çoğunun yedeklerini S3'te depolamasıdır. Ayrıca S3, DynamoDB, RDS ve Redshift dahil ancak bunlarla sınırlı olmamak üzere hizmetler için ortak dışa aktarma/içe aktarma hedefidir.

Son olarak, S3 diğer AWS hizmetleri gibidir; tamamen yönetilir, böylece herhangi bir sunucu veya yük devretme mekanizması kurmadan hizmeti kullanmaya başlayabiliriz. Ekonomi açısından, S3 aynı zamanda kullandığın kadar öde hizmetidir, bu nedenle her zaman fazla maliyet olmadan deneyebilirsiniz.

Daha gelişmiş hizmetler ve SDK

Kayda değer başka birçok AWS hizmeti de vardır. Sınırlı alan nedeniyle, burada sadece bazı ilginç olanları listeliyoruz:

  • Redshift: Trilyonlarca veriyi çok hızlı bir şekilde işlemek için kullanılabilen sütun tabanlı bir veritabanı. Büyük miktarda verinin ETL'sinden sorumluysanız bunu denemelisiniz.
  • Data Pipeline: AWS hizmetleri arasında hızlı bir şekilde veri aktarmanıza olanak tanır ve ayrıca verilerin daha küçük bir parçada periyodik olarak işlenmesini sağlar.
  • ElastiCache: Yönetilen Memcache sunucusu, basit ama işi mükemmel yapıyor.
  • Lambda: Yeni nesil bulut bilişim. Lambda, dağıtılmış uygulamalar tasarlamak için yeni bir kapı açan olay odaklı bir şekilde yüklenen bir kod parçasını çalıştırır.
  • Route53: Diğer endüstriyel standart DNS çözümlerinin üstünde ağırlıklı yanıt, coğrafi konum tabanlı yanıt desteği ile güçlü DNS çözümü.
  • SNS: Abone/yayıncı modelinde tasarlanmış, kullanımı kolay bildirim hizmeti.
  • Çok daha fazlası.

Uygulamanıza yeni bir bileşen eklediğinizde AWS'yi kontrol etmenin iyi bir alışkanlık olduğunu düşünüyorum. Çoğu zaman, AWS size hazır bir SaaS alternatifi sunacağı için size tatlı bir sürpriz verecektir.

Ayrıca, RESTful arayüzlerine erişimi kolaylaştırmak için Amazon, neredeyse tüm popüler programlama dillerinde SDK'lar sağlamıştır. Favori SDK'nızı bulmakta sorun yaşamazsınız.

Özet

Bu makalede AWS'nin en yaygın kullanılan hizmetlerinden bazılarını ele aldık. Elbette AWS'nin işinize yardımcı olacağı bazı alanlar vardır. Örneğin, mevcut bir hizmet bileşenini MySQL veritabanı gibi AWS eşdeğerine RDS'ye geçirmeyi seçebilirsiniz. Yazılımımın bu bileşeni için herhangi bir AWS hizmeti olup olmadığını kendinize sorarken bulabilirsiniz. Bu nedenle, bugün bir AWS hesabı edinin ve dakikalar içinde üretkenliğinizi artırın.


Toptal Mühendislik Blogunda Daha Fazla Okuma:

  • Bulutta Bulut için Geliştirme: AWS'de Docker ile Büyük Veri Geliştirme
  • Ödevini Yap: 7 AWS Sertifikalı Çözüm Mimarı Sınavı İpuçları
  • AWS SSM Kullanarak SSH Günlüğü ve Oturum Yönetimi
  • TypeScript ve Jest Desteğiyle Çalışmak: Bir AWS SAM Eğitimi