<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: marunkumar1983</title>
    <description>The latest articles on Forem by marunkumar1983 (@marunkumar1983).</description>
    <link>https://forem.com/marunkumar1983</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%2F1048331%2Fa7770f0c-ab10-465a-94a4-d32e22effabf.png</url>
      <title>Forem: marunkumar1983</title>
      <link>https://forem.com/marunkumar1983</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/marunkumar1983"/>
    <language>en</language>
    <item>
      <title>Disaster Recovery on AWS - Part 1: Multi-Site Active/Active (EC2, ECS, Fargate)</title>
      <dc:creator>marunkumar1983</dc:creator>
      <pubDate>Tue, 01 Apr 2025 04:06:43 +0000</pubDate>
      <link>https://forem.com/marunkumar1983/disaster-recovery-on-aws-part-1-multi-site-activeactive-ec2-ecs-fargate-2on3</link>
      <guid>https://forem.com/marunkumar1983/disaster-recovery-on-aws-part-1-multi-site-activeactive-ec2-ecs-fargate-2on3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;What is the highest financial loss a company could face due to the absence of a Disaster Recovery (DR) setup? For enterprises, this could amount to millions, depending on their Recovery Time Objective (RTO) and Recovery Point Objective (RPO).&lt;br&gt;
Disaster Recovery is not just an IT concern—it is a business necessity. Organizations must prioritize DR to ensure business continuity and mitigate risks associated with data loss, cyber-attacks, and natural disasters. A lack of a DR strategy can lead to severe financial and reputational damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Disaster Recovery?
&lt;/h2&gt;

&lt;p&gt;Disaster Recovery (DR) is a strategic framework and set of processes designed to restore IT systems, applications, and data in the event of disruptions. DR ensures business continuity by minimizing downtime and data loss, leveraging backup strategies, failover mechanisms, and automated recovery processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is RTO (Recovery Time Objective)?
&lt;/h2&gt;

&lt;p&gt;RTO defines the maximum acceptable downtime for an application or system after a failure before it significantly impacts business operations. A lower RTO indicates a faster recovery time and typically requires more robust infrastructure and automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is RPO (Recovery Point Objective)?
&lt;/h2&gt;

&lt;p&gt;RPO refers to the maximum tolerable amount of data loss measured in time. It defines how frequently data backups should be performed to ensure minimal loss in case of a disaster. A lower RPO requires more frequent backups and robust data replication strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Disaster Recovery Necessary Beyond Availability Zones?
&lt;/h2&gt;

&lt;p&gt;Each AWS region consists of multiple Availability Zones (AZs). While deploying applications across multiple AZs enhances high availability, it does not qualify as Disaster Recovery. A DR strategy extends beyond AZs to ensure resilience across multiple geographic regions. DR is a critical component of IT General Controls (ITGCs), supporting the reliability of financial applications and compliance with regulatory standards. ITGCs encompass data backup, recovery, system availability, and change management. Audit departments and external firms assess these controls to ensure an organization's DR preparedness.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disaster Recovery Strategies
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Types of DR Strategies
&lt;/h2&gt;

&lt;p&gt;A well-architected DR strategy can be classified into different models based on business requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Backup &amp;amp; Restore: Cost-effective, but recovery time can be slow.&lt;/li&gt;
&lt;li&gt; Pilot Light: A minimal setup is always running, with additional resources scaled up during a disaster.&lt;/li&gt;
&lt;li&gt; Warm Standby: A scaled-down version of the environment runs continuously, allowing for quick recovery.&lt;/li&gt;
&lt;li&gt; Multi-Site Active/Active: Applications are deployed across multiple regions, distributing traffic dynamically to maintain availability and resilience.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture: Multi-Site Active/Active (EC2, ECS, Fargate)
&lt;/h2&gt;

