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
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.
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
),
...
)