Ana içeriğe geç

Amazon Simple Queue Service (SQS): Kapsamlı Bir Eğitim

Bu eğitim, AWS üzerinde ölçeklenebilir dağıtık uygulamalar kurmak için Amazon SQS kuyruklarını nasıl oluşturacağınızı, yöneteceğinizi ve kullanacağınızı; konsol ve CLI ile pratik örneklerle öğretir.
· 15 dk. oku

Yapay Zeka ile Keşfedin

Amazon Simple Queue Service (SQS), Amazon Web Services (AWS) tarafından sunulan, tamamen yönetilen bir mesaj kuyruklama servisidir. Dağıtık sistemleri, mikro hizmetleri ve sunucusuz uygulamaları ayrıştırmayı ve ölçeklendirmeyi mümkün kılar.

Bu rehber, AWS SQS’yi açık bir şekilde anlatır; özelliklerini, kuyrukları kurma ve yönetme süreçlerini kapsar. Ayrıca mesaj gönderme ve alma yöntemlerini, fiyatlandırma modellerini, izleme ve metrikleri ele alır; SQS ile SNS’yi karşılaştırır ve en iyi kullanım için öneriler sunar. 

AWS konusunda geçmişi olmayanlar için Introduction to AWS kursumuz iyi bir başlangıç noktasıdır. Amazon Web Services dünyasını keşfetmenize ve neden bulut bilişimin ön saflarında yer aldığını anlamanıza yardımcı olur.

AWS SQS nedir?

Detaylara dalmadan önce, AWS SQS’nin ne olduğunu ve AWS ekosisteminde neden bu kadar değerli olduğunu anlayalım.

AWS SQS architecture diagram

Amazon SQS mimari diyagramı

AWS SQS, web servis uygulamalarının üreticiler tarafından oluşturulan mesajları hızlı ve güvenilir bir şekilde kuyruğa alıp tüketiciler tarafından tüketilmesini sağlayan dağıtık bir kuyruklama sistemidir.

Kuyruk, işlemeyi bekleyen mesajlar için geçici bir depo görevi görür. Amazon SQS, yeniden deneme yetenekleri de sunar; redrive policy (yeniden yönlendirme ilkesi) sayesinde birden fazla deneme yapılabilir ve sorunlu mesajları yönetmek için dead letter queue’lar (DLQ) kullanılabilir. Bu yaklaşım geliştiricileri sorunlardan haberdar eder ve istenirse mesajların daha sonra yeniden işlenmek üzere saklanmasını sağlar.

SQS özellikleri ve faydaları

SQS kullanmanın pek çok faydası vardır; bunlardan bazıları şunlardır:

AWS SQS key features and benefits

AWS SQS’nin başlıca özellikleri ve faydaları

  • Ölçeklenebilirlik: Altyapı sağlama veya yönetme ihtiyacı olmadan herhangi bir trafik miktarını işleyebilir.
  • Dayanıklılık: Mesajlar birden çok erişilebilirlik alanında yedekli olarak saklanır.
  • Kullanılabilirlik: Mesaj üretimi ve tüketimi için yüksek kullanılabilirlik sunar.
  • Güvenlik: Mesaj içeriklerini korumak için sunucu tarafı şifreleme (SSE) sağlar.
  • Esneklik: Birden fazla mesaj formatını destekler ve çeşitli AWS servisleriyle birlikte kullanılabilir.

Mikro hizmetleri ayrıştırma ve ölçeklendirmede kullanım örnekleri

SQS’nin faydalarından yararlanabilecek birçok sektör kullanım senaryosu vardır; bunlardan bazıları aşağıda gösterilmiştir:

AWS SQS use cases in decoupling and scaling microservices

Mikro hizmetleri ayrıştırma ve ölçeklendirmede AWS SQS kullanım örnekleri

  • İş kuyruğu: Görevleri birden çok çalışan süreç arasında dağıtın.
  • Veritabanı yazımları için tampon: Aşırı yazma yüküne karşı bir veritabanını koruyun.
  • İstek boşaltma: Yavaş işlemleri etkileşimli istek yollarından çıkarın.
  • Toplu işleme: Bir grup mesajı toplayıp tek seferde işleyin.

AWS SQS’yi Kurma

