<?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: Rohit</title>
    <description>The latest articles on DEV Community by Rohit (@rgupta87).</description>
    <link>https://dev.to/rgupta87</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%2F1482224%2Fd8ef2317-9f85-4718-8885-fc56d371f100.jpg</url>
      <title>DEV Community: Rohit</title>
      <link>https://dev.to/rgupta87</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rgupta87"/>
    <language>en</language>
    <item>
      <title>How IaC can streamline the Infrastructure &amp; Configuration</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Wed, 05 Jun 2024 17:18:17 +0000</pubDate>
      <link>https://dev.to/rgupta87/how-iac-can-streamline-the-infrastructure-configuration-44d5</link>
      <guid>https://dev.to/rgupta87/how-iac-can-streamline-the-infrastructure-configuration-44d5</guid>
      <description>&lt;p&gt;In today's fast-paced digital landscape, the ability to quickly and reliably deploy infrastructure is critical for product's success. As a Technical Project Manager, I've got a chance to transformative power of Infrastructure as Code (IaC) tools in streamlining infrastructure management and subsequently helped the organization in healthy infra setup and successful project delivery. In this article, I’ll explore the concept of IaC, discuss popular IaC tools, and share insights from a recent project where we successfully implemented IaC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;What is Infrastructure as Code (IaC)?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First lets understand some basics about IaC. Infrastructure as Code (IaC) is a practice where infrastructure configurations are written and managed as code. In overall, this approach allows for the automation of infrastructure provisioning &amp;amp; management, enabling consistency, scalability and automate the repeatability. By using infrastructure as code, engineers &amp;amp; designers can version control their configurations changes, enhance collaboration &amp;amp; communication, and deploy infrastructure changes with greater confidence &amp;amp; security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Popular IaC Tools:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the market, there are several tools that have emerged as leaders in the IaC space. Each of them offering unique features and benefits. Here are few widely used IaC tools in the market:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt;: This is an open-source tool developed by HashiCorp, Terraform enables infrastructure provisioning across various cloud providers. It uses a declarative language to define infrastructure resources and supports modular configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS CloudFormation&lt;/strong&gt;: Its a service by Amazon Web Services cloud platform. AWS CloudFormation allows users to define and provision AWS infrastructure using JSON or YAML templates. It can easily integrates seamlessly with other AWS services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ansible&lt;/strong&gt;: One of the most popular configuration management tool that also supports infrastructure provisioning. Ansible uses a simple, agentless approach, making it easy to set up and use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pulumi&lt;/strong&gt;: Another IaC tool that supports multiple cloud providers. This tool allows users to write infrastructure code in familiar programming languages like TypeScript, Python, and Go.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;IaC in Implementation: A Project Case Study&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a recent project, team faced the challenge of managing complex, multi-environment infrastructure. We decided to adopt Terraform due to its provider-agnostic nature, easily integration with cloud platform and strong community support. Here’s how we implemented IaC:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Overall Architecture Diagram (in text format)&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fil73khntr75rb9pp0its.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fil73khntr75rb9pp0its.png" alt="Image description" width="647" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;IaC Implementation Steps&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Requirement gathering &amp;amp; Analysis&lt;/strong&gt;: Firstly team has started gathering requirements from business, did the feasibility study and strategize how we can implement the infrastructure for each development, staging, production environment. Identified the resources needed (such as VMs, databases, networks). List down the overall scope, divide into smaller breakdown, calculate the required talents (engineers and designers) and finally the budget required. Presented to the management for the project initiation and budget approval.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Defining the Infrastructure&lt;/strong&gt;: Based on the agreed scope, we started writing the Terraform configuration files to define our infrastructure. Each environment had its own set of configuration files, allowing for isolation and customization. Worked with the team to design and implement within the agreed timelines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version Control&lt;/strong&gt;: One of the critical activity to control the various versions of configuration setup. We stored our Terraform code in a Git repository, enabling version control and collaboration among team members.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous Integration/Continuous Deployment (CI/CD)&lt;/strong&gt;: Most important steps to automate the integration and deployment cycles for every new version release. We integrated Terraform with our CI/CD pipeline using Jenkins. Every change to the infrastructure code triggered a pipeline that validated and applied the changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;: Once the deployment is done, it is always important to monitor the setup and address immediately in case of any issue. Post-deployment, we used Terraform's state management to keep track of the infrastructure, configuration and made use of monitoring tools like Prometheus to ensure everything was running smoothly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Benefits After IaC Implementation:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduced Errors&lt;/strong&gt;: With the help to automation, we minimized the manual intervention and therefore reduced the likelihood of errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: This IaC implementation allowed us to scale our infrastructure effortlessly based on the demands and business needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved Consistency&lt;/strong&gt;: By defining infrastructure as code setup, we ensured that every environment was consistent and reproducible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;: With the help of version control, we noticed far better co-ordination within the team, which subsequently facilitated better collaboration and code reviews. This leads to higher quality infrastructure code with less errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduced Operation Cost&lt;/strong&gt; - With automation, we have received significant reduction in operation cost (15%) and shoot-up the overall profit for the organization.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I must say implementing Infrastructure as Code has been a game-changer in my tech project management toolkit. The ability to define, provision, and manage infrastructure through code has brought about unprecedented efficiency and reliability. I encourage my fellow project managers to explore IaC tools and consider integrating them into their projects for a more streamlined and scalable infrastructure management process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learning!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>iac</category>
      <category>terraform</category>
      <category>infraprojectmanagement</category>
      <category>devops</category>
    </item>
    <item>
      <title>Host web application on EC2 instance with Ansible Playbook</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Mon, 03 Jun 2024 10:35:48 +0000</pubDate>
      <link>https://dev.to/rgupta87/host-web-application-on-ec2-instance-with-ansible-playbook-346o</link>
      <guid>https://dev.to/rgupta87/host-web-application-on-ec2-instance-with-ansible-playbook-346o</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Ansible&lt;/u&gt;&lt;/strong&gt; is an open-source automation tool used for configuration management, application deployment, orchestration, and task automation. It is designed to simplify complex IT workflows and streamline repetitive tasks across large infrastructures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Project Summary&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this project, lets learn about launching an application with configuration management tool Ansible. Launching a web application using an Ansible playbook involves several steps, including setting up the infrastructure, installing necessary software, and deploying the application. Here is a simplified example of an Ansible playbook that can help you deploy a web application&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Prerequisites&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. AWS Account&lt;/strong&gt; - you should have a valid AWS account to launch EC2 instances for installing ansible and hosting an application.&lt;br&gt;
