<?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.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>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 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>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>
    <item>
      <title>Understanding and Installing Terraform: A Beginner's Guide</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sun, 16 Feb 2025 21:01:01 +0000</pubDate>
      <link>https://dev.to/tjasper/understanding-and-installing-terraform-a-beginners-guide-dca</link>
      <guid>https://dev.to/tjasper/understanding-and-installing-terraform-a-beginners-guide-dca</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is Terraform?&lt;/li&gt;
&lt;li&gt;Features of Terraform&lt;/li&gt;
&lt;li&gt;Step-by-Step Guide to Install Terraform on Windows&lt;/li&gt;
&lt;li&gt;Verify the 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;
  
  
  What is Terraform?
&lt;/h2&gt;

&lt;p&gt;Terraform by HashiCorp is an open-source &lt;strong&gt;infrastructure as code (IaC)&lt;/strong&gt; tool that lets us define, manage, and automate cloud infrastructure using a declarative (human-readable) configuration language called &lt;strong&gt;HashiCorp Configuration Language (HCL)&lt;/strong&gt; across multiple cloud providers like Amazon Web Services (AWS), Azure, Google Cloud, and even on-premises data centers.&lt;/p&gt;




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

&lt;h2&gt;
  
  
  Key Features of Terraform
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Manage any infrastructure:&lt;/strong&gt; Terraform can interact with cloud platforms and multiple providers such as AWS, Azure, Google Cloud, Kubernetes, VMware, GitHub, and many more to manage resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Standardize your deployment workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Write Configuration&lt;/strong&gt; We Define infrastructure in &lt;code&gt;.tf&lt;/code&gt; files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Initialize Terraform&lt;/strong&gt; Set up the working directory and download provider plugins by running &lt;code&gt;terraform init&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Terraform plan&lt;/strong&gt; Preview changes Terraform will make to match your configuration by running &lt;code&gt;terraform plan&lt;/code&gt;. This stimulates better control over your environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Terraform apply&lt;/strong&gt; Create or update infrastructure as defined. By simply running &lt;code&gt;terraform apply&lt;/code&gt;, you will be able to make the planned changes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Collaboration:&lt;/strong&gt; With Terraforms remote state backends, you can securely share your state with your teammates and provide a stable environment for Terraform to run in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Version Control:&lt;/strong&gt; You can connect Terraform to version control systems (VCSs) like GitHub, GitLab, and others, allowing you to manage changes to your infrastructure through version control, as you would with application code.&lt;/p&gt;




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

&lt;h2&gt;
  
  
  Step-by-Step Guide to Install Terraform on Windows
&lt;/h2&gt;

&lt;p&gt;Setting up Terraform is straightforward. Follow the steps below to install it on your operating system.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open PowerShell on your windows PC.&lt;/li&gt;
&lt;li&gt;Install the Chocolatey software on your system with the code below
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
&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%2Fs03wpkwdoh2593nrapb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs03wpkwdoh2593nrapb0.png" alt="Install Chocolatey" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run the command below to install Terraform using Chocolatey.&lt;/li&gt;
&lt;li&gt;Then allow Chocolatey to run the installation by answering 'y'.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;choco install terraform
&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%2F9ohrymzrpv4quxzijcmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ohrymzrpv4quxzijcmp.png" alt="Install Terraform" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;h2&gt;
  
  
  Verify the installation
&lt;/h2&gt;

&lt;p&gt;After placing Terraform in the correct directory, verify the installation by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform -help
&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%2Fbudathwq2w0l4qs9hbwy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbudathwq2w0l4qs9hbwy.png" alt="Verification" width="800" height="681"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt; If you use other Operating systems or need other way to install visit the &lt;a href="https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli#install-cli" rel="noopener noreferrer"&gt;HashiCorp Terraform Installation page&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;Understanding the fundamentals of Terraform and successfully installing it prepares you to begin managing infrastructure as code. Terraform's declarative approach, multi-cloud support, and automation capabilities make it an extremely useful tool for DevOps and cloud engineers. To fully realize Terraform's potential, experiment with writing configuration files and running deployments.&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>tutorial</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Effortless File Management: Setting Up AWS S3 Buckets and Presigned URLs</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Wed, 11 Dec 2024 09:39:59 +0000</pubDate>
      <link>https://dev.to/tjasper/effortless-file-management-setting-up-aws-s3-buckets-and-presigned-urls-4jlk</link>
      <guid>https://dev.to/tjasper/effortless-file-management-setting-up-aws-s3-buckets-and-presigned-urls-4jlk</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: Creating and Configuring S3 Bucket&lt;/li&gt;
