3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API Gatewayとかを組み合わせてキューイングシステムをつくった話(概要編)

Last updated at Posted at 2018-12-12

はじめに

この記事はSansan Advent Calendar 2018の13日目の記事になります。

ちょうど、業務の方でシステム間を連携させる仕組みとしてAPI Gateway+SNS+SQSを組み合わせてキューイングシステムを構築しました。この組み合わせはちょっと珍しいかなと思ったので、そのアーキテクチャのポイントについて書きたいと思います。

アーキテクチャ

図で示すとこんな感じのアーキテクチャをつくりました。
送受信できるようにそれぞれ2系統を用意しています。

Untitled Diagram (5).png

Publisherがpublishするときは、API GatewayのAPIのURLにJSONをPOSTします。そうすると、SNSにJSONを含んだメッセージが転送され、フィルタリングで振り分けられ、指定のSQSのキューにメッセージがエンキューされます。Subscriberは好きなタイミングでSQSからメッセージをsubscribeすることで、対向システムの可用性や処理時間を気にすることなく疎結合なシステム間連携ができます。

SQS単体で使うのと何が違う?

API Gateway

JSON Schema(Swagger)を設定してバリデーションができるため、PublisherとSubscriberとのデータの取り決めを厳密に行えます。そのため、Subscriber側のバリデーションの負担が軽くなります。また、必要なときには認証がかけられるため、セキュリティ的にコントロールしやすくなります。

SNS

Publisher側の処理の抽象化ができます。また、フィルタリング機能で複数キューへの振り分けや複製を行えます。

さいごに

今回はさらっと概要だけ述べました。ちょっと思うように時間が取れなかったので、構築編をまたあげようと思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?