<?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: Ayomide</title>
    <description>The latest articles on DEV Community by Ayomide (@aybims).</description>
    <link>https://dev.to/aybims</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%2F1058315%2F74009297-30f9-4282-b5f3-b8bb4266f712.jpg</url>
      <title>DEV Community: Ayomide</title>
      <link>https://dev.to/aybims</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aybims"/>
    <language>en</language>
    <item>
      <title>Setting up a basic Nginx webpage on AWS EC2 Instance</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Thu, 30 Jan 2025 01:28:51 +0000</pubDate>
      <link>https://dev.to/aybims/setting-up-a-basic-nginx-webpage-on-aws-ec2-instance-4lj2</link>
      <guid>https://dev.to/aybims/setting-up-a-basic-nginx-webpage-on-aws-ec2-instance-4lj2</guid>
      <description>&lt;p&gt;This guide walks through the process of deploying a simple web page using Nginx on an AWS EC2 instance, including proper setup, and best practices. It is your starter kit for future seamless deployments.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;AWS account with appropriate permissions&lt;/li&gt;
&lt;li&gt;Basic understanding of Linux commands&lt;/li&gt;
&lt;li&gt;Web browser access to AWS Management Console&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Creating an EC2 Instance
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to AWS Console

&lt;ul&gt;
&lt;li&gt;Go to aws.amazon.com and sign in&lt;/li&gt;
&lt;li&gt;Search for "EC2" in the top search bar&lt;/li&gt;
&lt;li&gt;Select "EC2" from the services list&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Launch Instance Configuration&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click "Launch Instance" button&lt;/li&gt;
&lt;li&gt;Enter a meaningful name for your instance&lt;/li&gt;
&lt;li&gt;Select Ubuntu Server as the Amazon Machine Image (AMI)

&lt;ul&gt;
&lt;li&gt;Alternative: Amazon Linux 2 (uses yum instead of apt)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Choose instance type (t2.micro is eligible for free tier)&lt;/li&gt;
&lt;li&gt;Create or select a key pair for SSH access&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Network Security Configuration&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new security group or select existing&lt;/li&gt;
&lt;li&gt;Add inbound rules:

&lt;ul&gt;
&lt;li&gt;HTTP (Port 80)&lt;/li&gt;
&lt;li&gt;HTTPS (Port 443)&lt;/li&gt;
&lt;li&gt;SSH (Port 22)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Configure security group name and description&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h2&gt;
  
  
  Step 2: User Data Configuration
&lt;/h2&gt;

&lt;p&gt;Add the following script in the user data section during instance creation. This script will automatically install and configure Nginx when the instance launches.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# Update package lists&lt;/span&gt;
apt update
apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;

&lt;span class="c"&gt;# Install nginx&lt;/span&gt;
apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nginx

&lt;span class="c"&gt;# Display nginx version&lt;/span&gt;
nginx &lt;span class="nt"&gt;-v&lt;/span&gt;

&lt;span class="c"&gt;# Start and enable nginx service&lt;/span&gt;
systemctl start nginx
systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;nginx

&lt;span class="c"&gt;# Set permissions for web root directory&lt;/span&gt;
&lt;span class="nb"&gt;chmod &lt;/span&gt;2775 /var/www/html
find /var/www/html &lt;span class="nt"&gt;-type&lt;/span&gt; d &lt;span class="nt"&gt;-exec&lt;/span&gt; &lt;span class="nb"&gt;chmod &lt;/span&gt;2775 &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
find /var/www/html &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-exec&lt;/span&gt; &lt;span class="nb"&gt;chmod &lt;/span&gt;0664 &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;

&lt;span class="c"&gt;# Create custom index page&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&amp;lt;h3&amp;gt; Welcome to DevOps Stage 0 - Ayomide/Mischief &amp;lt;/h3&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /var/www/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Launch and Verify
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Launch the instance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review all configurations&lt;/li&gt;
&lt;li&gt;Click "Launch Instance"&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify Deployment&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait 2-3 minutes for instance to initialize&lt;/li&gt;
&lt;li&gt;Copy the public IP address from instance details&lt;/li&gt;
&lt;li&gt;Open a web browser and navigate to: &lt;a href="http://54.236.249.255" rel="noopener noreferrer"&gt;http://54.236.249.255&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;You should see your custom welcome page&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h2&gt;
  
  
  Step 4: Maintenance and Clean Up
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Regular Maintenance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regularly update system packages: &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Monitor system logs: &lt;code&gt;sudo tail -f /var/log/nginx/access.log&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Check Nginx status: &lt;code&gt;sudo systemctl status nginx&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clean Up&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stop instance when not in use: AWS Console → EC2 → Select Instance → Instance State → Stop&lt;/li&gt;
&lt;li&gt;To permanently remove: AWS Console → EC2 → Select Instance → Instance State → Terminate&lt;/li&gt;
&lt;li&gt;Remember to delete associated resources (EBS volumes, Elastic IPs) to avoid charges&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;p&gt;If the web page doesn't load:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Verify instance status is "running"&lt;/li&gt;
&lt;li&gt;Check security group settings&lt;/li&gt;
&lt;li&gt;Verify Nginx is running: &lt;code&gt;sudo systemctl status nginx&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Check Nginx error logs: &lt;code&gt;sudo cat /var/log/nginx/error.log&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Remember: Always terminate resources you're not actively using to avoid unnecessary AWS charges.&lt;/p&gt;