&lt;strong&gt;2. Linux Background&lt;/strong&gt; - should have some background on Linux as we will be running various commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1 - Launch AWS EC2 instance using Ubuntu &amp;amp; CenOS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Launch Ubuntu Instance for Ansible&lt;/strong&gt; - Use &lt;strong&gt;t2.micro&lt;/strong&gt; instance type (Free tier) with name as &lt;strong&gt;'Control'&lt;/strong&gt;. This is the instance where we will install the Ansible and use it as control machine for other webservices or application (installed on another EC2 instance).&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%2F2kiw2fjn3rbibysqrb8m.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%2F2kiw2fjn3rbibysqrb8m.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Fp08gc7cw96xzfzk9ifrj.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%2Fp08gc7cw96xzfzk9ifrj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Pair&lt;/strong&gt; - Create new key pair with control-key.pem file&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%2Fmwpl4kq31syonkzbkv2a.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%2Fmwpl4kq31syonkzbkv2a.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security Group&lt;/strong&gt; - Create new security group with &lt;strong&gt;inbound rules&lt;/strong&gt; to allow port 22 from my IP address and launch the instance.&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%2F1v2pv4dcugz6gu7cm0zx.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%2F1v2pv4dcugz6gu7cm0zx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Launch CentOs Instance for web services&lt;/strong&gt; - Use &lt;strong&gt;t2.micro&lt;/strong&gt; instance type (Free tier) with name as &lt;strong&gt;'web01'&lt;/strong&gt;. This is the instance where we will deploy web application. For OS, go to 'Browse more AMI'-&amp;gt; AWS Marketplace AMIs and search for centos9.&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%2Fvqvm0jxfuw9d08ajdcfl.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%2Fvqvm0jxfuw9d08ajdcfl.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Pair&lt;/strong&gt; - Create new key pair with client-key.pem file.&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%2F1g4yh888x8qkfvdb2vdv.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%2F1g4yh888x8qkfvdb2vdv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security Group&lt;/strong&gt; - Create new security group with &lt;strong&gt;inbound rules&lt;/strong&gt; to allow &lt;strong&gt;port 22&lt;/strong&gt; from my IP address &amp;amp; from Ansible security group too. Also allow &lt;strong&gt;port 80&lt;/strong&gt; (http) from my IP address. After this launch the instance.&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%2Fmqd8n6fhod075643fobd.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%2Fmqd8n6fhod075643fobd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 2 - Installing Ansible on Ubuntu OS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SHH into Control Instance&lt;/strong&gt; - SSH into the control EC2 instance and to login.&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%2Ftkh6u8qk5b8scf278nks.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%2Ftkh6u8qk5b8scf278nks.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Fcsy6n11d4k6dlwkjidrq.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%2Fcsy6n11d4k6dlwkjidrq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install Ansible&lt;/strong&gt; - Using below mentioned commands, Install Ansible software in your control EC2 instance.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

  $ sudo apt update
  $ sudo apt install software-properties-common
  $ sudo add-apt-repository --yes --update ppa:ansible/ansible
  $ sudo apt install ansible


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

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3 - Create project directory, Inventory and playbook files&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create new directory&lt;/strong&gt; - After Ansible installation, create a new directory 'project1' where we will create the Ansible playbook for web appl.&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%2Fqni9uhdidjs5zd7j9tpo.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%2Fqni9uhdidjs5zd7j9tpo.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Foomu73wzbpbvni4z4bho.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%2Foomu73wzbpbvni4z4bho.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inventory file&lt;/strong&gt; - Create a inventory file inside the 'project1' directory. The purpose of this file is to defines the hosts and groups of hosts upon which commands, modules, and tasks in a playbook operate. Sample inventory file code will looks like below. Make sure the spacing or indentation is correct while using inventory file.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

