Ccmmutty logo
Commutty IT
2 min read

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

https://cdn.magicode.io/media/notebox/20bc0283-f198-49ed-9ecd-9947ea8f22fe.jpeg

なぜやったか?

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

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

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

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

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

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