🙆

Docker Desktop for Windows に LocalStack を組み込むには

2023/01/24に公開

Docker Desktop の新機能 Docker ExtensionLocalStack を Docker Desktop に組み込めるようになりました。

https://www.itmedia.co.jp/news/articles/2301/16/news099.html
https://hub.docker.com/extensions/localstack/localstack-docker-desktop

LocalStackとは?

LocalStackは、クラウドベースのサービスをテストするためのローカル環境を提供するオープンソースのプロジェクトです。Amazon S3、DynamoDBなどの人気のあるクラウドサービスの振る舞いを模倣していますが、完全に開発者のマシン上で動作します。これにより、開発者は、費用がかかり時間がかかるライブクラウド環境に頼らずにアプリケーションをテストすることができます。
https://localstack.cloud/

LocalStack Extension にできること

  • LocalStackの起動・終了
  • LocalStackインスタンスのログと各サービスのステータスを確認
  • LocalStack設定プロファイルの管理と切り換え

LocalStack Extension にできないこと

  • 各リソースの管理(作成、編集など)

導入方法

LocalStack Extension のインストール

LocalStack Extension

awslocal コマンドのインストール

aws コマンドのインストール

$ sudo apt install awscli
$ aws --version
aws-cli/1.22.34 Python/3.10.6 Linux/5.15.79.1-microsoft-standard-WSL2 botocore/1.29.54

pip のインストール

$ sudo apt install pip
$ pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

awslocal のインストール

$ sudo pip install awscli-local
$ awslocal --version
aws-cli/1.22.34 Python/3.10.6 Linux/5.15.79.1-microsoft-standard-WSL2 botocore/1.29.54

LocalStackの起動・終了

起動

LocalStackの起動

  1. Docker for Desktop の左メニューから LocalStack を選択
  2. 上部の Start ボタンを押す
  3. 起動完了するとダッシュボードに各サービスの利用状況が表示される

終了

LocalStackの終了
上部の Stop ボタンを押す

CloudFormationの実行

試しにCloudFormationを実行してリソースを作成してみます。
aws コマンドの代わりに awslocal コマンドを使えばOKです。

$ awslocal cloudformation deploy --stack-name cfn-asg-stack --template-file "./cfn-asg.yaml"
Waiting for changeset to be created..
Waiting for stack create/update to complete

各サービスのステータスを確認

LocalStackダッシュボードで各サービスのステータスを確認できます。
awslocal cloudformation deploy により、 cloudformation が running になりました。

ダッシュボードの表示

LocalStackインスタンスのログと各サービスのステータスを確認

**Logsタブを開くとインスタンスのログを表示できます。**これでリソースの作成状況など確認できます。

今回実行したCloudFormationの実行では LaunchTemplate は有償版でないと使えないことがわかりますね。

CloudFormation進捗ログ

LocalStack設定プロファイルの管理と切り換え(Configurations)

Configurations タブで、LocalStackの起動プロファイルを管理できます。
複数のプロジェクトがあるとき、プロジェクト毎に使用するリソースを切り換えることが簡単にできますね。私は数社の案件を並行して進めているので、こうしてお客様毎に切り換えられるのは助かりますね。

  1. [Configurations] タブを開く
  2. [New +] ボタンを押す
  3. 名前と設定する環境変数を登録する(設定可能な環境変数一覧

Edit Configuration

Configuration の利用

登録した Configuration は、LocalStack の [Start] ボタン横のドロップダウンリストから選択して使用することができます。

Configuration の利用

まとめ

LocalStack自体はかなり以前からありますが、今回Docker Desktopに組み込めるようになったことで利用の敷居が下がりそうですね。わかりやすい形で実行ログを表示できたり、起動プロファイルを管理できるのは便利です。

補足:LocalStack の無償版と有償版

有償ライセンスキーの有無で利用できるリソースが異なります。ガッツリAWSのリソースを使い込んで複雑なことをしようとすると有償版が必要になるでしょうか。単にS3バケットを使いたいだとか、Lambdaを実行したいとか、その程度の利用であれば無償版で十分対応できそうにみえますね。

Resources (Community Edition)
Resources (Pro / Enterprise Edition)

タケユー・ウェブ株式会社

Discussion