&lt;p&gt;Architecture Flow:&lt;br&gt;
• Route 53: Global traffic routing across AWS regions.&lt;br&gt;
• Application Load Balancer (ALB): Distributes traffic to multiple regions.&lt;br&gt;
• Region 1 &amp;amp; Region 2: Active deployment of EC2, ECS, and Fargate to handle workloads. Best practice should be using IaC (Cloudformation, Terraform) and DevOps tools like Jenkins.&lt;br&gt;&lt;br&gt;
• Traffic Distribution: The percentage of traffic routed to each region can be defined based on business needs.&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%2Fdtft818x2np9jgf4jyco.jpg" 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%2Fdtft818x2np9jgf4jyco.jpg" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;• DR is not optional – It is a fundamental requirement to ensure business continuity.&lt;br&gt;
• Faster Recovery: A well-defined RTO and RPO minimize downtime and data loss.&lt;br&gt;
• Cost Efficiency: A robust DR strategy helps reduce long-term operational costs by ensuring preparedness.&lt;br&gt;
• Automated Rollback &amp;amp; Testing: Regularly test and validate backups to ensure effective failover during disasters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Action (CTA)
&lt;/h2&gt;

&lt;p&gt;Assess your DR strategy today. Ensure your backups, failover systems, and rollback processes are tested, automated, and ready for the unexpected. Define and review your RTO and RPO to align with business objectives.&lt;br&gt;
Conclusion&lt;br&gt;
Disaster Recovery is more than an IT requirement—it is a business-critical function. Organizations must proactively implement DR measures to avoid financial losses, maintain compliance, and ensure uninterrupted operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Action Points:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Implement robust backup and recovery procedures.&lt;/li&gt;
&lt;li&gt; Develop and maintain Business Continuity Plans.&lt;/li&gt;
&lt;li&gt; Regularly test and optimize DR plans to meet evolving business needs.
A well-prepared DR strategy can mean the difference between business resilience and catastrophic failure. Start planning today to safeguard your enterprise’s future.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Retro’ing and Debugging 2024: Lessons, Challenges, and 🏆 Achievements - Driving 🐎 Innovation and 🚚 Delivery</title>
      <dc:creator>marunkumar1983</dc:creator>
      <pubDate>Sat, 01 Feb 2025 06:13:41 +0000</pubDate>
      <link>https://forem.com/marunkumar1983/retroing-and-debugging-2024-lessons-challenges-and-achievements-driving-innovation-and-7i4</link>
      <guid>https://forem.com/marunkumar1983/retroing-and-debugging-2024-lessons-challenges-and-achievements-driving-innovation-and-7i4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/newyear"&gt;2025 New Year Writing challenge&lt;/a&gt;: Retro’ing and Debugging 2024.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I reflect on 2024, it has been a year of immense 🌱 growth, challenges, and 🏆 achievements. This retrospective captures my 🏃‍♂️ journey, the 🚫 hurdles I faced, the lessons I learned, and the milestones I reached.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;# The Journey: Driving 🐎 Innovation and 🚚 Delivery&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;At the start of the year, I embarked on a critical mission—writing 📖 RFPs, designing solution and SOWs to onboard 350+ repositories into a DevOps pipeline with Continuous Delivery (CD) along with new DevOps Infrastructure. This project also involved 🔧 framework upgrades and vault implementation, making it a multi-faceted endeavor. Glad to share one year of great experience which is going to shape my career. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Challenges: Navigating a High-Stakes Environment&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Delivering three distinct projects, worth millions, posed several challenges. Success required cohesive teamwork and careful solutioning and coordination.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Project Management&lt;/strong&gt;&lt;br&gt;
      •   ⌚ Time Allocation: Balancing deliverables across three time-sensitive projects.&lt;br&gt;
      •   💪 CEO Oversight: Ensuring on-time updates with the CEO monitoring the progress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Resource Constraints&lt;/strong&gt;&lt;br&gt;
      •   🔍 &lt;strong&gt;Finding Experts:&lt;/strong&gt; Identifying suitable SMEs for technical deliveries.&lt;br&gt;
      •   🤝 &lt;strong&gt;Right Expertise &amp;amp; Ownership:&lt;/strong&gt; Finding the right set of  expertise SMEs and giving complete responsibility along with freedom was the main reason for success.&lt;br&gt;
      •    &lt;strong&gt;Team Collaboration:&lt;/strong&gt; Securing application team support for timely execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cross-Team Coordination&lt;/strong&gt;&lt;br&gt;
      •    Stakeholder Alignment: Getting buy-in from 🤝 support, stakeholders, and various business units.&lt;br&gt;
      •    Weekend Availability: Coordinating the availability of 5-10 different teams every  weekend for seven  months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. 🔧 Technical Complexity&lt;/strong&gt;&lt;br&gt;
      •   🔄 Pipeline Creation: Developing 24 new 🔧 DevOps pipeline patterns for seven different 💻 technologies along with designing solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. 🏆 Taking Complete Ownership&lt;/strong&gt;&lt;br&gt;
      •    Ensuring deliveries were covered end-to-end, including solutioning and timely execution.&lt;br&gt;
      •    Clearly explaining the process to management for better understanding and alignment.&lt;br&gt;
      •    Always ensures customer obsession. &lt;br&gt;
      •    Appreciating the resources with open heart and mind. &lt;br&gt;
      •    Bringing all into same page and bring up to speed for the on-time quality deliverables. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Lessons Learned: Building Foundations for the Future&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Every project provides opportunities for 🌱 growth, but this year’s experiences were particularly 🚀 transformative. These lessons will guide me for years to come:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.    Communication is Key:&lt;/strong&gt;&lt;br&gt;
      • Always obtain email confirmations instead of relying on verbal agreements.&lt;br&gt;
      •   Document mutual agreements to ensure clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.    Process Discipline:&lt;/strong&gt;&lt;br&gt;
      •   Maintain detailed 📝 minutes of meetings (MoM) for accountability.&lt;br&gt;
      •   Commit to being present during production live windows every weekend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.    ⌛ Preparedness:&lt;/strong&gt;&lt;br&gt;
      •   Ensure AVP (Application Verification Process) involvement during change windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.    📝 What Could Have Been Done?&lt;/strong&gt;&lt;br&gt;
      •   Careful planning and mutually agreed 🗓️ date confirmation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.   What Should We Do?&lt;/strong&gt;&lt;br&gt;
      •   Maintain a healthy 🏡 work-life balance.&lt;br&gt;
      •   I have attended AWS re:Invent in Las Vegas and that experience was energizing in both career as well as personal. &lt;br&gt;
      • Healthy lifestyle is always important. Yes. I have successfully completed my first &lt;strong&gt;5K RUN&lt;/strong&gt; in AWS re:Invent. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## 🏆 Achievements: Celebrating Success&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Despite the challenges, the results were 🎉 remarkable. Here are the key milestones:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.    ✨ Seamless Onboarding:&lt;/strong&gt;&lt;br&gt;
      •   Onboarded 33 applications from seven business units, integrating 345 repositories within nine months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.    Innovative Solutions:&lt;/strong&gt;&lt;br&gt;
      •   Created 24 CD DevOps pipeline patterns for seven diverse technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.    Recognition:&lt;/strong&gt;&lt;br&gt;
      •   Received appreciation from the CIO and senior management for 🏆 outstanding delivery and execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  ** Looking Ahead**
