Magicode logo
Magicode
1

同一リージョンのSQSにEC2からメッセージを作成するのにかかる時間(2022/01/27)

なぜやったか?

バックエンドの非同期処理を実装するときにAWSのSQSを見つけた。

SQSはざっくり、マネージドな分散型メッセージキューイングサービスだ。

今回SQSにメッセージを作る時間、主にネットワークレイテンシーが気になったので測定してみた。 仕組みはよくわからないが、同一リージョンのEC2からだとどれくらいになるのか。ちなみにローカルでは300ms程度。

Jeff Deanの「すべてのプログラマが知っておくべきレイテンシーの数値」

参考までにJeff Deanによると同一データセンターのマシン間の通信一往復は0.5ms

参考:Latency Numbers Every Programmer Should Know

SQSとは?

キューをうまい感じでマネジメントしてくれる的な、。、。 YouTubeでとてもまとまったAWSの講演を見つけたのでこちらを参考にされたい。( https://www.youtube.com/watch?v=avfc0gQ7X0A )

検証: 最近お気に入りのCloud 9 を使ってみた。

Cloud9はクラウドIDEの一つだ。つまりブラウザでVSCodeのようなことができる。そしてその実行する主体はEC2である。 そのEC2のスペックはいろいろ選べるが、今回はt2.microを選択した。

SQSにメッセージを送信するコードはPythonで実行してみる。

結果: およそ90ms

100msはいかないくらいだと感じた。プロダクションでも気にならないスピードだなと感じた。

おまけ

SQSには通常版とFIFO版の二種類があった

今回の記事ではネットワークレイテンシーを見たかったので特記するほどではないのですが、 FIFOキューにしていたことに2日後に気づいたので、通常のキューでもやってみます。 FIFOはFirst In First Outのことで、キューの順序を正確にする機能です。

FIFOとそうでない時のレスポンスタイムの違い

通常のキューでやってもおよそ90msでした。FIFOでも普通でも速度は変わりませんでした。 しかしスループットは全然違うので、トラフィックが多い時には変わってくるのではないでしょうか?

Discussion

コメントにはログインが必要です。