<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Wakeup Flower</title>
    <description>The latest articles on Forem by Wakeup Flower (@wakeup_flower_8591a6cb6a9).</description>
    <link>https://forem.com/wakeup_flower_8591a6cb6a9</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%2F3129276%2Fb49ef7e2-e6a3-4aa8-9283-37a4e21c5e4c.jpg</url>
      <title>Forem: Wakeup Flower</title>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wakeup_flower_8591a6cb6a9"/>
    <language>en</language>
    <item>
      <title>I'm back</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Wed, 11 Mar 2026 10:44:37 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/im-back-og7</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/im-back-og7</guid>
      <description>&lt;p&gt;I got a big pause of some health issues, It feels great to be here, continue my learnning journey. &lt;/p&gt;

&lt;p&gt;It's actually a big chance that my body works correctly so that I can continue piano, dancing and discovering the world and people in it. &lt;/p&gt;

&lt;p&gt;I use Udemy for almost one year, I learned massive amount of things though being absent of everything for 3 months.&lt;/p&gt;

&lt;p&gt;Please cherish your health too, it's everything for you !&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
      <category>mentalhealth</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Common image formats</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Tue, 21 Oct 2025 10:01:16 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/common-image-formats-2c05</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/common-image-formats-2c05</guid>
      <description>&lt;h3&gt;
  
  
  🧱 &lt;strong&gt;Raster Image Formats&lt;/strong&gt; (Pixel-based)
&lt;/h3&gt;

&lt;p&gt;These are the most common for photos, screenshots, and web images.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Typical Extension&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;th&gt;Key Traits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JPEG / JFIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.jpg&lt;/code&gt;, &lt;code&gt;.jpeg&lt;/code&gt;, &lt;code&gt;.jfif&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Photos, web images&lt;/td&gt;
&lt;td&gt;Lossy compression → small size, slight quality loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PNG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Web graphics, transparent images&lt;/td&gt;
&lt;td&gt;Lossless compression, supports transparency (alpha channel)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WEBP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.webp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modern web use&lt;/td&gt;
&lt;td&gt;Smaller than JPEG/PNG, supports transparency and animation; very common on websites today&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HEIC / HEIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.heic&lt;/code&gt;, &lt;code&gt;.heif&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;iPhone photos&lt;/td&gt;
&lt;td&gt;High efficiency (better quality at smaller size), supports depth and burst data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AVIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.avif&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Next-gen web &amp;amp; photography&lt;/td&gt;
&lt;td&gt;Better compression and quality than WEBP; gaining adoption fast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.gif&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Simple animations, memes&lt;/td&gt;
&lt;td&gt;Limited color palette (256 colors), supports animation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BMP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.bmp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows bitmaps (legacy)&lt;/td&gt;
&lt;td&gt;Uncompressed, very large file size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TIFF / TIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.tiff&lt;/code&gt;, &lt;code&gt;.tif&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Printing, scanning, photography&lt;/td&gt;
&lt;td&gt;High-quality, supports layers, lossless, large files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RAW formats&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.cr2&lt;/code&gt;, &lt;code&gt;.nef&lt;/code&gt;, &lt;code&gt;.arw&lt;/code&gt;, etc.&lt;/td&gt;
&lt;td&gt;DSLR / Mirrorless cameras&lt;/td&gt;
&lt;td&gt;Unprocessed image data; huge files, best for editing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🧩 &lt;strong&gt;Vector Image Formats&lt;/strong&gt; (Shape-based)
&lt;/h3&gt;

&lt;p&gt;Used for logos, icons, and scalable designs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;th&gt;Key Traits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SVG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.svg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Web icons, graphics, illustrations&lt;/td&gt;
&lt;td&gt;Scalable (no quality loss), editable with code or design tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EPS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.eps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Printing, professional graphics&lt;/td&gt;
&lt;td&gt;Legacy vector format for Adobe software&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PDF (vector images)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documents and printable graphics&lt;/td&gt;
&lt;td&gt;Can embed text, vector art, and images&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🕹️ &lt;strong&gt;Special / Modern Use&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ICO&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.ico&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WEBM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.webm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Animated or video-like web content (also used in short animations)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PSD&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.psd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adobe Photoshop layered images&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EXR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.exr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Film / VFX industry (high dynamic range)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🚀 Most Common on the Web (2025)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WEBP&lt;/strong&gt; → dominant (Google Chrome, Edge, Firefox, Safari support it)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JPEG&lt;/strong&gt; → still very widespread&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PNG&lt;/strong&gt; → for transparency and UI icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AVIF&lt;/strong&gt; → fast-growing, especially on modern browsers and phones&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>frontend</category>
    </item>
    <item>
      <title>From Doubt to Triumph: AWS Certified Solutions Architect Exam</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Fri, 17 Oct 2025 10:47:13 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/from-doubt-to-triumph-aws-certified-solutions-architect-exam-3fi6</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/from-doubt-to-triumph-aws-certified-solutions-architect-exam-3fi6</guid>
      <description>&lt;p&gt;Yesterday, I officially passed the AWS Solutions Architect Associate (SAA-C03) exam !&lt;/p&gt;