all:
  hosts:
    web01:
      ansible_host: 172.31.17.59
      ansible_user: ec2-user
      ansible_ssh_private_key_file: clientkey.pem



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

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

**explanation:-**
hosts = web01 (give you web instance
ansible_host = should be the private IP address of your web01 instance
ansible_ssh_private_key_file = should be the private key that you use to authenticate with web01 instance


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client Key&lt;/strong&gt; - Since we are using clientkey.pem in our inventory file, we need to copy the private key of client EC2 instance to 'project1' directory with the same name that we have given in inventory file i.e clientkey.pem. This is to authenticate the web01 server. &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%2F7gjwoj0xkn061icgmgj7.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%2F7gjwoj0xkn061icgmgj7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2F7crw18pm72f28v9ot5kj.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%2F7crw18pm72f28v9ot5kj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Permission&lt;/strong&gt; - After copying the private key to clientkey.pem and place it into 'project1' directory, you need to modify the permission of the key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current Permission:&lt;/p&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%2F7grhwsnlhg3shqiq85qd.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%2F7grhwsnlhg3shqiq85qd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modify the permission using below command:-&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

chmod 400 clientkey.pem


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

&lt;/div&gt;

&lt;p&gt;After modification, it should be as per below:-&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

ubuntu@control:~/project1$ ls -l
total 16
-r-------- 1 ubuntu ubuntu 1675 Jun  3 09:18 clientkey.pem


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ansible Playbook&lt;/strong&gt; - An Ansible playbook is a file written in YAML (Yet Another Markup Language) that defines a series of automation tasks to be executed on managed nodes. Playbooks are the heart of Ansible's configuration management, allowing users to describe configurations, deployments, and orchestrations in a straightforward, human-readable format. Lets create Ansible playbook with name '&lt;strong&gt;web01.yaml&lt;/strong&gt;'.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

---
- name: Webserver setup
  hosts: web01
  become: yes
  tasks:
    - name: Install httpd
      ansible.builtin.yum:
        name: httpd
        state: present

    - name: Start service
      ansible.builtin.service:
        name: httpd
        state: started
        enabled: yes

    - name: Copy the index file or template
      copy:
        src: myfile/index.html
        dest: /var/www/html/index.html


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

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

**explanation:-**
name - This is the name of the ansible playbook or task, you can give based on your choice.
hosts - This is the host name which you have given in the inventory file
tasks - It stores the list of tasks that you want to execute automatically


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

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 4 - Run and Test the application&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run&lt;/strong&gt; - Finally its time to run the command as per below to execute the playbook and deploy the application to web server (which is web01 EC2 instance)&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

 ansible-playbook -i inventory web01.yaml


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

&lt;/div&gt;

&lt;p&gt;Output should be as per below:-&lt;/p&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%2F1y3ac04rr47aqkiy7di9.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%2F1y3ac04rr47aqkiy7di9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;See Application on Browser&lt;/strong&gt; - Lets take the public Ip address of the web01 instance and paste into the browser and a simple web application should be launched:-
&lt;strong&gt;Note&lt;/strong&gt;:- Make sure that security group of web01 instance should allow inbound rule for port 80 through control (ansible) instance from my IP or anywhere. If you are not doing this then it will timeout.&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%2Fms0bi96eoij78n9qhhvl.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%2Fms0bi96eoij78n9qhhvl.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Conclusion!&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Deploying a web application using Ansible on an AWS EC2 instance offers a powerful and automated solution to streamline the process of provisioning infrastructure, installing necessary software, and managing application deployments. By leveraging Ansible's playbooks, you can ensure consistent, repeatable, and scalable deployments, significantly reducing manual intervention and potential errors. This approach not only enhances operational efficiency but also allows for rapid iteration and deployment of web applications. Whether you are managing a single server or a complex infrastructure, using Ansible to automate the deployment process on AWS EC2 instances empowers you to focus more on developing and improving your application rather than dealing with infrastructure complexities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learning!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ansible</category>
      <category>ansibleplaybook</category>
      <category>aws</category>
      <category>ec2</category>
    </item>
    <item>
      <title>Integrate Slack with Jenkins to receive CICD pipeline notification</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Sat, 01 Jun 2024 08:44:02 +0000</pubDate>
      <link>https://dev.to/rgupta87/integrate-slack-with-jenkins-to-receive-cicd-pipeline-notification-9mi</link>
      <guid>https://dev.to/rgupta87/integrate-slack-with-jenkins-to-receive-cicd-pipeline-notification-9mi</guid>
      <description>&lt;p&gt;Integrating Slack with Jenkins allows you to receive build notifications directly in your Slack channels, which helps in monitoring the status of your CI/CD pipeline. Here’s a step-by-step guide to set up this integration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;1) Create Slack Account&lt;/u&gt;&lt;/strong&gt; - First create a Slack account and then subsequently the slack workspace and channel:-&lt;/p&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%2Fvo528xxhnjm2izhfljqe.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%2Fvo528xxhnjm2izhfljqe.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give your workspace name and some more details:-&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%2Fot7ngn7upczd8c9r1bca.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%2Fot7ngn7upczd8c9r1bca.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2F6wda5icrov5lh2ap8s3w.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%2F6wda5icrov5lh2ap8s3w.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your team mates to include them. If you are individual then you can skip this. Select the free trial:-&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%2F8robu0uplj3zphvsi6ec.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%2F8robu0uplj3zphvsi6ec.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once you selected, Dashboard will look like:-&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%2Fthbf1e0f9gl7ty32mdxr.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%2Fthbf1e0f9gl7ty32mdxr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a channel (I have given name as 'cicd-implementation')&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%2F73m3by1t3igirz2xsjei.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%2F73m3by1t3igirz2xsjei.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;2) Create Token&lt;/u&gt;&lt;/strong&gt; - Now we need to &lt;strong&gt;create a token&lt;/strong&gt; for Jenkins to authenticate slack and for that we need to add an app into our slack account. Refer below steps:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do a google search 'slack app'&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%2Fkkh4lvk2bxdekttxn1kv.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%2Fkkh4lvk2bxdekttxn1kv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the first link ‘Add app to Slack’ and search for Jenkins:-&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%2Ft0xjbshz6y3kzserb30t.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%2Ft0xjbshz6y3kzserb30t.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2F0tb4mjxcllxl8gf6mr4v.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%2F0tb4mjxcllxl8gf6mr4v.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on ‘Add to Slack’&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%2Fttaix6tbd5txjo05ehy3.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%2Fttaix6tbd5txjo05ehy3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the channel and ‘Add Jenkins to CI Integration’. For me it would be 'cicd-implementation'&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%2Fenzuivfvjtvklisq6ujd.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%2Fenzuivfvjtvklisq6ujd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Ffjlq1vamijhucs46l5ss.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%2Ffjlq1vamijhucs46l5ss.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the same page, refer the steps to integrate slack with Jenkins. Also copy the token given in step 3 and save it somewhere. Now come down and click on ‘Save Settings’&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%2Fyvbt4pnca1ctdgxuxuua.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%2Fyvbt4pnca1ctdgxuxuua.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;3) Integrate Jenkins &amp;amp; Slack&lt;/u&gt;&lt;/strong&gt; - Now we will go to Jenkins and integrate the slack by using plugins and slack token. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Jenkins (Manage Jenkins-&amp;gt; Plugins-&amp;gt; Available Plugins) and look for slack notification plugins and install it.&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%2Fm6ypdp0xwiqquwy7cgbc.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%2Fm6ypdp0xwiqquwy7cgbc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, lets integrate the slack with Jenkins. Go to Manage Jenkins-&amp;gt; Systems and look out for Slack plugin.&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%2Fh0o80apt4x23mv8a0xaq.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%2Fh0o80apt4x23mv8a0xaq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get your Slack workspace name correctly as this could cause issue when you are going to test connection in Jenkins. Refer below to get your slack workspace name:-&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%2Fer8h9yypqqwsq91ys4cx.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%2Fer8h9yypqqwsq91ys4cx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide workspace name based on slack setup and click add credential&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%2F1ulz924lb8vplqc3zo8l.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%2F1ulz924lb8vplqc3zo8l.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select '&lt;strong&gt;Secret text&lt;/strong&gt;', add the token which you have copied earlier and then give some ID &amp;amp; description. Later click on Add 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%2Feiom9ue6k43bsuooj9n4.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%2Feiom9ue6k43bsuooj9n4.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2F09wzjx1t58jmu4y8cdql.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%2F09wzjx1t58jmu4y8cdql.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the 'slackpass', give the channel id and then click on test connection.&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%2Fsyb4bdzgt3dy4w6n4o4i.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%2Fsyb4bdzgt3dy4w6n4o4i.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 'success' message should show over here to make sure there is proper integration between Jenkins and Slack. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:-&lt;/strong&gt; It might be possible that you may get Failure message here, this could be because of some setup or plugins issue. So you can just logout from your slack account, login back and do the whole setup again. You should be able to see success message.&lt;/p&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%2Fc0fvz055gy20tglfn32e.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%2Fc0fvz055gy20tglfn32e.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lets add these things in our pipeline code. Add below set of codes to your pipelines. Here define a function to do color mapping in slack. In slack 'good' means green color and 'danger' means red.&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%2Flo6kjxav81kdm4qtrvo9.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%2Flo6kjxav81kdm4qtrvo9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Fidv10qkgo17pje61siim.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%2Fidv10qkgo17pje61siim.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its time to create a new pipeline and paste your Pipeline as a code to Jenkins and test. &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%2F8urrn0byt20ufiulvq9f.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%2F8urrn0byt20ufiulvq9f.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2F02xiz14jkc865rj1exh5.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%2F02xiz14jkc865rj1exh5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Frn3a9cvxiavw0jccqv1k.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%2Frn3a9cvxiavw0jccqv1k.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Slack channel and see if there any message coming in with 'Success'? &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%2Fbxm2dnd576csr78mrtgp.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%2Fbxm2dnd576csr78mrtgp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&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%2Fq8ws2v7igyn9ohcs2z3o.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%2Fq8ws2v7igyn9ohcs2z3o.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the pipeline failed then you will see the red color in your slack channel with 'Failed' message&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%2F4cb7lroa425dpexxq8ur.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%2F4cb7lroa425dpexxq8ur.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This configuration sends notifications to Slack on build success and failure with links to the Jenkins build.&lt;/p&gt;

