<?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: Mthulisi</title>
    <description>The latest articles on Forem by Mthulisi (@mthulisi28).</description>
    <link>https://forem.com/mthulisi28</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%2F3596163%2F9396a1b0-7e37-42af-b1bb-41e8e02f4c8e.jpeg</url>
      <title>Forem: Mthulisi</title>
      <link>https://forem.com/mthulisi28</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mthulisi28"/>
    <language>en</language>
    <item>
      <title>Why Your AWS Bill Isn’t ‘Expensive’—It’s How You’re Using It (And How to Fix It)</title>
      <dc:creator>Mthulisi</dc:creator>
      <pubDate>Thu, 20 Nov 2025 14:23:57 +0000</pubDate>
      <link>https://forem.com/mthulisi28/why-your-aws-bill-isnt-expensive-its-how-youre-using-it-and-how-to-fix-it-22mn</link>
      <guid>https://forem.com/mthulisi28/why-your-aws-bill-isnt-expensive-its-how-youre-using-it-and-how-to-fix-it-22mn</guid>
      <description>&lt;p&gt;[Your AWS bill isn’t really expensive—it’s usually about how you use it. Many people treat AWS like a toy, tapping randomly without proper planning. Common mistakes include:&lt;/p&gt;

&lt;p&gt;No auto-scaling&lt;/p&gt;

&lt;p&gt;Running production-sized instances for development&lt;/p&gt;

&lt;p&gt;Ignoring reserved instances for stable workloads&lt;/p&gt;

&lt;p&gt;Having no monitoring or cost alerts&lt;/p&gt;

&lt;p&gt;This is like owning an expensive car but leaving it idling and blaming fuel costs.&lt;/p&gt;

&lt;p&gt;To save money, start doing:&lt;/p&gt;

&lt;p&gt;Monthly cost reviews (30 minutes)&lt;/p&gt;

&lt;p&gt;Right-sizing instances&lt;/p&gt;

&lt;p&gt;Using Spot instances for non-critical workloads&lt;/p&gt;

&lt;p&gt;Implementing auto-shutdown schedules&lt;/p&gt;

&lt;p&gt;Setting up budget alerts&lt;/p&gt;

&lt;p&gt;AWS is a powerful tool, but like any tool, it requires skill to use efficiently. Your costs reflect your usage habits, not AWS pricing itself.](&lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7397266276601184256/" rel="noopener noreferrer"&gt;https://www.linkedin.com/feed/update/urn:li:activity:7397266276601184256/&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>cli</category>
      <category>wordpress</category>
      <category>saas</category>
    </item>
    <item>
      <title>HTTPS in 4 lines of HCL</title>
      <dc:creator>Mthulisi</dc:creator>
      <pubDate>Tue, 04 Nov 2025 16:12:29 +0000</pubDate>
      <link>https://forem.com/mthulisi28/https-in-4-lines-of-hcl-4fo</link>
      <guid>https://forem.com/mthulisi28/https-in-4-lines-of-hcl-4fo</guid>
      <description>&lt;h2&gt;
  
  
  HTTPS in 4 Lines of HCL — Terraform Template That Replaced My Console Click-Ops
&lt;/h2&gt;

&lt;p&gt;&amp;gt; &lt;strong&gt;Week-3 of my 8-week IaC sprint&lt;/strong&gt;: I turned &lt;strong&gt;HTTPS setup&lt;/strong&gt; from &lt;strong&gt;47 mouse clicks&lt;/strong&gt; into &lt;strong&gt;4 lines of HCL&lt;/strong&gt; – and never looked back.&lt;/p&gt;




&lt;h3&gt;
  
  
  📸 Before (Console Click-Ops)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;47 clicks&lt;/strong&gt;: ACM certificate request → Route 53 alias → CloudFront distro → &lt;strong&gt;3 AM coffee spill&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result&lt;/strong&gt;: HTTPS works, but &lt;strong&gt;no Git history&lt;/strong&gt;, &lt;strong&gt;no rollback&lt;/strong&gt;, &lt;strong&gt;no sleep&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  📸 After (4 Lines of HCL)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
hcl
resource "aws_acm_certificate" "cert" {
  domain_name       = var.domain
  validation_method = "DNS"
  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_route53_record" "cert_validation" {
  for_each = aws_acm_certificate.cert.domain_validation_options
  name     = each.value.resource_record_name
  type     = each.value.resource_record_type
  records  = [each.value.resource_record_value]
  ttl      = 60
}

resource "aws_acm_certificate_validation" "cert" {
  certificate_arn         = aws_acm_certificate.cert.arn
  validation_record_fqdns = [for record in aws_route53_record.cert_validation : record.fqdn]
}

resource "aws_cloudfront_distribution" "cdn" {
  # … (truncated for brevity – full repo below)
}



[](https://dev.to/mthulisi28/https-in-4-lines-of-hcl-terraform-template-that-replaced-my-console-click-ops)

**Key Takeaway**
If you’re still clicking through ACM + Route 53, you’re doing it wrong.
Template it once, sleep forever.

🔗 Repo &amp;amp; Badge
Full template: Week-3 HTTPS-by-Code
Badge: Week-3 HTTPS-by-Code PNG (drop into repo README).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>javascript</category>
      <category>web3</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
