<?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: Ahmed Srebrenica</title>
    <description>The latest articles on DEV Community by Ahmed Srebrenica (@srebreni3).</description>
    <link>https://dev.to/srebreni3</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%2F1056656%2Ff2560dda-0f94-40fe-a742-28e8b4e3d5e0.jpeg</url>
      <title>DEV Community: Ahmed Srebrenica</title>
      <link>https://dev.to/srebreni3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/srebreni3"/>
    <language>en</language>
    <item>
      <title>How I passed the AWS Security Specialty exam</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Sat, 23 Aug 2025 14:26:01 +0000</pubDate>
      <link>https://dev.to/srebreni3/how-i-passed-the-aws-security-specialty-exam-2hc4</link>
      <guid>https://dev.to/srebreni3/how-i-passed-the-aws-security-specialty-exam-2hc4</guid>
      <description>&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%2Flfet9du75ol9188e5aj9.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%2Flfet9du75ol9188e5aj9.png" alt=" " width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.credly.com/badges/eb14e4a8-92e7-4e33-841c-7aac8e2e7681/public_url" rel="noopener noreferrer"&gt;https://www.credly.com/badges/eb14e4a8-92e7-4e33-841c-7aac8e2e7681/public_url&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Security Specialty&lt;/strong&gt; is one of the hardest AWS exams. The focus is entirely on security in AWS, and there is a wide range of services you need to know. I prepared for 4 months, but a lot happened during that time. For example, we had a baby girl, and it’s hard to stay focused on learning when you have a baby at home, and also it’s difficult to find time to learn when you have a full-time job. But I succeed, and you can too, no matter your circumstances. Now, I will outline the main steps I took to successfully pass the AWS Security Specialty exam.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Loving to learn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You are in IT, right? We are committed to learning throughout our entire lives, unless you want to quit IT. I love learning, and I am looking forward to exploring new things. It can be stressful, but you have to find motivation and strength to deal with it. On this journey, I had to study a few new services that I didn’t use, and I found joy in that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Pass AWS Solutions Architect first&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In October 2023, I passed the AWS Solutions Architect Associate exam. I had some experience at that time, but not too much, and I passed it. The AWS Solutions Architect helped me a lot, because it covers many services that you need to know, and how those services depend on other services. I learned about many services back then that I had never even used. I must say, an AWS Solutions Architect should be the &lt;strong&gt;first&lt;/strong&gt; or &lt;strong&gt;second&lt;/strong&gt; step before taking the AWS Security Specialty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Materials you choose to learn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It depends on what you like. Earlier, for AWS Solutions Architect, I prepared with &lt;strong&gt;Stephane Maarek's&lt;/strong&gt; course, and I liked the way he teaches. For the AWS Security Specialty, I tried with &lt;strong&gt;Adrian Cantrill's&lt;/strong&gt; course, because he is also great. But it took me a lot of time to reach 50%, so I switched to Stephane’s course, and I didn’t regret it. &lt;strong&gt;Tutorials Dojo&lt;/strong&gt; is something that you CAN’T skip — it is a platform with practice questions for the exam. Of course, questions from Tutorials Dojo won’t appear on the exam, but the concepts are the same, which is what matters most. I thought it was not enough, so I bought &lt;strong&gt;Neil Davis'&lt;/strong&gt; practice exams and &lt;strong&gt;AWS Skill Builder&lt;/strong&gt;. Kudos to Neal Davis - the questions are similar to Tutorials Dojo. The AWS Skill Builder practice exam is very close to what you can expect on the real exam, maybe even harder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can’t succeed without using personal notes. Write down everything you are weak at, and review it daily. Don’t just study, go to the Console and try it out. The day before the exam, go through your entire notes document and review everything. This approach helped me not only with this exam, but it also helped me with every exam so far (AWS x2, Google x2, and Microsoft)&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>security</category>
      <category>cloud</category>
    </item>
    <item>
      <title>My first impression of Amazon Nova</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Tue, 29 Apr 2025 08:21:55 +0000</pubDate>
      <link>https://dev.to/aws-builders/my-first-impression-of-amazon-nova-2ibi</link>
      <guid>https://dev.to/aws-builders/my-first-impression-of-amazon-nova-2ibi</guid>
      <description>&lt;p&gt;Big thanks to the AWS Community Builders team for supporting me with AWS credit to introduce Amazon Nova.&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%2Fw3dnuv356csz4gvgu3l1.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%2Fw3dnuv356csz4gvgu3l1.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;We are living in the AI age, and the biggest companies in the world are battling each other to give us better AI services. AWS has a lot of AI services, and they are maybe the cloud provider with the most and best AI tools. Today, in this article, we are going to introduce Amazon Nova (Nova Lite, Nova Canvas, and Nova Reel).&lt;/p&gt;

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

&lt;p&gt;Per &lt;a href="https://docs.aws.amazon.com/nova/latest/userguide/what-is-nova.html" rel="noopener noreferrer"&gt;AWS Documentation&lt;/a&gt;: “Amazon Nova is a new generation of foundation models that deliver frontier intelligence and industry leading price performance, available on Amazon Bedrock. Amazon Nova models include three understanding models, two creative content generation models, and one speech-to-speech model. Through seamless integration with Amazon Bedrock, developers can build and scale generative AI applications with Amazon Nova foundation models. To start building with Amazon Nova, you must access the models through an API using Amazon Bedrock.”.&lt;/p&gt;

&lt;p&gt;We will work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Amazon Nova Lite: it is a very low-cost multimodal model that is lightning fast for processing image, video, and text inputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Amazon Nova Canvas is an image generation model that creates professional grade images from text and image inputs. Amazon Nova Canvas is ideal for a wide range of applications such as advertising, marketing, and entertainment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Amazon Nova Reel is a video generation model that supports the generation of short videos from input text and images. Amazon Nova Reel provides camera motion controls using natural language inputs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How can we access Amazon Nova?
&lt;/h2&gt;

&lt;p&gt;First of all, we need to have an AWS Account to access it, so make sure you have it. In the AWS Console, search for the Amazon Bedrock service.&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%2Fgh5m0x50w06p506b8ue0.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%2Fgh5m0x50w06p506b8ue0.png" alt=" " width="720" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second step would be to go to Model Access under the Bedrock Configuration from the left navigation pane.&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%2Fadep972nmj36o4chbjlt.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%2Fadep972nmj36o4chbjlt.png" alt=" " width="720" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Model Access, we have the option to find the model. We are going to find Nova. Under the access status, you should see “Available to request”. Click on that and choose Nova Reel, Nova Lite, and Nova Canvas. I won’t do that, because I already enabled it.&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%2F49p0iyahs8jcfkvq77z8.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%2F49p0iyahs8jcfkvq77z8.png" alt=" " width="720" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How can we use Amazon Nova Lite?
&lt;/h2&gt;

&lt;p&gt;Go to the main Bedrock page and from the left navigation pane under the Playgrounds, choose Chat / Text.&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%2Fc5r6yv0b0s9y5mkjbir4.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%2Fc5r6yv0b0s9y5mkjbir4.png" alt=" " width="720" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the “Select model” button and choose Amazon/Nova Lite/On-demand, and click “Apply”.&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%2F4kq5u319za80frsemkru.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%2F4kq5u319za80frsemkru.png" alt=" " width="720" height="318"&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%2Fujwrz414wn87ey3h40jx.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%2Fujwrz414wn87ey3h40jx.png" alt=" " width="720" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we are where we wanted to be. We can interact with the Amazon Nova Lite, but let’s first explain what we see:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On the left side are System Prompts, where we can add some instructions, for example: I want Amazon Nova Lite to respond to me in my native language, Bosnian.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Randomness and diversity — we can add Temperature and Top P here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the temperature is higher, the model is more creative; if it is lower, the model is more predictable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Top P It does “probabilistic sampling” — it determines how many rare options the model can consider when generating an answer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Response length — maximum length in tokens. Stop sequences — we can type something like “000” and the model will not generate when it sees “000”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With Guardrails, you can specify some rules, for example: you don’t want to see any harmful speech.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prompt whatever you want.&lt;/p&gt;&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%2Fsp66rxi1280hwmp1hasu.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%2Fsp66rxi1280hwmp1hasu.png" alt=" " width="720" height="321"&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%2F8my6ksc4o2fn2aisy6ji.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%2F8my6ksc4o2fn2aisy6ji.png" alt=" " width="720" height="332"&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%2F28yyvc2to3isdtteku2d.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%2F28yyvc2to3isdtteku2d.png" alt=" " width="720" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How can we use Amazon Nova Canvas?
&lt;/h2&gt;

