<?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>Forem: James Kipsoi</title>
    <description>The latest articles on Forem by James Kipsoi (@lelkiramkeel).</description>
    <link>https://forem.com/lelkiramkeel</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%2F3917107%2F819354f2-2b51-4053-a648-167bb4c9466d.png</url>
      <title>Forem: James Kipsoi</title>
      <link>https://forem.com/lelkiramkeel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lelkiramkeel"/>
    <language>en</language>
    <item>
      <title>Step-by-Step Guide to Setting Up Terraform, AWS CLI, and Your AWS Environment</title>
      <dc:creator>James Kipsoi</dc:creator>
      <pubDate>Mon, 11 May 2026 05:29:26 +0000</pubDate>
      <link>https://forem.com/lelkiramkeel/step-by-step-guide-to-setting-up-terraform-aws-cli-and-your-aws-environment-24d0</link>
      <guid>https://forem.com/lelkiramkeel/step-by-step-guide-to-setting-up-terraform-aws-cli-and-your-aws-environment-24d0</guid>
      <description>&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;Today I am going to take you through the process of setting up Terraform, AWS CLI, and your AWS environment for your DevOps journey.&lt;/p&gt;

&lt;p&gt;But honestly… don’t you think there are already way too many tutorials, blogs, and videos about this? Just search “Terraform setup” and watch your screen become instantly messy with suggestions.&lt;/p&gt;

&lt;p&gt;It is honestly surprising you clicked this one.&lt;br&gt;
A glass of milk for both you and me &lt;/p&gt;

&lt;p&gt;Now, I will not pretend that this guide is magically different from the others. I am just a student DevOps engineer trying to complete a challenge assignment, so forgive me if I sound slightly dramatic along the way.&lt;/p&gt;

&lt;p&gt;Still, this is the exact process I followed.&lt;/p&gt;

&lt;p&gt;Step 1 — Create an AWS Account&lt;/p&gt;

&lt;p&gt;I started by creating an AWS Free Tier account.&lt;/p&gt;

&lt;p&gt;A few important things I quickly learned:&lt;/p&gt;

&lt;p&gt;Always enable billing alerts or budgets early.&lt;br&gt;
Never casually leave EC2 instances running.&lt;br&gt;
Avoid using the root account for daily activities.&lt;/p&gt;

&lt;p&gt;AWS gives enough free resources to learn comfortably, but cloud bills can become dangerous surprisingly fast.&lt;/p&gt;

&lt;p&gt;I also decided to use a separate IAM user instead of the root account for better security practices.&lt;/p&gt;

&lt;p&gt;Step 2 — Install Terraform&lt;/p&gt;

&lt;p&gt;For Terraform, I followed the official HashiCorp installation guide:&lt;/p&gt;

&lt;p&gt;Terraform Install Guide&lt;/p&gt;

&lt;p&gt;Since I use Ubuntu/Linux, I used the Linux installation method.&lt;/p&gt;

&lt;p&gt;After installation, I verified Terraform using:&lt;/p&gt;

&lt;p&gt;terraform version&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Terraform v1.14.5&lt;br&gt;
on linux_amd64&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;provider registry.terraform.io/hashicorp/aws v6.44.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Terraform also informed me that a newer version was available, but the installed version worked perfectly fine for the labs.&lt;/p&gt;

&lt;p&gt;Step 3 — Install AWS CLI&lt;/p&gt;

&lt;p&gt;Next, I installed AWS CLI using the official AWS documentation:&lt;/p&gt;

&lt;p&gt;AWS CLI Quickstart Guide&lt;/p&gt;

&lt;p&gt;After installation, I configured my credentials using:&lt;/p&gt;

&lt;p&gt;aws configure&lt;/p&gt;

&lt;p&gt;I entered:&lt;/p&gt;

&lt;p&gt;Access Key&lt;br&gt;
Secret Access Key&lt;br&gt;
Default region&lt;br&gt;
Output format&lt;/p&gt;

&lt;p&gt;For my region, I chose one close to me and commonly used for learning labs.&lt;/p&gt;

&lt;p&gt;To confirm everything was working correctly, I ran:&lt;/p&gt;

&lt;p&gt;aws sts get-caller-identity&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    "UserId": "AIDAZ24IS2U2RF5HSEXOK",&lt;br&gt;
    "Account": "676206925109",&lt;br&gt;
    "Arn": "arn:aws:iam::676206925109:user/demo-user"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;This confirmed that my AWS CLI authentication was properly configured.&lt;/p&gt;

&lt;p&gt;Common Errors and Quick Fixes&lt;/p&gt;

&lt;p&gt;Even though setup is usually straightforward, people still find creative ways to break things. Here are some common problems and fixes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Terraform Command Not Found&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Problem:&lt;/p&gt;

&lt;p&gt;terraform: command not found&lt;/p&gt;

&lt;p&gt;Fix:&lt;br&gt;
Terraform is either not installed correctly or not added to your PATH.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS Credentials Not Working&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Problem:&lt;/p&gt;

&lt;p&gt;Unable to locate credentials&lt;/p&gt;

&lt;p&gt;Fix:&lt;br&gt;
Run:&lt;/p&gt;

&lt;p&gt;aws configure&lt;/p&gt;

&lt;p&gt;and enter valid credentials.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Access Denied Errors&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Problem:&lt;br&gt;
IAM user lacks permissions.&lt;/p&gt;

&lt;p&gt;Fix:&lt;br&gt;
Attach the required IAM policies or use a user with proper permissions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unexpected AWS Charges&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Problem:&lt;br&gt;
Leaving resources running accidentally.&lt;/p&gt;

&lt;p&gt;Fix:&lt;br&gt;
Always destroy unused infrastructure and set AWS Budgets alerts.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;The setup process was actually smoother than I expected.&lt;/p&gt;

&lt;p&gt;The most interesting part was seeing how Terraform and AWS CLI work together to automate infrastructure management. Once the environment was ready, I could already see how much faster Infrastructure as Code is compared to manually configuring cloud resources through the AWS console.&lt;/p&gt;

&lt;p&gt;Read the docs before starting a 4-hour debugging side quest&lt;br&gt;
Peace.&lt;br&gt;
-lelkiramkeel&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>terraform</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What is Infrastructure as Code and why it is transforming DevOps</title>
      <dc:creator>James Kipsoi</dc:creator>
      <pubDate>Fri, 08 May 2026 03:29:43 +0000</pubDate>
      <link>https://forem.com/lelkiramkeel/what-is-infrastructure-as-code-and-why-it-is-transforming-devops-1a3j</link>
      <guid>https://forem.com/lelkiramkeel/what-is-infrastructure-as-code-and-why-it-is-transforming-devops-1a3j</guid>
      <description>&lt;p&gt;In today’s tech world, success is measured by flexibility, speed, and the ability to accomplish important tasks efficiently within a short time.&lt;br&gt;
That is where automation comes in.&lt;/p&gt;

&lt;p&gt;Infrastructure as Code (IaC) is the epitome of automation in infrastructure management. Instead of performing repetitive and cumbersome tasks manually through a GUI, IaC allows you to define infrastructure using configuration files. These configurations can then be deployed within seconds using simple commands such as terraform apply.&lt;/p&gt;

&lt;p&gt;Declarative vs Imperative Approaches&lt;/p&gt;

&lt;p&gt;There are two main approaches to Infrastructure as Code:&lt;/p&gt;

&lt;p&gt;Declarative Approach&lt;/p&gt;

&lt;p&gt;With the declarative approach, you define the desired end state and let the tool determine how to achieve it.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;“I want 10 servers running.”&lt;/p&gt;

&lt;p&gt;Tools like Terraform handle the process of creating and managing the infrastructure needed to match that desired state.&lt;/p&gt;

&lt;p&gt;Imperative Approach&lt;/p&gt;

&lt;p&gt;With the imperative approach, you define the exact steps required to reach the desired state.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;“Create server 1, create server 2… create server 10.”&lt;/p&gt;

&lt;p&gt;The challenge with this approach is that rerunning scripts can sometimes create duplicate infrastructure if state is not properly managed.&lt;/p&gt;

&lt;p&gt;Why Terraform?&lt;/p&gt;

&lt;p&gt;Terraform is one of the industry leaders in Infrastructure as Code. It allows you to manage infrastructure across both private and public cloud platforms.&lt;/p&gt;

&lt;p&gt;Some reasons why Terraform is worth learning:&lt;/p&gt;

&lt;p&gt;It uses a human-readable language for writing infrastructure configurations.&lt;br&gt;
Terraform state helps track and manage deployed infrastructure.&lt;br&gt;
It supports version control, making collaboration in infrastructure management easier.&lt;br&gt;
It works across multiple cloud providers, making skills transferable.&lt;br&gt;
My Terraform 30-Day Challenge&lt;/p&gt;

&lt;p&gt;I am embarking on this 30-day journey to better understand Infrastructure as Code and Terraform in particular. My goal is to gain more hands-on experience in infrastructure management, automation, and modern DevOps practices.&lt;/p&gt;

&lt;p&gt;Looking forward to learning, building, and sharing the journey.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devops</category>
      <category>infrastructure</category>
      <category>terraform</category>
    </item>
  </channel>
</rss>
