<?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: Naami Ahmed</title>
    <description>The latest articles on DEV Community by Naami Ahmed (@naamiahmed).</description>
    <link>https://dev.to/naamiahmed</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%2F2461034%2Fc98ff73b-cf88-4fb8-8711-fa19e86e846b.jpeg</url>
      <title>DEV Community: Naami Ahmed</title>
      <link>https://dev.to/naamiahmed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naamiahmed"/>
    <language>en</language>
    <item>
      <title>How to Prevent Unnecessary Charges on AWS: Free Billing Alerts for Beginners</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Fri, 14 Nov 2025 15:15:34 +0000</pubDate>
      <link>https://dev.to/naamiahmed/how-to-prevent-unnecessary-charges-on-aws-free-billing-alerts-for-beginners-1g4</link>
      <guid>https://dev.to/naamiahmed/how-to-prevent-unnecessary-charges-on-aws-free-billing-alerts-for-beginners-1g4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AWS is one of the most popular cloud platforms, but beginners often get surprised by unexpected charges. Luckily, AWS provides free tools to monitor your spending and prevent unnecessary costs. In this article, we will guide you step by step to set up free billing alerts, understand usage limits, and stay safe while learning AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target Audience:&lt;/strong&gt; Beginners who want to avoid surprises in their AWS billing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Enable AWS Billing Alerts (Free)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before creating alerts, you must enable billing alerts in your account. This allows AWS to track your usage and send notifications if you approach your free tier or budget limits.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to AWS Management Console.&lt;/li&gt;
&lt;li&gt;Go to Billing &amp;amp; Cost Management → Billing Preferences.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tick:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Receive Free Tier Usage Alerts – This sends alerts when you are nearing the free tier limits, so you can avoid accidental charges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click Save to activate this alert.&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%2Ffg3cu080a6zj4tso3tfu.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%2Ffg3cu080a6zj4tso3tfu.png" alt="Billing Preferences page" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Create an AWS Budget Alert (Free)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AWS Budget feature allows you to define a spending limit and get email notifications when your usage reaches specific thresholds. This gives beginners more control and peace of mind while learning.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Billing → Budgets → Create Budget.&lt;/li&gt;
&lt;li&gt;Choose Cost Budget and set your monthly limit (for example, $2 USD). This is the maximum you are willing to spend in a month.&lt;/li&gt;
&lt;li&gt;Add alert thresholds to receive notifications at 50%, 80%, and 100% of your budget. Each alert warns you before reaching the full limit.&lt;/li&gt;
&lt;li&gt;Add your email address for notifications and click Save.&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%2Fk65rrgxxka7okme5el0y.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%2Fk65rrgxxka7okme5el0y.png" alt="Create Budget page" width="800" height="328"&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%2Fk0zp1kfg8ngx1m19f1g3.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%2Fk0zp1kfg8ngx1m19f1g3.png" alt="Email notifications" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tip: Always use email notifications, as SMS alerts may incur small charges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Enable Cost Explorer (Optional, Free)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Cost Explorer helps you visualize your spending over time. By tracking daily usage and costs, you can better understand which services may contribute to charges and make adjustments before they become an issue.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Billing → Cost Explorer.&lt;/li&gt;
&lt;li&gt;Click Enable to activate the tool. Once enabled, you can view your usage in graphs and tables.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Safe to use (Free):&lt;/p&gt;

&lt;p&gt;IAM (users &amp;amp; permissions) – Manage access without creating cost.&lt;/p&gt;

&lt;p&gt;Billing dashboard &amp;amp; CloudWatch billing alerts – Free tools to monitor your usage.&lt;/p&gt;

&lt;p&gt;AWS Budgets &amp;amp; Cost Explorer – Tools to track spending and visualize data for free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Tips to Stay Safe&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Regularly check Free Tier usage: Even small services can exceed limits if forgotten. Monitoring usage helps avoid surprises.&lt;/li&gt;
&lt;li&gt;Use tags to track resources: Tags make it easy to identify and manage resources, especially if you try multiple services at once.&lt;/li&gt;
&lt;li&gt;Delete resources you are not using: Unused resources, like instances or storage, can lead to unexpected charges.&lt;/li&gt;
&lt;li&gt;Monitor daily billing with Cost Explorer: Keeping an eye on daily costs helps you react before reaching your budget.&lt;/li&gt;
&lt;li&gt;Set low budgets initially: Beginners can start with $1–$2 per month to test alerts and get familiar with AWS billing.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Setting up AWS billing alerts is simple, free, and essential for beginners. By combining budget alerts, free tier alerts, and monitoring tools, you can confidently explore AWS without worrying about unexpected charges. Adding screenshots and visuals in your article or video will make these steps even clearer and more engaging for beginners.&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%2Fz14pbf3ujj2y3ra8eu2o.jpeg" 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%2Fz14pbf3ujj2y3ra8eu2o.jpeg" alt="Thanks for Reading" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>free</category>
      <category>bill</category>
    </item>
    <item>
      <title>🎮 Building a Mini Tic-Tac-Toe Game Using Amazon Q Developer and Python</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Mon, 10 Nov 2025 14:51:56 +0000</pubDate>
      <link>https://dev.to/naamiahmed/building-a-mini-tic-tac-toe-game-using-amazon-q-developer-and-python-4de2</link>
      <guid>https://dev.to/naamiahmed/building-a-mini-tic-tac-toe-game-using-amazon-q-developer-and-python-4de2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Artificial Intelligence (AI) is becoming more accessible for developers to integrate into their projects. Amazon Q Developer is a powerful AI coding assistant from AWS that helps developers generate, debug, and improve code directly inside their IDE.&lt;/p&gt;

&lt;p&gt;In this article, I’ll walk you through a practical example: creating a mini Tic-Tac-Toe game in Python using Amazon Q Developer. This will give you hands-on experience with AI-assisted coding while exploring how AWS’s developer tools work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 What is Amazon Q Developer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Q Developer is an AI-powered coding assistant integrated into IDEs like VS Code.&lt;br&gt;
It helps developers by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generating or explaining code.&lt;/li&gt;
&lt;li&gt;Suggesting fixes or optimizations.&lt;/li&gt;
&lt;li&gt;Improving documentation and refactoring logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s part of AWS’s effort to make development more intelligent and cloud-ready.&lt;br&gt;
You can also use Amazon Q Business (for enterprise workflows) or Q Developer (for coding).&lt;/p&gt;

