社内の課題解決を目的としたAmazon SQSの導入と活用方法
レビュー投稿日の情報になります
ポート株式会社 / harayu-k
メンバー / SRE
最終更新日投稿日
| ツールの利用開始時期 | 事業形態 |
|---|---|
| 2024年10月 | B to C |
| ツールの利用開始時期 | 2024年10月 |
|---|---|
| 事業形態 | B to C |
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- 弊社で運用しているサービス間で同期的な通信がされており、いずれかのサービスがダウンした時にデータが欠損してしまう状況だった。
どのような状態を目指していたか
- サービス間を非同期通信にして疎結合にする。
- 片方のサービスがダウンしていた場合にデータが欠損しないようにする。
比較検討したサービス
- Cloud Pub/Sub
比較した軸
- サービス間を疎結合にできるか。
- プロデューサー・コンシューマーが異なる言語環境であったため言語依存しないキューイングサービスであるか。
- AWSで構成されてる弊社インフラ環境と連携が容易であるか
選定理由
- サービス間を疎結合にすることができ、言語依存せず使用できるキューイングサービスであること
- 既存のインフラ環境との連携が容易
導入の成果
改善したかった課題はどれくらい解決されたか
- システム間を疎結合にすることができた。
どのような成果が得られたか
- システムメンテナンス時などにデータ欠損をすることがなくなった。
導入時の苦労・悩み
- 弊社にSQSの導入実績がなく十分なナレッジがなかった。
導入に向けた社内への説明
上長・チームへの説明
既存システムとの連携の容易性・非同期化にすることのメリット・毎月最初の100万リクエストまでは無料なので余分な費用はかからないことを説明して導入することができた。
活用方法
よく使う機能
- ロングポーリング
- APIリクエスト数に応じて費用が変わるので、ロングポーリングにすることで費用削減できる。
- デッドレターキュー(DLQ)
- メッセージを処理できない場合はDLQに移動させる。アプリケーションエラーなどの修正後に再度ソースキューにメッセージを移して処理を実行する。
ApproximateNumberOfMessagesVisible,ApproximateAgeOfOldestMessageなどのメトリクス- メッセージを処理できなかった場合やメッセージの処理に時間がかかっている場合は上記のメトリクスを使用して監視することができる。
ツールの良い点
- 他AWSサービスとの連携が容易
- 監視用のメトリクスが豊富
- 高スループット・高信頼性のキューイングサービスを簡単に使用できる
ツールの課題点
- 現状特になし
ツールを検討されている方へ
気軽に高スループット・高信頼性のキューイングサービスを導入でき、監視もしやすいのでおすすめです。可視性タイムアウトの時間によっては重複してメッセージが処理されてしまうので気をつけた方が良さそうです。また、メッセージを処理するアプリ側では冪等性を保つような処理にした方が良さそうです。
ポート株式会社 / harayu-k
メンバー / SRE
ポート株式会社 / harayu-k
メンバー / SRE


