Amazon SQS互換のインターフェースを提供するElasticMQを使ってみる(とりあえずAWS CLIで接続確認するまで)
Amazon SQSを使うときに悩むのがローカルでの開発環境をどうするか。
ElasticMQはAmazon SQSと同様のインターフェースを提供してくれる、スタンドアロンなメッセージキューイングシステム。
これを使ってローカルに閉じた環境でAmazon SQSの利用を想定したアプリケーション作成ができたら良さそう。
というわけで試してみる。
ElasticMQが動くDockerコンテナを準備する
Dockerfile
の作成。
FROM java:8 RUN mkdir /var/elasticMQ WORKDIR /var/elasticMQ EXPOSE 9324 RUN wget -q https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-0.13.9.jar ENTRYPOINT ["/usr/bin/java", "-Djava.library.path=.", "-jar", "elasticmq-server-0.13.9.jar"]
Dockerイメージのビルド。
$ docker build -t tomcky/elasticmq:0.13.9 .
コンテナ起動。
$ docker run -d --rm --name elasticmq -p 9324:9324 tomcky/elasticmq:0.13.9
aws-cliで試してみる
Queueの作成
$ aws sqs create-queue --queue-name test --endpoint-url http://localhost:9324 { "QueueUrl": "http://localhost:9324/queue/test" }
こんな感じで QueueUrl
が返ってきたら成功している、はず。
DefaultRegionなどが設定されていないとエラーが返ってくるようなので、ダミーでよいので設定する必要がある。
次はSymfonyアプリケーションから接続してみる。
別記事で。