Skip to content

Commit 8747494

Browse files
committed
docs: add AWS console screenshots and remove DNS-exposure references from private networking docs
1 parent 957806f commit 8747494

10 files changed

Lines changed: 31 additions & 11 deletions
210 KB
Loading
567 KB
Loading
450 KB
Loading
250 KB
Loading
209 KB
Loading
322 KB
Loading
539 KB
Loading
235 KB
Loading

docs/private-networking/aws-console-setup.mdx

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,16 @@ The target group is how the NLB will know where to forward traffic. AWS requires
5050
- **Port**: the port your resource listens on (5432 for Postgres, 6379 for Redis, 3306 for MySQL, etc.)
5151
- **VPC**: the VPC where your resource lives (this must match the VPC you'll use for the NLB)
5252
- **Health check protocol**: TCP
53+
54+
![Target group basic configuration](/images/priv-connections-target-group-basic.png)
55+
5356
</Step>
5457
<Step title="Register your targets">
5558
Add the IP addresses of the resource. For RDS, look up the writer endpoint's IPs (`dig <endpoint>` from inside the VPC).
5659
For ElastiCache, use the primary endpoint IPs.
5760

61+
![Register targets in the target group](/images/priv-connections-target-group-register-nlb.png)
62+
5863
<Warning>
5964
RDS and ElastiCache endpoints' IP addresses can change after failover or maintenance. For long-lived
6065
connections, consider running a small Lambda or sidecar that periodically resolves the DNS name and
@@ -80,17 +85,26 @@ The NLB is what PrivateLink exposes to Trigger.dev. It must be **internal** (not
8085
- **Name**: something descriptive, e.g. `trigger-postgres-nlb`
8186
- **Scheme**: **Internal**
8287
- **IP address type**: IPv4
88+
89+
![Network Load Balancer basic configuration](/images/priv-connections-network-load-balancer-basic.png)
90+
8391
</Step>
8492
<Step title="Choose VPC and subnets">
8593
Pick the same VPC as your target group. Select one private subnet per AZ that should serve traffic.
8694
Each subnet you select adds an availability zone to the endpoint.
95+
96+
![Network Load Balancer VPC and Availability Zones](/images/priv-connections-network-load-balancer-vpc-az.png)
97+
8798
</Step>
8899
<Step title="Add a TCP listener forwarding to your target group">
89100
Under **Listeners and routing**, configure:
90101

91102
- **Protocol**: TCP
92103
- **Port**: same as your target group port (5432 for Postgres, 6379 for Redis, etc.)
93104
- **Default action**: forward to the target group you created in Step 1
105+
106+
![Add the target group to the NLB listener](/images/priv-connections-network-load-balancer-add-target-group.png)
107+
94108
</Step>
95109
<Step title="Create the load balancer and wait until it's Active">
96110
Click **Create load balancer**. Provisioning takes 1–2 minutes — wait until the NLB's **State**
@@ -124,6 +138,8 @@ This is the resource that PrivateLink consumers connect to.
124138
- **Available load balancers**: select the NLB you created
125139
- **Require acceptance for endpoint**: **No** (recommended)
126140

141+
![Create VPC Endpoint Service form](/images/priv-connections-create-endpoint-service.png)
142+
127143
<Note>
128144
If you set "Require acceptance" to **Yes**, every connection request from Trigger.dev will
129145
sit in a pending state until you manually approve it. Setting it to **No** lets connections
@@ -132,9 +148,8 @@ This is the resource that PrivateLink consumers connect to.
132148

133149
</Step>
134150
<Step title="Skip private DNS">
135-
Leave the "Private DNS name" option disabled. Trigger.dev tasks dial the endpoint by IP or by
136-
its VPC Endpoint DNS name (shown in your dashboard once provisioned), so private DNS isn't
137-
needed.
151+
Leave the "Private DNS name" option disabled. Trigger.dev tasks dial the endpoint by its
152+
private IP, so private DNS isn't needed.
138153
</Step>
139154
<Step title="Configure cross-region access (optional)">
140155
If your Trigger.dev tasks run in a **different AWS region** from your endpoint service, expand
@@ -176,6 +191,8 @@ By default, no one can connect to your endpoint service. You need to explicitly
176191
arn:aws:iam::<account-id>:root
177192
```
178193

194+
![Allow principal dialog](/images/priv-connections-allow-principal.png)
195+
179196
<Warning>
180197
You will find the correct AWS account ID in the **Add connection** page of the Trigger.dev
181198
dashboard. Do not assume an account ID — it differs between Trigger.dev environments.
@@ -189,6 +206,9 @@ By default, no one can connect to your endpoint service. You need to explicitly
189206
On the endpoint service detail page, copy the **Service name** value — it looks like
190207
`com.amazonaws.vpce.us-east-1.vpce-svc-0123abcd...`. You'll paste this into the Trigger.dev
191208
dashboard in the next step.
209+
210+
![Copy the endpoint service name](/images/priv-connections-copy-endpoint-name.png)
211+
192212
</Step>
193213
</Steps>
194214

@@ -212,10 +232,10 @@ By default, no one can connect to your endpoint service. You need to explicitly
212232
Provisioning typically takes 30–90 seconds.
213233
</Step>
214234
<Step title="Verify">
215-
Once **Active**, the dashboard shows the assigned IPs and a copyable DNS endpoint name. Plug
216-
one of them into the connection-string env var your task already uses (for example,
217-
`DATABASE_URL` set on the **Environment Variables** page) and your tasks will reach the
218-
resource over PrivateLink.
235+
Once **Active**, the dashboard shows the assigned private IP. Plug it into the
236+
connection-string environment variable your task already uses (for example, `DATABASE_URL` set
237+
on the **Environment Variables** page) and your tasks will reach the resource over
238+
PrivateLink.
219239
</Step>
220240
</Steps>
221241

docs/private-networking/overview.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ AWS PrivateLink is a managed service that creates a private, one-way connection
1717
It works by pairing two resources:
1818

1919
- A **VPC Endpoint Service** in the account that owns the resource (yours). This is fronted by a Network Load Balancer (NLB) and exposes whatever ports you choose.
20-
- A **VPC Endpoint** in the account that wants to consume the resource (Trigger.dev's). The endpoint is a set of Elastic Network Interfaces (ENIs) inside our VPC that your task pods can dial directly by IP or DNS name.
20+
- A **VPC Endpoint** in the account that wants to consume the resource (Trigger.dev's). The endpoint is an Elastic Network Interface (ENI) inside our VPC with a private IP that your task pods can dial directly.
2121

2222
The connection is unidirectional: only the endpoint side can initiate connections. Your VPC cannot reach into ours.
2323

@@ -42,16 +42,16 @@ When you add a private connection in the dashboard, the following happens:
4242
You create an internal NLB in front of your resource and a VPC Endpoint Service that points to it. You add Trigger.dev's AWS account as an allowed principal so we're permitted to connect.
4343
</Step>
4444
<Step title="We provision a VPC Endpoint">
45-
Once you submit the endpoint service name in the Trigger.dev dashboard, we provision a VPC Endpoint in our AWS account in the region you chose. The endpoint creates ENIs with private IPs that we wire up to reach your service.
45+
Once you submit the endpoint service name in the Trigger.dev dashboard, we provision a VPC Endpoint in our AWS account in the region you chose. The endpoint creates an ENI with a private IP that we wire up to reach your service.
4646
</Step>
4747
<Step title="Your tasks can reach the endpoint">
48-
Once the connection is **Active**, the dashboard shows the assigned IPs and a copyable DNS endpoint name. Pods running your tasks are network-authorized to connect to those addresses.
48+
Once the connection is **Active**, the dashboard shows the assigned IP. Pods running your tasks are network-authorized to connect to it.
4949
</Step>
5050
</Steps>
5151

5252
### Connecting from your task code
5353

54-
When the connection becomes **Active**, the dashboard shows the assigned endpoint IP. Plug it into the connection-string env var your task already reads (for example, `DATABASE_URL` set in the **Environment Variables** page):
54+
When the connection becomes **Active**, the dashboard shows the assigned endpoint IP. Plug it into the connection-string environment variable your task already reads (for example, `DATABASE_URL` set on the **Environment Variables** page):
5555

5656
```typescript
5757
import { task } from "@trigger.dev/sdk";

0 commit comments

Comments
 (0)