<?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: Oluwaloseyi Oluwatofunmi Emmanuel</title>
    <description>The latest articles on DEV Community by Oluwaloseyi Oluwatofunmi Emmanuel (@tjasper).</description>
    <link>https://dev.to/tjasper</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2016684%2F080c9dcc-6fca-4f8b-8402-1bd57e71d5e5.jpeg</url>
      <title>DEV Community: Oluwaloseyi Oluwatofunmi Emmanuel</title>
      <link>https://dev.to/tjasper</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tjasper"/>
    <language>en</language>
    <item>
      <title>Azure Management Tasks #Part 5: Clean up resources</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Tue, 23 Jun 2026 16:22:49 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-5-clean-up-resources-ic</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-5-clean-up-resources-ic</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Remove delete locks.&lt;/li&gt;
&lt;li&gt;Step 2: Delete the project resource group.&lt;/li&gt;
&lt;li&gt;Step 3: Delete the NetworkWatcherRG (if not in use).&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Congratulations! You've completed most of the tasks associated with Microsoft Azure management tasks. In this final part of the series, we will remove all the resources created in the previous parts. It’s important to avoid unexpected costs, so ensure you completely remove resources created during this series.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully complete the tasks in this project, you need to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;Login&lt;/a&gt; to Microsoft Azure portal.&lt;/li&gt;
&lt;li&gt;Complete the previous articles in the series.&lt;/li&gt;
&lt;li&gt;Make sure you do not need the resources anymore.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Remove delete locks.
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; **Important:** Clear delete locks from resources you intend to delete before issuing the delete command.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vm&lt;/code&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl7ol10sbbi654btp9hu5.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl7ol10sbbi654btp9hu5.png" alt="Screenshot of the VM." width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If necessary, expand the &lt;strong&gt;Settings&lt;/strong&gt; submenu.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Locks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Delete&lt;/strong&gt; on the line for the VM-delete-lock.&lt;/li&gt;
&lt;li&gt;On the pop-up window, select &lt;strong&gt;Delete&lt;/strong&gt; to confirm deletion of the lock.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Funuj49rbqa620vdcnlnx.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Funuj49rbqa620vdcnlnx.png" alt="Screenshot of the delete locks being deleted." width="799" height="361"&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 &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home page.&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Delete the project resource group
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;Resource groups&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;resource groups&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-rg&lt;/code&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7d4vqjrs279vrwy3o4ze.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7d4vqjrs279vrwy3o4ze.png" alt="Screenshot of RG." width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Delete&lt;/strong&gt; resource group.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt; force delete…&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;management-tasks-rg&lt;/code&gt; in the confirmation box.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Delete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the Delete confirmation pop-up, select &lt;strong&gt;Delete&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7se62clcaqsdri09y29k.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7se62clcaqsdri09y29k.png" alt="Screenshot of the NetworkWatcherRG being deleted." width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Delete the NetworkWatcherRG.
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; **Important:** If the NetworkWatcherRG existed prior to starting the guided project, do not delete it as part of the guided project clean up.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;Resource groups&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;resource groups&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;NetworkWatcherRG&lt;/code&gt; resource group.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Delete&lt;/strong&gt; resource group.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;NetworkWatcherRG&lt;/code&gt; in the confirmation box.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Delete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the Delete confirmation pop-up, select &lt;strong&gt;Delete&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxdvxegk7hb5wct1gbs7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxdvxegk7hb5wct1gbs7.png" alt="Screenshot of the NetworkWatcherRG being deleted." width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You've successfully completed all the tasks for managing tasks on Microsoft Azure.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>cloud</category>
      <category>azure</category>
      <category>management</category>
    </item>
    <item>
      <title>Azure Management Tasks #Part 5: How Improve Governance and Protection</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Tue, 23 Jun 2026 13:03:23 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-5-how-improve-governance-and-protection-a43</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-5-how-improve-governance-and-protection-a43</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Add tags to a virtual machine.&lt;/li&gt;
&lt;li&gt;Step 2: Add a resource lock to a VM.&lt;/li&gt;
&lt;li&gt;Step 3: Add tags to network resources.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you’ve completed the previous parts of this series, you’ve managed to add a subnet to a virtual network, made changes to a virtual machine, and worked with an Azure storage account. This part of the series focuses on working with tags and resource locks to help protect, manage, and monitor your environment. We will add a pair of tags to the VM, where one shows the purpose and the other shows the department.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully complete the tasks in this project, you need to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;Login&lt;/a&gt; to Microsoft Azure portal.&lt;/li&gt;
&lt;li&gt;Complete the previous articles in the series.&lt;/li&gt;
&lt;li&gt;Basic understanding of tags and locks.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Add tags to a virtual machine.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vm&lt;/code&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyagw0k9b6gfen3lr06zy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyagw0k9b6gfen3lr06zy.png" alt="Screenshot of the VM." width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the menu pane, select &lt;strong&gt;Tags&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On one line for &lt;strong&gt;Name&lt;/strong&gt; enter &lt;code&gt;Department&lt;/code&gt; and for &lt;strong&gt;Value&lt;/strong&gt; enter &lt;code&gt;Customer Service&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;On the next line, for &lt;strong&gt;Name&lt;/strong&gt; enter &lt;code&gt;Purpose&lt;/code&gt; and for &lt;strong&gt;Value&lt;/strong&gt; enter &lt;code&gt;FTP Server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnbcw6wgxviedp6kdslom.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnbcw6wgxviedp6kdslom.png" alt="Screenshot of us adding a pair of tags to the VM." width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Add a resource lock to a VM.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If necessary, expand the &lt;strong&gt;Settings&lt;/strong&gt; submenu.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Locks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Add&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For the name, enter &lt;code&gt;VM-delete-lock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Lock type&lt;/strong&gt;, select &lt;strong&gt;Delete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You may enter a note to help remind you why you created the lock.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;OK&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F55dado53d3ak7lcqimc1.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F55dado53d3ak7lcqimc1.png" alt="Screenshot of us adding a lock to the VM." width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add tags to network resources.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual networks&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vnet&lt;/code&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkyf09pes6m932m949cm.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkyf09pes6m932m949cm.png" alt="Screenshot of the Vnet." width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;From the menu pane, select &lt;strong&gt;Tags&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 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;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the &lt;strong&gt;Name&lt;/strong&gt; select &lt;strong&gt;Department&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the &lt;strong&gt;Value&lt;/strong&gt; enter &lt;code&gt;IT&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Apply&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ov14bft10c8fj8qdf11.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ov14bft10c8fj8qdf11.png" alt="Screenshot of us adding a tag to the VNet." width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You've successfully improved protection and governance of your resources by adding tags (for grouping and organizing) and locks (for protection against unauthorized access and deletion). Now let's move on to the last part of this series, where we learn how to remove all resources to avoid unexpected cost.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Azure Management Tasks #Part 4: How Manage the Storage Account</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Mon, 22 Jun 2026 18:50:27 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-4-how-manage-the-storage-account-2ho7</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-4-how-manage-the-storage-account-2ho7</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Create a storage container, upload a file to it, and change the access tier.&lt;/li&gt;
&lt;li&gt;Step 2: Create a file share.&lt;/li&gt;
&lt;li&gt;Step 3: Create a shared access signature token.&lt;/li&gt;
&lt;li&gt;Step 4: Rotate access keys.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this part of the series, we will complete several tasks like creating a container, creating a file share, uploading files, and managing the access using tokens. These tasks are for managing the storage account and its components. &lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully complete the tasks in this project, you need to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;Login&lt;/a&gt; to Microsoft Azure portal.&lt;/li&gt;
&lt;li&gt;Complete the previous articles in the series.&lt;/li&gt;
&lt;li&gt;Basic understanding of storage accounts.
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a storage container, upload a file to it, and change the access tier.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;storage accounts&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;storage accounts&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the storage account you created in the &lt;strong&gt;Prepare&lt;/strong&gt; exercise. The storage account &lt;strong&gt;name&lt;/strong&gt; is the hyperlink to the storage account. Remember, it should be associated with the &lt;code&gt;management-tasks-rg&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyv2ktb6a4p61uz43tm4x.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyv2ktb6a4p61uz43tm4x.png" alt="Screenshot of the storage account." width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the storage account blade, under the &lt;strong&gt;Data storage&lt;/strong&gt; submenu, select &lt;strong&gt;Containers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Add container&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Name&lt;/strong&gt; field, enter &lt;code&gt;storage-container&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffue4xf0ampfp0v1jw76f.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffue4xf0ampfp0v1jw76f.png" alt="Screenshot of creating a container." width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the storage container you just created.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Upload&lt;/strong&gt; and upload the file you prepared.&lt;/li&gt;
&lt;li&gt;Once the file is ready for upload, select &lt;strong&gt;Upload&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2z6f803ghevsaqt9le6i.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2z6f803ghevsaqt9le6i.png" alt="Screenshot of uploading to the container." width="800" height="355"&gt;&lt;/a&gt;&lt;/p&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 &lt;strong&gt;Change tier&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxve4suu5hkq3gehpgo2n.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxve4suu5hkq3gehpgo2n.png" alt="Screenshot 1 of changing access tier." width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Cold&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Save&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgjeveoczm8c3ogxer4d7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgjeveoczm8c3ogxer4d7.png" alt="Screenshot 2 of changing access tier." width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 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;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create a file share.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reopen the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the storage account blade, under the &lt;strong&gt;Data storage&lt;/strong&gt; submenu, select &lt;strong&gt;File shares&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;+ File share&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; its ok to select classic file share if that is what pops up for you.&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9vnmyu74a9i0s6i0vxk8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9vnmyu74a9i0s6i0vxk8.png" alt="Screenshot of creating a file share." width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the &lt;strong&gt;Basics&lt;/strong&gt; tab in the name field, enter &lt;code&gt;file-share&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4fdesi2fyhxm2i3ntnr1.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4fdesi2fyhxm2i3ntnr1.png" alt="Screenshot of configuring a file share." width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the &lt;strong&gt;Backup&lt;/strong&gt; tab, uncheck &lt;strong&gt;Enable backup&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmyj3as8tv4oghpxkbn63.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmyj3as8tv4oghpxkbn63.png" alt="Screenshot of configuring a file share." width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw2joqvnl20de7qv6hg8q.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw2joqvnl20de7qv6hg8q.png" alt="Screenshot of creating the file share." width="799" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the file share is created, select &lt;strong&gt;Upload&lt;/strong&gt;.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fukhqwghtb72qenyrelmi.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fukhqwghtb72qenyrelmi.png" alt="Screenshot of an upload to the file share." width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

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




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create a shared access signature token.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reopen the &lt;strong&gt;storage account&lt;/strong&gt; you created in the &lt;strong&gt;Prepare&lt;/strong&gt; exercise.&lt;/li&gt;
&lt;li&gt;On the storage account blade, select &lt;strong&gt;Storage browser&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expand &lt;strong&gt;Blob containers&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Blob container is another name for the storage containers. Items uploaded to a storage container are called blobs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the storage container you created earlier, &lt;strong&gt;storage-container&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the ellipses (three dots) on the end of the line for the image you uploaded or just right-click on it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Generate SAS&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 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;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set &lt;strong&gt;Signing method&lt;/strong&gt; to &lt;strong&gt;Account key&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set &lt;strong&gt;Signing key&lt;/strong&gt; to &lt;strong&gt;Key 1&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; There are two signing keys available. You can choose either one, or create SAS tokens with different durations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set &lt;strong&gt;Stored access policy&lt;/strong&gt; to &lt;strong&gt;None&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set &lt;strong&gt;Permissions&lt;/strong&gt; to &lt;strong&gt;Read&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter a custom start and expiry time or leave the defaults.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn6lyrxoor0ts5h39t0mr.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn6lyrxoor0ts5h39t0mr.png" alt="Screenshot 1 of creating an SAS token." width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set &lt;strong&gt;Allowed protocols&lt;/strong&gt; to &lt;strong&gt;HTTPS only&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Generate SAS token and URL&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F745557s6f4w66g21exch.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F745557s6f4w66g21exch.png" alt="Screenshot 2 of creating an SAS token." width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the &lt;strong&gt;Blob SAS URL&lt;/strong&gt; 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;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3yc6xiodrv1vhspw6rb0.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3yc6xiodrv1vhspw6rb0.png" alt="Screenshot of Blob SAS URL." width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; **Tip:** You can configure SAS tokens for files shares and blob containers using the same process.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Rotate access keys.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reopen the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Expand the &lt;strong&gt;Security + networking&lt;/strong&gt; submenu.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Access keys&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For Key 1, select &lt;strong&gt;Rotate key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Read and then acknowledge the warning about regenerating the access key by selecting &lt;strong&gt;Yes&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fq79ccqwa9gb3537dk9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fq79ccqwa9gb3537dk9.png" alt="Screenshot of resetting access keys." width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once you see the success message for rotating the access key, go back to the window or tab you used to check the SAS token and refresh the page. You should receive an authentication failed error.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzotf3lcesjqj1w3fibzu.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzotf3lcesjqj1w3fibzu.png" alt="Screenshot of the error." width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You’ve successfully carried out tasks to manage the storage account. Now let's move on to the next part where we manage tags and locks.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>management</category>
    </item>
    <item>
      <title>Azure Management Tasks #Part 3: How Manage the Virtual Machine</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Mon, 22 Jun 2026 08:54:06 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-3-how-manage-the-virtual-machine-ih8</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-3-how-manage-the-virtual-machine-ih8</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Move the virtual machine network to the new subnet.&lt;/li&gt;
