<?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: Saptadeep Banerjee</title>
    <description>The latest articles on DEV Community by Saptadeep Banerjee (@iamsanko).</description>
    <link>https://dev.to/iamsanko</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%2F2962150%2F39a1bb1c-62c6-432f-9a72-4223e13d825f.jpg</url>
      <title>DEV Community: Saptadeep Banerjee</title>
      <link>https://dev.to/iamsanko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamsanko"/>
    <language>en</language>
    <item>
      <title>AWS Kiro for Beginners: A Complete Hands-On Guide with App Runner, DynamoDB &amp; Cognito</title>
      <dc:creator>Saptadeep Banerjee</dc:creator>
      <pubDate>Tue, 20 Jan 2026 21:30:27 +0000</pubDate>
      <link>https://dev.to/iamsanko/aws-kiro-for-beginners-a-complete-hands-on-guide-with-app-runner-dynamodb-cognito-190n</link>
      <guid>https://dev.to/iamsanko/aws-kiro-for-beginners-a-complete-hands-on-guide-with-app-runner-dynamodb-cognito-190n</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AWS is powerful—but for beginners, it can feel overwhelming.&lt;/p&gt;

&lt;p&gt;Too many services.&lt;br&gt;
Too much configuration.&lt;br&gt;
Too many decisions before you even deploy your first app.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;AWS Kiro&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Kiro&lt;/strong&gt; represents a &lt;strong&gt;developer-first, workflow-oriented approach&lt;/strong&gt; to AWS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build applications first&lt;/li&gt;
&lt;li&gt;Automate infrastructure&lt;/li&gt;
&lt;li&gt;Use managed services&lt;/li&gt;
&lt;li&gt;Deploy faster with fewer decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article, you’ll build a &lt;strong&gt;production-style cloud application&lt;/strong&gt; using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Kiro mindset&lt;/li&gt;
&lt;li&gt;Flask application&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;AWS App Runner&lt;/li&gt;
&lt;li&gt;Amazon DynamoDB (database)&lt;/li&gt;
&lt;li&gt;AWS Cognito (authentication)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All being explained step by step in this article.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You’ll Build
&lt;/h2&gt;

&lt;p&gt;By the end of this tutorial, you’ll have:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A Flask backend application&lt;/li&gt;
&lt;li&gt;Containerized using Docker&lt;/li&gt;
&lt;li&gt;Deployed on AWS App Runner&lt;/li&gt;
&lt;li&gt;User authentication using AWS Cognito&lt;/li&gt;
&lt;li&gt;Data stored in DynamoDB&lt;/li&gt;
&lt;li&gt;A GitHub-ready project structure&lt;/li&gt;
&lt;li&gt;Clear architecture diagrams&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  AWS Kiro: What It Means (Beginner Explanation)
&lt;/h2&gt;

&lt;p&gt;AWS Kiro is &lt;strong&gt;not just one service&lt;/strong&gt;—it’s a &lt;strong&gt;cloud development philosophy&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Traditional AWS&lt;/th&gt;
&lt;th&gt;AWS Kiro Mindset&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Service-by-service learning&lt;/td&gt;
&lt;td&gt;Workflow-based learning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual infrastructure&lt;/td&gt;
&lt;td&gt;Managed services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infra-first&lt;/td&gt;
&lt;td&gt;Code-first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steep learning curve&lt;/td&gt;
&lt;td&gt;Beginner-friendly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;AWS Kiro encourages developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus on application logic&lt;/li&gt;
&lt;li&gt;Let AWS manage scaling, security, and availability&lt;/li&gt;
&lt;li&gt;Automate deployments early&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Architecture Overview (with AWS Kiro)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  High-Level Architecture
&lt;/h3&gt;

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

&lt;ol&gt;
&lt;li&gt;User accesses the app&lt;/li&gt;
&lt;li&gt;Authentication via AWS Cognito&lt;/li&gt;
&lt;li&gt;Requests routed through AWS App Runner&lt;/li&gt;
&lt;li&gt;Flask app runs inside Docker&lt;/li&gt;
&lt;li&gt;Data stored in DynamoDB&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%2F6og1jrnfvb8merucwi0e.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%2F6og1jrnfvb8merucwi0e.png" alt=" " width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Files Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws-kiro-demo/
├── app.py
├── requirements.txt
├── Dockerfile
├── README.md
├── .github/
│   └── workflows/
│       └── ci.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 1: Create the Flask Application
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;app.py&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jsonify&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;dynamodb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dynamodb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;region_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AWS_REGION&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ap-south-1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dynamodb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;KiroUsers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;home&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;jsonify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello from AWS Kiro Cloud App&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/add-user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;POST&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_user&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;
    &lt;span class="n"&gt;table&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;put_item&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Item&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;jsonify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User added successfully&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why this fits AWS Kiro
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Minimal backend logic&lt;/li&gt;
&lt;li&gt;Cloud-native SDK usage&lt;/li&gt;
&lt;li&gt;No hard-coded infrastructure details&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 2: Add Dependencies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;requirements.txt&lt;/code&gt;
&lt;/h3&gt;



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

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 3: Dockerize the Application
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;Dockerfile&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; python:3.10-slim&lt;/span&gt;

&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; requirements.txt .&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . .&lt;/span&gt;

