[アップデート] AWS Toolkit for Visual Studio Code に LocalStack が統合されたので使ってみた

[アップデート] AWS Toolkit for Visual Studio Code に LocalStack が統合されたので使ってみた

2025.09.15

いわさです。

LocalStack はクラウドエミュレータ環境をローカルに用意できる製品です。
LocalStack for AWS や LocalStack for Snowflake などがあります。特に、よく AWS でサーバーレスアプリケーションを開発する際にはエミュレータ環境として LocalStack を使っていた方も多いのではないでしょうか。

https://dev.classmethod.jp/articles/how-to-localstack/

先日のアップデートで AWS Toolkit for Visual Studio Code に LocalStack が統合されたというアナウンスがありました。

https://aws.amazon.com/about-aws/whats-new/2025/09/localstack-integration-vs-code-ide-local-testing/

なにやら便利になっていそうですが、このアナウンスだけだと具体的に何がどう変わったのかよくわからない。
ということで実際に使ってみて変更点を確認してみたので紹介します。

簡単にまとめると今回のアップデートで以下ができるようになったみたいです。

  • LocalStack Toolkit というここ 1 ヶ月くらいでリリースされた LocalStack 用の Visual Studio Code 拡張を AWS Toolkit for Visual Studio からセットアップできる
  • セットアップ後は LocalStack 環境の起動/停止ができる
  • AWS プロファイルとして自動セットアップされるのですぐに切り替えて使える

ドキュメントによると Lambda 関数のリモートデバッグには LocalStack の無料版だと対応していないようで今回試すことはできなかったのですが、デプロイまでは確認できました。

セットアップの簡略化

1年前近く前になるのですが、AWS Toolkit for Visual Studio Code に Application Builder という機能が追加されています。
AWS SAM CLI を GUI で操作できるような形で AWS Toolkit に組み込んだような機能です。

https://dev.classmethod.jp/articles/sam-vs-code-aws-toolkit/

この中の「ウォークスルー」という、SAM CLI をはじめとしたローカルでのサーバーレス開発に必要なツール一式を迷わずにセットアップできる機能があります。
まず今回のアップデートではここのオプション機能で LocalStack もセットアップできるようになりました。

6D7785F1-DCD8-4FC5-8C4D-5F5FF2BE8725.png

「「Install LocalStack」のボタンからインストールを開始することができます。
仕組みとしては別の Visual Studio Code 拡張である「Local Stack Toolkit」がインストールされます。

https://marketplace.visualstudio.com/items?itemName=localstack.localstack

591692A9-92A3-4142-85CE-86ACC9F3A325.png

Local Stack Toolkit のみでは LocalStack 本体がインストールされないので、ステータスバー上は「LocalStack: not installed」となっていると思います。
ここから LocalStack のセットアップウィザードを起動できます。

803DF4C0-FDD9-4C67-96B4-C9A48E772E56.png

このセットアップウィザードでは LocalStack アカウントの連携が必要になります。
セットアッププロセスから公式サイトが開かれるので、私はそこで無料アカウントにサインアップしました。

0F355A03-056A-4ED7-8BED-B91ADC76AD3D.png

6598B1BE-447F-4FEA-8937-EEFC07FA4DC9.png

後述しますが、このステップで~/.aws/credentials~/.aws/configに LocalStack 用の設定も自動で追加され、後述のエンドポイント切り替えで使うことができます。

起動の簡略化

続いて、セットアップが完了したら LocalStack を起動します。
LocalStack は通常は Docker Compose を構成して起動すると思いますが、LocalStack Toolkit によってス Visual Studio Code のステータスバーからポチポチですぐに起動ができます。

「Start LocalStack」を選択します。

E62DB7E9-31CD-4AC9-8D68-52A0B655AF67_1_105_c.jpeg

次のようにステータスが「LocalStack: running」になれば起動できています。

1A48005A-86C5-4032-953B-9F034840E0EF.png

ローカルで起動されているコンテナを確認してみると LocalStack が起動されていますね。

EC74E22D-24D9-434A-A956-D8AD570D2B7D_1_105_c.jpeg

http://localhost:4566/_localstack/healthにアクセスしてみると次のようにローカルサービスのステータスを確認することができました。

			
			% curl http://localhost:4566/_localstack/health | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3193  100  3193    0     0   313k      0 --:--:-- --:--:-- --:--:--  346k
{
  "features": {
    "persistence": "disabled"
  },
  "services": {
    "account": "available",
    "acm-pca": "available",
    "amplify": "available",
    "apigateway": "available",
    "apigatewaymanagementapi": "available",

:

    "secretsmanager": "available",
    "sns": "available",
    "stepfunctions": "available",
    "support": "available",
    "swf": "available",
    "transcribe": "available"
  },
  "edition": "pro",
  "version": "4.8.1.dev5"
}

		

LocalStack CLI などの操作なしでここまで来れました。

エンドポイント切り替えの簡略化

準備ができたので最後に LocalStack を使用してみます。
先程のセットアップで追加されたカスタムプロファイルに切り替えます。

34E57487-B995-4697-86EF-D4643942A31F_1_105_c.jpeg

あとは適当な SAM アプリケーションをデプロイしてみます。

			
			pyenv shCreating the required resources...
        Successfully created!

                Managed S3 bucket: aws-sam-cli-managed-default-samclisourcebucket-fa1b4c8e
                A different default S3 bucket can be set in samconfig.toml
                Or by specifying --s3-bucket explicitly.
        Uploading to c2fb3f0641b98c174bc70dcb53779342  578203 / 578203  (100.00%)

        Deploying with following values
        ===============================
        Stack name                   : hoge0915lambda
        Region                       : ap-northeast-1
        Confirm changeset            : False
        Disable rollback             : False
        Deployment s3 bucket         : aws-sam-cli-managed-default-samclisourcebucket-fa1b4c8e
        Capabilities                 : ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
        Parameter overrides          : {}
        Signing Profiles             : {}

Initiating deployment
=====================

        Uploading to 3a1fa2f54fedcd2cd4f9fb7c6004382d.template  1267 / 1267  (100.00%)

Waiting for changeset to be created..

CloudFormation stack changeset
-------------------------------------------------------------------------------------------------
Operation                LogicalResourceId        ResourceType             Replacement            
-------------------------------------------------------------------------------------------------
+ Add                    HelloWorldFunction       AWS::Lambda::Function    N/A                    
+ Add                    HelloWorldFunctionHell   AWS::Lambda::Permissio   N/A                    
                         oWorldPermissionProd     n                                               
+ Add                    HelloWorldFunctionRole   AWS::IAM::Role           N/A                    
+ Add                    ServerlessRestApi        AWS::ApiGateway::RestA   N/A                    
                                                  pi                                              
+ Add                    ServerlessRestApiDeplo   AWS::ApiGateway::Deplo   N/A                    
                         yment47fc2d5f9d          yment                                           
+ Add                    ServerlessRestApiProdS   AWS::ApiGateway::Stage   N/A                    
                         tage                                                                     
-------------------------------------------------------------------------------------------------

Changeset created successfully. arn:aws:cloudformation:ap-northeast-1:000000000000:changeSet/samcli-deploy1757881397/fcf8e57f

2025-09-15 05:23:17 - Waiting for stack create/update to complete

CloudFormation events from stack operations (refresh every 5.0 seconds)
-------------------------------------------------------------------------------------------------
ResourceStatus           ResourceType             LogicalResourceId        ResourceStatusReason   
-------------------------------------------------------------------------------------------------
CREATE_IN_PROGRESS       AWS::CloudFormation::S   hoge0915lambda           -                      
                         tack                                                                     
CREATE_IN_PROGRESS       AWS::IAM::Role           HelloWorldFunctionRole   -                      
CREATE_COMPLETE          AWS::IAM::Role           HelloWorldFunctionRole   -                      
CREATE_IN_PROGRESS       AWS::Lambda::Function    HelloWorldFunction       -                      
CREATE_COMPLETE          AWS::Lambda::Function    HelloWorldFunction       -                      
CREATE_IN_PROGRESS       AWS::ApiGateway::RestA   ServerlessRestApi        -                      
                         pi                                                                       
CREATE_COMPLETE          AWS::ApiGateway::RestA   ServerlessRestApi        -                      
                         pi                                                                       
CREATE_IN_PROGRESS       AWS::Lambda::Permissio   HelloWorldFunctionHell   -                      
                         n                        oWorldPermissionProd                            
