<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nwafor Somadina Emeka</title>
    <description>The latest articles on DEV Community by Nwafor Somadina Emeka (@nwafor_somadina_efa388085).</description>
    <link>https://dev.to/nwafor_somadina_efa388085</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3760524%2Fbbc4a26c-4731-4408-83ba-d9db0c2b9923.png</url>
      <title>DEV Community: Nwafor Somadina Emeka</title>
      <link>https://dev.to/nwafor_somadina_efa388085</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nwafor_somadina_efa388085"/>
    <language>en</language>
    <item>
      <title>Azure Management Tasks</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Wed, 25 Mar 2026 09:11:00 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/azure-management-tasks-k80</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/azure-management-tasks-k80</guid>
      <description>&lt;p&gt;This document outlines a series of &lt;strong&gt;technical laboratory exercises&lt;/strong&gt; designed to complement &lt;strong&gt;Microsoft Learn training modules&lt;/strong&gt;. The provided curriculum focuses on the &lt;strong&gt;administration of cloud infrastructure&lt;/strong&gt;, specifically guiding users through the &lt;strong&gt;management of virtual networks&lt;/strong&gt; and &lt;strong&gt;virtual machine configurations&lt;/strong&gt;. Students also learn to implement &lt;strong&gt;security protocols&lt;/strong&gt; for data storage and apply &lt;strong&gt;governance tools&lt;/strong&gt; such as resource tags and locks. The final stage of the learning path ensures environmental efficiency by detailing the necessary &lt;strong&gt;clean-up procedures&lt;/strong&gt;. Altogether, these resources offer a &lt;strong&gt;structured practical framework&lt;/strong&gt; for developing essential &lt;strong&gt;IT competencies&lt;/strong&gt; within the Microsoft ecosystem.&lt;/p&gt;

&lt;p&gt;The core steps for managing virtual network infrastructure within the context of Microsoft skilling exercises include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Prepare&lt;/strong&gt;: Initial setup and readiness for the infrastructure tasks.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Update the virtual network&lt;/strong&gt;: Modifying and maintaining the network configurations.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Manage virtual machines&lt;/strong&gt;: Overseeing the computing resources connected to the network.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Control storage access&lt;/strong&gt;: Managing how data and storage resources are accessed within the infrastructure.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Manage tags and locks&lt;/strong&gt;: Organizing resources for better tracking and applying protections to prevent accidental deletion or modification.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Clean up&lt;/strong&gt;: Finalising tasks and removing unnecessary resources to maintain an efficient environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Create a resource group
&lt;/h2&gt;

&lt;p&gt;In order to make clean-up easy at the end, start with creating a new resource group to hold the resources for this guided project. Using resource groups to organize things is a quick way to ensure you can manage resources when a project is over.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to Microsoft Azure
Login to Microsoft Azure at &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter resource groups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s70oxyg27fyugn6uqpw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9s70oxyg27fyugn6uqpw.png" alt=" " width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select Create.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter guided-project-rg in the Resource group name field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Region field will automatically populate. Leave the default value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Review + create.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcr9z83sbhpbe1rsn2ns7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcr9z83sbhpbe1rsn2ns7.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsqrada90ukzkk1gr0bz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsqrada90ukzkk1gr0bz.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a virtual network with one subnet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual networks.&lt;/li&gt;
&lt;li&gt;Select virtual networks under services.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;li&gt;Scroll down to the Instance details section and enter guided-project-vnet for the Virtual network name.&lt;/li&gt;
&lt;li&gt;Select Review + create.&lt;/li&gt;
&lt;li&gt;Select Create.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftm36be9dznmv44a3om5o.png" alt=" " width="800" height="616"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0oaxgp0vdvwjbpmnnan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0oaxgp0vdvwjbpmnnan.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the screen to refresh and show Your deployment is complete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0d9pqsn0rogneijqtt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0d9pqsn0rogneijqtt9.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create a virtual machine
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizv5zcg899qr5tjud35v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizv5zcg899qr5tjud35v.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Create and then select Virtual machine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq8jxxahajvlzri007kv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq8jxxahajvlzri007kv.png" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;em&gt;guided-project-rg&lt;/em&gt; for the Resource group.&lt;/li&gt;
&lt;li&gt;Enter _guided-project-vm _for the Virtual machine name.&lt;/li&gt;
&lt;li&gt;For the Image, select one of the Ubuntu Server options. (For example, Ubuntu Server 24.04 LTS - x64 Gen2)&lt;/li&gt;
&lt;li&gt;Continue further on the Basics page to the Administrator account section.&lt;/li&gt;
&lt;li&gt;Select Password for authentication type.&lt;/li&gt;
&lt;li&gt;Enter &lt;em&gt;guided-project-admin&lt;/em&gt; for the admin Username.&lt;/li&gt;
&lt;li&gt;Enter a password for the admin account.&lt;/li&gt;
&lt;li&gt;Confirm the password for the admin account.&lt;/li&gt;
&lt;li&gt;Leave the rest of the settings as default settings. You can review the settings if you like, but shouldn’t change any.&lt;/li&gt;
&lt;li&gt;Select Create to confirm the resource cost and create the virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqrz6s4scdipoumt13s3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqrz6s4scdipoumt13s3.png" alt=" " width="800" height="1603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt2cl8rdwyyr2djevvk4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyt2cl8rdwyyr2djevvk4.png" alt=" " width="800" height="711"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq993oyhd43ewclldrhnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq993oyhd43ewclldrhnx.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Create a Storage account
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;From the Azure portal home page, in the search box, enter storage accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Storage accounts under services.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7i2m60bxffvhd0ja8k4t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7i2m60bxffvhd0ja8k4t.jpg" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select Create.&lt;br&gt;
Note: The subscription and resource group should automatically fill in. Verify that the information filled in matches the correct subscription and the new resource group created for the guided project (guided-project-rg if you’re following along with the naming conventions).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scroll down to the Instance details section and enter a name for the storage account. Storage accounts must be globally unique, so you may have to try a few different times to get a storage account name.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l146kceomruj0901tu8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l146kceomruj0901tu8.png" alt=" " width="800" height="956"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Review + create. Screenshot of the server manager menu with the alert icon displayed.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zp905j7zul1iky0l238.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zp905j7zul1iky0l238.png" alt=" " width="800" height="1076"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the screen to refresh and show Your deployment is complete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7q18kumvye1318oojtk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7q18kumvye1318oojtk3.png" alt=" " width="800" height="974"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Update the virtual network
&lt;/h1&gt;

&lt;p&gt;You’re helping an Azure Admin maintain resources. While you won’t be responsible for maintaining the entire infrastructure, the Admin will ask you to help out by completing certain tasks. Currently, there’s a Linux virtual machine (VM) that’s underutilized, and a need for a new Linux machine to serve as an FTP server. However, the Azure admin wants to be able to track network flow and resource utilization for the needed FTP server, so has asked you to start out by provisioning a new subnet. The current subnet should be left alone, as there are future plans for using it for additional VMs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a new subnet on an existing virtual network (vNet).
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select virtual networks under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vnet virtual network. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofcwbdqxruxc16ir7nd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofcwbdqxruxc16ir7nd5.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the guided-project-vnet blade, under settings, select Subnets. &lt;/li&gt;
&lt;li&gt;To add a subnet, select + Subnet. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonpwk9mwuxoxha6w0tqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonpwk9mwuxoxha6w0tqy.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For Subnet purpose leave it as Default.&lt;/li&gt;
&lt;li&gt;For Name enter: &lt;em&gt;ftpSubnet&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Leave the rest of the settings alone and select Add. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0adc7duoa91vogbf875.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0adc7duoa91vogbf875.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;we have completed the creation of a subnet. This subnet is only going to be used for SFTP traffic. To increase security, you need to configure a Network security group to restrict which ports are allowed on the subnet.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a network security group
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual networks.&lt;/li&gt;
&lt;li&gt;Select virtual networks under services.&lt;/li&gt;
&lt;li&gt;Select Network security groups. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedhccuzqxikcn430cep4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fedhccuzqxikcn430cep4.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select + Create. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zwape3uf5sb28kxgub5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zwape3uf5sb28kxgub5.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the subscription is correct.&lt;/li&gt;
&lt;li&gt;Select the &lt;em&gt;guided-project-rg&lt;/em&gt; resource group.&lt;/li&gt;
&lt;li&gt;Enter _ftpNSG _for the network security group name.&lt;/li&gt;
&lt;li&gt;Select Review + create. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbw91ww370gzul2qpmxvz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbw91ww370gzul2qpmxvz.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the validation is complete, select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folhgliylqxnryhhjsb9t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Folhgliylqxnryhhjsb9t.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wait for the screen to refresh and display Your deployment is complete.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Go to resource.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn78qn9wiphjutt98f7r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn78qn9wiphjutt98f7r.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create an inbound security rule&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under settings, select Inbound security rules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Add.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgogkdmu2jpyqlmadja7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgogkdmu2jpyqlmadja7.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change the Destination port ranges from 8080 to 22.&lt;/li&gt;
&lt;li&gt;Select TCP for the protocol.&lt;/li&gt;
&lt;li&gt;Set the name to &lt;em&gt;ftpInbound&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Select Add.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieh4r5rkxheh4zt0x9tx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieh4r5rkxheh4zt0x9tx.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, you’ll need to associate the new network security group with the ftpSubnet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Associate a network security group to a subnet
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual networks.&lt;/li&gt;
&lt;li&gt;Select virtual networks under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vnet virtual network.&lt;/li&gt;
&lt;li&gt;Under settings, select Subnets.&lt;/li&gt;
&lt;li&gt;Select the ftpSubnet you created.&lt;/li&gt;
&lt;li&gt;On the Edit subnet page, under the Security section heading, update the Network security group field to ftpNSG.&lt;/li&gt;
&lt;li&gt;Select Save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxg5z2lvnqu6ibdr76hx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxg5z2lvnqu6ibdr76hx.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmemxq1o4iwjqmbbw3n7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmemxq1o4iwjqmbbw3n7.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Manage virtual machines
&lt;/h1&gt;

&lt;p&gt;With the network settings updated to support segmenting the Linux virtual machine, you’re ready to manage the virtual machine itself. The first thing the Azure admin asks you to complete is moving the virtual machine to the new subnet you created in the previous exercise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Move the virtual machine network to the new subnet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vm virtual machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5p5av5uqr5htsley505a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5p5av5uqr5htsley505a.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the virtual machine is running, select Stop. Note: In order to make some configuration changes, such as changing the subnet, the VM will need to be restarted. You can request the change without stopping the VM, but Azure will force a restart before completing the change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3yq3efmcdsoiffn9v6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3yq3efmcdsoiffn9v6p.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the Status field to update and show Stopped (deallocated).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b2c0u2odl1xrfi56fiz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b2c0u2odl1xrfi56fiz.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Within the Networking subsection of the menu, select Network settings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the Network interface / IP configuration hyperlink for the VM.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw0fg7i1qq542dl80kkr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw0fg7i1qq542dl80kkr.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the IP Configurations page, update the Subnet to ftpSubnet.&lt;/li&gt;
&lt;li&gt;Select Apply.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjsjazvzw375fb4ujy65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwjsjazvzw375fb4ujy65.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vertically scale the virtual machine
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vm virtual machine.&lt;/li&gt;
&lt;li&gt;Locate the Availability + scale submenu and select Size. &lt;/li&gt;
&lt;li&gt;Select a new VM size D2s_v5 for example. (Note: If you don’t see the same size as shown in this exercise, select something similar.)&lt;/li&gt;
&lt;li&gt;Select Resize. Note: The VM size may not update in the Azure UI until the VM is restarted.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uw7zgdep3bi8786xq69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uw7zgdep3bi8786xq69.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggkiwbzz7wpyq3kqbl5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggkiwbzz7wpyq3kqbl5u.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Attach data disks to a virtual machine
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vm virtual machine.&lt;/li&gt;
&lt;li&gt;Locate the settings submenu and select Disks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt5ilmesu0a0c09oexlr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt5ilmesu0a0c09oexlr.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Create and attach a new disk.&lt;/li&gt;
&lt;li&gt;Leave LUN as default.&lt;/li&gt;
&lt;li&gt;Enter ftp-data-disk for the Disk name.&lt;/li&gt;
&lt;li&gt;Leave the Storage type as default.&lt;/li&gt;
&lt;li&gt;Enter 20 for the Size.&lt;/li&gt;
&lt;li&gt;Select Apply to create the new storage disk and attach the disk to the machine.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbznsi5ddtmos7ln7sa6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzbznsi5ddtmos7ln7sa6.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b44p3usr7bvmrg99c9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b44p3usr7bvmrg99c9w.png" alt=" " width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The final thing the Azure admin is concerned about is the cost of running the computer 24 hours a day. The first thing they’ll do every morning is start up the FTP server. However, they’d like you to configure it to automatically shutdown every day at 7 PM Coordinated Universal Time (UTC).&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure automatic shutdown on a virtual machine
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vm virtual machine.&lt;/li&gt;
&lt;li&gt;Under the Operations submenu, select Auto-shutdown. &lt;/li&gt;
&lt;li&gt;In order to let late uploads finish, set the Scheduled shutdown to 7:15:00 PM.&lt;/li&gt;
&lt;li&gt;Select Save. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffah6lznquwpwng3y1p0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffah6lznquwpwng3y1p0s.png" alt=" " width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiy3qzh2gcaakmysvf8pm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiy3qzh2gcaakmysvf8pm.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Control storage access
&lt;/h2&gt;