&lt;p&gt;To be connected to top talents who make the entire deployment process feel like a breeze, visit &lt;a href="https://hng.tech/hire/devops-engineers" rel="noopener noreferrer"&gt;HNG Tech&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Azure Storage Saga. Part 1</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Mon, 15 Jan 2024 21:04:58 +0000</pubDate>
      <link>https://dev.to/aybims/the-azure-storage-saga-part-1-oom</link>
      <guid>https://dev.to/aybims/the-azure-storage-saga-part-1-oom</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;This article is the first in a series that delves into different scenarios and use cases for configuring storage for an organization using Azure.&lt;/p&gt;

&lt;p&gt;The given storage requirement is: "The IT department needs to prototype different storage scenarios and to train new personnel. The content isn’t important enough to back up and doesn’t need to be restored if the data is overwritten or removed. A simple configuration that can be easily changed is desired."&lt;/p&gt;

&lt;p&gt;Based on this prompt, we will be creating a storage account with minimal configuration.&lt;/p&gt;

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

&lt;p&gt;In order to complete this project, you will need an Azure account. If you do not currently have one, you can create a new one &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, click on the create a resource button&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;In the storage section, click on create storage account
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3m5n80im5bijym9qc2vz.png" alt="Resource Selection page"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a couple of information that needs to be inputted here&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can decide to create a new resource group as shown here or you can use an existing resource group&lt;/li&gt;
&lt;li&gt;Input a unique storage account name&lt;/li&gt;
&lt;li&gt;Pick a region close to you&lt;/li&gt;
&lt;li&gt;Based on the given requirements for the storage account, we do not need to use a Premium storage type. Select the standard storage type&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure that the selected redundancy is Locally-redundant storage(LRS)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4paoj88r227l9m8gfp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4paoj88r227l9m8gfp9.png" alt="Storage Account Creation Page"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure that Enable storage account access key is left unchecked. We do not need this feature because our requirement is a simple configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on review and wait for validation to be completed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Finally, click on create and wait for your storage account to be created&lt;/li&gt;
&lt;li&gt;After it has been successfully created, your storage account is ready to be created
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgncge7jern1p3uq02euw.png" alt="Created storage account page"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Word On Clean-Up
&lt;/h3&gt;

&lt;p&gt;It is recommended to delete your resources when they are no longer in use. This will prevent unused resources from accumulating unwanted costs. You can always recreate the resources when you need them later.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d4w6t21va1bmxarkqg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7d4w6t21va1bmxarkqg6.png" alt="Clean-up"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Getting Started With AWS Cloudformation</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Tue, 28 Nov 2023 21:29:02 +0000</pubDate>
      <link>https://dev.to/aybims/getting-started-with-aws-cloudformation-1h90</link>
      <guid>https://dev.to/aybims/getting-started-with-aws-cloudformation-1h90</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The term "cloudformation" is frequently used in discussions on infrastructure as code (IAC), but what exactly is it? Let's dive right in:&lt;/p&gt;

&lt;p&gt;CloudFormation is a service provided by Amazon Web Services (AWS) that allows you to define and provision AWS infrastructure as code. With CloudFormation, you can use a template to describe the resources and properties needed for your applications, and then deploy those resources in a predictable and repeatable way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is it necessary
&lt;/h2&gt;

&lt;p&gt;Here are some key reasons why AWS cloudformation is necessary&lt;br&gt;
1) &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt;: CloudFormation allows you to define and manage your infrastructure using code. This approach, known as Infrastructure as Code (IaC), brings several benefits, including version control, code reuse, and the ability to treat infrastructure changes like software changes.&lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;Automation&lt;/strong&gt;: CloudFormation enables automation of the infrastructure provisioning process. Instead of manually creating and configuring resources, you can use templates to define your infrastructure requirements, allowing for consistent and repeatable deployments. &lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;Consistency and Standardization&lt;/strong&gt;: With CloudFormation, you can define a standard set of resources, configurations, and dependencies for your applications. This ensures that your infrastructure is consistent across different environments (development, testing, production) and over time.&lt;/p&gt;

