<?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: Sindhur Teja Dasari</title>
    <description>The latest articles on DEV Community by Sindhur Teja Dasari (@sindhurteja).</description>
    <link>https://dev.to/sindhurteja</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%2F3629312%2F092170f9-1d76-43de-9e27-26b7d1d516f1.jpeg</url>
      <title>DEV Community: Sindhur Teja Dasari</title>
      <link>https://dev.to/sindhurteja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sindhurteja"/>
    <language>en</language>
    <item>
      <title>Secure your programmatic access to AWS Services using "aws login" - a new AWS CLI command</title>
      <dc:creator>Sindhur Teja Dasari</dc:creator>
      <pubDate>Mon, 15 Dec 2025 17:43:14 +0000</pubDate>
      <link>https://dev.to/sindhurteja/secure-your-programmatic-access-to-aws-services-using-aws-login-a-new-aws-cli-command-4gk7</link>
      <guid>https://dev.to/sindhurteja/secure-your-programmatic-access-to-aws-services-using-aws-login-a-new-aws-cli-command-4gk7</guid>
      <description>&lt;p&gt;To programmatically access AWS Services, we have all been using aws configure, which saves AWS root/IAM User/Federated user account access key ID and secret access key locally.&lt;/p&gt;

&lt;p&gt;Knowingly, this has a risk in saving long-term access key ID and secret access key locally (if not rotated regularly)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws login&lt;/code&gt; - a new AWS Command Line Interface (CLI) command, helps you get temporary credentials from your browser that use your AWS Management Console credentials.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Install AWS CLI, you need a minimum AWS CLI Version 2.32.0 or later. &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" rel="noopener noreferrer"&gt;To install or update AWS CLI&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To verify the AWS CLI version, run the command &lt;code&gt;aws --version&lt;/code&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%2Fl9jfbm8o3lppctusrtvm.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%2Fl9jfbm8o3lppctusrtvm.png" alt="aws cli version output" width="433" height="65"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SignInLocalDevelopmentAccess&lt;/strong&gt; managed policy must be attached to the IAM User or Role (For Root Account, no additional permissions are required)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;aws login:&lt;/strong&gt;&lt;br&gt;
Now, run the command &lt;code&gt;aws login&lt;/code&gt; from your command line interface (CLI). It opens your default browser; follow along with the browser for the next steps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The CLI prompts you to specify the default AWS Region if you have not set it already.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Command:&lt;br&gt;
&lt;code&gt;aws login&lt;/code&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%2Fv1xlt8ih5vgu9wo0nbul.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%2Fv1xlt8ih5vgu9wo0nbul.png" alt="command-aws-login" width="418" height="109"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the browser, if you haven't signed in already with your account (AWS Management Console), click on &lt;strong&gt;"Continue with Root or IAM User"&lt;/strong&gt; and login to your account&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%2Fd8p7099ac4b1mzoxww2w.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%2Fd8p7099ac4b1mzoxww2w.png" alt="browser-screenshot-1" width="800" height="321"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the browser, if you have signed in already with your account (AWS Management Console), you can see &lt;strong&gt;"Continue with an active session"&lt;/strong&gt;, select your account and continue.&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%2Fj98uydit9m5z1196k4h9.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%2Fj98uydit9m5z1196k4h9.png" alt="browser-screenshot-2" width="800" height="279"&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%2Fxt3xzw42kztd7p6ngdxu.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%2Fxt3xzw42kztd7p6ngdxu.png" alt="browser-screenshot-3" width="800" height="182"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;That's all, pretty simple!&lt;/strong&gt; You can now proceed with running AWS CLI commands.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you are using multiple accounts and other roles, the &lt;code&gt;aws login&lt;/code&gt; command supports switching between these accounts using the &lt;code&gt;--profile&lt;/code&gt; parameter to configure &lt;code&gt;aws login --profile &amp;lt;profile name&amp;gt;&lt;/code&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;aws login --profile my-admin-role&lt;/code&gt; OR &lt;code&gt;aws login --profile my-dev-role&lt;/code&gt;  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: The AWS IAM User Account must have the policy/permission &lt;strong&gt;SignInLocalDevelopmentAccess&lt;/strong&gt; added (for the Root account, it is added by default)  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;"aws login"&lt;/code&gt; also supports other options like &lt;code&gt;--remote&lt;/code&gt;. This option is helpful when the device using AWS CLI does not support a browser or does not have a browser (example: a Linux machine with only terminal access) &lt;code&gt;aws login --remote&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you have successfully authenticated, you can verify the identity by running the command &lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws sts get-caller-identity&lt;/code&gt; &lt;br&gt;
OR&lt;br&gt;
&lt;code&gt;aws sts get-caller-identity --profile &amp;lt;profile name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After verifying everything, you can run AWS CLI commands.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;code&gt;aws s3 ls&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;and also with --profile parameter &lt;br&gt;
&lt;code&gt;aws s3 ls --profile my-dev-role&lt;/code&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OAuth 2.0 authorization:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;aws login&lt;/code&gt; command uses OAuth 2.0 authorization code flow with PKCE (Proof Key for Code Exchange), which prevents an authorization code from being intercepted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;SignInLocalDevelopmentAccess&lt;/strong&gt;&lt;/u&gt; managed policy comes with two major actions&lt;br&gt;
&lt;em&gt;signin:AuthorizeOAuth2Access&lt;/em&gt;: Allows you to authorize a local development tool.&lt;br&gt;
&lt;em&gt;signin:CreateOAuth2Token&lt;/em&gt;: Allows generation of the short-term security tokens needed for command line interface (CLI) access.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Federated Sign-in:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are using federated sign-in to authenticate via your organization's Identity Provider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your browser allows you to choose your active IAM role session (if you have already signed in to the AWS Management Console), and it allows you to switch between 5 active AWS Sessions (if multi-session support is enabled)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;No matter which console sign-in method you select, the short-term credentials issued by the &lt;strong&gt;aws login&lt;/strong&gt; command are automatically rotated by the AWS CLI, AWS SDK's, AWS Tools for Powershell every &lt;strong&gt;15 mins&lt;/strong&gt; (you can set the maximum session duration to &lt;strong&gt;12 hours&lt;/strong&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;aws login&lt;/strong&gt; command can be used with AWS CLI, AWS Software Development Kits (AWS SDKs), AWS Tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information about &lt;code&gt;aws login&lt;/code&gt;, check: &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html#cli-configure-sign-in-with-profile" rel="noopener noreferrer"&gt;AWS Documentation&lt;/a&gt; and &lt;a href="https://aws.amazon.com/blogs/security/simplified-developer-access-to-aws-with-aws-login/" rel="noopener noreferrer"&gt;AWS Official Blog Post&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's all for this one! Thank you!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>awscli</category>
      <category>aws</category>
      <category>security</category>
      <category>cloudskills</category>
    </item>
    <item>
      <title>A Simple, Popular Game "2048": Deployed on AWS EKS with Fargate</title>
      <dc:creator>Sindhur Teja Dasari</dc:creator>
      <pubDate>Sat, 29 Nov 2025 16:44:23 +0000</pubDate>
      <link>https://dev.to/sindhurteja/a-simple-popular-game-2048-deployed-on-aws-eks-with-fargate-2jj7</link>
      <guid>https://dev.to/sindhurteja/a-simple-popular-game-2048-deployed-on-aws-eks-with-fargate-2jj7</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is AWS EKS?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Elastic Kubernetes Service (AWS EKS) is a managed Kubernetes service offered by AWS (Amazon Web Services)&lt;/p&gt;

&lt;p&gt;AWS EKS manages the Kubernetes control plane, ensuring the availability, scalability, and security of the Kubernetes control plane.&lt;/p&gt;

&lt;p&gt;The Kubernetes Control Plane components include the API Server, etcd, Scheduler, Controller Manager, etc.&lt;/p&gt;

&lt;p&gt;To know more about AWS EKS, &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" rel="noopener noreferrer"&gt;check AWS Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;What is AWS Fargate&lt;/strong&gt;&lt;/em&gt;: &lt;/p&gt;

&lt;p&gt;AWS Fargate is a serverless technology that provides on-demand and right-sized compute capacity that allows you to run containers without managing the underlying virtual machines.&lt;/p&gt;

&lt;p&gt;To know more about AWS EKS with Fargate, &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/fargate.html" rel="noopener noreferrer"&gt;check AWS Documentation&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick overview on key highlights, benefits of this demo:&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Setup:&lt;/strong&gt;&lt;br&gt;
Deployed the 2048 game on AWS EKS with Fargate, using Helm to install the AWS Load Balancer Controller, and integrated OIDC Connect provider with EKS for secure service account authentication.&lt;br&gt;&lt;br&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%2Fdgdh20my4var0ejanwfp.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%2Fdgdh20my4var0ejanwfp.png" alt="Architecture Overview" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;br&gt;
A production-grade, auto-scaling, highly available, secure application that demonstrates enterprise-level architecture patterns. 🚀 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Highlights:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Serverless Containers: EKS Fargate eliminated the overhead of managing worker nodes - no patching, no scaling headaches, just pure application focus&lt;br&gt;
 ✅ Intelligent Load Balancing: Ingress - AWS LB Controller automatically provisions and configures Application Load Balancers, enabling path-based routing&lt;br&gt;
 ✅ OIDC Integration: Configured IAM OIDC connect provider to enable secure, native AWS IAM authentication for Kubernetes service accounts&lt;br&gt;
 ✅ Helm-Powered Deployment: Leveraged Helm charts to deploy the AWS Load Balancer &lt;br&gt;
 ✅ Networking: VPC with private/public subnet isolation &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real Business Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💰 Cost Efficiency: Pay only for actual usage—no idle servers burning budget &lt;br&gt;
📈 Handles Growth Automatically: Scale seamlessly without manual intervention or additional overhead &lt;br&gt;
🛡️ Security Built-In: Compliance and security policies enforced automatically &lt;br&gt;
🔄 Always Available: Multi-AZ deployment ensures your business stays online, even during failures (can also be implemented in Multi-Region, by deploying separate EKS clusters in different AWS Regions) &lt;br&gt;
🚀 Team Productivity: Infrastructure management is automated — teams can focus on building applications, not maintaining servers &lt;br&gt;
📊 Visibility &amp;amp; Control: Real-time monitoring catches issues before customers are affected&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total Cost for the demo setup: $0.73 (~2.5 Hrs)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deploying this application reinforced critical lessons about EKS, Fargate, and building resilient, scalable cloud-native systems&lt;/p&gt;
&lt;h3&gt;
  
  
  Step-by-Step: Deploying “Game-2048” on AWS EKS with Fargate
&lt;/h3&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Before proceeding, you will need an AWS Account, the AWS CLI, eksctl, kubectl, and Helm to install and configure. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Account:&lt;/strong&gt; You need AWS Account &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;https://aws.amazon.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS CLI:&lt;/strong&gt; The AWS Command Line Interface (AWS CLI) is an open-source tool by Amazon Web Services that lets users manage AWS services from their terminal. It offers a consistent interface for services like Amazon EC2, S3, IAM, and more others.&lt;/p&gt;

&lt;p&gt;To setup and configure AWS CLI, please refer to &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" rel="noopener noreferrer"&gt;AWS CLI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;eksctl:&lt;/strong&gt; eksctl is the official command-line interface (CLI) for Amazon EKS that automates and simplifies the creation and management of Amazon Elastic Kubernetes Service clusters&lt;/p&gt;

&lt;p&gt;To install the eksctl tool, please refer to &lt;a href="https://docs.aws.amazon.com/eks/latest/eksctl/installation.html" rel="noopener noreferrer"&gt;check AWS documentation install eksctl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubectl:&lt;/strong&gt; kubectl is the command-line interface (CLI) tool for interacting with and managing Kubernetes clusters. It acts as a client for the Kubernetes API, allowing users to send commands to the cluster's control plane&lt;/p&gt;

&lt;p&gt;To install kubectl, please refer to &lt;a href="https://kubernetes.io/docs/tasks/tools/" rel="noopener noreferrer"&gt;install kubectl&lt;/a&gt;&lt;br&gt;
To know more about eksctl and kubectl &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html#eksctl-install-update" rel="noopener noreferrer"&gt;check AWS documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helm:&lt;/strong&gt; Helm is a Kubernetes package manager that simplifies application deployment and management. It uses "charts," pre-configured packages with all necessary resources. Helm allows users to define, install, and upgrade applications with one command, ensuring consistency and reducing errors.&lt;/p&gt;

&lt;p&gt;To install Helm, refer to &lt;a href="https://helm.sh/docs/intro/install/" rel="noopener noreferrer"&gt;install helm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Deployment:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Creating EKS Cluster “game-2048-demo” using eksctl&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eksctl create cluster --name game-2048-demo --region us-east-1 --fargate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note:&lt;/em&gt;&lt;/strong&gt; “eksctl” takes care of the resource provisioning using cloudformation templates for AWS EKS. It creates a new VPC with both public and private subnets across multiple Availability Zones, along with a default Fargate profile.&lt;/p&gt;

&lt;p&gt;⚠️ WARNING!&lt;br&gt;
Please be informed that you will need to clean up all resources in the last step of this demo, once you have successfully implemented this demo project. You need to delete all the resources created.&lt;br&gt;
Deletion of resources is provided as the last or final step&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Review the screenshots below, eksctl creating/deploying the AWS EKS Cluster “game-2048-demo”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf4g89icu4ivznpxu13t.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%2Fdf4g89icu4ivznpxu13t.png" alt="eksctl output1" width="800" height="371"&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%2F3m4spqnktv8tee24fsuu.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%2F3m4spqnktv8tee24fsuu.png" alt="eksctl output1" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review and confirm the cluster “game-2048-demo” created from AWS management Console as well&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwx3w294e24qiysf9fdp.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%2Fuwx3w294e24qiysf9fdp.png" alt="awsconsoleoutput1" width="800" height="397"&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%2Frkjtltrwzcj51g7elafl.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%2Frkjtltrwzcj51g7elafl.png" alt="awsconsoleoutput2" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Update the kubeconfig for kubectl:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws eks update-kubeconfig --name game-2048-demo --region us-east-1
&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%2Fq0rnty20i5t7q6ly2bck.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%2Fq0rnty20i5t7q6ly2bck.png" alt="output" width="800" height="75"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Create a new fargate profile “fgp-game-2048” under a new namespace “game-2048”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eksctl create fargateprofile --cluster game-2048-demo --region us-east-1 --name fgp-game-2048 --namespace game-2048
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creating a new Fargate profile “fgp-game-2048” to deploy the application pods in a new namespace “game-2048.”&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%2Fqbrju6lxo8ez53rh682d.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%2Fqbrju6lxo8ez53rh682d.png" alt="output" width="800" height="80"&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%2Fovjwntnemvmcy2ucuqxd.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%2Fovjwntnemvmcy2ucuqxd.png" alt="Output" width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Deploy the game-2048 application:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/examples/2048/2048_full.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The file &lt;strong&gt;2048_full.yaml&lt;/strong&gt; (from the link) has all the required resources (deployment, service, and ingress) configured.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/examples/2048/2048_full.yaml" rel="noopener noreferrer"&gt;https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/examples/2048/2048_full.yaml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The link is provided by official AWS EKS documentation as an example, to get started with AWS EKS &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/quickstart.html" rel="noopener noreferrer"&gt;click here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review the screenshots below, confirming the required resources are created and deployed&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkdguryu861arsax77sfo.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%2Fkdguryu861arsax77sfo.png" alt="Output" width="800" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To review and confirm the application pods, deployments, service, and ingress are up and running under namespace “game-2048”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run commands below to verify resources (pods, deployments, service, ingress):&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get pods –n game-2048.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get deployments –n game-2048.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get service –n game-2048.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get ingress –n game-2048.&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;For ingress, there is no resource created yet at this point, we will create AmazonLoadBalancerController using helm in the upcoming steps&lt;/em&gt;&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%2Fgnkhsxiwd4dh5iippjra.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%2Fgnkhsxiwd4dh5iippjra.png" alt="kubectl-output" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Configure IAM Open ID Connect provider (OIDC) for cluster “game-2048-demo”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is the need for IAM OIDC Provider?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;IAM OIDC (OpenID Connect) with AWS EKS refers to the method of granting AWS IAM permissions to Kubernetes service accounts within an Amazon EKS cluster. This allows applications running in EKS pods to securely access AWS resources without requiring the direct storage of long-lived AWS credentials in the pod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eksctl utils associate-iam-oidc-provider --cluster game-2048-demo --approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;The above command creates and associates an OpenID Connect (OIDC) identity provider with your EKS cluster. This is a foundational step for enabling IAM Roles for Service Accounts (IRSA), which allows Kubernetes pods running in your cluster to securely access AWS services without hardcoded credentials.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb5c8xan5oaljzjktsk7.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%2Ffb5c8xan5oaljzjktsk7.png" alt="eksctl-output" width="800" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. We will create an IAM role with the necessary permissions for the ALBController to access and create an AWS Application Load Balancer for the “game-2048” application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Download the ALB Controller IAM-Policy&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.11.0/docs/install/iam_policy.json
&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%2Fjb16h51h9uyw0w1tuku6.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%2Fjb16h51h9uyw0w1tuku6.png" alt="Output" width="800" height="78"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Create the IAM Policy for AWSLoadBalancerController using the IAM policy that we downloaded:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws iam create-policy --policy-name AWSLoadBalancerControllerIAMPolicy --policy-document file://iam_policy.json
&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%2Fofjeqvjht5kaplqx13up.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%2Fofjeqvjht5kaplqx13up.png" alt="Output" width="800" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. We will create an IAM service account that binds an IAM role to a Kubernetes service account, enabling the AWS Load Balancer Controller pod to access AWS ALB resources with least-privilege permissions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eksctl create iamserviceaccount \
  --cluster=game-2048-demo \
  --namespace=kube-system \
  --name=aws-load-balancer-controller \
  --role-name AmazonEKSLoadBalancerControllerRole \
  --attach-policy-arn=arn:aws:iam::&amp;lt;your-aws-account-id&amp;gt;:policy/AWSLoadBalancerControllerIAMPolicy \
  --approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;What It Does?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Creates a Kubernetes service account named aws-load-balancer-controller in the kube-system namespace&lt;/li&gt;
&lt;li&gt;
Creates an IAM role named AmazonEKSLoadBalancerControllerRole (if it doesn't exist)&lt;/li&gt;
&lt;li&gt;
Attaches the IAM policy specified by the ARN to the role, granting Load Balancer Controller permissions&lt;/li&gt;
&lt;li&gt;
Annotates the service account with the IAM role ARN, establishing the trust relationship&lt;/li&gt;
&lt;li&gt;
Executes without prompting due to the --approve&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%2Fym3up42uefkovbvllhrb.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%2Fym3up42uefkovbvllhrb.png" alt="Output" width="800" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Deploy the ALB Controller using Helm Charts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need to add the AWS EKS Helm chart repository with local Helm installation/configuration. It's a prerequisite step before you can search or install charts from AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;helm repo add eks https://aws.github.io/eks-charts&lt;/code&gt;&lt;br&gt;
&lt;code&gt;helm repo update eks&lt;/code&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%2Fs7nem2fb0309crjbgtyt.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%2Fs7nem2fb0309crjbgtyt.png" alt="Output" width="800" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Install Ingress ALB-Controller using helm:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=game-2048-demo --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller --set region=us-east-1 --set vpcId=vpc-xxxxxxxxxxxxx
&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%2Fap4rdhkq50wqy7h8kn53.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%2Fap4rdhkq50wqy7h8kn53.png" alt="Output" width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Now, you can verify the ALBController (aws-load-balancer-controller) Pods are up and running under the system namespace “kube-system”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0t5sftmjbxfafumkesrl.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%2F0t5sftmjbxfafumkesrl.png" alt="Output" width="800" height="183"&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%2Fpix60g3s23bqfzhvceep.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%2Fpix60g3s23bqfzhvceep.png" alt="Output" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The ALB Controller provisions and configures AWS Application Load Balancers (ALB) in response to Kubernetes resources.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the below screenshot, you can review that the AWS ALB is provisioned, and the same is reflected under the ingress resource with the ALB DNS name&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhzmmlbht1cfd24w8xhy.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%2Fkhzmmlbht1cfd24w8xhy.png" alt="Output" width="800" height="176"&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%2F2wd1zoeo2ryivjgji746.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%2F2wd1zoeo2ryivjgji746.png" alt="Output" width="800" height="90"&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%2Fcbo1ru37i1su5janh4c8.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%2Fcbo1ru37i1su5janh4c8.png" alt="Output" width="800" height="288"&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%2Fi9ownbiu1j8vi82qdgf2.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%2Fi9ownbiu1j8vi82qdgf2.png" alt="Output" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Now, to test the “game-2048” application. You can copy the AWS Application Load Balancers DNS name (from the AWS managed console or the CLI) as shown above.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Paste the DNS name in a browser (as shown below)&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  BOOOOOM! Game-2048 is ON!
&lt;/h1&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%2Fq1y38xrnh9i68jldjdmp.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%2Fq1y38xrnh9i68jldjdmp.png" alt="Output" width="785" height="537"&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%2Fiv7p33zl8ff8g16o2jdl.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%2Fiv7p33zl8ff8g16o2jdl.png" alt="Output" width="520" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What's your highest score?😉&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;Let me know in the comments!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Give a glance at what you have built!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Verify the resources created under the system namespace, i.e. kube-system&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-commands below:&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get pods –n kube-system&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get deployments –n kube-system&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get service –n kube-system&lt;/code&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%2Fup0l5g4ty0zrm03o13qo.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%2Fup0l5g4ty0zrm03o13qo.png" alt="Output" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Verify the resources created under the namespace "game-2048"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-commands below:&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get pods –n game-2048&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get deployments –n game-2048&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get service –n game-2048&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kubectl get ingress –n game-2048&lt;/code&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%2F0q84d5n7jh38fgudd1a9.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%2F0q84d5n7jh38fgudd1a9.png" alt="Output" width="800" height="287"&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡Insights!&lt;/p&gt;

&lt;p&gt;Note the difference that the ALBController Pods are created under the system namespace "kube-system", but the Application Load Balancer is created under the namespace "game-2048".&lt;/p&gt;

&lt;p&gt;The ALB Controller pods are created under the "kube-system" system namespace; this is by design and as developed by AWS. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Now, as the final step. You need to delete/clean up the AWS EKS Cluster and other resources created in this demo.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Delete the AWS EKS Cluster "game-2048-demo"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Run-command:&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eksctl delete cluster --name game-2048-demo --region us-east-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Review the screenshot below. EKS cluster resources are being deleted or cleaned up&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46gvqkpw3n9cjh4niyk7.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%2F46gvqkpw3n9cjh4niyk7.png" alt="eksctl-output" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Before you finish, review to ensure that no other resources are missed for cleanup.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's all for this project demo! HAPPY LEARNING...!&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Please share your thoughts and suggestions to improve further.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Grateful to &lt;a href="https://youtu.be/RRCrY12VY_s?si=p_7AIhDt_bjZwHG1" rel="noopener noreferrer"&gt;@Abhishek Veeramalla&lt;/a&gt; for providing the detailed project demonstration on his YouTube Channel.&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Thank You!&lt;/strong&gt;
&lt;/h3&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>eks</category>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