&lt;p&gt;It definitely wasn’t easy — at times, it felt like climbing a mountain blindfolded. Since English isn’t my first language, understanding all the small details in those long, tricky questions was tough. And to make things worse, I completely forgot to add the extra 30 minutes for non-native speakers. You can’t imagine how much I blamed myself for that mistake.&lt;/p&gt;

&lt;p&gt;But in the end… I did it.&lt;/p&gt;

&lt;p&gt;It was such an emotional roller coaster — nerves, frustration, hope, and finally, relief.&lt;/p&gt;

&lt;p&gt;Now that this chapter is done, I’m going to take a short break before starting my next goal: the AWS Certified DevOps Engineer – Professional (DOP-C02) in 2026.&lt;/p&gt;

</description>
      <category>motivation</category>
      <category>career</category>
      <category>devjournal</category>
      <category>aws</category>
    </item>
    <item>
      <title>Lake Formation workflow of RDS &amp; S3</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Tue, 14 Oct 2025 08:39:48 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/lake-formation-workflow-of-rds-s3-5g7f</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/lake-formation-workflow-of-rds-s3-5g7f</guid>
      <description>&lt;h3&gt;
  
  
  🌊 &lt;strong&gt;Goal:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create a &lt;strong&gt;data lake&lt;/strong&gt; that combines data from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon RDS&lt;/strong&gt; (relational database)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3&lt;/strong&gt; (object storage for large-scale analytics)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll then use &lt;strong&gt;AWS Lake Formation&lt;/strong&gt; to centrally manage &lt;strong&gt;data access and security&lt;/strong&gt; — without manually writing IAM policies or complex permissions.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Step-by-Step Breakdown
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1️⃣ Create a Data Lake with Lake Formation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Lake Formation is built on top of AWS Glue and Amazon S3 — it helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Catalog all your data sources (S3, RDS, Redshift, etc.)&lt;/li&gt;
&lt;li&gt;Define fine-grained access controls (at the table, column, or row level)&lt;/li&gt;
&lt;li&gt;Use a single, centralized permission model for analytics services (like Athena, Redshift Spectrum, EMR, Glue)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;In the Lake Formation console, register your data lake location (usually an S3 bucket or a prefix, e.g. &lt;code&gt;s3://company-data-lake/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Lake Formation creates a data catalog (via AWS Glue Data Catalog) that tracks where data lives and its schema.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2️⃣ Create an AWS Glue JDBC Connection to Amazon RDS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;JDBC ( Java Database Connectivity )&lt;/p&gt;

&lt;p&gt;It’s a standard protocol that lets software applications connect to databases — regardless of the database vendor (MySQL, PostgreSQL, Oracle, SQL Server, etc.).&lt;/p&gt;

&lt;p&gt;This allows AWS Glue (and by extension, Lake Formation) to &lt;strong&gt;connect directly&lt;/strong&gt; to your Amazon RDS database and crawl or extract metadata.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;In AWS Glue, go to &lt;strong&gt;Connections → Add connection&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;JDBC&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enter your RDS endpoint, database name, username, and password (stored securely in AWS Secrets Manager)&lt;/li&gt;
&lt;li&gt;Ensure your Glue job or crawler runs in the same VPC as your RDS instance, or that it has network access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; Glue can now read schema and data from RDS tables.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3️⃣ Register the S3 Bucket in Lake Formation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This step “tells” Lake Formation that this S3 bucket is part of your managed data lake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lake Formation then enforces &lt;strong&gt;fine-grained access controls&lt;/strong&gt; on that bucket.&lt;/li&gt;
&lt;li&gt;Any other AWS analytics service (Athena, Redshift Spectrum, etc.) must check Lake Formation permissions before reading that S3 data.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;In Lake Formation → &lt;strong&gt;Data lake locations → Register location&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose your S3 bucket (e.g., &lt;code&gt;s3://company-data-lake/&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Assign a “data lake administrator” who can manage permissions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4️⃣ Use Lake Formation Access Controls&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Now you can define &lt;strong&gt;who&lt;/strong&gt; can see or query &lt;strong&gt;what&lt;/strong&gt; data.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Allow the data science team to read only the &lt;code&gt;sales&lt;/code&gt; table.&lt;/li&gt;
&lt;li&gt;Allow auditors to read only the &lt;code&gt;transactions&lt;/code&gt; table, but hide the &lt;code&gt;customer_email&lt;/code&gt; column.&lt;/li&gt;
&lt;li&gt;Allow marketing to query summary tables but not raw data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lake Formation integrates with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Amazon Athena&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Amazon Redshift Spectrum&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Amazon EMR&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS Glue&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these services checks &lt;strong&gt;Lake Formation permissions&lt;/strong&gt; before accessing data.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔒 &lt;strong&gt;Access Control Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;User&lt;/th&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Permission&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data Scientist&lt;/td&gt;
&lt;td&gt;&lt;code&gt;s3://data-lake/sales/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SELECT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Analyst&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;transactions&lt;/code&gt; table&lt;/td&gt;
&lt;td&gt;SELECT (no access to PII columns)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Admin&lt;/td&gt;
&lt;td&gt;All databases/tables&lt;/td&gt;
&lt;td&gt;FULL_ACCESS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  💡 &lt;strong&gt;Why this Architecture?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Centralized data governance&lt;/strong&gt; — fine-grained permissions, all permissions managed in Lake Formation.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Unified analytics&lt;/strong&gt; — combine RDS (structured data) and S3 (semi/unstructured data).&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Scalable &amp;amp; cost-effective&lt;/strong&gt; — query with Athena or Redshift Spectrum directly on S3.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Minimal coding&lt;/strong&gt; — Glue handles schema discovery; Lake Formation handles permissions.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          ┌───────────────────────┐
          │ Amazon RDS (MySQL)    │
          │ Customer Data          │
          └──────────┬────────────┘
                     │ JDBC Connection (AWS Glue)
                     ▼
             ┌───────────────────────────┐
             │ AWS Glue Data Catalog      │
             │ Metadata for RDS + S3      │
             └──────────┬────────────────┘
                        │
                        ▼
             ┌───────────────────────────┐
             │ AWS Lake Formation         │
             │ - Unified Data Lake        │
             │ - Fine-grained access ctrl │
             └──────────┬────────────────┘
                        │
          ┌─────────────┴────────────────────┐
          │       Amazon Athena / BI Tools   │
          │     Query Across RDS + S3 Data   │
          └─────────────────────────────────┘

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

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1️⃣&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 + RDS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raw data sources&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2️⃣&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AWS Glue JDBC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connects RDS to data catalog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3️⃣&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Lake Formation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Creates unified data lake with security control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4️⃣&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Athena / QuickSight&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Analyze both sources together&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5️⃣&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Secure, centralized, scalable data access&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Compare Glue, Data Pipeline &amp; Step functions</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Mon, 13 Oct 2025 16:05:43 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/compare-glue-data-pipeline-step-functions-4h6c</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/compare-glue-data-pipeline-step-functions-4h6c</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;1. AWS Data Pipeline&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Orchestrates &lt;strong&gt;data movement and batch ETL workflows&lt;/strong&gt; between AWS services or on-premises.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus:&lt;/strong&gt; Scheduling and automating data flows, not performing transformations itself (though it can trigger EMR jobs, SQL scripts, or Lambda).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Multi-step &lt;strong&gt;data pipelines&lt;/strong&gt; across services on a schedule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Move data from on-prem Oracle → S3 → Redshift every night.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. AWS Glue&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Fully-managed &lt;strong&gt;ETL service&lt;/strong&gt; for data cataloging, transformation, and loading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus:&lt;/strong&gt; &lt;strong&gt;Data processing and transformation&lt;/strong&gt;. It can also orchestrate ETL jobs, but it’s more about &lt;strong&gt;preparing data for analytics&lt;/strong&gt; than just moving it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; Automated, &lt;strong&gt;serverless ETL&lt;/strong&gt;, especially when using Spark to process large datasets.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Components:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Glue Data Catalog&lt;/strong&gt; – keeps metadata of datasets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glue ETL Jobs&lt;/strong&gt; – process data using Spark/PySpark.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glue Crawlers&lt;/strong&gt; – automatically detect schema and update the catalog.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Transform raw S3 logs → normalize fields → write to Redshift for analytics.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. AWS Step Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Orchestrates &lt;strong&gt;application workflows&lt;/strong&gt; and &lt;strong&gt;serverless services&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus:&lt;/strong&gt; Task coordination, conditional logic, branching, retries, parallel execution, human approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for:&lt;/strong&gt; &lt;strong&gt;Business/application workflows&lt;/strong&gt;, not specifically data ETL (though it can orchestrate ETL jobs).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Order workflow: receive order → charge payment → update inventory → notify user.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Comparison Table&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;AWS Data Pipeline&lt;/th&gt;
&lt;th&gt;AWS Glue&lt;/th&gt;
&lt;th&gt;AWS Step Functions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary Use&lt;/td&gt;
&lt;td&gt;Orchestrate batch &lt;strong&gt;data movement&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;ETL&lt;/strong&gt;: catalog, transform, load&lt;/td&gt;
&lt;td&gt;Orchestrate &lt;strong&gt;application workflows&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trigger&lt;/td&gt;
&lt;td&gt;Scheduled or on-demand&lt;/td&gt;
&lt;td&gt;Scheduled, on-demand, or event-based&lt;/td&gt;
&lt;td&gt;Event-driven, API, or scheduled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logic&lt;/td&gt;
&lt;td&gt;Sequential, basic retry&lt;/td&gt;
&lt;td&gt;ETL transformations, partitioning&lt;/td&gt;
&lt;td&gt;Sequential, parallel, branching, error handling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Services&lt;/td&gt;
&lt;td&gt;S3, EMR, RDS, DynamoDB&lt;/td&gt;
&lt;td&gt;S3, Redshift, RDS, JDBC sources&lt;/td&gt;
&lt;td&gt;Lambda, ECS, Batch, Glue, DynamoDB, SNS, SQS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transformations&lt;/td&gt;
&lt;td&gt;Limited (via jobs)&lt;/td&gt;
&lt;td&gt;Rich transformations with Spark&lt;/td&gt;
&lt;td&gt;Optional, via Lambda or services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Metadata&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Glue Data Catalog&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best For&lt;/td&gt;
&lt;td&gt;Moving/transforming &lt;strong&gt;data pipelines&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Preparing &lt;strong&gt;analytics-ready data&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Coordinating &lt;strong&gt;services / microservices&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Analogy&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Pipeline&lt;/strong&gt; → Conveyor belt moving data between factories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glue&lt;/strong&gt; → The machine on the belt that &lt;strong&gt;cleans, transforms, and prepares&lt;/strong&gt; the data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step Functions&lt;/strong&gt; → Project manager coordinating &lt;strong&gt;tasks, teams, and decisions&lt;/strong&gt; across the company.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;✅ &lt;strong&gt;Exam Tip:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the question is about &lt;strong&gt;orchestrating ETL for analytics&lt;/strong&gt;, Glue is usually the answer.&lt;/li&gt;
&lt;li&gt;If it’s about &lt;strong&gt;scheduled data movement&lt;/strong&gt; (no heavy transformations), think &lt;strong&gt;Data Pipeline&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;If it’s about &lt;strong&gt;application workflow orchestration&lt;/strong&gt;, branching, retries, human approvals → &lt;strong&gt;Step Functions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>When you can't use serverless DMS</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Mon, 13 Oct 2025 15:04:29 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/when-you-cant-use-serverless-dms-430j</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/when-you-cant-use-serverless-dms-430j</guid>
      <description>&lt;p&gt;Serverless DMS tasks remove the need to manage replication instances while still supporting full-load + CDC migrations.&lt;/p&gt;

&lt;p&gt;** CDC stands for Change Data Capture **&lt;br&gt;
It’s a mechanism to track and capture changes (inserts, updates, deletes) in a database so that they can be replicated or processed elsewhere.&lt;/p&gt;

&lt;p&gt;Think of CDC like a live news feed of database changes. Once you have the full story (full load) + CDC keeps sending you all the updates as they happen.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Serverless DMS&lt;/th&gt;
&lt;th&gt;Traditional DMS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Replication instance&lt;/td&gt;
&lt;td&gt;❌ managed by AWS&lt;/td&gt;
&lt;td&gt;✅ provisioned by user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scalability&lt;/td&gt;
&lt;td&gt;Auto-scaled&lt;/td&gt;
&lt;td&gt;Manual scaling required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Pay per use&lt;/td&gt;
&lt;td&gt;Pay hourly for instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;User responsible for patching, sizing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use case&lt;/td&gt;
&lt;td&gt;Sporadic migration, cloud-native, low ops&lt;/td&gt;
&lt;td&gt;Continuous heavy workloads, fine-tuned control&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You &lt;strong&gt;cannot use serverless DMS&lt;/strong&gt; in certain situations where the limitations of the service prevent it from working. Here’s a detailed breakdown:&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1. Unsupported Database Engines&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Serverless DMS &lt;strong&gt;does not support all source and target engines&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Supported?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aurora MySQL&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS MySQL&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aurora PostgreSQL&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS PostgreSQL&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oracle&lt;/td&gt;
&lt;td&gt;❌ (serverless not available)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Server&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SAP, Db2, MariaDB&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;If your migration uses &lt;strong&gt;unsupported engines&lt;/strong&gt;, you must use a &lt;strong&gt;provisioned DMS replication instance&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2. Very Large Workloads&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Serverless DMS &lt;strong&gt;has limits on database size and throughput&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;very large databases (e.g., hundreds of TBs)&lt;/strong&gt; or &lt;strong&gt;high CDC volume&lt;/strong&gt;, a provisioned replication instance may be needed for predictable performance.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. Advanced Configurations&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Serverless DMS cannot handle some &lt;strong&gt;advanced replication features&lt;/strong&gt;, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-AZ replication configuration (for high availability).&lt;/li&gt;
&lt;li&gt;Fine-grained control over &lt;strong&gt;replication instance type, storage, and scaling&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Large-scale transformations that require &lt;strong&gt;custom pre/post-processing tasks&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4. On-Premises Databases Without AWS Direct Connectivity&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If the source database &lt;strong&gt;cannot connect reliably to AWS&lt;/strong&gt; over the network (VPN, Direct Connect, or public endpoints), serverless DMS may fail.&lt;/li&gt;
&lt;li&gt;Provisioned DMS allows &lt;strong&gt;more tuning options&lt;/strong&gt; for network throughput and retry strategies.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Summary Table&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Limitation&lt;/th&gt;
&lt;th&gt;When Serverless DMS Won’t Work&lt;/th&gt;
&lt;th&gt;Alternative&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Database engine unsupported&lt;/td&gt;
&lt;td&gt;Oracle, SQL Server, MariaDB&lt;/td&gt;
&lt;td&gt;Use provisioned DMS instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large-scale workload&lt;/td&gt;
&lt;td&gt;Very large databases, high CDC&lt;/td&gt;
&lt;td&gt;Provisioned instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Advanced replication features&lt;/td&gt;
&lt;td&gt;Multi-AZ, fine-grained control&lt;/td&gt;
&lt;td&gt;Provisioned instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connectivity limitations&lt;/td&gt;
&lt;td&gt;On-prem without stable network&lt;/td&gt;
&lt;td&gt;Provisioned instance with VPN/Direct Connect&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;✅ &lt;strong&gt;Key Takeaway:&lt;/strong&gt;&lt;br&gt;
Serverless DMS is &lt;strong&gt;best for small-to-medium workloads, cloud-native databases, and low operational overhead&lt;/strong&gt;, but &lt;strong&gt;for unsupported engines, very large databases, or advanced configurations, you must use a provisioned replication instance&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;If you want, I can make an &lt;strong&gt;easy-to-remember diagram comparing Serverless DMS vs Provisioned DMS and when to use each&lt;/strong&gt;, which is very exam-friendly.&lt;/p&gt;

&lt;p&gt;Do you want me to do that?&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Connect to EC2 without SSH</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Mon, 13 Oct 2025 14:35:19 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/connect-to-ec2-without-ssh-34cg</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/connect-to-ec2-without-ssh-34cg</guid>
      <description>&lt;p&gt;Attach the AmazonSSMManagedInstanceCore IAM policy to an IAM role that is associated with the EC2 instances. Instruct the developers to use AWS Systems Manager Session Manager to access the EC2 instances.&lt;/p&gt;

&lt;p&gt;Yes! You can use &lt;strong&gt;AWS Systems Manager Session Manager from your PC&lt;/strong&gt; without SSH, and without going through the AWS console. Here’s how:&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1. Install AWS CLI&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make sure the &lt;strong&gt;AWS CLI v2&lt;/strong&gt; is installed on your PC.&lt;/li&gt;
&lt;li&gt;Configure it with your &lt;strong&gt;AWS credentials&lt;/strong&gt; that have permission to use Session Manager (&lt;code&gt;ssm:StartSession&lt;/code&gt;).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;2. Start a Session&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Run the following command to connect to your EC2 instance:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws ssm start-session &lt;span class="nt"&gt;--target&lt;/span&gt; &amp;lt;instance-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This opens an &lt;strong&gt;interactive shell&lt;/strong&gt; on the EC2 instance, just like SSH.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. Optional: Use Session Manager Plugin&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Some systems may require the &lt;strong&gt;Session Manager plugin&lt;/strong&gt; for CLI to open sessions.&lt;/li&gt;
&lt;li&gt;Install it from AWS:
&lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Advantages over SSH&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;SSH&lt;/th&gt;
&lt;th&gt;Session Manager&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No Internet Needed&lt;/td&gt;
&lt;td&gt;❌ (unless bastion host)&lt;/td&gt;
&lt;td&gt;✅ (works in private subnet)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No Key Management&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ (IAM-based access)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit Logging&lt;/td&gt;
&lt;td&gt;❌ (manual)&lt;/td&gt;
&lt;td&gt;✅ (CloudTrail logs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote Access&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ (CLI or console)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Summary&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;From your PC, &lt;strong&gt;Session Manager works like SSH&lt;/strong&gt;, but uses &lt;strong&gt;IAM credentials instead of keys&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;No need for bastion hosts or VPNs if the instance is in a private subnet.&lt;/li&gt;
&lt;li&gt;Fully secure and auditable.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>2 LB algorithms Round Robin &amp; Least Outstanding Requests</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Mon, 13 Oct 2025 12:37:14 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/2-lb-algorithms-round-robin-least-outstanding-requests-53c2</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/2-lb-algorithms-round-robin-least-outstanding-requests-53c2</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Scenario&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Web app behind an &lt;strong&gt;Application Load Balancer (ALB)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Some EC2 instances are &lt;strong&gt;overloaded&lt;/strong&gt; (too many outstanding requests).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CloudWatch shows higher:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Request count&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Response time&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Requirement: &lt;strong&gt;Do not forward new requests to overloaded instances.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Key background:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;ALBs support two main load-balancing algorithms:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Round Robin (default)&lt;/strong&gt; – evenly distributes requests, without considering instance load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Least Outstanding Requests (LOR)&lt;/strong&gt; – sends new requests to the target with the &lt;strong&gt;fewest active (in-flight) requests&lt;/strong&gt;, providing &lt;strong&gt;adaptive load distribution&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When some instances get slower (more outstanding requests), LOR automatically directs new traffic to the less busy instances.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Metric relevance&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;RequestCountPerTarget&lt;/code&gt; → shows how many requests each target handled.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ActiveConnectionCount&lt;/code&gt; → number of open connections (relevant for HTTP keep-alives or WebSockets).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TargetResponseTime&lt;/code&gt; → average response time, good for observation but not for routing logic directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ALB’s &lt;strong&gt;Least Outstanding Requests&lt;/strong&gt; algorithm inherently considers the number of active requests per target—it doesn’t need CloudWatch metrics directly for routing. But among the given choices, the ones referencing &lt;strong&gt;ActiveConnectionCount&lt;/strong&gt; and &lt;strong&gt;RequestCountPerTarget&lt;/strong&gt; correctly describe load indicators.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Option analysis&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Algorithm&lt;/th&gt;
&lt;th&gt;Metrics&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Round robin&lt;/td&gt;
&lt;td&gt;RequestCountPerTarget + ActiveConnectionCount&lt;/td&gt;
&lt;td&gt;❌ Round robin ignores load; not suitable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Least outstanding requests&lt;/td&gt;
&lt;td&gt;RequestCountPerTarget + ActiveConnectionCount&lt;/td&gt;
&lt;td&gt;✅ Correct — uses LOR algorithm, which addresses overloaded instances.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Round robin&lt;/td&gt;
&lt;td&gt;RequestCount + TargetResponseTime&lt;/td&gt;
&lt;td&gt;❌ Round robin still ignores load.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Least outstanding requests&lt;/td&gt;
&lt;td&gt;RequestCount + TargetResponseTime&lt;/td&gt;
&lt;td&gt;❌ “TargetResponseTime” not used by the ALB algorithm; LOR uses outstanding request count.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Least Outstanding Requests&lt;/strong&gt; algorithm automatically avoids sending new requests to busy instances.&lt;/li&gt;
&lt;li&gt;Metrics like &lt;code&gt;RequestCountPerTarget&lt;/code&gt; and &lt;code&gt;ActiveConnectionCount&lt;/code&gt; confirm the balancing effectiveness, but the ALB handles this logic internally.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Route 53 Resolver outbound endpoint</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Mon, 13 Oct 2025 12:30:24 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/route-53-resolver-outbound-endpoint-3pg</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/route-53-resolver-outbound-endpoint-3pg</guid>
      <description>&lt;h3&gt;
  
  
  🔹 &lt;strong&gt;What an outbound endpoint does&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Route 53 Resolver outbound endpoint&lt;/strong&gt; allows DNS queries that originate &lt;strong&gt;inside your VPC&lt;/strong&gt; (for example, from EC2 instances or AWS services) to be &lt;strong&gt;forwarded to external DNS servers&lt;/strong&gt; — typically, &lt;strong&gt;on-premises DNS resolvers&lt;/strong&gt; — &lt;strong&gt;through a VPN or AWS Direct Connect&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔹 &lt;strong&gt;When to use an outbound endpoint&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You use it &lt;strong&gt;whenever your workloads in AWS need to resolve private DNS names hosted outside AWS&lt;/strong&gt;, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;On-premises Active Directory domains&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;e.g., AWS EC2 instances need to resolve &lt;code&gt;server1.corp.local&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid environments&lt;/strong&gt; where part of your application runs in AWS and part on-prem, and they share internal DNS zones.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-VPC or multi-region&lt;/strong&gt; setups where one environment needs to query DNS zones owned by another that isn’t accessible directly via Route 53 Private Hosted Zones.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Custom DNS servers&lt;/strong&gt; running in another network (for example, a security appliance or custom name-resolution logic).&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔹 &lt;strong&gt;Typical architecture&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Your AWS VPC has resources (like EC2 instances or ECS tasks).&lt;/li&gt;
&lt;li&gt;Those resources need to resolve names that live &lt;strong&gt;on-premises&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You create a &lt;strong&gt;Route 53 Resolver outbound endpoint&lt;/strong&gt; in the VPC (requires two or more ENIs in different subnets for high availability).&lt;/li&gt;
&lt;li&gt;You create a &lt;strong&gt;resolver rule&lt;/strong&gt; — e.g.,&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Domain: &lt;code&gt;corp.local&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Forwarding target: &lt;code&gt;10.0.1.10&lt;/code&gt; (on-prem DNS server)

&lt;ol&gt;
&lt;li&gt;Associate that rule with the VPC.&lt;/li&gt;
&lt;li&gt;DNS queries for &lt;code&gt;corp.local&lt;/code&gt; are automatically forwarded securely over the VPN/Direct Connect link to the on-prem resolver.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔹 &lt;strong&gt;When &lt;em&gt;not&lt;/em&gt; to use it&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You &lt;strong&gt;don’t&lt;/strong&gt; need an outbound endpoint if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All your private zones are hosted in &lt;strong&gt;Route 53 Private Hosted Zones&lt;/strong&gt; and don’t depend on on-prem DNS.&lt;/li&gt;
&lt;li&gt;You only need &lt;strong&gt;on-prem → AWS&lt;/strong&gt; resolution (then you’d use an &lt;strong&gt;inbound endpoint&lt;/strong&gt; instead).&lt;/li&gt;
&lt;li&gt;You’re using a &lt;strong&gt;centralized DNS&lt;/strong&gt; design where one VPC acts as the shared resolver for others (those VPCs can use &lt;strong&gt;Resolver rules and peering&lt;/strong&gt; instead).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔹 &lt;strong&gt;Summary Table&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use case&lt;/th&gt;
&lt;th&gt;Resolver type&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS needs to resolve on-prem/private DNS&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Outbound Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS → On-Prem&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ec2 → server.corp.local&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-prem needs to resolve AWS private DNS&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Inbound Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;On-Prem → AWS&lt;/td&gt;
&lt;td&gt;&lt;code&gt;onprem → app.internal.aws&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;✅ &lt;strong&gt;In short:&lt;/strong&gt;&lt;br&gt;
Use a &lt;strong&gt;Route 53 Resolver outbound endpoint&lt;/strong&gt; whenever &lt;strong&gt;AWS resources need to resolve DNS names that live outside of AWS (e.g., on-prem or external private zones)&lt;/strong&gt; securely and automatically.&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>What's "AWS Local Zones"</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Sun, 12 Oct 2025 20:09:51 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/whats-aws-local-zones-474</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/whats-aws-local-zones-474</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;AWS Local Zones&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition:&lt;/strong&gt;&lt;br&gt;
AWS Local Zones are &lt;strong&gt;extensions of an AWS Region&lt;/strong&gt; that place compute, storage, database, and other services &lt;strong&gt;physically closer to end users&lt;/strong&gt; in specific metropolitan areas.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Key Characteristics&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Low-latency access&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Designed for applications that need &lt;strong&gt;single-digit millisecond latency&lt;/strong&gt; to end users in a specific city or metro area.&lt;/li&gt;
&lt;li&gt;Example: Real-time gaming, video streaming, financial trading apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Extension of a parent region&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Each Local Zone is &lt;strong&gt;connected to its parent AWS Region&lt;/strong&gt; (e.g., &lt;code&gt;eu-central-1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;You can extend your &lt;strong&gt;VPC&lt;/strong&gt; from the parent region into the Local Zone.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Supports dynamic compute&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;You can run EC2 instances, EKS nodes, RDS, and other services in a Local Zone.&lt;/li&gt;
&lt;li&gt;Unlike CloudFront, Local Zones &lt;strong&gt;run actual application compute&lt;/strong&gt;, not just caching.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Services available&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;EC2, EBS, VPC, RDS, ECS, EKS, and some other services.&lt;/li&gt;
&lt;li&gt;Not every AWS service is available in a Local Zone — it’s focused on low-latency workloads.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Use Cases&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Why Local Zones help&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Real-time gaming&lt;/td&gt;
&lt;td&gt;Low latency to players in a city&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Live video streaming&lt;/td&gt;
&lt;td&gt;Encode and process video near users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Financial trading apps&lt;/td&gt;
&lt;td&gt;Millisecond-level market data processing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AR/VR applications&lt;/td&gt;
&lt;td&gt;Low latency is critical for immersive experiences&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Analogy&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Think of &lt;strong&gt;Local Zones like a mini AWS data center in your city&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parent region (e.g., Frankfurt &lt;code&gt;eu-central-1&lt;/code&gt;) → main data center&lt;/li&gt;
&lt;li&gt;Local Zone (e.g., Berlin) → &lt;strong&gt;a “branch office” data center&lt;/strong&gt; closer to users&lt;/li&gt;
&lt;li&gt;Your VPC spans both → compute runs in Berlin, data stays in Frankfurt&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Key Exam Tip&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dynamic, latency-sensitive apps → AWS Local Zones&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Static content or caching → CloudFront edge locations&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Local Zones are used when your &lt;strong&gt;application requires extremely low latency&lt;/strong&gt; for end users in a specific city or metro area. Think of workloads that can’t tolerate the network round-trip time to a full AWS Region.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1. Real-time applications&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gaming:&lt;/strong&gt; Multiplayer games where milliseconds matter for player actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live streaming / broadcasting:&lt;/strong&gt; Video encoding and processing near viewers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AR/VR applications:&lt;/strong&gt; High interactivity demands &lt;strong&gt;single-digit millisecond latency&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2. Financial and trading applications&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stock trading, high-frequency trading:&lt;/strong&gt; Local Zones can host compute near stock exchanges to reduce latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market data processing:&lt;/strong&gt; Fast ingestion and response times are critical.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. Hybrid or edge workloads&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-premises integration:&lt;/strong&gt; Users in a city can access resources in a Local Zone instead of traveling all the way to the parent region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency-sensitive data processing:&lt;/strong&gt; Local preprocessing before sending data to the main region.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4. Software development / testing&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Low-latency testing environments:&lt;/strong&gt; Developers need to test apps under conditions close to the end user.&lt;/li&gt;
&lt;li&gt;Can be used to &lt;strong&gt;mimic real-world latency scenarios&lt;/strong&gt; for metro-specific deployment.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;5. High-performance computing (HPC) near users&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simulation or rendering workloads:&lt;/strong&gt; Compute-intensive tasks that need fast interaction with local data sources.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Key Takeaways&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not for general workloads:&lt;/strong&gt; If latency is not critical, use the main region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic compute only:&lt;/strong&gt; CloudFront is for static caching; Local Zones can run EC2, EKS, RDS, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for cities far from your parent region or with strict latency SLAs.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Instance Scheduler</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Sat, 11 Oct 2025 10:42:28 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/aws-instance-scheduler-ohn</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/aws-instance-scheduler-ohn</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;1. Services Supported by Instance Scheduler&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Resource Type&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon EC2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instances&lt;/td&gt;
&lt;td&gt;Start/stop instances in a VPC or public subnet based on schedule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon RDS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;DB instances&lt;/td&gt;
&lt;td&gt;Start/stop RDS database instances (Aurora, PostgreSQL, MySQL, SQL Server, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon Redshift&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Clusters&lt;/td&gt;
&lt;td&gt;Start/stop Redshift clusters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon Aurora&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;DB clusters&lt;/td&gt;
&lt;td&gt;Aurora DB clusters can also be scheduled (stopping/starting in supported regions)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Basically, Instance Scheduler handles resources that support &lt;strong&gt;start and stop operations&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. How Instance Scheduler Accesses Services&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Deployed via &lt;strong&gt;AWS CloudFormation template&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates an &lt;strong&gt;IAM role&lt;/strong&gt; with permissions to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start/stop resources (&lt;code&gt;ec2:StartInstances&lt;/code&gt;, &lt;code&gt;rds:StartDBInstance&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Read tags and resource metadata&lt;/li&gt;
&lt;li&gt;Write logs to &lt;strong&gt;CloudWatch Logs&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Scheduler uses &lt;strong&gt;tags on resources&lt;/strong&gt; to decide which resources to manage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;Schedule=BusinessHours&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Key Features&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tag-based targeting&lt;/td&gt;
&lt;td&gt;Only resources with a specific tag are scheduled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple schedules&lt;/td&gt;
&lt;td&gt;Can define different schedules (business hours, weekends, holidays)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring &amp;amp; logs&lt;/td&gt;
&lt;td&gt;Uses &lt;strong&gt;CloudWatch logs&lt;/strong&gt; to track start/stop operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flexible timing&lt;/td&gt;
&lt;td&gt;Supports cron expressions, UTC offsets, and time zones&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. Important Notes&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Works &lt;strong&gt;only with services that support start/stop&lt;/strong&gt;; cannot schedule services that are always running (like DynamoDB, Lambda, S3).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aurora Serverless v2&lt;/strong&gt; doesn’t need Instance Scheduler — it &lt;strong&gt;auto-scales&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Summary Table&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Supported resources&lt;/td&gt;
&lt;td&gt;EC2, RDS (instances &amp;amp; Aurora clusters), Redshift&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access method&lt;/td&gt;
&lt;td&gt;IAM role created by CloudFormation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selection method&lt;/td&gt;
&lt;td&gt;Tag-based (&lt;code&gt;Schedule&lt;/code&gt; tag by default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduling flexibility&lt;/td&gt;
&lt;td&gt;Cron expressions, time zones, multiple schedules&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Lambda SnapStart reduces cold start latency (java)</title>
      <dc:creator>Wakeup Flower</dc:creator>
      <pubDate>Sat, 11 Oct 2025 10:24:32 +0000</pubDate>
      <link>https://forem.com/wakeup_flower_8591a6cb6a9/lambda-snapstart-reduces-cold-start-latency-java-51h6</link>
      <guid>https://forem.com/wakeup_flower_8591a6cb6a9/lambda-snapstart-reduces-cold-start-latency-java-51h6</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;1. What Lambda SnapStart Is&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda functions, especially &lt;strong&gt;Java&lt;/strong&gt;, &lt;strong&gt;can have long cold start times&lt;/strong&gt; because the runtime has to initialize the code and dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SnapStart&lt;/strong&gt; solves this by &lt;strong&gt;initializing the function ahead of time&lt;/strong&gt; and &lt;strong&gt;taking a snapshot of the initialized execution environment&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When a new invocation occurs, Lambda &lt;strong&gt;reuses the snapshot&lt;/strong&gt; instead of starting from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;In short: &lt;strong&gt;cold starts become much faster&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. How It Works&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deploy your Lambda function&lt;/strong&gt; with SnapStart enabled.&lt;/li&gt;
&lt;li&gt;When you &lt;strong&gt;publish a version&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Lambda runs the function &lt;strong&gt;once&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lambda &lt;strong&gt;takes a snapshot&lt;/strong&gt; of the memory, execution environment, and initialized state.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On subsequent invocations:&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lambda &lt;strong&gt;restores the snapshot&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Skips the normal initialization phase (runtime boot + static initializations).&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;Without SnapStart:   Cold Start → Runtime Init → Code Init → Handler Execute
With SnapStart:      Cold Start → Snapshot Restore → Handler Execute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Result: &lt;strong&gt;cold start latency can drop from seconds to milliseconds&lt;/strong&gt;, especially for &lt;strong&gt;Java&lt;/strong&gt; and other slow-start runtimes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Key Points&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;SnapStart&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Supported Runtimes&lt;/td&gt;
&lt;td&gt;Java (as of now), others may be added&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Applies To&lt;/td&gt;
&lt;td&gt;Lambda function versions (not aliases directly)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use Case&lt;/td&gt;
&lt;td&gt;Functions with heavy initialization (DB connections, libraries, frameworks)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cold Start Improvement&lt;/td&gt;
&lt;td&gt;70–95% faster in typical cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Impact&lt;/td&gt;
&lt;td&gt;Minimal — you still pay normal Lambda invocation charges&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. Comparison With Other Optimizations&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Optimization&lt;/th&gt;
&lt;th&gt;How It Helps&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Provisioned Concurrency&lt;/td&gt;
&lt;td&gt;Keeps pre-initialized instances warm&lt;/td&gt;
&lt;td&gt;Fixed cost even if unused&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lambda SnapStart&lt;/td&gt;
&lt;td&gt;Creates snapshots for &lt;strong&gt;new invocations&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Only triggers on version publish, cheaper than provisioned concurrency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Both&lt;/td&gt;
&lt;td&gt;Can be combined&lt;/td&gt;
&lt;td&gt;Maximize performance and minimize cold starts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;5. TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Lambda SnapStart = pre-initialized snapshot of your Lambda function&lt;/strong&gt;,&lt;br&gt;
which &lt;strong&gt;dramatically reduces cold start time&lt;/strong&gt;, especially for &lt;strong&gt;Java functions&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>aws</category>
    </item>
  </channel>
</rss>