&lt;li&gt;Step 2: Vertically scale the virtual machine.&lt;/li&gt;
&lt;li&gt;Step 3: Attach data disks to a virtual machine.&lt;/li&gt;
&lt;li&gt;Step 4: Configure automatic shutdown on a virtual machine.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, we will be managing the virtual machine created in #Part 1. We will change the VM's assigned subnet to the new FTP subnet created while configuring our VNet in the previous part; we will also scale the VM vertically to increase the computing power, add storage, and lastly, add an automatic shutdown to it. It is important to follow the series sequentially.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully complete the tasks in this project, you need to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;Login&lt;/a&gt; to Microsoft Azure portal.&lt;/li&gt;
&lt;li&gt;Complete the previous articles in the series.&lt;/li&gt;
&lt;li&gt;Basic understanding of virtual machines.
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: 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 &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vm&lt;/code&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F39pykpbn8f207usi96pf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F39pykpbn8f207usi96pf.png" alt="Select the VM." width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If the virtual machine is running, select &lt;strong&gt;Stop&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In order to make some configuration changes, such as changing the subnet, the VM will need to be restarted. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for the &lt;strong&gt;Status&lt;/strong&gt; field to update and show &lt;strong&gt;Stopped (deallocated)&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6jhpspf9p1imkvwigv8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6jhpspf9p1imkvwigv8.png" alt="Stop the VM." width="799" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Within the &lt;strong&gt;Networking&lt;/strong&gt; subsection of the menu, select &lt;strong&gt;Network settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Network interface / IP configuration&lt;/strong&gt; hyperlink for the VM.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2ieridru12ewcwm6jue3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2ieridru12ewcwm6jue3.png" alt="Select the hyperlink." width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the &lt;strong&gt;IP Configurations&lt;/strong&gt; page, update the &lt;strong&gt;Subnet&lt;/strong&gt; to &lt;em&gt;ftpSubnet&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx8wz71t42swevgkzgpdh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx8wz71t42swevgkzgpdh.png" alt="Update the subnet." width="799" height="431"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Vertically scale the virtual machine.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vm&lt;/code&gt; virtual machine.&lt;/li&gt;
&lt;li&gt;Locate the &lt;strong&gt;Availability + scale&lt;/strong&gt; submenu and select &lt;strong&gt;Size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a new VM size &lt;strong&gt;D2s_v5&lt;/strong&gt; for example. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you don’t see the same size as shown in this tutorial, select something similar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Resize&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home page.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk3ecq8dvug18924d9lxq.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk3ecq8dvug18924d9lxq.png" alt="Scale the VM vertically." width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Attach data disks to a virtual machine.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vm&lt;/code&gt; virtual machine.&lt;/li&gt;
&lt;li&gt;Locate the &lt;strong&gt;settings&lt;/strong&gt; submenu and select &lt;strong&gt;Disks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create and attach a new disk&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Leave LUN as default.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;ftp-data-disk&lt;/code&gt; for the &lt;strong&gt;Disk name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Leave the Storage type as default.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;20&lt;/code&gt; for the &lt;strong&gt;Size&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt; to create the new storage disk and attach the disk to the machine.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhmnmfwr7qz21eumcuajl.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhmnmfwr7qz21eumcuajl.png" alt="Add storage to the VM." width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Configure automatic shutdown on a virtual machine.
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If your save button does'nt appear go back to the overview page and start the VM. Now go back to your auto-shutdown configuration the save button will appear after that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home page.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkfypid7bs7oe6i5r9an.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkfypid7bs7oe6i5r9an.png" alt="Configure automatic shutdown on the VM." width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Good job making it this far; you successfully configured the virtual machine by adding the new FTP subnet created, scaled the VM vertically, added a disk for more storage, and added an automatic shutdown. Let's move on to the next part of the series where we manage the storage account.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>virtualmachine</category>
    </item>
    <item>
      <title>Azure Management Tasks #Part 2: How to configure the virtual network (VNET)</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sat, 20 Jun 2026 19:21:47 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-2-how-to-configure-the-virtual-network-vnet-2c88</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-2-how-to-configure-the-virtual-network-vnet-2c88</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Create a new subnet on an existing virtual network (vNet).&lt;/li&gt;
&lt;li&gt;Step 2: Create a network security group.&lt;/li&gt;
&lt;li&gt;Step 3: Create an inbound security rule.&lt;/li&gt;
&lt;li&gt;Step 4: Associate a network security group to the subnet.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In the previous part of this series, we prepared our environment for Azure management tasks by creating a resource group, a virtual network, a virtual machine, and a storage account. If you have not done that, please refer back to &lt;a href="https://dev.to/tjasper/azure-management-tasks-part-1-how-to-prepare-your-environment-4f5b"&gt;#Part 1&lt;/a&gt; of the series before moving on.&lt;/p&gt;