&lt;p&gt;Free Usage: The Developer (Free) tier gives you full AI assistance inside VS Code without any extra cost — perfect for personal learning or experiments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚙️ Step 1: Environment Setup&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Python 3.10+ on your computer. &lt;/li&gt;
&lt;li&gt;Install VS Code.&lt;/li&gt;
&lt;li&gt;Add the Amazon Q Developer extension in VS Code.&lt;/li&gt;
&lt;li&gt;Sign in using your AWS Builder ID.&lt;/li&gt;
&lt;li&gt;Create a project folder:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TicTacToe-Q
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Create a file named:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💻 &lt;strong&gt;Step 2: Writing a Simple Tic-Tac-Toe Game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with a simple console-based Python version (If you want, you can start the code generation using Amazon Q):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import tkinter as tk
import random

# --- Basic Setup ---
root = tk.Tk()
root.title("Tic Tac Toe - Amazon Q AI")
root.configure(bg='#2c3e50')
root.geometry('400x500')

# Game variables
board = [""] * 9
player = "X"
game_active = True

# --- AI Functions ---
def ai_move():
    # Try to win
    for i in range(9):
        if board[i] == "":
            board[i] = "O"
            if check_winner() == "O":
                return i
            board[i] = ""

    # Block player from winning
    for i in range(9):
        if board[i] == "":
            board[i] = "X"
            if check_winner() == "X":
                board[i] = ""
                return i
            board[i] = ""

    # Take center if available
    if board[4] == "":
        return 4

    # Take corners
    corners = [0, 2, 6, 8]
    available_corners = [i for i in corners if board[i] == ""]
    if available_corners:
        return random.choice(available_corners)

    # Take any available spot
    available = [i for i in range(9) if board[i] == ""]
    return random.choice(available) if available else None

# --- Functions ---
def check_winner():
    wins = [(0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6)]
    for a,b,c in wins:
        if board[a] == board[b] == board[c] != "":
            return board[a]
    if "" not in board:
        return "Draw"
    return None

def show_winner_overlay(winner):
    if winner == "Draw":
        winner_overlay.config(text="🤝 It's a Draw!", fg='#95a5a6')
    else:
        symbol = "🎉" if winner == "X" else "🤖"
        player_name = "You" if winner == "X" else "AI"
        color = '#e74c3c' if winner == 'X' else '#f39c12'
        winner_overlay.config(text=f"{symbol} {player_name} ({winner}) Wins!", fg=color)
    winner_overlay.place(relx=0.5, rely=0.4, anchor='center')
    restart_overlay_btn.place(relx=0.5, rely=0.55, anchor='center')
    reset_button.grid_remove()

def reset_game():
    global board, player, game_active
    board = [""] * 9
    player = "X"
    game_active = True
    winner_overlay.place_forget()
    restart_overlay_btn.place_forget()
    reset_button.grid(row=5, column=0, columnspan=3, pady=15)
    for btn in buttons:
        btn.config(text="", bg='#34495e', fg='white')
    status_label.config(text="Your Turn (X)", fg='#3498db')

def update_button_color(btn, symbol):
    if symbol == "X":
        btn.config(fg='#e74c3c', bg='#ecf0f1')
    else:
        btn.config(fg='#f39c12', bg='#ecf0f1')

def click_button(i):
    global player, game_active
    if board[i] == "" and game_active and player == "X":
        board[i] = player
        buttons[i].config(text=player)
        update_button_color(buttons[i], player)

        winner = check_winner()
        if winner:
            game_active = False
            show_winner_overlay(winner)
            return

        # AI turn
        player = "O"
        status_label.config(text="AI is thinking...", fg='#f39c12')
        root.after(500, ai_turn)

def ai_turn():
    global player, game_active
    if game_active:
        move = ai_move()
        if move is not None:
            board[move] = "O"
            buttons[move].config(text="O")
            update_button_color(buttons[move], "O")

            winner = check_winner()
            if winner:
                game_active = False
                show_winner_overlay(winner)
                return

            player = "X"
            status_label.config(text="Your Turn (X)", fg='#3498db')

# --- Create UI ---
title_label = tk.Label(root, text="🎮 Tic Tac Toe AI", font=("Arial", 18, "bold"), 
                      bg='#2c3e50', fg='#ecf0f1')
title_label.grid(row=0, column=0, columnspan=3, pady=10)

