<?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: Vrukshali Torawane</title>
    <description>The latest articles on Forem by Vrukshali Torawane (@vrukshali26).</description>
    <link>https://forem.com/vrukshali26</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%2F550934%2F140f1deb-d2a4-48e2-b449-2595c99ea320.jpg</url>
      <title>Forem: Vrukshali Torawane</title>
      <link>https://forem.com/vrukshali26</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vrukshali26"/>
    <language>en</language>
    <item>
      <title>Part-2 More about Docker</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Mon, 27 Feb 2023 10:57:18 +0000</pubDate>
      <link>https://forem.com/vrukshali26/part-2-more-about-docker-c2a</link>
      <guid>https://forem.com/vrukshali26/part-2-more-about-docker-c2a</guid>
      <description>&lt;h2&gt;
  
  
  Docker Architecture
&lt;/h2&gt;

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

&lt;p&gt;Docker uses a client-server architecture. The &lt;strong&gt;Docker client&lt;/strong&gt; talks to the &lt;strong&gt;Docker daemon&lt;/strong&gt;, which does the heavy lifting of building, running, and distributing your Docker containers. The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon.&lt;/p&gt;

&lt;p&gt;Docker uses a technology called &lt;strong&gt;namespaces&lt;/strong&gt; to provide the isolated workspace called the container. When you run a container, Docker creates a set of namespaces for that container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Daemon:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Docker daemon is a service that runs on your host operating system. &lt;/li&gt;
&lt;li&gt;The Docker daemon &lt;strong&gt;(dockerd)&lt;/strong&gt; listens for Docker API requests from client and manages Docker objects such as images, containers, networks, and volumes. A daemon can also communicate with other daemons to manage Docker services.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;strong&gt;Docker Client:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Docker client (&lt;strong&gt;docker CLI&lt;/strong&gt;) is the primary way that many Docker users interact with Docker. When you use commands such as docker run, the client sends these commands to dockerd, which carries them out. &lt;/li&gt;
&lt;li&gt;The docker command uses the Docker API. &lt;/li&gt;
&lt;li&gt;The Docker client can communicate with more than one daemon.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Docker Registry:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, and Docker is configured to look for images on Docker Hub by default. &lt;/li&gt;
&lt;li&gt;You can even run your own private registry.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Docker objects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you use Docker, you are creating and using images, containers, networks, volumes, plugins, and other objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Images:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An image is a template with instructions for creating a Docker container. Often, an image is based on another image, with some additional customization.&lt;/li&gt;
&lt;li&gt;For example, you may build an image which is based on the ubuntu image, but installs the Apache web server and your application, as well as the configuration details needed to make your application run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A container is a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI.&lt;/li&gt;
&lt;li&gt;By default, a container is relatively well isolated from other containers and its host machine.&lt;/li&gt;
&lt;li&gt;When a container is removed, any changes to its state that are not stored in persistent storage disappear.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;In next blogs, we will learn more about Docker commands.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>bug</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Part-1 Overview of Docker</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Tue, 21 Feb 2023 16:58:32 +0000</pubDate>
      <link>https://forem.com/vrukshali26/part-1-overview-of-docker-2ico</link>
      <guid>https://forem.com/vrukshali26/part-1-overview-of-docker-2ico</guid>
      <description>&lt;h2&gt;
  
  
  What is Docker?
&lt;/h2&gt;

&lt;p&gt;Docker is a platform designed to help developers build, share, and run modern applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More simple definition:&lt;/strong&gt; &lt;br&gt;
Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in same ways you manage your applications. You can ship, test, and deploy code quickly, and significantly reduce delay between writing code and running it in production. &lt;/p&gt;

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

&lt;p&gt;The whole idea of Docker is for developers to easily develop applications, ship them into containers which can then be deployed anywhere.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is container?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Docker Containers contain binaries, libraries and configuration files along with the application itself.&lt;/li&gt;
&lt;li&gt;Docker Container is a standardised unit which can be created on the fly to deploy a particular application or environment. It could be an Ubuntu container, Debian container, etc. to full-fill the requirement from an operating system point of view. &lt;/li&gt;
&lt;li&gt;Docker Containers share resources with other containers in the same host OS and provide OS level process isolation.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Then what are Virtual Machines?
&lt;/h2&gt;

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

&lt;ol&gt;
&lt;li&gt;Virtual Machines (VMs) run on Hypervisors, which allow multiple Virtual Machines to run on a single Machine along with its own operating system.&lt;/li&gt;
&lt;li&gt;Each VM has its own copy of an operating system along with the application and necessary binaries, which makes it significantly larger and it requires more resources.&lt;/li&gt;
&lt;li&gt;They provide Hardware-level process isolation and are slow to boot.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Difference between Docker vs Virtual Machine
&lt;/h2&gt;

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

&lt;ol&gt;
&lt;li&gt;It is a text document that contains necessary commands which on execution helps assemble a Docker Image.&lt;/li&gt;
&lt;li&gt;Docker image is created using a Docker file.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  What is Container Registry?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Docker Hub is the official online repository where you can find other Docker Images that are available for use.&lt;/li&gt;
&lt;li&gt;It makes it easy to find, manage and share container images with others.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdoaeacw8dvo1o5pt0k5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdoaeacw8dvo1o5pt0k5.png" alt="Dockerhub" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Let's create a Docker image using Dockerfile:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Make a directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir test and cd test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now create a file Dockerfile&lt;br&gt;
(File name is hard coded do not change the file name)&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Create a sample web page with name index.html&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Custom docker image created using Dockerfile!!!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Edit the Dockerfile using following instructions&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM centos:7
MAINTAINER Vrukshali
RUN yum install httpd -y
COPY index.html /var/www/html/
CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]
EXPOSE 80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Dockerfile commands explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MAINTAINER&lt;/em&gt; — This command is used to give the information about the author or manager who is managing this image. MAINTAINER Vrukshali&lt;/p&gt;

