SQSを使ったシステムを作る際、ローカル環境で手軽にSQSがいじれれば非常に便利だ。今回、Dockerを用いてSQS互換の環境を作った。imageの作り方、localでの起動方法までまとめている。image作成SQSのinterfaceに適合したアプリケーションがある。imageを作成することができる。["java","-jar","/elasticmq/elasticmq-server-0.15.3.jar"]ビルド方法はこちら。.そのimageを用いて起動する。portにそのままマッピングさせた。elasticmq起動成功。portとのマッピングも成功した。"http://localhost:9324/queue/test"}ここで表示されるQueueUrlが、メッセージの送受信などで必須情報となる。作成したキューにメッセージを送信する。オプションが必要になる。ここではキューを作成した際に作られたQueueUrlを入力する。worldを確認できた。ちなみに、このコマンドを複数回実行しても、毎回メッセージが表示されるわけではない。SQSには可視性タイムアウトという考えがあり、デフォルトで1度キューを表示したら、30秒間は表示されない。この仕組みで、重複してキューが実行されるのを防いでいる。そのような仕様だと、「見えているキュー、見えてないキュー」の件数を確認したくなる。--attribute-namesに指定することで見えなくなっているキューの件数を表示することができる。"0"}}これらのオプションについては公式ドキュメントで綺麗に整理されている。https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-resources-required-process-messages.htmlメッセージを削除する不要になったメッセージは削除した方が良い。削除コマンドは以下の通り。メッセージを受信した際に記載されているReceiptHandleを指定する。このような感じに表示される。コマンドなどを利用すれば簡単にシェル化できそうだ。QueueUrlsを確認するQueueUrlsを確認できるのはもちろんキュー作成時だけではなく、確認用のコマンドも用意されている。スタートアップ向けの極力コストを抑えた設計まで提案から運用まで担当することが多い。最近はAWSやContainerを用いたWebサービスの設計から運用。趣味はマラソン、トライアスロン。