Artık SQS’nin ne olduğunu bildiğimize göre nasıl kurulacağını inceleyelim. Bu bölüm, ön koşullar ve SQS konsoluna erişim konusunda size yol gösterecek.

Ön koşullar

AWS SQS’yi kullanmaya başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Aktif bir AWS hesabı. resmi sayfadan oluşturulabilir.
  • SQS erişimi için gerekli IAM roller ve izinleri.

IAM izinlerini ayarlamak için:

  • IAM konsoluna gidin.
  • Yeni bir ilke (policy) oluşturun.

Setting Up AWS SQS

AWS SQS’yi kurma

  • İlke oluşturmak için iki ana seçenek vardır: görsel yaklaşım veya JSON. Bizim senaryomuzda, daha sezgisel olduğu için görsel yaklaşımı kullanıyoruz. 
  • “Service” alanından “SQS”yi seçin ve Effect değerini “Allow” olarak ayarlayıp şu izinleri verin: sqs:CreateQueue, sqs:DeleteQueue, sqs:SendMessage, sqs:ReceiveMessage, sqs:DeleteMessage.

Setting Up AWS SQS

AWS SQS’yi kurma

  • Eylemlere “All” kaynaklara erişim izni verin ve “Next”i seçin.
  • İlkeye bir ad verin; bizim örneğimizde “SQSHandsOnPolicies” ve son olarak ilkeyi oluşturun.

Setting Up AWS SQS

AWS SQS’yi kurma

Son ilke JSON formatında şu şekilde görünmelidir:

Setting Up AWS SQS

AWS SQS’yi kurma

İlke tanımımıza kısaca bakalım:

  • “Version”: “2012-10-17”, IAM ilke dilinin güncel sürümüdür.
  • İlke bir adet “Statement” içerir; bu bölüm izin kümesini tanımlar.
  • “Sid”: “VisualEditor0”, ilkenin görsel düzenleyiciyle oluşturulduğu anlamına gelir.
  • “Effect”: “Allow”, bu eylemlere izin verildiğini belirtir.
  • “Action”: Bu liste, yukarıda belirtilen SQS işlemlerinin hangilerine izin verildiğini belirtir:
  • “Resource”: “*”, bu eylemlerin hesaptaki tüm SQS kaynakları üzerinde izinli olduğu anlamına gelir.

Bu ilke, hesaptaki herhangi bir SQS kuyruğu üzerinde oluşturma, silme, gönderme ve alma işlemlerine tam erişim verir. Oldukça izin vericidir; üretim ortamında güvenliği artırmak için belirli kuyruk ARN’leriyle sınırlandırmak isteyebilirsiniz.

IAM yapılandırması hakkında daha fazla bilgi edinmek isterseniz, The Complete Guide to AWS Identity and Access Management (IAM) eğitimi; AWS ortamınızı güvence altına almayı, kullanıcılar, gruplar ve rollerle erişimi yönetmeyi ve sağlam güvenlik için en iyi uygulamaları öğretir.

AWS yapılandırması bilginizi derinleştirmek için, How to Setup and Configure AWS: A Comprehensive Tutorial eğitimi; temel ayarları, güvenlik için en iyi uygulamaları ve AWS Servislerinden veri analizi ile makine öğrenimi için nasıl yararlanılacağını keşfetmenize yardımcı olur.

Amazon SQS konsoluna erişim

Ön koşullar tamamlandığında, kuyruk oluşturmaya ve yönetmeye başlamak için bir sonraki adım SQS konsoluna erişmektir. Konsola erişim adımları şöyledir:

  • Üstteki arama çubuğuna "SQS" yazın ve açılır listeden "Simple Queue Service"i seçin.
  • SQS panosuna yönlendirileceksiniz.

Accessing the Amazon SQS Console

Amazon SQS konsoluna erişim

SQS Kuyrukları Oluşturma ve Yönetme

SQS konsoluna erişimle birlikte kuyruk oluşturmaya ve yönetmeye başlayabiliriz. Bu bölüm, standart ve FIFO kuyruklarının oluşturulmasını adım adım anlatır.

Peki IAM İlkemiz burada nasıl devreye giriyor?