&lt;p&gt;&lt;em&gt;RUN&lt;/em&gt; — Before building an image if want some configuration that needs to be present in the image. Inside the image we need to install Apache web server image the command to install that image is RUN yum install httpd -y&lt;/p&gt;

&lt;p&gt;&lt;em&gt;COPY&lt;/em&gt; - This command is used to copy a file from host os to docker container COPY index.html /var/www/html&lt;/p&gt;

&lt;p&gt;&lt;em&gt;EXPOSE&lt;/em&gt; - This command is used to specify the port number in which the container is running its process. Anybody can come from outside and connect to this port. Apache webserver is launched at port 80 by default that is why we need to expose container at port 80. EXPOSE 80&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CMD&lt;/em&gt; - To run a command as soon as container is launched. CMD command is different from RUN because RUN is used at the time of building an image and CMD used to run command when container is started.&lt;br&gt;
&lt;code&gt;/usr/sbin/httpd&lt;/code&gt; - This command is used to start the web server&lt;br&gt;
&lt;code&gt;-DFOREGROUND&lt;/code&gt;— This is not a docker command this is http server argument which is used to run webserver in background. If we do not use this argument the server will start and then it will stop.&lt;br&gt;
&lt;code&gt;CMD [“/usr/sbin/httpd”,” -D”,” FOREGROUND”]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Build the image using docker build.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build -t webserver:v1 .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;. is Dockerfile is present n current location and –t option is to tag or name the image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;last few lines&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
...
Step 6/6 : EXPOSE 80
 ---&amp;gt; Running in ed9972b66ac1
Removing intermediate container ed9972b66ac1
 ---&amp;gt; 5ca87e671dc1
Successfully built 5ca87e671dc1
Successfully tagged webserver:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now run &lt;code&gt;docker images&lt;/code&gt; command.&lt;br&gt;
&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
webserver    v1        5ca87e671dc1   About a minute ago   392MB
centos       7         eeb6ee3f44bd   4 months ago         204MB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Run a container using docker image created by Dockerfile&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run –dit –p 1234:80 webserver:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;-p:&lt;/em&gt; This argument is used to port forwarding. Which means anybody from outside who comes for 1234 its request is forwarded to port 80. Port 80 is default port number where apache webserver runs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; To See the Result :&lt;br&gt;
&lt;code&gt;curl http://&amp;lt;host ip&amp;gt;:1234/&lt;/code&gt; or on webpage &lt;code&gt;http://&amp;lt;host ip&amp;gt;:1234/&lt;/code&gt;&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Custom docker image created using Dockerfile!!!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Now we need to push this image to central repository, here I will be using DockerHub as central registry.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; You need a DockerHub Account&lt;br&gt;
&lt;em&gt;You can create this on &lt;a href="https://hub.docker.com/" rel="noopener noreferrer"&gt;https://hub.docker.com/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Login to DockerHub via terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker login --username=yourhubusername --email=youremail@company.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With your own username and email that you used for the account. Enter your password when prompted. If everything worked you will get a message similar to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WARNING: login credentials saved in /home/username/.docker/config.json
Login Succeeded
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Tag your image&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker tag &amp;lt;image id or image name&amp;gt;:&amp;lt;version&amp;gt; yourhubusername/&amp;lt;image_name&amp;gt;:&amp;lt;version&amp;gt;
&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;docker tag webserver:v1 vrukshali26/web:v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see using docker images&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
webserver         v1        5ca87e671dc1   14 minutes ago   392MB
vrukshali26/web   v1        5ca87e671dc1   14 minutes ago   392MB
centos            7         eeb6ee3f44bd   4 months ago     204MB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Push your image to the DockerHub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker push yourhubusername/&amp;lt;image_name&amp;gt;:&amp;lt;version&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The push refers to repository [docker.io/vrukshali26/web]
a59ac102fa99: Pushed 
951641dc1264: Pushed 
174f56854903: Mounted from library/centos 
v1: digest: sha256:29169ceace4c1c0e29022d77453be7dcc97070d9ab1f5bbb640051ff13178f64 size: 948
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can see on DockerHub, your first custom docker image has been pushed.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>docker</category>
      <category>devops</category>
    </item>
    <item>
      <title>Create High Availability Architecture with AWS CLI</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Tue, 17 Jan 2023 03:34:55 +0000</pubDate>
      <link>https://forem.com/vrukshali26/create-high-availability-architecture-with-aws-cli-4mji</link>
      <guid>https://forem.com/vrukshali26/create-high-availability-architecture-with-aws-cli-4mji</guid>
      <description>&lt;p&gt;Today's article is on S3 and CloudFront Architecture practical using AWS CLI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Amazon S3?
&lt;/h2&gt;

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

&lt;p&gt;&lt;strong&gt;Amazon Simple Storage Service&lt;/strong&gt; is storage for the Internet. It is designed to make web-scale computing easier for developers.&lt;/p&gt;