&lt;p&gt;4) &lt;strong&gt;Scalability&lt;/strong&gt;: As your application grows, manually managing infrastructure becomes challenging. CloudFormation allows you to scale your infrastructure seamlessly. You can easily replicate templates to provision additional resources, whether it's adding more servers, databases, or other components. &lt;/p&gt;

&lt;p&gt;5) &lt;strong&gt;Versioning and Rollback&lt;/strong&gt;: CloudFormation templates can be version-controlled using standard version control systems like Git. This enables you to track changes, roll back to previous versions, and maintain a history of your infrastructure configurations.&lt;/p&gt;
&lt;h2&gt;
  
  
  Basic Syntax
&lt;/h2&gt;

&lt;p&gt;AWS Cloudformation is defined either in JSON or YAML format. The choice between JSON and YAML is largely a matter of personal preference, as both formats are supported.&lt;br&gt;
Templates consist of sections like Resources, Parameters, Outputs, etc.&lt;br&gt;
Let's break each one down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack&lt;/strong&gt;: is a set of AWS resources created and managed together.&lt;br&gt;
&lt;strong&gt;Resource&lt;/strong&gt;: is an AWS component like EC2 instance, S3 bucket, etc.&lt;br&gt;
&lt;strong&gt;Parameters&lt;/strong&gt;: are input values for your template.&lt;br&gt;
&lt;strong&gt;Output&lt;/strong&gt;: Values you want to view after the stack is created.&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating a Cloudformation Template
&lt;/h2&gt;

&lt;p&gt;We will be working on a YAML template that creates an S3 bucket:&lt;/p&gt;
&lt;h3&gt;
  
  
  Resource Definition:
&lt;/h3&gt;

&lt;p&gt;We will start by declaring the resource name and the resource type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyS3Bucket&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::S3::Bucket&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parameters:
&lt;/h3&gt;

&lt;p&gt;Parameters allow you to input custom values when you create or update a stack. They provide a way to make your CloudFormation templates more flexible and reusable.&lt;br&gt;
Example parameter in the template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;BucketName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;String&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can reference parameters within your template using the &lt;code&gt;!Ref&lt;/code&gt; function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyS3Bucket&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::S3::Bucket&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;BucketName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;!Ref&lt;/span&gt; &lt;span class="s"&gt;BucketName&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Outputs:
&lt;/h3&gt;

&lt;p&gt;Outputs help you to get useful information after stack creation.&lt;br&gt;
An example output would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;BucketArn&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;!GetAtt&lt;/span&gt; &lt;span class="s"&gt;MyS3Bucket.Arn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Connecting the dots:
&lt;/h3&gt;

&lt;p&gt;The completed cloudformation file would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;AWSTemplateFormatVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2010-09-09"&lt;/span&gt;
&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;simple&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;CloudFormation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;template&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;create&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;an&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;S3&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;bucket."&lt;/span&gt;

&lt;span class="na"&gt;Parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;BucketName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;String&lt;/span&gt;
    &lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Name&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;S3&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;bucket."&lt;/span&gt;

&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyS3Bucket&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::S3::Bucket&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;BucketName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;!Ref&lt;/span&gt; &lt;span class="s"&gt;BucketName&lt;/span&gt;

&lt;span class="na"&gt;Outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;BucketArn&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Value&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;!GetAtt&lt;/span&gt; &lt;span class="s"&gt;MyS3Bucket.Arn&lt;/span&gt;
    &lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Amazon&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Resource&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Name&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(ARN)&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;of&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;created&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;S3&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;bucket."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deploying a Stack:
&lt;/h3&gt;

&lt;p&gt;Now that our cloudformation template file has been created, we will now consider how to deploy the template. You can use the AWS Management Console, AWS CLI, or SDKs to deploy your CloudFormation stack.&lt;br&gt;
You can run this command to deploy the stack using the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws cloudformation create-stack &lt;span class="nt"&gt;--stack-name&lt;/span&gt; MyStack &lt;span class="nt"&gt;--template-body&lt;/span&gt; file://template.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Update and Delete:
&lt;/h3&gt;