Ön koşullar bölümünde oluşturduğumuz IAM ilkesi, kuyruk oluşturma ve yönetimi için kritik öneme sahiptir. Şu şekilde rol oynar:

  • Kullanıcı veya rol ilişkilendirmesi: İlke, SQS konsoluna veya AWS CLI’a erişmek için kullandığınız IAM kullanıcıya ya da role eklenmelidir.
  • İzin kontrolü: Bir kuyruk oluşturmaya (veya başka bir SQS işlemi yapmaya) çalıştığınızda AWS, gerekli izinlere sahip olduğunuzdan emin olmak için bu ilkeyi kontrol eder.
  • Eylem yetkilendirme: İlkemizdeki sqs:CreateQueue izni, özellikle kuyruk oluşturmayı mümkün kılar. Bu olmadan kuyruk oluştururken "Access Denied" hatası alırsınız.
  • Süregelen işlemler: İlkedeki diğer izinler (sqs:SendMessage, sqs:ReceiveMessage, sqs:DeleteMessage, sqs:DeleteQueue), kuyruk oluşturulduktan sonra çeşitli işlemleri yapmanıza olanak tanır.

Bunu anladığımıza göre, standart bir kuyrukla başlayarak kuyruklarımızı oluşturmaya devam edelim.

Standart kuyruk oluşturma

Standart kuyruklar SQS’de varsayılan kuyruk türüdür. Oluşturma adımları şöyledir:

  • SQS panosunda "Create queue"ya tıklayın.
  • Kuyruk türü olarak "Standard"ı seçin.
  • Kuyruk için bir ad girin; bizim senaryomuzda “SQSHandsOn”.
  • Kuyruk ayarlarını yapılandırın: Görünürlük zaman aşımı, Mesaj saklama süresi, Maksimum mesaj boyutu ve Teslim gecikmesi. Bu değerleri varsayılanda bırakalım ve “Create queue”ya tıklayalım.

Creating a Standard Queue

Standart kuyruk oluşturma

Başarılı bir kuyruk oluşturma işlemi, aşağıda gösterildiği gibi oluşturmayı onaylayan bir mesaj ve kuyruğa ilişkin ek bilgiler üretir.

Creating a Standard Queue

Standart kuyruk oluşturma

FIFO kuyruk oluşturma

FIFO kuyruklar, mesaj işleme sırasını garanti etmek için kullanılır; oluşturma adımları aşağıdadır: 

  • SQS panosunda "Create queue"ya tıklayın.
  • Kuyruk türü olarak "FIFO"yu seçin.
  • Kuyruğunuza bir ad verin (sonu mutlaka “.fifo” ile bitmelidir). Benimkine “SQSHandsOn.fifo” adını verdim.
  • Yukarıdaki senaryoya benzer şekilde, diğer her şeyi varsayılanda bırakın ve “Create queue”yu seçin. 

Creating a FIFO Queue

FIFO kuyruk oluşturma

Standart kuyrukta olduğu gibi, FIFO kuyruğunun başarılı oluşturulması da mesaj göndermek için kullanılan aynı ayrıntıları sağlar.

Creating a FIFO Queue

FIFO kuyruk oluşturma

Standart ve FIFO kuyruklar arasındaki farklar

Amazon SQS’de standart ve FIFO kuyruklar arasında seçim yaparken, farklı özellik ve kabiliyetlerini anlamak önemlidir. 

Aşağıdaki tablo, uygulamanızın ihtiyaçlarına en uygun kuyruk türünü seçmenize yardımcı olacak bir karşılaştırma sunar:

Differences between Standard and FIFO Queues

Standart ve FIFO kuyruklar arasındaki farklar

SQS’de Mesaj Gönderme ve Alma

Tüm kuyruklarımızı kurduğumuza göre mesaj göndermeye ve almaya başlayalım. Bu bölüm, AWS Yönetim Konsolu ve AWS Komut Satırı Arayüzü (CLI) üzerinden bunu nasıl yapacağınızı kapsar.

Mesaj gönderme

Mesaj gönderme süreci, standart ve FIFO kuyrukları kullanılarak gösterilmiştir.

Standart kuyruk

AWS yönetim konsolunu kullanma
  • SQS panosundan kuyruğunuzu seçin.
  • "Send and receive messages"a tıklayın.
  • "Message body" alanına bir mesaj girin; örneğin: “Bu kuyruk, Amazon Simple Queue Service (SQS) Kapsamlı Rehberi eğitimini kullanarak oluşturulmuştur.”
  • "Send message"a tıklayın.