&lt;p&gt;Amazon S3 has a simple web services interface that you can use to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Amazon CloudFront?&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Amazon CloudFront&lt;/strong&gt; is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment. CloudFront is integrated with AWS — both physical locations that are directly connected to the AWS global infrastructure, as well as other AWS services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The architecture includes-&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Webserver configured on EC2 Instance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Document Root(/var/www/html) made persistent by mounting on EBS Block Device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static objects used in code such as pictures stored in S3&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setting up Content Delivery Network using CloudFront and using the origin domain as S3 bucket.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally place the Cloud Front URL on the webapp code for security and low latency.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ktHm8MCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/719fk8ebyvftcgrckcc5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ktHm8MCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/719fk8ebyvftcgrckcc5.png" alt="S3 and Cloudfront" width="556" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this follow the steps in my article: &lt;/p&gt;

&lt;p&gt;First we have to configure webserver on EC2 instance&lt;/p&gt;

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

&lt;p&gt;The volume that we attached in my previous article on aws cli, we have to mount that volume to the document root (/var/www/html) to make it persistent.&lt;/p&gt;

&lt;p&gt;You can find it here: &lt;a href="https://dev.to/vrukshali26/lets-work-with-aws-cli-38po"&gt;https://dev.to/vrukshali26/lets-work-with-aws-cli-38po&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For doing this firstly we have to create partition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All the below steps are done on Windows Command Prompt.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Here, you can see partition is created:&lt;/p&gt;

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

&lt;p&gt;Now, format the partition:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9mD5WJu9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7uy8bul80ogg4hr865ci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9mD5WJu9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7uy8bul80ogg4hr865ci.png" alt="Image" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, mount this partition to root document:&lt;/p&gt;

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

&lt;p&gt;Now, Static objects used in code such as pictures stored in S3.&lt;/p&gt;

&lt;p&gt;For this first create a bucket&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9an4dDBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lxuv6hsxiqgzh4rpehr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9an4dDBU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lxuv6hsxiqgzh4rpehr.png" alt="ImageCLI" width="800" height="74"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Now upload image in S3 bucket. Here, bucket name is “task-bucket-6”&lt;/p&gt;

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

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

&lt;p&gt;Now make Bucket &amp;amp; object publicly accessible, Make bucket public:&lt;/p&gt;

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

&lt;p&gt;Make object public:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;s3api put-object-acl --bucket task-bucket-6 --key 123.jpg --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now, Setting up Content Delivery Network using CloudFront and using the origin domain as S3 bucket.&lt;/p&gt;

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

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

&lt;p&gt;Now, lets create a small HTML code and put the URL in HTML code&lt;/p&gt;

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

&lt;p&gt;Now, lets see our web page&lt;/p&gt;

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

&lt;p&gt;You can read my previous blogs here: &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__550934"&gt;
    &lt;a href="/vrukshali26" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TemcsVaW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--0uhlC-Ou--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/550934/140f1deb-d2a4-48e2-b449-2595c99ea320.jpg" alt="vrukshali26 image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/vrukshali26"&gt;Vrukshali Torawane&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/vrukshali26"&gt;so much to learn, so much to do, and so little time&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Let's connect🚀: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://vrukshali.bio.link/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" height="300" class="m-0" width="300"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://vrukshali.bio.link/" rel="noopener noreferrer" class="c-link"&gt;
          Vrukshali Torawane
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          ☕️➡️👩🏻‍💻 • backend engineer • travel • calligraphy • aws community builder
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" width="300" height="300"&gt;
        vrukshali.bio.link
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>beginners</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Let's work with AWS CLI</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Mon, 16 Jan 2023 04:42:58 +0000</pubDate>
      <link>https://forem.com/vrukshali26/lets-work-with-aws-cli-38po</link>
      <guid>https://forem.com/vrukshali26/lets-work-with-aws-cli-38po</guid>
      <description>&lt;p&gt;In this blog, we will learn how to create below resources using AWS CLI&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a key pair&lt;/li&gt;
&lt;li&gt;Create a security group&lt;/li&gt;
&lt;li&gt;Launch an instance using the above created key pair and security group.&lt;/li&gt;
&lt;li&gt;Create an EBS volume of 1 GB.&lt;/li&gt;
&lt;li&gt;The final step is to attach the above created EBS volume to the instance you created in the previous steps.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;First we have to create an IAM User.&lt;/p&gt;

&lt;p&gt;So Amazon has IAM (Identity and Access Management) service where we can create user and can give limited access to that user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; To give user name and here in AWS Access type give programmatic access so that it enables access key &amp;amp; secret key for AWS CLI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jalN7e2g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3kiwgg93h4fom9xx05gu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jalN7e2g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3kiwgg93h4fom9xx05gu.png" alt="create user" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Give permissions to that user.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What are &lt;strong&gt;Permissions&lt;/strong&gt;?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Permissions enable you to perform actions on AWS resources. When a new user or group is created, it has no permissions and a policy must be attached to allow actions to be taken on AWS resources.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You can assign permissions to all AWS identities (users, groups, and roles). Permissions are assigned in the following two ways:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Identity-based&lt;/strong&gt;: Policies attached directly to users, groups, or roles&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Resource-based&lt;/strong&gt;: Policies attached to AWS resources, such as S3 Buckets, ECR Repositories, and more&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now AWS, will generate Access Key &amp;amp; Secret Key for that user. We have to use this Access Key &amp;amp; Secret Key (save these) to login into our AWS CLI and then click create and here you can see IAM user is created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QLt-_rzA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3a1fygpondbje0pruji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QLt-_rzA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3a1fygpondbje0pruji.png" alt="IAM User created" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install AWS CLI: &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html"&gt;https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now in Windows Command Prompt, there’s a command &lt;code&gt;aws configure&lt;/code&gt; to login with aws cli user created above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T-uPBKqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d3889fm2y47ykg7hssnt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T-uPBKqG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d3889fm2y47ykg7hssnt.png" alt="Here, provide the access key &amp;amp; secret key to login" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧩 Command syntax is :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws &amp;lt;command&amp;gt; &amp;lt;subcommand&amp;gt; &amp;lt;options&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, firstly we have to create our own key pair for that we take help of AWS so here to take help we write :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws ec2 help&lt;/code&gt;: This gives all the commands available in ec2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_QcJPAX9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ncqbglzew0a0vjqc5qb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_QcJPAX9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ncqbglzew0a0vjqc5qb.png" alt="ec2 help command" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, here to create new key pair you can see subcommand:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WBnviiU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hw5jpo88wntayniodo10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WBnviiU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hw5jpo88wntayniodo10.png" alt="Create new key pair subcommand" width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we can create new key pair by command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws ec2 create-key-pair — key-name TaskKeyPair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0w5_LILC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10xvvr634f320vy2e1vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0w5_LILC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10xvvr634f320vy2e1vs.png" alt="create new key pair" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we can create new security group by command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws ec2 create-security-group — group-name TaskSG — description “Task Security Group”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6lbuDk5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elkzgzr0fv7c89t0cpob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6lbuDk5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elkzgzr0fv7c89t0cpob.png" alt="create new security group" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By using this newly created key pair &amp;amp; security group we have to launch new instance:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws run-instances — image-id ami-0e306788ff2473ccb — instance-type t2.micro — subnet-id subnet-37666f5f — count 1 — security-group-ids sg-082e7e59275801fcd — key-name TaskKeyPair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7um4F5fB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12f1wb2u5alcdb72d89t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7um4F5fB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12f1wb2u5alcdb72d89t.png" alt="launch new instance" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see the created instance using CLI OR GUI:&lt;/p&gt;

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

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

&lt;p&gt;We have to create an EBS volume of 1 GB.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws ec2 create-volume — volume-type gp2 — size 1 — availability-zone ap-south-1a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_D1srlRH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t73hq3rujtzbprr7c2kn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_D1srlRH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t73hq3rujtzbprr7c2kn.png" alt="EBS volume CLI" width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Now, finally we have attach the Volume to the instance that we created now. we can attach the volume by following command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws ec2 attach-volume — volume-id vol-0522f336c28172eb1 — instance-id i-07345102940d94e27 — device /dev/sdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Device name can be “sdf or svdh”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DHHnzWjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z9ew897iva02hrr4a5xo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DHHnzWjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z9ew897iva02hrr4a5xo.png" alt="attach the volume CLI" width="800" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DKsWq-49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gcjlq3c7zznljbtb4301.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DKsWq-49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gcjlq3c7zznljbtb4301.png" alt="attach the volume GUI" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see Volume of 1 GB is in use.&lt;/p&gt;

&lt;p&gt;You can find me here: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://vrukshali.bio.link/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" height="300" class="m-0" width="300"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://vrukshali.bio.link/" rel="noopener noreferrer" class="c-link"&gt;
          Vrukshali Torawane
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          ☕️➡️👩🏻‍💻 • backend engineer • travel • calligraphy • aws community builder
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" width="300" height="300"&gt;
        vrukshali.bio.link
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>AWS : Leaders of Cloud Computing</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Sat, 14 Jan 2023 06:03:01 +0000</pubDate>
      <link>https://forem.com/vrukshali26/aws-leaders-of-cloud-computing-1k3c</link>
      <guid>https://forem.com/vrukshali26/aws-leaders-of-cloud-computing-1k3c</guid>
      <description>&lt;p&gt;Let’s begin by understanding &lt;/p&gt;

&lt;h2&gt;
  
  
  What is cloud computing?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud computing&lt;/strong&gt; is the on-demand availability of computer system resources (includes RAM/CPU/HD), especially data storage (cloud storage) and computing power, without direct active management by the user.&lt;/p&gt;

&lt;p&gt;There are various types of Cloud Computing:-&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W87dyiKd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlwynx77ko5a7hexusoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W87dyiKd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlwynx77ko5a7hexusoh.png" alt="Types of Cloud Computing" width="486" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services (AWS) is a Public Cloud and a subsidiary of Amazon providing on-demand cloud computing platform.&lt;/p&gt;

&lt;p&gt;AWS was officially launched on March 14, 2006, combining the three initial service offerings of Amazon S3 cloud storage, SQS, and EC2. The AWS platform finally provided an integrated suite of core online services and also services offered to other developers, web sites, client-side applications, and companies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4gHHf5iX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ocnz8g41klvmq9kfd22o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4gHHf5iX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ocnz8g41klvmq9kfd22o.png" alt="AWS" width="700" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💰 AWS works on the &lt;strong&gt;Pay-as you-Go&lt;/strong&gt; model .i.e., charges are based on a combination of usage hardware, operating system, software, or networking features chosen by the subscriber.&lt;/p&gt;

&lt;p&gt;According to Amazon, the number of active AWS users exceeds 1,000,000. AWS is used by some of the most well-known brands in existence, such as Netflix, Uber, and Airbnb and many more. They also support Startups. The services they provided are from every domain from Machine Learning, Block Chain, IOT to AR/VR, Gaming, Quantum Computing, Robotics and many more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MDHc0_Ie--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ptyzr223rnkl3s5xtjg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MDHc0_Ie--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ptyzr223rnkl3s5xtjg.png" alt="Companies using AWS" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The picture below gives you information about Big Companies that are build on AWS&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xtmabWom--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m82l397ol5on9nvt3j00.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtmabWom--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m82l397ol5on9nvt3j00.png" alt="names of companies" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The top ten AWS users based on EC2 (Elastic Cloud Compute) monthly spend are:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iVZm8-aK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kk8kn8jvtlx6aris2fwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iVZm8-aK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kk8kn8jvtlx6aris2fwq.png" alt="Image" width="435" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you have a better understanding of the different types of AWS customers, you’re probably wondering how they actually use the platform?&lt;/p&gt;

&lt;p&gt;AWS is used by almost all the fields, not only in IT sector but also in agriculture, media telecommunication, travelling, health care, education, marketing and advertising and many more…&lt;/p&gt;

&lt;p&gt;✍🏻 &lt;strong&gt;AWS Case Study:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OMvnPsRe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gu0q2cd8xnv79vyelkq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OMvnPsRe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gu0q2cd8xnv79vyelkq3.png" alt="Disney+" width="768" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everyone knows Disney!&lt;/p&gt;

&lt;p&gt;It’s an American subscription video on-demand streaming service owned and operated by the Direct-to-Consumer &amp;amp; International (DTCI) subsidiary of The Walt Disney Company. The service primarily distributes films and television series produced by The Walt Disney Studios and Walt Disney Televisions, with the service also advertising content from the company’s Disney, Pixel, Marvel, Star Wars, and National Geographic brands in particular.&lt;/p&gt;

&lt;p&gt;📝As per the articles, The Walt Disney Company Selects AWS as its Preferred Public Cloud Infrastructure Provider , Disney uses AWS Cloud.&lt;/p&gt;

&lt;p&gt;Let’s have a look on How Disney uses AWS?&lt;/p&gt;

&lt;p&gt;Disney uses Amazon Pinpoint — along with other AWS services including Amazon Kinesis, AWS Lambda, Amazon S3, and AWS Glue — to target customers, monitor the performance of their campaigns in real time, and gain a deeper understanding of their users’ needs and desires.&lt;/p&gt;

&lt;p&gt;How Disney built its streaming analytics pipeline on AWS?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zb5A2fX3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvmvrftzciekdp69w041.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zb5A2fX3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvmvrftzciekdp69w041.png" alt="streaming analytics pipeline on AWS" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video streaming is providing content creators direct data on consumer behavior like never before. However, without the proper pipeline from viewer to database, deriving insights about customer preferences and engagement can take days or weeks.&lt;/p&gt;

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

&lt;p&gt;How Disney Streaming Services Uses Amazon Pinpoint to Send Personalized Messages to Millions of Users in Real Time?&lt;/p&gt;

&lt;p&gt;Firstly let’s understand &lt;strong&gt;Amazon Pinpoint&lt;/strong&gt;: Amazon Pinpoint is a flexible and scalable outbound and inbound marketing communications service. You can connect with customers over channels like email, SMS, push, or voice. Amazon Pinpoint is easy to set up, easy to use, and is flexible for all marketing communication scenarios. Segment your campaign audience for the right customer and personalize your messages with the right content. Delivery and campaign metrics in Amazon Pinpoint measure the success of your communications. Amazon Pinpoint can grow with you and scales globally to billions of messages per day across channels.&lt;/p&gt;

&lt;h2&gt;
  
  
  Targeting the right customer at the right time:
&lt;/h2&gt;

&lt;p&gt;🔺️ &lt;strong&gt;Problem&lt;/strong&gt;: When you consider the use cases for MLB’s suite of apps, you can quickly see why sending the right message to the right customer is a more complicated task than it might seem at first glance. For each of the 30 Major League Baseball teams, users can opt to receive eight different types of messages. Each of these eight message types is available in both English and Spanish. There are thousands of possible segments and combinations of segments to consider with each message sent.&lt;/p&gt;

&lt;p&gt;✅ How AWS solves this issue: Disney Streaming Services uses Amazon Pinpoint to dynamically create unique segments and campaigns for every event in milliseconds. In the most demanding usage scenarios, Amazon Pinpoint scales to create over 300 segments and campaigns per hour, and over 20 segments and campaigns per minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring campaign performance in real time:
&lt;/h2&gt;

&lt;p&gt;🔺️ &lt;strong&gt;Problem&lt;/strong&gt;: With the fast-paced nature of Disney Streaming’s notifications and the sheer number of campaigns and segments they are targeting, monitoring their performance directly in the Amazon Pinpoint console is not scalable for their use case. However, they must have real-time notifications to let them know if their campaigns are lagging or not reaching the expected number of recipients.&lt;/p&gt;

&lt;p&gt;✅ How AWS solves this issue: Disney Streaming developed a solution that uses AWS Step Functions, Amazon Cloud watch, AWS Lambda, and Amazon Pinpoint. This solution monitors each campaign that is created. When a campaign is executed, their solution streams data about the execution and delivery of that campaign, and sends alerts when the team needs to take a closer look at how their campaigns are performing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AJbEkZYn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vuwemeiolxyr9kibuwlc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AJbEkZYn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vuwemeiolxyr9kibuwlc.png" alt="Monitoring Campaigns in Real Time" width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔺️ &lt;strong&gt;Understanding fans&lt;/strong&gt;: After a campaign has been sent, Disney Streaming analyzes the performance of campaigns. By performing this analysis, they can better understand how customers engaged with notifications, and ensure fans are receiving a compelling experience.&lt;/p&gt;