&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["python", "app.py"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Build &amp;amp; Test Locally
&lt;/h3&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; aws-kiro-demo &lt;span class="nb"&gt;.&lt;/span&gt;
docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 5000:5000 aws-kiro-demo
&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%2Ffkn1w1p6xtfxjxfeynia.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%2Ffkn1w1p6xtfxjxfeynia.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Add AWS Cognito (Authentication)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Cognito?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Managed authentication&lt;/li&gt;
&lt;li&gt;No password handling&lt;/li&gt;
&lt;li&gt;Secure and scalable&lt;/li&gt;
&lt;li&gt;Perfect for AWS Kiro workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cognito Setup (Console)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;AWS Cognito&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create &lt;strong&gt;User Pool&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable email/password login&lt;/li&gt;
&lt;li&gt;Create App Client&lt;/li&gt;
&lt;li&gt;Copy:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;User Pool ID&lt;/li&gt;
&lt;li&gt;App Client ID&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%2Fv541zpo6y0rsxgkpzh6l.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%2Fv541zpo6y0rsxgkpzh6l.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Add DynamoDB (Database)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create Table
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Table name: &lt;code&gt;KiroUsers&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Partition key: &lt;code&gt;userId&lt;/code&gt; (String)&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%2Fwimko3x0nud9u0bswblq.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%2Fwimko3x0nud9u0bswblq.png" alt=" " width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why DynamoDB?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;li&gt;No schema migrations&lt;/li&gt;
&lt;li&gt;Auto scaling&lt;/li&gt;
&lt;li&gt;Ideal for beginners&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 6: CI/CD with GitHub Actions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;.github/workflows/ci.yml&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CI Pipeline&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build Docker Image&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docker build -t aws-kiro-demo .&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated validation&lt;/li&gt;
&lt;li&gt;Faster feedback&lt;/li&gt;
&lt;li&gt;DevOps mindset early&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 7: Deploy Using AWS App Runner
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why App Runner?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No server management&lt;/li&gt;
&lt;li&gt;Auto HTTPS&lt;/li&gt;
&lt;li&gt;Auto scaling&lt;/li&gt;
&lt;li&gt;Perfect match for AWS Kiro&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deployment Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;AWS App Runner&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create Service&lt;/li&gt;
&lt;li&gt;Connect GitHub repository&lt;/li&gt;
&lt;li&gt;Choose branch &lt;code&gt;main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enable automatic deployments&lt;/li&gt;
&lt;li&gt;Deploy 🚀&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%2Fvxwl5xvh18qb5o6wr7i3.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%2Fvxwl5xvh18qb5o6wr7i3.png" alt=" " width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App Runner service creation&lt;/li&gt;
&lt;li&gt;GitHub integration&lt;/li&gt;
&lt;li&gt;Deployment success&lt;/li&gt;
&lt;li&gt;Live URL in browser&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Architecture (With AWS Kiro)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Extended Architecture
&lt;/h3&gt;

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

&lt;ul&gt;
&lt;li&gt;AWS Kiro (workflow orchestration mindset)&lt;/li&gt;
&lt;li&gt;App Runner (compute)&lt;/li&gt;
&lt;li&gt;Docker (runtime)&lt;/li&gt;
&lt;li&gt;Flask (application)&lt;/li&gt;
&lt;li&gt;Cognito (auth)&lt;/li&gt;
&lt;li&gt;DynamoDB (data)&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%2Fnnpvkpl9z5grotk8ctwm.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%2Fnnpvkpl9z5grotk8ctwm.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Beginner Mistakes (Avoid These)
&lt;/h2&gt;

&lt;p&gt;❌ Learning every AWS service&lt;br&gt;
❌ Over-engineering small apps&lt;br&gt;
❌ Skipping authentication&lt;br&gt;
❌ Ignoring automation&lt;/p&gt;

&lt;p&gt;AWS Kiro promotes &lt;strong&gt;progressive complexity&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Project Is Resume &amp;amp; Portfolio Worthy
&lt;/h2&gt;

&lt;p&gt;This single project demonstrates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud-native development&lt;/li&gt;
&lt;li&gt;Authentication &amp;amp; security&lt;/li&gt;
&lt;li&gt;Database integration&lt;/li&gt;
&lt;li&gt;CI/CD&lt;/li&gt;
&lt;li&gt;AWS managed services&lt;/li&gt;
&lt;li&gt;Real-world architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Students&lt;/li&gt;
&lt;li&gt;Cloud beginners&lt;/li&gt;
&lt;li&gt;DevOps aspirants&lt;/li&gt;
&lt;li&gt;AWS interviews&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What to Build Next
&lt;/h2&gt;

&lt;p&gt;You can extend this by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding RDS instead of DynamoDB&lt;/li&gt;
&lt;li&gt;Adding JWT validation middleware&lt;/li&gt;
&lt;li&gt;Adding CloudWatch logs&lt;/li&gt;
&lt;li&gt;Migrating to serverless Lambda&lt;/li&gt;
&lt;li&gt;Creating frontend with React&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;Final Thoughts AWS Kiro is about &lt;strong&gt;building faster with fewer barriers&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  If you’re a beginner:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Focus on workflows&lt;/li&gt;
&lt;li&gt;Use managed services&lt;/li&gt;
&lt;li&gt;Let AWS handle infrastructure&lt;/li&gt;
&lt;li&gt;Build real projects early&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>beginners</category>
      <category>serverless</category>
    </item>
  </channel>
</rss>
