Skip to content

feat: add AWS Lambda Managed Instances (LMI) skill to aws-serverless plugin#140

Open
sbbhimji wants to merge 4 commits intoawslabs:mainfrom
sbbhimji:feature/aws-lambda-managed-instances
Open

feat: add AWS Lambda Managed Instances (LMI) skill to aws-serverless plugin#140
sbbhimji wants to merge 4 commits intoawslabs:mainfrom
sbbhimji:feature/aws-lambda-managed-instances

Conversation

@sbbhimji
Copy link
Copy Markdown

@sbbhimji sbbhimji commented Apr 20, 2026

Summary

Adds a new skill to help users evaluate, configure, and migrate workloads to AWS Lambda Managed Instances (LMI) — the
recently launched feature that runs Lambda functions on dedicated EC2 instances with AWS managing the lifecycle.

What's included

SKILL.md (205 lines) — core workflow with 6 steps:

  1. Workload fitness assessment (decision table: LMI vs standard Lambda)
  2. 4-column cost comparison (Lambda OD, Lambda+SP, LMI OD, LMI+3yr SP)
  3. Configuration recommendations (instance types, memory ratios, concurrency)
  4. Code migration for multi-concurrency thread safety
  5. Infrastructure setup (IAM, VPC, capacity providers)
  6. Validation and gradual production cutover

6 reference files (42-96 lines each):

  • cost-comparison.md — pricing formulas, discount comparison, worked example, break-even guidance
  • configuration-guide.md — instance type decision tree, memory sizing from existing Lambda/EC2, concurrency tuning,
    scaling controls
  • thread-safety.md — code review checklist, runtime-specific guidance (Node.js, Python, Java, .NET), common
    anti-patterns
  • migration-patterns.md — before/after code examples per runtime (global state, file I/O, database connections)
  • infrastructure-setup.md — IAM roles, VPC requirements, CLI workflow, SAM template
  • troubleshooting.md — common issues, debugging steps for startup/performance/cost

Plugin registration:

  • Added managed-instances and lmi keywords to plugin.json
  • Added LMI skill triggers to README aws-serverless section
  • Added cross-references in aws-lambda/SKILL.md (Key Capabilities + When to Load Reference Files)

Design decisions

  • 4-column cost comparison includes Lambda with Savings Plans (not just on-demand) since customers often already have
    Compute Savings Plans covering Lambda duration
  • Thread safety is the critical migration gate — elevated to its own reference file with a per-runtime checklist since
    this is the feat: initial branch #1 source of production issues when adopting LMI
  • Follows all plugin standards: SKILL.md under 300 lines, reference files under 100 lines, proper frontmatter,
    progressive disclosure, explicit defaults, error handling

Test plan

  • Load plugin locally: claude --plugin-dir ./plugins/aws-serverless
  • Verify skill auto-triggers on "is LMI right for my workload?"
  • Verify skill auto-triggers on "migrate my Lambda to managed instances"
  • Verify cost comparison produces 4-column table (Lambda OD / Lambda+SP / LMI OD / LMI+SP)
  • Verify thread-safety checklist surfaces when reviewing function code
  • Verify cross-reference from aws-lambda skill routes to LMI skill
  • Confirm SKILL.md < 300 lines, all reference files < 100 lines
  • Run claude --plugin-dir ./plugins/aws-serverless --verbose to verify < 5000 token initial load

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.

…plugin

Add a new skill for evaluating, configuring, and migrating workloads to
AWS Lambda Managed Instances. Includes workload fitness assessment,
4-column cost comparison (Lambda OD/SP vs LMI OD/SP), configuration
recommendations, thread-safety review, and end-to-end migration framework.

Reference files cover cost analysis, configuration tuning, thread safety,
runtime-specific migration patterns, infrastructure setup (CLI/SAM/CDK),
and troubleshooting.
…nces

- Add managed-instances and lmi keywords to plugin.json
- Add LMI skill triggers to README aws-serverless section
- Add cross-reference to LMI skill in aws-lambda SKILL.md (key capabilities
  and "When to Load Reference Files" sections)
- Update plugin description to mention Lambda Managed Instances
@sbbhimji sbbhimji requested review from a team as code owners April 20, 2026 21:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new aws-lambda-managed-instances skill to the aws-serverless plugin, providing an agent workflow and reference material to evaluate, configure, and migrate workloads to Lambda Managed Instances (LMI), and wires it into existing plugin docs/metadata.

Changes:

  • Introduces a new aws-lambda-managed-instances skill (SKILL.md) plus several reference guides (cost, configuration, thread safety, migration patterns, infra setup, troubleshooting).
  • Updates the existing aws-lambda skill to cross-reference the new managed-instances skill.
  • Updates plugin metadata and root README to mention LMI and add trigger phrases/keywords.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
plugins/aws-serverless/skills/aws-lambda/SKILL.md Adds cross-references so the Lambda skill routes LMI questions to the new skill.
plugins/aws-serverless/skills/aws-lambda-managed-instances/SKILL.md New core workflow and routing to reference files for LMI evaluation/config/migration.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/cost-comparison.md Adds pricing formulas, comparison template, and worked example for Lambda vs LMI.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/configuration-guide.md Adds instance/memory/concurrency tuning guidance and scaling controls.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/thread-safety.md Adds a thread-safety checklist and runtime-specific guidance.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/migration-patterns.md Adds before/after migration examples for multi-concurrency readiness.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/infrastructure-setup.md Adds IAM/VPC/CLI + SAM template guidance for capacity provider setup.
plugins/aws-serverless/skills/aws-lambda-managed-instances/references/troubleshooting.md Adds common issues table and debugging steps.
plugins/aws-serverless/.claude-plugin/plugin.json Adds managed-instances and lmi keywords for discoverability.
README.md Updates plugin description and adds the new skill to the aws-serverless trigger table.

