Bootアプリケーションで利用してみます。1.0と2.0の違いをChatGPTに聞いてみました。2.0は、AWSクラウドリソースをローカル環境でシミュレートするために使用されるオープンソースプロジェクトです。これにより、開発者はオフラインでAWSサービスをテストできます。2.0は、1.0に比べていくつかの重要な改善点があります。2.0は、より高速で安定したパフォーマンスが期待されるように設計されています。1.0に存在するいくつかのバグや問題が修正されています。2.0では、新しいAWSサービスと機能のサポートが追加されています。これにより、開発者は最新のAWS機能をローカルで利用できるようになります。2.0では、プロジェクトの構造とアーキテクチャが再設計され、より維持管理が容易になり、拡張性が向上しています。2.0では、各サービスが独自のプロセス内で実行されるようになりました。これにより、サービス間の依存関係や問題が軽減され、安定性が向上しています。2.0では、設定とデプロイメントのプロセスが改善され、より使いやすくなっています。2.0は、1.0と比べてアクティブな開発とサポートが続いており、開発者が新しい機能やバグ修正を利用できるようになっています。2.0は1.0よりも高速で安定し、より多くのAWSサービスと機能をサポートし、開発者がAWSアプリケーションをローカル環境でテストする際に優れた選択肢となります。LocalStackの料金体系は、無料と有料があります。有料版でしか利用できないAWSクラウドリソースもあります。Coverageに書いてあります。1.18.0Docker上でLocalStackを起動するDocker上でLocalStackを起動するために、次のdocker-compose.ymlを用意しました。DOCKER_HOST=unix:///var/run/docker.sock起動します。CLIのコマンドで、LocalStack内の全サービスにアクセスすることができます。CLIというものもあります。CLIのどちらかをインストールしてください。awscli-localクレデンシャルの設定クレデンシャルとデフォルトリージョンの環境変数を設定してください。AWS_DEFAULT_REGION="ap-northeast-1"このクレデンシャルはダミーなので、direnvを利用して、このリポジトリディレクトリのみ環境変数が適用されるようにしました。CLIのコマンドを叩いて動作確認をします。[]}これでLocalStackを利用する環境は整いました。SQSを利用してキューにメッセージを格納するコマンドラインアプリケーションを実装します。細かい実装は、GitHubをご覧ください。SqsClientをBean登録します。今回、LocalStackを4566ポートで起動しているのでエンドポイントを書き換える必要があります。}}SQSのキューにメッセージを格納する処理を実装。CLIのコマンドを叩いてキューを作成します。Bootアプリケーションを起動して、キューにメッセージを格納します。CLIのコマンドを格納したメッセージを受信できることを確認します。--queue-url=http://queue.localhost.localstack.cloud:4566/000000000000/sample-queue無事にLocalStackを利用してAWSクラウドリソースをローカル環境でシミュレートすることができました。Testcontainersを利用したテストコードLocalStackをサポートしているTestcontainersを利用してテストコードを書きます。SqsClientのクレデンシャル等をTestcontainers用のものを利用することで、テストコードを書くことができます。(1)はてなブログをはじめよう!b1a9idさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。