&lt;p&gt;✅ To achieve this, Disney Streaming uses the event streaming and exporting features of Amazon Pinpoint. They stream engagement events by using Amazon Kinesis. These events let them know how fans interacted with the application, and allow them to drill down into various performance metrics on a per-team basis. They then store these metrics in S3, which are picked up by their data lake team for further processing. By using this solution, they can create near-real-time reports for the unique audiences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w65VSylV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsnx24x9pj81v8j3u7al.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w65VSylV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsnx24x9pj81v8j3u7al.png" alt="Event stream reports" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Removing unengaged customers:
&lt;/h2&gt;

&lt;p&gt;🔺️ &lt;strong&gt;Problem&lt;/strong&gt;: Disney Streaming also uses a custom solution to engage with customers who are still able to receive messages, and to ensure that reports only include engaged users. For example, if a customer uninstalls the MLB or NHL apps, re-installs an app but doesn’t set their messaging preferences, or starts using a device on a different platform, that customer might not be able to be contacted. Disney Streaming needs to remove these unreachable customers from campaigns so that they can maintain accurate reports on audience sizes, helping keep costs low, and reduce campaign latency.&lt;/p&gt;

&lt;p&gt;✅ How AWS solves this issue: To delete unreachable customers in real time, the Disney Streaming team uses Amazon Pinpoint to detect when they attempt to send a push notification to an unreachable customer. Their Kinesis Firehose stream then outputs campaign data to an S3 bucket, and an AWS Glue job filters out the customers who are unreachable. Finally, a Lambda function removes the endpoint by making a call to the Amazon Pinpoint API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zitdt8jy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v0w257k9ueg4q9a72c1e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zitdt8jy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v0w257k9ueg4q9a72c1e.png" alt="Removing Unengaged Customers" width="800" height="905"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So in this way, Disney uses AWS to solve their problems.&lt;/p&gt;

&lt;p&gt;Hopefully, this article may help you know AWS and the way it’s expanding!🌏&lt;/p&gt;

&lt;p&gt;Let's connect🚀: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://vrukshali.bio.link/" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" height="300" class="m-0" width="300"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://vrukshali.bio.link/" rel="noopener noreferrer" class="c-link"&gt;
          Vrukshali Torawane
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          ☕️➡️👩🏻‍💻 • backend engineer • travel • calligraphy • aws community builder
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8BuM_oBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.bio.link/uploads/profile_pictures/2022-09-25/mKgtEVJkKRh96N5tacF5UhV7v02fLYNv.png" width="300" height="300"&gt;
        vrukshali.bio.link
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>beginners</category>
      <category>cloud</category>
      <category>aws</category>
      <category>cloudskills</category>
    </item>
    <item>
      <title>Create Custom Templates in Monokle🚀</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Sun, 20 Feb 2022 06:05:52 +0000</pubDate>
      <link>https://forem.com/vrukshali26/create-custom-templates-in-monokle-3af9</link>
      <guid>https://forem.com/vrukshali26/create-custom-templates-in-monokle-3af9</guid>
      <description>&lt;h2&gt;
  
  
  What is Kubernetes?🎡
&lt;/h2&gt;

&lt;p&gt;⚡ Kubernetes (sometimes shortened to K8s with the 8 standing for the number of letters between the "K" and the "s") is an open-source system to deploy, scale, and manage containerized applications anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Kubernetes Resources? 🚀
&lt;/h2&gt;

&lt;p&gt;⚡ A resource is an endpoint in the Kubernetes API that stores a collection of API objects of a certain kind; for example, the built-in pods resource contains a collection of Pod objects.&lt;/p&gt;

&lt;p&gt;More information can be found here : &lt;a href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/" rel="noopener noreferrer"&gt;https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Monokle? 🔰
&lt;/h2&gt;

&lt;p&gt;⚡ Monokle helps you to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quickly get a high-level view of your manifests, their contained resources and relationships.&lt;/li&gt;
&lt;li&gt;Easily edit resources without having to learn or look up yaml syntax.
3.Refactor resources with maintained integrity of names and references.&lt;/li&gt;
&lt;li&gt;Preview and debug resources generated with Kustomize or Helm.&lt;/li&gt;
&lt;li&gt;Diff resources against your cluster and apply changes immediately.&lt;/li&gt;
&lt;li&gt;Visualize and navigate resources in your clusters.&lt;/li&gt;
&lt;li&gt;And much more!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⚡ More information can be found here : &lt;a href="https://kubeshop.github.io/monokle/" rel="noopener noreferrer"&gt;https://kubeshop.github.io/monokle/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❄ &lt;strong&gt;Today's blog is about How can we create our custom Monokle Template!!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Monokle Templates? 🔰
&lt;/h2&gt;

&lt;p&gt;A Monokle Template is a mechanism for creating visual forms and interpolating the data from those forms into one or multiple manifests.&lt;/p&gt;

&lt;p&gt;⚡ More information can be found here : &lt;a href="https://kubeshop.github.io/monokle/templates/" rel="noopener noreferrer"&gt;https://kubeshop.github.io/monokle/templates/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❄ &lt;strong&gt;I have created a custom template for Kubernetes Service&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Kubernetes Service?
&lt;/h2&gt;

&lt;p&gt;An abstract way to expose an application running on a set of Pods as a network service.&lt;br&gt;
With Kubernetes you don't need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives Pods their own IP addresses and a single DNS name for a set of Pods, and can load-balance across them.&lt;/p&gt;