- **Cost comparison**, **pricing analysis**, **Lambda vs LMI cost**, **Savings Plans**, or **Reserved Instances** -> see [references/cost-comparison.md](references/cost-comparison.md)
- **Instance types**, **memory sizing**, **vCPU ratios**, **scaling tuning**, or **capacity provider config** -> see [references/configuration-guide.md](references/configuration-guide.md)
- **Thread safety**, **code review checklist**, or **multi-concurrency readiness** -> see [references/thread-safety.md](references/thread-safety.md)
- **Before/after code examples**, **runtime-specific migration** (Node.js, Python, Java, .NET), or **connection pooling** -> see [references/migration-patterns.md](references/migration-patterns.md)
- **Instance types**, **memory sizing**, **vCPU ratios**, **scaling tuning**, or **capacity provider config** -> see [references/configuration-guide.md](references/configuration-guide.md)
- **Thread safety**, **code review checklist**, or **multi-concurrency readiness** -> see [references/thread-safety.md](references/thread-safety.md)
- **Before/after code examples**, **runtime-specific migration** (Node.js, Python, Java, .NET), or **connection pooling** -> see [references/migration-patterns.md](references/migration-patterns.md)
- **IAM roles**, **VPC setup**, **CLI commands**, **SAM template**, or **CDK example** -> see [references/infrastructure-setup.md](references/infrastructure-setup.md)
- Use `AsyncLocal<T>` for request-scoped data
- Inject scoped services via DI container
- Initialize `HttpClient` and SDK clients as singletons
- Use `ConcurrentDictionary<T>` instead of `Dictionary<T>` for shared state
Comment on lines +1 to +4
# LMI Migration Patterns

Before/after code examples for migrating to multi-concurrency.

Comment on lines +1 to +5
# LMI Migration Patterns

Before/after code examples for migrating to multi-concurrency.

## Node.js
Comment on lines +46 to +53
| Component | Lambda OD | Lambda+SP | LMI OD | LMI+3yr SP |
|--------------------|-----------|-----------|--------|------------|
| Requests | $X | $X | $X | $X |
| Duration/compute | $X | $X | $X | $X |
| Management fee | — | — | $X | $X |
| Monthly total | $X | $X | $X | $X |
| Annual total | $X | $X | $X | $X |
| Savings vs Lambda | baseline | X% | X% | X% |
|--------|---------------------|---------------------------|
| Traffic | Steady, predictable, 50M+ req/mo | Bursty, unpredictable, long idle |
| Cost | Duration-heavy spend at scale | Low or sporadic invocations |
| Cold starts | Unacceptable (LMI has zero) | Tolerable or mitigated by SnapStart |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that might be a bit misleading as this is only true if the currently provisioned instances can handle the load. What is the user experience on scale-out?

| Traffic | Steady, predictable, 50M+ req/mo | Bursty, unpredictable, long idle |
| Cost | Duration-heavy spend at scale | Low or sporadic invocations |
| Cold starts | Unacceptable (LMI has zero) | Tolerable or mitigated by SnapStart |
| Compute | Latest CPUs, specific families, high network BW | Standard Lambda memory/CPU sufficient |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Compute | Latest CPUs, specific families, high network BW | Standard Lambda memory/CPU sufficient |
| Compute | Latest CPUs, specific families, high network bandwith | Standard Lambda memory/CPU sufficient |

| Cost | Duration-heavy spend at scale | Low or sporadic invocations |
| Cold starts | Unacceptable (LMI has zero) | Tolerable or mitigated by SnapStart |
| Compute | Latest CPUs, specific families, high network BW | Standard Lambda memory/CPU sufficient |
| Compliance | Single-tenant required, VPC control | Multi-tenant Firecracker acceptable |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what you are trying to describe here

| Lambda on-demand | Low volume, bursty traffic |
| Lambda + Savings Plan | Moderate steady volume (~17% duration discount) |
| LMI on-demand | High volume, steady traffic |
| LMI + 3yr Savings Plan | High volume + commitment (up to 72% EC2 discount) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requires forecasting with a high degree of certainty. Do we need to talk about financial constructs here?


### Step 5: Set Up Infrastructure

Two IAM roles required (execution + operator). VPC with 3+ AZ subnets. Create capacity provider, attach function, publish version.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be structured as a list/procedure


### Step 6: Validate and Cut Over

1. Test locally with LocalStack (supports LMI emulation)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about their recent licensing changes? Does this affect our guidance here?


### Regional Availability

us-east-1, us-east-2, us-west-2, ap-northeast-1, eu-west-1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we instead refer to the docs or builder central to avoid keeping it in sync

aws iam create-role --role-name LMIExecutionRole \
--assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"},"Action":"sts:AssumeRole"}]}'
aws iam attach-role-policy --role-name LMIExecutionRole \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The managed roles are pretty broad (using wildcards), can we instead list the minimal permissions necessary? Or somehow surface that least-privilege needs to be applied after testing?

- Function invocations bypass VPC (routed through Lambda service)
- Recommended VPC endpoints: CloudWatch Logs, X-Ray, S3, DynamoDB, SQS

## CLI Workflow
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract this into a bash script

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants