<?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: Rohan Kamble</title>
    <description>The latest articles on DEV Community by Rohan Kamble (@rohankamble).</description>
    <link>https://dev.to/rohankamble</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%2F1654990%2F6abc1a08-6871-4a8a-b667-ef9405b4523c.jpg</url>
      <title>DEV Community: Rohan Kamble</title>
      <link>https://dev.to/rohankamble</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rohankamble"/>
    <language>en</language>
    <item>
      <title>Terraform Infrastructure Modules</title>
      <dc:creator>Rohan Kamble</dc:creator>
      <pubDate>Fri, 17 Jan 2025 06:36:12 +0000</pubDate>
      <link>https://dev.to/rohankamble/terraform-infrastructure-modules-342d</link>
      <guid>https://dev.to/rohankamble/terraform-infrastructure-modules-342d</guid>
      <description>&lt;h3&gt;
  
  
  Hi I am Rohan Kamble
&lt;/h3&gt;

&lt;p&gt;Welcome to the Terraform Infrastructure Modules project! This repository provides a set of reusable and customizable Terraform modules to help you quickly and efficiently deploy and manage cloud infrastructure. By using this project, you can create a variety of AWS resources with minimal configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;This project enables the creation of the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auto Scaling Groups (ASG)&lt;/strong&gt;: Automatically scale your EC2 instances based on demand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Databases (DB)&lt;/strong&gt;: Provision database instances with security and reliability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EC2 Instances&lt;/strong&gt;: Launch and manage individual virtual machines in AWS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load Balancers (LB)&lt;/strong&gt;: Distribute incoming application traffic across multiple targets, such as EC2 instances.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Groups&lt;/strong&gt;: Manage inbound and outbound rules to control traffic to your resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPC (Virtual Private Cloud)&lt;/strong&gt;: Set up a secure and isolated network environment with public and private subnets.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Before using these modules, ensure you have the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Terraform&lt;/strong&gt; installed on your local machine. &lt;a href="https://www.terraform.io/downloads" rel="noopener noreferrer"&gt;Download Terraform&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS CLI&lt;/strong&gt; configured with appropriate permissions. &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html" rel="noopener noreferrer"&gt;Configure AWS CLI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access and Secret Keys&lt;/strong&gt; for your AWS account.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;To start using this module, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clone the Repository&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/rohankamble103/terraform-aws-high-level-architechture.git
   &lt;span class="nb"&gt;cd &lt;/span&gt;terraform-aws-high-level-architechture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a Main Configuration File&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inside your project directory, create a &lt;code&gt;main.tf&lt;/code&gt; file and include the modules you want to use. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;   &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"aws"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;region&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"vpc"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/vpc"&lt;/span&gt;
     &lt;span class="nx"&gt;cidr_vpc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.0.0/16"&lt;/span&gt;
     &lt;span class="nx"&gt;vpc_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-vpc"&lt;/span&gt;
     &lt;span class="nx"&gt;cidr_private_sub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.2.0/24"&lt;/span&gt;
     &lt;span class="nx"&gt;cidr_public_subnet&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.1.0/24"&lt;/span&gt;
     &lt;span class="nx"&gt;availability_zone_private_sub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1b"&lt;/span&gt;
     &lt;span class="nx"&gt;availability_zone_public_subnet&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1a"&lt;/span&gt;
     &lt;span class="nx"&gt;private_sub_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-private-subnet"&lt;/span&gt;
     &lt;span class="nx"&gt;pub_sub_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-pub-sub-name"&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this vpc module according to you&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"security_groups"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/security_groups"&lt;/span&gt;
     &lt;span class="nx"&gt;vpc_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc_id&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-sec-group"&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_name_database&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"secu-group-for-db"&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this security group module according to you&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"ec2_instances"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/ec2_instances"&lt;/span&gt;
     &lt;span class="nx"&gt;ami_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ami-0c55b159cbfafe1f0"&lt;/span&gt;
     &lt;span class="nx"&gt;my_instance_type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"t2.micro"&lt;/span&gt;
     &lt;span class="nx"&gt;subnet_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;public_subnet_id&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;security_groups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;web_security_group_id&lt;/span&gt;
     &lt;span class="nx"&gt;key_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-key"&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this ec2_instance module according to you&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"asg"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/asg"&lt;/span&gt;
     &lt;span class="nx"&gt;ami_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ami-0c55b159cbfafe1f0"&lt;/span&gt;
     &lt;span class="nx"&gt;my_instance_type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"t2.micro"&lt;/span&gt;
     &lt;span class="nx"&gt;key_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-key"&lt;/span&gt;
     &lt;span class="nx"&gt;subnet_ids&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;public_subnet_id&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-sec-group"&lt;/span&gt;
     &lt;span class="nx"&gt;asg_min&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
     &lt;span class="nx"&gt;asg_max&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
     &lt;span class="nx"&gt;user_data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;-&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;
       #!/bin/bash
       echo "admin:YourSecurePassword123" | chpasswd
       sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
       sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
       systemctl restart sshd