&lt;/h2&gt;

&lt;p&gt;2024 has been a year of intense effort and significant rewards. The challenges I overcame and the lessons I learned have fortified my skills, making me better equipped to tackle future endeavors. As I move forward, I’ll carry these insights to continue driving impactful 🚀 change and innovation.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>devops</category>
      <category>aws</category>
    </item>
    <item>
      <title>Step-by-Step Guide: Highly Available Architecture with ALB and Amazon ECS on AWS Fargate</title>
      <dc:creator>marunkumar1983</dc:creator>
      <pubDate>Fri, 31 Mar 2023 15:59:22 +0000</pubDate>
      <link>https://forem.com/aws-builders/step-by-step-guide-highly-available-architecture-with-alb-and-amazon-ecs-on-aws-fargate-cgi</link>
      <guid>https://forem.com/aws-builders/step-by-step-guide-highly-available-architecture-with-alb-and-amazon-ecs-on-aws-fargate-cgi</guid>
      <description>&lt;p&gt;As cloud computing becomes increasingly important in modern IT infrastructure, containerization has emerged as a powerful tool for managing and deploying applications. And among the various containerization platforms available, AWS Fargate stands out as a particularly promising solution. AWS Fargate is a serverless, pay-as-you-go compute engine that lets you focus on building applications without managing servers. With its unique blend of scalability, cost-effectiveness, and simplicity, Fargate is poised to dominate the IT container world in the coming years. &lt;/p&gt;

&lt;p&gt;I have designed and implemented the following architecture, and successfully completed a proof of concept. To ensure that below architecture flow is accurate and efficient, I plan to utilize three distinct verification methods.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  &lt;u&gt;Verification Method 1: &lt;/u&gt; Accessing Docker URL
&lt;/h3&gt;