&lt;p&gt;In this article we would be creating a new subnet for SFTP (secure file transfer protocol) traffic in the existing virtual network. We would also create a network security group to manage inbound and outbound access.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully complete the tasks in this project, you need to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;Login&lt;/a&gt; to Microsoft Azure portal.&lt;/li&gt;
&lt;li&gt;Complete the tasks in the previous article.&lt;/li&gt;
&lt;li&gt;Basic understanding of virtual networks and subnets.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a new subnet on an existing virtual network (vNet).
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual networks&lt;/strong&gt; 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flse2t1f87cvelit1xffm.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flse2t1f87cvelit1xffm.png" alt="Search for and select virtual network." width="724" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vnet&lt;/code&gt;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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Focaxhvt80m3jvp7dltnr.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Focaxhvt80m3jvp7dltnr.png" alt="Select your Vnet." width="799" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the &lt;code&gt;management-tasks-vnet&lt;/code&gt;blade, under settings, select &lt;strong&gt;Subnets&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;To add a subnet, select &lt;strong&gt;+ Subnet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Subnet purpose&lt;/strong&gt; leave it as &lt;strong&gt;Default&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Name&lt;/strong&gt; enter: &lt;code&gt;ftpSubnet&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Leave the rest of the settings alone and select &lt;strong&gt;Add&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdgetbwfv0z3cqeakgp7o.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdgetbwfv0z3cqeakgp7o.png" alt="Create a new subnet." width="799" height="326"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create a network security group.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual networks&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Network security groups&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd2vvemx9zbbzudgnapnf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd2vvemx9zbbzudgnapnf.png" alt="creating NSG." width="799" height="505"&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;code&gt;management-tasks-rg&lt;/code&gt; resource group.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;ftpNSG&lt;/code&gt; for the network security group name.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzhps8puiupcqhos6l4v.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhzhps8puiupcqhos6l4v.png" alt="Review NSG configurations." width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the validation is complete, select &lt;strong&gt;Create&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9c6icy3zprcuvkq7081e.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9c6icy3zprcuvkq7081e.png" alt="Confirm creation." width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the screen to refresh and display &lt;strong&gt;Your deployment is complete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Go to resource&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcctr9xx8r5k9blhb9jnt.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcctr9xx8r5k9blhb9jnt.png" alt="Go to the resource." width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create an inbound security rule.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Under &lt;strong&gt;settings&lt;/strong&gt;, select &lt;strong&gt;Inbound security rules&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Add&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Change the &lt;strong&gt;Destination port ranges&lt;/strong&gt; from 8080 to &lt;code&gt;22&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;TCP&lt;/strong&gt; for the protocol.&lt;/li&gt;
&lt;li&gt;Set the name to &lt;code&gt;ftpInbound&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8yhn67dnjl8juwsx1g49.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8yhn67dnjl8juwsx1g49.png" alt="Create an inbound security rule." width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Associate a network security group to the subnet.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual networks&lt;/strong&gt; under services.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;management-tasks-vnet&lt;/code&gt;virtual network.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;settings&lt;/strong&gt;, select &lt;strong&gt;Subnets&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;ftpSubnet&lt;/code&gt; 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 &lt;code&gt;ftpNSG&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Save&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpza43a1rdpjphv2wvbij.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpza43a1rdpjphv2wvbij.png" alt="Associate the NSG to the subnet." width="799" height="362"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! you have successfully completed configuring your virtual network for Azure management tasks by creating a subnet for SFTP traffic and setting up an NSG (network security group) to control the incoming traffic and security. Now let us move to the next part of the series, where we manage our VM (virtual machine). &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>cloud</category>
      <category>azure</category>
      <category>networking</category>
    </item>
    <item>
      <title>Azure Management Tasks #Part 1: How to Prepare Your Environment</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Tue, 16 Jun 2026 20:17:42 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-management-tasks-part-1-how-to-prepare-your-environment-4f5b</link>
      <guid>https://dev.to/tjasper/azure-management-tasks-part-1-how-to-prepare-your-environment-4f5b</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Create a resource group.&lt;/li&gt;
&lt;li&gt;Step 2: Create a virtual network with one subnet.&lt;/li&gt;
&lt;li&gt;Step 3: Create a virtual machine.&lt;/li&gt;
&lt;li&gt;Step 4: Create a storage account.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What are Azure Management Tasks?&lt;/strong&gt; These are daily administrative and management activities used to deploy, monitor, secure, maintain, optimize, and govern Azure resources. They ensure resources are available, secure, cost-efficient, and compliant all through their lifecycle.&lt;/p&gt;

&lt;p&gt;In this article we would prepare our environment for management tasks by deploying Azure compute, networking, and storage resources using the Microsoft Azure portal.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;To easily complete this project you need&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of &lt;a href="https://dev.to/tjasper/key-concepts-in-cloud-computing-a-beginners-guide-16pg"&gt;cloud computing&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Basic knowledge on creating virtual machines (VMs), virtual networks (VNETs), and storage accounts.&lt;/li&gt;
&lt;li&gt;A &lt;a href="https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account?icid=dotnet" rel="noopener noreferrer"&gt;Microsoft Azure account&lt;/a&gt; and subscription.&lt;/li&gt;
&lt;li&gt;Take note of all the resources already available to avoid deletion during cleanup.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;resource groups&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Resource groups&lt;/strong&gt; 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%2F70exht8jdufpegcmgsdy.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%2F70exht8jdufpegcmgsdy.png" alt="Create a resource group" width="724" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2F7wxip3pvi14ea5fjg2ff.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%2F7wxip3pvi14ea5fjg2ff.png" alt="Click + Create" width="487" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter &lt;code&gt;management-tasks-rg&lt;/code&gt; in the Resource group name field.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Region&lt;/strong&gt; field will automatically populate. Leave the default value.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&lt;/strong&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%2Foxsznqadvxqr8qu7mdcf.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%2Foxsznqadvxqr8qu7mdcf.png" alt="Configure the RG." width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2F1c86bre2w5zrunn2tmaa.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%2F1c86bre2w5zrunn2tmaa.png" alt="Select create." width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to the home page of the Azure portal by selecting &lt;strong&gt;Home&lt;/strong&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%2Faejdy8b0kn76egao0opg.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%2Faejdy8b0kn76egao0opg.png" alt="Go back to the home page." width="513" height="285"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: 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 &lt;strong&gt;virtual networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual networks&lt;/strong&gt; 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%2F3a3qr9t1wbfpw6gmrao2.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%2F3a3qr9t1wbfpw6gmrao2.png" alt="Search and select virtual networks" width="725" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2Fm7e4kjz9uwy6ybslu0j3.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%2Fm7e4kjz9uwy6ybslu0j3.png" alt="Select + create." width="501" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scroll down to the &lt;strong&gt;Instance details&lt;/strong&gt; section and enter &lt;code&gt;management-tasks-vnet&lt;/code&gt; for the Virtual network name.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&lt;/strong&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%2Fukfi74jw0rntwq4a4q64.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%2Fukfi74jw0rntwq4a4q64.png" alt="Give the VNET a name." width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Wait for the screen to refresh and show &lt;strong&gt;Your deployment is complete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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%2Fnbiii9b5pf5hs5k5gueg.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%2Fnbiii9b5pf5hs5k5gueg.png" alt="Complete deployment and go back to home page." width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create a virtual machine.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;virtual machines&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;virtual machines&lt;/strong&gt; 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%2Funu9i6rdl4wdug1xwvkd.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%2Funu9i6rdl4wdug1xwvkd.png" alt="Search and select Virtual machines." width="709" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; and then select &lt;strong&gt;Virtual machine&lt;/strong&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%2Fryzo1mlfebqh4kgrd639.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%2Fryzo1mlfebqh4kgrd639.png" alt="Select create and then VM." width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;code&gt;management-tasks-rg&lt;/code&gt; for the &lt;strong&gt;Resource group&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;management-tasks-vm&lt;/code&gt; for the &lt;strong&gt;Virtual machine name&lt;/strong&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%2Fdtlldizrxqshus16pb3c.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%2Fdtlldizrxqshus16pb3c.png" alt="RG and VM name." width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For the &lt;strong&gt;Image&lt;/strong&gt;, select one of the &lt;strong&gt;Ubuntu Server&lt;/strong&gt; options. (For example, Ubuntu Server 24.04 LTS - x64 Gen2)&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%2Fszxx4vl7rrxibsx9kz01.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%2Fszxx4vl7rrxibsx9kz01.png" alt="Select image." width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continue further on the &lt;strong&gt;Basics&lt;/strong&gt; page to the &lt;strong&gt;Administrator account&lt;/strong&gt; section.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Password&lt;/strong&gt; for authentication type.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;management-tasks-admin&lt;/code&gt; for the admin &lt;strong&gt;Username&lt;/strong&gt;.&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 &lt;strong&gt;Review + create&lt;/strong&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%2Fm23daozf56r5tzywtqjd.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%2Fm23daozf56r5tzywtqjd.png" alt="Configure the VM." width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; 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%2Fmvmopja7u7vjjrm2jq2d.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%2Fmvmopja7u7vjjrm2jq2d.png" alt="Select create." width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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%2Fez651hxnwp8aeec2v71i.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%2Fez651hxnwp8aeec2v71i.png" alt="Return to the home page." width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Create a Storage account.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure portal home page, in the search box, enter &lt;strong&gt;storage accounts&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Storage accounts&lt;/strong&gt; 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%2Fozt7iqqvutudgc1p7cv5.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%2Fozt7iqqvutudgc1p7cv5.png" alt="Storage account." width="713" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2F5xs2r9gox5apoclfoag2.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%2F5xs2r9gox5apoclfoag2.png" alt="Select + create." width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scroll down to the Instance details section and enter a &lt;strong&gt;name&lt;/strong&gt; 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;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&lt;/strong&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%2Fyubqyifs2vofcdce0ptw.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%2Fyubqyifs2vofcdce0ptw.png" alt="Configure the storage account." width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2F9nlkojl7hpww1phdkg7y.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%2F9nlkojl7hpww1phdkg7y.png" alt="Select create." width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the screen to refresh and show &lt;strong&gt;Your deployment is complete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Home&lt;/strong&gt; to return to the Azure portal home 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%2F1az1r3ms5xxxwa83ltg0.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%2F1az1r3ms5xxxwa83ltg0.png" alt="Return to home page." width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You’ve completed the preparation of the Microsoft Azure environment for management tasks. We successfully deployed the compute (virtual machine), the networking (virtual network), and the storage (storage account) Azure resources. Now we can move to the next part where we learn how to configure the virtual network (VNET).&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>microsoft</category>
      <category>azure</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Build a Linux Virtual Machine with Microsoft Azure &amp; Install Nginx on it</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Tue, 19 May 2026 16:23:38 +0000</pubDate>
      <link>https://dev.to/tjasper/how-to-build-a-linux-virtual-machine-with-microsoft-azure-install-nginx-on-it-1mac</link>
      <guid>https://dev.to/tjasper/how-to-build-a-linux-virtual-machine-with-microsoft-azure-install-nginx-on-it-1mac</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Create the Linux VM on Azure.&lt;/li&gt;