&lt;p&gt;Go to the main Bedrock page and from the left navigation pane under the Playgrounds, choose Image / Video.&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%2Fmi3drlzk8mirw2i6kgwk.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%2Fmi3drlzk8mirw2i6kgwk.png" alt=" " width="720" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the “Select model” button and choose Amazon/Nova Canvas/On-demand, and click “Apply”.&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%2Fj2c63ye1kb2a94ze6q3b.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%2Fj2c63ye1kb2a94ze6q3b.png" alt=" " width="720" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can interact with the Amazon Nova Canvas now, but let’s first explain what we see:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We have a lot of options here, choose what you want. I will choose “Generate image” because I want Canvas to generate an image.&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%2F0kvzbka979n5wr8o7msk.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%2F0kvzbka979n5wr8o7msk.png" alt=" " width="373" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Negative prompt — you can type here what you don’t want in the picture. For example, “No blurry images”, or “No black hair”…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Response image — choose the size of an image and the number of images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can add any color to the generated photo. For example, you only want orange.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can upload the photo, and that photo can be edited by Amazon Nova Canvas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advanced configurations — Prompt Strength controls how tightly the model follows your text (higher values ​​like 6.5 enforce tighter adherence, lower values ​​allow more creativity). The Seed number controls randomness — using the same Seed gives similar results, leaving it blank ensures different outputs each time.&lt;/p&gt;&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%2Fpakxg57upq9ectva3t9v.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%2Fpakxg57upq9ectva3t9v.png" alt=" " width="720" height="331"&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%2Fbop9zano9s1rflfzug10.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%2Fbop9zano9s1rflfzug10.png" alt=" " width="720" height="319"&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%2Foou9y8ap25j2hn28nntl.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%2Foou9y8ap25j2hn28nntl.png" alt=" " width="720" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How can we use Amazon Nova Reel?
&lt;/h2&gt;

&lt;p&gt;Go to the main Bedrock page and from the left navigation pane under the Playgrounds, choose Image / Video.&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%2F6xep6dclf2tgurwoy8z2.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%2F6xep6dclf2tgurwoy8z2.png" alt=" " width="720" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the “Select model” button and choose Amazon/Nova Reel v1.1/On-demand, and click “Apply”.&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%2Fwb40ue0naw0skrylyc9d.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%2Fwb40ue0naw0skrylyc9d.png" alt=" " width="720" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can interact with the Amazon Nova Reel now, but let’s first explain what we see. First of all, the pop-up windows will alert us about costs, and if we want to avoid them, we should delete the created S3 bucket. Click “Confirm”, and the bucket will be created.&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%2Fp1qad1tttil24wpfqkl7.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%2Fp1qad1tttil24wpfqkl7.png" alt=" " width="618" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In Action, we can only select “Generate Video”.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Response Video — we can enter the duration of the video from 6 seconds (min) to 120 seconds (max). Aspect ratio has a lot of different options, but the standard option is 16:9 (like on YouTube). We can also choose video resolution and frames per second.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can go to the bucket where the video will be saved.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Seed is a number that controls the randomness of video generation. Using the same Seed with identical settings and prompts will produce a similar or identical video.&lt;/p&gt;&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%2F7nzthp6es00r70e9wnan.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%2F7nzthp6es00r70e9wnan.png" alt=" " width="720" height="284"&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%2Fkqjq06mup7bnwwjmazui.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%2Fkqjq06mup7bnwwjmazui.png" alt=" " width="720" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I have to say that I am very surprised by the Amazon Nova models. This was my first interaction with Amazon Nova, and the results are amazing. I have been using ChatGPT Plus so far, and I am very happy with it, but the price of ChatGPT Plus is high (in my opinion). The good thing about Amazon Nova is that you pay for what you use, and it can be cheaper per month than ChatGPT Plus.&lt;/p&gt;

&lt;p&gt;Amazon Nova Lite is the best service for me, because in my daily work, I use text most of the day. Canvas and Reel are also great, especially Canvas. The images are fantastic, and what I like the most is that I have a lot of options around the image.&lt;/p&gt;

&lt;p&gt;The final score is 9.5/10.&lt;/p&gt;

&lt;p&gt;If you like this story, clap and follow me.&lt;/p&gt;

&lt;p&gt;Check out my website, you will gain basic information about me: ahmedsrebrenica.com.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>ai</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Defense in Depth approach using AWS</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Sun, 06 Oct 2024 12:16:41 +0000</pubDate>
      <link>https://dev.to/aws-builders/defense-in-depth-approach-using-aws-3d99</link>
      <guid>https://dev.to/aws-builders/defense-in-depth-approach-using-aws-3d99</guid>
      <description>&lt;p&gt;Defense in depth is a layered approach to vulnerability management that reduces risk.&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%2Fm3yxo0607bpd0lk634xw.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%2Fm3yxo0607bpd0lk634xw.png" alt="1" width="720" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;AWS offers a variety of security services that can be utilized in different ways and for different types of defense. When it comes to security, we have multiple approaches to effectively defend our infrastructure. We understand that security is the most crucial aspect of our infrastructure. In this demo, I will implement the Defense in Depth approach by utilizing different AWS services. I will set up an infrastructure with a basic application running on an EC2 instance. To implement the Defense in Depth approach, I will make a custom VPC to use custom subnets and ACL, and I will also use EC2, Application Load Balancer, Web Application Firewall, Route 53, and Amazon Certificate Manager.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cf. Liebmann (1996): “The concept of defense in depth is not only a guide for the review of a particular technical solution as, for example, a set of singular barriers, but a method of reasoning and a general frame- work to examine more fully the entire facility, both for its design and for its analysis”&lt;/p&gt;
&lt;/blockquote&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%2Fboeipxbcc8qtcnwearha.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%2Fboeipxbcc8qtcnwearha.png" alt="2" width="720" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create AWS Account. I already have an AWS Account and I won’t be creating a new one.&lt;/li&gt;
&lt;li&gt;Install Terraform to your Local Machine.&lt;/li&gt;
&lt;li&gt;This is a &lt;strong&gt;WARNING ALERT&lt;/strong&gt;. This demo can make small charges on your account. You need to have some money in your account.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Create custom VPC
&lt;/h3&gt;

&lt;p&gt;According to AWS Docs, VPC is a logically isolated virtual network that you’ve defined. This virtual network closely resembles a traditional network that you’d operate in your own data center, with the benefits of using the scalable infrastructure of AWS.&lt;/p&gt;

&lt;p&gt;If you subscribed to my Medium profile, you may have seen my story “How to build an AWS VPC using the Console or Terraform”. I will be creating another one using Terraform. If you’re not familiar with Terraform, I also covered how to create a VPC in the AWS Console. I should mention that in the previous story, I used “eu-central-1” and now I will be changing it to “us-east-1”.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  enable_dns_support = true
  enable_dns_hostnames = true
  tags = {
    Name = "ahmed-srebrenica-vpc"
  }
}