&lt;p&gt;The Azure admin wants you to get more familiar with storage accounts, containers, and file shares. They anticipate needing to share an increasing number of files and need someone who is skilled using these services. They’ve given you a task of creating a storage container and a file share and uploading files to both locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a storage container
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Login to Microsoft Azure at &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter storage accounts.&lt;/li&gt;
&lt;li&gt;Select storage accounts under services.&lt;/li&gt;
&lt;li&gt;Select the storage account you created in the Prepare exercise. The storage account name is the hyperlink to the storage account. (Note: it should be associated with the resource group guided-project-rg.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febzzhdoi544yxrqz9hwj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febzzhdoi544yxrqz9hwj.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the storage account blade, under the Data storage submenu, select Containers.&lt;/li&gt;
&lt;li&gt;Select + Add container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxru38p9atlhdjlohz015.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxru38p9atlhdjlohz015.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Name field, enter &lt;em&gt;storage-container&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecvbfha211wa67vaspno.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecvbfha211wa67vaspno.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y46hd27g6z54d7nv6kw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y46hd27g6z54d7nv6kw.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great! With a storage container created, you can upload a blob to the container. Locate a picture that you can upload, either on your computer or from the internet, and save it locally to make uploading easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  Upload a file to the storage container
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select the storage container you just created.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9a5ge9acxh0j22qz3pc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9a5ge9acxh0j22qz3pc.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Upload and upload the file you prepared. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfi1oy5h9mj0ng1noh2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfi1oy5h9mj0ng1noh2e.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the file is ready for upload, select Upload.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1rlhig8j0v1bh03qzeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1rlhig8j0v1bh03qzeu.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With the file uploaded, notice that the Access tier is displayed. For something we uploaded just for testing, it doesn’t need to be assigned to the Hot access tier. In the next few steps, you’ll change the access tier for the file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Change the access tier
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select the file you just uploaded (the file name is a hyperlink).&lt;/li&gt;
&lt;li&gt;Select Change tier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F639fw1aon3yr6y4wc3xh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F639fw1aon3yr6y4wc3xh.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Cold.&lt;/li&gt;
&lt;li&gt;Select Save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejysfoy945fo1n9jwnk8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejysfoy945fo1n9jwnk8.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: You just changed the access tier for an individual blob or file. To change the default access tier for all blobs within the storage account, you could change it at the storage account level.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good job! You’ve successfully uploaded a storage blob and changed the access tier from Hot to Cold. Next, you’ll work with file shares.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a file share
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter storage accounts.&lt;/li&gt;
&lt;li&gt;Select storage accounts under services.&lt;/li&gt;
&lt;li&gt;Select the storage account you created in the Prepare exercise. The storage account name is the hyperlink to the storage account. (Note: it should be associated with the resource group guided-project-rg.)&lt;/li&gt;
&lt;li&gt;On the storage account blade, under the Data storage submenu, select File shares.&lt;/li&gt;
&lt;li&gt;Select + File share.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpjyj5t4hvlkzls5lqgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpjyj5t4hvlkzls5lqgu.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Basics tab, in the name field enter file-share.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmi7t5ijh2qrwrocin1nx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmi7t5ijh2qrwrocin1nx.png" alt=" " width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Backup tab, uncheck Enable backup.&lt;/li&gt;
&lt;li&gt;Select Review + create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl4dzisn209kl1b4cabv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl4dzisn209kl1b4cabv.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuemhwxu4iwouf23610v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuemhwxu4iwouf23610v2.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the file share is created, select Upload.&lt;/li&gt;
&lt;li&gt;Upload the same file you uploaded to the blob storage or a different file, it’s up to you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkoppqj55ztjt74sqzm2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkoppqj55ztjt74sqzm2.png" alt=" " width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Home to return to the Azure portal home page.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create a shared access signature token
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter storage accounts.&lt;/li&gt;
&lt;li&gt;Select storage accounts under services.&lt;/li&gt;
&lt;li&gt;Select the storage account you created in the Prepare exercise.&lt;/li&gt;
&lt;li&gt;On the storage account blade, select Storage browser.&lt;/li&gt;
&lt;li&gt;Expand Blob containers.&lt;/li&gt;
&lt;li&gt;Note: Blob container is another name for the storage containers. Items uploaded to a storage container are called blobs.&lt;/li&gt;
&lt;li&gt;Select the storage container you created earlier, storage-container.&lt;/li&gt;
&lt;li&gt;Select the ellipses (three dots) on the end of the line for the image you uploaded. &lt;/li&gt;
&lt;li&gt;Select Generate SAS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks8obdorpdh74gpa4hwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks8obdorpdh74gpa4hwg.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: When you generate a shared access signature, you set the duration. Once the duration is over, the link stops working. The **Start automatically populates with the current date and time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set Signing method to Account key.&lt;/li&gt;
&lt;li&gt;Set Signing key to Key 1.&lt;/li&gt;
&lt;li&gt;Tip: There are two signing keys available. You can choose either one, or create SAS tokens with different durations.&lt;/li&gt;
&lt;li&gt;Set Stored access policy to None.&lt;/li&gt;
&lt;li&gt;Set Permissions to Read.&lt;/li&gt;
&lt;li&gt;Enter a custom start and expiry time or leave the defaults. Screenshot of the secure access token settings.&lt;/li&gt;
&lt;li&gt;Set Allowed protocols to HTTPS only.&lt;/li&gt;
&lt;li&gt;Select Generate SAS token and URI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foeagei7wc22rojkznz23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foeagei7wc22rojkznz23.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the Blob SAS URL and paste it in another window or tab of your browser. It should display the image you uploaded. Keep this tab or window open. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tip: You can configure SAS tokens for files shares and blob containers using the same process.&lt;/p&gt;

&lt;p&gt;With the SAS token created, anyone with that link can access the file for the duration that was set when you created the SAS token. However, controlling access to a resource or file is about more than just granting access. It’s also about being able to revoke access. To revoke access with a SAS token, you need to invalidate the token. You invalidate the token by rotating the key that was used.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rotate access keys
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter storage accounts.&lt;/li&gt;
&lt;li&gt;Select storage accounts under services.&lt;/li&gt;
&lt;li&gt;Select the storage account you created in the Prepare exercise.&lt;/li&gt;
&lt;li&gt;Expand the Security + networking submenu.&lt;/li&gt;
&lt;li&gt;Select Access keys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fml751j2juqhbf1jtemk8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fml751j2juqhbf1jtemk8.png" alt=" " width="800" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For Key 1, select Rotate key.&lt;/li&gt;
&lt;li&gt;Read and then acknowledge the warning about regenerating the access key by selecting Yes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tkqhtba58yqqi3g38q8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tkqhtba58yqqi3g38q8.png" alt=" " width="800" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For Key 1, select Rotate key.&lt;/li&gt;
&lt;li&gt;Read and then acknowledge the warning about regenerating the access key by selecting Yes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4lvagmkh6ukma0z2mg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4lvagmkh6ukma0z2mg9.png" alt=" " width="800" height="686"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Manage tags and locks
&lt;/h2&gt;

&lt;p&gt;The Azure admin hopes that you can wrap a few things up to help with monitoring and protecting resources. They want to know that someone can’t accidentally get rid of the virtual machine that’s running as an FTP server, and they want a quick way to see what department is using resources and the resource’s purpose.&lt;/p&gt;

&lt;h3&gt;
  
  
  Manage tags and locks on VMs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Login to Microsoft Azure at &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/li&gt;
&lt;li&gt;Select virtual machines under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-vm virtual machine.&lt;/li&gt;
&lt;li&gt;From the menu pane, select Tags. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjeh0ev04862ti0phrsrn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjeh0ev04862ti0phrsrn.png" alt=" " width="800" height="750"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On one line for Name enter Department and for Value enter Customer Service&lt;/li&gt;
&lt;li&gt;On the next line, for Name enter Purpose and for Value enter FTP Server.&lt;/li&gt;
&lt;li&gt;Select Apply. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcuas6430lpsuvoau7d3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcuas6430lpsuvoau7d3o.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While you’re working on the virtual machine, it’s a great time to add a resource lock.&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a resource lock to a VM
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If necessary, expand the Settings submenu.&lt;/li&gt;
&lt;li&gt;Select Locks.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Add.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixskn385bh8x3fmwei2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fixskn385bh8x3fmwei2w.png" alt=" " width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the name, enter &lt;em&gt;VM-delete-lock&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the Lock type, select &lt;em&gt;Delete&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You may enter a note to help remind you why you created the lock.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select OK.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78dz6iuzpb8q4tyvgw8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78dz6iuzpb8q4tyvgw8v.png" alt=" " width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Add tags to network resources
&lt;/h3&gt;

&lt;p&gt;From the Azure portal home page, in the search box, enter virtual networks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select virtual networks under services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1iqedfgt6lgqxoo0pulx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1iqedfgt6lgqxoo0pulx.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the guided-project-vnet network.&lt;/li&gt;
&lt;li&gt;From the menu pane, select Tags.
Note: Notice that now you can select an existing tag to apply or add a new tag. You can also select just the name or value and apply create something new in the other field.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the Name select Department.&lt;br&gt;
For the Value enter IT.&lt;br&gt;
Select Apply. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywoznx7hfb8cj80au3ye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywoznx7hfb8cj80au3ye.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now both the VNet and VM have are organized.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Clean up
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remove delete locks
&lt;/h3&gt;

&lt;p&gt;If you attempt to delete a resource with a delete lock, you’ll receive a warning that the operation failed due to a delete lock being in place. To avoid that, it’s important to clear delete locks from resources you intend to delete before issuing the delete command.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Login to Microsoft Azure at &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From the Azure portal home page, in the search box, enter virtual machines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select virtual machines under services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the guided-project-vm virtual machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If necessary, expand the Settings submenu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Locks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Delete on the line for the VM-delete-lock submenu&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrg10v8eavx2umt9gu5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrg10v8eavx2umt9gu5b.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the pop-up window, select Delete to confirm deletion of the lock.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkohdrwn3zhm7ibhm2xhq.png" alt=" " width="800" height="531"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcdeu029bf3s21nx86ej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcdeu029bf3s21nx86ej.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the delete lock is removed, you’ll be able to delete the VM. While this was the only delete lock required by the exercise, if you applied other delete locks during the exercise, remove them now. When you’re done, select Home to return to the Azure portal home page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete the project resource group
&lt;/h3&gt;

&lt;p&gt;A key benefit of using resource groups is the ability to rapidly delete all of the resources assigned to a resource group at once.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter Resource groups.&lt;/li&gt;
&lt;li&gt;Select resource groups under services.&lt;/li&gt;
&lt;li&gt;Select the guided-project-rg resource group.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9ip6o19c48r0m8lu9d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9ip6o19c48r0m8lu9d4.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Delete resource group. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes3q3plmd53eivrrwioa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes3q3plmd53eivrrwioa.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Apply force delete…&lt;/li&gt;
&lt;li&gt;Enter &lt;em&gt;guided-project-rg&lt;/em&gt; in the confirmation box.&lt;/li&gt;
&lt;li&gt;Select Delete. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfrcb9p8pasyg16gayxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfrcb9p8pasyg16gayxq.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01ypbkngqfz9n0884giq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01ypbkngqfz9n0884giq.png" alt=" " width="799" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Delete confirmation pop-up, select Delete. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It will approximately 5 minutes before the resource group is fully deleted. You’ll need to refresh the resource group page every few minutes until the guided-project-rg is gone to confirm complete deletion.&lt;/p&gt;

&lt;p&gt;Important: Recall at the beginning of the Guided Project you checked for a NetworkWatcherRG resource group. If there WAS a NetworkWatcherRG when you started, then you’re finished. However, if the NetworkWatcherRG was created for the guided project, you’ll need to delete the NetworkWatcherRG as well following a nearly identical process.&lt;/p&gt;

&lt;p&gt;If you don’t need to delete the NetworkWatcherRG, you can head back to Learn now and complete the module. If you need to delete the NetworkWatcherRG, continue on for instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete the NetworkWatcherRG
&lt;/h3&gt;

&lt;p&gt;If the NetworkWatcherRG existed prior to starting the guided project, do not delete it as part of the guided project clean up.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter Resource groups.&lt;/li&gt;
&lt;li&gt;Select resource groups under services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1wkd0ae03tdbulvo22f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1wkd0ae03tdbulvo22f.png" alt=" " width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the NetworkWatcherRG resource group.&lt;/li&gt;
&lt;li&gt;Select Delete resource group.&lt;/li&gt;
&lt;li&gt;Enter NetworkWatcherRG in the confirmation box.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fls2wxfswjxob9iwyuwza.png" alt=" " width="800" height="566"&gt;
&lt;/li&gt;
&lt;li&gt;Select Delete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fu9psfobu8nnz1rr8md.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fu9psfobu8nnz1rr8md.png" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Delete confirmation pop-up, select Delete.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdqfr1twwd5ddg3h9joj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdqfr1twwd5ddg3h9joj.png" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll need to refresh the resource group page every few minutes until the NetworkWatcherRG is gone to confirm complete deletion.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloudcomputing</category>
      <category>management</category>
      <category>learning</category>
    </item>
    <item>
      <title>Azure CLi Resources Deployment Architecture 1</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Thu, 19 Mar 2026 18:24:15 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/azure-cli-resources-deployment-architecture-5314</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/azure-cli-resources-deployment-architecture-5314</guid>
      <description>&lt;p&gt;This guide provides a comprehensive walkthrough for deploying cloud infrastructure using the Azure Command-Line Interface within a Linux environment. It outlines the initial steps of installing the toolkit and authenticating an account before moving into the creation of resource groups and virtual networks. The text details how to configure security rules and firewalls to manage traffic, ensuring that specific ports are open for remote access and web services.&lt;/p&gt;

&lt;p&gt;Furthermore, it explains the process of provisioning a Linux virtual machine, assigning public IP addresses, and installing Nginx to host a functional web page. By following these structured phases, users can successfully transition from basic setup to a live cloud server deployment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoj39gu41vp4vvcrrkd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoj39gu41vp4vvcrrkd5.png" alt="Linux " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mind Map&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hamftddl0o7eigk7cpp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hamftddl0o7eigk7cpp.png" alt="Linux " width="800" height="1574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: Environment Setup and Authentication
&lt;/h2&gt;

&lt;p&gt;Before creating resources, you must install the Azure CLI and authenticate your session&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation: In a Linux environment, Azure CLI can be installed via the command &lt;code&gt;brew install azure-cli&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Login: Use the command &lt;code&gt;az login&lt;/code&gt; to authenticate with your Azure account&lt;/li&gt;
&lt;li&gt;Account Configuration: You can verify your active account with &lt;code&gt;az account show and set a specific subscription using az account set --subscription "Your Subscription Name"&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Action plan:&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Install Azure CLI &amp;amp; Login
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open Linux Server Visual Studio Code, go to File and navigate dropdown. Click on open folder. Click on New folder to create a folder. Rename folder Linux server, select the linux folder and save. Everything Linux we are handling will be saved in the folder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlhzlfux71ca5gow2igw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlhzlfux71ca5gow2igw.png" alt="Linux " width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwejw30kbwdwqrqp3r0by.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwejw30kbwdwqrqp3r0by.png" alt="Linux " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We will be using terminal most of the time. To get to terminal click on view and process to click on the terminal icon in the dropdown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vetvxgcoy8gebdb6rq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vetvxgcoy8gebdb6rq6.png" alt="Linux" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We are going to install Azure Cli in our terminal window. use &lt;code&gt;brew install azure-cli&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5da5pb3lywwc6rhkxhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo5da5pb3lywwc6rhkxhu.png" alt="Linux " width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzug6abhsjwu6u5wlovhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzug6abhsjwu6u5wlovhh.png" alt="Linux " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ttw865ddvhyr753jwvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ttw865ddvhyr753jwvs.png" alt="Linux" width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agree with the installation terms
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F38j52u8il39khqheq352.png" alt=" " width="800" height="326"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firaipd2rk61v9spyu9hq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firaipd2rk61v9spyu9hq.png" alt="Linux" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To Check version &lt;code&gt;az --version&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvoqymbivh0gjbdo2d6qe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvoqymbivh0gjbdo2d6qe.png" alt="Linux" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once confirmation report is retrieved, proceed to login. Type
&lt;code&gt;az login&lt;/code&gt;and click enter. Select account you want to login with.
Once confirmation report is retrieved, proceed to login. 
Type &lt;code&gt;az account show&lt;/code&gt; to show account and &lt;code&gt;az account set --subscription "Your Subscription Name"&lt;/code&gt; to reveal subscription name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgalm083jandei27rv1xi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgalm083jandei27rv1xi.png" alt="Linux " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpeoqe4gcy0lcfg6qmya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpeoqe4gcy0lcfg6qmya.png" alt="Linux " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8x5ksm7w8ulnkrdi1qog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8x5ksm7w8ulnkrdi1qog.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 2: Logical Organization (Resource Groups)
&lt;/h2&gt;

&lt;p&gt;Resources in Azure are organized into Resource Groups (RG), which serve as logical containers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Variable Usage: It is recommended to set shell variables for frequently used values like the resource group name (RG=azurecli-lab-rg) and location (LOCATION="eastus") to simplify later commands&lt;/li&gt;
&lt;li&gt;Creation: The command &lt;code&gt;az group create --name $RG --location $LOCATION&lt;/code&gt; establishes the group where all subsequent resources will reside.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Action plan:&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set a variable for the resource group
&lt;/h3&gt;

&lt;p&gt;RG= &lt;code&gt;azurecli-lab-rg&lt;/code&gt;&lt;br&gt;
LOCATION=&lt;code&gt;"koreacentral"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fanobexzgdq9w32azyr0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fanobexzgdq9w32azyr0f.png" alt=" " width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zb29l36wnj8hi4r6aqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zb29l36wnj8hi4r6aqu.png" alt="Linux" width="800" height="603"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 3 : Networking and Security Configuration
&lt;/h2&gt;

&lt;p&gt;A secure network environment must be established before deploying virtual machines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtual Network (VNet) and Subnet: These provide the private network for resources to communicate. They are created using &lt;code&gt;az network vnet create&lt;/code&gt;, specifying address prefixes for the VNet and a dedicated subnet (e.g., "FrontEnd")&lt;/li&gt;
&lt;li&gt;Network Security Group (NSG): Acting as a virtual firewall, an NSG is created with &lt;code&gt;az network nsg create&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Firewall Rules: By default, Azure blocks inbound traffic. You must explicitly "poke holes" in the firewall by creating rules with &lt;code&gt;az network nsg rule create to&lt;/code&gt;allow specific traffic, such as SSH (Port 22) for administration and HTTP (Port 80) for web access&lt;/li&gt;
&lt;li&gt;Association: The NSG must be attached to the subnet to ensure any VM created within it inherits these security rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Action plan:&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the Virtual Network and Subnet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The virtual network is the private network your Azure resources communicate on while the Subnet allows you to apply different routing and firewall rules to different types of resources. We will proceed to run this command in the terminal:&lt;code&gt;az network vnet create --resource-group $RG --name "MyVnet" --location $LOCATION --address-prefix 10.0.0.0/16 --subnet-name "FrontEnd" --subnet-prefix 10.0.1.0/24&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff24sukzrmqyft5zoqgi7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff24sukzrmqyft5zoqgi7.png" alt="Linux" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhxnd74jfbfs3wynf3yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhxnd74jfbfs3wynf3yh.png" alt=" " width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5rozv4zkw91c2cf71ys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5rozv4zkw91c2cf71ys.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a Network Security Group (NSG)
&lt;/h3&gt;

&lt;p&gt;This acts as a virtual firewall. Without an NSG attached, Microsoft allows no inbound traffic but allows all outbound traffic. We need an NSG to poke specific holes in the firewall. We will proceed to run this command in the terminal: &lt;code&gt;az network nsg create --resource-group $RG --location $LOCATION --name "lab-nsg"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5osbr2okpkxuj4ddl51y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5osbr2okpkxuj4ddl51y.png" alt=" " width="800" height="1355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk4vgyxu9xkysozqwl3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk4vgyxu9xkysozqwl3c.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Open port 22 (SSH) &amp;amp; 80 (HTTP)
&lt;/h3&gt;

&lt;p&gt;Add inbound rules prioritizing SSH (port 22) and HTTP (port 80) access from the internet. We will need SSH to log in and configure the server, and HTTP so users can view the web page. Let us proceed to run this command in the terminal:&lt;br&gt;
&lt;code&gt;az network nsg rule create&lt;/code&gt;&lt;br&gt;
  --resource-group $RG &lt;code&gt;&lt;br&gt;
  --nsg-name "lab-nsg"&lt;/code&gt;&lt;br&gt;
  --name "AllowSSH" &lt;code&gt;&lt;br&gt;
  --priority 1000&lt;/code&gt;&lt;br&gt;
  --destination-port-ranges 22 &lt;code&gt;&lt;br&gt;
  --access Allow&lt;/code&gt;&lt;br&gt;
  --protocol Tcp &lt;code&gt;&lt;br&gt;
  --direction Inbound&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cxh40zzrvh6heaeer5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cxh40zzrvh6heaeer5b.png" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow HTTP (Port 80)
Let us proceed to run this command in the terminal:
&lt;code&gt;az network nsg rule create&lt;/code&gt;
--resource-group $RG &lt;code&gt;
--nsg-name "lab-nsg"&lt;/code&gt;
--name "AllowHTTP" &lt;code&gt;
--priority 1010&lt;/code&gt;
--destination-port-ranges 80 &lt;code&gt;
--access Allow&lt;/code&gt;
--protocol Tcp &lt;code&gt;
--direction Inbound&lt;/code&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhy8dbfjhkv71ner1pqg7.png" alt=" " width="800" height="358"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Attach NSG to Subnet.
&lt;/h3&gt;

&lt;p&gt;Enforces the firewall rules (NSG) at the subnet boundary. Applying the NSG to the subnet ensures that any VM created in that subnet automatically inherits those exact firewall rules — protecting the entire subnet. Let us proceed to run this command in the terminal: &lt;br&gt;
&lt;code&gt;--resource-group $RG&lt;br&gt;
--vnet-name lab-vnet&lt;br&gt;
--name lab-subnet&lt;br&gt;
--network-security-group lab-nsg&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Verification&lt;/strong&gt;: Once you've run these, you can verify they were created successfully with this command:&lt;code&gt;az network nsg rule list --resource-group $RG --nsg-name "lab-nsg" --output table&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fid3icndeyzjx9t25ay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fid3icndeyzjx9t25ay.png" alt=" " width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmmnz2xd6b0bthp4dbbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmmnz2xd6b0bthp4dbbh.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 4 Provision a Linux Virtual Machine
&lt;/h2&gt;

&lt;p&gt;The final stage involves creating the actual compute resource and ensuring it is accessible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public IP Allocation: To access a VM from the internet, you must allocate a public IP. The sources note that Microsoft is phasing out "Basic" SKUs, so a "Standard" SKU with a Static allocation method should be used: &lt;code&gt;az network public-ip create --sku Standard --allocation-method Static&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;VM Creation: The &lt;code&gt;az vm create&lt;/code&gt; command pulls all previous components together. It specifies the image (e.g., Ubuntu2204), size, administrative username, and connects the VM to the previously created VNet, subnet, and NSG Using the --generate-ssh-keys flag automatically handles authentication key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Action plan:&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Allocate a Public IP
&lt;/h3&gt;

&lt;p&gt;Without a public IP, the VM can only be accessed internally through the VNet or a VPN. You need this to reach your web server from your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wpnqhfy7mw9nhan7lhi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wpnqhfy7mw9nhan7lhi.png" alt=" " width="800" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the error above, essentially, Azure is telling us that for our specific subscription and region, the limit for Basic SKU Public IPs is currently set to zero. Additionally, Microsoft is phasing out the Basic SKU in favor of the Standard SKU for better security and performance.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;​&lt;strong&gt;The Fix&lt;/strong&gt;&lt;br&gt;
​To bypass this error, we will need to change the --sku to Standard. In Azure, a Standard SKU Public IP must also use the Static allocation method (it does not support Dynamic).&lt;/p&gt;

&lt;p&gt;​Run this command instead:&lt;code&gt;az network public-ip create --resource-group $RG --name lab-public-ip --allocation-method Static --sku Standard&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;or&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az network public-ip create&lt;br&gt;
--resource-group $RG&lt;br&gt;
--name lab-public-ip&lt;br&gt;
--allocation-method Static&lt;br&gt;
--sku Standard&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7c3mdoaq3hs4kwixb24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7c3mdoaq3hs4kwixb24.png" alt=" " width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create the VM
&lt;/h3&gt;

&lt;p&gt;Create a B1s Ubuntu VM with auto-generated SSH keys and connects it to the existing subnet and firewall.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create VM (will generate SSH keys in ~/.ssh if not present)
&lt;code&gt;az vm create --resource-group $RG --name lab1-vm --image Ubuntu2204 --size Standard_B2s_v2 --location koreacentral --admin-username azureuser --generate-ssh-keys --vnet-name lab1-vnet --subnet lab1-subnet --public-ip-address lab1-public-ip --nsg lab1-nsg&lt;/code&gt;`
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F068gqq5cmkdrcx8qhbd2.png" alt=" " width="800" height="138"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngzthrjc9069wk8ky8vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngzthrjc9069wk8ky8vy.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrieve the public IP. Filters the Azure API response to return just the IP address string.
&lt;/h3&gt;

&lt;p&gt;We will need this IP to SSH into the machine and to test the web application. Run this command in the terminal: &lt;code&gt;az network public-ip show --resource-group $RG --name lab1-public-ip --query ipAddress --output tsv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5j4ce80s84qtg86g1oh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5j4ce80s84qtg86g1oh.png" alt=" " width="800" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify the VM is running.
&lt;/h3&gt;

&lt;p&gt;This queries the VM status and displays it in a clean table format. Always verify provisioning success before attempting connections. Run this command in the terminal:&lt;code&gt; az vm show --resource-group $RG --name lab1-vm --show-details --query '{Name:name, State:powerState, IP:publicIps}' --output table&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknjar9qhnwycd03tswe4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fknjar9qhnwycd03tswe4.png" alt=" " width="800" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SSH into your VM &amp;amp; install Nginx.
&lt;/h3&gt;

&lt;p&gt;Logs into the VM over the internet via SSH, installs the Nginx package using APT, and starts the service. A fresh VM is blank. Nginx serves as the web server to test our HTTP port 80 firewall rule. Run this command in the terminal:&lt;br&gt;
&lt;code&gt;az network public-ip show &lt;/code&gt;&lt;br&gt;
  --resource-group $RG &lt;code&gt;&lt;br&gt;
  --name "lab-public-ip" &lt;/code&gt;&lt;br&gt;
  --query "ipAddress" &lt;code&gt;&lt;br&gt;
  --output tsv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnez447jyjva2u0agm5fg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnez447jyjva2u0agm5fg.png" alt=" " width="759" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mkfux6u80yp0x6sg2a0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8mkfux6u80yp0x6sg2a0.png" alt=" " width="800" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Connection timed out error in our latest screenshot indicates that while our VM is running, our terminal cannot reach it over port 22. This is almost certainly because the Network Security Group (NSG) for our new lab1 infrastructure does not yet have a rule allowing SSH traffic.&lt;br&gt;
​Think of the NSG as a locked door; even if the server is "home," you can't get in unless you specifically authorize the port.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;​The Fix&lt;/strong&gt;: To Open Port 22&lt;br&gt;
​Run this command to tell Azure to allow SSH connections into our lab1-nsg; &lt;br&gt;
&lt;code&gt;az network nsg rule create &lt;/code&gt;&lt;br&gt;
  --resource-group $RG &lt;code&gt;&lt;br&gt;
  --nsg-name "lab-nsg" &lt;/code&gt;&lt;br&gt;
  --name "ManualAllowSSH" &lt;code&gt;&lt;br&gt;
  --priority 100 &lt;/code&gt;&lt;br&gt;
  --destination-port-ranges 22 &lt;code&gt;&lt;br&gt;
  --access Allow &lt;/code&gt;&lt;br&gt;
  --protocol Tcp &lt;code&gt;&lt;br&gt;
  --direction Inbound&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevcj763b1maa010uujf8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevcj763b1maa010uujf8.png" alt=" " width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run&lt;br&gt;
&lt;code&gt;ssh -i ~/.ssh/id_rsa azureuser@20.41.100.132 "sudo apt update &amp;amp;&amp;amp; sudo apt install nginx -y &amp;amp;&amp;amp; sudo systemctl start nginx"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frynytmt1t8f1l2hhmak6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frynytmt1t8f1l2hhmak6.png" alt=" " width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmwu0yye575kz16viuwn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmwu0yye575kz16viuwn.png" alt=" " width="800" height="1574"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;: Since our terminal shows the installation is done, let's head over to Chrome to do a final verification. First we have to allow access by running this final command in the terminal:&lt;br&gt;
&lt;code&gt;az network nsg rule create --resource-group $RG --nsg-name lab1-nsg --name AllowHTTP --priority 1010 --destination-port-ranges 80 --access Allow --protocol Tcp --direction Inbound&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proceed to Open Edge. Paste the IP address: &lt;a href="http://20.41.100.132" rel="noopener noreferrer"&gt;http://20.41.100.132&lt;/a&gt;. The Result: You should see a white page with bold text saying "Welcome to nginx!".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9ple7coeowt5a4841so.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9ple7coeowt5a4841so.png" alt=" " width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cli</category>
      <category>cloud</category>
      <category>linux</category>
    </item>
    <item>
      <title>Creating a Resource group in Azure portal</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Sun, 22 Feb 2026 18:46:08 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/creating-a-resource-group-in-azure-portal-2j06</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/creating-a-resource-group-in-azure-portal-2j06</guid>
      <description>&lt;p&gt;Resource groups are logical containers for Azure resources (VMs, databases, storage accounts, etc.).You can apply tags for cost tracking and management. You can group resources by lifecycle or project (e.g., all dev resources in one group).&lt;/p&gt;

&lt;p&gt;To create a &lt;strong&gt;Resource Group in the Azure portal&lt;/strong&gt;, here’s a clear step-by-step guide:&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps in Azure Portal
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sign in&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Go to &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure Portal&lt;/a&gt; and log in with your Azure account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Navigate to Resource Groups&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the left-hand menu, select &lt;strong&gt;Resource groups&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If you don’t see it, use the search bar at the top and type &lt;em&gt;Resource groups&lt;/em&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9vfjhqdp1pdti1r55id8.png" alt="Resource groups" width="800" height="528"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create New Resource Group&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;+ Create&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;You’ll be taken to the &lt;em&gt;Create a resource group&lt;/em&gt; page.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpuuwl33lljgfw5cg3g3t.jpg" alt="Create" width="800" height="403"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fill in Required Details&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subscription&lt;/strong&gt;: Choose the Azure subscription where you want the resource group.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource group name&lt;/strong&gt;: Enter a unique name (e.g. &lt;code&gt;storager&lt;/code&gt;).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Select the location (e.g. &lt;em&gt;East US&lt;/em&gt;). This determines where metadata is stored.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99n5rvpnlui66scnuifd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99n5rvpnlui66scnuifd.png" alt="group" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Review + Create&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Review + create&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Azure will validate your settings.
&lt;/li&gt;
&lt;li&gt;If everything looks good, click &lt;strong&gt;Create&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkh3n4peqrjstdsbfx5s3.png" alt="create" width="800" height="549"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Confirmation&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After deployment, you’ll see a notification.
&lt;/li&gt;
&lt;li&gt;Your new resource group will now appear in the list.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fginoh2j4p5x8oohb2k3r.png" alt="Confirmation" width="800" height="341"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Please like and share.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>devops</category>
      <category>cloud</category>
      <category>resources</category>
    </item>
    <item>
      <title>Steps to Launch a Virtual Machine (EC2 Instance) in AWS</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Fri, 20 Feb 2026 20:46:01 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/steps-to-launch-a-virtual-machine-ec2-instance-in-aws-2g29</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/steps-to-launch-a-virtual-machine-ec2-instance-in-aws-2g29</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Steps to Launch a Virtual Machine (EC2 Instance) in AWS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Log in to AWS Management Console&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="https://aws.amazon.com/console/" rel="noopener noreferrer"&gt;AWS Console&lt;/a&gt; and sign in with your account.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Navigate to EC2 Service&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the search bar, type &lt;strong&gt;EC2&lt;/strong&gt; and select it. This opens the EC2 dashboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fop4y60kj1t3kn8vmqhgp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fop4y60kj1t3kn8vmqhgp.png" alt="Navigate " width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Launch Instance&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Launch Instance&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncr2509m55a1wydh1bjq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncr2509m55a1wydh1bjq.png" alt="Launch Instance" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give your instance a name (e.g., "feb30ec2").&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose an Amazon Machine Image (AMI)&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the operating system you want (e.g., Ubuntu, Amazon Linux, Windows Server).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Select Instance Type&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose hardware configuration (CPU, memory).
&lt;/li&gt;
&lt;li&gt;For beginners, &lt;strong&gt;t2.micro&lt;/strong&gt; or &lt;strong&gt;t3.micro&lt;/strong&gt; is Free Tier eligible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffx5wftgne1mthkekdmib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffx5wftgne1mthkekdmib.png" alt="Instance Type" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure Key Pair&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Create or select a &lt;strong&gt;key pair&lt;/strong&gt; for SSH/RDP access.- _feb20key  _&lt;/li&gt;
&lt;li&gt;Download the &lt;code&gt;.pem&lt;/code&gt; file (for Linux) or &lt;code&gt;.ppk&lt;/code&gt; (for Windows with PuTTY).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9rjyaxq2vsro4m9vq40u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9rjyaxq2vsro4m9vq40u.png" alt="Configure Key Pair" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsi2mthvy39rvh2d18ggb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsi2mthvy39rvh2d18ggb.png" alt="key" width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure Network Settings&lt;/strong&gt;  (use default)

&lt;ul&gt;
&lt;li&gt;Place the VM in a &lt;strong&gt;VPC&lt;/strong&gt; and &lt;strong&gt;subnet&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Allow inbound rules (e.g., SSH on port 22 for Linux, RDP on port 3389 for Windows).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Storage&lt;/strong&gt;  (use default)

&lt;ul&gt;
&lt;li&gt;Define the size of your root volume (e.g., 8 GB for Linux).
&lt;/li&gt;
&lt;li&gt;You can add extra volumes if needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review and Launch&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Double-check settings, then click &lt;strong&gt;Launch Instance&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvzgwn7ing9l1z91pvwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvzgwn7ing9l1z91pvwg.png" alt="Launch" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect to Your VM&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;For Linux: use SSH with your key file.
&lt;/li&gt;
&lt;li&gt;For Windows: use RDP with the administrator password (retrieved from AWS console).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8exzbkz1m5b3rosv00z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8exzbkz1m5b3rosv00z.png" alt="Linux" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscy73t6f77smz3uphlsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscy73t6f77smz3uphlsp.png" alt="Linux" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3h7y8wpz31khge3utyo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3h7y8wpz31khge3utyo.png" alt="success" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please like, share and comment.&lt;/p&gt;

</description>
      <category>ec2</category>
      <category>aws</category>
      <category>virtualmachine</category>
      <category>cloudstorage</category>
    </item>
    <item>
      <title>Creating a Windows Virtual Machine (VM) in Azure</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Fri, 20 Feb 2026 06:15:59 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/creating-a-windows-virtual-machine-vm-in-azure-5fd0</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/creating-a-windows-virtual-machine-vm-in-azure-5fd0</guid>
      <description>&lt;p&gt;A virtual machine is a computer in the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to Create a Windows VM in Azure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.  Sign in to Azure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Azure Portal.&lt;/li&gt;
&lt;li&gt;Log in with your Microsoft account. If you don’t have one, create a free Azure account.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.  Create a New Virtual Machine
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, select Create a resource → Virtual Machine.
n&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkna4o776a7aae7ggh9te.png" alt="Create a New Virtual Machine" width="800" height="480"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bpiywrynx48yprflnsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bpiywrynx48yprflnsi.png" alt="Create a New Virtual Machine2" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.  Configure Basic Settings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to Basic tab.&lt;/li&gt;
&lt;li&gt;Subscription &amp;amp; Resource Group: Select your subscription and create or choose a resource group.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmu022rg3wtj7kqsbeukb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmu022rg3wtj7kqsbeukb.png" alt="Configure Basic Settings" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VM Name: Enter a name for your VM. &lt;em&gt;feb20vm&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Region: Pick the Azure region closest to you for better performance.&lt;/li&gt;
&lt;li&gt;Availability Options: Choose redundancy options if needed. No infrastructure redundancy required for high availability.&lt;/li&gt;
&lt;li&gt;security type chose &lt;em&gt;standard&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Image: Confirm the Windows OS image.&lt;/li&gt;
&lt;li&gt;Size: Select the VM size (CPU, RAM) based on your workload. This determines your VMs pricing on an hourly bases.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6092sihlp867dp6urjtb.png" alt="Basic tab" width="800" height="451"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.  Set Administrator Account
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a username and password for logging into the VM.
### 5.  Networking&lt;/li&gt;
&lt;li&gt;Configure virtual network, subnet, and public IP.&lt;/li&gt;
&lt;li&gt;Use Http  (80), RDP (Port 3389) to connect remotely.&lt;/li&gt;
&lt;li&gt;confirm licensing option
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qnbc0kl7blcf0u2dpln.png" alt=" Account" width="800" height="451"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Monitoring tab
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Disable - Boot diagnostics to ensure privacy 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2o4xu2e3l1fk4k96wvj.png" alt="Monitoring tab" width="800" height="547"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.  Disks &amp;amp; Storage (optional)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Choose between Standard HDD, Standard SSD, or Premium SSD depending on performance needs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8.  Review + Create tab
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Review all settings.&lt;/li&gt;
&lt;li&gt;Click Create to deploy the VM after validation.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnclr0myr5bby0o97k75p.png" alt="Review + Create " width="800" height="521"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajsb8r42xs4dyow2tvew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajsb8r42xs4dyow2tvew.png" alt="validation" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9.  Connect to Your VM
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;select Go to resource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljf9zg1qo1eelx43hihu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljf9zg1qo1eelx43hihu.png" alt="Connect " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeaiyzy34lijpze3pwgl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeaiyzy34lijpze3pwgl.png" alt="Connect " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Once deployed, Select Connect and download RDP file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvenjp4gc9jmtrwa1k2bx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvenjp4gc9jmtrwa1k2bx.png" alt="download RDP file" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the RDP file and open it to log in with your credentials.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawckfxudtvm1ezolfbu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawckfxudtvm1ezolfbu7.png" alt="download RDP file" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;connect&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1z8fc4beifqxpw8a20n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1z8fc4beifqxpw8a20n.png" alt="download RDP file" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter password and click OK&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rl0tiyqsfrsei9q6rqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rl0tiyqsfrsei9q6rqa.png" alt="Enter password" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Testing: Install Software
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Inside the VM, &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg8tibp9trbvingwx28s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg8tibp9trbvingwx28s.png" alt="Install Software" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;you can install  any applications you need. _screenpresso _from Microsoft Store.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4sxrj0b09ka8zp58g5in.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4sxrj0b09ka8zp58g5in.png" alt="screenpresso " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yclk5ytb2l1swzjw3ua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yclk5ytb2l1swzjw3ua.png" alt="screenpresso " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1wtzy61wgjvesgztpzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1wtzy61wgjvesgztpzu.png" alt="screenpresso description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you may check your storage in the vm.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fimuuat0jmmjelfq6ujip.png" alt="screenpresso " width="800" height="449"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please 🙏 like, comment and share.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsqxpx7ih7fn29pmcacr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsqxpx7ih7fn29pmcacr.png" alt="Windows Virtual Machine" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>microsoft</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Storage for a new company app</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Wed, 18 Feb 2026 04:48:02 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/storage-for-a-new-company-app-48k2</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/storage-for-a-new-company-app-48k2</guid>
      <description>&lt;p&gt;We will be creating a storage for a new company application.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a storage account.&lt;/li&gt;
&lt;li&gt;Configure a user-assigned managed identity.&lt;/li&gt;
&lt;li&gt;Configure a system-assigned managed identity.&lt;/li&gt;
&lt;li&gt;Configure a key vault with key.&lt;/li&gt;
&lt;li&gt;Configure a container with immutable storage.&lt;/li&gt;
&lt;li&gt;Configure an encryption scope.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7z5lsop4cqjxv87d1gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7z5lsop4cqjxv87d1gc.png" alt="storage plan" width="494" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create the storage account and managed identity
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Provide a storage account for the web app.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Storage accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsoiak77ed0cvhdc3c7re.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsoiak77ed0cvhdc3c7re.jpg" alt="Storage accounts" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select + Create.&lt;/li&gt;
&lt;li&gt;For Resource group select Create new. Give your resource group a name and select OK to save your changes.&lt;/li&gt;
&lt;li&gt;Provide a Storage account name. Ensure the name is unique and meets the naming requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mmhk2ynd9sw630z7kxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mmhk2ynd9sw630z7kxw.png" alt="Storage accounts" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Move to the Encryption tab.&lt;/li&gt;
&lt;li&gt;Check the box for Enable infrastructure encryption.&lt;/li&gt;
&lt;li&gt;Notice the warning, This option cannot be changed after this storage account is created.&lt;/li&gt;
&lt;li&gt;Select Review + Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xgmc4pq6kz7bb3l8j1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xgmc4pq6kz7bb3l8j1l.png" alt="Encryption tab" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxh6hjbhzwax2lkajcclt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxh6hjbhzwax2lkajcclt.png" alt="Encryption tab" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the resource to deploy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdmc7gfv7jd0bbgl68sa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdmc7gfv7jd0bbgl68sa.png" alt="Encryption tab" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Provide a managed identity for the web app to use.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select Managed identities.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5a2q03ucfk9j8kh1lj38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5a2q03ucfk9j8kh1lj38.png" alt=" Managed identities" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your resource group.&lt;/li&gt;
&lt;li&gt;Give your managed identity a name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fql5xhspe8qfdzm1oox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fql5xhspe8qfdzm1oox.png" alt=" Managed identities" width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Review and create, and then Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsacq60clfz04excdlg81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsacq60clfz04excdlg81.png" alt=" Managed identities" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8493tbda5pd2hxz45iz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8493tbda5pd2hxz45iz6.png" alt=" Managed identities" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Assign the correct permissions to the managed identity. The identity only needs to read and list containers and blobs.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select your storage account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33ua5j4aa4wdo538vxe8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33ua5j4aa4wdo538vxe8.png" alt="storage account" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the Access Control (IAM) blade.&lt;/li&gt;
&lt;li&gt;Select Add role assignment (center of the page).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdd15au6kspfpc1h96ubk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdd15au6kspfpc1h96ubk.png" alt="Control (IAM) blade" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Job functions roles page, search for and select the Storage Blob Data Reader role.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favd8h8e6w1dj9k4iu2bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favd8h8e6w1dj9k4iu2bc.png" alt="Control (IAM) blade" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Members page, select Managed identity.&lt;/li&gt;
&lt;li&gt;Select Select members, in the Managed identity drop-down select User-
assigned managed identity.&lt;/li&gt;
&lt;li&gt;Select the managed identity you created in the previous step.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6av79bv3chdilewo8fz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6av79bv3chdilewo8fz8.png" alt="managed identity" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click Select and then Review + assign the role.&lt;/li&gt;
&lt;li&gt;Select Review + assign a second time to add the role assignment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1czuiw0w2xeoo69fvmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1czuiw0w2xeoo69fvmx.png" alt="role assignment" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your storage account can now be accessed by a managed identity with the Storage Data Blob Reader permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Secure access to the storage account with a key vault and key
&lt;/h3&gt;

&lt;p&gt;To create the key vault and key needed for this part of the lab, your user account must have Key Vault Administrator permissions.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Resource groups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgc9rmrpehukzssu8g0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgc9rmrpehukzssu8g0x.png" alt="Resource groups" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your resource group, and then the Access Control (IAM) blade.&lt;/li&gt;
&lt;li&gt;Select Add role assignment (center of the page).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6etlw2qye0vzq18yjbbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6etlw2qye0vzq18yjbbs.png" alt="role assignment" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Job functions roles page, search for and select the Key Vault Administrator role.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbou5lo0g5ghv3qfwntiz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbou5lo0g5ghv3qfwntiz.png" alt="Vault Administrator role" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Members page, select User, group, or service principal.&lt;/li&gt;
&lt;li&gt;Select Select members.&lt;/li&gt;
&lt;li&gt;Search for and select your user account. Your user account is shown in the top right of the portal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiad6o9f49jugohys2vo4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiad6o9f49jugohys2vo4.png" alt=" user account" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click Select and then Review + assign.&lt;/li&gt;
&lt;li&gt;Select Review + assign a second time to add the role assignment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhxm1b4hx9j7cbqc459b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhxm1b4hx9j7cbqc459b.png" alt=" user account" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are now ready to continue with the lab.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create a key vault to store the access keys.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Key vaults.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqi0mnuxy63ri70r5z1l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqi0mnuxy63ri70r5z1l5.png" alt="Key vaults" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7wuqb7zdczttuds2zmo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7wuqb7zdczttuds2zmo5.png" alt="Key vaults" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your resource group.&lt;/li&gt;
&lt;li&gt;Provide the name for the key vault. The name must be unique.&lt;/li&gt;
&lt;li&gt;Select Review + create.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7ppg55v4a3r8dna2f7y.png" alt="Key vaults" width="800" height="550"&gt;
&lt;/li&gt;
&lt;li&gt;Ensure on the Access configuration tab that Azure role-based access control (recommended) is selected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzib8wqudb4a9bc8lw0v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzib8wqudb4a9bc8lw0v.png" alt="Key vaults" width="800" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kac552q3smkxg9l68o4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kac552q3smkxg9l68o4.png" alt="Key vaults" width="800" height="803"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the validation checks to complete and then select Create.&lt;/li&gt;
&lt;li&gt;After the deployment, select Go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7eslspw0wzkl2iw6og15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7eslspw0wzkl2iw6og15.png" alt="Key vaults" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Overview blade ensure both Soft-delete and Purge protection are enabled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjhpj86cnjoufv9mneqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjhpj86cnjoufv9mneqv.png" alt="Soft-delete and Purge protection" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkd4k2harzhw111eu35bd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkd4k2harzhw111eu35bd.png" alt="Soft-delete and Purge protection" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a customer-managed key in the key vault.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In your key vault, in the Objects section, select the Keys blade.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5olsz2521hqvrs8jbhq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5olsz2521hqvrs8jbhq.png" alt="key vault" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Generate/Import and Name the key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde5v3el97xahipgatxk2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde5v3el97xahipgatxk2.png" alt="key vault" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take the defaults for the rest of the parameters, and Create the key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenwq6grbp0h1a58c8xgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenwq6grbp0h1a58c8xgi.png" alt="key vault" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure the storage account to use the customer managed key in the key vault
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Before you can complete the next steps, you must assign the Key Vault Crypto Service Encryption User role to the managed identity.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Resource groups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20adv1jrh3zhg6bmnh0w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20adv1jrh3zhg6bmnh0w.jpg" alt="key vault" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your resource group, and then the Access Control (IAM) blade.&lt;/li&gt;
&lt;li&gt;Select Add role assignment (center of the page).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgokjsmmh5miakdjxrihu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgokjsmmh5miakdjxrihu.jpg" alt="key vault" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Job functions roles page, search for and select the Key Vault Crypto Service Encryption User role.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86s6fsge127yeq1unelm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86s6fsge127yeq1unelm.png" alt="Key Vault" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Members page, select Managed identity.&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;Select members&lt;/em&gt;, in the Managed identity drop-down select User-assigned managed identity.&lt;/li&gt;
&lt;li&gt;Select your managed identity.&lt;/li&gt;
&lt;li&gt;Click Select and then Review + assign.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i92tyn3cysyzidzzzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i92tyn3cysyzidzzzo.png" alt="managed identity" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Review + assign a second time to add the role assignment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Configure the storage account to use the customer managed key in your key vault.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Return to your the storage account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqks82qe28wzcobi0sl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqks82qe28wzcobi0sl4.png" alt="storage " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Security + networking section, select the Encryption blade.&lt;/li&gt;
&lt;li&gt;Select Customer-managed keys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwrmw5ns9dyth9wiz5mq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwrmw5ns9dyth9wiz5mq.png" alt="Encryption blade" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select a key vault and key. Select your key vault and key.&lt;/li&gt;
&lt;li&gt;Select to confirm your choices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdk07zp9hpxfd9ijjflyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdk07zp9hpxfd9ijjflyr.png" alt="networking section" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Identity type is User-assigned.&lt;/li&gt;
&lt;li&gt;Select an identity.&lt;/li&gt;
&lt;li&gt;Select your managed identity then select Add.&lt;/li&gt;
&lt;li&gt;Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3xdnunge4ls82zqwyas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3xdnunge4ls82zqwyas.png" alt="identity" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you receive an error that your identity does not have the correct permissions, wait a minute and try again.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Configure an time-based retention policy and an encryption scope.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The developers require a storage container where files can’t be modified, even by the administrator.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your storage account.&lt;/li&gt;
&lt;li&gt;In the Data storage section, select the Containers blade.&lt;/li&gt;
&lt;li&gt;Create a container called hold. Take the defaults. Be sure to Create the container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrgk3hh16xr9xfo0pin6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrgk3hh16xr9xfo0pin6.png" alt="Containers " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload a file to the container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrcsdgxk2k3fdvv8vit9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrcsdgxk2k3fdvv8vit9.png" alt="Upload a file to the container" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Access policy blade.&lt;/li&gt;
&lt;li&gt;In the Immutable blob storage section, select + Add policy.&lt;/li&gt;
&lt;li&gt;For the Policy type, select time-based retention.&lt;/li&gt;
&lt;li&gt;Set the Retention period to 5 days.&lt;/li&gt;
&lt;li&gt;Be sure to Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faclgg9gaesuytlm2oqps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faclgg9gaesuytlm2oqps.png" alt="Immutable blob storage section" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Try to delete the file in the container.&lt;/li&gt;
&lt;li&gt;Verify you are notified failed to delete blobs due to policy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feut5zo8jnzq40xoron9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feut5zo8jnzq40xoron9w.png" alt="delete blobs due to policy" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The developers require an encryption scope that enables infrastructure encryption.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Navigate back to your storage account.&lt;/li&gt;
&lt;li&gt;In the Security + networking blade, select Encryption.&lt;/li&gt;
&lt;li&gt;In the Encryption scopes tab, select Add.&lt;/li&gt;
&lt;li&gt;Give your encryption scope a name.&lt;/li&gt;
&lt;li&gt;The Encryption type is Microsoft-managed key.&lt;/li&gt;
&lt;li&gt;Set Infrastructure encryption to Enable.&lt;/li&gt;
&lt;li&gt;Create the encryption scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftox6pes799x8mah73l6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftox6pes799x8mah73l6a.png" alt="enscope" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to your storage account and create a new container.&lt;/li&gt;
&lt;li&gt;Notice on the New container page, there is the Name and Public access level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrpd66dguewb70vrxhho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrpd66dguewb70vrxhho.png" alt="Public access" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notice in the Advanced section you can select the Encryption scope you created and apply it to all blobs in the container.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fan199idr42w351sdtu17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fan199idr42w351sdtu17.png" alt="con1" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>identity</category>
      <category>management</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to provide shared file storage for the company offices</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Wed, 18 Feb 2026 01:31:06 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/how-to-provide-shared-file-storage-for-the-company-offices-4bi</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/how-to-provide-shared-file-storage-for-the-company-offices-4bi</guid>
      <description>&lt;p&gt;Providing shared file storage for the company offices is important for daily office operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create and configure a storage account for Azure Files.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create a storage account for the finance department’s shared files. Learn more about storage accounts for Azure Files deployments.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the portal, search for and select &lt;em&gt;Storage accounts&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3frshjjy45gy07erml9g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3frshjjy45gy07erml9g.png" alt="create " width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxplgve82fta99uh8rtn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxplgve82fta99uh8rtn.png" alt="select" width="800" height="438"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2iyelff0has2t50w2zg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2iyelff0has2t50w2zg7.png" alt="create " width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For Resource group select Create new. Give your resource group a name and select OK to save your changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide a Storage account name. Ensure the name meets the naming requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Performance to Premium.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Premium account type to File shares.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Redundancy to Zone-redundant storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Review and then Create the storage account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for the resource to deploy.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0r2gzj9w3e4kv6wb4ly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0r2gzj9w3e4kv6wb4ly.png" alt="storage account" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Go to resource.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfg7ebcw9hpvj0uxgw8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsfg7ebcw9hpvj0uxgw8l.png" alt="resource" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Create and configure a file share with directory.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create a file share for the corporate office.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data storage section, select the File shares blade.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + File share and provide a Name.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttkj3or6nn6yk61zmdve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttkj3or6nn6yk61zmdve.png" alt="Name" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Review the other options, but take the defaults.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi9prpo4rtv6wgcnyyv1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi9prpo4rtv6wgcnyyv1.png" alt="Create" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Add a directory to the file share for the finance department. For future testing, upload a file.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your file share and select + Add directory.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the new directory finance.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kdxzwfeeplg7st4vflx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kdxzwfeeplg7st4vflx.png" alt="directory" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Browse and then select the finance directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notice you can Add directory to further organize your file share.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfqb4ewu6wk1idxoolr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfqb4ewu6wk1idxoolr2.png" alt="Image finance " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upload a file of your choosing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8kfg91jjk2hg4bw9s8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8kfg91jjk2hg4bw9s8d.png" alt="upload" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sctby7kyze9317goh44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sctby7kyze9317goh44.png" alt="Image" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure and test snapshots.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Similar to blob storage, you need to protect against accidental deletion of files. You decide to use snapshots.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your file share.&lt;/li&gt;
&lt;li&gt;In the Operations section, select the Snapshots blade.&lt;/li&gt;
&lt;li&gt;Select + Add snapshot. The comment is optional. Select OK.&lt;/li&gt;
&lt;li&gt;Select your snapshot and verify your file directory and uploaded file are included.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk7el30eoo0hftx8ijb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk7el30eoo0hftx8ijb1.png" alt="snapshot " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit4gj6q7ujpfpojvhlmb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit4gj6q7ujpfpojvhlmb.png" alt="snapshot 1" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Practice using snapshots to restore a file.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Return to your file share.&lt;/li&gt;
&lt;li&gt;Browse to your file directory.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locate your uploaded file and in the Properties pane select Delete. Select Yes to confirm the deletion.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcn06ds7eax529dhfyx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqcn06ds7eax529dhfyx6.png" alt="deletion" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the Snapshots blade and then select your snapshot.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogu1ibzmh85wkce9pim7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogu1ibzmh85wkce9pim7.png" alt="Snapshots blade" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the file you want to restore,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the file and the select Restore.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4f692l08z7bsmyog95a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4f692l08z7bsmyog95a.png" alt="Restore" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide a Restored file name.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yyt4506ecp53ze2h80c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yyt4506ecp53ze2h80c.png" alt="Restored " width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify your file directory has the restored file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60eveprazjyajpakti72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60eveprazjyajpakti72.png" alt="restored file" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Configure restricting storage access to selected virtual networks.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. This tasks in this section require a virtual network with subnet. In a production environment these resources would already be created.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Search for and select Virtual networks.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F73sr8l0824tm1h0olo0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F73sr8l0824tm1h0olo0s.png" alt="Virtual networks" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create. Select your resource group. and give the virtual network a name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take the defaults for other parameters, select Review + create, and then Create.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F530ltqn3yakucg6g4082.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F530ltqn3yakucg6g4082.png" alt="create" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdjm0vlmi9vlfujqwmd1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdjm0vlmi9vlfujqwmd1.png" alt="create1" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the resource to deploy.&lt;/li&gt;
&lt;li&gt;Select Go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flo4kukvm6v5d4749dn6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flo4kukvm6v5d4749dn6z.png" alt="resource" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Settings section, select the Subnets blade.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl097cgrqlizkvk2zl03d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl097cgrqlizkvk2zl03d.png" alt="Subnets " width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the default subnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Service endpoints section choose &lt;em&gt;Microsoft.Storage&lt;/em&gt; in the Services drop-down.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not make any other changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be sure to Save your changes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4u0gjq2uiz8pfbfplbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4u0gjq2uiz8pfbfplbw.png" alt="Save" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;The storage account should only be accessed from the virtual network you just created.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Return to your files storage account.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Security + networking section, select the Networking blade.&lt;br&gt;
r&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qzsnh7b49x5g280x2k6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qzsnh7b49x5g280x2k6.png" alt="networking " width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the Public network access to Enabled from selected virtual networks and IP addresses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Virtual networks section, select Add existing virtual network.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74lgk303su1goc9ak19i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74lgk303su1goc9ak19i.png" alt="existing virtual" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select your virtual network and subnet, select Add.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyby5p6cegzhhy5knfe39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyby5p6cegzhhy5knfe39.png" alt="subnet" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be sure to Save your changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the Storage browser and navigate to your file share.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytc1jn2qdmfbepe9sh0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytc1jn2qdmfbepe9sh0x.png" alt="file share" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verify the message not authorized to perform this operation. You are not connecting from the virtual network&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh0i8cw7rac6ervbug8ae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh0i8cw7rac6ervbug8ae.png" alt="not authorized" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>startup</category>
      <category>virtualnetwork</category>
    </item>
    <item>
      <title>How to provide private storage for internal company documents</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Fri, 13 Feb 2026 19:24:14 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/provide-private-storage-for-internal-company-documents-1ogc</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/provide-private-storage-for-internal-company-documents-1ogc</guid>
      <description>&lt;p&gt;&lt;strong&gt;In this writeup I will outline the procedure to Provide private storage for internal company documents.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a storage account and configure high availability.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create a storage account to support the public website.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the portal, search for and select Storage accounts.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw98vmwqd0hhp6wtro51w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw98vmwqd0hhp6wtro51w.png" alt="Storage accounts" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gb5ou1suwqzca0wkaud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gb5ou1suwqzca0wkaud.png" alt="create " width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For resource group select new. Give your resource group a name and select OK.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Storage account name to &lt;em&gt;publicwebsite&lt;/em&gt;. Make sure the storage account name is unique by adding an identifier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take the defaults for other settings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Review and then Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07rstmeizmkjcmdeuwf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07rstmeizmkjcmdeuwf1.png" alt="Image publicwebsite" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Friio12u6umeiiwa057up.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Friio12u6umeiiwa057up.png" alt="site" width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select Go to resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7nvda3bdwgiz3whb8oe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7nvda3bdwgiz3whb8oe.png" alt="go resources " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. This storage requires high availability if there’s a regional outage. Additionally, enable read access to the secondary region.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data management section, select the Redundancy blade.&lt;/li&gt;
&lt;li&gt;Ensure Read-access Geo-redundant storage is selected.&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjeuqo0beiy5l1t8q6o2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjeuqo0beiy5l1t8q6o2s.png" alt="location" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Information on the public website should be accessible without requiring customers to login.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure the Allow blob anonymous access setting is Enabled.&lt;/li&gt;
&lt;li&gt;Be sure to Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgtxtdipf7qcaxapg8u9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgtxtdipf7qcaxapg8u9b.png" alt="Image Configuration blade" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a blob storage container with anonymous read access
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The public website has various images and documents. Create a blob
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;storage container for the content. &lt;/li&gt;
&lt;li&gt;In your storage account, in the Data storage section, select the Containers blade.&lt;/li&gt;
&lt;li&gt;Select + Container.&lt;/li&gt;
&lt;li&gt;Ensure the Name of the container is_ public_.&lt;/li&gt;
&lt;li&gt;Select Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faw6wdc0ia3creawmz01v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faw6wdc0ia3creawmz01v.png" alt="Select Create container " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Customers should be able to view the images without being
&lt;/h3&gt;

&lt;p&gt;authenticated. Configure anonymous read access for the public container blobs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your public container.&lt;/li&gt;
&lt;li&gt;On the Overview blade, select Change access level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpvcxli2dkwg18clzde2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpvcxli2dkwg18clzde2.png" alt="Overview blade" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Public access level is Blob (anonymous read access for blobs only).&lt;/li&gt;
&lt;li&gt;Select OK.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx662tb5vmnprlul8984.png" alt="Blob" width="800" height="447"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practice uploading files and testing access.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. For testing, upload a file to the public container. The type of file doesn’t matter. A small image or text file is a good choice.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you are viewing your container.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;li&gt;Browse to files and select a file. Browse to a file of your choice.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;li&gt;Close the upload window, Refresh the page and ensure your file was uploaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuw0tg3kf6frw60uxmb5c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuw0tg3kf6frw60uxmb5c.jpg" alt="upload " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j7bhu5nbpm86w5cyvr0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j7bhu5nbpm86w5cyvr0.jpg" alt="f5" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Determine the URL for your uploaded file. Open a browser and test the URL.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded file.&lt;/li&gt;
&lt;li&gt;On the Overview tab, copy the URL.&lt;/li&gt;
&lt;li&gt;Paste the URL into a new browser tab.&lt;/li&gt;
&lt;li&gt;If you have uploaded an image file it will display in the browser. Other file types should be downloaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62j45pxvokknc7xexzpl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F62j45pxvokknc7xexzpl.jpg" alt="uploaded" width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure soft delete
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. It’s important that the website documents can be restored if they’re deleted. Configure blob soft delete for 21 days.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Overview blade of the storage account.&lt;/li&gt;
&lt;li&gt;On the Properties page, locate the Blob service section.&lt;/li&gt;
&lt;li&gt;Select the Blob soft delete setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mgghcrt5oec39lf71d1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mgghcrt5oec39lf71d1.png" alt="blob service" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Enable soft delete for blobs is checked.&lt;/li&gt;
&lt;li&gt;Change the Keep deleted blobs for (in days) setting to 21.&lt;/li&gt;
&lt;li&gt;Notice you can also Enable soft delete for containers.&lt;/li&gt;
&lt;li&gt;Don’t forget to Save your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsssm2hckhtjlenip40nc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsssm2hckhtjlenip40nc.png" alt="delete cont" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. If something gets deleted, you need to practice using soft delete to restore the files.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your container where you uploaded a file.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the file you uploaded and then select Delete.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfcmcpfftgpj6knjg49p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfcmcpfftgpj6knjg49p.png" alt="select Delete" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select OK to confirm deleting the file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86lohen2th4tabmiolu5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86lohen2th4tabmiolu5.png" alt="delete" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the container Overview page, toggle the slider Show deleted blobs. This toggle is to the right of the search box.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck6wxs680s4fks8z3b2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck6wxs680s4fks8z3b2p.png" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select your deleted file, and use the ellipses on the far right, to Undelete the file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55y02gzu60a2dqjvzuvk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55y02gzu60a2dqjvzuvk.jpg" alt="Undelete" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refresh the container and confirm the file has been restored.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p44vzx1wd3kog9j676w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p44vzx1wd3kog9j676w.jpg" alt="Refresh " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Configure blob versioning
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. It’s important to keep track of the different website product document versions.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Overview blade of the storage account.&lt;/li&gt;
&lt;li&gt;In the Properties section, locate the Blob service section.&lt;/li&gt;
&lt;li&gt;Select the Versioning setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcipe5oksj4v7r3myabz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcipe5oksj4v7r3myabz.png" alt="versioning" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Enable versioning for blobs checkbox is checked.&lt;/li&gt;
&lt;li&gt;Notice your options to keep all versions or delete versions after.&lt;/li&gt;
&lt;li&gt;Don’t forget to Save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwwd9jsbcj1cr392r6sp.png" alt="save" width="800" height="586"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. As you have time experiment with restoring previous blob versions.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Upload another version of your container file. This overwrites your existing file.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyp47x97b29lxndnv0ag.png" alt="override" width="800" height="356"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zd8ibez6nn0rdc3foar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zd8ibez6nn0rdc3foar.png" alt="override 2" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your previous file version is listed on Show deleted blobs page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9e415i49670yk7xjxl7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9e415i49670yk7xjxl7.png" alt="show" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>ai</category>
      <category>highavailability</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Providing a storage for the public website</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Fri, 13 Feb 2026 19:14:18 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/providing-a-storage-for-the-public-website-1f8a</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/providing-a-storage-for-the-public-website-1f8a</guid>
      <description>&lt;p&gt;In this writeup I will outline the procedure for providing a storage for the public website&lt;/p&gt;

&lt;h2&gt;
  
  
  A. Create a storage account and configure high availability.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.Create a storage account for the internal private company documents.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select Storage accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkzurflqk574mbsvwwvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkzurflqk574mbsvwwvs.png" alt="select Storage accounts" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select + Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oxmmseorc0ijw79obc7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oxmmseorc0ijw79obc7.png" alt="plus Create" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the Resource group created in the previous lab.&lt;/li&gt;
&lt;li&gt;Set the Storage account name to private. Add an identifier to the name to ensure the name is unique.&lt;/li&gt;
&lt;li&gt;Select Review, and then Create the storage account.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7of6jr07htym7ihi3x9y.png" alt="Create the storage account" width="800" height="745"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn1z0698ucam6hgy3ded.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn1z0698ucam6hgy3ded.png" alt="Create" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select Go to resource.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9sns7brvxhl4qokpi8k.png" alt="deploying" width="800" height="353"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftq5qz9nprthtutrohb2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftq5qz9nprthtutrohb2h.png" alt="go to resource" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.This storage requires high availability if there’s a regional outage. Read access in the secondary region is not required. Configure the appropriate level of redundancy.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data management section, select the Redundancy blade.&lt;/li&gt;
&lt;li&gt;Refresh the page.&lt;/li&gt;
&lt;li&gt;Review the primary and secondary location information.&lt;/li&gt;
&lt;li&gt;Save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4ashamb1ba44kws51o2.png" alt="Geo-redundant storage (GRS)" width="800" height="428"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  B. Create a storage container, upload a file, and restrict access to the file.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create a private storage container for the corporate data.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the Data storage section, select the Containers blade.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Container.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngch9z8gi89itjjn6vmm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngch9z8gi89itjjn6vmm.png" alt="Container" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure the Name of the container is &lt;em&gt;private&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure the Public access level is Private (no anonymous access).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As you have time, review the Advanced settings, but take the defaults.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F206k9w6u4wwvir7ipdlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F206k9w6u4wwvir7ipdlu.png" alt="private container" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. For testing, upload a file to the &lt;em&gt;private&lt;/em&gt; container. The type of file doesn’t matter. A small image or text file is a good choice. Test to ensure the file isn’t publically accessible.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select the container.&lt;/li&gt;
&lt;li&gt;Select Upload.&lt;/li&gt;
&lt;li&gt;Browse to files and select a file.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upload the file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrxwcfl7ryq9xx96kceq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrxwcfl7ryq9xx96kceq.png" alt="upload" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the uploaded file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the Overview tab, copy the URL.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi67fjbvuy9pfrif79jd4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi67fjbvuy9pfrif79jd4.png" alt="copy the URL" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste the URL into a new browser tab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify the file doesn’t display and you receive an error.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwa0kxg2s4yf44ta0fyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwa0kxg2s4yf44ta0fyi.png" alt="error" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. An external partner requires read and write access to the file for at least the next 24 hours. Configure and test a shared access signature (SAS).
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select your uploaded blob file and move to the Generate SAS tab.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foe4w81437dl0pk1z4hpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foe4w81437dl0pk1z4hpq.png" alt="Generate SAS tab" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Permissions drop-down, ensure the partner has only Read permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify the Start and expiry date/time is for the next 24 hours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Generate SAS token and URL.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrh0sosl6900wjehqeyh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrh0sosl6900wjehqeyh.png" alt="Generate SAS token and URL" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the Blob SAS URL to a new browser tab.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fch5rhjwnby4z8enu5z9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fch5rhjwnby4z8enu5z9o.png" alt="Copy the Blob SAS URL" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify you can access the file. If you have uploaded an image file it will display in the browser. Other file types will be downloaded.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj0i8pdsl5a7b1zgddsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj0i8pdsl5a7b1zgddsw.png" alt="Verify you can access" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  C. Configure storage access tiers and content replication.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. To save on costs, after 30 days, move blobs from the hot tier to the cool tier.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Return to the storage account.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9vtcxgn2iskzq39h39k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9vtcxgn2iskzq39h39k.png" alt="storage account" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Overview section, notice the Default access tier is set to Hot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Data management section, select the Lifecycle management blade.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vkfg53tj4fn8ficie4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vkfg53tj4fn8ficie4q.png" alt="datamgt" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select Add rule.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzu6rogxlapw3mi272ay4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzu6rogxlapw3mi272ay4.png" alt="rule" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Rule name to &lt;em&gt;movetocool&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Rule scope to Apply rule to all blobs in the storage account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Next.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8rnsjlhpbkqyi8dsncm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8rnsjlhpbkqyi8dsncm.png" alt="Rule name" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure Last modified is selected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set More than (days ago) to 30.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Then drop-down select Move to cool storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As you have time, review other lifecycle options in the drop-down.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the rule.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhe4ptj1pzc98bva67he.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhe4ptj1pzc98bva67he.png" alt="Add the rule" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feiu0id3oenhex49p60bd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feiu0id3oenhex49p60bd.png" alt="rule added" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The public website files need to be backed up to another storage account.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, create a new container called backup. Use the default values. 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4kh6i1h422x6v2v4l42.png" alt="new container" width="800" height="438"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ybhg1ax7z2c6z5q7830.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ybhg1ax7z2c6z5q7830.png" alt="backup " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc26femx148s88zvvoty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc26femx148s88zvvoty.png" alt="success" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to your &lt;em&gt;publicwebsite&lt;/em&gt; storage account. This storage account was created in the previous exercise.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6a2ygbi5h742lirh5u8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6a2ygbi5h742lirh5u8f.png" alt="publicwebsite" width="800" height="288"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Data management section, select the Object replication blade.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create replication rules.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdy3a9w040hirpaavrhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdy3a9w040hirpaavrhs.png" alt="Object replication blade" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Destination storage account to the private storage account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Source container to public and the Destination container to backup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create the replication rule.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59gjt8dl6nld662x722.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59gjt8dl6nld662x722.png" alt="replication rule" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8fk04ddu6cl58nada9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8fk04ddu6cl58nada9y.png" alt="replication rule" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Optionally, as you have time, upload a file to the public container. Return to the private storage account and refresh the backup container. Within a few minutes your public website file will appear in the backup folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ld7e9rty1hp8effxcm5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ld7e9rty1hp8effxcm5.jpg" alt="back to " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fairl30pp5o8i18n3f8of.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fairl30pp5o8i18n3f8of.png" alt="backup " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>website</category>
      <category>ai</category>
    </item>
    <item>
      <title>Providing Storage for the IT Department Testing and Training</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Fri, 13 Feb 2026 08:23:46 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/providing-storage-for-the-it-department-testing-and-training-dhg</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/providing-storage-for-the-it-department-testing-and-training-dhg</guid>
      <description>&lt;h2&gt;
  
  
  What is cloud storage
&lt;/h2&gt;

&lt;p&gt;Cloud storage is a way of saving your files and data on remote servers that you access over the internet (cloud) instead of storing them only on your computer or phone. Instead your files are stored in large data centers owned by companies like Google, Apple, Microsoft, or Dropbox. You upload files (photo, document, video, etc.) to a cloud service. The file is stored on remote servers. You can access it anytime from any device with internet access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvs0it64uero4iclpeeb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvs0it64uero4iclpeeb.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  To create a cloud storage follow the following steps:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a resource group and a storage account.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Azure portal, search for and select Resource group.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y28g0kil3d2f2hyimsx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3y28g0kil3d2f2hyimsx.jpg" alt="resource group" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select + Create step. &lt;em&gt;step 1&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsduek1vneo4q224fxq2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsduek1vneo4q224fxq2j.png" alt="plus create" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give your resource group a name. &lt;em&gt;step 2&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select a region. Use this region throughout the project. &lt;em&gt;step 3&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Review and create to validate the resource group. &lt;em&gt;step 4&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz8x6q37xpvvrrngjvq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz8x6q37xpvvrrngjvq3.png" alt="name, region, Review and create" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Create to deploy the resource group. &lt;em&gt;step 5&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmadi9dcjftxqu0ktahn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmadi9dcjftxqu0ktahn.jpg" alt="create" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create and deploy a storage account to support testing and training.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select. &lt;em&gt;step 6&lt;/em&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ub72sumso8ojhahhr3f.png" alt="search and select" width="800" height="409"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Select + Create. &lt;em&gt;step 7&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxf8yunqwlxd5ix3nzt2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxf8yunqwlxd5ix3nzt2.jpg" alt="create" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the Basics tab, select your Resource group. &lt;em&gt;step 8&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vdw8bghsprikx1sqps2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0vdw8bghsprikx1sqps2.jpg" alt="Resource group" width="800" height="631"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide a Storage account name. The storage account name must be unique in Azure. &lt;em&gt;step 9&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the Performance to Standard. &lt;em&gt;step 10&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Review, and then Create. &lt;em&gt;step 11&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltahrlhvww5b12xt3pgd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltahrlhvww5b12xt3pgd.jpg" alt="create" width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for the storage account to deploy and then Go to resource. &lt;em&gt;step 12 and 13&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsvcb972kvz3kbexp90c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsvcb972kvz3kbexp90c.jpg" alt="wait" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8mrcbzl3moa12tvjv8t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8mrcbzl3moa12tvjv8t.jpg" alt="Go to resource" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7654pu3may45udhsxyw3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7654pu3may45udhsxyw3.jpg" alt="somadina1" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Configure simple settings in the storage account.
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The data in this storage account doesn’t require high availability or durability. A lowest cost storage solution is desired
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your storage account, in the Data management section, select the Redundancy blade. &lt;em&gt;step 14 and 15&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlfsq1ygajiqacbokv9w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlfsq1ygajiqacbokv9w.jpg" alt="Data management section" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Locally-redundant storage (LRS) in the Redundancy drop-down. &lt;em&gt;step 16&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be sure to Save your changes. &lt;em&gt;step 17&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8y7kypipn8a6md6zx2s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8y7kypipn8a6md6zx2s.jpg" alt="Redundancy drop-down" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refresh the page and notice the content only exists in the primary location.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxs0aco7az9zwkegc9bph.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxs0aco7az9zwkegc9bph.jpg" alt="primary location" width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The storage account should only accept requests from secure connections
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure Secure transfer required is Enabled
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4fqyskzhytzl2vssrbq.jpg" alt="Configuration blade" width="800" height="542"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Developers would like the storage account to use at least TLS version 1.2.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure the Minimal TLS version is set to Version 1.2  &lt;em&gt;step 20&lt;/em&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiz0a4nzi8v6uuspswfau.jpg" alt="TLS version" width="800" height="837"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Until the storage is needed again, disable requests to the storage account.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure Allow storage account key access is Disabled.  &lt;em&gt;step 21&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to Save your changes. &lt;em&gt;step 22&lt;/em&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4h2r6ruq4qbttksvz6zb.jpg" alt="storage account key access" width="800" height="474"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Ensure the storage account allows public access from all networks.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In the Security + networking section, select the Networking blade.  &lt;em&gt;step 23 to 24&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Ensure Public network access is set to Enabled from all networks. &lt;em&gt;step 25 to 26&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to Save your changes. &lt;em&gt;step 27&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwji71z2atki3bcfqlurm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwji71z2atki3bcfqlurm.jpg" alt="Public network access" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwcirhrcwo0lqn7ixno72.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwcirhrcwo0lqn7ixno72.jpg" alt="save" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Please like, follow and share&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>learning</category>
      <category>testing</category>
    </item>
    <item>
      <title>Fundamental Concepts of Cloud Computing</title>
      <dc:creator>Nwafor Somadina Emeka</dc:creator>
      <pubDate>Thu, 12 Feb 2026 19:04:09 +0000</pubDate>
      <link>https://dev.to/nwafor_somadina_efa388085/fundamental-concepts-of-cloud-computing-3bpk</link>
      <guid>https://dev.to/nwafor_somadina_efa388085/fundamental-concepts-of-cloud-computing-3bpk</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What is Virtualization?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this articles I will discuss the basic concepts of cloud computing.&lt;br&gt;
Cloud computing is the use of virtualization technology to deliver computing services over the cloud instead of local hardware.&lt;/p&gt;

&lt;p&gt;Virtualization is a transformative technology that creates physical computing resources to hardware, operating systems, and storage. By allowing multiple virtual instances to run simultaneously on a single physical machine, organizations can maximize hardware utilization and achieve superior efficiency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of one server running one application, virtualization lets you run many.&lt;/li&gt;
&lt;li&gt;It isolates systems: Multiple Virtual Machines (VMs) live on one server but act like they are on separate islands.&lt;/li&gt;
&lt;li&gt;It stops waste: Resources (RAM, CPU) are handed out dynamically—nobody creates a traffic jam, and nobody sits empty.&lt;/li&gt;
&lt;li&gt;It moves fast: You can spin up a new server in seconds, not days.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why It Matters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud Computing: It is the backbone of the cloud. Without virtualization, there is no AWS or Google Cloud.&lt;/li&gt;
&lt;li&gt;Leaner Data Centers: Fewer physical boxes mean less electricity, less cooling, and less maintenance.&lt;/li&gt;
&lt;li&gt;Remote Work: It allows employees to access their "work computer" from anywhere in the world.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  1. Scalability
&lt;/h2&gt;

&lt;p&gt;Scalability means a system can expand or shrink resources on demand—so businesses can handle any workload without wasting money or sacrificing performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2mc80z4mta3ruvkwg9ku.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2mc80z4mta3ruvkwg9ku.jpg" alt="Scalability" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vertical Scaling (Scaling UP)&lt;/strong&gt;&lt;br&gt;
Vertical scaling is like taking your existing car and putting a bigger engine in it.&lt;/p&gt;

&lt;p&gt;1.The Process: You add more power (CPU, RAM, or Storage) to an existing Virtual Machine.&lt;br&gt;
2.When to use it: When a single application (like a large database) needs more "muscle" to process complex queries faster.&lt;br&gt;
3.The Virtualization Edge: In a physical world, you’d have to open the computer case. In a virtual world, you simply move a slider in your management console to allocate 16GB of RAM instead of 8GB&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Horizontal Scaling (Scaling OUT)&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Horizontal scaling is like adding more cars to a fleet to carry more people.
2.The Process: You spin up additional Virtual Machines to share the workload.
3.When to use it: High-traffic events where you need to distribute millions of users across multiple web servers.
4.The Virtualization Edge: You can use "Cloning" or "Templates" to deploy 100 identical web servers in minutes, all sitting behind a Load Balancer that directs traffic to the server with the most room.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The "Scale Down" Advantage (Elasticity)&lt;/strong&gt;&lt;br&gt;
The most underrated part of scalability isn't growing—it's shrinking. This is often called Elasticity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cost Avoidance: In the old days, you had to buy enough hardware to handle your busiest day of the year (like Black Friday). For the other 364 days, that expensive hardware sat idle, wasting electricity and space.&lt;/li&gt;
&lt;li&gt;Auto-Scaling: Modern virtualized environments use "triggers." If CPU usage hits 80%, the system automatically creates a new VM. When traffic drops at 3:00 AM, the system automatically deletes the extra VMs. You only pay for what you use, down to the second.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;E-Commerce: The "Holiday Spike"&lt;/em&gt;&lt;br&gt;
An online retailer might normally run on 5 virtual servers. During a "Flash Sale," traffic jumps 1000%. The hypervisor detects the spike and scales out to 50 servers. Once the sale ends, it scales back to 5. The customer experience remains "snappy" throughout, and the business doesn't crash.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Media Streaming: The "Viral Moment"&lt;/em&gt;&lt;br&gt;
When a new hit show drops on a streaming platform, millions of people hit "Play" at the same time. The platform uses horizontal scaling to replicate "Edge Servers" closer to the users, ensuring no buffering occurs despite the massive influx of data requests.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Agility
&lt;/h2&gt;

&lt;p&gt;Agility is the ability of an IT organization to react, adapt, and deploy at the speed of business. If Scalability is about size, Agility is about &lt;em&gt;speed&lt;/em&gt; and movement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Months to Minutes&lt;/strong&gt;&lt;br&gt;
Before virtualization, the process of launching a new application looked like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request: Developer asks for a server.&lt;/li&gt;
&lt;li&gt;Approval: Procurement reviews the budget.&lt;/li&gt;
&lt;li&gt;Shipping: Wait 2–4 weeks for hardware delivery.&lt;/li&gt;
&lt;li&gt;Labour: An engineer racks the server, cables it, and installs the OS.&lt;/li&gt;
&lt;li&gt;Deployment: The developer finally gets access.&lt;/li&gt;
&lt;li&gt;With Virtualization Agility: The developer logs into a self-service portal, clicks "Create Virtual machine (VM)," and a fully configured environment is ready in under 300 seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Agility technical capabilities&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Snapshotting (The "Undo" Button)&lt;br&gt;
A point-in-time image of a Virtual Machine’s entire state. Developers can test a risky software update. If it breaks the system, they can "roll back" to the exact state it was in before the update with one click. This encourages experimentation without fear of permanent failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Live Migration (Zero Downtime)&lt;br&gt;
This is moving a running VM from one physical host to another without turning it off. If a physical server needs maintenance or a hardware upgrade, you can "vMotion" or "Live Migrate" all active users to a different server. The users never even notice a flicker, and the IT team can work during business hours instead of at 3:00 AM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Golden Images &amp;amp; Templating&lt;br&gt;
This is creating a "master copy" of a perfectly configured server.&lt;br&gt;
Instead of installing Windows/Linux and 50 security patches every time you need a new server, you simply "clone" the master template. This ensures consistency across the entire company and eliminates manual configuration errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Business Impact of Agility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster Time-to-Market: If a competitor launches a new feature, your team can spin up a "Dev/Test" environment instantly to build a response, rather than waiting for hardware to arrive.&lt;/li&gt;
&lt;li&gt;Disaster Resilience: In the event of a site failure, virtualized backups can be "hydrated" and turned on at a secondary location almost instantly.&lt;/li&gt;
&lt;li&gt;DevOps Synergy: Agility allows for Continuous Integration/Continuous Deployment (CI/CD). Code can be written, tested in a temporary VM, and pushed to production automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The "Sandbox" Effect&lt;/strong&gt;&lt;br&gt;
Virtualization provides a safe "Sandbox" for innovation. Because virtual resources are isolated, an agile team can create a "Digital Twin" of their entire network to test how a new security patch or application will behave before it ever touches a real customer.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. High Availability
&lt;/h2&gt;

&lt;p&gt;High Availability (HA) is the insurance policy against downtime. It is the design principle that ensures a system remains operational and accessible, even if a component (like a server, power supply, or hard drive) fails, if a server's motherboard dies, every application on that server goes dark until a technician physically repairs it. In a virtualized environment, HA makes the system "self-healing."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Virtualized HA Works: The "Cluster"&lt;/strong&gt;&lt;br&gt;
To achieve HA, physical servers are grouped into a Cluster. These servers share access to the same storage and "heartbeat" with each other constantly to check for signs of life.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failure Detection:
The hypervisor management system monitors the health of every physical host in the cluster. If Host A stops responding (perhaps due to a hardware crash), the system immediately triggers an HA event.&lt;/li&gt;
&lt;li&gt;Automatic Failover:
Because the Virtual Machines (VMs) are stored on shared storage (not on the local hard drive of the dead server), the cluster simply "picks up" those VMs and restarts them on Host B or Host C, where there is spare capacity.&lt;/li&gt;
&lt;li&gt;Minimal Downtime:
While the VM does have to reboot (resulting in a few minutes of downtime), this is a massive improvement over the hours or days it would take to procure and set up a new physical server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnotpsqi5llzypcfk3zvj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnotpsqi5llzypcfk3zvj.png" alt="High Availability vs Fault Torlerance" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples&lt;/strong&gt;&lt;br&gt;
The Business Value: The Cost of a "Minute"_ For many companies, downtime isn't just annoying—it's expensive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;E-commerce: Every minute offline is thousands of dollars in lost sales.&lt;/li&gt;
&lt;li&gt;Healthcare: Downtime can prevent doctors from accessing life-saving patient records.&lt;/li&gt;
&lt;li&gt;Finance: A 10-minute outage can disrupt thousands of global transactions.
Virtualization-based HA allows businesses to reach "Five Nines" (99.999%) of uptime, meaning the system is down for less than 6 minutes over an entire year.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Fault Tolerant
&lt;/h2&gt;

&lt;p&gt;While High Availability (HA) is like having a spare tire in your trunk, Fault Tolerance (FT) is like flying a plane with two engines: if one fails, you don't even feel a dip in altitude. In a virtualized environment, Fault Tolerance is the highest level of protection available, designed for mission-critical applications where even a few minutes of reboot time is unacceptable. Financial trading platforms, medical life systems and industrial automation are some of the ecosystems that require this resource. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Fault Tolerance Works: The "Shadow" VM&lt;/strong&gt;&lt;br&gt;
Fault Tolerance creates a live, identical shadow instance of a Virtual Machine (VM) that runs on a separate physical host.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Primary and Secondary: You have a "Primary VM" handling requests and a "Secondary VM" waiting in the wings.&lt;/li&gt;
&lt;li&gt;Deterministic Lockstep: The two VMs are tied together via a dedicated logging network. Every single instruction processed by the Primary VM’s CPU is mirrored to the Secondary VM at the exact same microsecond.&lt;/li&gt;
&lt;li&gt;The "Ghost" Execution: The Secondary VM executes all the same inputs as the primary, but its outputs (like sending data to a user) are suppressed so they don't double-post.&lt;/li&gt;
&lt;li&gt;Instantaneous Cutover: If the physical hardware under the Primary VM fails, the Secondary VM immediately takes over the "output" role. There is zero loss of data, zero loss of network connectivity, and zero downtime.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;However it is resource intensive&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resource Double-Dipping: To protect one VM with 8GB of RAM and 4 CPUs, you must dedicate another 8GB of RAM and 4 CPUs on a different host. You are essentially paying double for the same performance.&lt;/li&gt;
&lt;li&gt;Network Overhead: Maintaining the "Lockstep" requires a high-speed (often 10Gbps+) dedicated network link between servers to ensure the shadow VM stays perfectly in sync.&lt;/li&gt;
&lt;li&gt;Performance "Tax": Because the Primary VM has to wait for the Secondary VM to acknowledge instructions, there can be a slight latency penalty on the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbiyzwos5ebdf7tx5g7s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbiyzwos5ebdf7tx5g7s.jpg" alt="HA VS TF" width="800" height="450"&gt;&lt;/a&gt;   &lt;/p&gt;




&lt;h2&gt;
  
  
  5. Global Reach
&lt;/h2&gt;

&lt;p&gt;This ability to deploy infrastructure and services across the planet in minutes. Virtualization removes the "geographic gravity" of physical hardware, allowing a business in London to serve customers in Tokyo with the same performance as if the servers were next door. To achieve true global reach, virtualization relies on three key strategies:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39lfr5nr0a9wju5lgqi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39lfr5nr0a9wju5lgqi8.png" alt="Global Reach" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Global Redundancy: If a natural disaster hits a data center in Abuja, virtualization allows the system to automatically failover to a region in Iceland or Singapore. This isn't just "High Availability"—it's Global Resilience.&lt;/li&gt;
&lt;li&gt;Data Sovereignty &amp;amp; Compliance: Different countries have different laws. You can use "Affinity Rules" to ensure that sensitive customer data stays on virtual servers located only within specific borders, even if your company operates globally.&lt;/li&gt;
&lt;li&gt;Low Latency (The "Speed of Light" Problem): Physical distance creates "lag." Even at the speed of light, data takes time to travel. Virtualization allows you to deploy "clones" of your application in every major global hub. This brings the computer to the user, rather than making the user come to the computer.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  7. Elasticity and Scalability
&lt;/h2&gt;

&lt;p&gt;Scalability is about the potential to handle growth, while Elasticity is about the speed and automation of that growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: The Power to Grow. Scalability is the ability of a system to increase its capacity to handle a growing amount of work. It is a design quality. If your system is scalable, it means that when you add resources, performance increases proportionally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vertical Scalability (Scale Up): Adding more power to your existing "box" (e.g., upgrading a server from 16GB to 64GB of RAM).&lt;/li&gt;
&lt;li&gt;Horizontal Scalability (Scale Out): Adding more "boxes" to your fleet (e.g., going from 1 web server to 10 web servers).&lt;/li&gt;
&lt;li&gt;Business Use Case: A start-up gaining 1,000 new users every month needs a scalable architecture to ensure the app doesn't slow down as the total user base grows over the year.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9ao5e2bs2kh83x30jvb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9ao5e2bs2kh83x30jvb.jpg" alt="Elasticity and Scalability" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elasticity&lt;/strong&gt;: The Power to Adapt. Elasticity is a subset of scalability, typically found in Cloud Environments. It is the ability of a system to automatically add or remove resources in real-time based on current demand.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic Scaling: The system monitors metrics (like CPU usage). If the CPU hits 80%, it adds a server. If it drops to 20%, it deletes a server.&lt;/li&gt;
&lt;li&gt;Cost Efficiency: You only pay for what you use. When the "spike" ends, the resources disappear, and so does the bill.&lt;/li&gt;
&lt;li&gt;Business Use Case: An e-commerce site experiences a 500% traffic jump for 4 hours on Black Friday. An elastic system expands to handle the rush and then shrinks back down on Saturday morning to save money&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scalability provides the infrastructure that allows for growth, while Elasticity provides the automation that manages that growth efficiently. Scalability is about capacity (Can we handle the load?). &lt;br&gt;
Elasticity is about economics and speed (Can we handle the load right now and stop paying for it when we’re done?).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you have Scalability without Elasticity, you have to manually turn on new servers when things get busy and manually turn them off later.&lt;/li&gt;
&lt;li&gt;If you have Elasticity, your scalable system is essentially on "autopilot."&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Please comment, share, and follow&lt;/em&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>ai</category>
      <category>cloudcomputing</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