CREATE_COMPLETE          AWS::Lambda::Permissio   HelloWorldFunctionHell   -                      
                         n                        oWorldPermissionProd                            
CREATE_IN_PROGRESS       AWS::ApiGateway::Deplo   ServerlessRestApiDeplo   -                      
                         yment                    yment47fc2d5f9d                                 
CREATE_COMPLETE          AWS::ApiGateway::Deplo   ServerlessRestApiDeplo   -                      
                         yment                    yment47fc2d5f9d                                 
CREATE_IN_PROGRESS       AWS::ApiGateway::Stage   ServerlessRestApiProdS   -                      
                                                  tage                                            
CREATE_COMPLETE          AWS::ApiGateway::Stage   ServerlessRestApiProdS   -                      
                                                  tage                                            
CREATE_COMPLETE          AWS::CloudFormation::S   hoge0915lambda           -                      
                         tack                                                                     
-------------------------------------------------------------------------------------------------

CloudFormation outputs from deployed stack
-------------------------------------------------------------------------------------------------
Outputs                                                                                         
-------------------------------------------------------------------------------------------------
Key                 HelloWorldApi                                                               
Description         -                                                                           
Value               https://dnz5qeqldv.execute-api.amazonaws.com:4566/Prod/hello/               

Key                 HelloWorldFunction                                                          
Description         -                                                                           
Value               arn:aws:lambda:ap-northeast-1:000000000000:function:hoge0915lambda-         
HelloWorldFunction-cfe7560d                                                                     

Key                 HelloWorldFunctionIamRole                                                   
Description         -                                                                           
Value               arn:aws:iam::000000000000:role/hoge0915lambda-                              
HelloWorldFunctionRole-079c5480                                                                 
-------------------------------------------------------------------------------------------------

Successfully created/updated stack - hoge0915lambda in ap-northeast-1

		

アカウント000000000000のスタック作成に成功していそうです。LocalStack を使う場合はアカウントID がダミーの000000000000になります。
AWS Toolkit for Visual Studio Code 上からデプロイしたのでエンドポイントの指定などなしでうまいこと動作してますね。

またカスタムプロファイルを指定してデプロイされた Lambada 関数を AWS CLI から確認してみます。
こちらは AWS Toolkit 上からではないのでプロファイルを指定だけします。

			
			% aws lambda list-functions --region ap-northeast-1 --profile localstack
{
    "Functions": [
        {
            "FunctionName": "hoge0915lambda-HelloWorldFunction-cfe7560d",
            "FunctionArn": "arn:aws:lambda:ap-northeast-1:000000000000:function:hoge0915lambda-HelloWorldFunction-cfe7560d",
            "Runtime": "python3.12",
            "Role": "arn:aws:iam::000000000000:role/hoge0915lambda-HelloWorldFunctionRole-079c5480",
            "Handler": "app.lambda_handler",
            "CodeSize": 578203,
            "Description": "",
            "Timeout": 3,
            "MemorySize": 128,
            "LastModified": "2025-09-14T20:23:17.200299+0000",
            "CodeSha256": "BotKOXP4m61iq16kGn8rGo5QMR8JAllKWQ68wzQxFUk=",
            "Version": "$LATEST",
            "TracingConfig": {
                "Mode": "PassThrough"
            },
            "RevisionId": "fe8feed4-26f3-41b3-89db-ddf12da3e82b",
            "PackageType": "Zip",
            "Architectures": [
                "x86_64"
            ],
            "EphemeralStorage": {
                "Size": 512
            },
            "SnapStart": {
                "ApplyOn": "None",
                "OptimizationStatus": "Off"
            },
            "LoggingConfig": {
                "LogFormat": "Text",
                "LogGroup": "/aws/lambda/hoge0915lambda-HelloWorldFunction-cfe7560d"
            }
        }
    ]
}

		

確認できましたね。

さいごに

本日は AWS Toolkit for Visual Studio Code に LocalStack が統合されたので使ってみました。

LocalStack は導入がちょっと面倒だなぁと思っていたのですが、これはかなり良いのではないでしょうか。
難しい手順なしですぐに LocalStack を使った開発を始めることができました。

この記事をシェアする

FacebookHatena blogX

関連記事