&lt;/span&gt;&lt;span class="no"&gt;     EOF
&lt;/span&gt;   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this asg module and user_data according to you&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"db"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/db"&lt;/span&gt;
     &lt;span class="nx"&gt;subnet_ids&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;private_subnet_id&lt;/span&gt;
     &lt;span class="nx"&gt;pub_acc_instance&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
     &lt;span class="nx"&gt;engine_db&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"mysql"&lt;/span&gt;
     &lt;span class="nx"&gt;engine_db_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"8.0"&lt;/span&gt;
     &lt;span class="nx"&gt;database_instance_class&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"db.t2.micro"&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_ids&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;security_groups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;web_security_group_id&lt;/span&gt;
     &lt;span class="nx"&gt;db_name_rds&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-db"&lt;/span&gt;
     &lt;span class="nx"&gt;memory_db_instance&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
     &lt;span class="nx"&gt;mylti_az_value&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
     &lt;span class="nx"&gt;username_for_db&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"root"&lt;/span&gt;
     &lt;span class="nx"&gt;password_for_db&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"mypassword12"&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this db module according to you&lt;/span&gt;

   &lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"lb"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/lb"&lt;/span&gt;
     &lt;span class="nx"&gt;vpc_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc_id&lt;/span&gt;
     &lt;span class="nx"&gt;subnet_ids&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;public_subnet_id&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;security_groups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;web_security_group_id&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="c1"&gt;#Customise this lb module according to you&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initialize Terraform&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plan Infrastructure&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;Review the execution plan to ensure everything is as expected.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Apply Infrastructure&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;Confirm the changes to create your infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a VPC with Public and Private Subnets
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"vpc"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/vpc"&lt;/span&gt;
  &lt;span class="nx"&gt;cidr_vpc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.0.0/16"&lt;/span&gt;
  &lt;span class="nx"&gt;vpc_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-vpc"&lt;/span&gt;
  &lt;span class="nx"&gt;cidr_private_sub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.2.0/24"&lt;/span&gt;
  &lt;span class="nx"&gt;cidr_public_subnet&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"10.0.1.0/24"&lt;/span&gt;
  &lt;span class="nx"&gt;availability_zone_private_sub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1b"&lt;/span&gt;
  &lt;span class="nx"&gt;availability_zone_public_subnet&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"us-east-1a"&lt;/span&gt;
  &lt;span class="nx"&gt;private_sub_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-private-subnet"&lt;/span&gt;
  &lt;span class="nx"&gt;pub_sub_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-pub-sub-name"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deploy an EC2 Instance
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"ec2_instances"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/ec2_instances"&lt;/span&gt;
  &lt;span class="nx"&gt;ami_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ami-0c55b159cbfafe1f0"&lt;/span&gt;
  &lt;span class="nx"&gt;my_instance_type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"t2.micro"&lt;/span&gt;
  &lt;span class="nx"&gt;subnet_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;public_subnet_id&lt;/span&gt;
  &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;security_groups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;web_security_group_id&lt;/span&gt;
  &lt;span class="nx"&gt;key_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-key"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add a Load Balancer
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="s2"&gt;"lb"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"./module/lb"&lt;/span&gt;
  &lt;span class="nx"&gt;vpc_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc_id&lt;/span&gt;
  &lt;span class="nx"&gt;subnet_ids&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vpc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;public_subnet_id&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="nx"&gt;security_group_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;security_groups&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;web_security_group_id&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add a RDS db
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module "db" {
  source = "./module/db"
  subnet_ids = module.vpc.private_subnet_id
  pub_acc_instance = false
  engine_db = "mysql"
  engine_db_version = "8.0"
  database_instance_class = "db.t2.micro"
  security_group_ids = module.security_groups.web_security_group_id
  db_name_rds = "my-db"
  memory_db_instance = 20
  mylti_az_value = true
  username_for_db = "root"
  password_for_db = "mypassword12"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Modules Included
&lt;/h2&gt;

&lt;h3&gt;
  
  
  VPC Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Creates a custom VPC with public and private subnets.&lt;/li&gt;
&lt;li&gt;Supports multiple availability zones.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security Groups Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Define ingress and egress rules for various use cases.&lt;/li&gt;
&lt;li&gt;Predefined rules for HTTP, HTTPS, and SSH access.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Load Balancer Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Provisions an Application Load Balancer (ALB).&lt;/li&gt;
&lt;li&gt;Automatically registers EC2 instances in the target group.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  EC2 Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Launches instances with specified AMI, instance type, and key pair.&lt;/li&gt;
&lt;li&gt;Attaches instances to security groups and subnets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Database Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Creates a managed database instance with security group configurations.&lt;/li&gt;
&lt;li&gt;Supports multiple database engines like MySQL, PostgreSQL, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Auto Scaling Group Module
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Automatically adjusts the number of instances based on load.&lt;/li&gt;
&lt;li&gt;Configurable scaling policies and health checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Inputs
&lt;/h2&gt;

&lt;p&gt;Each module accepts various input variables for customization. Refer to the documentation in each module directory for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outputs
&lt;/h2&gt;

&lt;p&gt;The modules provide outputs such as resource IDs, DNS names, and other useful information. Review the &lt;code&gt;outputs.tf&lt;/code&gt; file in each module for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This project is licensed under the MIT License. See the &lt;code&gt;LICENSE&lt;/code&gt; file for more information.&lt;/p&gt;




&lt;p&gt;Feel free to contribute to this project or raise issues for any enhancements or bugs.&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>devops</category>
      <category>softwaredevelopment</category>
      <category>aws</category>
    </item>
    <item>
      <title>Welcome to My DevOps Journey</title>
      <dc:creator>Rohan Kamble</dc:creator>
      <pubDate>Thu, 20 Jun 2024 06:55:08 +0000</pubDate>
      <link>https://dev.to/rohankamble/welcome-to-my-devops-journey-44dd</link>
      <guid>https://dev.to/rohankamble/welcome-to-my-devops-journey-44dd</guid>
      <description>&lt;p&gt;What is DevOps?&lt;br&gt;
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). The goal is to shorten the system development life cycle and provide continuous delivery with high software quality. DevOps is about breaking down the traditional barriers between development and operations teams, fostering a culture of collaboration and shared responsibility.&lt;/p&gt;

&lt;p&gt;I believe that learning is a two-way street. I encourage you to share your thoughts, ask questions, and engage in discussions.&lt;/p&gt;

&lt;p&gt;Thank you for joining me on this journey. Stay tuned for more posts, and let’s make DevOps better together!&lt;/p&gt;

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