Features | Pricing | Documentation | Contact | Blog | About

Getting Started with Proxylity UDP Gateway

Deploy your first serverless UDP listener in under 5 minutes. This guide will walk you through the fastest path from AWS Marketplace subscription to processing your first UDP packets with Lambda, DynamoDB, or any other AWS service.

Prerequisites

Choose Your Path

There are two ways to get started with Proxylity UDP Gateway:

⚡ Infrastructure as Code (Recommended)

Time: ~3 minutes

Deploy using CloudFormation templates. Best for production use, repeatable deployments, and version control. No manual setup required—just deploy and go.

Start with IaC →

🖱️ Interactive Web Console

Time: ~5 minutes

Use the Proxylity web application to create listeners and destinations through a graphical interface. Good for testing and exploration.

Start with Web App →

Path 1: Infrastructure as Code (Fastest)

Recommended for most users. Proxylity is designed for Infrastructure as Code, making it easy to create and manage UDP listeners and destinations alongside your other AWS resources. No initial setup required—your subscription immediately provides access to CloudFormation custom resources.

Step 1: Subscribe to UDP Gateway

Visit the AWS Marketplace listing and click "Continue to Subscribe." Accept the terms to activate your subscription. (Takes ~1 minute)

Step 2: Clone the Examples Repository

Clone the Proxylity Examples Repository and navigate to the packet counter example:

git clone https://github.com/proxylity/examples
cd examples/packet-counter

Step 3: Deploy the Packet Counter Stack

Deploy the packet counter example using the AWS CLI:

aws cloudformation deploy \
  --template-file packet-counter.template.json \
  --stack-name my-first-udp-listener \
  --capabilities CAPABILITY_IAM \
  --region us-west-2

The template creates:

Step 4: Get Your Listener Endpoint

After deployment completes, check the CloudFormation stack outputs for your listener's ingress domain and port:

aws cloudformation describe-stacks \
  --stack-name my-first-udp-listener \
  --query 'Stacks[0].Outputs' \
  --region us-west-2

Step 5: Send Your First Packet

Test your listener (replace with your actual domain and port from outputs):

echo "test" | nc -u ingress-1.proxylity.com 15678

✓ Success! Your UDP packet was received, counted, and echoed back. The response will show 1 for a single packet. Check your Lambda CloudWatch logs to see the processing details.

Next: Customize the example template for your use case, or explore other destination types like Step Functions, Kinesis, or EventBridge.

Path 2: Interactive Web Console

Prefer a graphical interface? The Proxylity web application lets you create and manage listeners through a point-and-click interface.

Step 1: Subscribe and Access the Application

  1. Subscribe to UDP Gateway from your AWS account
  2. Click "Set Up Product" then "Set Up Your Account" to launch the Proxylity web application

Step 2: Create IAM Roles for Destinations

Proxylity needs permission to deliver packets to your AWS resources. We recommend using per-destination, least-privilege IAM roles:

  1. In the Proxylity app, navigate to the Account section
  2. Use the Template Generator to create a CloudFormation template with roles for the services you want to use (Lambda, DynamoDB, S3, etc.)
  3. Download the generated template and deploy it in the AWS CloudFormation console
  4. Note the role ARNs from the CloudFormation outputs—you'll need these next

Step 3: Create a Destination

  1. In the Proxylity app, click "Add Destination..."
  2. Enter the ARN of your AWS resource (e.g., Lambda function ARN)
  3. Enter the ARN of the IAM role created in Step 2
  4. Configure optional settings like batching and metrics
  5. Save the destination

Step 4: Create a Listener

  1. Click "Add Listener..."
  2. Select your destination from the dropdown
  3. Configure optional settings like client restrictions (recommended for security)
  4. Save the listener

An ingress domain and port will be automatically assigned to your listener. You'll see these in the listener details.

Step 5: Test Your Listener

Send a test UDP packet to your listener's ingress domain and port. For example, if you were assigned port 15678 on ingress-1.proxylity.com:

Using bash (Linux/macOS):

echo "hello world!" > /dev/udp/ingress-1.proxylity.com/15678

Using netcat:

echo "hello world!" | nc -u ingress-1.proxylity.com 15678

Using PowerShell (Windows):

$udpClient = New-Object System.Net.Sockets.UdpClient
$udpClient.Connect("ingress-1.proxylity.com", 15678)
$bytes = [Text.Encoding]::ASCII.GetBytes("hello world!")
$udpClient.Send($bytes, $bytes.Length)
$udpClient.Close()

Verify Success

Check your destination resource to confirm the packet was received:

To learn more about the format and structure of delivered packets, see the destination-specific documentation.

Next Steps

Congratulations! You've successfully deployed your first serverless UDP listener. Here's how to take it further:

🔒 Secure Your Listener

Configure client restrictions to block unauthorized traffic using IP allowlists or policy-based rules. Highly recommended for production.

🌍 Optimize for Multi-Region

Configure destinations with region-specific ARNs for best performance and reliability.

⚡ Tune Batching Settings

Optimize batching configuration to balance latency and cost for your workload.

📊 Enable Monitoring

Configure CloudWatch metrics and alarms to track packet delivery, errors, and performance.

Explore More Destinations

Try integrating with other AWS services:

Need Help?