AWS PrivateLink and Fleet Management
With Amazon Web Services (AWS) PrivateLink, you can securely connect your virtual private clouds (VPCs) to Grafana Fleet Management to make API calls without using the public internet.
Connecting to Fleet Management with AWS PrivateLink can:
- Reduce your AWS egress costs.
- Improve security by keeping your data within the Amazon network.
To use this feature, configure an interface endpoint in your AWS VPC.
Before you begin
In order to use AWS PrivateLink with Fleet Management, you must have:
- A Grafana Cloud instance hosted on AWS.
- An AWS VPC where you can create an interface endpoint for making API calls.
Other regions
AWS PrivateLink supports native cross-region connectivity in selected AWS Regions, allowing you to connect to services hosted in other AWS Regions over interface endpoints.
This is an opt-in feature and regions are enabled for specific Grafana Cloud instances on a case-by-case basis.
If you would like to send telemetry data from services running in a different region than the one where your Grafana Cloud instance is hosted (for example, the infrastructure or service you want to monitor is in us-east-1
and your Grafana Cloud instance is in us-east-2
), you first need to check if your source region is enabled for that Grafana Cloud instance:
- In your Grafana Cloud instance, navigate to Connections > Collector > Fleet Management.
- Switch to the API tab and scroll down to the AWS PrivateLink section, where supported AWS regions for that specific instance are listed.
- If your source region is listed, you can connect right away.
- If your source region is not listed, contact Grafana Support to request to add your source region to all your desired Grafana Cloud instances.
For more information, refer to AWS PrivateLink cross-region connectivity.
Set up a VPC endpoint
You can create a VPC interface endpoint in the AWS console.
Open your AWS Console and navigate to VPC > PrivateLink and Lattice > Endpoints.
Select Virtual Private Clouds >
PrivateLink and Lattice > EndpointsChoose Create Endpoint.
Choose Create Endpoint Give the endpoint a name, for example,
grafana-fleet-management
.Choose PrivateLink Ready partner services.
In the Service Name field, enter the service name from your Grafana Cloud instance:
- In your Grafana Cloud instance, navigate to Connections > Collector > Fleet Management.
- Switch to the API tab and scroll down to the AWS PrivateLink section.
- Copy the Service Name and paste it into the Service Name field in the AWS console.
Service Name follows the pattern
com.amazonaws.vpce.<region>.vpce-svc-<random id>
.
Set the endpoint and service settings To connect to an endpoint service hosted in another region, scroll down and check Enable Cross Region endpoint. Then select the region where the Grafana service is hosted.
Enable Cross Region endpoint Click on Verify Service. Verification is confirmed with a
Service name verified.
message.Select your VPC.
Expand the Additional settings section and select Enable DNS name.
Check Enable DNS name Select your desired Subnets and Security Groups.
Select subnets and security groups Choose Create Endpoint. The new endpoint is created and held in
Pending
Status. Wait until the status isAvailable
, which can take up to 10 minutes.
Secure your Fleet Management connections
Once you’ve created an interface endpoint and associated it with the Fleet Management service, use the private DNS name to secure your connection to Fleet Management.
Enroll collectors with PrivateLink
Secure the connection of your collectors by adding the private DNS name to the
remotecfg
block in their local configurations.
- In your Grafana Cloud instance, navigate to Connections > Collector > Fleet Management.
- Switch to the API tab and scroll down to the AWS PrivateLink section.
- Locate and copy the private DNS name, which follows the pattern
<cell-name>.<region>.vpce.grafana.net
. - Access the
local configuration file of each Alloy instance and add the private DNS Name as the value of the
url
argument in theremotecfg
block. For example:
remotecfg {
url = "https://fleet-management-<CELL_NAME>.<REGION>.vpce.grafana.net"
basic_auth {
username = "<USERNAME>"
password = "<PASSWORD>"
}
id = constants.hostname
attributes = {"cluster" = "dev", "namespace" = "otlp-dev"}
poll_frequency = "5m"
}
Make direct API calls with PrivateLink
To make secure calls to the Collector API, substitute the private DNS name in its base URL. For example:
https://fleet-management-<CELL_NAME>.<REGION>.vpce.grafana.net/collector.v1.CollectorService/
To make secure calls to the Pipeline API, substitute the private DNS name in its base URL. For example:
https://fleet-management-<CELL_NAME>.<REGION>.vpce.grafana.net/pipeline.v1.PipelineService/