Amp Orb Provider
Overview
The Amp Orb Provider add-on runs a self-hosted Amp Orb provider inside your Tapitalee application. Amp sends orb requests to the provider, which launches each orb on its own EC2 instance in your AWS account, in the app’s region and internal network.
How It Works
Amp → Orb Provider (container) → EC2 instances (one per orb) in your app's VPC
- Provider Container: A small
utilitycontainerprocess runsorb-ec2 serveas part of your app and connects to Amp using your runner ID and provider token - IAM Role: A dedicated IAM role lets the provider launch, stop, image, and terminate EC2 instances. It is restricted to resources tagged with
amp-orb-provider - Orb Instances: Each orb runs on its own EC2 instance in the app’s internal network, optionally on arm64 (Graviton) and/or spot instances
- Status Page: The container serves an unauthenticated status page on port 80, reachable only on the internal network
Purpose and Benefits
- Runs in Your Account: Orbs run on EC2 instances in your own AWS account and VPC
- Internal Network Access: Orbs can reach your app’s internal services, such as databases and caches
- Cost Control: Use spot instances and/or arm64 (Graviton) instances to reduce compute costs
- Scoped Permissions: The provider’s IAM role can only manage EC2 resources tagged for the provider
Prerequisites
- An Amp account with access to Orbs
- An orb provider from Amp, under Settings → Orbs → Add Orb Provider, which gives you:
- The runner ID (
AMP_RUNNER_ID) - The provider token (
AMP_ORB_PROVIDER_TOKEN, starting withaop_live_)
- The runner ID (
CLI Usage
Create Amp Orb Provider
Create an Amp Orb Provider add-on that runs self-hosted Amp Orbs on EC2 instances in the app’s region and internal network
tapit create amp_orb_provider runner_id=ID amp_orb_provider_token=TOKEN [arm64=true|false] [use_spot=true|false] [description=DESCRIPTION] [--ignore-existing]
Parameters
runner_id: Amp runner ID (AMP_RUNNER_ID)amp_orb_provider_token: Amp orb provider token (AMP_ORB_PROVIDER_TOKEN), stored as a secretarm64: Run orbs on arm64 instances (true/false, default false)use_spot: Run orbs on spot instances (true/false, default false)description: Description of the add-on’s purpose--ignore-existing: Skip creation if the app already has an Amp Orb Provider with the same runner_id (useful for idempotent scripts)
Examples
# Create with default x86_64 on-demand instances
tapit create amp_orb_provider runner_id=RUNNER_ID amp_orb_provider_token=aop_live_abc123...
# Create using arm64 spot instances
tapit create amp_orb_provider runner_id=RUNNER_ID amp_orb_provider_token=aop_live_abc123... arm64=true use_spot=true
Update Amp Orb Provider
Update settings for an existing Amp Orb Provider add-on
tapit set amp_orb_provider name=addon_name [runner_id=ID] [amp_orb_provider_token=TOKEN] [arm64=true|false] [use_spot=true|false] [description=DESCRIPTION]
Parameters
name: Name of the Amp Orb Provider add-on to update (required)runner_id: Amp runner ID (AMP_RUNNER_ID)amp_orb_provider_token: Amp orb provider token (AMP_ORB_PROVIDER_TOKEN), stored as a secretarm64: Run orbs on arm64 instances (true/false, default false)use_spot: Run orbs on spot instances (true/false, default false)description: Description of the add-on’s purpose
Examples
# Switch orbs to spot instances
tapit set amp_orb_provider name=amporb-a1b2c3 use_spot=true
# Rotate the provider token
tapit set amp_orb_provider name=amporb-a1b2c3 amp_orb_provider_token=aop_live_def456...
Changing settings redeploys the provider container.
List and Show
List all add-ons attached to the app with their state and configuration
tapit list addons [-w|--wait]
Parameters
-w|--wait: Wait until all add-ons reach a stable state (fully ready or fully deleted); exits non-zero if any add-on is in a failed state
Show detailed information about a specific add-on
tapit show addon name=addon_name
Parameters
name: Name of the add-on to show (required)
Delete Amp Orb Provider
Delete an add-on and all its associated AWS resources
tapit delete addon name=addon_name
Parameters
name: Name of the add-on to delete (required)
Web UI
You can also manage Amp Orb Provider add-ons through the Tapitalee web interface:
- Navigate to your app
- Go to the Add-ons section
- Click “Add Add-on” and select “Amp Orb Provider”
- Enter your runner ID and provider token, and optionally enable arm64 and/or spot instances
- Click Create
The add-on’s page lists its current orb EC2 instances and AMIs, refreshed every 30 seconds. The Delete all button launches a background task that terminates all orb instances and deletes all AMIs for this provider.
Only one Amp Orb Provider add-on can exist per app.
Environment Variables
The provider container receives these variables:
| Variable | Description |
|---|---|
AWS_REGION |
The app’s AWS region |
AMP_RUNNER_ID |
The configured runner ID |
AMP_ORB_PROVIDER_TOKEN |
The provider token (internal secret variable) |
ORB_EC2_PROVIDER |
Identifier used to tag this provider’s EC2 resources |
ORB_EC2_ARM |
true if orbs run on arm64 instances |
ORB_EC2_SPOT |
true if orbs run on spot instances |
The app must not already have its own AMP_ORB_PROVIDER_TOKEN variable.
Security Considerations
- Secret Storage: The provider token is stored as an internal secret variable and is not shown after creation. Leave it blank when editing in the web UI to keep the existing token.
- Scoped IAM Role: The provider can only start, stop, image, or terminate instances, and delete AMIs, that are tagged with
amp-orb-provider. - Internal Status Page: The status page on port 80 has no authentication. It is only reachable from the app’s internal network.
Deleting the Add-On
Deleting the add-on first runs a background task that terminates all of the provider’s orb instances and deletes its AMIs. It then removes the provider container, the IAM role, and the AMP_ORB_PROVIDER_TOKEN secret.