&lt;p&gt;If any changes have been made to your cloudformation template, you can update your stack with changes to the template using this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws cloudformation update-stack &lt;span class="nt"&gt;--stack-name&lt;/span&gt; MyStack &lt;span class="nt"&gt;--template-body&lt;/span&gt; file://template.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Delete the stack when you're done:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws cloudformation delete-stack &lt;span class="nt"&gt;--stack-name&lt;/span&gt; MyStack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations!!! You have successfully created and deleted a cloudformation stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Learning never ends. After successfully deploying your cloudformation stack, consider the following suggestions to improve and build on your knowledge:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: The importance of documentation cannot be overemphasized. Detail the purpose of each resource and any configuration specifics in your template file. Future you will thank you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation and CI/CD Integration&lt;/strong&gt;: Integrate CloudFormation into your continuous integration/continuous deployment (CI/CD) pipeline so you don't have to manage anything manually. Tools like AWS CodePipeline and AWS CodeBuild can be used for this purpose to easily detect and update your cloudformation stack based on changes to the template.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Till next time, keep learning, keep growing👋&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deploying A Multi-container Application Using Azure Kubernetes Service</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Sat, 14 Oct 2023 18:16:01 +0000</pubDate>
      <link>https://dev.to/aybims/deploying-a-multi-container-application-using-azure-kubernetes-services-371c</link>
      <guid>https://dev.to/aybims/deploying-a-multi-container-application-using-azure-kubernetes-services-371c</guid>
      <description>&lt;p&gt;This article is part of a series that delves into developing an application using both AWS and Azure. Please refer to &lt;a href="https://dev.to/aybims/deploying-a-multi-container-application-using-aws-eks-5g8e"&gt;this article&lt;/a&gt; for more information on multi-container applications and the advantages of using them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites for the project
&lt;/h2&gt;

&lt;p&gt;To deploy this application using Azure Kubernetes Service (AKS), a few conditions need to be satisfied. You need to have:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An Azure Account&lt;/li&gt;
&lt;li&gt;Azure CLI installed&lt;/li&gt;
&lt;li&gt;A Github Account&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Implementation Of the Project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Setting Up Your Environment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You will need to clone the github repository containing the code in order to get started. You can find the starter files &lt;a href="https://github.com/AyBims/multi-container-deployment-k8s-azure" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After successfully cloning the files, you will need to connect to your azure account using the &lt;code&gt;az login&lt;/code&gt; command. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Creating Azure Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create an Azure resource group that will contain all your resources&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscciu3qj3lc91d9ra055.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fscciu3qj3lc91d9ra055.png" alt="Resource Group Creation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create your Azure kubernetes service(AKS) cluster. Specify the resource group you created in the previous step as well as the number of nodes you want your container to have&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cwkizspk8qb9c2stp8g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cwkizspk8qb9c2stp8g.png" alt="AKS container Creation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect your AKS cluster to kubectl&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpemjhp1sf8smp0hkhufr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpemjhp1sf8smp0hkhufr.png" alt="connect AKS to kubectl"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get the node groups to confirm that your AKS cluster has been properly setup and configured with kubectl&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5fxn0sm95ej4o9g7g32.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5fxn0sm95ej4o9g7g32.png" alt="kubectl get nodes"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deploying Your Aplication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;kubectl apply -f ./config&lt;/code&gt; to apply the configuration files. Get the list of services and get the external IP address of the frontend service &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopy5qsus4yci13cs3uli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopy5qsus4yci13cs3uli.png" alt="Kubectl get services"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visit the external Ip address to view the application&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzby3xnxkep383m7aul3b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzby3xnxkep383m7aul3b.png" alt="Working Application"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Word On Cleanup
&lt;/h3&gt;

&lt;p&gt;It is advisable to terminate any resource that is not currently in use. You can always provision them again when you're ready.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Delete the Services and pods that you have provisioned&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkqblv5mnb98bktodmnl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkqblv5mnb98bktodmnl.png" alt="Delete deployments"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Delete the AKS cluster&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Finally, delete the Azure resource group
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbs6q6nsyag1c8wtu42a.png" alt="Delete Resource Group"&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This guide covered how to use the Azure Kubernetes service to deploy your applications. I hope that it has helped motivate you to get started using AKS. Happy deploying! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deploying A Multi-container Application Using AWS EKS</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Sat, 30 Sep 2023 21:07:33 +0000</pubDate>
      <link>https://dev.to/aybims/deploying-a-multi-container-application-using-aws-eks-5g8e</link>
      <guid>https://dev.to/aybims/deploying-a-multi-container-application-using-aws-eks-5g8e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What is a Multi-container Application&lt;/strong&gt;&lt;br&gt;
A multi-container application, also known as a multi-container pod or multi-container service, is a software application that consists of multiple containers that work together to perform a specific task or set of tasks. Typically, container orchestration tools like Kubernetes or Docker Compose are used to manage and orchestrate these containers.&lt;/p&gt;

&lt;p&gt;Each container within the same pod or service in a multi-container application is built to handle a particular component of the functionality of the application. Within the same pod or service, these containers can share data or resources and communicate with one another across a common network namespace&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of using Multi-container Applications&lt;/strong&gt;&lt;br&gt;
We would be discussing some of the advantage of using static web apps to host our applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Modularity - Multi-container apps encourage modularity by enabling you to divide your application into more manageable, smaller components. It is simpler to design, test, and maintain your program when each container may represent a distinct section of it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Isolation - Containers offer a high level of isolation between the various components of your application. Every container has its own isolated environment, complete with file system and dependencies, that it uses to run. Conflicts are avoided and changes to one container don't have an impact on others thanks to this isolation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability - Depending on their resource needs, individual containers can be scaled individually. With this flexibility, you can provide additional resources to parts of your application that require them, thereby enhancing its overall performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rapid Deployment - Containers are designed to be deployed quickly. With little overhead, containers can be created, started, stopped, and updated. Modern application development and continuous integration/continuous deployment (CI/CD) pipelines require this agility.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites for the project&lt;/strong&gt;&lt;br&gt;
There are a few prerequisites needed before we can deploy the application&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Github account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An AWS account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS CLI configured&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;EKSCTL installed&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;br&gt;
The github repository containing the code must first be cloned. You can find the starter files &lt;a href="https://github.com/AyBims/multi-container-deployment-k8s-aws"&gt;here&lt;/a&gt;. After the prerequisites have been satisfied and you have cloned the repository to your local machine, you can simply navigate to your folder and run your cluster.yaml file&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jG_I10tX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bnz8f3kwny4zeiao748h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jG_I10tX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bnz8f3kwny4zeiao748h.png" alt="Deploying the application" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After your kubernetes cluster has been successfully created, you can navigate and verify from the AWS console that your cluster was built successfully&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3KK-RInU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qogurzdn2rj7smj17ax8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3KK-RInU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qogurzdn2rj7smj17ax8.png" alt="Checking the AWS console" width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run this command to apply the files and create the services and pods&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f ./config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can view your running services here and also get the external IP address for your application&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r0FvlyCe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n3fzyowgebarexqcvy8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r0FvlyCe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n3fzyowgebarexqcvy8u.png" alt="Checking the running pods" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can navigate to the external IP address to view your running application&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lCgF0IE0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnllpa6sjd1sly1lvc3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lCgF0IE0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnllpa6sjd1sly1lvc3t.png" alt="Application Running" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A word on cleanup&lt;/strong&gt;&lt;br&gt;
It is always best practice to delete your resources whenever they are not in use. Even if you would not be using them for a couple of hours, you should still delete your resources. You can always start them up again when you're ready. This will help you prevent being billed for resources that you do not need. &lt;br&gt;
You can simply run these commands to delete your cluster and all accompanying resources.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl delete -f ./config
eksctl delete cluster -f cluster.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>aws</category>
      <category>kubernetes</category>
      <category>microservices</category>
      <category>eks</category>
    </item>
    <item>
      <title>How to create a storage account and upload Blob files in Azure</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Thu, 04 May 2023 10:39:02 +0000</pubDate>
      <link>https://dev.to/aybims/how-to-create-a-storage-account-and-upload-blob-files-in-azure-4gkd</link>
      <guid>https://dev.to/aybims/how-to-create-a-storage-account-and-upload-blob-files-in-azure-4gkd</guid>
      <description>&lt;p&gt;To create a storage account in Azure, the first thing we will do is login into our azure account and click on create a resource.&lt;/p&gt;

&lt;p&gt;Search for storage account and click on create storage account. Create a resource group and add a name for the storage account.&lt;/p&gt;

&lt;p&gt;Your storage account name is unique across all Azure accounts. No two storage accounts can have the same name. choose locally-redundant storage under redundancy (we are choosing this to save cost). You can leave everything else as default and proceed to create an account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HnpOznM0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr1kgj3dlgqq89bx2wbz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HnpOznM0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr1kgj3dlgqq89bx2wbz.png" alt="Creating storage account" width="720" height="1413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After your storage account is done creating, navigate to containers under the Data storage section and click on create container. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EjXp36lm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxltryr06l1fsdpz7eq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EjXp36lm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxltryr06l1fsdpz7eq1.png" alt="Navigating to containers" width="720" height="1412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under the public access level, change it to Blob. This will ensure that you can view the blobs/files that you add to the container&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z0JN8Tcb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78f8qg8bi1h6melw5yyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z0JN8Tcb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78f8qg8bi1h6melw5yyr.png" alt="Creating container" width="720" height="1159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we would upload a Blob into the container &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mMwa12qK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x42sdg3862a5qq0s9ao2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mMwa12qK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x42sdg3862a5qq0s9ao2.png" alt="Uploading blob" width="720" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can view information such as the size of your file and which type file was uploaded. You will also find the url that you can use in accessing the uploaded image&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c_Wba1gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1qisqiocxiz8ba6ecgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c_Wba1gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1qisqiocxiz8ba6ecgb.png" alt="Viewing information about the blob" width="720" height="980"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can view the contents of the file using the public url for the item&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--coVa3Rm2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddoukgy3404mqki3csbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--coVa3Rm2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddoukgy3404mqki3csbb.png" alt="Viewing the blob" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, don't forget to delete all the resources that we created; the resource group, container and the storage account&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>My first month in the SCA Cloud SCA: My growth and challenges</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Thu, 04 May 2023 10:19:14 +0000</pubDate>
      <link>https://dev.to/aybims/my-first-month-in-the-sca-cloud-sca-my-growth-and-challenges-20bh</link>
      <guid>https://dev.to/aybims/my-first-month-in-the-sca-cloud-sca-my-growth-and-challenges-20bh</guid>
      <description>&lt;p&gt;I've always been fascinated by puzzles and the world of DevOps has been one big puzzle that I have enjoyed working through. This love for puzzles has also pushed me to want to help other people work through their cloud puzzles. It is what motivated me into preparing and obtaining an AWS Solutions Architect Associate certification. I want to help people make the right choices concerning their cloud infrastructure and the She Code Africa cloud bootcamp has helped me move closer to this goal.&lt;/p&gt;

&lt;p&gt;I learnt about the She Codes Africa cloud bootcamp on Twitter through the shecodeafrica page and I saw it as an opportunity to both further my cloud learning journey but also to connect with a community of people that are as interested in cloud technologies as I am.&lt;/p&gt;

&lt;p&gt;The program started on 31st of March and it is a two months program. I will give a brief overview of everything I've learnt in the last 4 weeks&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WEEK ONE&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We discussed cloud computing and AWS fundamentals, including the different cloud deployment models and AWS services such as EC2,S3 and IAM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We setup our AWS account and learnt how to setup our EC2 instance as well as how to use an s3 bucket to host a static website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I was able to share my knowledge by writing an article on &lt;a href="https://dev.to/aybims/how-to-create-and-connect-to-a-windows-ec2-instance-in-aws-3ekb"&gt;How to create and connect to an EC2 instance&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of week 1, I was able to refresh my knowledge of cloud computing and AWS fundamentals&lt;br&gt;
Prior knowledge of AWS helped me in understanding the concepts&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WEEK TWO&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We learned about Azure and its concepts, we worked on creating our Azure accounts and we explored Azure core services like compute, storage and analytics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We discussed monitoring and how to use monitoring services to track and oversee our Azure resources.&lt;br&gt;
I also wrote another article on &lt;a href="https://dev.to/aybims/how-to-create-an-azure-static-web-application-oen"&gt;How to host a static web application in Azure&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of week 2, I had a solid grasp of core Azure services. I have never used Azure prior to this and I found it fascinating to be able to compare and try to figure out the AWS equivalent of some services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WEEK THREE&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We explored security; both the general security and the network security features on Azure. We discussed how to protect against threats and how to secure network connectivity in Azure. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We also discussed Identity, governance, privacy, and compliance features on Azure and learnt about Azure cost management and service level agreements which will help you to get the best value for your money on Azure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, we deployed a virtual machine on the Azure portal, which gave me hands-on experience with creating and managing Azure resources. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of week 3, I fully understood how to secure Azure resources and manage costs on Azure effectively. I also worked on configuring and formatting disks both on a Linux VM and also on a Windows VM. I had the opportunity to learn LVM and disk partitioning&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WEEK FOUR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We started SQL and learned about its fundamental concepts and how it is used in Azure.&lt;br&gt;
I carried out the assignment about practicing SQL on Codecademy and this helped me to easily understand the concepts in class.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I learnt how to deploy and configure servers, instances, and databases for Azure SQL,.we practiced launching the three types of SQL options in Azure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We practiced using SQL Server Management Studio (SSMS) to backup and restore a database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We discussed how to secure data using Azure SQL and how to encrypt data in our Azure SQL databases.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of week 4, I had a good grasp of SQL, it's commands and how to use it in Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONCLUSION&lt;/strong&gt;&lt;br&gt;
I have had an amazing time with She Codes Africa. I have learnt a lot about different Azure services, security and management in Azure, SQL as well as database management in Azure. I have gained practical experience in working with Azure and I can't wait to get started on the remaining concepts we will be covering in the cloud bootcamp.&lt;/p&gt;

