# Create an Azure Cobalt 100 virtual machine

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/)
- [Overview of Azure Cobalt 100 and MinIO](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/background/)
- [Create an Azure Cobalt 100 virtual machine](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/instance/)
- [Open MinIO ports in the Azure Network Security Group](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/firewall-setup/)
- [Install and configure MinIO on Azure Cobalt 100](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/install-minio/)
- [Benchmark MinIO storage performance on Azure Cobalt 100](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/benchmark-and-validation/)
- [Use MinIO for AI/ML Dataset and Model Storage](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/ai-ml-usecase/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/_next-steps/)

## Prerequisites and setup
There are several common ways to create an Arm-based Cobalt 100 virtual machine, and you can choose the method that best fits your workflow or requirements:

- The Azure Portal
- The Azure CLI
- An infrastructure as code (IaC) tool

In this section, you will use the Azure Portal to create a virtual machine with the Arm-based Azure Cobalt 100 processor.

The steps below use a general-purpose virtual machine from the Dpsv6 series. For more information, see the [Microsoft Azure guide for the Dpsv6 size series](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dpsv6-series).

While the steps to create this instance are included here for convenience, you can also refer to [Deploy a Cobalt 100 Virtual Machine on Azure](https://learn.arm.com/learning-paths/servers-and-cloud-computing/cobalt/) for more information.

## Create an Arm-based Azure virtual machine
Creating a virtual machine based on Azure Cobalt 100 is no different to creating any other virtual machine in Azure. To create an Azure virtual machine:

1. Launch the Azure Portal and navigate to **Virtual Machines**.
2. Select **Create**, and select **Virtual Machine** from the drop-down list.
3. Inside the **Basic** tab, fill in the instance details such as **Virtual machine name** and **Region**.
4. Select the image for your virtual machine (for example, Ubuntu Pro 24.04 LTS) and select **Arm64** as the VM architecture.
5. In the **Size** field, select **See all sizes** and select the **D-Series v6** family of virtual machines.
6. Select **D4ps_v6** from the list as shown in the diagram below:

![Select D4ps_v6 from the D-Series v6 family](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/images/instance.webp)  
_Select D4ps_v6 from the D-Series v6 family_

7. For **Authentication type**, select **SSH public key**.

> **Note**  
> Azure generates an SSH key pair for you and lets you save it for future use. This method is fast, secure, and easy for connecting to your virtual machine.

8. Fill in the **Administrator username** for your VM.
9. Select **Generate new key pair**, and select **RSA SSH Format** as the SSH Key Type.
10. Give your SSH key a key pair name.
11. In the **Inbound port rules**, select **SSH (22)** as the inbound port.

> **Security**  
> Azure sets the source to **Any** by default, which allows SSH connections from the entire internet. After creating the VM, update the SSH inbound rule in the Network Security Group to restrict the source to your own IP address.

![Configure inbound port rules for SSH access](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/images/instance1.webp)  
_Configure inbound port rules for SSH access_

12. Select the **Review + Create** tab and review the configuration for your virtual machine. It should look like the following:

![Review VM configuration before creation](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/images/ubuntu-pro.webp)  
_Review VM configuration before creation_

13. Review the configuration and select the **Create** button, then select **Download Private key and Create Resource**.

![Download SSH key and create the virtual machine](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/images/instance4.webp)  
_Download SSH key and create the virtual machine_

Your virtual machine should be ready and running in a few minutes. You can SSH into the virtual machine using the private key, along with the public IP details.

![Successful VM deployment confirmation](https://learn.arm.com/learning-paths/servers-and-cloud-computing/minio-cobalt/images/final-vm.webp)  
_Successful VM deployment confirmation_

> **Note**  
> To learn more about Arm-based virtual machines in Azure, see “Getting Started with Microsoft Azure” in [Get started with Arm-based cloud instances](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/azure/).

## What you’ve learned and what’s next
You’ve successfully:

- Created an Azure Cobalt 100 Arm-based virtual machine using the D-Series v6 (Dpsv6) family
- Selected Ubuntu Pro 24.04 LTS as the operating system
- Configured SSH authentication for secure access

Your Azure Cobalt 100 virtual machine is now ready. Next, you will install MinIO to set up S3-compatible object storage and begin storing and managing data on the virtual machine.