&lt;li&gt;Step 2: Creating Folders&lt;/li&gt;
&lt;li&gt;Step 3: Uploading Files&lt;/li&gt;
&lt;li&gt;Step 4: Creating Presigned URLs&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;Simple Storage Service&lt;/strong&gt; (S3) is a service on Amazon Web Services (AWS) that provides a robust solution for storing, organizing, and accessing files in the cloud. With S3, you can create scalable storage buckets, upload files, and manage access effortlessly. One of the standout features of AWS S3 is the ability to generate &lt;strong&gt;presigned URLs&lt;/strong&gt;, which allow temporary and secure access to files without exposing your bucket or file permissions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4hn3mrcr6zlwyap8r4f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4hn3mrcr6zlwyap8r4f.png" alt="S3" width="281" height="180"&gt;&lt;/a&gt;&lt;br&gt;
By the end of this guide, you’ll not only have a functional S3 bucket but also the knowledge to share files securely and optimize your storage management strategy. Let's dive in!&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;ul&gt;
&lt;li&gt;Go to the &lt;a href="https://aws.amazon.com/console/" rel="noopener noreferrer"&gt;AWS management console&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign up&lt;/strong&gt; if you don't already have an account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign in&lt;/strong&gt; to your account with your credentials.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdkvsapa9ztbytijguzz.png" alt="Sign in" width="800" height="397"&gt;
&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: Creating and Configuring S3 Bucket
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After you're logged in, &lt;strong&gt;search S3 and select&lt;/strong&gt; the highlighted option.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpklif0xrvxv64r5vhjvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpklif0xrvxv64r5vhjvq.png" alt="search S3" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;strong&gt;Create bucket&lt;/strong&gt; button.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhg2wuywug9eedfib4tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhg2wuywug9eedfib4tv.png" alt="Create bucket" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the bucket a globally unique &lt;strong&gt;name&lt;/strong&gt; e.g., &lt;code&gt;tourism-s3&lt;/code&gt;. (You should go over the bucket naming rules.) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can change the &lt;strong&gt;region&lt;/strong&gt; from the top right corner.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5b9qse2ucko0yha9qi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5b9qse2ucko0yha9qi6.png" alt="Name and Region" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For security, we will &lt;strong&gt;block public access&lt;/strong&gt; to our bucket. (Uncheck the box is creating a public bucket.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disable bucket &lt;strong&gt;versioning&lt;/strong&gt;. It can be enabled if you need multiple copies of a file stored in the bucket for retrieval purposes. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06xs76q9pztbts0jeaa9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06xs76q9pztbts0jeaa9.png" alt="Access &amp;amp; Version" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let's &lt;strong&gt;add a tag&lt;/strong&gt; for cost management. (Here &lt;code&gt;Name&lt;/code&gt; is the &lt;strong&gt;Key&lt;/strong&gt; and &lt;code&gt;tourism&lt;/code&gt; is the &lt;strong&gt;Value&lt;/strong&gt;.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For encryption and other settings we leave as default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the &lt;strong&gt;Create bucket&lt;/strong&gt; button.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0ftgicu42pizzyj4x1p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0ftgicu42pizzyj4x1p.png" alt="Tags and other settings" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We successfully created a bucket. Click on the bucket to &lt;strong&gt;open&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qw5lu35u71jmbj8xf9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qw5lu35u71jmbj8xf9n.png" alt="Open bucket" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&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: Creating Folders
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create folder&lt;/strong&gt; and let's create folders to store pictures, tables, &amp;amp; videos.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg84gujwnuk4l2x9fn5sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg84gujwnuk4l2x9fn5sc.png" alt="Create folder" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the folder a &lt;strong&gt;name&lt;/strong&gt; &lt;code&gt;tour-pictures&lt;/code&gt; and click &lt;strong&gt;Create folder&lt;/strong&gt; to save.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40g9j7ozcqucvq7zyug9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40g9j7ozcqucvq7zyug9.png" alt="Picture folder" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a folder for tables and videos using the same steps.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8logq8wtr3ikz5u1s6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8logq8wtr3ikz5u1s6m.png" alt="Table folder" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9yry12od5imxegylqea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9yry12od5imxegylqea.png" alt="Video folder" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We successfully created folders for different purposes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv5h3k9inv4b97qoisj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv5h3k9inv4b97qoisj0.png" alt="Folders Created" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&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: Uploading Files
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open the &lt;code&gt;tour-pictures&lt;/code&gt; folder and click on &lt;strong&gt;Upload&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk66txzct0o8dufhum50z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk66txzct0o8dufhum50z.png" alt="Open tour-pictures" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add files&lt;/strong&gt; and select an image.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftga9b326e3z0hbagzik6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftga9b326e3z0hbagzik6.png" alt="Image" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At the bottom right of the page, click &lt;strong&gt;Upload&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7gsc2f142pfb31bq5j2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7gsc2f142pfb31bq5j2.png" alt="Image upload" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxxg5dgskabpfnftpht1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxxg5dgskabpfnftpht1.png" alt="Upload successful" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let's upload a table as well. Open the &lt;code&gt;tour-tables&lt;/code&gt; folder and click &lt;strong&gt;Upload&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazh994csoisib0s8iopc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazh994csoisib0s8iopc.png" alt="Table upload" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add files&lt;/strong&gt; and select a table file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdyuwhxl5typgfytrb1z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdyuwhxl5typgfytrb1z.png" alt="Table" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Upload and notice you now have the table in your &lt;code&gt;tour-tables&lt;/code&gt; folder.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93wbwi100nsn4ya41gmn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93wbwi100nsn4ya41gmn.png" alt="Upload" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44wby2im77qz5z0ws2y1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44wby2im77qz5z0ws2y1.png" alt="Successful" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&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: Creating Presigned URLs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open the image file Uploaded to &lt;code&gt;tour-pictures&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Object actions&lt;/strong&gt; at the top right.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the drop down select &lt;strong&gt;Share with a presigned URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxf201xv9qq7imtl3r3ts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxf201xv9qq7imtl3r3ts.png" alt="Image file" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the &lt;strong&gt;Number of minutes or hours&lt;/strong&gt; you want the presigned URL to last for. Setting ours to 30 minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create presigned URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw65vml6tzmczvz73sncs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw65vml6tzmczvz73sncs.png" alt="Configure the URL" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the presigned URL.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdp7il5lb5dilt0dh4q8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdp7il5lb5dilt0dh4q8q.png" alt="Copy the URL" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste the URL in a browser to test it works.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwv5cfn6g5o625qa0y17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwv5cfn6g5o625qa0y17.png" alt="AWS cloud muscles" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now let's do the same for our table. Open the table file in &lt;code&gt;tour-tables&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Object actions&lt;/strong&gt; at the top right.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the drop down select &lt;strong&gt;Share with a presigned URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmogkzx07jwvc9fo545w0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmogkzx07jwvc9fo545w0.png" alt="Table file" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Just like the image, set the &lt;strong&gt;Number of minutes or hours&lt;/strong&gt; you want the presigned URL to last for. Setting it to 30 minutes here as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create presigned URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf5qcjm5hjb5w6r01iq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf5qcjm5hjb5w6r01iq4.png" alt="Configure URL" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the presigned URL.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdvv3axxf4z0j042qu6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdvv3axxf4z0j042qu6z.png" alt="Copy URL" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste the URL in a browser to test it works (it should download the table file we uploaded).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwu4ogk8ayeppgvrxcm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwu4ogk8ayeppgvrxcm3.png" alt="Table File testing" width="334" height="82"&gt;&lt;/a&gt;&lt;/p&gt;&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 this article, we created an AWS S3 bucket, organized files with folders, uploaded files, and generated presigned URLs for secure sharing. These steps make managing and sharing files in the cloud simple and secure.&lt;/p&gt;

&lt;p&gt;With these skills, you’re ready to use AWS S3 effectively and explore more advanced features for your cloud storage needs.&lt;/p&gt;

&lt;p&gt;Note: We can delete the S3 bucket after Use for cost-saving purposes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the S3 bucket and click delete.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvosdrlphgk5z11clinbj.png" alt="Delete S3 bucket" width="800" height="397"&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%2Fvbkkvuycne9tvdh5v9n8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbkkvuycne9tvdh5v9n8.png" alt="Delete S3 successful" width="800" height="397"&gt;&lt;/a&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>aws</category>
      <category>tutorial</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Creating a Windows EC2 Instance on AWS and Installing IIS Server on it</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Sun, 08 Dec 2024 17:06:54 +0000</pubDate>
      <link>https://dev.to/tjasper/creating-a-windows-ec2-instance-on-aws-and-installing-iis-server-on-it-k3m</link>
      <guid>https://dev.to/tjasper/creating-a-windows-ec2-instance-on-aws-and-installing-iis-server-on-it-k3m</guid>
      <description>&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;mazon &lt;strong&gt;W&lt;/strong&gt;eb &lt;strong&gt;S&lt;/strong&gt;ervices (AWS) provides one of the most robust and versatile cloud platforms, allowing organizations and individuals to deploy scalable and secure solutions. Of all the features AWS offers, &lt;strong&gt;Elastic Compute Cloud&lt;/strong&gt; (EC2) stands out as a powerful tool for launching and managing virtual servers. In this guide, I'll walk you through creating a Windows EC2 instance and setting it up as a web server using &lt;strong&gt;Internet Information Services&lt;/strong&gt; (IIS). Whether you're a cloud computing beginner or looking to expand your AWS skills, this tutorial will provide you with a hands-on approach to building a web server on the AWS cloud.&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%2F6twe558iaxhsq9rvldj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6twe558iaxhsq9rvldj8.png" alt="EC2 instance" width="213" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's dive into the steps!&lt;/p&gt;




&lt;h2&gt;
  
  
  Step-by-Step Guide to Creating the Windows EC2 in AWS and installing the IIS server on it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1: Create an AWS Free-Tier Account
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/free/?gclid=Cj0KCQiApNW6BhD5ARIsACmEbkX61iwvrXKnMX0vV_HHJRs69MS7tVBRuwZronYlOQHN-vmKEzRApskaAqhvEALw_wcB&amp;amp;trk=99f831a2-d162-429a-9a77-a89f6b3bd6cd&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQiApNW6BhD5ARIsACmEbkX61iwvrXKnMX0vV_HHJRs69MS7tVBRuwZronYlOQHN-vmKEzRApskaAqhvEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273267!e!!g!!aws%20account!19574556890!145779847112&amp;amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;amp;all-free-tier.sort-order=asc&amp;amp;awsf.Free%20Tier%20Types=*all&amp;amp;awsf.Free%20Tier%20Categories=*all" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to navigate AWS and &lt;strong&gt;sign up&lt;/strong&gt; for a free-tier account today.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;You can watch this &lt;a href="https://youtu.be/SWS96bzhbUg?si=M3-ECNXM0QM0bH4l" rel="noopener noreferrer"&gt;Youtube video&lt;/a&gt; where the YouTuber demonstrates in details.&lt;/p&gt;

&lt;h3&gt;
  
  
  2: Login to AWS Account
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://signin.aws.amazon.com/signin?client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Fcanvas&amp;amp;redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3FhashArgs%3D%2523%26isauthcode%3Dtrue%26nc2%3Dh_ct%26src%3Dheader-signin%26state%3DhashArgsFromTB_eu-north-1_b4877b84c077eff0&amp;amp;page=resolve&amp;amp;code_challenge=Cv2AJ5H5NIYCAfOs0Dp42eEMBvwUg4z-wVcAqcy2FSc&amp;amp;code_challenge_method=SHA-256&amp;amp;backwards_compatible=true" rel="noopener noreferrer"&gt;Sign in&lt;/a&gt; to the AWS account as &lt;em&gt;Root user&lt;/em&gt; with your credentials (Mail and Password).&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  3: Search and select EC2 Instance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After signing in successfully, search EC2 in the search bar and select the first option.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frw4447rt3as3tj5tn9n1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frw4447rt3as3tj5tn9n1.png" alt="Search EC2" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;launch instance&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5p2vroo2aas5mdmd8yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5p2vroo2aas5mdmd8yr.png" alt="launch instance" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4: Configure the EC2 Instance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Give the EC2 instance a &lt;strong&gt;name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can also add additional &lt;strong&gt;tags&lt;/strong&gt; like department, city, e.t.c. (optional).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5tqa3zxe0l9rajqqd36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5tqa3zxe0l9rajqqd36.png" alt="Name &amp;amp; tags" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Windows&lt;/strong&gt; as the AMI (Amazon Machine Image).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7q30p0mx4ny5vue0hqf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7q30p0mx4ny5vue0hqf1.png" alt="Amazon Machine Image" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;t3.micro&lt;/strong&gt; as the instance type.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create a new key pair&lt;/strong&gt;, give it a &lt;strong&gt;name&lt;/strong&gt; and Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ewkiz3ycge1vuui5o1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ewkiz3ycge1vuui5o1s.png" alt="Type and key pair" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs87bb7qyh95pcs9mv5kl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs87bb7qyh95pcs9mv5kl.png" alt="Key pair" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It gets downloaded automatically on the computer.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjczmwebdpojft2e7bmka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjczmwebdpojft2e7bmka.png" alt="Key pair download" width="334" height="82"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Network settings&lt;/strong&gt;, select &lt;strong&gt;HTTP&lt;/strong&gt; so the IP can be accessible on the web.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F061lbfrdczpjse2fvfu2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F061lbfrdczpjse2fvfu2.png" alt="Network settings" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can also change the &lt;strong&gt;storage&lt;/strong&gt; assigned and the &lt;strong&gt;region&lt;/strong&gt; from the top right corner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leave all other things as default and &lt;strong&gt;launch instance&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkivg9849n83sl422d3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkivg9849n83sl422d3m.png" alt="Storage &amp;amp; Region" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5: Connect to the EC2 Instance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open the instance from the &lt;strong&gt;ID&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F831yv6ei1diszegdw5cn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F831yv6ei1diszegdw5cn.png" alt="Open instance" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the instance created and click &lt;strong&gt;Connect&lt;/strong&gt;. The instance state should indicate &lt;strong&gt;Running&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb7n6z6odhdv4bwl4dus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb7n6z6odhdv4bwl4dus.png" alt="Connect &amp;amp; Instance state" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;RDP client&lt;/strong&gt; section and click &lt;strong&gt;Get password&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkq2kzxxq9hapy4vuummz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkq2kzxxq9hapy4vuummz.png" alt="RDP client" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Upload the key pair&lt;/strong&gt; downloaded earlier, then click &lt;strong&gt;Decrypt password&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hpd2gv84bu2klgkeu7f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hpd2gv84bu2klgkeu7f.png" alt="Upload the key pair" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the password, then download the &lt;strong&gt;Remote desktop file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyodyo9x1eam17tv99te.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyodyo9x1eam17tv99te.png" alt="Remote desktop file" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open the RDP file and connect &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rr1p4vnl6v9ny3kr5ki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rr1p4vnl6v9ny3kr5ki.png" alt="Open RDP" width="328" height="75"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3eswscp2k2ucnb5n55g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3eswscp2k2ucnb5n55g.png" alt="Connect" width="542" height="287"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the password copied from earlier.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko6rtebasid89vqw838r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko6rtebasid89vqw838r.png" alt="Password" width="456" height="387"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwvklupmebvyv5ww9v1t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwvklupmebvyv5ww9v1t.png" alt="EC2 instance" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr77j9ikbgm0sgbtw18sq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr77j9ikbgm0sgbtw18sq.png" alt="EC2 instance" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6: Install Internet Information Services (IIS) server
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Search &lt;strong&gt;Powershell&lt;/strong&gt; in the EC2 instance and &lt;strong&gt;Run as administrator&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff113o2wkpmixhlyvpw6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff113o2wkpmixhlyvpw6o.png" alt="Powershell" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enter the command&lt;/strong&gt; below in the Windows PowerShell to install the IIS server.&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;Install-WindowsFeature -Name Web-Server -IncludeManagementTools
&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%2F04t3lxvpefwqx1w9g4ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04t3lxvpefwqx1w9g4ch.png" alt="Install the IIS server" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Wait for the server to install completely.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftquldud6vrk2bw004d72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftquldud6vrk2bw004d72.png" alt="Installing" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb75utvxeutbs8n37t3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb75utvxeutbs8n37t3g.png" alt="Success" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the &lt;strong&gt;Public IP address&lt;/strong&gt; and open in a browser, and we should see the Windows Server.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gaq4sl2q1ts6y5npi6j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gaq4sl2q1ts6y5npi6j.png" alt="Public IP address" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqvfhpe25761m8f6yxkb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqvfhpe25761m8f6yxkb.png" alt="Windows Server" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you are having trouble opening the IP in the bowser, go to settings in the instance and navigate Edit Inbound rules, and make sure the HTTP is associated with the IP.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnx80uclpkzk0mn0mshk4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnx80uclpkzk0mn0mshk4.png" alt="In case" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;By following the steps outlined in this article, you’ve successfully launched a Windows EC2 instance on AWS and installed the IIS web server on it. Our setup not only demonstrates the power and flexibility of AWS but also serves as a foundation for hosting web applications in the cloud. With your IIS server up and running, you’re ready to explore further configurations, deploy websites, or scale your instance to meet growing demands.&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>aws</category>
      <category>cloud</category>
      <category>tutorial</category>
      <category>ec2</category>
    </item>
    <item>
      <title>SQL: A Guide to Create a Relational Database with SQLite (and Export to Excel)</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Wed, 04 Dec 2024 10:14:25 +0000</pubDate>
      <link>https://dev.to/tjasper/sql-database-a-guide-to-create-an-sql-table-with-sqlite-3c03</link>
      <guid>https://dev.to/tjasper/sql-database-a-guide-to-create-an-sql-table-with-sqlite-3c03</guid>
      <description>&lt;p&gt;SQL (&lt;strong&gt;S&lt;/strong&gt;tructured &lt;strong&gt;Q&lt;/strong&gt;uery &lt;strong&gt;L&lt;/strong&gt;anguage), which could also be pronounced as &lt;strong&gt;sequal&lt;/strong&gt;, is a programming language used to manage and manipulate data stored in a relational database management system. SQL syntax is similar to the English language, which makes it relatively easy to write, read, and interpret. This guide will walk you through creating an SQL table using SQLite and exporting the table data to an Excel spreadsheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SQLite?
&lt;/h2&gt;

&lt;p&gt;SQLite is a popular open-source SQL database. Unlike other database systems such as MySQL or PostgreSQL, SQLite can store an entire database in a single file. One of the most significant advantages it provides is that all of the data can be stored locally without having to connect your database to a server. SQLite is commonly used in mobile apps, desktop applications, and websites.&lt;/p&gt;




&lt;h3&gt;
  
  
  Setting Up SQLite
&lt;/h3&gt;

&lt;p&gt;Before we dive into creating a table, you need to have SQLite installed on your system. Here’s how you can get started:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Install SQLite
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download the precompiled binaries of your operating system from the SQLite website: &lt;a href="https://www.sqlite.org/download.html" rel="noopener noreferrer"&gt;Download here&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8so1qzqo3c87hwdc11o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8so1qzqo3c87hwdc11o.png" alt="Download SQLite" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unzip into a folder &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yc1cy3dwiyopo352jqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yc1cy3dwiyopo352jqh.png" alt="Unzip" width="712" height="374"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Access SQLite
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open your terminal or command prompt.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh00jz15f0uljmd7o4or1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh00jz15f0uljmd7o4or1.png" alt="command prompt" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To start the SQLite command-line interface, type &lt;code&gt;sqlite3&lt;/code&gt; followed by the name of your database file. If the file does not exist, SQLite will create it for you.&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;sqlite3 Database_file.db

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This command opens the &lt;code&gt;Database_file.db&lt;/code&gt; database (or creates it if it doesn't exist).
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fac1xnwc250fl3ici7at1.png" alt="SQLite command-line interface" width="800" height="418"&gt;
&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;.help&lt;/code&gt; to browse commands usage hints.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 1: Creating a Table in SQLite
&lt;/h3&gt;

&lt;p&gt;Once you're inside SQLite, the first step is to create a table. A table is the structure that stores your data, consisting of rows (records) and columns (fields). We will be creating a table for tourist database records.&lt;/p&gt;

&lt;p&gt;Here’s the basic SQL syntax to create a table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE table_name (
  column1 datatype,
  column2 datatype,
  ...
);

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

&lt;/div&gt;



&lt;p&gt;In SQLite, the most common datatypes are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;INTEGER&lt;/strong&gt; for integer values&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TEXT&lt;/strong&gt; for text strings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REAL&lt;/strong&gt; for floating-point values&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DATE&lt;/strong&gt; for date values in the format of (&lt;strong&gt;yyyy-MM-dd&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's create the table to store information about the tourists.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Tourists (
  ID INTEGER,
  Name TEXT,
  Age INTEGER,
  Destination TEXT,
  Departure DATE
);

&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%2Fumypzhs47yjwkrg291nn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fumypzhs47yjwkrg291nn.png" alt="CREATE TABLE" width="357" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Inserting Data into the Table
&lt;/h3&gt;

&lt;p&gt;Once the table is created, you can insert data into it. The SQL command to insert data into a table is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

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

&lt;/div&gt;



&lt;p&gt;Let’s insert a few records into our &lt;code&gt;Tourists&lt;/code&gt; table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Tourists (ID, Name, Age, Destination, Departure)
VALUES (1, 'James Stone', 35, 'Califonia', '2024-12-15');
INSERT INTO Tourists (ID, Name, Age, Destination, Departure)
VALUES (2, 'Steve Jones', 29, 'Florida', '2024-12-20');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also insert multiple records in one go using multiple &lt;code&gt;VALUES&lt;/code&gt; clauses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO Tourists (ID, Name, Age, Destination, Departure)
VALUES (3, 'Jack Cage', 33, 'New York', '2024-12-20'),
(4, 'Mark Tyson', 56, 'New York', '2024-12-29'),
(5, 'John Dep', 50, 'Texas','2025-01-08'),
(6, 'James Brook', 45, 'Texas','2025-01-10');

&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%2Fcshzjv1r2odygoa1nrqo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcshzjv1r2odygoa1nrqo.png" alt="INSERT INTO Tourists" width="653" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Viewing the Data
&lt;/h3&gt;

&lt;p&gt;Once you've inserted data, you can retrieve it using a simple SELECT query:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Tourists;

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

&lt;/div&gt;



&lt;p&gt;This query retrieves all rows and columns from the &lt;code&gt;Tourists&lt;/code&gt; table.&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%2Fmy9vqlhuj1zi5dlj4wxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmy9vqlhuj1zi5dlj4wxt.png" alt="Viewing the Data" width="368" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Updating Data
&lt;/h3&gt;

&lt;p&gt;To modify existing data, you can use the &lt;code&gt;UPDATE&lt;/code&gt; statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UPDATE Tourists
SET Name = 'Johnny Dep'
WHERE ID = 5;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this, we updated John Dep's name to 'Johnny Dep'.&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%2F022z34widio8nvmw4x9r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F022z34widio8nvmw4x9r.png" alt="Updating Data" width="365" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Deleting Data
&lt;/h3&gt;

&lt;p&gt;To remove records, use the &lt;code&gt;DELETE&lt;/code&gt; statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DELETE FROM Tourists
WHERE ID = 6;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command deletes the tourist named James Brook from the &lt;code&gt;Tourists&lt;/code&gt; table.&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%2Fro0tulqkfij05chzt1q8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro0tulqkfij05chzt1q8.png" alt="Deleting Data" width="359" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Altering Data in the Table
&lt;/h3&gt;

&lt;p&gt;To make changes to an existing table, we use the &lt;code&gt;ALTER&lt;/code&gt; statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER TABLE Tourists
ADD COLUMN Phone INTEGER;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command adds a new column &lt;code&gt;Phone&lt;/code&gt; to the table.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;NULL&lt;/code&gt; is a special value in SQL that represents missing or unknown data. Here, the rows that existed before the column was added have &lt;code&gt;NULL&lt;/code&gt; (∅) values for &lt;code&gt;Phone&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now let's update the &lt;code&gt;Phone&lt;/code&gt; column created using the &lt;code&gt;UPDATE&lt;/code&gt; statement.&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;UPDATE Tourists
SET Phone = 09011111111
WHERE ID = 1;
UPDATE Tourists
SET Phone = 08022222222
WHERE ID = 2;
UPDATE Tourists
SET Phone = 07033333333
WHERE ID = 3;
UPDATE Tourists
SET Phone = 08011111111
WHERE ID = 4;
UPDATE Tourists
SET Phone = 09022222222
WHERE ID = 5;
&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%2Fp5wyzbrr5tdun9u12nf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5wyzbrr5tdun9u12nf5.png" alt="Altering Data" width="605" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Exporting the Table
&lt;/h3&gt;

&lt;p&gt;SQLite allows this by exporting data to a CSV (&lt;strong&gt;Comma-Separated Values&lt;/strong&gt;) file, which can be opened directly in Excel for further analysis or reporting.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add the headers i.e. column names
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.headers on
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Set the Output Mode to CSV 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;.mode csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Set the Output File you want to export.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.output Tourists.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Run a &lt;code&gt;SELECT&lt;/code&gt; query to fetch the data you want to export.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM Tourists;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reset the output back to the terminal and quit SQLite:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.output stdout
.quit
&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%2F0yorvft4o07764x64dup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0yorvft4o07764x64dup.png" alt="Exporting" width="429" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Locate the &lt;code&gt;Tourists.csv&lt;/code&gt; file and open it in Excel. Alternatively, open Excel, go to File &amp;gt; Open, and select the CSV 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%2Fk4i1dyb5irnggdf9rq2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4i1dyb5irnggdf9rq2j.png" alt="Excel" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;SQLite is an easy-to-use and lightweight database engine, perfect for applications where simplicity and portability are key. In this guide, we covered how to create a table, insert data, and export the table data to an Excel-compatible CSV file. This makes it easier to share and analyze data outside the SQLite environment.&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>database</category>
      <category>sql</category>
      <category>softwaredevelopment</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Create and Configure Virtual Network in Azure</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Wed, 27 Nov 2024 04:27:03 +0000</pubDate>
      <link>https://dev.to/tjasper/how-to-create-and-configure-virtual-network-in-azure-551</link>
      <guid>https://dev.to/tjasper/how-to-create-and-configure-virtual-network-in-azure-551</guid>
      <description>&lt;h2&gt;
  
  
  What is a Virtual Network?
&lt;/h2&gt;

&lt;p&gt;A Virtual Network (VNet) in Azure is a logically isolated network that &lt;strong&gt;provides secure communication between resources&lt;/strong&gt; like virtual machines, databases, and other services in the cloud. It allows you to define IP address ranges, subnets, and network configurations, enabling private communication within the VNet or with on-premises networks through VPN or ExpressRoute. VNets are essential for organizing, securing, and connecting resources in Azure.&lt;/p&gt;

&lt;p&gt;Azure Virtual Network Peering and subnets are essential for building secure, connected, and scalable cloud environments. &lt;strong&gt;Virtual Network Peering&lt;/strong&gt; enables seamless communication between Azure virtual networks, while &lt;strong&gt;subnets&lt;/strong&gt; allow you to segment and organize your network for better management and security. &lt;/p&gt;

&lt;p&gt;In this guide, we’ll walk you through the steps to create and configure both, ensuring your Azure networking setup is optimized for your workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tasks
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create virtual networks.&lt;/li&gt;
&lt;li&gt;Create subnets.&lt;/li&gt;
&lt;li&gt;Configure virtual network peering.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Architecture diagram
&lt;/h3&gt;

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




&lt;h2&gt;
  
  
  Steps:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create hub and spoke virtual networks and subnets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sign in to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure portal&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search for and select &lt;strong&gt;Virtual Networks&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F38peiw1as5f53o7p52dl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F38peiw1as5f53o7p52dl.png" alt="Virtual Networks" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;+ Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenuc05ih64u6hm3tyape.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenuc05ih64u6hm3tyape.png" alt="+ Create" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Assign to a Resource group &lt;strong&gt;RG11&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the name as &lt;code&gt;app-vnet&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Region to &lt;strong&gt;East US&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlyg70rvs7je6dtt11h9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlyg70rvs7je6dtt11h9.png" alt="configuration" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;IPv4 address space&lt;/strong&gt; is &lt;strong&gt;10.1.0.0/16&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This virtual network requires two subnets, &lt;code&gt;frontend&lt;/code&gt; and &lt;code&gt;backend&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the &lt;strong&gt;Subnet address range&lt;/strong&gt; of the &lt;strong&gt;frontend&lt;/strong&gt; subnet to &lt;strong&gt;10.1.0.0/24&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add&lt;/strong&gt; to save.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypn24mhz22azqrudbpur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypn24mhz22azqrudbpur.png" alt="frontend subnet" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Add a subnet&lt;/strong&gt; for the &lt;strong&gt;backend&lt;/strong&gt; subnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the &lt;strong&gt;Subnet address range&lt;/strong&gt; to &lt;strong&gt;10.1.1.0/24&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add&lt;/strong&gt; to save.&lt;br&gt;
&lt;strong&gt;Note&lt;/strong&gt;:Leave all other settings as their defaults. When finished, select &lt;strong&gt;Review + create&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqa0qiim833dti4db89m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqa0qiim833dti4db89m.png" alt="backend subnet" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  Create the Hub-vnet virtual network configuration. This virtual network has the firewall subnet.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Virtual Networks&lt;/strong&gt; again.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Assign to the same &lt;strong&gt;Resource group&lt;/strong&gt; as app-vnet &lt;strong&gt;RG11&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Name&lt;/strong&gt; as &lt;code&gt;hub-vnet&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt; to &lt;strong&gt;East US&lt;/strong&gt; as well.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; to the &lt;strong&gt;IP addresses&lt;/strong&gt; section.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;The IPv4 address space is &lt;strong&gt;10.0.0.0/16&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add a subnet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Name the subnet &lt;strong&gt;AzureFirewallSubnet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Subnet address range&lt;/strong&gt; to &lt;strong&gt;10.0.0.0/26&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add&lt;/strong&gt; to save.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review + create&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%2Fzdusp3uet1pi451rfbde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdusp3uet1pi451rfbde.png" alt="firewall subnet" 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%2F23l38qveu090jl6rn3ep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23l38qveu090jl6rn3ep.png" alt="Create" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure a peer relationship between the virtual networks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Search for and select the &lt;code&gt;app-vnet&lt;/code&gt; virtual network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; blade, select &lt;strong&gt;Peerings&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;+ Add&lt;/strong&gt; a peering between the two virtual networks.&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%2Fzi51hde47rqeoprwzf73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzi51hde47rqeoprwzf73.png" alt="Peerings" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the &lt;strong&gt;Remote peering link name&lt;/strong&gt; to &lt;code&gt;app-vnet-to-hub&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Virtual network&lt;/strong&gt; peered to &lt;code&gt;hub-vnet&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%2Fahuelp8dtb9agud96crk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fahuelp8dtb9agud96crk.png" alt="Remote peering link name" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the local virtual network &lt;strong&gt;peering link name&lt;/strong&gt; to &lt;code&gt;hub-to-app-vnet&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Leave all other settings as their defaults.&lt;/li&gt;
&lt;li&gt;Select *&lt;em&gt;Add&lt;/em&gt; to create the virtual network peering.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Once the deployment completes, verify the &lt;strong&gt;Peering status&lt;/strong&gt; is &lt;strong&gt;Connected&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%2Fymvblzsgs74zwgthfjm6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymvblzsgs74zwgthfjm6.png" alt="Peering status" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;With this step-by-step guide, you have now successfully created virtual networks, subnets, and peer two virtual networks, which helps to manage the Vnet better and secure communication between networks and their resources.&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>networking</category>
      <category>azure</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Azure VM Scale Set #Part 3: How to Create a Virtual Machine scale set in Azure</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Fri, 22 Nov 2024 15:43:51 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-vm-scale-set-part-3-how-to-create-a-virtual-machine-scale-set-in-azure-co5</link>
      <guid>https://dev.to/tjasper/azure-vm-scale-set-part-3-how-to-create-a-virtual-machine-scale-set-in-azure-co5</guid>
      <description>&lt;p&gt;In the first two parts of this series, we connected to a Windows VM, added a data disk, and captured a reusable image with Azure Compute Gallery. Now, in Part 3, we’ll use that custom image to create a Virtual Machine Scale Set (VMSS), enabling scalable, load-balanced deployments to meet dynamic workload demands efficiently.&lt;/p&gt;

&lt;p&gt;An important concept of VMSS is an &lt;strong&gt;Azure load balancer&lt;/strong&gt;; it distributes incoming traffic to a pool of VMs or VM instances. It is always automatically configured in Azure VMSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go over the other parts of the series before this.&lt;/strong&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%2F1s94karmvy1n2a69vbyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1s94karmvy1n2a69vbyn.png" alt="VMSS" width="468" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's dive into the VMSS setup! &lt;/p&gt;




&lt;h2&gt;
  
  
  Part 3: How to Create a Virtual Machine scale set in Azure
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the VM image created, click the &lt;strong&gt;+ Create VMSS&lt;/strong&gt; button.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7b0wzey1fsmj7iijprp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7b0wzey1fsmj7iijprp.png" alt="Create VMSS" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the VMSSS a &lt;strong&gt;Name&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;orchestration mode&lt;/strong&gt;, select &lt;strong&gt;Flexibile&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;Note:&lt;/strong&gt; In &lt;strong&gt;flexibility&lt;/strong&gt; mode, you manually create and add a VM of any configuration to the scale set. While in &lt;strong&gt;uniform&lt;/strong&gt; mode, you define a VM model, and Azure will generate identical instances based on that model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leave everything else as default&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Review and create&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzf1ashyiccoy6rplc8n6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzf1ashyiccoy6rplc8n6.png" alt="Review and create" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Go to resource&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20vne69uum1qr25svze0.png" alt="Go to resource" width="800" height="476"&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%2F4xnylutc9r2onunqblis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xnylutc9r2onunqblis.png" alt="VMSS" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Availability + scale&lt;/strong&gt; section&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Scaling&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Instance count&lt;/strong&gt; to the number of VMs you want to Create&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Save&lt;/strong&gt; the configuration &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05amo5ucprdirv13qula.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05amo5ucprdirv13qula.png" alt="Scaling the VMSS" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confirm the VMs are running&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmebmxxv33i30vdr7ubjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmebmxxv33i30vdr7ubjo.png" alt="VMSS running" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion:
&lt;/h3&gt;

&lt;p&gt;With this final step, you've successfully created a Virtual Machine Scale Set using a custom image from Azure Compute Gallery, building on the foundational tasks of connecting to a VM, adding a data disk, and capturing a reusable image. Your scalable, load-balanced infrastructure is now ready to handle dynamic workloads efficiently, completing the journey toward optimizing your Azure environment.&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>tutorial</category>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Azure VM Scale Set #Part 2: How to Capture the image of a VM with Azure Compute Gallery</title>
      <dc:creator>Oluwaloseyi Oluwatofunmi Emmanuel</dc:creator>
      <pubDate>Fri, 22 Nov 2024 10:39:59 +0000</pubDate>
      <link>https://dev.to/tjasper/azure-vm-scale-set-part-2-how-to-capture-the-image-of-a-vm-with-azure-compute-gallery-4m31</link>
      <guid>https://dev.to/tjasper/azure-vm-scale-set-part-2-how-to-capture-the-image-of-a-vm-with-azure-compute-gallery-4m31</guid>
      <description>&lt;p&gt;Capturing a virtual machine image is a crucial step in creating reusable, standardized deployments in Azure. In this second part of our Azure VM Scale Set series, we’ll walk you through the process of capturing a VM image using Azure Compute Gallery. This ensures consistency and efficiency when scaling your infrastructure or deploying identical VMs (VMSS) across your environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is an Azure Compute Gallery?
&lt;/h3&gt;

&lt;p&gt;Azure Compute Gallery (formerly known as Shared Image Gallery) is a service in Microsoft Azure that simplifies the management, storage, and sharing of custom virtual machine images. It allows you to create, manage, and distribute custom images efficiently across multiple Azure regions, enabling standardized deployments and scaling for large environments.&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%2F3rj2deystgclfu3uz7us.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rj2deystgclfu3uz7us.png" alt="Azure Compute Gallery" width="158" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; this is a continuation from the article &lt;a href="https://dev.to/tjasper/azure-vm-scale-set-part-1-how-to-connect-and-add-a-data-disk-to-a-windows-vm-42h3"&gt;Azure VM Scale Set #Part 1: How to Connect and Add a Data Disk to a Windows VM&lt;/a&gt; Make sure to go over that before moving on.&lt;/p&gt;

&lt;p&gt;Let us dive into the compute gallery setup!&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: How to Capture the image of a Virtual Machine
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create an Azure Compute Gallery
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Search &lt;strong&gt;Compute gallery&lt;/strong&gt; in the Azure portal and select the highlighted option&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyqfhdb1hu581659d4zo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyqfhdb1hu581659d4zo.png" alt="Compute gallery" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoe4qhw8oc0dqq0uw1mi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoe4qhw8oc0dqq0uw1mi.png" alt="Create" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the same &lt;strong&gt;Resource group&lt;/strong&gt; allocated to the VM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the compute gallery a &lt;strong&gt;Name&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can also add a &lt;strong&gt;Description&lt;/strong&gt; (optional)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Take the rest of the settings as default &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Review and create&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.amazonaws.com%2Fuploads%2Farticles%2F4fnnmvlmdblfc73mzsnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fnnmvlmdblfc73mzsnh.png" alt="Creating CG" width="800" height="576"&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%2Fajm27abilhd8af5hxjzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajm27abilhd8af5hxjzn.png" alt="Creating CG" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &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%2Fp4u8ykcrvlpr0y9lr2tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4u8ykcrvlpr0y9lr2tw.png" alt="Go to resource" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Capture the image of a VM and store in a Compute Gallery
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go back to the VM created &lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;strong&gt;Capture&lt;/strong&gt; button and select &lt;strong&gt;Image&lt;/strong&gt; from the drop-down&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fzb3sj1a4zxexns6krl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fzb3sj1a4zxexns6krl.png" alt="Image of the VM" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure the VM and the compute gallery are in the same resource group.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the &lt;strong&gt;Compute gallery&lt;/strong&gt; created &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%2Fufw1qr020p1cyk3p8shj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufw1qr020p1cyk3p8shj.png" alt="Creating Image" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Operating system state, select &lt;strong&gt;Specialized&lt;/strong&gt;
&lt;strong&gt;Note:&lt;/strong&gt; If &lt;strong&gt;Generalized&lt;/strong&gt;, the VMs created from the image would require admin user (user/password) and other VM setups, while &lt;strong&gt;Specialized&lt;/strong&gt; is already configured. &lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Target VM image definition&lt;/strong&gt; section, &lt;strong&gt;Create new&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Give the VM image a &lt;strong&gt;Name&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Ok&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskav0uuuu1pkwy3b3usl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskav0uuuu1pkwy3b3usl.png" alt="Image of the VM" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the VM image a &lt;strong&gt;Version number&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Review and create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2puuz1o9s430nscv9tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2puuz1o9s430nscv9tw.png" alt="Image of the VM" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Wait till deployed and click &lt;strong&gt;Go to resource&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpzu4ammfktq40k7apaf.png" alt="Go to resource" width="800" height="467"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CONTINUE TO THE NEXT PART&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://dev.to/tjasper/azure-vm-scale-set-part-3-how-to-create-a-virtual-machine-scale-set-in-azure-co5"&gt;Azure VM Scale Set #Part 3: How to Create a Virtual Machine scale set in Azure&lt;/a&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;

</description>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>kubernetes</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