&lt;li&gt;Step 2: Configure the Idle timeout.&lt;/li&gt;
&lt;li&gt;Step 3: Access the Linux Virtual machine with a terminal.&lt;/li&gt;
&lt;li&gt;Step 4: Install Nginx on a Linux Server.&lt;/li&gt;
&lt;li&gt;Step 5: Test Nginx Installation.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is Linux?&lt;/strong&gt; This is an open-source operating system (OS) for managing hardware and software on computers. It is free, customizable, and highly secured; it was created by Linus Torvalds in 1991 and powers the Android OS. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Nginx?&lt;/strong&gt; It is a free, popular open-source web server software (usually pronounced as "engine-x") used for load balancing, media streaming (audio, video, and images), reverse proxy, and caching.&lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully carry out this project, you will need the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An Azure account with an active subscription. &lt;a href="https://azure.microsoft.com/en-us/get-started/azure-portal" rel="noopener noreferrer"&gt;Login/Sign-up&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A terminal on your Mac, Windows, Linux, or even VS Code. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that we understand these tools and have all we need, let's get right into deploying them. &lt;/p&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create the Linux VM on Azure.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Virtual machines&lt;/strong&gt; in your Azure 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%2Fwszs6nnuyhfuej7r4yzr.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%2Fwszs6nnuyhfuej7r4yzr.png" alt="Search and select" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;+ Create&lt;/strong&gt; and select &lt;strong&gt;"Virtual machine&lt;/strong&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%2F3vicyxufse60eii6t2s5.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%2F3vicyxufse60eii6t2s5.png" alt=" " width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For &lt;strong&gt;Resource group&lt;/strong&gt; select &lt;strong&gt;Create new&lt;/strong&gt;. Give your resource group a &lt;strong&gt;name&lt;/strong&gt; and select &lt;strong&gt;OK&lt;/strong&gt; to save your changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the virtual machine a &lt;strong&gt;name&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select a &lt;strong&gt;Region&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the preferable &lt;strong&gt;Availability options&lt;/strong&gt; and &lt;strong&gt;Security type&lt;/strong&gt;; for the sake of this tutorial, we will be picking the lowest of each to save cost.&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%2Fygliwk0cuzm144vxi0a1.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%2Fygliwk0cuzm144vxi0a1.png" alt="Process" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Image&lt;/strong&gt; as &lt;strong&gt;Ubuntu Pro 24.04 LTS - x64 Gen2&lt;/strong&gt; or any other Linux image.&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;Run with Azure Spot discount&lt;/strong&gt; box to minimize cost.&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%2Fluksiba2lyiihg15t4d9.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%2Fluksiba2lyiihg15t4d9.png" alt="Process" width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scroll down to the &lt;strong&gt;Administrator account&lt;/strong&gt; section and select &lt;strong&gt;Password&lt;/strong&gt; for the &lt;strong&gt;Authentication type&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Give it a &lt;strong&gt;Username&lt;/strong&gt; and &lt;strong&gt;Password&lt;/strong&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%2Fn8074upok0qwt8g1vonv.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%2Fn8074upok0qwt8g1vonv.png" alt="Administrator account" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;HTTP&lt;/strong&gt; and &lt;strong&gt;SSH&lt;/strong&gt; in the &lt;strong&gt;Select Inbound Ports&lt;/strong&gt; dropdown. This allows IP addresses to connect to the Linux VM.&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%2Fms0h9fk5gsf66x1wc6ok.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%2Fms0h9fk5gsf66x1wc6ok.png" alt="Select Inbound Ports" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; until you reach the &lt;strong&gt;Monitoring&lt;/strong&gt; tab, click on Disable under the &lt;strong&gt;Boot diagnostics&lt;/strong&gt;, and then click &lt;strong&gt;Review + Create&lt;/strong&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%2F35p9g3cjrwcvw5xzzs1w.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%2F35p9g3cjrwcvw5xzzs1w.png" alt="Disable boot diagnostics" width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the Create button. If the validation passes, the deployment will proceed. If not, note any recommendations, fix them, and try again. Deployment might take 3-5 minutes.&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%2F1o4zek6togeyniq79nrw.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%2F1o4zek6togeyniq79nrw.png" alt="Create" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Go to resource&lt;/strong&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%2Fwc3uy199pyznaps8e8n0.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%2Fwc3uy199pyznaps8e8n0.png" alt="Go to the resource." width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure the Idle timeout and confirm access
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Now the VM is opened. Navigate to &lt;strong&gt;Configuration&lt;/strong&gt; under &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Locate &lt;strong&gt;Idle timeout (minutes)&lt;/strong&gt; increase to 30 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply&lt;/strong&gt; 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%2Fnnmk1jozdory7ogbzhcy.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%2Fnnmk1jozdory7ogbzhcy.png" alt="Configure the Idle timeout" width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Connect&lt;/strong&gt; button in the Overview of the virtual machine blade in the Azure portal.&lt;/li&gt;
&lt;li&gt;Confirm access by clicking &lt;strong&gt;Check access&lt;/strong&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%2Fjkqieqrq05f6hrz1byaj.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%2Fjkqieqrq05f6hrz1byaj.png" alt="Check access" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Access the Linux VM with a terminal.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open a terminal and connect to your VM using SSH command format:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh &amp;lt;username&amp;gt;@&amp;lt;Public-IP-Address&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Or &lt;strong&gt;Copy&lt;/strong&gt; directly from the Azure portal and paste in &lt;strong&gt;terminal&lt;/strong&gt;. For this tutorial we would be using the Windows command prompt.&lt;/li&gt;
&lt;li&gt;Enter &lt;strong&gt;yes&lt;/strong&gt; and then your &lt;strong&gt;password&lt;/strong&gt; (not visible while typing in Linux).&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%2Feqfp5eww569nwkgurkhj.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%2Feqfp5eww569nwkgurkhj.png" alt="SSH command" width="800" height="479"&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%2Fs1okqvy33o95mdid608z.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%2Fs1okqvy33o95mdid608z.png" alt="Windows command prompt" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure that you are logged in as root; use the command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fcd2pvvx65ufc686gg3ao.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%2Fcd2pvvx65ufc686gg3ao.png" alt="Log in as root." width="512" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update the Linux package list with the command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt update 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgzbu40okedk97i2ie4cd.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%2Fgzbu40okedk97i2ie4cd.png" alt="Update the Linux package list." width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Install Nginx on a Linux Server.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To install Nginx, just enter the command &lt;code&gt;apt&lt;/code&gt; (which is the package manager of Linux), &lt;code&gt;install&lt;/code&gt; (this is a verb and the action that you want the package manager to perform), and &lt;code&gt;nginx&lt;/code&gt; (this is what you want to install on the VM).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt install nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Flx68t2ceobnvcv65c2sz.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%2Flx68t2ceobnvcv65c2sz.png" alt="Install Nginx." width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Test Nginx Installation.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Now that you have successfully installed Nginx, test it by putting the &lt;strong&gt;IP address&lt;/strong&gt; of the VM into a browser.&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%2Fpcmkwphdjagjwl43yjxh.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%2Fpcmkwphdjagjwl43yjxh.png" alt="Test Nginx installation." width="799" height="394"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By following these steps, you’ve successfully created a Linux VM in Azure and installed NGINX. This setup is ready to serve web traffic and can be scaled based on your requirements. You can now begin deploying web applications or customizing NGINX as needed.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open, and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>linux</category>
      <category>azure</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to create a Microsoft Azure storage account for securing private data and file backup</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Thu, 14 May 2026 18:13:18 +0000</pubDate>
      <link>https://dev.to/tjasper/how-to-create-a-microsoft-azure-storage-account-for-securing-private-data-and-file-backup-3ol5</link>
      <guid>https://dev.to/tjasper/how-to-create-a-microsoft-azure-storage-account-for-securing-private-data-and-file-backup-3ol5</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Step 1: Create a storage account for private data.&lt;/li&gt;
&lt;li&gt;Step 2: Configure redundancy for the storage account.&lt;/li&gt;
&lt;li&gt;Step 3: Create a storage container with restricted access &amp;amp; upload to test it.&lt;/li&gt;
&lt;li&gt;Step 4: Configure a shared access signature for partners.&lt;/li&gt;
&lt;li&gt;Step 5: Implement lifecycle management to move content to the cool tier.&lt;/li&gt;
&lt;li&gt;Step 6: Back up the public website storage.&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you are a person or an organization that handles sensitive files in the cloud you need to have data security and a reliable backup solution. Microsoft Azure provides a secure and scalable platform through Azure Storage Accounts, allowing users to safely store private data, manage access permissions, and protect files against accidental loss or system failure. &lt;/p&gt;