&lt;p&gt;I have nothing but good things to say about the She Codes Africa bootcamp as it has pushed me to better myself. Before the bootcamp, I have only ever written a couple of articles but I have been more consistent both in writing articles as well as in sharing my learning journey since the start of the program. The community has been so supportive and I and my classmates have been able to rely as well as learn from each other. My facilitators have also always been available to handle enquiries and have made the learning process beautiful for me.&lt;/p&gt;

&lt;p&gt;I would recommend She Codes Africa to other women who are looking for a community of like minds and a place to grow both as individuals and with the community. I am grateful for the opportunity to be a part of this bootcamp and I'm so excited to see what the next phase holds in store.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>How to create an Azure static web application</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Fri, 14 Apr 2023 00:06:50 +0000</pubDate>
      <link>https://dev.to/aybims/how-to-create-an-azure-static-web-application-oen</link>
      <guid>https://dev.to/aybims/how-to-create-an-azure-static-web-application-oen</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What is a static web app&lt;/strong&gt;&lt;br&gt;
Azure Static Web Apps is a cloud service owned by Azure that allows you to automatically build and deploy full stack web apps from a code repository to Azure&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of using static web apps&lt;/strong&gt;&lt;br&gt;
We would be discussing some of the advantage of using static web apps to host our applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;SSL Certificates - Azure is responsible both for creating an SSL certificate for your website endpoint but also for maintaining and renewing the certificate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Highly Available - Azure takes charge of distributing your website content to your end-users. It also makes sure that your website is available 99.999% of the time&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites for the project&lt;/strong&gt;&lt;br&gt;
There are a few prerequisites needed before we can create a static web application in Azure&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Github account&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An Azure account&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;br&gt;
First we need to create a Github repository and upload the files for our website. You can also choose to fork my &lt;a href="https://github.com/AyBims/Admin_dashboard"&gt;Github repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J0GK-uHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j7g4wg0x92k9g2fo9wsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J0GK-uHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j7g4wg0x92k9g2fo9wsq.png" alt="Github Repository" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After setting up your Github repository, login to your Azure account and click on create a resource&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l3zhGjSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wigglx6icvnz6gk7d9sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l3zhGjSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wigglx6icvnz6gk7d9sg.png" alt="Azure Dashboard" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Search for static web app, this will direct you to the Azure marketplace and bring out the resource&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jpKVrYmG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0iu1vuzwxucdofydksu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jpKVrYmG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0iu1vuzwxucdofydksu.png" alt="Azure marketplace" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select the resource and this will redirect you to a page where you would be creating your static web app &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LpP36HWq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/577vo999ptc9m65hlb8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LpP36HWq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/577vo999ptc9m65hlb8q.png" alt="Azure static web app create page" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select Github as your deployment method and authorise Azure to have access to your Github account. Select the github repository you want to use for this project from the list of repositories in your account. Add the github branch where your project is located&lt;/p&gt;

&lt;p&gt;This is especially useful when you are working on a repository that has several branches for different features but you want only updates that have been merged to specific branches to be deployed to the end-users&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cYgJ4iah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zid3ssayw8pc6wp2cpzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cYgJ4iah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zid3ssayw8pc6wp2cpzy.png" alt="Azure static web app portal, Github connection" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;br&gt;
Under build details, select custom and provide the path to where your index.html file is located as the app location. After completing all these steps, go ahead to create your static web app&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5LO6aShM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xat26xmpr8uggkzqffqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5LO6aShM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xat26xmpr8uggkzqffqn.png" alt="Azure static web app, build details" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There would be a notification on your screen informing you that content has not been received for your site yet. You can choose to click on that link and check on the status of your Github Actions runs or just wait a few minutes and check the url provided on that page&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RyKWAsJK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51lb6nzcmy9586egl7pl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RyKWAsJK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51lb6nzcmy9586egl7pl.png" alt="Azure static web app created page" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If everything went according to plan, you should be able to see the contents of your website when you click on the url provided on the Azure portal&lt;/p&gt;