resource "aws_subnet" "public_a" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
  map_public_ip_on_launch = true
  availability_zone = "us-east-1a" 
  tags = {
    Name = "ahmed-srebrenica-public-subnet-a"
  }
}

resource "aws_subnet" "public_b" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.3.0/24"
  map_public_ip_on_launch = true
  availability_zone = "us-east-1b"
  tags = {
    Name = "ahmed-srebrenica-public-subnet-b"
  }
}

resource "aws_subnet" "private_a" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.2.0/24"
  availability_zone = "us-east-1a"
  tags = {
    Name = "ahmed-srebrenica-private-subnet-a"
  }
}

resource "aws_subnet" "private_b" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.4.0/24"
  availability_zone = "us-east-1b" 
  tags = {
    Name = "ahmed-srebrenica-private-subnet-b"
  }
}

resource "aws_internet_gateway" "igw" {
  vpc_id = aws_vpc.main.id
  tags = {
    Name = "ahmed-srebrenica-igw"
  }
}

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id
  tags = {
    Name = "ahmed-srebrenica-public-rt"
  }
}

resource "aws_route_table_association" "public_association_a" {
  subnet_id      = aws_subnet.public_a.id
  route_table_id = aws_route_table.public.id
}

resource "aws_route_table_association" "public_association_b" {
  subnet_id      = aws_subnet.public_b.id
  route_table_id = aws_route_table.public.id
}

resource "aws_route" "public_route" {
  route_table_id         = aws_route_table.public.id
  destination_cidr_block = "0.0.0.0/0"
  gateway_id             = aws_internet_gateway.igw.id
}

resource "aws_nat_gateway" "nat" {
  allocation_id = ""  
  subnet_id     = aws_subnet.public_a.id
  connectivity_type = "private"  
  tags = {
    Name = "ahmed-srebrenica-nat-gateway"
  }
}

resource "aws_route_table" "private" {
  vpc_id = aws_vpc.main.id
  tags = {
    Name = "ahmed-srebrenica-private-rt"
  }
}

resource "aws_route_table_association" "private_association_a" {
  subnet_id      = aws_subnet.private_a.id
  route_table_id = aws_route_table.private.id
}

resource "aws_route_table_association" "private_association_b" {
  subnet_id      = aws_subnet.private_b.id
  route_table_id = aws_route_table.private.id
}