&lt;p&gt;In this article, we will learn how to create an Azure storage account for private data, configure redundancy, create a restricted storage container, generate a shared access signature (SAS) for partners, implement lifecycle management to move files to the cool tier, and back up public website storage for improved data protection and recovery.&lt;/p&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a storage account for private data.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts&lt;/strong&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%2Fnd6vgs3rwe232bean6tt.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%2Fnd6vgs3rwe232bean6tt.png" alt="Storage accounts" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2Fvleb2fhsuabnrfn973lj.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%2Fvleb2fhsuabnrfn973lj.png" alt="+ Create" width="564" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;strong&gt;Resource group&lt;/strong&gt; created in the previous lab.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Storage account name&lt;/strong&gt; to &lt;code&gt;private&lt;/code&gt;. Add an identifier to the name to ensure the name is unique.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt;, and then &lt;strong&gt;Create&lt;/strong&gt; 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%2Fwjgm0f1egdecgf4uahjg.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%2Fwjgm0f1egdecgf4uahjg.png" alt="Review &amp;amp; Create" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select &lt;strong&gt;Go to resource&lt;/strong&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%2F71b8c80fd8doh0f4cvah.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%2F71b8c80fd8doh0f4cvah.png" alt="Go to resource" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure redundancy for the storage account.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Geo-redundant storage (GRS)&lt;/strong&gt; is selected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save&lt;/strong&gt; your changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refresh&lt;/strong&gt; the page.&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%2Fm0rerx73z59ji2dbjz43.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%2Fm0rerx73z59ji2dbjz43.png" alt="High availability" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create a storage container with restricted access &amp;amp; upload to test it.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Container&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Name&lt;/strong&gt; of the container is &lt;code&gt;private&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Public access level&lt;/strong&gt; is &lt;strong&gt;Private (no anonymous access)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;As you have time, review the &lt;strong&gt;Advanced&lt;/strong&gt; settings, but take the defaults.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2Fgp57x654jtf8no512spa.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%2Fgp57x654jtf8no512spa.png" alt="Storage container" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select 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%2Fb5lc4oma2two7dycf3vy.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%2Fb5lc4oma2two7dycf3vy.png" alt="Open" width="650" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Upload&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse to files&lt;/strong&gt; and select a file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; the file.&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%2Fhe4fvraaor00k0r3x03s.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%2Fhe4fvraaor00k0r3x03s.png" alt="Upload" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the uploaded file.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; tab, copy the &lt;strong&gt;URL&lt;/strong&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%2F5clpbiri9511k94c66c3.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%2F5clpbiri9511k94c66c3.png" alt="copy the URL" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paste the &lt;strong&gt;URL&lt;/strong&gt; into a new browser tab.&lt;/li&gt;
&lt;li&gt;Verify the file doesn’t display and you receive an error.&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%2F40ohzako2v7pftx20vgw.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%2F40ohzako2v7pftx20vgw.png" alt="file doesn’t display" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Configure a shared access signature for partners.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Select your uploaded blob file and move to the &lt;strong&gt;Generate SAS&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Permissions&lt;/strong&gt; drop-down, ensure the partner has only &lt;strong&gt;Read&lt;/strong&gt; permissions.&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%2F0waxe1l7oxvihhjb41gs.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%2F0waxe1l7oxvihhjb41gs.png" alt="SAS permission" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the &lt;strong&gt;Start and expiry date/time&lt;/strong&gt; is for the next 24 hours.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Generate SAS token and URL&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Blob SAS URL&lt;/strong&gt; to a new browser tab.&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%2Fm99zvz5irrdmetq0kf9j.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%2Fm99zvz5irrdmetq0kf9j.png" alt="Blob SAS URL" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&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;/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%2Fn1n1w3cpbr9vz853c1hg.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%2Fn1n1w3cpbr9vz853c1hg.png" alt="Verify" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Implement lifecycle management to move content to the cool tier.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Return to the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Overview&lt;/strong&gt; section, notice the &lt;strong&gt;Default access tier&lt;/strong&gt; is set to &lt;strong&gt;Hot&lt;/strong&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%2Fa9n95vrl7ythj9ytf825.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%2Fa9n95vrl7ythj9ytf825.png" alt="Notice" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Lifecycle management&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add rule&lt;/strong&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%2Foulxq55y8i0o9wdq9r7q.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%2Foulxq55y8i0o9wdq9r7q.png" alt="Add rule" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the &lt;strong&gt;Rule name&lt;/strong&gt; to &lt;code&gt;movetocool&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Rule scope&lt;/strong&gt; to &lt;strong&gt;Apply rule to all blobs in the storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Next&lt;/strong&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%2Fji610otn9rq03qysl8ae.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%2Fji610otn9rq03qysl8ae.png" alt="Apply rule" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure &lt;strong&gt;Last modified&lt;/strong&gt; is selected.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;More than (days ago)&lt;/strong&gt; to &lt;strong&gt;30&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Then&lt;/strong&gt; drop-down, select &lt;strong&gt;Move to cool storage&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;As you have time, review other lifecycle options in the drop-down.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add&lt;/strong&gt; the rule.&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%2Fl3lucla1bu3qi92ubl4d.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%2Fl3lucla1bu3qi92ubl4d.png" alt="Add rule" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Back up the public website storage.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, &lt;strong&gt;create&lt;/strong&gt; a new container called &lt;code&gt;backup&lt;/code&gt;. Use the default values. Refer back to my article on "&lt;a href="https://dev.to/tjasper/deploying-blob-storage-for-a-public-website-on-azure-2ndn"&gt;Deploying Blob Storage for a Public website on Azure&lt;/a&gt;" for detailed instructions.&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%2Felwgij0qtx1eh5xas5r5.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%2Felwgij0qtx1eh5xas5r5.png" alt="Backup" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your &lt;strong&gt;publicwebsite&lt;/strong&gt; storage account. This storage account was created in the previous article on storage.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Object replication&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create replication rules&lt;/strong&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%2Fwra2eenmjv5zo0vl32gu.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%2Fwra2eenmjv5zo0vl32gu.png" alt="Create replication rules" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the &lt;strong&gt;Destination&lt;/strong&gt; storage account to the &lt;strong&gt;private&lt;/strong&gt; storage account.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Source&lt;/strong&gt; container to &lt;strong&gt;public&lt;/strong&gt; and the &lt;strong&gt;Destination&lt;/strong&gt; container to &lt;strong&gt;backup&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create&lt;/strong&gt; the replication rule.&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%2Frn960kk8ot8o49k8yvh9.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%2Frn960kk8ot8o49k8yvh9.png" alt="Destination" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&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;/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%2Fuczri2tt3wz5rcg83td4.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%2Fuczri2tt3wz5rcg83td4.png" alt="public container" width="800" height="343"&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%2Fw2hlsf9er3egawkcdwa4.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%2Fw2hlsf9er3egawkcdwa4.png" alt="Backup" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To summarize, Azure Storage Accounts are a secure and reliable way to protect private data and manage file backups in the cloud. You can improve data security, accessibility, and efficiency for long-term storage on Microsoft Azure by setting up redundancy, restricting access, utilizing shared access signatures, applying lifecycle management, and backing up website storage.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Build a Windows 11 Virtual Machine on Azure with me</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sun, 10 May 2026 11:20:16 +0000</pubDate>
      <link>https://dev.to/tjasper/build-a-windows-11-virtual-machine-on-azure-with-me-1mk1</link>
      <guid>https://dev.to/tjasper/build-a-windows-11-virtual-machine-on-azure-with-me-1mk1</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Create a resource group&lt;/li&gt;
&lt;li&gt;Step 2: Create the virtual machine&lt;/li&gt;
&lt;li&gt;Step 3: Configure the idle timeout&lt;/li&gt;
&lt;li&gt;Step 4: How to Associate &amp;amp; Dissociate Public IP addresses&lt;/li&gt;
&lt;li&gt;Step 5: Access the Windows 11 VM using RDP&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;What is a VM (virtual machine)? This is a software emulation of a computer that runs in isolation on its own operating system on a physical host computer. In simple words, it is a computer inside a computer, a virtual computer inside a physical one, typically with its own OS (operating system) (e.g., Linux, Windows, MacOS).&lt;/p&gt;

&lt;p&gt;In this tutorial, I will guide you in developing a fully functional Windows 11 VM using Azure and Remote Desktop Protocol (RDP) and also show you how to associate and disassociate public IP addresses. By the end of the tutorial, we would have created a cost-efficient Windows 11 VM to carry out tasks. &lt;/p&gt;




