<?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: Robin Sishodia</title>
    <description>The latest articles on DEV Community by Robin Sishodia (@robinsishodia).</description>
    <link>https://dev.to/robinsishodia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4213306%2F85d72d36-dc3f-4a0e-9f8a-e02f7558a2c3.jpg</url>
      <title>DEV Community: Robin Sishodia</title>
      <link>https://dev.to/robinsishodia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robinsishodia"/>
    <language>en</language>
    <item>
      <title>DevOps Lab, Part 2: Building a Linux Server Health Report with Bash and Git</title>
      <dc:creator>Robin Sishodia</dc:creator>
      <pubDate>Fri, 30 Oct 2026 23:58:08 +0000</pubDate>
      <link>https://dev.to/robinsishodia/devops-lab-part-2-building-a-linux-server-health-report-with-bash-and-git-1p3j</link>
      <guid>https://dev.to/robinsishodia/devops-lab-part-2-building-a-linux-server-health-report-with-bash-and-git-1p3j</guid>
      <description>&lt;p&gt;In &lt;a href="https://dev.to/robinsishodia/building-a-devops-support-ticket-platform-part-1-ubuntu-on-aws-ec2-36f5"&gt;Part 1&lt;/a&gt;, I launched an Ubuntu server on AWS EC2 and connected to it. For this checkpoint, I moved from setting up the server to doing something useful on it: creating a small Bash script that prints a server health report, documenting it, and pushing the files to GitHub.&lt;/p&gt;

&lt;p&gt;I am learning DevOps through small, hands-on tasks. I use AI assistance for guidance and documentation, while checking the commands and their output as I go.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;The script reports four things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The current UTC date and time&lt;/li&gt;
&lt;li&gt;Disk usage for the root filesystem&lt;/li&gt;
&lt;li&gt;Memory and swap usage&lt;/li&gt;
&lt;li&gt;Server uptime and load averages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The completed files are in my &lt;a href="https://github.com/RobinSishodia/devops-support-ticket-platform" rel="noopener noreferrer"&gt;devops-support-ticket-platform repository&lt;/a&gt;, under &lt;code&gt;mini-projects/01-linux-healthcheck/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is a beginner learning project. The support-ticket application itself is a later checkpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Understanding where I am in Linux
&lt;/h2&gt;

&lt;p&gt;My workspace on the server was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/home/ubuntu/devops-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two basic commands helped me avoid getting lost:&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="nb"&gt;pwd
ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;pwd&lt;/code&gt; prints the current directory. &lt;code&gt;ls -la&lt;/code&gt; lists its contents, including hidden entries and permission details.&lt;/p&gt;

&lt;p&gt;This matters because relative paths start from the current directory. Before creating, opening, or running a file, I need to know where I am.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The health-report script
&lt;/h2&gt;

&lt;p&gt;Here is the script committed to the repository:&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="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"=== SERVER HEALTH REPORT ==="&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Generated at:"&lt;/span&gt;
&lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Disk space:"&lt;/span&gt;
&lt;span class="nb"&gt;df&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt; /

&lt;span class="nb"&gt;echo
echo&lt;/span&gt; &lt;span class="s2"&gt;"Memory:"&lt;/span&gt;
free &lt;span class="nt"&gt;-h&lt;/span&gt;

&lt;span class="nb"&gt;echo
echo&lt;/span&gt; &lt;span class="s2"&gt;"Uptime and workload:"&lt;/span&gt;
&lt;span class="nb"&gt;uptime&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/RobinSishodia/devops-support-ticket-platform/blob/main/mini-projects/01-linux-healthcheck/healthcheck.sh" rel="noopener noreferrer"&gt;View healthcheck.sh on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What each command does
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Selects Bash as the interpreter when the executable script is run directly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;echo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Prints headings or blank lines to make the report readable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;date -u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays the date and time in UTC.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df -h /&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays filesystem capacity and usage for the root filesystem in readable units.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;free -h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays memory and swap statistics in readable units.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;uptime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays uptime, logged-in user count, and load averages.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One distinction I learned: &lt;code&gt;df&lt;/code&gt; reports filesystem space, while &lt;code&gt;free&lt;/code&gt; reports memory. They answer different questions.&lt;/p&gt;

&lt;p&gt;Also, the load averages from &lt;code&gt;uptime&lt;/code&gt; are not CPU usage percentages. They represent average system load over the last 1, 5, and 15 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Running the script
&lt;/h2&gt;

&lt;p&gt;From the repository root, the script can be run with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash mini-projects/01-linux-healthcheck/healthcheck.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another approach is to give the script execute permission and run it directly:&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="nb"&gt;chmod&lt;/span&gt; +x mini-projects/01-linux-healthcheck/healthcheck.sh
./mini-projects/01-linux-healthcheck/healthcheck.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using &lt;code&gt;bash filename&lt;/code&gt; explicitly selects the interpreter. Running &lt;code&gt;./filename&lt;/code&gt; directly requires execute permission and uses the script's shebang.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Reading the result
&lt;/h2&gt;

&lt;p&gt;During the lab, the root filesystem showed roughly 6.8 GB of usable capacity and about 34–35% usage. The memory report showed approximately 952 MiB of RAM and no swap configured. These are observations from this particular instance; another machine will produce different values.&lt;/p&gt;

&lt;p&gt;The point was to understand the output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Disk:&lt;/strong&gt; how much filesystem space is used and available?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory:&lt;/strong&gt; what memory is available, and is swap configured?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uptime:&lt;/strong&gt; how long has the server been running, and what is its recent load?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A report alone does not decide whether the server is healthy. That depends on the workload and what normal looks like for that machine. This script also does not check application availability, send alerts, or retain a history.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Saving the work with Git
&lt;/h2&gt;

&lt;p&gt;I committed the script and its README, then pushed the changes to GitHub.&lt;/p&gt;

&lt;p&gt;A repeatable workflow from the repository root is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
git add mini-projects/01-linux-healthcheck/healthcheck.sh mini-projects/01-linux-healthcheck/README.md
git diff &lt;span class="nt"&gt;--staged&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add Linux server health report mini-project"&lt;/span&gt;
git push
git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before using &lt;code&gt;git push&lt;/code&gt;, the repository needs a configured remote, authentication, and an upstream branch. The commands above assume those are already set up.&lt;/p&gt;

&lt;p&gt;The distinction that finally became clear to me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;git commit records staged changes locally. git push uploads local commits to the remote repository.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;git add&lt;/code&gt; selects what goes into the next commit. &lt;code&gt;git diff --staged&lt;/code&gt; lets me review that selection. A successful commit does not mean the work is already on GitHub.&lt;/p&gt;

&lt;p&gt;At the end of this checkpoint, the push succeeded and Git reported a clean working tree.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Mistakes that helped me learn
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using the wrong filename
&lt;/h3&gt;

&lt;p&gt;A command cannot open or run a file if the name or path is wrong. Checking the current directory and listing its files was more useful than repeatedly trying the same command.&lt;/p&gt;

&lt;p&gt;My troubleshooting sequence is now:&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="nb"&gt;pwd
ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I check the exact spelling and path before trying again.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub authentication
&lt;/h3&gt;

&lt;p&gt;I also encountered an authentication failure while trying to push over HTTPS using a GitHub account password. GitHub account passwords are not used for HTTPS Git authentication.&lt;/p&gt;

&lt;p&gt;I installed GitHub CLI during troubleshooting. Authentication is separate from committing: Git can create a local commit even when access to the remote is not working.&lt;/p&gt;

&lt;p&gt;I keep credentials and authentication codes out of the repository and article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this small project matters to me
&lt;/h2&gt;

&lt;p&gt;This task connected several fundamentals in one exercise: navigating Linux, reading system information, writing a Bash script, understanding file permissions, documenting the result, and using Git.&lt;/p&gt;

&lt;p&gt;The script is small enough that I can explain every command. That makes it a useful starting point for learning automation.&lt;/p&gt;

&lt;p&gt;Possible future improvements include saving reports to a file, scheduling runs, adding meaningful failure checks, and checking an application endpoint. Those are future tasks, rather than features of this version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Completed checkpoint
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Created a Bash server health-report script on Ubuntu EC2&lt;/li&gt;
&lt;li&gt;Ran it and interpreted disk, memory, and uptime output&lt;/li&gt;
&lt;li&gt;Added a README&lt;/li&gt;
&lt;li&gt;Committed and pushed the files to GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/RobinSishodia/devops-support-ticket-platform/tree/main/mini-projects/01-linux-healthcheck" rel="noopener noreferrer"&gt;Linux health-check mini-project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am documenting each completed checkpoint as I learn. If you started DevOps with small Linux or Bash projects, what exercise helped you understand the fundamentals?&lt;/p&gt;

</description>
      <category>devops</category>
      <category>linux</category>
      <category>beginners</category>
      <category>git</category>
    </item>
    <item>
      <title>Building a DevOps Support-Ticket Platform, Part 1: Ubuntu on AWS EC2</title>
      <dc:creator>Robin Sishodia</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:00:59 +0000</pubDate>
      <link>https://dev.to/robinsishodia/building-a-devops-support-ticket-platform-part-1-ubuntu-on-aws-ec2-36f5</link>
      <guid>https://dev.to/robinsishodia/building-a-devops-support-ticket-platform-part-1-ubuntu-on-aws-ec2-36f5</guid>
      <description>&lt;p&gt;I'm starting a hands-on DevOps project around a support-ticket application. The application will grow through Linux hosting, containers, CI/CD, infrastructure as code, Kubernetes, and recovery exercises.&lt;/p&gt;

&lt;p&gt;This first checkpoint is deliberately small: launch an Ubuntu server on AWS, restrict its SSH access, connect to it, and verify the operating system. The ticket application is not deployed yet.&lt;/p&gt;

&lt;p&gt;I’m using AI assistance for setup and documentation. My learning rule is to understand each change, check the actual output, and record what has been completed before moving on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I launched
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Lab configuration&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Region&lt;/td&gt;
&lt;td&gt;Asia Pacific (Mumbai), &lt;code&gt;ap-south-1&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Operating system&lt;/td&gt;
&lt;td&gt;Canonical Ubuntu Server 24.04 LTS, x86_64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instance type&lt;/td&gt;
&lt;td&gt;One &lt;code&gt;t2.micro&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Root disk&lt;/td&gt;
&lt;td&gt;8 GiB, gp3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network&lt;/td&gt;
&lt;td&gt;Default VPC and a public subnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Public IPv4&lt;/td&gt;
&lt;td&gt;Enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Login&lt;/td&gt;
&lt;td&gt;EC2 Instance Connect as &lt;code&gt;ubuntu&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Persistent SSH key pair&lt;/td&gt;
&lt;td&gt;None; browser login uses temporary keys&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is an initial learning configuration. It is not a claim of production readiness or high availability.&lt;/p&gt;

&lt;h2&gt;
  
  
  The connection path
&lt;/h2&gt;

&lt;p&gt;The browser connects through EC2 Instance Connect to the instance’s SSH service on TCP port 22. Successful access needs both authentication and a working network path.&lt;/p&gt;

&lt;p&gt;A public IP alone is not enough. The subnet also needs a route to an internet gateway, the instance needs an SSH service, and the security group must allow the connection source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restricting SSH correctly
&lt;/h2&gt;

&lt;p&gt;The launch wizard initially offered SSH from &lt;code&gt;0.0.0.0/0&lt;/code&gt;. That would allow connection attempts from any IPv4 address. I replaced it with the AWS-managed prefix list for EC2 Instance Connect in Mumbai:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;com.amazonaws.ap-south-1.ec2-instance-connect
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The inbound rule is SSH, TCP 22, with that prefix list as its source. I did not open an application or database port at this checkpoint.&lt;/p&gt;

&lt;p&gt;There is an important distinction here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For SSH directly from my laptop, a source of &lt;strong&gt;My IP&lt;/strong&gt; allows my current public IP address.&lt;/li&gt;
&lt;li&gt;For the browser-based EC2 Instance Connect method used here, the source is AWS’s EC2 Instance Connect service, so its regional prefix list is appropriate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The security group is only one layer. IAM permissions, temporary SSH authentication, and the instance configuration still matter. Allowing a source in a security group does not by itself authenticate a user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I did not download a PEM file
&lt;/h2&gt;

&lt;p&gt;I chose &lt;strong&gt;Proceed without a key pair&lt;/strong&gt; because this lab uses EC2 Instance Connect. It temporarily provides an SSH public key for authentication, so I did not need a saved private key on my laptop.&lt;/p&gt;

&lt;p&gt;This is different from making the machine passwordless or publicly accessible without authentication. If I later want direct SSH access, I will configure that access explicitly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first three Linux commands
&lt;/h2&gt;

&lt;p&gt;After connecting, I verified the user, current directory, and distribution:&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="nb"&gt;whoami
pwd
cat&lt;/span&gt; /etc/os-release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The relevant output was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ubuntu
/home/ubuntu
PRETTY_NAME="Ubuntu 24.04.5 LTS"
VERSION_ID="24.04"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;whoami&lt;/code&gt; confirms which account is executing commands. &lt;code&gt;pwd&lt;/code&gt; shows where relative file paths will start. &lt;code&gt;/etc/os-release&lt;/code&gt; identifies the distribution and release, which helps choose suitable package-management instructions.&lt;/p&gt;

&lt;p&gt;I keep commands separate while learning so it is easy to see which command produced which result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost is part of the lab
&lt;/h2&gt;

&lt;p&gt;A small instance or a &lt;strong&gt;Free tier eligible&lt;/strong&gt; label does not establish that my account has remaining free usage. Account age, plan, credits, and actual consumption affect the bill.&lt;/p&gt;

&lt;p&gt;Compute, retained EBS storage, and public IPv4 usage can contribute charges. Closing the terminal does not stop the instance. My end-of-session routine is to save the work, stop the instance from EC2 when it is not needed, and check for resources that remain billable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is complete, and what comes next
&lt;/h2&gt;

&lt;p&gt;Completed: one Ubuntu EC2 instance launched, SSH limited to the connection service, browser login successful, and the user, home directory, and OS verified.&lt;/p&gt;

&lt;p&gt;Next: refresh package metadata, install the initial tools, create a project workspace, and write a Bash health check. Nginx, the Flask application, persistence, and backups are later checkpoints.&lt;/p&gt;

&lt;p&gt;Each checkpoint will have commands, explanations, verification results, and troubleshooting notes committed to the project repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project repository:&lt;/strong&gt; &lt;a href="https://github.com/RobinSishodia/devops-support-ticket-platform" rel="noopener noreferrer"&gt;devops-support-ticket-platform&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html" rel="noopener noreferrer"&gt;Get started with Amazon EC2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-prerequisites.html" rel="noopener noreferrer"&gt;EC2 Instance Connect prerequisites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/free/free-tier-faqs/" rel="noopener noreferrer"&gt;AWS Free Tier FAQs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/vpc/pricing/" rel="noopener noreferrer"&gt;Public IPv4 pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html" rel="noopener noreferrer"&gt;Stopping and starting EC2 instances&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>linux</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