resource "aws_route" "private_route" {
  route_table_id         = aws_route_table.private.id
  destination_cidr_block = "0.0.0.0/0"
  nat_gateway_id         = aws_nat_gateway.nat.id
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the picture below, you can see that I have successfully created my VPC, and I named it “ahmed-srebrenica-vpc”. I have 4 subnets (2 public and 2 private subnets), Public and Private route tables, an Internet Gateway, and a NAT Gateway. For this demo, we don’t need Private subnets, but if you want to add a database you must have private subnets.&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%2Fyia9bsn0jr4m4bg1zxfn.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%2Fyia9bsn0jr4m4bg1zxfn.png" alt="3" width="720" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let's summarize: Every time you start a new project, create a custom VPC. NEVER use the Default VPC. We have created a custom VPC so far with two public and private subnets. Our custom VPC has Network Access Control list, we will change some rules for it later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Create two EC2 Instances and a Security Group for it
&lt;/h3&gt;

&lt;p&gt;EC2 Instance is like a Virtual Machine but in the Cloud. Security Group is stateful and acts as a virtual firewall for your EC2 instances to control incoming and outgoing traffic.&lt;/p&gt;

&lt;p&gt;Our next move will be to create a Security group. To do that, go to the EC2 Dashboard, and from the left-hand side choose “Security Groups” and then click the “Create Security Group “ button.&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%2F6umocfuxmv5619mwauab.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%2F6umocfuxmv5619mwauab.png" alt="4" width="720" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have to name your security group and don’t forget to select the custom VPC that you created in the first step. Open ports 80, and 443 from Inbound rules.&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%2F663njmv800s6bh3ubf5c.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%2F663njmv800s6bh3ubf5c.png" alt="5" width="720" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the “Create Security Group” button.&lt;/p&gt;

&lt;p&gt;Our next step is to create an EC2 instance and launch Nginx. Go to the EC2 dashboard and from the left-hand side choose “Instances”, then click the “Launch Instances” button.&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%2F9wwt5gjrwnspjs12i0fa.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%2F9wwt5gjrwnspjs12i0fa.png" alt="6" width="720" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our first step is to give the name to the instance and select Amazon Linux 2023 AMI.&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%2Ft6tv14xtamvi3c9ckri0.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%2Ft6tv14xtamvi3c9ckri0.png" alt="7" width="720" height="736"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The instance type should be t2.micro, and the Key pair is optional.&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%2Fhvr9b7ob69bax6cvpvkz.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%2Fhvr9b7ob69bax6cvpvkz.png" alt="8" width="720" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the most important step. Under the “Network Settings”, select your custom VPC, and public subnet, enable Auto-assign public IP, and select the Security Group you previously created.&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%2Fl7n1xka3gbk062vemic0.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%2Fl7n1xka3gbk062vemic0.png" alt="9" width="720" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go with 8 GiB of storage, and click “Advanced details”&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%2F11ahp7ze5qha84dlzdhu.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%2F11ahp7ze5qha84dlzdhu.png" alt="10" width="720" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to the bottom of the page and in “User data” paste this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
echo "Hello Friend from $(hostname -f)" &amp;gt; /usr/share/nginx/html/index.html

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

&lt;/div&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%2Fryra1heyjndth6zzg88f.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%2Fryra1heyjndth6zzg88f.png" alt="11" width="720" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the “Launch Instance” button.&lt;/p&gt;

&lt;p&gt;Launch another instance with the same configuration, and change only the subnet. This time select subnet-b.&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%2Fnsy69uoe2m5t7elond4k.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%2Fnsy69uoe2m5t7elond4k.png" alt="12" width="720" height="641"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wait 2–3 minutes and you will see that the EC2 instances are successfully created.&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%2Ffecqpw3zwvtb9k804foh.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%2Ffecqpw3zwvtb9k804foh.png" alt="13" width="720" height="172"&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%2Fl99jehvv02h2gw7mz5v6.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%2Fl99jehvv02h2gw7mz5v6.png" alt="14" width="687" height="257"&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%2Fhiung10q47tcfw79e7xs.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%2Fhiung10q47tcfw79e7xs.png" alt="15" width="685" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: We have created two EC2 instances. To achieve high availability, we launched one EC2 instance in public-subnet-a using us-east-1a, and another EC2 instance in public-subnet-b using us-east-1b. We have created Security Groups for the instances, allowing ports 80 and 443. The Security Group will act as a firewall for our EC2 instances.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Create an Application Load Balancer
&lt;/h3&gt;

&lt;p&gt;According to AWS Docs, Elastic Load Balancing automatically distributes your incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones. It monitors the health of its registered targets, and routes traffic only to the healthy targets. Elastic Load Balancing scales your load balancer as your incoming traffic changes over time. It can automatically scale to the vast majority of workloads. Application load balancer serves as the single point of contact for clients. The Application load balancer distributes incoming application traffic across multiple targets, such as EC2 instances, in multiple Availability Zones. This increases the availability of your application.&lt;/p&gt;

&lt;p&gt;Our next step is to create a Target Group for Application Load Balancer. Go to EC2 Dashboard and from the left-hand side, choose Target Groups, and then the “Create Target Group” button.&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%2Fykwbffpvuaso40oai9bn.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%2Fykwbffpvuaso40oai9bn.png" alt="16" width="720" height="335"&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%2Farfnv7o3frdinmc81v70.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%2Farfnv7o3frdinmc81v70.png" alt="17" width="720" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under Basic Configuration select Instances and name your Target Group.&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%2Fjl5gmor6u4f915o0jkdy.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%2Fjl5gmor6u4f915o0jkdy.png" alt="18" width="720" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The protocol should be HTTP and don’t forget to select your custom VPC.&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%2Fy8m10q7usorws6ca02cb.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%2Fy8m10q7usorws6ca02cb.png" alt="19" width="720" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leave everything as default and click the “Next” button.&lt;/p&gt;

&lt;p&gt;Now we should register targets. Select both instances and click “Include as pending below” button. After that, click the “Create Target Group” button.&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%2F55spznb6skh4b6wm37ec.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%2F55spznb6skh4b6wm37ec.png" alt="20" width="720" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great, we successfully created the target group.&lt;br&gt;
We have to create an Application Load Balancer now. From the left-hand side, choose Load Balancers and then the “Create Load Balancer” button.&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%2Fpu3u54yjbcn78fup77s2.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%2Fpu3u54yjbcn78fup77s2.png" alt="21" width="720" height="528"&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%2Febpqfz2oa1310qe4fc5y.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%2Febpqfz2oa1310qe4fc5y.png" alt="22" width="720" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Name your ALB, the Scheme should be Internet-facing, the Address type should be IPv4.&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%2F9522apu0hiwlar1ayygi.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%2F9522apu0hiwlar1ayygi.png" alt="23" width="720" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select your custom VPC and both Public subnets.&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%2Fcff4xornyj6su848fwoj.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%2Fcff4xornyj6su848fwoj.png" alt="24" width="720" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great, our next step is to create another Security Group, but this time, the group should be associated with the Application Load Balancer. Click “create a new security group”.&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%2Fyfhwoe9ckb6mm9xp2r9u.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%2Fyfhwoe9ckb6mm9xp2r9u.png" alt="25" width="720" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a Security Group with 443 opened port.&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%2Fqbd16a7p6csjyi2cyrh0.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%2Fqbd16a7p6csjyi2cyrh0.png" alt="26" width="720" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go back to Load Balancer and select the new Security Group.&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%2Fo4w7ci26kumk29ozsgnj.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%2Fo4w7ci26kumk29ozsgnj.png" alt="27" width="720" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under the Listeners and Routing, select these Listeners and Configuration.&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%2Fb1h0m4ap6i2dd5afxev3.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%2Fb1h0m4ap6i2dd5afxev3.png" alt="28" width="720" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We must enable WAF protection.&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%2Fltlw5o61sga0jsr37ari.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%2Fltlw5o61sga0jsr37ari.png" alt="29" width="720" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leave everything as default and click the “Create load balancer” button.&lt;/p&gt;

&lt;p&gt;Wait a few minutes for the message “Successfully created load balancer”. Copy the DNS name and paste it into your browser to see if everything works correctly.&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%2F517jh147diisajgwclf6.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%2F517jh147diisajgwclf6.png" alt="30" width="720" height="368"&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%2F9091trwfcp1z5s7r7j71.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%2F9091trwfcp1z5s7r7j71.png" alt="31" width="720" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Application Load Balancer is successfully created and working correctly.&lt;/p&gt;

&lt;p&gt;Btw. this is the WAF traffic overview after a few hours.&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%2F5ddyjczimlcaadc5iquz.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%2F5ddyjczimlcaadc5iquz.png" alt="32" width="720" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: In these steps, we successfully created an Application Load Balancer in front of two EC2 instances. The Application Load Balancer acts as a server and distributes traffic to the EC2 instances. There are numerous security benefits associated with the Application Load Balancer. It provides SSL/TLS and protects us from DDoS attacks. We also add another layer of security with security group attached to Application Load Balancer.&lt;br&gt;
We attached Web Application Firewall, it helps to protect your web applications from common application-layer exploits that can affect availability or consume excessive resources. We will use WAF default setup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Create Route 53 records
&lt;/h3&gt;

&lt;p&gt;What is Route 53? According to AWS Docs, Route 53 is a highly available and scalable Domain Name System (DNS) web service. You can use Route 53 to perform three main functions in any combination: domain registration, DNS routing, and health checking.&lt;/p&gt;

&lt;p&gt;Our next step would be to create new records in Hosted Zones. Go to Route 53 in your Console and from the left-hand side choose “Hosted Zones”. I already have Domain ahmedsrebrenica.com.&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%2Fwkv241y12c4zlvlm6ofz.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%2Fwkv241y12c4zlvlm6ofz.png" alt="33" width="720" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to your Domain name and click the “Create record” button.&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%2Fkn3j22z3cv60xx129lnw.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%2Fkn3j22z3cv60xx129lnw.png" alt="34" width="720" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Name your record, select A record type and TTL should be 60 seconds. Enable Alias and route traffic to Application Load Balancer. Select the us-east-1 region and select the DNS of the Load Balancer. Click the “Create records” button.&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%2F983c58pjnti3jzovdray.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%2F983c58pjnti3jzovdray.png" alt="35" width="720" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We successfully created a new record. We have to add a new record, this time with www.&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%2Fhae7weu93o2yzbpz9fbk.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%2Fhae7weu93o2yzbpz9fbk.png" alt="36" width="720" height="488"&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%2Fjovyzil1phb72e61oil9.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%2Fjovyzil1phb72e61oil9.png" alt="37" width="720" height="348"&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%2Fa3uiis2emht3o9yb4ooa.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%2Fa3uiis2emht3o9yb4ooa.png" alt="38" width="720" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: We have successfully created domain names for our demo. However, these domain names do not have SSL certificates.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Create SSL/TLS certificates using AWS Certificate Manager
&lt;/h3&gt;

&lt;p&gt;“AWS Certificate Manager (ACM) handles the complexity of creating, storing, and renewing public and private SSL/TLS X.509 certificates and keys that protect your AWS websites and applications.”&lt;/p&gt;

&lt;p&gt;In your Console, search for Certificate Manager service. You should see this. Click the “Request a certificate” button.&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%2Fehrw4ykq1zpb6wge18tx.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%2Fehrw4ykq1zpb6wge18tx.png" alt="39" width="720" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The names must be the same as you created in the Route 53 service. Leave everything else to default and click the “Request” button.&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%2Fa6rvhthu8ro19ffxyo9e.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%2Fa6rvhthu8ro19ffxyo9e.png" alt="40" width="720" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We successfully created certificates. Our next step would be to create another Route 53 record, but this time with CNAME Names and CNAME Values from our certificates.&lt;/p&gt;

&lt;p&gt;Go to Route 53 and again click the “Create record” button. Paste the CNAME names from Certificate Manager to Record name, select CNAME record type, and paste CNAME Values from Certificate Manager to Value box. Click the “Create Record” button.&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%2Firbmx1w5w73x6om4ksew.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%2Firbmx1w5w73x6om4ksew.png" alt="41" width="720" height="381"&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%2Ffk9n70m3rxa5ggijxj1h.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%2Ffk9n70m3rxa5ggijxj1h.png" alt="42" width="720" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s it, we are done with Route 53.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: To secure our domain names, we added certificates using the ACM service.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Add a new listener (HTTPS:443) and edit existing (HTTP:80)
&lt;/h3&gt;

&lt;p&gt;Our final step is to add 443 listener to our existing Application Load Balancer. Go to the Load Balancer section and select the existing Load Balancer. Click the “Add listener” button.&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%2F5uails0zyz2yl0rw7m4m.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%2F5uails0zyz2yl0rw7m4m.png" alt="43" width="720" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just follow the configuration from the screenshot. The protocol must be HTTPS, Port 443, and Forward to the target group you created.&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%2Fqlqwqnbuzdjpso97idzw.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%2Fqlqwqnbuzdjpso97idzw.png" alt="44" width="720" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select Certificate from ACM and click the “Add” button.&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%2F2qoulxe3dwu44q4vqjoy.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%2F2qoulxe3dwu44q4vqjoy.png" alt="45" width="720" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check your domain in the browser and you will see the website.&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%2Fmj8npri405d1x1jp3u6p.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%2Fmj8npri405d1x1jp3u6p.png" alt="46" width="708" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The last step is to edit the existing HTTP:80 Listener. Select HTTP:80 and click Edit Listener.&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%2Fgdamc52i84ch8xiv6yvt.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%2Fgdamc52i84ch8xiv6yvt.png" alt="47" width="720" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Switch from Forward to target groups to Redirect to URL and the port must be 443. Click the “Save changes” button.&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%2Fkb4x12bbs28bnd0od6oy.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%2Fkb4x12bbs28bnd0od6oy.png" alt="48" width="720" height="771"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, we set the routing action redirect to HTTPS on port 443.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: We have added an HTTPS:443 listener to monitor HTTPS traffic on port 443. Additionally, we have updated the HTTPS listener to redirect from HTTP port 80 to HTTPS port 443. We have also added a certificate from ACM to the HTTPS:443 listener, allowing us to properly use our domain name with SSL.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Change Network ACLs
&lt;/h3&gt;

&lt;p&gt;A network access control list (ACL) allows or denies specific inbound or outbound traffic at the subnet level. To provide better security, we have to change the Access Control List Rules. Go to your custom VPC and from the left-hand side choose Network ACLs. Click the “Edit inbound rules” button.&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%2Fldw5iou0y8hgf7zgorta.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%2Fldw5iou0y8hgf7zgorta.png" alt="49" width="720" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change Type from All Trafic to HTTPS (443), because we want to allow only HTTPS traffic, nothing else. Click the “Save changes” button.&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%2F2edv40v7hpb6qbnpzp4e.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%2F2edv40v7hpb6qbnpzp4e.png" alt="50" width="720" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ACLs are stateless and compared to security groups, we have to edit outbound rules and open ephemeral ports (port range 1024–65535).&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%2Ft5hq72pobe2ugx79zqlr.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%2Ft5hq72pobe2ugx79zqlr.png" alt="51" width="720" height="167"&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%2Fcwj5qirlbgempy21nwxx.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%2Fcwj5qirlbgempy21nwxx.png" alt="52" width="720" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s see if everything works correctly. Check your website.&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%2Fnjz1333vm12sqkd0543f.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%2Fnjz1333vm12sqkd0543f.png" alt="53" width="682" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: Network Access Control List (NACL) is an additional layer of security that protects our subnets. We have only allowed 443 traffic, and because NACL is stateless, we have opened ephemeral ports in our Outbound section.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Optionally you can set up CloudFront
&lt;/h3&gt;

&lt;p&gt;You can enhance security by using CloudFront alongside the Application Load Balancer. CloudFront automatically defends against DDoS attacks at both the network and application levels. This is achieved through a variety of methods, including traffic filtering, traffic throttling, and traffic redirection. Additionally, CloudFront leverages Amazon’s global network infrastructure to provide an extra layer of protection at the network edge. It also delivers content through a global network of data centers known as edge locations. When a user requests content served with CloudFront, the request is directed to the edge location with the lowest latency, ensuring optimal performance. However, it’s important to note that using CloudFront is optional for this demo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;In this demonstration, we utilized various AWS services and implemented multiple layers of security to follow the Defense in Depth Approach. This approach is commonly used to protect Cloud infrastructure. If attackers attempt to compromise our infrastructure, they will encounter numerous security measures. We have employed security groups for our EC2 instances and an additional security group for the Application Load Balancer. Our Application Load Balancer is equipped with DDoS protection and a Web Application Firewall to safeguard against web-based attacks. Furthermore, we have secured our domain with an SSL certificate and have restricted traffic to only HTTPS in our NACL.&lt;/p&gt;

&lt;p&gt;If you like this story, clap and follow me.&lt;/p&gt;

&lt;p&gt;Check out my website, you will gain basic information about me: ahmedsrebrenica.com.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>security</category>
      <category>defense</category>
      <category>ec2</category>
    </item>
    <item>
      <title>The main differences between EC2 and ECS</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Wed, 10 Jul 2024 11:52:07 +0000</pubDate>
      <link>https://dev.to/aws-builders/the-main-differences-between-ec2-and-ecs-11oc</link>
      <guid>https://dev.to/aws-builders/the-main-differences-between-ec2-and-ecs-11oc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Elastic Compute Cloud vs Elastic Container Service&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%2Fmk1wd686zeddlvnb7ykv.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%2Fmk1wd686zeddlvnb7ykv.png" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, we will explore the main differences between** EC2 (Elastic Compute Cloud) and ECS (Elastic Container Service)**.&lt;/p&gt;

&lt;p&gt;To make a difference between EC2 and ECS, we must understand what &lt;strong&gt;IaaS&lt;/strong&gt; and &lt;strong&gt;CaaS&lt;/strong&gt; are…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Infrastructure as a Service (IaaS) is a business model that delivers IT infrastructure like compute, storage, and network resources on a pay-as-you-go basis over the internet.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most well-known IaaS is AWS EC2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Containers as a Service (CaaS) is a cloud computing service that allows developers to manage and deploy containerized applications, giving businesses of all sizes access to portable, easily scalable cloud solutions.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most well-known CaaS is AWS ECS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business case
&lt;/h2&gt;

&lt;p&gt;Let’s assume your company has an on-premises multi-container application and wants to deploy it on AWS. As a Solution Architect, what would be your recommended solution? Would you choose EC2 or ECS?&lt;/p&gt;

&lt;p&gt;EC2 offers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full control&lt;/strong&gt; — I mentioned earlier that EC2 is one of the most well-known IaaS, which means you will have full control. You will be able to control the operating system, storage, memory, CPU, network, etc. This includes tasks such as patching your instances and taking care of your containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt; — You have the flexibility to choose the OS you prefer. For example, you want to choose Ubuntu or Windows instead of Amazon Linux 2023 to manage your containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt; — EC2 is the perfect option for complex infrastructure configurations and high customization&lt;/p&gt;

&lt;p&gt;ECS offers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt; — ECS provides better scalability instead of EC2. It provides more automated scaling options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed Service&lt;/strong&gt; — You don’t need to worry about the underlying hardware and infrastructure. Just upload the container(s) and that’s it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practicality&lt;/strong&gt; — ECS Fargate is more practical and it’s a tool only for containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time to start&lt;/strong&gt; — It only takes a few seconds to start containers compared to EC2, which requires minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration&lt;/strong&gt; — It provides great integration with CI/CD tools, CloudWatch, and Load Balancer.&lt;/p&gt;

&lt;p&gt;There is much more that EC2 and ECS offer, however, in this case, we have only touched on the basics&lt;/p&gt;

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

&lt;p&gt;If you want to deploy a multi-container application, ECS is generally the better choice because it handles container orchestration better and you don't need to manage the infrastructure. If you want your application to scale independently and take advantage of built-in orchestration benefits, use ECS. In case you want to control the infrastructure yourself and have an identical environment as in development or testing, then use EC2.&lt;/p&gt;

&lt;p&gt;If you like this story, please like and follow me.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.ahmedsrebrenica.com" rel="noopener noreferrer"&gt;www.ahmedsrebrenica.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ec2</category>
      <category>ecs</category>
      <category>docker</category>
      <category>containers</category>
    </item>
    <item>
      <title>Deploy Docker Image to AWS EC2 in 5 minutes</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Wed, 12 Jun 2024 18:35:05 +0000</pubDate>
      <link>https://dev.to/aws-builders/deploy-docker-image-to-aws-ec2-in-5-minutes-2g37</link>
      <guid>https://dev.to/aws-builders/deploy-docker-image-to-aws-ec2-in-5-minutes-2g37</guid>
      <description>&lt;p&gt;From Development to Staging in 5 Minutes…&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As we know, there are many ways to run your Docker image on the Cloud. I have previously written about this and introduced two methods: &lt;strong&gt;“How to Deploy a Docker Image to Amazon ECR and Run It on Amazon EC2”&lt;/strong&gt; &amp;amp; &lt;strong&gt;“How to Deploy a Docker Image on AWS and Run it on Fargate”.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first method involves managing the infrastructure, security patches, network security, etc., while the second method allows AWS to handle the infrastructure, simplifying many processes for us. &lt;strong&gt;However,&lt;/strong&gt; &lt;strong&gt;I will write about this in future articles.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will show you the easiest way to move your Docker image from the &lt;strong&gt;Development&lt;/strong&gt; to the &lt;strong&gt;Staging&lt;/strong&gt; environment. This process takes approximately &lt;strong&gt;5 minutes&lt;/strong&gt;. We will use &lt;strong&gt;Docker&lt;/strong&gt; on our local machine, &lt;strong&gt;DockerHub&lt;/strong&gt; and &lt;strong&gt;AWS&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%2Fevk3gukgi7bea2ucok7m.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%2Fevk3gukgi7bea2ucok7m.png" alt="title-image" width="720" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create &lt;a href="https://aws.amazon.com/resources/create-account/" rel="noopener noreferrer"&gt;AWS Account&lt;/a&gt;. I already have an AWS Account and I won’t be creating a new one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a &lt;a href="https://hub.docker.com/signup" rel="noopener noreferrer"&gt;DockerHub&lt;/a&gt; account I already have and I won’t be creating a new one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a &lt;a href="https://docs.github.com/en/get-started/quickstart/creating-an-account-on-github" rel="noopener noreferrer"&gt;GitHub Account&lt;/a&gt; I already have GitHub and I won’t be creating a new one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; or another code editor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download and install &lt;a href="https://www.docker.com/products/docker-desktop/" rel="noopener noreferrer"&gt;Docker.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Clone the Application to your Local machine
&lt;/h2&gt;

&lt;p&gt;To make it easier, we will use my &lt;a href="https://github.com/srebreni3/simple-nodejs-app" rel="noopener noreferrer"&gt;&lt;strong&gt;simple-node-app&lt;/strong&gt;&lt;/a&gt;, which you need to clone to your local machine.&lt;/p&gt;

&lt;p&gt;Go to your terminal and follow these steps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
git clone https://github.com/srebreni3/simple-nodejs-app

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

&lt;/div&gt;



&lt;p&gt;Then navigate to the project directory.&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%2Frf97pecwekxygv2qf3vw.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%2Frf97pecwekxygv2qf3vw.png" alt="1" width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to your code editor, and you will see this:&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%2F2n0babv1ge2auelvsdvs.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%2F2n0babv1ge2auelvsdvs.png" alt="2" width="644" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have &lt;strong&gt;app.js, package.json,&lt;/strong&gt; and &lt;strong&gt;Dockerfile&lt;/strong&gt;, it’s all we need.&lt;/p&gt;

&lt;p&gt;I don’t want to explain the code of the application again, go to this &lt;a href="https://aws.plainenglish.io/how-to-deploy-docker-image-to-ecr-and-run-it-on-ec2-49523d39cc57" rel="noopener noreferrer"&gt;&lt;strong&gt;article&lt;/strong&gt;&lt;/a&gt; and you will find everything about it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: &lt;strong&gt;If you follow these steps, you will have an application on your Local machine, and that Local machine will be your Development environment. Feel free to change the code if you want.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Push the Docker image to Docker Hub
&lt;/h2&gt;

&lt;p&gt;We need to create a Docker image for our application. Navigate to the directory where the application is located. &lt;strong&gt;If you are using an M1 or newer chip, use the following command to create the Docker image:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
docker buildx build &lt;span class="nt"&gt;--platform&lt;/span&gt; linux/amd64 &lt;span class="nt"&gt;-t&lt;/span&gt; node-app &lt;span class="nb"&gt;.&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you are not using M1 or newer&lt;/strong&gt;, use this command to create a Docker image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
docker build &lt;span class="nt"&gt;-t&lt;/span&gt; node-app.

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

&lt;/div&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%2Fz83p9kmq4jbuo89v9a7c.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%2Fz83p9kmq4jbuo89v9a7c.png" alt="3" width="720" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you have successfully created a Docker image, our next step is to push that image on Docker Hub.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go to Docker Hub and create a new repository.&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%2Fo1qb47wzbv5rnu260woz.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%2Fo1qb47wzbv5rnu260woz.png" alt="4" width="720" height="472"&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%2Fv5gkqr7s8p0kyld9trdl.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%2Fv5gkqr7s8p0kyld9trdl.png" alt="5" width="720" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s summarize: With these steps, you can push your Docker image to Docker Hub. It’s preferable to push it to the Private repository rather than the Public repository.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create an EC2 Instance and install Docker on it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go to the EC2 dashboard in AWS Console and click the Launch instance button.&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%2Fr8h827o1bdxa4h3egcxc.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%2Fr8h827o1bdxa4h3egcxc.png" alt="6" width="720" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Name your instance, for example: node-docker-server. The image should be Amazon Linux 2023. If you want a free tier-eligible instance, choose t2.micro.&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%2Fkxyhr73zod4v4t8c07x0.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%2Fkxyhr73zod4v4t8c07x0.png" alt="7" width="720" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. We would like to login to the instance, and we will create a key pair. Security group should have open inbound ports 22 and 3000.&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%2Femko8h6vzj94ldt86dll.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%2Femko8h6vzj94ldt86dll.png" alt="8" width="720" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. For storage, I will leave default settings, I don’t need more than 8 GiB of storage. Don’t forget: Free tier eligible customers can get up to 30 GB of EBS General Purpose (SSD) or Magnetic storage.&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%2Fr6wxemcoe5aruipjrjo7.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%2Fr6wxemcoe5aruipjrjo7.png" alt="8" width="720" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Under Configure Storage, click the Advanced details.&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%2Fhbsym8mo5ddarchokd6t.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%2Fhbsym8mo5ddarchokd6t.png" alt="9" width="720" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to the bottom of the page, and you will see the User data window. Paste this code into User data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;docker &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start docker
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;docker

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

&lt;/div&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%2F2ckxtn84ygf9uudqtv8p.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%2F2ckxtn84ygf9uudqtv8p.png" alt="10" width="707" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the right side, click the &lt;strong&gt;Launch instance&lt;/strong&gt; button.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: &lt;strong&gt;With these steps, you can create an EC2 instance on AWS to set up your staging environment using User data to install Docker on the instance.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Deploy an image from Docker Hub to AWS EC2
&lt;/h2&gt;

&lt;p&gt;The first step is to connect to the EC2 instance. I will use AWS Console this time, but you can also connect through your Local machine from the terminal. Check out my older articles and you will find how to connect through a terminal from a Local machine.&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%2Fbro8ujnabw4gbt2ws2fp.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%2Fbro8ujnabw4gbt2ws2fp.png" alt="11" width="720" height="196"&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%2Fbvftka1bzfm25y9nmopy.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%2Fbvftka1bzfm25y9nmopy.png" alt="12" width="720" height="607"&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%2Faupwg9e3elmfcw9b010p.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%2Faupwg9e3elmfcw9b010p.png" alt="13" width="720" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Switch to sudo mode with this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;su

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

&lt;/div&gt;



&lt;p&gt;Check the Docker with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
docker &lt;span class="nt"&gt;--version&lt;/span&gt;

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

&lt;/div&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%2F02inu8g9adydnfeglrtm.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%2F02inu8g9adydnfeglrtm.png" alt="14" width="683" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything is set up, the next step is to deploy the image from Docker Hub. Use this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 &amp;lt;docker-hub-repo-name&amp;gt; 

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

&lt;/div&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%2Ftyl311ynee3ytv2hgwhc.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%2Ftyl311ynee3ytv2hgwhc.png" alt="15" width="720" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image has been successfully created. Check the Public IP of your Instance with a 3000 port.&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%2Flpfgka5jcw0o8f6f7lyi.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%2Flpfgka5jcw0o8f6f7lyi.png" alt="16" width="720" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We got our Docker application on the EC2 instance.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s summarize: &lt;strong&gt;Thanks to AWS, we can create a server and deploy whatever we want to that server in just a few seconds. This is an example of deploying from Docker Hub to staging environment (EC2 instance) in a few seconds.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you prefer to run your production on EC2 instead of ECS using Docker images, one of the easiest ways to transfer images from the Development environment to the Staging environment is by using this method. Although this method has its advantages and disadvantages, it is, in my opinion, the simplest way so far. I hope it proves useful to someone.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ec2</category>
      <category>docker</category>
      <category>containers</category>
    </item>
    <item>
      <title>From Good to Great: Using AWS Well-Architected Tool for Cloud Excellence</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Thu, 23 May 2024 18:23:48 +0000</pubDate>
      <link>https://dev.to/aws-builders/from-good-to-great-using-aws-well-architected-tool-for-cloud-excellence-1b68</link>
      <guid>https://dev.to/aws-builders/from-good-to-great-using-aws-well-architected-tool-for-cloud-excellence-1b68</guid>
      <description>&lt;p&gt;Operation excellence, Security, Reliability, Performance Efficiency, Cost Optimisation, Sustainability&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;A few years ago, AWS provided us with the AWS Well-Architected Framework on their website, which describes key concepts, design principles, and architectural best practices for designing and running workloads in the cloud. The page features six pillars: &lt;strong&gt;Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization, and Sustainability&lt;/strong&gt;. For each pillar, there is an option to read more about it, as well as a lab option. After some time, AWS enabled us to define workloads through the service AWS Well-Architected Tool. Today, I will write more about how excellent this service is and how it can help our workload function better than before.&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%2Ftamv9kll7lefmep3osh3.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%2Ftamv9kll7lefmep3osh3.png" alt="1" width="720" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Downloaded from: &lt;a href="https://afdclinics.com/the-six-pillars-of-health/" rel="noopener noreferrer"&gt;https://afdclinics.com/the-six-pillars-of-health/&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Create &lt;a href="https://aws.amazon.com/resources/create-account/" rel="noopener noreferrer"&gt;AWS Account&lt;/a&gt;. I already have an AWS Account, so I won’t be creating a new one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define a workload
&lt;/h2&gt;

&lt;p&gt;You need to do a few steps to define your workload:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Go to your account on AWS Console and type in the search bar &lt;strong&gt;AWS Well-Architected Tool.&lt;/strong&gt;
&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%2Faxm3cpgea033q8vf0yfz.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%2Faxm3cpgea033q8vf0yfz.png" alt="1" width="720" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2. Click the &lt;strong&gt;Define workload&lt;/strong&gt; orange button.&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%2Foplvsebxm27k0ay2civ2.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%2Foplvsebxm27k0ay2civ2.png" alt="2" width="720" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. You need to define a few parameters for your workload, such as N*&lt;em&gt;ame, Description, Review owner, Environment, and Region&lt;/em&gt;&lt;em&gt;. Every other parameter is &lt;/em&gt;&lt;em&gt;optional&lt;/em&gt;&lt;em&gt;. When you are finished, press the &lt;/em&gt;&lt;em&gt;Next&lt;/em&gt;* button&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%2Fngu3zh7alne0mbd924fk.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%2Fngu3zh7alne0mbd924fk.png" alt="3" width="720" 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%2Frhicffavltlm4q4b3401.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%2Frhicffavltlm4q4b3401.png" alt="4" width="720" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4. If you want, you can create a profile or search for it. I won’t do that.&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%2Fkym9vye3fj48rcfguybe.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%2Fkym9vye3fj48rcfguybe.png" alt="5" width="720" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5. By default the &lt;strong&gt;AWS Well-Architected Framework&lt;/strong&gt; is checked. Click the &lt;strong&gt;Define workload&lt;/strong&gt; button.&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%2Fgnqg2dskdwdqhqie7gqe.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%2Fgnqg2dskdwdqhqie7gqe.png" alt="6" width="720" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Workload overview part I
&lt;/h2&gt;

&lt;p&gt;Now that we have our workload, let’s see what options we have available. In the &lt;strong&gt;overview&lt;/strong&gt; &lt;strong&gt;section&lt;/strong&gt;, we have basic information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Last updated&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overall questions answered&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overall risks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workload notes&lt;/p&gt;&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%2Fc8c7ko39gd446acgonya.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%2Fc8c7ko39gd446acgonya.png" alt="7" width="720" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Milestones section&lt;/strong&gt; is very important. In it, we store upgrades, for example, we receive results after the first review, and then based on the results we change certain things related to our application and want to perform a new upgrade. The new upgrade will be displayed in the Milestones section, just like the old one, which will remain there.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Properties section&lt;/strong&gt; has properties of our workload that we set before.&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%2Fo6y2hqxxlltw0tnug5mc.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%2Fo6y2hqxxlltw0tnug5mc.png" alt="8" width="720" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;Shares section&lt;/strong&gt;, we can share this with the other Principals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start reviewing
&lt;/h2&gt;

&lt;p&gt;It’s time to answer the questions for each lens, just click the &lt;strong&gt;Start reviewing&lt;/strong&gt; button.&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%2Fh3caxa9ja572pdsjpy85.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%2Fh3caxa9ja572pdsjpy85.png" alt="9" width="720" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have &lt;strong&gt;six pillars&lt;/strong&gt; on the left side, and each pillar has several questions.&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%2Fbw7ta1ay63izq7gytbm5.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%2Fbw7ta1ay63izq7gytbm5.png" alt="10" width="488" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the middle, we have the main question and several sub-questions.&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%2F6e3d9l40offa3hrhrlcx.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%2F6e3d9l40offa3hrhrlcx.png" alt="11" width="720" height="713"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the right side, we have explanations for every sub-question.&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%2Feobdnifqe92zadod30sf.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%2Feobdnifqe92zadod30sf.png" alt="12" width="399" height="854"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our task now is to go through each pillar, each question, and each sub-question, and after we finish, it’s necessary to press the &lt;strong&gt;Save and exit&lt;/strong&gt; button and &lt;strong&gt;Save milestone&lt;/strong&gt; button.&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%2Fl7cnikyacj8yivwfkjuy.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%2Fl7cnikyacj8yivwfkjuy.png" alt="13" width="720" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Name your milestone and click the &lt;strong&gt;Save&lt;/strong&gt; button.&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%2Flvdjzymyd0haqi4jvhyu.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%2Flvdjzymyd0haqi4jvhyu.png" alt="14" width="720" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Workload overview part II
&lt;/h2&gt;

&lt;p&gt;What did you get after you answered the questions? &lt;strong&gt;I got 16 high-risk and 4 medium-risk&lt;/strong&gt; and I have to do everything to minimize the risk.&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%2Frqczqj3x6qe3nhj0h2uf.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%2Frqczqj3x6qe3nhj0h2uf.png" alt="15" width="720" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How can you do the same?&lt;/p&gt;

&lt;p&gt;Scroll down and you will see &lt;strong&gt;Lenses&lt;/strong&gt;. Click the High risks number (16).&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%2F0w9kbrnmdbix5kf3lqbr.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%2F0w9kbrnmdbix5kf3lqbr.png" alt="16" width="720" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will see under the &lt;strong&gt;improvement plan&lt;/strong&gt; what you need to improve.&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%2Fgtpyx63y5dirh9r31xbc.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%2Fgtpyx63y5dirh9r31xbc.png" alt="17" width="720" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, the question is &lt;strong&gt;How do you securely operate your workload?&lt;/strong&gt; Click the &lt;strong&gt;recommended improvement items&lt;/strong&gt; and you will see something like this:&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%2Fjg2jcjgmsxf5j6z8dv9j.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%2Fjg2jcjgmsxf5j6z8dv9j.png" alt="18" width="529" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my case, I will go to my app and I do as recommended.Don’t forget to click every recommendation, it will guide you to AWS documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Continue reviewing
&lt;/h2&gt;

&lt;p&gt;If you have fixed what was risky, you can go to &lt;strong&gt;Continue Reviewing&lt;/strong&gt; and check off what you have fixed. Go to your workload under the AWS Well-Architected tool and click the &lt;strong&gt;Continue reviewing&lt;/strong&gt; button.&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%2Fpjylssdzkebtrtrnrb30.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%2Fpjylssdzkebtrtrnrb30.png" alt="19" width="720" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you have checked off what you have fixed, you need to click the &lt;strong&gt;Save Milestone&lt;/strong&gt; button. I will name it &lt;strong&gt;basketball-scoreboard-1.1&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%2Fxgea7l50l2yceuoddbqs.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%2Fxgea7l50l2yceuoddbqs.png" alt="20" width="720" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under the &lt;strong&gt;Milestones section&lt;/strong&gt;, you will see your versions of the AWS Well-Architected tool.&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%2F8wa5jg2c98tg8atrlofh.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%2F8wa5jg2c98tg8atrlofh.png" alt="21" width="720" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The AWS Well-Architected Tool is essential if you want your workload to operate according to the best AWS practices. Speaking from my experience, the AWS Well-Architected Tool has helped me a lot, especially in terms of security, so I highly recommend using it. As for pricing, there is no additional charge for the AWS Well-Architected Tool. You pay only for your underlying AWS resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.ahmedsrebrenica.com/" rel="noopener noreferrer"&gt;www.ahmedsrebrenica.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>wellarchitected</category>
      <category>cloud</category>
      <category>workload</category>
    </item>
    <item>
      <title>How can you become an AWS Community Builder?</title>
      <dc:creator>Ahmed Srebrenica</dc:creator>
      <pubDate>Wed, 01 May 2024 10:16:40 +0000</pubDate>
      <link>https://dev.to/aws-builders/how-can-you-become-an-aws-community-builder-29f4</link>
      <guid>https://dev.to/aws-builders/how-can-you-become-an-aws-community-builder-29f4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In January of this year, AWS issued a call to fill out applications for the AWS Community Builders program — and I applied. I honestly hoped to be accepted because I know how much effort I put in to meet certain criteria. On March 4th, my happiness knew no bounds when I received an email from AWS stating that I was accepted into the AWS Community Builders program. To experience the same joy as me and to gain all the benefits that this program offers, I will give you some tips to increase your chances of being accepted into this prestigious program.&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%2Fbet3b1veiwbmsrqfetjs.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%2Fbet3b1veiwbmsrqfetjs.png" alt="Picture 1. AWS Community Builders logo — downloaded from: https://aws.amazon.com/blogs/aws/announcing-the-new-aws-community-builders-program/" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the AWS Community Builders program?
&lt;/h2&gt;

&lt;p&gt;According to AWS, The AWS Community Builders program offers technical resources, education, and networking opportunities to AWS technical enthusiasts and emerging thought leaders who are passionate about sharing knowledge and connecting with the technical community.&lt;/p&gt;

&lt;p&gt;Interested AWS builders should apply to the program to build relationships with AWS product teams, AWS Heroes, and the AWS community.&lt;/p&gt;

&lt;p&gt;Throughout the program, AWS subject matter experts will provide informative webinars, share insights — including information about the latest services — as well as best practices for creating technical content, increasing reach, and sharing AWS knowledge across online and in-person communities. The program will accept a limited number of members per year. All AWS builders are welcome and encouraged to apply.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to increase your chances of being selected?
&lt;/h2&gt;

&lt;p&gt;I will share with you a few tips on how to be selected for this program. I will share exactly what I did:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Engage in the community&lt;/strong&gt; — I think this is the key thing you need to do. Engaging in the community can involve several things. My way of engaging in the community was mostly through writing articles for Medium and sharing those articles on various platforms. It’s very satisfying when someone reaches out and tells you that your article helped them with a certain problem. My articles usually include some demos, but yours don’t have to be the same as mine; they can be of any nature. Also, engaging in the community can involve attending various lectures, webinars, hands-on workshops, blogs, social media, and forums, and being active in everything I mentioned.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute to specific projects&lt;/strong&gt; — I remember in the application I wrote for this program, there was a requirement for contribution. It wouldn’t hurt to contribute to specific projects, even if it’s just writing documentation or something simpler.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be active, be a leader, be an ambassador&lt;/strong&gt; — AWS wants you to be active and help the community, what does that mean? Join some of the Slack or Discord channels where there are topics related to AWS and help others. For example, someone may have a problem creating an EC2 instance; if that’s not a problem for you, reach out to that person, help them, and explain how to create an EC2 instance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Connect with existing members&lt;/strong&gt; — Use social networks to connect with existing members who have been accepted into the AWS Community Builders program. But not only with them, but connect with prominent AWS professionals and people who contribute a lot to the community. Through social networks, share their posts related to AWS that can help the community.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make sure to write a good application&lt;/strong&gt; — When writing your application, make sure it’s as good as possible. In my application, I also wrote about things unrelated to AWS and IT in general. Since I was a basketball player, coach, and assistant at the university, I mentioned these experiences to let AWS know that I have experience working with communities.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;WARNING:&lt;/strong&gt; Don’t use AI tools in your texts that would write documentation instead of you. It is allowed to use them for code; however, a big NO is placed on everything else. Also, don’t use AI in writing the application for this program, otherwise, you will be rejected.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What are the benefits of this program?
&lt;/h2&gt;

&lt;p&gt;There are many benefits to this program. Depending on what you need most, that will be the greatest benefit for you. Some of the benefits include a $500 credit to your AWS Account, a SWAG package, becoming part of the AWS Community Builders community on Dev.to, joining the Slack community (with over 3000 users), daily communication in various ways with other AWS Community Builders, and the privilege of attending various lectures by different AWS experts.&lt;/p&gt;

&lt;p&gt;Personally, for me, the greatest benefit is being part of the Slack community. Why specifically that? I have the opportunity to learn a lot from other AWS Community Builders, both through the content they share and if I ask a question, someone will surely provide an answer for what I’m looking for. I’ve met new people, made new friends, and that is currently the biggest benefit for me. Certainly, the $500 credit is also helpful, but the community is what brings us together, and Slack is the best place for that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You don’t need any special experience to be accepted into this program. It’s enough to put in effort and work, and the right people will notice. Follow my advice and you’ll likely be accepted. The next application cycle is in 2025, so start preparing now. Become part of this prestigious AWS community. PS. If you follow this text and pass the application next year, let me know the result, and we can celebrate with an online coffee.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pulse.aws/application/BM2AKLSX" rel="noopener noreferrer"&gt;Add your name to the waitlist&lt;/a&gt; for the January 2025 application cycle.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>community</category>
      <category>builder</category>
      <category>slack</category>
    </item>
  </channel>
</rss>
