ElasticMQでAmazon SQSのローカルテスト環境を作る

以前DynamoDBをLocalで建てるようにしたことでDynamoDBを使ったサービスの開発やテストがローカルで完結できるようになって幸せをかみしめていたのですが、このたびSQSも使うことになり、さてどうしたものかと思っていたらElasticMQというSQS互換インターフェイスを持った実装が存在することを知って、使ってみました。なお自分はElasticってつくとなんでもAWSのサービスみたいに感じてますが、ElasticMQElasticSearchはAWSのサービスではないですね。

ElasticMQはJavaで実装されてるので、ダウンロードしてきて実行すればいいだけなので超簡単。開発も今のところ継続的に行われており、ロングポーリングもver 0.7から対応しているようで素敵です。

Pythonでbotoを使ってキューを登録してみます。

アクセスキーとシークレットはダミーですので何を指定してもいいっぽいです。 続いてキューを読み出します。

読み出しのループを回しておいてキューにデータを入れると、読み出されているのがわかります。

ロングポーリングが正しく動いていない気がするので、今後調査の方向で。