&lt;p&gt;&lt;a id="prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;To successfully carry out this project, you will need the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An Azure account with an active subscription. &lt;a href="https://azure.microsoft.com/en-us/get-started/azure-portal" rel="noopener noreferrer"&gt;Login/Sign-up&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RDP (Remote Desktop Protocol) to launch the VM on your computer. If you use a Mac, you can try downloading the Windows app or the AnyDesk app in the App Store.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's get right into the steps.&lt;/p&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a resource group
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Resource groups&lt;/strong&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%2Fecaserln66ft8rqa51lv.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%2Fecaserln66ft8rqa51lv.png" alt="RG" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2Fnyoofqdgucxmc2s6d45r.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%2Fnyoofqdgucxmc2s6d45r.png" alt="crg" width="543" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give your resource group a &lt;strong&gt;name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;region&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review and create&lt;/strong&gt; to validate the 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%2Fn8o0j676qdf5xxphadvd.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%2Fn8o0j676qdf5xxphadvd.png" alt="R&amp;amp;C" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; to deploy the 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%2F686j93d4f3clqcf43m0r.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%2F686j93d4f3clqcf43m0r.png" alt="create" width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create the virtual machine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Virtual machines&lt;/strong&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%2Fjluz91lcuzdgcln1655v.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%2Fjluz91lcuzdgcln1655v.png" alt="vm" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;+ Create&lt;/strong&gt; and select &lt;strong&gt;"Virtual machine&lt;/strong&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%2Fz7ni5f4ju71cu6o5yxbk.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%2Fz7ni5f4ju71cu6o5yxbk.png" alt="Vm" width="725" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;strong&gt;resource group&lt;/strong&gt; created earlier.&lt;/li&gt;
&lt;li&gt;Give the VM a &lt;strong&gt;name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Availability options&lt;/strong&gt; select &lt;strong&gt;No infrastructure redundancy required&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Windows 11 Pro&lt;/strong&gt; for the &lt;strong&gt;Image&lt;/strong&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%2F956bv4g4ertqf579nzi2.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%2F956bv4g4ertqf579nzi2.png" alt="creating VM" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the &lt;strong&gt;Run with Azure Spot discount&lt;/strong&gt; box.&lt;/li&gt;
&lt;li&gt;Navigate through to &lt;strong&gt;see all sizes&lt;/strong&gt; and select a size.&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%2Fswv4khb11omnpbim42ba.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%2Fswv4khb11omnpbim42ba.png" alt="creating VM" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set a &lt;strong&gt;Username&lt;/strong&gt; and a &lt;strong&gt;Password&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under inbound port check &lt;strong&gt;HTTP (80)&lt;/strong&gt; and notice &lt;strong&gt;RDP&lt;/strong&gt; is already checked.&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%2Fivosjsjs2d3b3l1f4n6r.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%2Fivosjsjs2d3b3l1f4n6r.png" alt="inbound port" width="800" height="549"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm &lt;strong&gt;licencing&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Review and create&lt;/strong&gt; If the validation passes, the deployment will proceed. If not, note any recommendations and fix them.&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%2Fgqsu0axb1ncrg9hqo3cw.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%2Fgqsu0axb1ncrg9hqo3cw.png" alt="Review" width="800" height="616"&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%2Fja8324v3vycwa79abczj.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%2Fja8324v3vycwa79abczj.png" alt="Create" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Go to resource&lt;/strong&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%2Fpjy2mrmjeakpnduwqs1j.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%2Fpjy2mrmjeakpnduwqs1j.png" alt="GTR" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Configure the Idle timeout
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open the VM&lt;/li&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Configuration&lt;/strong&gt; under &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Locate &lt;strong&gt;Idle timeout (minutes)&lt;/strong&gt; increase to 30 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply&lt;/strong&gt; 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%2F7mgads0a0x5aimmfq26a.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%2F7mgads0a0x5aimmfq26a.png" alt="Configure the Idle timeout" width="800" height="549"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: How to Associate &amp;amp; Dissociate Public IP addresses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Public IP addresses&lt;/strong&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%2Fhrirazq7y0yxepsl0lov.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%2Fhrirazq7y0yxepsl0lov.png" alt="Public IP addresses" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notice there is already an IP address set up for the VM and select it&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%2Fr7ui79qfkg6n2f237802.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%2Fr7ui79qfkg6n2f237802.png" alt="Public IP addresses" width="800" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To dissociate it, simply click on &lt;strong&gt;Dissociate&lt;/strong&gt; and select &lt;strong&gt;Yes&lt;/strong&gt; to confirm.&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%2F2hba9tuoladq8cdx6hy9.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%2F2hba9tuoladq8cdx6hy9.png" alt="Dissociate" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To associate, select &lt;strong&gt;Associate&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For the &lt;strong&gt;Resource type&lt;/strong&gt; select &lt;strong&gt;Network interface&lt;/strong&gt; then select the VM&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Ok&lt;/strong&gt; to apply 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%2F2bcp9eyyznashv20b6qn.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%2F2bcp9eyyznashv20b6qn.png" alt="Associate" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Access the Windows 11 VM using RDP
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Navigate back to the VM &lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;Connect&lt;/strong&gt; button in the Overview of the virtual machine blade in the Azure portal.&lt;/li&gt;
&lt;li&gt;Confirm access by clicking &lt;strong&gt;Check access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download RDP file&lt;/strong&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%2Fx9123jbw84dmdemvno9a.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%2Fx9123jbw84dmdemvno9a.png" alt="Connect" width="800" height="471"&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%2F3qdsht7v9sdfyu95ipbr.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%2F3qdsht7v9sdfyu95ipbr.png" alt="RDP file" width="331" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the RDP file and click &lt;strong&gt;connect&lt;/strong&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%2Fiu9udu7bdb0klzmhuz3h.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%2Fiu9udu7bdb0klzmhuz3h.png" alt="RDP file" width="542" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Put in the &lt;strong&gt;Password&lt;/strong&gt; set up earlier, then click &lt;strong&gt;Ok&lt;/strong&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%2Frn05pjpqe4dw9pndfw6l.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%2Frn05pjpqe4dw9pndfw6l.png" alt="Login" width="456" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Yes&lt;/strong&gt; to connect.&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%2F4pn4y6123dmebiefyigf.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%2F4pn4y6123dmebiefyigf.png" alt="connect" width="392" height="401"&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%2Fbt7qfgvr0o2oby3ngdki.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%2Fbt7qfgvr0o2oby3ngdki.png" alt="Admin page" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot it up just like a new computer.&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%2Fkyvfu3a43boja61bm7yb.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%2Fkyvfu3a43boja61bm7yb.png" alt="Boot up" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, we learned how to create a resource group, create and deploy a virtual machine, and associate and dissociate IP addresses. With these skills, you can successfully deploy a fully functional Windows 11 VM (virtual machine) for carrying out tasks, personal use, or even exploring more advanced features. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comments or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Deploying Blob Storage for a Public website on Azure</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sat, 02 May 2026 00:29:25 +0000</pubDate>
      <link>https://dev.to/tjasper/deploying-blob-storage-for-a-public-website-on-azure-2ndn</link>
      <guid>https://dev.to/tjasper/deploying-blob-storage-for-a-public-website-on-azure-2ndn</guid>
      <description>&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is Blob Storage?&lt;/li&gt;
&lt;li&gt;Create a storage account with high availability.&lt;/li&gt;
&lt;li&gt;Create a blob storage container with anonymous read access&lt;/li&gt;
&lt;li&gt;Practice uploading files and testing access.&lt;/li&gt;
&lt;li&gt;Configure soft delete&lt;/li&gt;
&lt;li&gt;Configure blob versioning&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Blob Storage?
&lt;/h2&gt;

&lt;p&gt;Blob Storage is a cloud storage solution used for storing large amount of unstructured data including text documents, emails, social media posts, multimedia (audio/video/images) &lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction" rel="noopener noreferrer"&gt;Learn more&lt;/a&gt;.  &lt;/p&gt;