Sending Messages Using AWS Management Console

AWS yönetim konsolunu kullanarak mesaj gönderme

Mesajı gönderdikten sonra, gönderildiğini onaylayan bir açılır pencere görürsünüz. “View details”a tıklamak, aşağıda gösterildiği gibi mesajımızın ayrıntılarını sunar.

Sending Messages Using AWS Management Console

AWS yönetim konsolunu kullanarak mesaj gönderme

Son olarak, “Receive messages” bölümünde bir mesajın mevcut olduğunu görebiliriz.

Sending Messages Using AWS Management Console

AWS yönetim konsolunu kullanarak mesaj gönderme

AWS CLI SQS kullanma

CLI üzerinden mesaj göndermenin temel adımları aşağıdaki şablonu izler.

aws sqs send-message --queue-url [YOUR URL]--message-body "YOUR MESSAGE"

Standart kuyruk yöntemi için URL’miz yukarıdaki ilgili ekran görüntüsünde verilmiştir. CLI için, farklı bir mesaj kullanalım:

  • URL: https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn
  • Mesaj: “Message sent via AWS CLI”

CLI’ı kullanmaya başlamanın ilk adımı, AWS kaynaklarımızla etkileşime girebilmesi için yapılandırmaktır; bunun için aşağıdaki kimlik bilgileri gerekir:

  • Access key ID
  • Secret access key
aws configure

Yapılandırma tamamlandığında, doğru argüman değerleriyle aşağıdaki komutu çalıştırın:

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn --message-body "Message sent via AWS CLI"

Sending Messages Using CLI

CLI kullanarak mesaj gönderme

Komut çalıştırmanın JSON çıktısı, yeni gönderilen mesaja ilişkin ayrıntıları verir ve artık SQSHandsOn kuyruğunda iki mesaj olduğunu görebiliriz.

Sending Messages Using CLI

CLI kullanarak mesaj gönderme

FIFO kuyruk

FIFO kuyrukta mesaj gönderme süreci, standart kuyruk yaklaşımından biraz farklıdır.

Bu senaryoyu daha iyi canlandırmak için, elektronik cihazlar satan bir e-ticaret platformu işlettiğinizi düşünün. 

Sisteminizin sipariş işleme, stok güncelleme ve ödeme yönetimi gibi çeşitli işlemleri ele alması gerekir. Bu durumda, işlemlerin doğru sırada ve yinelenmeden işlenmesini sağlamak için bir SQS FIFO kuyruğu kullanabiliriz.

  • CLI örnek 1 (Müşteri siparişi): Bir müşteri yeni sipariş verdiğinde gönderilen mesajdır. Sipariş işleme sistemi bu mesajları alır ve alındıkları sırayla yerine getirir.
  • CLI örnek 2 (Stok güncelleme): Bir sipariş işlendiğinde, stokları güncellemek için gönderilir. Ürünler satıldıkça stok seviyelerinin doğru tutulmasını sağlar.
  • Konsol örneği (Ödeme işleme): Bir sipariş için ödeme işlenmesi gerektiğinde üretilir. Ödemelerin alındıkları sırayla ele alınmasını sağlar ve çift tahsilatı önler.

Bu işlemler için FIFO kuyruğu kullanmak şunları garanti eder:

  • Siparişler verildikleri sırayla işlenir.
  • Stok güncellemeleri doğru sırayla gerçekleşir; aşırı satış önlenir.
  • Ödemeler bir kez ve doğru sırayla işlenir.

Bir SQS FIFO kuyruğuna mesaj gönderirken iki temel unsuru unutmayın:

  • Mesaj grup kimliği (Message group ID): Tüm mesajlar için gereklidir. Bir grup içindeki mesajların hangi sırayla işleneceğini belirler.
  • Mesaj tekilleştirme kimliği (Message deduplication ID): Her mesajın 5 dakikalık bir pencerede yalnızca bir kez işlenmesini sağlar.

Bunu anladığımıza göre, CLI yaklaşımıyla devam edelim.

AWS CLI SQS kullanma

   FIFO kuyruğunda ilk iki mesajı göndermek için aşağıdaki komutları çalıştırabiliriz.

  • CLI örnek 1: Müşteri siparişi gönderme:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Process customer order: #A1001" --message-group-id "CustomerOrders" --message-deduplication-id "Order-A1001-20240817-1"