&lt;p&gt;If your url is not showing your website data, you can retrace your steps in order to figure out what went wrong&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fj9-dSgv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhlfmikm129ojpaoawzm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fj9-dSgv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhlfmikm129ojpaoawzm.png" alt="Website up and running" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Do not forget to delete the Azure static web app that you created after you are done with the implementation of the project so that you do not incur unplanned billing charges.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>azure</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to create and connect to a Windows EC2 instance in AWS</title>
      <dc:creator>Ayomide</dc:creator>
      <pubDate>Thu, 06 Apr 2023 14:33:53 +0000</pubDate>
      <link>https://dev.to/aybims/how-to-create-and-connect-to-a-windows-ec2-instance-in-aws-3ekb</link>
      <guid>https://dev.to/aybims/how-to-create-and-connect-to-a-windows-ec2-instance-in-aws-3ekb</guid>
      <description>&lt;p&gt;In this post, I will be taking us through how to create and connect to a windows EC2 instance in AWS.&lt;br&gt;
We first have to create an AWS account and connect to the AWS console. You can create an AWS account using &lt;a href="//https//:aws.amazon.com"&gt;this link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launching and configuring the instance&lt;/strong&gt;&lt;br&gt;
Navigate to the EC2 console and click on launch new instance. Follow the following steps to setup your instance.&lt;/p&gt;

&lt;p&gt;Enter a name for your instance&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rx_LoATX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smgb5w64izz9cyav4ejm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rx_LoATX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smgb5w64izz9cyav4ejm.png" alt="Selection of instance name" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under select amazon machine image(AMI) select microsoft windows instance, it has a free tier eligible version&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ueuIeMd8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b583g6795t1qgbofo0vk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ueuIeMd8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b583g6795t1qgbofo0vk.png" alt="Selection of AMI" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can choose to create a new key pair if you do not already have one. please note that you will not be able to connect to the windows instance using the remote desktop protocol(RDP) if you choose to continue without a key pair&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_okkYWPO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oo5gwtmo4a4il09xd6mj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_okkYWPO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oo5gwtmo4a4il09xd6mj.png" alt="Creation of keypair" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under network setting, make sure that your instance security group allows RDS traffic as it would be impossible to connect to the instance using RDS if the security group rules are not updated&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LKiQZk0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7oejsxlre9hngnamnme3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LKiQZk0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7oejsxlre9hngnamnme3.png" alt="Network and security group setting" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leave the other settings as default and proceed to create your instance. Once your instance has been provisioned, wait for it to be in a running state. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connecting to the instance&lt;/strong&gt;&lt;br&gt;
We will now try to connect to our instance. Select your instance and click on the connect bottom located at the top of the screen&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zDZ92AqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzdebq4x6v0wo38oykmb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zDZ92AqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzdebq4x6v0wo38oykmb.png" alt="Instance information" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select remote desktop protocol as your mode for connecting to the instance. Download your remote desktop file and select get windows password&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yaav9IvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/buk5pq16j2loma0soxs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yaav9IvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/buk5pq16j2loma0soxs8.png" alt="Connecting to instance using RDP" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will direct you to a new window where you will upload the pem file that was downloaded to your local computer when you created a new keypair. After uploading your file, click on decrypt password &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n6L8M2oS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ytmtn6knqn0fxu7nrz8r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n6L8M2oS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ytmtn6knqn0fxu7nrz8r.png" alt="Decrypting image" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will take you back to the previous page but your password would have been decrypted&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SYPAqCrD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxpmgumtsxw2cugcwc8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SYPAqCrD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxpmgumtsxw2cugcwc8m.png" alt="Showing decrypted password" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the RDP file you downloaded to your system, this will prompt you to enter your password so that you can connect to your windows instance&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Dw05sHII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a51e3cu6x67iojduomw8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dw05sHII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a51e3cu6x67iojduomw8.png" alt="Connecting to windows instance prompt from RDP file" width="458" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You might get a pop-up that the security certificate is not trusted. Agree to connect despite the unknown security certificate&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ycetqEjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y12upd3g2ixqzhu1jh9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ycetqEjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y12upd3g2ixqzhu1jh9f.png" alt="Certificate not trusted pop-up" width="393" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will start the connection process and you should soon be connected to your instance as shown below&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rL4jREpE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t4dqnbj8ekfbb6yle0ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rL4jREpE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t4dqnbj8ekfbb6yle0ow.png" alt="Connected to instance" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cleaning up resources&lt;/strong&gt;&lt;br&gt;
It is always best practice to clean up resources not currently in use to reduce costs. After disconnecting from your instance, navigate to the EC2 dashboard on your AWS console and select running instances. Click on terminate instance from the instance actions dropdown.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HqdNJbik--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbdhy3cq0yzoqe6ua0t4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HqdNJbik--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbdhy3cq0yzoqe6ua0t4.png" alt="Termination and cleaning up of resources" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