&lt;p&gt;&lt;a id="create"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select &lt;strong&gt;Storage accounts&lt;/strong&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%2F21wxmfx934rii9zcrhbz.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%2F21wxmfx934rii9zcrhbz.png" alt="Storage account" width="768" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2Fhqi88hb6j24whdkgfwmc.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%2Fhqi88hb6j24whdkgfwmc.png" alt="+create" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;resource group&lt;/strong&gt; select &lt;strong&gt;new&lt;/strong&gt;. Give your resource group a &lt;strong&gt;name&lt;/strong&gt; and select &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Storage account name&lt;/strong&gt; to &lt;code&gt;publicwebsite&lt;/code&gt;. Make sure the storage account name is unique by adding an identifier.&lt;/li&gt;
&lt;li&gt;Take the defaults for other settings.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&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%2F7slwx9g0zb3cmcch100j.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%2F7slwx9g0zb3cmcch100j.png" alt="Storage container" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy, and then select &lt;strong&gt;Go to resource&lt;/strong&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%2Fikignlhtlc2m2tuwec72.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%2Fikignlhtlc2m2tuwec72.png" alt="Go to resource" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Enable read access to the secondary region for high availability.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Read-access Geo-redundant storage&lt;/strong&gt; 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%2Fz0duxkygw2ulqr9mr58i.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%2Fz0duxkygw2ulqr9mr58i.png" alt="Back up" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 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 &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Allow blob anonymous access&lt;/strong&gt; setting is &lt;strong&gt;Enabled&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; 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%2Fxmbgwgwdloplvhkmnbi3.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%2Fxmbgwgwdloplvhkmnbi3.png" alt="Blob access" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="blob"&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;
  
  
  Step 1: The public website has various images and documents. Create a blob storage container for the content.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Container&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Name&lt;/strong&gt; of the container is &lt;code&gt;public&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&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%2F03m08qdz0v5yxgve7kgf.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%2F03m08qdz0v5yxgve7kgf.png" alt="blob" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Customers should be able to view the images without being authenticated. Configure anonymous read access for the public container blobs.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select your &lt;strong&gt;public&lt;/strong&gt; container.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Overview&lt;/strong&gt; blade, select &lt;strong&gt;Change access level&lt;/strong&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%2Fn37n997uonvb4rqazxgn.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%2Fn37n997uonvb4rqazxgn.png" alt="Overview" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Public access level&lt;/strong&gt; is &lt;strong&gt;Blob (anonymous read access for blobs only)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;OK&lt;/strong&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%2Fjjzbuix4x62ktx675lfp.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%2Fjjzbuix4x62ktx675lfp.png" alt="Public access" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="uploading"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 1: For testing, upload a file to the &lt;code&gt;public&lt;/code&gt; 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 &lt;strong&gt;Upload&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse to files&lt;/strong&gt; and select a file. Browse to a file of your choice.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Upload&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Close the upload window, &lt;strong&gt;Refresh&lt;/strong&gt; 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%2Flr7jeb7o5mqv3e77p7k6.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%2Flr7jeb7o5mqv3e77p7k6.png" alt="Upload" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 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 &lt;strong&gt;Overview&lt;/strong&gt; tab, copy the &lt;strong&gt;URL&lt;/strong&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%2Fzxd217in1vuf5v8oooi3.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%2Fzxd217in1vuf5v8oooi3.png" alt="URL" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&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%2F8hh1689fgin54a7ezowc.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%2F8hh1689fgin54a7ezowc.png" alt="URL testing" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="configure"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 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 &lt;strong&gt;Overview&lt;/strong&gt; blade of the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the &lt;strong&gt;Properties&lt;/strong&gt; page, locate the &lt;strong&gt;Blob service&lt;/strong&gt; section.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Blob soft delete&lt;/strong&gt; 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%2Frxglltpiug0pnf145qop.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%2Frxglltpiug0pnf145qop.png" alt="soft delete" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Enable soft delete for blobs&lt;/strong&gt; is &lt;strong&gt;checked&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Change the &lt;strong&gt;Keep deleted blobs for (in days)&lt;/strong&gt; setting to &lt;strong&gt;21&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Notice you can also &lt;strong&gt;Enable soft delete for containers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Don’t forget to &lt;strong&gt;Save&lt;/strong&gt; 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%2Fof08ykd2umig81crk3g7.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%2Fof08ykd2umig81crk3g7.png" alt="save" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 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;Select the file you uploaded and then select &lt;strong&gt;Delete&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;OK&lt;/strong&gt; to confirm deleting the file.&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%2Fvmn3xr3drk8apvgwnec3.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%2Fvmn3xr3drk8apvgwnec3.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the container &lt;strong&gt;Overview&lt;/strong&gt; page, toggle the slider &lt;strong&gt;Show deleted blobs&lt;/strong&gt;. This toggle is to the right of the search box.&lt;/li&gt;
&lt;li&gt;Select your deleted file, and use the ellipses on the far right, to &lt;strong&gt;Undelete&lt;/strong&gt; the file.&lt;/li&gt;
&lt;li&gt;Refresh the container and confirm the file has been restored.&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%2Fj0n2maehlqwcgrv0wcab.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%2Fj0n2maehlqwcgrv0wcab.png" alt="undelete" width="800" height="316"&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%2Fhdckgtiubw7roiv0xtmj.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%2Fhdckgtiubw7roiv0xtmj.png" alt="restored" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="versioning"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Step 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 &lt;strong&gt;Overview&lt;/strong&gt; blade of the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Properties&lt;/strong&gt; section, locate the &lt;strong&gt;Blob service&lt;/strong&gt; section.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Versioning&lt;/strong&gt; 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%2F2vxcdkw8737q4hkzltsi.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%2F2vxcdkw8737q4hkzltsi.png" alt="versioning" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Enable versioning for blobs&lt;/strong&gt; checkbox is checked.&lt;/li&gt;
&lt;li&gt;Notice your options to &lt;strong&gt;keep all versions&lt;/strong&gt; or &lt;strong&gt;delete versions after&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Don’t forget to &lt;strong&gt;Save&lt;/strong&gt; 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%2Fg5zlcfte0f6lfipt6065.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%2Fg5zlcfte0f6lfipt6065.png" alt="enable" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; another version of your container file. This overwrites your existing file.&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%2F5dfi54pc63sb2rpwoy0s.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%2F5dfi54pc63sb2rpwoy0s.png" alt="upload" width="577" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

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




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, deploying Blob Storage for a public website on Microsoft Azure provides a cost-effective, scalable, and reliable solution for hosting static web content. Throughout this deployment process, we explored how to create a storage account with high availability, create a blob storage container with anonymous read access, practice uploading files and testing access, and configure soft delete and blob versioning. As cloud technologies evolve, Azure Blob Storage remains a powerful platform for building and maintaining fast, secure, and scalable public websites.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog. 😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comment or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DMs are open and love discussions on cloud topics as always! 😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Create and Configure Azure Storage Account</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sun, 26 Apr 2026 13:45:55 +0000</pubDate>
      <link>https://dev.to/tjasper/create-and-configure-azure-storage-account-2ce0</link>
      <guid>https://dev.to/tjasper/create-and-configure-azure-storage-account-2ce0</guid>
      <description>&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is a Storage Account?&lt;/li&gt;
&lt;li&gt;Step-by-Step Guide to Create a Storage Account&lt;/li&gt;
&lt;li&gt;Configure the Storage Account&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Storage Account?
&lt;/h2&gt;

&lt;p&gt;A Storage Account is a secure, scalable cloud container with a name globally unique used for storing data objects (Blobs, Files, Queues, and Tables) in the cloud.&lt;/p&gt;




&lt;p&gt;&lt;a id="create"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step Guide to Create a Storage Account
&lt;/h2&gt;

&lt;p&gt;Now that we understand the meaning of Storage account, let’s assume you work in an IT department and your organization requires you to provide a storage account with simple configurations that can be changed easily for the training and testing of new employees.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: First thing you do is to create and deploy a Resource group
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Login to your azure portal and search &lt;strong&gt;Resource group&lt;/strong&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%2Fo07x0czpstvkxd7yxacm.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%2Fo07x0czpstvkxd7yxacm.png" alt="RG" width="777" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2Fione8tj7t2rnm27mnxkj.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%2Fione8tj7t2rnm27mnxkj.png" alt="Create" width="499" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give your resource group a &lt;strong&gt;name&lt;/strong&gt;. For example, &lt;code&gt;Jasperrg01&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;region&lt;/strong&gt;. Use this region throughout the project.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review and create&lt;/strong&gt; to validate the 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%2Ffl6t3t9todts6ghtev2g.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%2Ffl6t3t9todts6ghtev2g.png" alt="RG" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; to deploy the 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%2F60osfkcqe1m7igdahdsm.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%2F60osfkcqe1m7igdahdsm.png" alt="Create" width="800" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Next you Create and deploy a storage account
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select &lt;strong&gt;Storage accounts&lt;/strong&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%2Fr0wauwerq0xie6tf2eiy.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%2Fr0wauwerq0xie6tf2eiy.png" alt="SA" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&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%2Fld870h6lf7tsfy2kvh4x.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%2Fld870h6lf7tsfy2kvh4x.png" alt="Create" width="586" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Basics tab, select your Resource group.&lt;/li&gt;
&lt;li&gt;Provide a Storage account &lt;strong&gt;name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Remember the storage account name must be unique in Azure.&lt;/li&gt;
&lt;li&gt;Set the Performance to &lt;strong&gt;Standard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt;, and then &lt;strong&gt;Create&lt;/strong&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%2Fi1xf2ks9i5lztlz5obrt.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%2Fi1xf2ks9i5lztlz5obrt.png" alt="SA" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for the storage account to deploy and then &lt;strong&gt;Go to resource&lt;/strong&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%2Fa1tdei6rtcq4ijdte0rq.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%2Fa1tdei6rtcq4ijdte0rq.png" alt="GTR" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="configure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure the Storage Account
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: The storage accounts does not require high availability so you set to the lowest cost
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In your storage account, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Locally-redundant storage (LRS)&lt;/strong&gt; in the Redundancy drop-down.&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refresh&lt;/strong&gt; the page and notice the content only exists in the primary location.&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%2Ffjdflxfhe98d74337cn4.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%2Ffjdflxfhe98d74337cn4.png" alt="Redundancy" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Make sure the storage account only accepts requests from secured connections
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Secure transfer required&lt;/strong&gt; is &lt;strong&gt;Enabled&lt;/strong&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%2Fpd4xrpz2wwtqjg23gzdb.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%2Fpd4xrpz2wwtqjg23gzdb.png" alt="Secure Transfer" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Developers would like the storage account to use at least TLS version 1.2.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;Minimal TLS version&lt;/strong&gt; is set to &lt;strong&gt;Version 1.2&lt;/strong&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%2Fwdfk0vtsohqh77vprmn2.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%2Fwdfk0vtsohqh77vprmn2.png" alt="Version" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Until the storage is needed again, disable requests to the storage account.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration&lt;/strong&gt; blade.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Allow storage account key access&lt;/strong&gt; is &lt;strong&gt;Disabled&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; 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%2Fh6auu89o10k0cbx7sqys.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%2Fh6auu89o10k0cbx7sqys.png" alt="SAKA" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Ensure the storage account allows public access from all networks.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking&lt;/strong&gt; section, select the &lt;strong&gt;Networking&lt;/strong&gt; 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%2Fp3btos14br8lr43bw3b1.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%2Fp3btos14br8lr43bw3b1.png" alt="Network Access" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure &lt;strong&gt;Public network access&lt;/strong&gt; is set to &lt;strong&gt;Enabled from all networks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; 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%2Fb1azv2olxa5qkpmdnd40.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%2Fb1azv2olxa5qkpmdnd40.png" alt="Save" width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have successfully created a storage account for training and testing. In summary Azure storage account is a container that holds all your Azure Storage data objects, including blobs, files, queues, and tables. It offers several types of storage accounts, Standard and Premium. Each type supports different features and has its own pricing model. Azure Storage always stores multiple copies of your data to protect it from planned and unplanned events. Redundancy models can replicate data in the primary and secondary regions.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog.😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comment or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DM's are open and love discussions on cloud topics as always!😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Build and Manage Cloud Infrastructure with Terraform and AWS CLI</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Fri, 28 Feb 2025 17:14:15 +0000</pubDate>
      <link>https://dev.to/tjasper/build-and-manage-cloud-infrastructure-with-terraform-and-aws-cli-2pc7</link>
      <guid>https://dev.to/tjasper/build-and-manage-cloud-infrastructure-with-terraform-and-aws-cli-2pc7</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Step 1: Configure the AWS CLI&lt;/li&gt;