&lt;p&gt;By following these steps, you should be able to integrate Slack with Jenkins and receive notifications in your specified Slack channels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learnings!&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Security Protocol to connect AWS SES</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Thu, 30 May 2024 18:25:51 +0000</pubDate>
      <link>https://dev.to/rgupta87/security-protocol-to-connect-aws-ses-2jia</link>
      <guid>https://dev.to/rgupta87/security-protocol-to-connect-aws-ses-2jia</guid>
      <description>&lt;p&gt;Lets take a look on another AWS services know as Amazon SES and understand the security protocol around that. This could be useful when you send email to receiver and how we can securely deliver it.&lt;/p&gt;

&lt;p&gt;Lets learn about Amazon SES service first with some basic details:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Amazon SES&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon SES stands for Simple Email Service. It is one of the cost-effective, scalable, reliable email service designed to help the organization, application developers, digital marketers to send notification, and transactional emails. It is one of the powerful service for all kinds of business to integrate with various others AWS services to provide a robust platform for managing and optimizing the organization's email communications.&lt;/p&gt;

&lt;p&gt;Integrating Amazon SES into your applications, whether via the &lt;strong&gt;&lt;u&gt;API&lt;/u&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;u&gt;SMTP interface&lt;/u&gt;&lt;/strong&gt;, requires strict adherence to security protocols to ensure email delivery integrity and protect the data. Here are detailed best practices for securing your Amazon SES integration:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;1) Amazon SES API Integration Security&lt;/u&gt;&lt;/strong&gt; - When using Amazon Simple Email Service (SES) to send emails via the API, it's essential to utilize Transport Layer Security (TLS) to encrypt your data and protect it from potential threats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transport Layer Security&lt;/strong&gt; (TLS) is a well known cryptographic protocol designed to provide secure communication over a computer network. Its a critical protocol that provides and ensures integrity, data security, and authentication between your application and the Amazon SES service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps to Securely Use Amazon SES API with TLS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use IAM Policies&lt;/strong&gt; - Use below IAM policies to make sure that IAM user has enough permission to send email using amazon SES.&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%2Fj7b7bboh8qqjspnn2ez9.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%2Fj7b7bboh8qqjspnn2ez9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS SDK and HTTPS&lt;/strong&gt; - We can utilize AWS SDK or HTTPS request to make API request to AWS SES. When you use the Amazon SES API over HTTPS, TLS encryption is automatically applied to all API requests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTTPS API Request&lt;/strong&gt; - We can use HTTPS endpoint to make sure that data is fully encrypted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Simple diagram created in text editor for TLS Encryption with Amazon SES API&lt;/strong&gt;&lt;/p&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%2Fwib3qic5tehpjpcuuo2a.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%2Fwib3qic5tehpjpcuuo2a.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;2) Amazon SES SMTP Interface Security&lt;/u&gt;&lt;/strong&gt; - For securing the communication channel, there are two primary methods are required such as &lt;strong&gt;STARTTLS&lt;/strong&gt; and &lt;strong&gt;TLS Wrapper&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STARTTLS&lt;/strong&gt; - It is a command used to upgrade an existing plaintext connection to a secure, encrypted connection using Transport Layer Security (TLS).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lets understand how STARTTLS Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The client connects to SMTP server over plaintext connection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Send STARTTLS command to the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Server send the response and initiate TLS handshake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communication is encrypted between client and server once TLS handshake is complete.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TLS Wrapper&lt;/strong&gt; - This is also known as SMTPS or "SMTP over TLS," establishes an encrypted connection from the outset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lets understand how TLS Wrapper Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The client connects to the SMTP server using a specific dedicated port 465 for TLS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The TLS handshake occurs immediately upon connection, before any SMTP commands are exchanged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communication from the start is encrypted and provide robust security.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Simple diagram created in text editor with STARTTLS and TLS wrapper with Amazon SES API&lt;/strong&gt;&lt;/p&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%2Focic9nk0txp4mdbl4ukm.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%2Focic9nk0txp4mdbl4ukm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Overall, Its crucial to implementing these security protocols when using Amazon SES, whether through the API or SMTP interface to maintaining the integrity, security and confidentiality of your communications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learning!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ses</category>
      <category>security</category>
      <category>emailsecurity</category>
    </item>
    <item>
      <title>Services that can integrate with AWS Certificate Manager and their Use Case</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Sun, 19 May 2024 19:17:03 +0000</pubDate>
      <link>https://dev.to/rgupta87/services-that-can-integrate-with-aws-certificate-manager-and-their-use-case-cl0</link>
      <guid>https://dev.to/rgupta87/services-that-can-integrate-with-aws-certificate-manager-and-their-use-case-cl0</guid>
      <description>&lt;p&gt;Lets see what are the services which can be integrated with ACM (AWS Certificate Manager). This could be one of the interview question so lets learn the services together with some basic details about ACM:-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is ACM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Certificate Manager (ACM) is a service that simplifies the process of managing SSL/TLS certificates for your AWS-based applications and websites. SSL/TLS certificates are used to secure network communications and establish the identity of websites over the internet as well as resources on private networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key features the ACM provides:-&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Certificate Issuance&lt;/strong&gt;- ACM offers automatic issuance of SSL/TLS certificates and its a free service. You only need to pay for the AWS resources you use for your application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto Renewal&lt;/strong&gt; - IF you are using SSL/TLS certificates from ACM then it gives you auto renewal facility without any hassle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Cert Management&lt;/strong&gt; - ACM provides easy centralized management console to view and manage your certificates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import Third Part Cert&lt;/strong&gt; - You can easily import SSL/TLS certificate from third part too and store in ACM. However, there is no auto-renewal facility for 3rd party certificate in ACM, but you can still automate the renewal process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;ACM can support following services&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwd4orb91zdz0v9i5h8gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwd4orb91zdz0v9i5h8gj.png" alt="Image description" width="494" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;1) AWS CDN&lt;/strong&gt;&lt;/u&gt; - Also knows as Amazon CloudFront, which is a content delivery network, designed to deliver content with low latency and very high speed. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - Integrate with ACM to distribute content globally in a secure HTTPS manner. Benefit of this is to utilize SSL/TLS cert for secure content delivery to the worldwide user base.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;2) ELB&lt;/strong&gt;&lt;/u&gt; - Know as Elastic Load Balancer. AWS ELB is used to balanced the incoming traffic across multiple targets such as EC2 instance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - To distribute secure traffic, load balancer required to install SSL/TLS certificate. ACM integrates with Application load balancer or Network load balancer to encrypt the traffic.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;3) Amazon API Gateway&lt;/strong&gt;&lt;/u&gt; - It's a serverless fully managed service provided by AWS that allows us to create, publish, maintain, monitor, and secure APIs at any scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - After API deployment, you can use custom domain name to access it and that domain name can be integrated with SSL/TLS certificates to securely connect your API with back end service and for that we can use ACM service.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;4) AWS Elastic Beanstalk&lt;/strong&gt;&lt;/u&gt; - Another AWS fully managed service which makes it easier for anyone to deploy, manage, scale web applications without worrying about the infrastructure. It reduces infrastructure complexity which actually helps the developers to focus on writing code and deploy the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - Elastic Beanstalk use elastic load balancer and there can be easily configure SSL/TLS for your Elastic Beanstalk environments to secure traffic.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;5) AWS CloudFormation&lt;/strong&gt;&lt;/u&gt; -  Its a Infrastructure as Code (IaC) service provided by Amazon Web Services (AWS) which allows you to define and provision AWS infrastructure using code. It allows to create a template that automatically provisions and configures AWS resources as specified in the template, handling dependencies and order of operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - Automate the provisioning and updating of ACM certificates as part of your CloudFormation templates.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;6) AWS CloudWatch&lt;/strong&gt;&lt;/u&gt; - Its a monitoring service which helps us to monitor and manage your applications by collecting and tracking metrics, collecting and monitoring log files, and setting alarms in case of any notification &amp;amp; further action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - ACM usually Integrate with CloudWatch for monitoring certificate metrics and setting up alarms for certificate expiry.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;7) AWS OpsWorks&lt;/strong&gt;&lt;/u&gt; - It is an configuration management service that provides managed instances of Chef and Puppet, which are automation platforms that allow us to automate how servers are configured, deployed, and managed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Case&lt;/strong&gt; - To automate operational tasks on AWS resources. Use ACM certificates to secure OpsWorks Stacks and manage SSL/TLS certificates automatically.&lt;/p&gt;

