Skip to main content

Private Endpoints for CloudBender Regions

· 2 min read

CloudBender™ now allows you deploy applications as endpoints to your local region, so they are only accessible from inside your infrastructure.

Motivation

trainML Endpoints make it really easy to deploy a REST API or other HTTP application on a public URL with no web development or networking setup. However, CloudBender customers frequently need endpoints to be used by upstream applications that exist on privately routable address space like a VPC or physical LAN. Regional Reservations allow endpoint jobs to host local applications or services that are expected to be available at a specific hostname and port in a specific region. This ensures the endpoint always runs in that specific region, and is only accessible from systems on LAN.

How It Works

info

Regional reservations require a Team or higher feature plan.

In order to configure and utilize regional reservations, you must first have a CloudBender region configured with at least one compute node. From that region's dashboard, click the Add button on the Reservations toolbar. Fill out the reservation form with the information for the reservation in your region. Currently, only port reservations are supported.

Once the reservation has been added, you can select Regional Reservation when creating an Endpoint job.

caution

If any other running endpoint is currently using the reservation you select, it will be automatically stopped when the new endpoint begins to start.

For an example of how to deploy a regional endpoint in your CloudBender region, see our example repository here.

Using the SDK

To attach a new endpoint to a regional reservation using the SDK, set the reservation_id field of the endpoint dictionary to the ID of the regional reservation.

job = await trainml.jobs.create(
"Regional Endpoint",
type="endpoint",
...
endpoint=dict(
start_command="./start_endpoint.sh", reservation_id=reservation_id
),
...
)