&lt;p&gt;Let's create a EC2 instance. Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the cloud. EC2 provides users with a flexible and cost-effective way to run applications in the cloud, without the need to invest in and manage their own physical hardware.  &lt;/p&gt;

&lt;h5&gt;
  
  
  EC2 instance creation
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;T2.Micro (AMI: amzn2-ami-kernel-5.10-hvm-2.0.20230207.0-x86_64-gp2) &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Create security group
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Allow ssh port 22, http port 80 and map with EC2 instance&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Docker Installation
&lt;/h5&gt;

&lt;p&gt;Docker is an open platform for developing, shipping, and running applications. Docker image is a read-only template with instructions for creating a Docker container.&lt;/p&gt;

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

    sudo yum update -y
    sudo amazon-linux-extras install docker
    sudo service docker start
    sudo systemctl enable docker
    sudo usermod -a -G docker ec2-user
    sudo docker info


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

&lt;/div&gt;
&lt;h5&gt;
  
  
  Create a Docker Image and run
&lt;/h5&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

 vi Dockerfile
            FROM ubuntu:18.04

            # Install dependencies
            RUN apt-get update &amp;amp;&amp;amp; \
            apt-get -y install apache2

            # Install apache and write Fargate POC message
            RUN echo 'Fargate-ECS POC!' &amp;gt; /var/www/html/index.html

            # Configure apache
            RUN echo '. /etc/apache2/envvars' &amp;gt; /root/run_apache.sh &amp;amp;&amp;amp; \
            echo 'mkdir -p /var/run/apache2' &amp;gt;&amp;gt; /root/run_apache.sh &amp;amp;&amp;amp; \
            echo 'mkdir -p /var/lock/apache2' &amp;gt;&amp;gt; /root/run_apache.sh &amp;amp;&amp;amp; \ 
            echo '/usr/sbin/apache2 -D FOREGROUND' &amp;gt;&amp;gt; /root/run_apache.sh &amp;amp;&amp;amp; \ 
            chmod 755 /root/run_apache.sh

            EXPOSE 80

            CMD /root/run_apache.sh
 sudo docker build -t hello-fargate-ecs .
 sudo docker images --filter reference=hello-fargate-ecs
 docker run -t -i -p 80:80 hello-fargate-ecs


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

&lt;/div&gt;

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

&lt;h5&gt;
  
  
  Accessing direct docker url.
&lt;/h5&gt;

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

&lt;h3&gt;
  
  
  &lt;u&gt;Verification Method 2:&lt;/u&gt; Accessing Task URL
&lt;/h3&gt;

&lt;h5&gt;
  
  
  How two different services (EC2 --&amp;gt; ECR) communicate each other in AWS cloud?
&lt;/h5&gt;

&lt;p&gt;By using IAM Role. &lt;/p&gt;

&lt;p&gt;Create IAM role (IAM --&amp;gt; Roles --&amp;gt; "AmazonEC2ContainerRegistryFullAccess") and map with EC2 instance. &lt;/p&gt;

&lt;h5&gt;
  
  
  Create ECR and push image
&lt;/h5&gt;

&lt;p&gt;Amazon Elastic Container Registry (Amazon ECR) is an AWS managed container image registry service that is secure, scalable, and reliable. It's similar to Docker Hub.&lt;/p&gt;

&lt;p&gt;Login into EC2 to execute below commands. Make sure IAM Role mapped before we execute below commands. &lt;/p&gt;

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

aws ecr create-repository --repository-name hello-fargate-ecs-repository --region us-west-2
docker tag hello-fargate-ecs &amp;lt;awsaccount&amp;gt;.dkr.ecr.us-west-2.amazonaws.com/hello-fargate-ecs-repository
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin &amp;lt;awsaccount&amp;gt;.dkr.ecr.us-west-2.amazonaws.com
docker push &amp;lt;awsaccount&amp;gt;.dkr.ecr.us-west-2.amazonaws.com/hello-fargate-ecs-repository


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

&lt;/div&gt;

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

&lt;h5&gt;
  
  
  Fargate ECS Cluster Creation
&lt;/h5&gt;

&lt;p&gt;An Amazon ECS cluster is a logical grouping of tasks or services.&lt;/p&gt;

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

&lt;h5&gt;
  
  
  Task Definitions Creation
&lt;/h5&gt;