Bu ilk çalıştırmanın çıktısı aşağıda verilmiştir.

Example 1 - Sending Messages Result Using CLI with FIFO

Örnek 1 - FIFO ile CLI kullanarak mesaj gönderme sonuçları

  • CLI örnek 2: Stok güncellemesi gönderme:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Update inventory: ProductX -5 units"  --message-group-id "InventoryUpdates" --message-deduplication-id "Inventory-ProductX-20240817-1"

Çıktı aşağıdadır.

Example 2 - Sending Messages Result Using CLI with FIFO

Örnek 2 - FIFO ile CLI kullanarak mesaj gönderme sonuçları

Şu ana kadar FIFO kuyruğuna iki mesaj gönderildi; aşağıda görülebilir.

Sending Messages Result Using CLI with FIFO - Number of messages

FIFO kuyruklarla CLI kullanarak mesaj gönderme sonucu - Mesaj sayısı

AWS yönetim konsolunu kullanma

Standart kuyrukta olduğu gibi, yönetim konsolundan şu şekilde mesaj gönderebiliriz:

  • “Queues” sayfalarından “SQSHandsOn.fifo”yu seçin.
  • Mesaj göndermek için “Send and receive message” sekmesini seçin.
  • “Message group ID” ve “Message deduplication ID” gibi ek alanlar gereklidir.

Sending Messages Result Using Management Console with FIFO

Yönetim konsolunu kullanarak FIFO kuyruklarla mesaj gönderme sonucu

Artık FIFO kuyruğundaki toplam mesaj sayısının üç olduğunu görebiliriz.

Sending Messages Result Using Management Console with FIFO - Total number of messages

Yönetim konsolunu kullanarak FIFO kuyruklarla mesaj gönderme sonucu - Toplam mesaj sayısı

Mesaj alma ve silme

Mesajları almak ve silmek, göndermek kadar önemlidir. Her ikisi de şu şekilde yapılır.

Standart kuyruk

AWS yönetim konsolunu kullanma
  • SQS panosundan kuyruğunuzu seçin.
  • "Send and receive messages"a tıklayın.
  • "Poll for messages"a tıklayın.
  • Mesajlar "Messages" bölümünde görünecektir.

Receiving Messages Using Management Console with Standard Queue

Standart kuyrukla AWS yönetim konsolunu kullanarak mesaj alma

Standart kuyruktaki iki mesajın tamamı yukarıda görülebilir.

AWS CLI SQS kullanma

Aşağıda standart bir kuyruktan mesaj alma için genel komut verilmiştir.

aws sqs receive-message --queue-url [YOUR URL]

Standart kuyruğumuzu kullanarak, tam komut şöyle olur:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn

FIFO kuyruk

Yönetim konsolu üzerinden mesajları alma süreci, standart yaklaşımla aynı adımları izler.

AWS CLI kullanarak bir FIFO kuyruğundan mesaj almak için aws sqs receive-message komutunu kullanabilirsiniz. Temel yapı şöyledir:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --attribute-names All --message-attribute-names All --max-number-of-messages 3
  • -attribute-names All: Tüm mesaj özniteliklerini getirir.
  • -message-attribute-names All: Tüm özel mesaj özniteliklerini getirir.
  • --max-number-of-messages 3: Alınacak maksimum mesaj sayısını belirtir

Yukarıdaki komutun çalıştırılması, FIFO kuyruğundaki üç mesajın tamamını verir.

Receiving Messages Result Using CLI with FIFO

FIFO kuyruklarla CLI kullanarak mesaj alma sonucu

AWS SQS Fiyatlandırması

Fiyatlandırma modelini anlamak, SQS’yi maliyet etkin kullanmak için kritik öneme sahiptir. Bu bölüm, fiyatlandırmayı parçalarına ayırır ve maliyet yönetimi için ipuçları sunar.

Genel olarak, AWS SQS fiyatlandırması yapılan API istek sayısına, veri aktarımına ve kullanılan isteğe bağlı özelliklere dayanır.

İstek fiyatlandırması

Aşağıdaki tablolar SQS istek fiyatlandırmasına genel bir bakış sağlar:

 

Standart Kuyruklar 

(Milyon istek başına)

FIFO Kuyruklar 

(Milyon istek başına)

