1. Answers
  2. Deploy NVIDIA/CUDA Docker Image on AWS EC2 with TypeScript

How do I deploy the NVIDIA/CUDA Docker image on AWS EC2 with TypeScript?

In this guide, we will deploy an NVIDIA/CUDA Docker image on an AWS EC2 instance using Pulumi and TypeScript. We will create an EC2 instance, configure it to run Docker, and pull the NVIDIA/CUDA Docker image.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Create a new security group for the EC2 instance
const securityGroup = new aws.ec2.SecurityGroup("cuda-security-group", {
    description: "Allow SSH and HTTP access",
    ingress: [
        { protocol: "tcp", fromPort: 22, toPort: 22, cidrBlocks: ["0.0.0.0/0"] }, // SSH
        { protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }, // HTTP
    ],
});

// Create a new EC2 instance
const instance = new aws.ec2.Instance("cuda-instance", {
    instanceType: "p2.xlarge", // Instance type with GPU support
    ami: "ami-0c55b159cbfafe1f0", // Amazon Linux 2 AMI (HVM), SSD Volume Type
    securityGroups: [securityGroup.name],
    userData: `#!/bin/bash
sudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user
sudo docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
`,
    tags: {
        Name: "cuda-instance",
    },
});

// Export the public IP of the instance
export const publicIp = instance.publicIp;
export const publicDns = instance.publicDns;

Key Points:

  • Security Group: We created a security group to allow SSH and HTTP access to the EC2 instance.
  • EC2 Instance: We launched an EC2 instance of type p2.xlarge which has GPU support.
  • User Data Script: The script installs Docker, starts the Docker service, adds the ec2-user to the Docker group, and runs the NVIDIA/CUDA Docker image.

Summary:

We successfully deployed an NVIDIA/CUDA Docker image on an AWS EC2 instance using Pulumi and TypeScript. The EC2 instance is configured to run Docker and pull the NVIDIA/CUDA image, allowing us to utilize GPU capabilities.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up