Skip to main content
Deploy the Resolve Satellite on AWS ECS Fargate using CloudFormation. The satellite runs in your AWS environment and securely connects to Resolve SaaS to provide alert investigation, monitoring, and integration capabilities.
For Kubernetes-based deployments, see Resolve Satellite.

Architecture

  • Compute: ECS Fargate (serverless containers)
  • Networking: Runs in your VPC with configurable subnets and security groups
  • Storage: Optional EFS volume for Git integration persistence
  • Secrets: AWS Secrets Manager for credentials
  • Logging: CloudWatch Logs

Installation

Step 1: Prepare Resources

Gather the following information before deployment. See Resource Setup Reference below for how to create each resource.
At least one integration must be configured for the satellite to appear in the Resolve UI.

Step 2: Deploy with CloudFormation

Deploy directly from the AWS CloudFormation console by clicking Launch Stack. Fill in the required parameters in the form.
  1. Click Launch Stack above (opens AWS CloudFormation console)
  2. Choose your preferred Region in the top-right corner of the console
  3. Fill in the required parameters from Step 1
  4. Configure the IntegrationsConfig parameter with your integration YAML (see Integrations Configuration for examples)
  5. Click Next through the remaining pages, then Submit
The Launch Stack button uses the latest template version. To deploy a specific version, replace latest in the template URL with a version number (e.g., v1.1.22).
Resolve Satellite supports additional integrations including Grafana, Prometheus, Loki, Elasticsearch, Splunk, Kubernetes, AWS CloudWatch, and more. For the full list of integration types and their configuration schemas, see Reference Schema.

Step 3: Monitor Deployment

The deployment typically takes 3-5 minutes.

Resource Setup Reference

The CloudFormation template does not create the following resources. They must exist before deployment.

1. IAM Role

The satellite needs an IAM role with the ecs-tasks.amazonaws.com trust policy. You can use a single role for both ExecutionRoleArn and TaskRoleArn by combining all required permissions into one role. Trust Policy:
Required Managed Policies:
  • arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
Required Inline Policies: Secrets Manager access:
EFS access (only if using Git integration):
If your organization requires separate permission boundaries, you can create two roles — one for task execution (image pull, secrets, logs) and one for task runtime (EFS access) — and pass them as different ExecutionRoleArn and TaskRoleArn values.

2. AWS Secrets Manager Secrets

A. Ingest Token (Required)

The ingest token authenticates your satellite with Resolve SaaS. Generate it from Resolve UI > Admin > Tokens. Store the token value as a plaintext string — no JSON wrapping required.
Note the ARN after creation (format: arn:aws:secretsmanager:REGION:ACCOUNT_ID:secret:resolve/satellite/ingest-token-XXXXX). You will need it for deployment.

B. Git Integration Credentials (Token Auth Only)

Required only if using Git integration with token-based auth. GitHub App auth does not require a secret — it is configured through the Resolve UI after deployment. Creating a personal access token: see Creating access tokens for step-by-step token setup for each provider (GitHub, GitLab, and others). Then store the credentials in the secret below.

C. Datadog Integration Credentials (Optional)

Required only if using Datadog integration.

3. Network Infrastructure

VPC Requirements

  • DNS Resolution: Must be enabled (enableDnsSupport: true)
  • DNS Hostnames: Must be enabled (enableDnsHostnames: true)
  • Internet Access: Required for communication with Resolve SaaS

Subnets

  • Minimum: 2 subnets (recommended for high availability)
  • Type: Private subnets with NAT Gateway, or public subnets with auto-assign public IP
  • Internet Access: Must have route to internet (via NAT Gateway or Internet Gateway)

Security Group

Create a security group for the satellite tasks. Required Egress Rules:
  • HTTPS (port 443) to Resolve SaaS
  • HTTPS (port 443) to integration endpoints (Datadog, Grafana, etc.)
  • If using Git with EFS: NFS (port 2049) to EFS security group

4. ECS Cluster

You must have an existing ECS cluster. The satellite will be deployed as a Fargate service.

Configuration Reference

Required Parameters

Optional Parameters


Git Volume (EFS)

When EnableGitVolume=true, the CloudFormation template automatically creates:
  1. EFS Filesystem: Encrypted, generalPurpose performance mode
  2. EFS Security Group: Allows NFS (port 2049) traffic from satellite tasks
  3. EFS Access Point: Isolated path /git with POSIX UID/GID 1000
  4. EFS Mount Targets: One per subnet (takes 2-3 minutes to become available)

Additional Parameters

Cost Considerations

  • EFS Standard storage: ~$0.30/GB/month (pay only for actual usage)
  • No provisioned capacity needed
  • Bursting throughput included at no extra cost

Integrations Configuration

The IntegrationsConfig parameter accepts YAML configuration for integrations. All credentials must be stored in AWS Secrets Manager.

Git Integration

Git integration requires EFS volume for repository storage (EnableGitVolume=true).
No credentials secret needed. Auth is configured through the Resolve UI after deployment.
For detailed Git integration configuration including auth options, write/remediation behavior, and token setup, see Git on Satellite.

Datadog Integration

Supported sites: datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ddog-gov.com

Additional Integrations

Resolve Satellite supports many additional integrations including Grafana, Prometheus, Loki, Elasticsearch, Splunk, Kubernetes, AWS CloudWatch, and more. For complete integration schemas and configuration examples, see Reference Schema.

Verification

1. Check Task is Running

Task should be in RUNNING state with lastStatus: RUNNING.

2. Check CloudWatch Logs

Expected log messages:
  • Satellite starting...
  • Connected to Resolve SaaS
  • Integration [name] initialized
  • Health check passed

3. Check Satellite in Resolve UI

  1. Log in to Resolve UI
  2. Navigate to Admin > Satellites
  3. Verify your satellite appears with status “Connected”

4. Test Health Check

Expected: HTTP 200 OK

5. Verify EFS Mount (if using Git integration)


Updating the Satellite

Update to New Version

CloudFormation performs a rolling update with zero downtime (if DesiredCount > 1).

Add Git Integration to Existing Deployment

This creates new EFS resources and restarts the task.

Deleting the Satellite

Delete CloudFormation Stack

The EFS filesystem has DeletionPolicy: Retain to prevent accidental data loss. After deleting the stack, delete the EFS filesystem manually if no longer needed:

Cleanup IAM Roles and Secrets

IAM roles and Secrets Manager secrets are not managed by the CloudFormation stack. Delete them manually if no longer needed:

Troubleshooting

Task Fails to Start

Task transitions from PENDING to STOPPED immediately.

EFS Mount Fails

Task logs show Failed to mount EFS or health check never passes.

Satellite Not Appearing in Resolve UI

Task is running but satellite doesn’t show as connected.

High Memory Usage

Task getting killed due to OOM (Out of Memory).
  • Increase Memory parameter (default is 8192 MB)
  • Review CloudWatch Container Insights metrics

Integration Not Working

Integration appears in UI but queries fail.
  • Verify secret format matches the expected structure for each integration type
  • Verify security group allows outbound HTTPS to integration endpoints
  • For token auth, verify the secret key names match authConfigs key names
  • Check CloudWatch logs linked from the ECS task for detailed error messages