&lt;li&gt;Step 2: Create a Terraform Configuration File&lt;/li&gt;
&lt;li&gt;Step 3: Initialize Terraform&lt;/li&gt;
&lt;li&gt;Step 4: Plan, Format, and Validate Configuration&lt;/li&gt;
&lt;li&gt;Step 5: Create the Infrastructure (EC2 instance)&lt;/li&gt;
&lt;li&gt;Step 6: Inspect and Verify the EC2 Instance&lt;/li&gt;
&lt;li&gt;Step 7: Delete the EC2 Instance (After Use)&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="intro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;It is important to have efficient cloud infrastructure management because it enhances the scalability, reliability, and also reduces the cost. Terraform and AWS CLI are great tools that allow you to automate and simplify the cloud resource provisioning process. &lt;/p&gt;

&lt;p&gt;In this guide, we will guide you on how to set up an Amazon EC2 instance using Terraform and AWS CLI, how to define, deploy, and manage infrastructure as code. When you go through this tutorial, you will be able to set up an EC2 instance that is fully functional and be able to scale and automate the deployment process for future projects.&lt;/p&gt;




&lt;p&gt;&lt;a id="Prep"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before setting up an EC2 instance with Terraform and AWS CLI, ensure you have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;An AWS Account&lt;/strong&gt; (&lt;a href="https://eu-north-1.signin.aws.amazon.com/oauth?client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Fcanvas&amp;amp;code_challenge=VUoDdPovC5oRqI_Xp9ykp2CtU5jo7RtH-3tNU1WZ45M&amp;amp;code_challenge_method=SHA-256&amp;amp;response_type=code&amp;amp;redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3FhashArgs%3D%2523%26isauthcode%3Dtrue%26state%3DhashArgsFromTB_eu-north-1_8dea0e8745eeaae6" rel="noopener noreferrer"&gt;sign-in&lt;/a&gt; or &lt;a href="https://aws.amazon.com/free/?gclid=Cj0KCQiA8fW9BhC8ARIsACwHqYqS6EDyk09GUbxEvT1hGDvoJ5o_MLRxgBjc2FMZgwjAORZehPVLQEQaAsmhEALw_wcB&amp;amp;trk=99f831a2-d162-429a-9a77-a89f6b3bd6cd&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQiA8fW9BhC8ARIsACwHqYqS6EDyk09GUbxEvT1hGDvoJ5o_MLRxgBjc2FMZgwjAORZehPVLQEQaAsmhEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273267!e!!g!!aws%20free%20tier!19574556890!145779847112" rel="noopener noreferrer"&gt;sign-up&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS CLI Installed&lt;/strong&gt; (&lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" rel="noopener noreferrer"&gt;Official documentation&lt;/a&gt;). Confirm installation by running the command below in your terminal:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Terraform Downloaded and Installed&lt;/strong&gt; (&lt;a href="https://developer.hashicorp.com/terraform/install" rel="noopener noreferrer"&gt;Terraform’s official site&lt;/a&gt;). Confirm installation by running the command below in your terminal:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Code Editor and Terminal&lt;/strong&gt; (VS Code, Vim, or any code editor with a terminal). We would be using VS Code in this tutorial.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After setting all these up, we can start managing and automating your AWS EC2 instance or any other infrastructure! 🚀&lt;/p&gt;




&lt;p&gt;&lt;a id="step1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Configure the AWS CLI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your AWS account, click your &lt;strong&gt;Username&lt;/strong&gt; at the top-right. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Security Credencials&lt;/strong&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the &lt;strong&gt;Create access key&lt;/strong&gt; button.&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%2Fzyz2h8n98uqt1uz6n23n.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%2Fzyz2h8n98uqt1uz6n23n.png" alt="Access key" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Check the box&lt;/strong&gt; and click the &lt;strong&gt;Create access key&lt;/strong&gt; button, and then your keys will be 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%2F2jlb7hxg8jngmd3405ee.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%2F2jlb7hxg8jngmd3405ee.png" alt="Access key" 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%2Fb6sz07i7edtbdwqq6vni.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%2Fb6sz07i7edtbdwqq6vni.png" alt="Successful" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your &lt;strong&gt;VS code terminal&lt;/strong&gt; and enter the command below:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now enter your access key ID and secret key. &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a id="step2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create a Terraform Configuration File
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create a working directory with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir terraform-ec2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Ff17sor47mo9g018fylrb.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%2Ff17sor47mo9g018fylrb.png" alt="Directory" width="598" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Change directory&lt;/strong&gt; into it with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd terraform-ec2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create a &lt;strong&gt;Terraform file&lt;/strong&gt; to define the infrastructure (main.tf):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch main.tf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Open &lt;code&gt;main.tf&lt;/code&gt; and paste in the configuration below, and save the file.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~&amp;gt; 4.16"
    }
  }

  required_version = "&amp;gt;= 1.2.0"
}

provider "aws" {
  region  = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleAppServerInstance"
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fah0guwp1gi8yqebyvni0.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%2Fah0guwp1gi8yqebyvni0.png" alt="Configuration" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Initialize Terraform
&lt;/h2&gt;

&lt;p&gt;After the configuration has been created run the command below to initialize the directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fopiqphu8b6tks53kr087.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%2Fopiqphu8b6tks53kr087.png" alt="Initialization" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;downloads and installs the AWS plugins&lt;/strong&gt; in the configuration&lt;/p&gt;




&lt;p&gt;&lt;a id="step4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Plan, Format, and Validate Configuration
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Preview the configuration plan with the command below:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fvaohp8q98wb1hweliyy4.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%2Fvaohp8q98wb1hweliyy4.png" alt="Preview plan" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Format to automatically update the configurations in the &lt;code&gt;terraform-ec2&lt;/code&gt; directory for readability and consistency with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform fmt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Verify syntax and internal consistency of the configurations with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform validate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fjrybgytammeaoq0ghc6k.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%2Fjrybgytammeaoq0ghc6k.png" alt="Validate" width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Create the Infrastructure (EC2 instance)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Apply the configuration to create the EC2 instance with the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fa127hmwslyq0847vs1tv.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%2Fa127hmwslyq0847vs1tv.png" alt="Apply configuration" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter &lt;strong&gt;yes&lt;/strong&gt; to confirm action.&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%2Ftwbfk0g7w2urrbqf58sx.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%2Ftwbfk0g7w2urrbqf58sx.png" alt="Confirm application" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Inspect and Verify the EC2 Instance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Inspect the current state of the Instance using the command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform show
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F6gdv7s2vfl59zh2e39dw.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%2F6gdv7s2vfl59zh2e39dw.png" alt="Inspect" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To verify the instance navigate to the &lt;strong&gt;AWS Management Console&lt;/strong&gt; in &lt;strong&gt;EC2 Dashboard&lt;/strong&gt;. Make sure you're in the right region &lt;code&gt;us-west-2&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%2Fh7ct34hley06x6zmtjrn.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%2Fh7ct34hley06x6zmtjrn.png" alt="Verification" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="step7"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Delete the EC2 Instance (After Use)
&lt;/h2&gt;

&lt;p&gt;For best practice, you can destroy the instance and resources with the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform destroy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fhyby7r4wxshiakuyamp9.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%2Fhyby7r4wxshiakuyamp9.png" alt="Destroy" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter &lt;strong&gt;yes&lt;/strong&gt; to confirm action.&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%2Fu9jsfh4kjckuoduz9n9f.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%2Fu9jsfh4kjckuoduz9n9f.png" alt="Confirmation" width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a id="end"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;After following all of these steps, you would have deployed an AWS EC2 instance with the use of Terraform and AWS CLI successfully. &lt;br&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt; You can also &lt;em&gt;SSH into the instance&lt;/em&gt; as long as you have a &lt;em&gt;key pair associated&lt;/em&gt; with &lt;code&gt;ssh -i my-key.pem ec2-user@&amp;lt;instance-public-ip&amp;gt;&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for reading my blog.😊😊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you need further assistance, feel free to reach out in the comment or hit me up on &lt;a href="https://x.com/seyi_jasper" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. You can also follow me on &lt;a href="https://github.com/oluwaloseyiT" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. My DM's are open and love discussions on cloud topics!😁&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluwatofunmi Emmanuel Oluwaloseyi&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>devops</category>
      <category>aws</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