buttons = []
for i in range(9):
    btn = tk.Button(root, text="", width=6, height=3, font=("Arial", 24, "bold"),
                    bg='#34495e', fg='white', relief='raised', bd=3,
                    command=lambda i=i: click_button(i))
    btn.grid(row=i//3+1, column=i%3, padx=5, pady=5)
    buttons.append(btn)

status_label = tk.Label(root, text="Your Turn (X)", font=("Arial", 16), 
                       bg='#2c3e50', fg='#3498db')
status_label.grid(row=4, column=0, columnspan=3, pady=10)

reset_button = tk.Button(root, text="🔄 New Game", font=("Arial", 12, "bold"),
                        bg='#27ae60', fg='white', relief='raised', bd=2,
                        command=reset_game)
reset_button.grid(row=5, column=0, columnspan=3, pady=15)

# Winner overlay (hidden initially)
winner_overlay = tk.Label(root, text="", font=("Arial", 20, "bold"),
                         bg='#2c3e50', relief='solid', bd=2, padx=20, pady=10)

# Restart button for winner overlay (hidden initially)
restart_overlay_btn = tk.Button(root, text="🔄 Play Again", font=("Arial", 12, "bold"),
                               bg='#e67e22', fg='white', relief='raised', bd=2,
                               command=reset_game)

root.mainloop()


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

&lt;/div&gt;



&lt;p&gt;Run this code (click Run ▶️ at the top or press F5) once to make sure it works fine.&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;Step 4: Installing Amazon Q in VS Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before starting your project, you need the Amazon Q Developer extension in VS Code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open VS Code.&lt;/li&gt;
&lt;li&gt;Go to the Extensions panel (click the square icon on the left sidebar or press Ctrl + Shift + X).
3.In the search bar, type:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Amazon Q Developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Click Install on the extension.&lt;/li&gt;
&lt;li&gt;After installation, sign in using your AWS Builder ID (or create one if you don’t have it).
6.You’ll now see the Amazon Q panel on the side of VS Code.
This is where you can:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Chat with Amazon Q.&lt;/li&gt;
&lt;li&gt;Generate or improve code.&lt;/li&gt;
&lt;li&gt;Ask for explanations of your Python scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Now your VS Code is ready to use Amazon Q for interactive AI coding.&lt;/p&gt;

&lt;p&gt;🤖 &lt;strong&gt;Step 4: Using Amazon Q to Improve the Game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that your base version works, let’s make it more advanced using Amazon Q.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Inside VS Code:&lt;br&gt;
Open Amazon Q Chat (Ctrl + Shift + P → Amazon Q: Chat).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask questions like:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;“Convert this Tic-Tac-Toe game to GUI using Tkinter.”&lt;/li&gt;
&lt;li&gt;“Add AI logic so the computer can play automatically.”&lt;/li&gt;
&lt;li&gt;“Refactor this into object-oriented Python code.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amazon Q will generate improved snippets or even a full new version of your code.&lt;br&gt;
You can directly replace or merge suggestions.&lt;/p&gt;

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

&lt;p&gt;Amazon Q Developer is a promising tool from AWS that brings AI into your coding workflow.&lt;br&gt;
While it may seem a little complex to set up, it offers great educational value — especially for those who plan to grow their skills in the AWS ecosystem.&lt;/p&gt;

&lt;p&gt;Starting with a small project like Tic-Tac-Toe is a fun and practical way to understand how AI-assisted coding can help you improve your logic, refactor code, and experiment confidently.&lt;/p&gt;

&lt;p&gt;Keep exploring — and maybe your next project could integrate AWS Lambda or DynamoDB with your game! ☁️🎮&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Thank You for Reading 🙌🙌🙌&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>aws</category>
      <category>awschallenge</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Thu, 02 Oct 2025 02:34:28 +0000</pubDate>
      <link>https://dev.to/naamiahmed/-251d</link>
      <guid>https://dev.to/naamiahmed/-251d</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/naamiahmed" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F2461034%2Fc98ff73b-cf88-4fb8-8711-fa19e86e846b.jpeg" alt="naamiahmed"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/naamiahmed/become-an-aws-cloud-club-captain-sri-lanka-2025-23nb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Become an AWS Cloud Club Captain – Sri Lanka 2025&lt;/h2&gt;
      &lt;h3&gt;Naami Ahmed ・ Oct 1&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Become an AWS Cloud Club Captain – Sri Lanka 2025</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Wed, 01 Oct 2025 13:33:53 +0000</pubDate>
      <link>https://dev.to/naamiahmed/become-an-aws-cloud-club-captain-sri-lanka-2025-23nb</link>
      <guid>https://dev.to/naamiahmed/become-an-aws-cloud-club-captain-sri-lanka-2025-23nb</guid>
      <description>&lt;p&gt;Cloud is shaping the future of technology, and students around the world are stepping up to lead this change. The AWS Cloud Club Captain program is an initiative by Amazon Web Services that empowers students to build and grow their own tech communities. As a Captain, you don’t just learn cloud — you share knowledge, organize events, and become the face of AWS on your campus.&lt;/p&gt;

&lt;p&gt;For students in Sri Lanka, this is a chance to stand out as a leader in the growing cloud ecosystem and open doors to new opportunities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📅 Application Deadline&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application deadline has been extended to October 6th, 2025. If you are passionate about technology, leadership, and community building, now is the best time to apply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who Can Apply?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To be eligible for the program, you must be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A university or institute student who is currently enrolled.&lt;/li&gt;
&lt;li&gt;Someone who will graduate after October 2026.&lt;/li&gt;
&lt;li&gt;Interested in leadership, community building, and cloud technologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The program is designed for students who want to go beyond personal learning and create a bigger impact by supporting peers and driving cloud adoption on campus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Become a Cloud Club Captain?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being a Captain is more than just a title. It’s an opportunity to grow your technical and leadership skills while connecting with a global network of students and professionals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some of the key benefits include&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Certification Vouchers: Captains receive exam vouchers to pursue industry-recognized AWS certifications.&lt;/li&gt;
&lt;li&gt;AWS Credits: Hands-on learning is supported through credits to explore AWS services.&lt;/li&gt;
&lt;li&gt;Recognition Badges: Captains can earn Bronze, Silver, Gold, and Platinum badges as they progress and achieve milestones.&lt;/li&gt;
&lt;li&gt;Networking Opportunities: Gain access to AWS experts, professionals, and other captains worldwide.&lt;/li&gt;
&lt;li&gt;Leadership Development: From organizing workshops to leading hackathons, you will build skills that strengthen both your resume and confidence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The value of this program is not just in the resources, but in the real-world leadership experience and the strong community connections you build along the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application Process&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is designed to help AWS understand your passion, leadership potential, and vision. It consists of three main parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Written Application&lt;br&gt;
You will be asked to answer questions about your background, leadership journey, and ideas for growing a student cloud community. This is your chance to share your story and vision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Video Submission&lt;br&gt;
A short (2–3 minute) video introducing yourself and explaining why you want to become a Cloud Club Captain. Keep it natural, authentic, and enthusiastic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faculty Support Letter&lt;br&gt;
A recommendation letter from a faculty member is required to confirm your suitability and support your application.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After preparing these, you can submit them directly through the AWS Cloud Club Captain application portal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters for Sri Lanka&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sri Lanka’s tech landscape is growing rapidly, and cloud skills are in high demand. Programs like AWS Cloud Clubs give students the platform to gain skills, share knowledge, and contribute to the country’s future workforce.&lt;/p&gt;

&lt;p&gt;Captains play a vital role in this ecosystem — bringing together students, organizing events, and creating opportunities that go beyond the classroom. By stepping into this role, you are not only helping yourself, but also shaping the next generation of cloud leaders in Sri Lanka.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re a student graduating after October 2026, this is your opportunity to take the lead and make an impact. The AWS Cloud Club Captain program combines learning, leadership, and community in one platform.&lt;/p&gt;

&lt;p&gt;📅 Deadline: October 6th, 2025&lt;br&gt;
📹 Watch my application video here: &lt;a href="https://youtu.be/VbGNlV9Mqog?si=Zfgv627rbSNIq6qy" rel="noopener noreferrer"&gt;https://youtu.be/VbGNlV9Mqog?si=Zfgv627rbSNIq6qy&lt;/a&gt;&lt;br&gt;
🔗 Apply here: &lt;a href="https://pulse.aws/application/TAWKU3CJ?p=0" rel="noopener noreferrer"&gt;https://pulse.aws/application/TAWKU3CJ?p=0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s build the future of cloud in Sri Lanka, together. 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to Host a Static Website on AWS S3 — Complete Step-by-Step Guide</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Tue, 01 Jul 2025 13:30:58 +0000</pubDate>
      <link>https://dev.to/naamiahmed/how-to-host-a-static-website-on-aws-s3-complete-step-by-step-guide-4cgf</link>
      <guid>https://dev.to/naamiahmed/how-to-host-a-static-website-on-aws-s3-complete-step-by-step-guide-4cgf</guid>
      <description>&lt;p&gt;Hosting a website no longer requires a complex server setup or expensive infrastructure. If you’re looking for a quick, reliable, and low-cost way to publish your HTML/CSS/JavaScript site, then Amazon S3 is your best friend. In this article, I’ll guide you through the complete process of hosting a static website on AWS S3, and we’ll also include a live demo at each key step to make things easy to follow.&lt;/p&gt;

&lt;p&gt;** What is Amazon S3?**&lt;br&gt;
Amazon Simple Storage Service (S3) is a highly scalable object storage service offered by AWS. It allows you to store and retrieve any amount of data from anywhere on the internet. From backups and application data to static websites and image hosting, S3 is a powerful tool used by developers and businesses worldwide.&lt;/p&gt;

&lt;p&gt;With built-in redundancy, versioning, encryption, and fine-grained access control, S3 is more than just a file storage system — it’s an enterprise-level solution. For this article, we’ll focus on one of its most practical features: hosting static websites.&lt;/p&gt;

&lt;p&gt;🌍** Why Use S3 to Host a Website?**&lt;br&gt;
There are many reasons why S3 is perfect for hosting static sites:&lt;/p&gt;

&lt;p&gt;No server management: You don’t need to worry about Apache, Nginx, or scaling.&lt;br&gt;
Highly reliable and durable: 99.999999999% durability ensures your files are safe.&lt;br&gt;
Cheap or even free (with the AWS Free Tier).&lt;br&gt;
Fast performance, especially when combined with AWS CloudFront (CDN).&lt;br&gt;
Perfect for portfolios, landing pages, resumes, and documentation websites.&lt;/p&gt;

&lt;p&gt;🛠️ Prerequisites&lt;br&gt;
Before you begin, make sure you have the following:&lt;/p&gt;

&lt;p&gt;A working AWS account (the free tier is sufficient).&lt;br&gt;
A static website ready to upload. This could be your personal portfolio or a sample HTML/CSS project.&lt;br&gt;
IAM (Identity and Access Management) user credentials — avoid using the root account for safety.&lt;br&gt;
🧭 Overview: 5 Key Steps to Host a Website on S3&lt;br&gt;
Here’s what we’ll be doing in this tutorial:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create an S3 bucket&lt;/li&gt;
&lt;li&gt;Upload the website files&lt;/li&gt;
&lt;li&gt;Enable public access&lt;/li&gt;
&lt;li&gt;Set a bucket policy&lt;/li&gt;
&lt;li&gt;Enable static website hosting
Let’s dive in.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;📦 Step 1: Create an S3 Bucket&lt;/strong&gt;&lt;br&gt;
After logging in to your AWS Management Console, search for S3 using the top search bar. Click on the S3 service and then click the “Create bucket” button.&lt;/p&gt;

&lt;p&gt;You’ll be prompted to enter a unique bucket name (bucket names must be globally unique). Choose your preferred AWS region (like Asia Pacific — Mumbai) and leave most settings at their default.&lt;/p&gt;

&lt;p&gt;Click Create bucket, and you’re done! You’ve just created a cloud storage container that will hold your website files.&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%2Flxqksdhh3jm23n92htn0.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%2Flxqksdhh3jm23n92htn0.png" alt=" " width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📁 Step 2: Upload Website Files&lt;/strong&gt;&lt;br&gt;
Next, open your newly created bucket and click on the “Upload” button. You’ll need to upload your static website files — typically index.html, along with folders for CSS, images, and JavaScript.&lt;/p&gt;

&lt;p&gt;It’s important to keep your folder structure consistent so your site behaves the same after upload. Start by uploading the root-level files (like index.html), then add folders like /css, /img, or /js.&lt;/p&gt;

&lt;p&gt;Once all files and folders are selected, click Upload and wait until the upload succeeds.&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%2Fb3a6bpgvdm6tc0ko6fsd.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%2Fb3a6bpgvdm6tc0ko6fsd.png" alt=" " width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔓 Step 3: Enable Public Access&lt;/strong&gt;&lt;br&gt;
By default, all files and buckets in S3 are private. To allow users to access your website, you must enable public access to the bucket.&lt;/p&gt;

&lt;p&gt;To do this, go to the Permissions tab of your bucket. Click Edit under “Block public access,” uncheck “Block all public access,” and then confirm your change. AWS may prompt you to type a confirmation statement to avoid accidental misconfiguration.&lt;/p&gt;

&lt;p&gt;Once this is saved, your bucket is now publicly accessible — but we still need to set permissions for each file. That’s where the next step comes in.&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%2Fn2juwrxcv1ot250cml06.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%2Fn2juwrxcv1ot250cml06.png" alt=" " width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Step 4: Set a Bucket Policy&lt;/strong&gt;&lt;br&gt;
Now let’s configure a bucket policy — a JSON-based configuration that defines who can access your bucket and what actions they can perform.&lt;/p&gt;

&lt;p&gt;In the Permissions tab, scroll down to Bucket policy, click Edit, and paste this policy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure to replace "your-bucket-name" with your actual bucket name. This policy gives the public read-only access to all files in your bucket — exactly what we need for a static website.&lt;/p&gt;

&lt;p&gt;Save the policy to apply the settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 Step 5: Enable Static Website Hosting&lt;/strong&gt;&lt;br&gt;
Now for the final touch — let’s tell AWS to serve this bucket as a website.&lt;/p&gt;

&lt;p&gt;Go to the Properties tab of your bucket and scroll down to find Static website hosting. Click Edit, then enable the setting.&lt;/p&gt;

&lt;p&gt;You’ll need to provide the name of your entry file, usually index.html. You can leave the error document field empty or add error.html if your site has one.&lt;/p&gt;

&lt;p&gt;Click Save changes, and AWS will generate a public URL for your website in the format:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ttp://your-bucket-name.s3-website.region.amazonaws.com/&lt;/code&gt;&lt;br&gt;
Open this link in your browser — and voila! Your website is live and accessible to the world.&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%2Fubrya122i3qkyz3bnmxv.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%2Fubrya122i3qkyz3bnmxv.png" alt=" " width="800" height="246"&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%2Flwn4gu1xea0bbsvbtl8o.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%2Flwn4gu1xea0bbsvbtl8o.png" alt=" " width="800" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 Final Result&lt;/strong&gt;&lt;br&gt;
At this point, you’ve completed all the essential steps to host a website on Amazon S3:&lt;/p&gt;

&lt;p&gt;You created a secure bucket&lt;br&gt;
Uploaded all required files&lt;br&gt;
Set public access and policies&lt;br&gt;
Enabled static website hosting&lt;br&gt;
Received a live link to your project&lt;br&gt;
You can now share this link with clients, friends, or on your resume. And next time someone asks how to host a simple website, you’ll be ready!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Pro Tips (Optional but Helpful)&lt;/strong&gt;&lt;br&gt;
Use IAM roles instead of root access for better security and monitoring.&lt;br&gt;
Enable versioning on your bucket to track changes and recover deleted files.&lt;br&gt;
Connect a custom domain via Route 53, and add CloudFront for global speed boost.&lt;br&gt;
If needed, create CI/CD pipelines to auto-upload files using GitHub Actions or AWS CLI.&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%2F15lm4v9rb4vddx6x6owl.jpeg" 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%2F15lm4v9rb4vddx6x6owl.jpeg" alt=" " width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>⚠️ What Happens to Your AWS RDS Instances After Account Suspension? Author: Naami Ahmed</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Fri, 27 Jun 2025 04:38:29 +0000</pubDate>
      <link>https://dev.to/naamiahmed/what-happens-to-your-aws-rds-instances-after-account-suspensionauthor-naami-ahmed-456c</link>
      <guid>https://dev.to/naamiahmed/what-happens-to-your-aws-rds-instances-after-account-suspensionauthor-naami-ahmed-456c</guid>
      <description>&lt;p&gt;Have you ever wondered what happens to your AWS resources if your account gets suspended—especially your RDS databases?&lt;/p&gt;

&lt;p&gt;Recently, I encountered a situation where an AWS account was suspended due to billing issues. After reactivation, some services were still there—like EC2 and VPC—but surprisingly, the RDS database instances were missing. This led me to investigate why RDS behaves differently from other services during suspension.&lt;/p&gt;

&lt;p&gt;In this blog post, I’ll explain what I learned, how RDS is treated differently, and what you can do to protect your data.&lt;/p&gt;

&lt;p&gt;🔍 AWS Account Suspension: What Actually Happens?&lt;br&gt;
When AWS suspends your account—usually because of unpaid bills—it restricts your access to most services. However, not all resources behave the same way.&lt;/p&gt;

&lt;p&gt;Let’s break it down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ EC2 and VPC Resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2 instances are stopped, not terminated.&lt;/li&gt;
&lt;li&gt;VPC configurations (like subnets, route tables, security groups) remain intact.&lt;/li&gt;
&lt;li&gt;After reactivating the account, EC2 instances can be restarted manually—or automatically if configured.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So far, so good.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚠️ RDS Resources (The Catch)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon RDS (Relational Database Service) behaves differently from EC2. Here’s what I found:&lt;/li&gt;
&lt;li&gt;RDS is fully managed, meaning AWS handles the infrastructure, maintenance, and operations.&lt;/li&gt;
&lt;li&gt;During account suspension, AWS may automatically delete RDS instances, typically within 3–7 days of the suspension.&lt;/li&gt;
&lt;li&gt;There’s no fixed public retention policy from AWS for RDS after suspension.&lt;/li&gt;
&lt;li&gt;AWS might delete these instances earlier to free up storage and reduce management cost, since databases require persistent storage and monitoring.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This behavior can lead to permanent data loss if you’re not prepared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💾 Can You Recover the Deleted RDS Database?&lt;/strong&gt;&lt;br&gt;
Yes—but only if you had backups. There are two ways this could save you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Automated Backups: If you enabled automated backups, AWS retains daily backups for a defined retention period (usually 7–35 days).&lt;/li&gt;
&lt;li&gt;Manual Snapshots: If you manually created DB snapshots, you can restore from them any time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When you restore from a backup or snapshot, a new RDS instance is created, and that means:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;➡️ The database endpoint (URL) changes.&lt;br&gt;
➡️ All connected apps must be updated with the new endpoint.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you don’t have any backups or snapshots? Unfortunately, there’s no way to recover the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔐 Best Practices to Avoid RDS Surprises&lt;/strong&gt;&lt;br&gt;
To stay safe and avoid losing your databases, follow these tips:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Enable Automated Backups&lt;/strong&gt;&lt;br&gt;
Make sure every RDS instance has automated backups turned on with a suitable retention period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Take Regular Manual Snapshots&lt;/strong&gt;&lt;br&gt;
Automated backups can disappear after account issues. Snapshots are manual and can be kept longer—even after deletion of the instance.&lt;/p&gt;

&lt;p&gt;**3. Use CloudWatch Billing Alerts&lt;br&gt;
**Set up AWS Billing alerts to get notified when your usage charges increase or when you’re at risk of suspension.&lt;/p&gt;

&lt;p&gt;**4. Keep a Recovery Checklist&lt;br&gt;
**When recovering from account suspension or restoring a DB:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm that backups exist.&lt;/li&gt;
&lt;li&gt;Note the new endpoint.&lt;/li&gt;
&lt;li&gt;Update connection strings in your applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Document Your Incident Recovery Plan&lt;/strong&gt;&lt;br&gt;
Have a disaster recovery plan ready—especially if your app depends heavily on RDS. A simple document can save hours of troubleshooting.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Nginx Configuration on AWS EC2 Deployment</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Sun, 13 Apr 2025 15:42:56 +0000</pubDate>
      <link>https://dev.to/naamiahmed/nginx-configuration-on-aws-ec2-deployment-4fbd</link>
      <guid>https://dev.to/naamiahmed/nginx-configuration-on-aws-ec2-deployment-4fbd</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cjflma7habx3si6ef3q.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%2F9cjflma7habx3si6ef3q.png" alt=" " width="800" height="308"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;This guide explains how to configure an EC2 instance, install Nginx, and set up auto deployment using GitHub Actions for a UAT environment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ 1. Create EC2 Instance&lt;/strong&gt;&lt;br&gt;
Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to AWS Console → Go to EC2 Dashboard.&lt;/li&gt;
&lt;li&gt;Launch Instance → Choose Amazon Linux 2 as your OS.&lt;/li&gt;
&lt;li&gt;Configure basic settings like name, instance type, and network settings.&lt;/li&gt;
&lt;li&gt;Create/Use Key Pair → This key will be used later for SSH connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;In the Security Group, allow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Port 22 (SSH): For connecting remotely to EC2.&lt;/li&gt;
&lt;li&gt;Port 80 (HTTP): For regular web traffic.&lt;/li&gt;
&lt;li&gt;Port 443 (HTTPS): For secure (SSL) web traffic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📌 Explanation:&lt;/strong&gt;&lt;br&gt;
Security groups act like a firewall. Opening ports allows your instance to communicate with the internet properly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔐 2. Connect to EC2 via SSH&lt;/strong&gt;&lt;br&gt;
Windows Users (PowerShell using OpenSSH):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i "path/to/your-key.pem" ec2-user@&amp;lt;your-ec2-public-ip&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Explanation:&lt;/strong&gt;&lt;br&gt;
This command connects your local computer to the EC2 instance using the .pem key. You need this to log in securely.&lt;/p&gt;

&lt;p&gt;⚙️ 3. Install and Configure Nginx&lt;br&gt;
For Amazon Linux 2:&lt;br&gt;
&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 enable nginx1
sudo yum install nginx -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Ubuntu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install nginx -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start nginx
sudo systemctl enable nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🧪 Check Nginx:&lt;/strong&gt;&lt;br&gt;
Open a browser and visit &lt;code&gt;http://&amp;lt;your-ec2-public-ip&amp;gt;&lt;/code&gt; – You should see the default Nginx welcome page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 Explanation:&lt;/strong&gt;&lt;br&gt;
Nginx is a web server used to serve your frontend app. We’re installing and starting it here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ 4. Configure Nginx to Serve Your App&lt;/strong&gt;&lt;br&gt;
Create New Config File:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/nginx/conf.d/app-proxy.conf

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

&lt;/div&gt;



&lt;p&gt;Sample Config (Generic):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name your-subdomain.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name your-subdomain.example.com;
    root /usr/share/nginx/html/your-app-folder;
    index index.html;

    location / {
        try_files $uri /index.html;
    }

    error_page 404 /404.html;

    ssl_certificate /etc/letsencrypt/live/your-domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain/privkey.pem;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First block: Redirects HTTP to HTTPS.&lt;/li&gt;
&lt;li&gt;Second block: Serves the app using SSL (HTTPS).&lt;/li&gt;
&lt;li&gt;root: The directory where your built frontend app files are copied.&lt;/li&gt;
&lt;li&gt;try_files &lt;code&gt;$uri /index.html&lt;/code&gt;: This is for frontend routing support (like React or Angular apps).&lt;/li&gt;
&lt;li&gt;SSL certs are from Let's Encrypt (set up using Certbot separately).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Test and Restart Nginx:&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;sudo nginx -t
sudo systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🚀 5. Auto Deployment Using GitHub Actions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In your GitHub repo, create folder: &lt;code&gt;.github/workflows/&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Inside it, add a file: deploy-uat.yml&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Actions Example:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Deploy Frontend App to EC2 with Nginx

on:
  push:
    branches:
      - deploy

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 20

      - name: Install Dependencies
        run: npm ci --legacy-peer-deps

      - name: Build App
        env:
          CI: false
        run: |
          npm run build
          ls -l build/

      - name: Archive Build Folder
        run: tar -czf build.tar.gz -C build .

      - name: Deploy to EC2
        run: |
          echo "${{ secrets.SSH_PRIVATE_KEY }}" &amp;gt; my-key
          chmod 600 my-key
          scp -i my-key -o StrictHostKeyChecking=no build.tar.gz ec2-user@&amp;lt;EC2_PUBLIC_IP&amp;gt;:/usr/share/nginx/html/your-app-folder/

      - name: Extract Build on EC2
        run: |
          ssh -i my-key -o StrictHostKeyChecking=no ec2-user@&amp;lt;EC2_PUBLIC_IP&amp;gt; &amp;lt;&amp;lt; EOF
            cd /usr/share/nginx/html/your-app-folder/
            if [ -f build.tar.gz ]; then
              tar -xzf build.tar.gz
              rm build.tar.gz
              echo "Deployment successful!"
            else
              echo "Error: build.tar.gz not found!"
              exit 1
            fi
          EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trigger: Runs when you push to the deploy branch.&lt;/li&gt;
&lt;li&gt;Build: Installs dependencies and builds the frontend app.&lt;/li&gt;
&lt;li&gt;Archive: Compresses the build files.&lt;/li&gt;
&lt;li&gt;Upload: Sends the files to the EC2 server using scp.&lt;/li&gt;
&lt;li&gt;Extract: Unzips files on EC2 to serve them with Nginx.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔐 &lt;strong&gt;Use GitHub Secrets:&lt;/strong&gt;&lt;br&gt;
To avoid hardcoding private keys, store them as GitHub repository secrets like &lt;code&gt;SSH_PRIVATE_KEY&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧪 6. Test Auto Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make a small change in your frontend code.&lt;br&gt;
Push to deploy branch.&lt;br&gt;
Check GitHub → Actions tab to monitor the workflow.&lt;br&gt;
Visit your subdomain or EC2 public IP to confirm the changes are live.&lt;/p&gt;

</description>
      <category>nginx</category>
      <category>webtesting</category>
      <category>aws</category>
      <category>github</category>
    </item>
    <item>
      <title>Automating AWS RDS Management Using IAM, Lambda, CloudWatch, and EventBridge</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Sun, 09 Mar 2025 08:30:29 +0000</pubDate>
      <link>https://dev.to/naamiahmed/automating-aws-rds-management-using-iam-lambda-cloudwatch-and-eventbridge-2l47</link>
      <guid>https://dev.to/naamiahmed/automating-aws-rds-management-using-iam-lambda-cloudwatch-and-eventbridge-2l47</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k6u9pl0th66yqhsn9cg.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%2F0k6u9pl0th66yqhsn9cg.png" alt="WorkFlow " width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;In cloud computing, cost and resource optimization are critical for efficient infrastructure management. AWS provides various services that help automate database management, enhance security, and ensure high availability. This article explores how to automate Amazon RDS instance management using AWS IAM, Lambda, CloudWatch, and EventBridge. We will walk through a common scenario, benefits, and implementation steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Common Scenario&lt;/strong&gt;: Managing RDS Instance Availability
&lt;/h2&gt;

&lt;p&gt;Many organizations use Amazon RDS for databases, but keeping instances running 24/7 can be costly. To optimize costs, businesses prefer running their RDS instances only during business hours. This scenario requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Starting RDS at 6 AM IST&lt;/strong&gt; (before business hours begin).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stopping RDS at 6 PM IST&lt;/strong&gt; (after business hours end).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automating the process&lt;/strong&gt; to avoid manual intervention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring performance and logs&lt;/strong&gt; to track execution and troubleshoot issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Workflow
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. IAM (Identity and Access Management)&lt;/strong&gt;IAM is used to define permissions for the Lambda function to start and stop RDS instances securely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Lambda (Serverless Compute Function)&lt;/strong&gt;AWS Lambda helps execute the function that starts and stops RDS instances based on a predefined schedule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. CloudWatch (Monitoring and Logging)&lt;/strong&gt;CloudWatch is used to capture logs, monitor execution, and track failures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. EventBridge (Automated Scheduling)&lt;/strong&gt;Amazon EventBridge (formerly CloudWatch Events) triggers the Lambda function based on a cron schedule, ensuring automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow: Automating RDS Start and Stop
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create an IAM Role for Lambda&lt;/strong&gt; with permissions to start and stop RDS instances.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write a Lambda Function&lt;/strong&gt; to check the time and perform the necessary action (start/stop RDS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set Up EventBridge Rules&lt;/strong&gt; to schedule the function execution (6 AM IST &amp;amp; 6 PM IST).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor Execution Logs using CloudWatch&lt;/strong&gt; to ensure proper functioning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step-by-Step Implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create an IAM Role for Lambda&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Go to the AWS IAM Console.&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; Create a new role with the following policies&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; AmazonRDSFullAccess (or custom policy with StartDBInstance &amp;amp; StopDBInstance permissions).&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; AWSLambdaBasicExecutionRole (for CloudWatch logging)&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; Attach this role to the Lambda function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Write the Lambda Function&lt;/strong&gt;&lt;br&gt;
This function will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetch the current time in IST.&lt;/li&gt;
&lt;li&gt;Determine if it’s a weekday and within working hours.&lt;/li&gt;
&lt;li&gt;Start or stop the RDS instance accordingly
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3
import datetime
from dateutil import tz
import logging
import os
# Configure logging
logging.basicConfig(level=logging.INFO)
# AWS RDS Client
region = os.getenv("AWS_REGION", "us-east-1")  # Default to 'us-east-1' if not set
rds = boto3.client('rds', region_name=region)
# Configurable Tags (Default: Empty Dict)
REQUIRED_TAGS = {
    os.getenv("TAG_KEY", "Environment"): os.getenv("TAG_VALUE", "Production")
}
# Configurable Timezone (Default: UTC)
TIMEZONE = tz.gettz(os.getenv("TIMEZONE", "UTC"))
def get_tagged_rds_instances():
    """Fetches RDS instances with required tags."""
    try:
        instances = rds.describe_db_instances()['DBInstances']
        tagged_instances = []
for db in instances:
            tags = rds.list_tags_for_resource(ResourceName=db['DBInstanceArn'])['TagList']
            tag_dict = {tag['Key']: tag['Value'] for tag in tags}
# Check if all required tags match
            if all(REQUIRED_TAGS[key] == tag_dict.get(key, "") for key in REQUIRED_TAGS):
                tagged_instances.append(db['DBInstanceIdentifier'])
return tagged_instances
    except Exception as e:
        logging.error(f"Error fetching RDS instances: {str(e)}")
        return []
def lambda_handler(event, context):
    """Lambda function to start/stop RDS based on time and day."""
    now = datetime.datetime.now(tz=TIMEZONE)
    current_hour = now.hour
    current_day = now.weekday()
tagged_rds_instances = get_tagged_rds_instances()
for db_identifier in tagged_rds_instances:
        if 0 &amp;lt;= current_day &amp;lt;= 4:  # Weekdays (Monday-Friday)
            if 6 &amp;lt;= current_hour &amp;lt; 18:
                logging.info(f"Starting RDS {db_identifier}...")
                rds.start_db_instance(DBInstanceIdentifier=db_identifier)
            else:
                logging.info(f"Stopping RDS {db_identifier}...")
                rds.stop_db_instance(DBInstanceIdentifier=db_identifier)
        else:  # Weekends (Saturday-Sunday)
            logging.info(f"Stopping RDS {db_identifier} for the weekend...")
            rds.stop_db_instance(DBInstanceIdentifier=db_identifier)
return "Lambda execution completed."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Configure EventBridge Rules&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Amazon EventBridge.&lt;/li&gt;
&lt;li&gt;Create two rules:&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start RDS at 6 AM IST:&lt;/strong&gt; cron(30 0 * * ? *) (UTC → 6:30 AM IST)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop RDS at 6 PM IST:&lt;/strong&gt; cron(30 12 * * ? *) (UTC → 6:30 PM IST)&lt;/li&gt;
&lt;li&gt;Set the target as the Lambda function.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Monitor Execution Using CloudWatch&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to CloudWatch Logs.&lt;/li&gt;
&lt;li&gt;Navigate to the log group for your Lambda function.&lt;/li&gt;
&lt;li&gt;Check execution details, errors, or any unexpected behaviors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Benefits of This Approach&lt;/strong&gt;&lt;br&gt;
✅ Cost Optimization — RDS instances run only when needed, reducing AWS costs.&lt;br&gt;
✅ Automation — Eliminates manual intervention and improves efficiency.&lt;br&gt;
✅ Security &amp;amp; Access Control — IAM roles restrict unnecessary access.&lt;br&gt;
✅ Monitoring &amp;amp; Logging — CloudWatch ensures visibility into function execution.&lt;br&gt;
✅ Scalability — Easily extend this setup for multiple RDS instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Automating Amazon RDS using IAM, Lambda, CloudWatch, and EventBridge is a powerful way to optimize cloud resources efficiently. By implementing this workflow, businesses can reduce costs, improve reliability, and maintain secure access control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This setup can be further enhanced by integrating SNS notifications for alerts or using AWS Systems Manager for more complex automation tasks.&lt;/strong&gt;&lt;/p&gt;

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

</description>
      <category>aws</category>
      <category>awsrds</category>
      <category>costoptimize</category>
      <category>programming</category>
    </item>
    <item>
      <title>AWS EC2 (Elastic Compute Cloud)</title>
      <dc:creator>Naami Ahmed</dc:creator>
      <pubDate>Sun, 05 Jan 2025 04:37:33 +0000</pubDate>
      <link>https://dev.to/naamiahmed/aws-ec2-elastic-compute-cloud-ka</link>
      <guid>https://dev.to/naamiahmed/aws-ec2-elastic-compute-cloud-ka</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Amazon EC2 (Elastic Compute Cloud) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers by offering scalable, flexible, and cost-effective compute resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview of Amazon EC2&lt;/strong&gt;&lt;br&gt;
Elastic Compute Capacity: EC2 allows you to scale your compute capacity up or down based on your needs.&lt;br&gt;
Instances: Virtual servers for running applications. Instances can be launched in multiple regions and availability zones to ensure high availability.&lt;br&gt;
Instance Types: EC2 offers a variety of instance types optimized for different purposes, such as general-purpose, compute-optimized, memory-optimized, storage-optimized, and GPU instances.&lt;br&gt;
Pricing Models:&lt;/p&gt;

&lt;p&gt;On-Demand Instances: Pay for compute capacity by the hour or second with no long-term commitments.&lt;br&gt;
Reserved Instances: Purchase instances for a significant discount compared to On-Demand pricing.&lt;br&gt;
Spot Instances: Bid on spare EC2 capacity and run instances for even lower costs.&lt;br&gt;
Savings Plans: Flexible pricing model offering lower prices on EC2 usage in exchange for a commitment to a consistent amount of usage (measured in $/hour) for a 1- or 3-year term.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of Amazon EC2&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Scalability:&lt;/strong&gt; EC2 allows you to automatically scale your infrastructure up or down based on demand using Auto Scaling.&lt;br&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Choose from a wide range of instance types to fit different use cases, ensuring optimal performance for your applications.&lt;br&gt;
&lt;strong&gt;Reliability:&lt;/strong&gt; EC2 instances are hosted in multiple locations worldwide, providing high availability and fault tolerance.&lt;br&gt;
&lt;strong&gt;Security:&lt;/strong&gt; EC2 integrates with AWS Identity and Access Management (IAM) to provide robust security features such as security groups, key pairs, and IAM roles.&lt;br&gt;
&lt;strong&gt;Networking:&lt;/strong&gt; Options include Virtual Private Cloud (VPC) for isolated networks, Elastic IP addresses for static IPs, and Elastic Load Balancing for distributing traffic across instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases for Amazon EC2&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Web Hosting:&lt;/strong&gt; Run scalable and reliable web applications with the ability to handle varying levels of traffic.&lt;br&gt;
&lt;strong&gt;Big Data:&lt;/strong&gt; Process and analyze large datasets using EC2 instances optimized for high performance.&lt;br&gt;
&lt;strong&gt;Development and Testing:&lt;/strong&gt; Quickly create and scale environments for development and testing purposes.&lt;br&gt;
&lt;strong&gt;Machine Learning:&lt;/strong&gt; Train and deploy machine learning models on powerful GPU instances.&lt;br&gt;
Gaming: Host gaming servers with low latency and high availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Amazon EC2&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Cost-Effective:&lt;/strong&gt; Only pay for the compute capacity you actually use, with options to save costs through Reserved Instances and Spot Instances.&lt;br&gt;
&lt;strong&gt;High Performance:&lt;/strong&gt; Choose from a variety of instance types optimized for specific workloads to ensure optimal performance.&lt;br&gt;
&lt;strong&gt;Global Reach:&lt;/strong&gt; Deploy instances in multiple regions worldwide, bringing your applications closer to your users.&lt;br&gt;
&lt;strong&gt;Secure:&lt;/strong&gt; Built-in security features and compliance certifications ensure your data and applications are protected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Amazon EC2 provides scalable, flexible, and cost-effective compute capacity in the cloud. By leveraging its features and following best practices, you can effectively manage and optimize your cloud infrastructure, ensuring high performance and security for your applications.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