Aylık ilk 1 Milyon İstek

Ücretsiz

Ücretsiz

Aylık 1 Milyondan 100 Milyar İsteğe

$0.40

$0.5

Aylık 100 Milyardan 200 Milyar İsteğe

$0.30

$0.40

Aylık 200 Milyar Üzeri İstek

0.24

$0.35

AWS SQS Sayfasındaki fiyatlandırma

Veri aktarım fiyatlandırması

Veri aktarım fiyatlandırmasını anlamak için aşağıdaki tabloya bakın:

İÇERİ veri aktarımı

Fiyatlandırma

Tüm iç veri aktarımı

GB başına $0.00

DIŞARI veri aktarımı

Fiyatlandırma

Aylık ilk 10 TB

GB başına $0.09

Sonraki 40 TB / Ay

GB başına $0.085

Sonraki 100 TB / Ay

GB başına $0.07

150 TB / Ay üzeri

GB başına $0.05

AWS SQS Sayfasındaki fiyatlandırma

Maliyet yönetimi ipuçları

SQS maliyetlerinizi yönetmek için hızlı ipuçları:

  • Boş alımları azaltmak için long polling kullanın.
  • Gönderme ve alma işlemlerinizi toplu (batch) yapın.
  • Kullanımınızı AWS Cost Explorer ile izleyin.

AWS SQS İzleme ve Metrikler

Etkili izleme, sağlıklı bir SQS uygulamasını sürdürmek için kritiktir. Bu bölüm, önemli metrikleri ve alarm kurulumunu kapsar.

Temel AWS SQS metrikleri

Dikkat edilmesi gereken başlıca metrikler şunlardır:

Key AWS SQS Metrics

Temel AWS SQS metrikleri

ApproximateNumberOfMessagesVisible

Bu metrik, kuyruktan alınmaya hazır mesaj sayısını temsil eder. Kuyruk birikimini ve işleme verimliliğini gösterir. Yüksek bir değer, işleme darboğazlarını gösterebilir.

ApproximateAgeOfOldestMessage

Bu metrik, silinmemiş en eski mesajın kuyrukta ne kadar süredir bulunduğunu gösterir. Takılı kalan mesajlar veya yavaş tüketiciler gibi olası işleme sorunlarını belirlemeye yardımcı olur. FIFO kuyruklar için mesaj gruplarının bloke olduğunu gösterebileceğinden hayati önemdedir.

NumberOfMessagesSent

Kuyruğa eklenen mesaj sayısını takip eder. Kuyruk giriş hızını izlemek ve mesaj üretimindeki olağan dışı artışları belirlemek için yararlıdır. DLQ’lara manuel olarak gönderilen mesajların bu sayıya dahil olduğunu unutmayın.

NumberOfMessagesReceived

Bu metrik, kuyruğa gelen mesajlardan tüketicilere kaç tanesinin döndürüldüğünü gösterir. Kuyruğun çıkış hızını takip etmeye yardımcı olur ve işleme verimliliğini ölçmek için NumberOfMessagesSent ile karşılaştırılabilir. NumberOfMessagesSent gibi, başarısız işleme nedeniyle otomatik olarak DLQ’lara taşınan mesajları içermez

CloudWatch alarmları kurma

Yukarıdaki dört metrik için bir CloudWatch alarmı oluşturma örneklenmiştir. Süreç tüm metrikler için aynıdır; bu nedenle basitlik adına yalnızca bir metrik ve yalnızca Standart SQS (SQSHandsOn) üzerinde odaklanıyoruz. 

ApproximateNumberOfMessagesVisible için alarm kurulumunun ana adımları aşağıdadır.

CloudWatch alarmları, olası sorunlara karşı sizi uyarabilir. Yönetim konsolundan şu şekilde kurulur:

  • "CloudWatch"ı arayın ve seçin.
  • Sol gezinme bölmesinde "Alarms"a tıklayın.
  • "Create alarm" düğmesine tıklayın.
  • "Select metric"e tıklayın.
  • "All metrics" sekmesinde "SQS"yi bulun ve tıklayın.
  • "Queue Metrics"e tıklayın. 
  • Kuyruğunuzu bulun ve ApproximateNumberOfMessagesVisible metriğini ve standart kuyruk SQSHandsOn seçimini yapın.

Setting Up CloudWatch Alarms