&lt;p&gt;Task definition is a template. A task definition is required to run Docker containers in Amazon ECS. The Task definition allows you to specify which Docker image to use, which ports to expose, how much CPU and memory to allocate, how to collect logs, and define environment variables.&lt;/p&gt;

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

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

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

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

&lt;h5&gt;
  
  
  Run Task by enabling public IP
&lt;/h5&gt;

&lt;p&gt;An ECS task can consist of one or more containers that work together to perform a specific function. Task definition is used to define the configuration of a task. The task definition includes information such as the Docker image to use, the resources required, the container port mappings, and any data volumes to be mounted.&lt;/p&gt;

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

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

&lt;p&gt;Make sure &lt;strong&gt;Public IP "Turned on"&lt;/strong&gt; which will be used to hit from browser. &lt;/p&gt;

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

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

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

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

&lt;p&gt;Task Running successfully and we could see public IP. &lt;/p&gt;

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

&lt;p&gt;Hit the public IP from the browser to complete second verification method successfully. &lt;/p&gt;

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

&lt;p&gt;Delete the task once verified. We will use ALB, ECS Service in our next verification method. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Verification Method 3:&lt;/u&gt; Accessing ALB URL
&lt;/h3&gt;

&lt;p&gt;ALB (Application Load Balancer) distributes incoming traffic to multiple targets such as EC2 instances, containers, and Lambda functions, based on rules and conditions defined by the user. &lt;/p&gt;

&lt;p&gt;ALB Target Group is a logical grouping of targets (such as EC2 instances or containers) that receive traffic from an Application Load Balancer based on the rules and conditions set by the user, allowing for efficient distribution of traffic and improved application availability and scalability.&lt;/p&gt;

&lt;h5&gt;
  
  
  Target Group Creation
&lt;/h5&gt;

&lt;p&gt;Make sure to select &lt;strong&gt;"IP addresses"&lt;/strong&gt; when creating target group.  &lt;/p&gt;

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

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

&lt;h5&gt;
  
  
  ALB Creation
&lt;/h5&gt;

&lt;p&gt;Note: You may incur cost if you are not a new AWS user. New AWS customers receive 750 hours per month as per below URL. &lt;br&gt;
&lt;a href="https://aws.amazon.com/elasticloadbalancing/pricing/" rel="noopener noreferrer"&gt;https://aws.amazon.com/elasticloadbalancing/pricing/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create ALB by mapping created target group. &lt;/p&gt;

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

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

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

&lt;h5&gt;
  
  
  ECS Service Creation
&lt;/h5&gt;

&lt;p&gt;ECS Service is used to guarantee that we always have some number of Tasks running at all times. Another very important point is that a Service can be configured to use a load balancer. Service will automatically register the container's EC2 instance with the load balancer. &lt;br&gt;
Tasks cannot be configured to use a load balancer, only Services can. If a Task's container exits due to an error, or the underlying EC2 instance fails and is replaced, the ECS Service will replace the failed Task.&lt;/p&gt;

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

&lt;p&gt;Make sure to select Launch type as &lt;strong&gt;"FARGATE"&lt;/strong&gt;. &lt;/p&gt;

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

&lt;p&gt;Deployment configurations: Provide service name, task definition and desired task. &lt;/p&gt;

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

&lt;p&gt;We already have ALB and target group ready. Make sure to map existing ALB and target group. &lt;/p&gt;

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

&lt;p&gt;Service deployment is in progress.&lt;/p&gt;

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

&lt;p&gt;Service deployment completed successfully. Desired tasks are running successfully. &lt;/p&gt;

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

&lt;p&gt;Target group is healthy and registered automatically with task's public IP. &lt;/p&gt;

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

&lt;p&gt;We can hit ALB URL from browser now. &lt;/p&gt;

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

&lt;p&gt;Custom domain can be configured with Route53. &lt;/p&gt;

&lt;p&gt;Note: Enterprise usually use "Private Subnet" for such configurations. End point configurations are required to establish communication. &lt;/p&gt;

&lt;p&gt;I always wanted to connect with like-minded people. Here is my Linkedin. Ping/comment if any suggestions or clarifications required.&lt;/p&gt;

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

&lt;p&gt;Thank you! &lt;/p&gt;

</description>
      <category>aws</category>
      <category>fargate</category>
      <category>ecs</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
