Bring Your Own Cloud
Speedscale Bring Your Own Cloud (BYOC) keeps captured request and response pairs (RRPairs) in destinations you control. Choose direct storage when captures, replay inputs, and reports must live in your object storage. Choose collector export when you want to send captured traffic through OpenTelemetry to a storage or observability backend.
Already have captured traffic? Import it into proxymock for analysis, dependency mocking, and replay.
BYOC requires a Speedscale Enterprise plan and Speedscale API connectivity for registration, configuration, and operational telemetry. It is not a self-hosted or air-gapped Speedscale platform. Contact support@speedscale.com to enable BYOC on your account.
Choose a path
| Setup | Capture and storage | Replay |
|---|---|---|
| Direct storage | Namespaced Kubernetes capture; the Forwarder writes directly to S3, S3-compatible storage, GCS, or Azure Blob. | Stage a local snapshot and run a namespaced cluster replay; artifacts stay in customer storage. |
| Collector export on Kubernetes | Captured traffic goes from the Forwarder to your OpenTelemetry Collector, then to your chosen destination. | Import stored traffic and replay locally with proxymock. |
| Collector export on ECS/Fargate | goproxy captures ECS traffic; the Forwarder and collector deliver it to your bucket. | Import stored traffic and replay locally with proxymock. |
Direct storage
This path requires namespaced.enabled: true and namespaced.forwarder.primaryTransport: byoc. The classic operator does not support direct storage. No OpenTelemetry Collector is needed for storage.
Operator chart v2.5.1169 exposes namespaced.forwarder.byoc.provider with s3, gcs, and azureblob providers. S3-compatible services use the s3 provider with a customer endpoint.
Capture uses proxymock cluster capture inject --sidecar. Replay uses proxymock cluster replay start --namespaced --snapshot-source local, which prevents a Cloud upload if local staging fails. Captured RRPairs live under <PREFIX>/records/rrpairs/.
Start with direct storage on Kubernetes, then verify storage and replay.
Collector export on Kubernetes
Each named Forwarder exporter sends captured traffic as OTLP logs to your collector with its own filter and DLP configuration. You can also add collector export alongside direct storage.
The classic operator enables capture through workload annotations; a namespaced installation uses proxymock sidecar injection. The default S3 and GCS collector layouts use the byoc/ prefix. Azure Blob and observability destinations require backend-specific retrieval recipes for replay.
Start with Kubernetes collector export after completing the checks below.
Collector export on ECS/Fargate
goproxy sends captured traffic to a Forwarder task. A collector in that task writes to S3 using the ECS task role. Tenant configuration comes from Speedscale; secrets come from AWS Secrets Manager.
Follow BYOC on ECS/Fargate to configure Cloud filtering before starting capture, verify an S3 object, and import the capture for a local replay.
Before you capture
- Prepare your tenant. Use the dashboard or speedctl for tenant values, filters, and DLP configuration IDs. Direct storage can use local Forwarder rule files; named collector exporters fetch their own filter and DLP configurations from the tenant.
- Prevent Cloud export before capture. Direct storage uses
primaryTransport: byoc. Collector export needs a drop-all Cloud filter assigned to the Forwarder'sfilterRule, orSPEEDSCALE_FILTER_RULEon ECS. The defaultstandardfilter sends RRPairs to Cloud. Keep the named exporter's own filter configured to retain traffic. - Choose where to redact. Configure DLP before export for each destination. Direct storage uses a tenant configuration ID or local Forwarder files; collector export uses each named exporter's DLP configuration ID.
proxymock import --dlp-configredacts local imports without changing bucket objects. See DLP and local rules. - Keep replay in your data boundary. Use a local-source namespaced replay for direct storage, or import and replay locally for collector export. Dashboard and Cloud replays upload snapshots to Speedscale Cloud.
What you operate
You operate destination credentials, workload identity, encryption, retention, network policy, and access controls. Collector export also requires you to operate the collector. Plan access to customer storage separately from the required Speedscale API route.
Typical workflow
- Complete your selected setup, including Cloud export configuration.
- Enable capture on one workload and send a known request.
- Verify the deployment and inspect the captured request in your destination.
- Run a replay and inspect its results. See traffic import for bucket access or troubleshooting for a failed check.
Related resources
- How BYOC works: components, data boundaries, and OTLP transport.
- Storage and observability backends: destination capabilities and collector support.
- Speedscale BYOC reference charts: backend configuration and credentials.
- Kubernetes installation options: classic and namespaced permission scopes.