CloudWatch alarmları kurma

  • Yukarıdaki sayfadan "Graph metrics"i seçin.
  • İstatistiği seçin ve “Average” olarak ayarlayın.
  • Periyodu ayarlayın; bizim örneğimizde 5 dakikadır ve “Select metric”i seçin.

Setting Up CloudWatch Alarms

CloudWatch alarmları kurma

  • Metriğe bir ad verin (örneğin “SQS-AvgHighMessageCount-SQSHandsOn”) ve “Threshold Type”ı “Static” olarak ayarlayın.
  • Alarma bir koşul sağlayın. Bizim örneğimizde “Greater” (daha büyük) değeridir.
  • Eşik değerini “20” olarak ayarlayalım ve “Next”i seçelim.

Setting Up CloudWatch Alarms

CloudWatch Alarmları Kurma

Yukarıdaki yapılandırma, SQSHandsOn kuyruğunuzdaki görünür mesajların ortalama sayısı 5 dakika içinde en az bir veri noktasında 20’yi aştığında bu alarmın tetikleneceği anlamına gelir. Grafikte mevcut mesaj sayısı (mavi çizgi) eşik değerine (20’deki kırmızı çizgi) göre gösterilir.

Bu kurulum, kuyruğumuzda çok fazla işlenmemiş mesaj birikip birikmediğini izlemeye yardımcı olur; bu durum, işleme gecikmelerini veya tüketicilerdeki sorunları gösterebilir. 

Tüketiciler, kuyruktan mesajları alıp işleyen tüm uygulama veya sistem bileşenlerimizi ifade eder.

Ortalama mesaj sayısı 20’nin üzerine çıkarsa, bir uyarı alırsınız; bu da kuyruğunuzda birikmeleri önlemek için inceleme yapmanıza ve uygun adımları atmanıza olanak tanır.

  • Yukarıdaki “Next” eylemi “Configure actions” adımına götürür; burada bir ayar yapmamıza gerek yok. Sayfayı olduğu gibi bırakıyoruz.
  • “Next”i seçin ve alarma benzersiz bir ad girin; bizim örneğimizde "SQSHandsOn-HighMessageCount"
  • İsteğe bağlı olarak bir açıklama ekleyin ve “Next”i seçin.
  • Ayarlarınızı gözden geçirin ve "Create alarm"a tıklayın.

Setting Up CloudWatch Alarms

CloudWatch alarmları kurma

  • Alarmımız için yeşil onay mesajını ve “Name” sütununda alarmın adını görmeliyiz.

Setting Up CloudWatch Alarms

CloudWatch alarmları kurma

  • Alarm adını seçtikten sonra, tam ayrıntı aşağıdaki gibi sunulur:

Setting Up CloudWatch Alarms

CloudWatch alarmları kurma

SQSHandsOn kuyruğumuz için alarm şu anda "Insufficient data" durumundadır. Bu, alarmın tetiklenip tetiklenmeyeceğini belirlemek için CloudWatch’ın yeterli bilgiye sahip olmadığı anlamına gelir. 

Grafikte veri noktası yok; bu da kuyruğun yeni olduğunu gösterir. Alarm, ortalama mesaj sayısı 5 dakikada 20’yi aştığında tetiklenir. 

Kuyruk etkinleştikçe ve mesajlar işlendiğinde CloudWatch veri toplayacak ve alarm durumunu güncelleyecektir. 

AWS SNS ve SQS Karşılaştırması

SQS ve SNS her ikisi de mesajlaşma servisleridir; ancak farklı amaçlara hizmet ederler. Bu bölüm, her birinin farklarını ve kullanım alanlarını netleştirir.

SNS versus SQS comparison table

SNS ve SQS karşılaştırma tablosu

AWS SQS En İyi Uygulamalar

En iyi uygulamaları takip etmek SQS’den en iyi şekilde yararlanmak için önemlidir. En iyi kullanım için bazı ipuçları:

  • Maliyet ve gecikmeyi azaltmak için long polling kullanın.
  • Sorunlu mesajlar için dead-letter kuyrukları uygulayın.
  • Mümkün olduğunda toplu işlemleri (batch) kullanın.
  • Kuyruklarınızı uygun erişim ilkeleriyle güvence altına alın.
  • Kuyruk derinliğini izleyin ve işleme kapasitenizi buna göre ayarlayın.
  • Hassas veriler için aktarım sırasında ve beklemede şifreleme kullanın.