&lt;p&gt;⚡ More information can be found here : &lt;a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="noopener noreferrer"&gt;https://kubernetes.io/docs/concepts/services-networking/service/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❄ &lt;strong&gt;Let's start&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉🏻 &lt;strong&gt;Step-1:&lt;/strong&gt; Create a &lt;em&gt;&lt;code&gt;package.json&lt;/code&gt;&lt;/em&gt; file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "name": "Monokle Custom Templates Plugin",
    "author": "Vrukshali Torawane",
    "version": "1.0.0",
    "description": "This plugin provides the custom resource templates for Monokle",
    "repository": "https://github.com/Vrukshali-26/monokle-templates-plugins",
    "monoklePlugin": {
      "id": "com.github.Vrukshali-26.plugin.templates",
      "helpUrl": "https://github.com/Vrukshali-26/monokle-templates-plugins",
      "modules": [
        {
          "type": "template",
          "path": "service-template" 
        }
      ]
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❄ In this &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;author&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;monoklePlugin&lt;/code&gt;, &lt;code&gt;helpUrl&lt;/code&gt; and &lt;code&gt;modules&lt;/code&gt; are required to specify, also we are specifying where we have the template plugin folder &lt;em&gt;e.g., in my case, &lt;code&gt;service-template&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;👉🏻 &lt;strong&gt;Step-2:&lt;/strong&gt; Create a folder named &lt;strong&gt;&lt;code&gt;service-template&lt;/code&gt;&lt;/strong&gt; and add the following content:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. In &lt;code&gt;monokle-template.json&lt;/code&gt; file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "name": "Basic Kubernetes Service",
    "id": "com.github.Vrukshali-26.plugin.templates.basic-service-template",
    "author": "Vrukshali-26",
    "version": "1.0.0",
    "description": "Creates a Kubernetes Service",
    "repository": "",
    "type": "vanilla",
    "forms": [
      {
        "name": "Service Settings",
        "description": "Specify the settings for your Service",
        "schema": "form-schema.json",
        "uiSchema": "form-ui-schema.json"
      }
    ],
    "manifests": [
      {
        "filePath": "template.yaml"
      }
    ],
    "resultMessage": "Service resource created successfully!",
    "helpUrl": "https://github.com/Vrukshali-26/monokle-templates-plugins"
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. In &lt;code&gt;form-schema.json&lt;/code&gt; file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "type": "object",
    "required": [
      "name",
      "podSelector",
      "targetPort"
    ],
    "properties": {

      "name": {
        "type": "string",
        "default": "my-custom-service"
      },

      "namespace": {
        "type": "string"
      },

      "podSelector": {
        "type": "string",
        "default": "app: my-app"
      },

      "servicePort": {
        "type": "number",
        "default": 80
      },

      "targetPort": {
        "type": "number"
      },

      "serviceType": {
        "type": "string",
        "default": "LoadBalancer",
        "enum": [
          "LoadBalancer",
          "NodePort",
          "ClusterIP"
        ]
      }

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. In &lt;code&gt;form-ui-schema.json&lt;/code&gt; file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "name": {
      "ui:title": "Name",
      "ui:help": "The name of Service"
    },

    "namespace": {
      "ui:title": "Namespace",
      "ui:help": "The target namespace for the created Service",
      "ui:widget": "namespaceSelection"
    },

    "podSelector": {
      "ui:title": "Pod Selector",
      "ui:help": "The label name-value pair to use for selecting target Pod(s) for this Service",
      "ui:widget": "podSelectorSelection"
    },

    "targetPort": {
      "ui:title": "Target Port",
      "ui:help": "The port exposed by the target Pod"
    },

    "servicePort": {
      "ui:title": "Service Port",
      "ui:help": "The port to expose the Service on"
    },

    "serviceType": {
      "ui:title": "Service Type",
      "ui:help": "The type of Service to create"
    }
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. In &lt;code&gt;template.yaml&lt;/code&gt; file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: v1
kind: Service
metadata:
  name: [[forms[0].name]]
[[ forms[0].namespace ? "  namespace: " + forms[0].namespace + "\n" : ""]]
spec:
  ports:
    - port: [[forms[0].servicePort]]
      protocol: TCP
      targetPort: [[forms[0].targetPort]]
  selector:
    [[forms[0].podSelector]]
  type: [[forms[0].serviceType]]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉🏻 &lt;strong&gt;Push this code to GitHub&lt;/strong&gt; : &lt;a href="https://github.com/Vrukshali-26/monokle-templates-plugins" rel="noopener noreferrer"&gt;https://github.com/Vrukshali-26/monokle-templates-plugins&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❄ &lt;strong&gt;Download Monokle&lt;/strong&gt; : &lt;a href="https://monokle.kubeshop.io/" rel="noopener noreferrer"&gt;https://monokle.kubeshop.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now after installation, we will use our custom template-plugin:&lt;/p&gt;

&lt;p&gt;👉🏻 &lt;strong&gt;Step-1:&lt;/strong&gt; Welcome to Monokle!!&lt;/p&gt;

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

&lt;p&gt;👉🏻 &lt;strong&gt;Step-2:&lt;/strong&gt; Install Plugin&lt;br&gt;
&lt;em&gt;you can see a plugin button at top right corner&lt;/em&gt;&lt;/p&gt;

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

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

&lt;p&gt;❄ &lt;strong&gt;Click on Install and enter the github URL!!&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;❄ &lt;em&gt;You can see the plugin is installed&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;👉🏻 &lt;strong&gt;Step-3:&lt;/strong&gt; Now on Dashboard click &lt;em&gt;Start from a Template&lt;/em&gt;:&lt;/p&gt;

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

&lt;p&gt;👉🏻 &lt;strong&gt;Step-4:&lt;/strong&gt; Enter Project Name:&lt;/p&gt;

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

&lt;p&gt;❄ &lt;em&gt;Click Next Select a Template&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;❄ &lt;em&gt;Now Click Create Project&lt;/em&gt;&lt;/p&gt;

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

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

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

&lt;p&gt;❄ &lt;em&gt;Click Submit and Resource is Created Successfully!!!!!&lt;/em&gt;&lt;/p&gt;

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

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

&lt;p&gt;&lt;strong&gt;We have created our custom Template successfully!!!!&lt;/strong&gt; &lt;br&gt;
Thanks for Reading !! 🙌🏻😁📃&lt;/p&gt;

&lt;p&gt;🔰 Keep Learning !! Keep Sharing !!&lt;/p&gt;

&lt;p&gt;🚀 Feel free to connect with me :&lt;br&gt;
LinkedIn : &lt;a href="https://www.linkedin.com/in/vrukshali-torawane/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/vrukshali-torawane/&lt;/a&gt;&lt;br&gt;
GitHub : &lt;a href="https://github.com/Vrukshali-26" rel="noopener noreferrer"&gt;https://github.com/Vrukshali-26&lt;/a&gt;&lt;br&gt;
Twitter : &lt;a href="https://twitter.com/vrukshali26" rel="noopener noreferrer"&gt;https://twitter.com/vrukshali26&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>monokle</category>
      <category>beginners</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Terraform Integrated with GitHub Actions to setup Argo CD on Civo</title>
      <dc:creator>Vrukshali Torawane</dc:creator>
      <pubDate>Wed, 01 Dec 2021 12:22:46 +0000</pubDate>
      <link>https://forem.com/vrukshali26/terraform-integrated-with-github-actions-to-setup-argo-cd-on-civo-4bbn</link>
      <guid>https://forem.com/vrukshali26/terraform-integrated-with-github-actions-to-setup-argo-cd-on-civo-4bbn</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Terraform Integrated with GitHub Actions to setup Argo CD on Civo.&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
Wohho! Wait! What is this? So let me explain a bit about this tools. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Argo CD&lt;/strong&gt; : ArgoCD is a GitOps tool that helps with your GitOps workflows. ArgoCD can be used as a standalone tool or as a part of your CI/CD workflow. ArgoCD works with Git as a source off truth, with current Kubernetes manifests, or with Helm charts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt; : Terraform is an infrastructure as code (IaC) tool that allows you to build, change, and version infrastructure safely and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Civo&lt;/strong&gt; : Civo is the first cloud native service provider powered only by Kubernetes. Blazing fast cluster launch times in under 90 seconds and simplified developer experience.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So now you have some overview of what does these tools do! &lt;/p&gt;
&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

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

&lt;p&gt;Here in my project I have tried to integrate these tools. So, the workflow is created using terraform with github actions which is used to launch the kubernetes cluster on CIVO with Argo CD preconfigured. And after configuration we as developers only need to write Kubernetes manifests file rest work will be done by Argo CD! Seems cool!!&lt;/p&gt;
&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Wacky Wildcards&lt;/p&gt;
&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;p&gt;GitHub Repository : &lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/vrukshaliii" rel="noopener noreferrer"&gt;
        vrukshaliii
      &lt;/a&gt; / &lt;a href="https://github.com/vrukshaliii/ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions" rel="noopener noreferrer"&gt;
        ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Terraform Integrated with GitHub Actions to setup Argo CD on Civo 🎡🐋💙&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
 &lt;a rel="noopener noreferrer" href="https://github.com/Vrukshali-26/ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions/blob/main/images/ezgif-6-d044d750cccf.gif?raw=true"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FVrukshali-26%2FArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions%2Fraw%2Fmain%2Fimages%2Fezgif-6-d044d750cccf.gif%3Fraw%3Dtrue" alt="GIF"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 GitHub Actions&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Vrukshali-26/ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions/blob/main/images/github%20actions.png?raw=true"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FVrukshali-26%2FArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions%2Fraw%2Fmain%2Fimages%2Fgithub%2520actions.png%3Fraw%3Dtrue" alt="Sublime's custom image"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;b&gt; GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform&lt;/b&gt; that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;GitHub Actions goes beyond just DevOps and lets you run workflows when other events happen in your repository. For example, you can run a workflow to automatically add the appropriate labels whenever someone creates a new issue in your repository. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;GitHub provides Linux, Windows, and macOS virtual machines to run your workflows, or you can host your own self-hosted runners in your own data center or cloud infrastructure. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;More Information : &lt;a href="https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions" rel="noopener noreferrer"&gt;https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🦑 Argo CD&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Vrukshali-26/ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions/blob/main/images/argocd.png?raw=true"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FVrukshali-26%2FArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions%2Fraw%2Fmain%2Fimages%2Fargocd.png%3Fraw%3Dtrue" alt="ArgoCD image"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;ArgoCD is a GitOps tool that helps with your GitOps workflows. ArgoCD can be used as a…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/vrukshaliii/ArgoCD-setup-on-Civo-using-Terraform-GitHub-Actions" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>actionshackathon21</category>
    </item>
  </channel>
</rss>