&lt;p&gt;Rest of the other services mentioned in the diagram are also using ACM somewhere in a similar fashion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Overall, AWS Certificate Manager is a key service offered by AWS for managing SSL/TLS certificates effortlessly across AWS services. Whether you’re securing a global content delivery network, API endpoints, load-balanced applications, or any other services, ACM has got you covered&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learning!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloudsecurity</category>
      <category>awscloud</category>
      <category>cloudcomputing</category>
      <category>security</category>
    </item>
    <item>
      <title>3 weeks Journey with AWS DevOps Engineer Certification: My Experience and Tips</title>
      <dc:creator>Rohit</dc:creator>
      <pubDate>Sat, 11 May 2024 04:29:31 +0000</pubDate>
      <link>https://dev.to/rgupta87/3-weeks-journey-with-aws-devops-engineer-certification-my-experience-and-tips-lkp</link>
      <guid>https://dev.to/rgupta87/3-weeks-journey-with-aws-devops-engineer-certification-my-experience-and-tips-lkp</guid>
      <description>&lt;p&gt;Greetings, my fellow tech enthusiasts! I am thrilled to share with you my journey towards achieving the AWS DevOps Engineer certification. With a passion for technology and a drive to continuously enhance my skills, pursuing this certification was a natural progression in my career journey. Today in this article, I’ll take you through the steps I took to prepare for and pass the AWS DevOps Engineer exam, offering insights, tips, and strategies that I hope will inspire and assist you on your own certification path. So, grab your coffee, buckle up, and let’s dive into the world of AWS DevOps certification together&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Study Strategies:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Preparing for the AWS DevOps Engineer certification exam requires a well-structured approach to learning. Here are some key study strategies that proved instrumental in my preparation:&lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;Domains&lt;/strong&gt; — AWS DevOps Engineer professional exam has been divided into various domains and each domain is really important which required detailed knowledge.&lt;br&gt;
