> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrating your AWS cluster with VESSL AI

You can provision and integrate an AWS Cluster directly into your existing AWS account using the AWS Marketplace by filling out a simple **Quick Launch** form.
This form automatically creates and configures AWS infrastructure, which is then directly integrated into your VESSL cluster environment.

***

## Step-by-step integration guide

<Steps>
  <Step title="Access VESSL AI on AWS marketplace">
    * Visit the AWS Marketplace and search for **VESSL AI**.
    * Click **View purchase options** to check the pricing.
    * Accept the terms and subscribe.
    * After subscribing, the **Quick Launch** option will become available.
          <Frame>
            <img
              style={{
        width: 600,
        display: 'block',
        margin: '0 auto',
        borderRadius: '0.5rem'
      }}
              src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/1.quicklaunch.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=033c24afe12257308cb8eec50d2521ee"
              alt="Quick Launch"
              width="977"
              height="851"
              data-path="images/clusters/aws/1.quicklaunch.png"
            />
          </Frame>
  </Step>

  <Step title="Sign in to your VESSL account">
    * Click **Step 2: Sign in or create an account** to log in to VESSL.
    * Select your **Organization** after logging in.

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/2.login.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=0bf55f089c397e425e3eab2d46548ea1"
        alt="Select Organization"
        width="1500"
        height="695"
        data-path="images/clusters/aws/2.login.png"
      />
    </Frame>

    * Click **Generate AWS EKS Integration Token**.

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/3.tokenGen.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=99df4c3e31ac530680333acde7ef3114"
        alt="Token Generation"
        width="1468"
        height="552"
        data-path="images/clusters/aws/3.tokenGen.png"
      />
    </Frame>

    * Copy the generated token — you'll need to paste this later in the
      CloudFormation form.

    <Note>
      Make sure you select the correct organization before generating the token.
    </Note>
  </Step>

  <Step title="Configure your integration using a template">
    * On the AWS Marketplace page, click **Launch template** under **Quick
      Launch**.
    * Select the **Region** where your cluster will be deployed.

    <Warning>
      This **Region** must match the one you will specify later in the
      CloudFormation parameters.
    </Warning>

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/4.Step.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=f3549415e4c9e069c008811589acb280"
        alt="Step"
        width="958"
        height="305"
        data-path="images/clusters/aws/4.Step.png"
      />
    </Frame>

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/5.LaunchCluster.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=80f2d4482f343e3a6e6caed00707d74b"
        alt="Launch Template"
        width="1068"
        height="671"
        data-path="images/clusters/aws/5.LaunchCluster.png"
      />
    </Frame>
  </Step>

  <Step title="Fill out stack parameters">
    You'll be redirected to the CloudFormation form.

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/6.ProvideStackName.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=c69a87e1618471ead2f845202725e3fd"
        alt="Stack Name"
        width="1644"
        height="480"
        data-path="images/clusters/aws/6.ProvideStackName.png"
      />
    </Frame>

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/7.Settings.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=4b1cef10d4eb7e85dd62807324ac6efd"
        alt="Stack Parameters"
        width="1628"
        height="830"
        data-path="images/clusters/aws/7.Settings.png"
      />
    </Frame>

    Fill in the following parameters:

    * `Stack Name`: This will be your VESSL cluster name.
    * `AgentAccessToken`: Paste the token copied from Step 2.
    * `ClusterDomainName` *(optional but recommended)*:
      * Use a custom domain (e.g., `example.com`).
      * Services will be accessible at subdomains such as `service1.example.com`
        and `model.example.com`.
    * `CPUPoolMax` / `CPUPoolMin`: Set max/min CPU nodes per availability zone.
      (Defaults: 5 / 0)
    * `GPUInstanceType`: Select your preferred GPU instance type (e.g.,
      `g5.xlarge`, `p3.2xlarge`).
    * `GPUPoolMax` / `GPUPoolMin`: Set max/min GPU nodes per availability zone.
      (Defaults: 5 / 0)
    * `Region`:
          <Warning>
            Must match the region selected during the Launch Template step.
          </Warning>
  </Step>

  <Step title="Configure optional settings">
    * **Tags**: Add up to 50 key-value pairs for organizing and managing your
      resources.
    * **Permissions**: Optionally specify an existing IAM role that
      CloudFormation should assume.
    * **Stack Failure Options**:
      * Define rollback behavior upon provisioning failure.
      * Choose whether to delete or retain resources after rollback.
    * **Advanced Settings**:
      * **Stack policy**
      * **Notification options** (e.g., using SNS)
      * **Rollback monitoring** (e.g., using CloudWatch)
      * **Timeout** and **termination protection**

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/8.Optional.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=a836edd3703f6d4398d0946614cc7a75"
        alt="Optional Settings"
        width="1639"
        height="785"
        data-path="images/clusters/aws/8.Optional.png"
      />
    </Frame>

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/9.Advanced.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=dca7765a053a6e9d6934ea2142141add"
        alt="Advanced Settings"
        width="1238"
        height="852"
        data-path="images/clusters/aws/9.Advanced.png"
      />
    </Frame>
  </Step>

  <Step title="Configure DNS">
    Once you complete the CloudFormation form and click **Next**, the stack’s
    **Outputs** section will display your DNS configuration details.

    To complete the DNS setup:

    * A **Route 53 Hosted Zone** will be automatically created based on the
      `ClusterDomainName` you provided.
    * Copy the **Nameserver (NS) records** listed in that Hosted Zone.

    ✅ This allows VESSL services to be securely accessed at subdomains like
    `model.example.com`.
  </Step>

  <Step title="Complete integration">
    Once the CloudFormation stack is successfully created:

    * Your **AWS EKS Cluster** will appear in the [VESSL
      Console](https://app.vessl.ai/clusters).
    * The cluster is now ready to run:
      * ✅ Training
      * ✅ Inference
      * ✅ Service workloads
    * You can now deploy models and pipelines using **Workspace**, **Service**, or
      **VESSL Run**.

    <Frame>
      <img
        style={{
      width: 600,
      display: 'block',
      margin: '0 auto',
      borderRadius: '0.5rem',
    }}
        src="https://mintcdn.com/vesslai/BVHjKLa87Wnp_qJ8/images/clusters/aws/Complete.png?fit=max&auto=format&n=BVHjKLa87Wnp_qJ8&q=85&s=8462a2d997c1b7176df26f414454d630"
        alt="Cluster Completion"
        width="1233"
        height="419"
        data-path="images/clusters/aws/Complete.png"
      />
    </Frame>
  </Step>
</Steps>