Sonuç

AWS SQS, ölçeklenebilir ve dayanıklı bulut uygulamaları kurmak için güçlü bir araçtır. Uygulamanızın bileşenlerini ayrıştırarak daha fazla esneklik, hata toleransı ve ölçeklenebilirlik elde edebilirsiniz. Kullanım kolaylığı, güçlü özellik seti ve diğer AWS servisleriyle entegrasyonu sayesinde SQS, modern bulut mimarileri için vazgeçilmez bir servistir.

Kullanımınızı izlemeyi, uygulamanızı optimize etmeyi ve en iyi uygulamaları takip etmeyi unutmayın; böylece AWS SQS’den en iyi şekilde yararlanırsınız. Uygulamanız büyüyüp geliştikçe SQS de değişen ihtiyaçlarınıza uyum sağlayabilir; bu da onu AWS araç setinizde değerli bir unsur yapar.

AWS yolculuğunuza AWS Cloud Technology and Services kursumuza kaydolarak devam edin. Bu ilk adım, kariyerinizi ilerletmenizi ve sonrasında AWS sertifikası almanızı sağlayacaktır.

SSS

SQS'de standart kuyruk ile FIFO kuyruk arasındaki fark nedir?

Standart kuyruk sınırsız throughput ve en az bir kez (at-least-once) teslimat sağlar; mesajların sırası garanti edilmez. FIFO kuyruk ise mesajların gönderildiği sırayla işlenmesini garanti eder ve her mesajın yalnızca bir kez işlenmesini sağlar.

SQS kuyruklarıma erişimi nasıl kontrol edebilirim?

SQS kuyruklarına erişimi IAM ilkeleri ve SQS kaynak ilkeleri ile kontrol edebilirsiniz. IAM ilkeleri kullanıcılar ve roller için izinleri yönetmenizi sağlar; SQS ilkeleri ise kuyruk düzeyinde erişimi yönetir, belirli AWS hesaplarına veya eylemlere erişimi kısıtlar.

AWS SQS kullanmanın maliyetleri nelerdir?

AWS SQS maliyetleri, API istek sayısına ve veri aktarımına dayanır. Her ay ilk bir milyon istek ücretsizdir; fiyatlandırma, istek sayısına ve FIFO kuyruklar ile long polling gibi ek özelliklere göre artar.

SQS kuyruklarımın performansını nasıl artırabilirim?

Performansı optimize etmek için long polling kullanarak boş alımları azaltın, toplu işlemler ile mesajları toplu halde gönderip alın ve CloudWatch ile kuyruğunuzu izleyerek mesaj işleme kapasitenizi gerektiğinde ayarlayın.

Zoumana Keita

Yazar

Zoumana Keita

Bilgisini paylaşmaktan ve başkalarına katkı sunmaktan keyif alan, çok yönlü bir veri bilimci olan Zoumana, YouTube’da içerik üretiyor ve Medium’da önde gelen teknoloji yazarları arasında yer alıyor. Konuşmaktan, kod yazmaktan ve öğretmekten büyük zevk alıyor. Zoumana’nın iki yüksek lisans derecesi bulunuyor: İlki Fransa, Paris’te Makine Öğrenmesi odaklı Bilgisayar Bilimleri; ikincisi ise ABD’de Texas Tech University’den Veri Bilimi. Kariyerine Fransa’da Groupe OPEN’da Yazılım Geliştirici olarak başladı; ardından IBM’de Makine Öğrenmesi Danışmanı olarak çalıştı ve sigorta şirketleri için uçtan uca yapay zeka çözümleri geliştirdi. Paris ve Montreal merkezli ilk Sürdürülebilir YZ girişimi olan Axionable’a katıldı. Burada Veri Bilimci olarak görev yaptı ve çoğunlukla NLP kullanım örnekleri olmak üzere, Fransa, Montreal, Singapur ve İsviçre’den müşteriler için YZ ürünleri hayata geçirdi. Ayrıca zamanının %5’ini Araştırma ve Geliştirme’ye ayırdı. Hâlihazırda IFC – Dünya Bankası Grubu’nda Kıdemli Veri Bilimci olarak çalışmaktadır.

Konular

İlgili