SQSSimple Queue Service

0 円/月

  • 東京リージョン
  • ひと月は30.5日
  • 105.393円/ドル(毎朝10時更新)

SQSについてざっくり

フルマネージド型のメッセージキューサービス。

メッセージキューは、複数の処理をキューを介して非同期に実行する仕組みです。メッセージの送信側と受信側の間にキューを挟むことで、受信側は自分のペースでメッセージを処理できます。

ひとつ注意が必要なのが、標準キューの場合は、まれに複数のメッセージが配信される可能性があり、順序も保証されないので、アプリケーション側で重複や順序についても考慮しておく必要があります。順序を厳密に保持したいときのために、FIFOキューも用意されています。

SNSとSQSを組み合わせる例

ユーザーがアップロードした画像に対して、サムネイルの作成と画像認識の処理を同時に走らせたい場合、メッセージを一旦SNSのトピックに投げて、それを複数のSQSのキューでサブスクライブする設計しておけば、処理が増えた場合のスケールが簡単になります。(参考:Fanout

SQSの料金計算式をざっくり

    /**
 * ざっくりこんな感じで計算しています。
 */
function calc(row, priceList) {
  const queues = {
    standard: toNumber(row.standard),
    fifo: toNumber(row.fifo)
  }

  let total = 0
  let freeCredit = priceList.sqs.free

  Object.keys(queues).forEach(key => {
    const count = Math.max(queues[key] - freeCredit, 0)

    if (count > 0) {
      total += count * priceList.sqs[key].price
    }

    freeCredit = Math.max(freeCredit - queues[key], 0)
  })

  return total
}
  

Google AdSenseの広告

このエリアに興味がある広告が表示された際にクリックすると、当サイトの制作者にお金が入る仕組みになっています。それがなんか嫌だなぁという方は、間違ってクリックしないように注意してください。