Domain 1: SDLC Automation (22% of scored content)&lt;br&gt;
Domain 2: Configuration Management and IaC (17% of scored content)&lt;br&gt;
Domain 3: Resilient Cloud Solutions (15% of scored content)&lt;br&gt;
Domain 4: Monitoring and Logging (15% of scored content)&lt;br&gt;
Domain 5: Incident and Event Response (14% of scored content)&lt;br&gt;
Domain 6: Security and Compliance (17% of scored content)&lt;/p&gt;

&lt;p&gt;2) Online Study — Go through the online course from Stephane Maarek on Udemy, which helped me to revise my knowledge about DevOps concept. I took 2 weeks for this. Here is the link for the course.&lt;/p&gt;

&lt;p&gt;[(&lt;a href="https://www.udemy.com/course/aws-certified-devops-engineer-professional-hands-on/?couponCode=ST20MT50724)"&gt;https://www.udemy.com/course/aws-certified-devops-engineer-professional-hands-on/?couponCode=ST20MT50724)&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;Mock Exam&lt;/strong&gt;— Taking practice exams played a pivotal role in my exam preparation. These mock exams not only familiarized me with the exam format and question types but also helped me identify areas where I needed to focus additional study efforts. Go through the online practice test from TutorialDojo as follow:&lt;/p&gt;

&lt;p&gt;[(&lt;a href="https://www.udemy.com/course/aws-solutions-architect-professional-practice-exams-sap-c02/?couponCode=ST20MT50724)"&gt;https://www.udemy.com/course/aws-solutions-architect-professional-practice-exams-sap-c02/?couponCode=ST20MT50724)&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;4) &lt;strong&gt;Time Management&lt;/strong&gt; — This is a tough one and questions were very lengthy. To simulate real exam conditions, I practiced time-bound mock exams to improve my time management skills. This ensured that I could effectively allocate time to each question during the actual exam and complete it within the allotted timeframe.&lt;/p&gt;

&lt;p&gt;5) *&lt;em&gt;Recommendation *&lt;/em&gt;— There are many key topics which needs to master for AWS DevOps engineer professional exams and based on my experience, some of them are:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CI/CD Pipelines (CodeCommit, CodeBuild, CodeDeploy, CodeArtifact)&lt;/li&gt;
&lt;li&gt;Elastic Beanstalk&lt;/li&gt;
&lt;li&gt;AWS CloudFormation&lt;/li&gt;
&lt;li&gt;AWS Config&lt;/li&gt;
&lt;li&gt;Cloudwatch Event Rules, CloudWatch Logs, CloudTrails&lt;/li&gt;
&lt;li&gt;SSM, Lambda, API Gateway&lt;/li&gt;
&lt;li&gt;SDLC, Disaster Recovery, High Availability, Deployment Strategy etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6) &lt;strong&gt;Stay consistent and Hands-on Practice&lt;/strong&gt; — Encourage readers to start their preparation early and establish a study routine. Focus on hand-on practice with AWS services and mock exams.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;In conclusion&lt;/u&gt;, my journey to achieving the AWS DevOps Engineer certification has been both challenging and rewarding. With diligent study, practice, and perseverance, I was able to overcome obstacles and emerge victorious on exam day. As I reflect on this experience, I’m reminded of the importance of setting clear goals, staying disciplined in my study routine, and believing in my abilities.&lt;/p&gt;

&lt;p&gt;Best of luck on your certification journey, and may your future endeavors be filled with success and fulfillment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Learning!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>happylearning</category>
    </item>
  </channel>
</rss>
