<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ercan.cloud</title><link>https://ercan.cloud/</link><description>Recent content on ercan.cloud</description><generator>Hugo</generator><language>en-US</language><copyright>© Ercan Ermis</copyright><lastBuildDate>Tue, 26 May 2026 08:30:50 +0200</lastBuildDate><atom:link href="https://ercan.cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>Now</title><link>https://ercan.cloud/now/</link><pubDate>Mon, 25 May 2026 10:00:00 +0200</pubDate><guid>https://ercan.cloud/now/</guid><description>&lt;p&gt;&lt;em&gt;(Last updated: May 2026)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="writing"&gt;Writing&lt;/h3&gt;
&lt;p&gt;Publishing field notes here on cloud, AWS, and platform engineering. Also maintain &lt;a href="https://ercan.ai"&gt;ercan.ai&lt;/a&gt; for AI and applied ML writing, and short-form AI news at &lt;a href="https://news.ercan.ai"&gt;news.ercan.ai&lt;/a&gt;. Building &lt;a href="https://awsmonthly.cloud"&gt;awsmonthly.cloud&lt;/a&gt;, a monthly AWS news digest (not launched yet).&lt;/p&gt;
&lt;h3 id="consulting"&gt;Consulting&lt;/h3&gt;
&lt;p&gt;Taking on a small number of consulting engagements. Platform engineering advisory, AWS cost optimization (real optimization, not &amp;ldquo;buy Savings Plans&amp;rdquo;), EKS and Terraform at scale, interim platform lead, migration and modernization. One or two running at a time. Reach out on &lt;a href="https://linkedin.com/in/ercanermis"&gt;LinkedIn&lt;/a&gt; if what you are dealing with overlaps.&lt;/p&gt;</description></item><item><title>Consulting &amp; Advisory</title><link>https://ercan.cloud/consulting/</link><pubDate>Sun, 24 May 2026 10:00:00 +0200</pubDate><guid>https://ercan.cloud/consulting/</guid><description>&lt;p&gt;I take on a small number of consulting engagements each year, and I genuinely enjoy it. The variety of teams, stacks, and constraints keeps my platform instincts sharp. Client work feeds the writing here, and the writing feeds the engagements.&lt;/p&gt;
&lt;h2 id="services"&gt;Services&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Platform engineering advisory.&lt;/strong&gt; Your team is hitting the point where &amp;ldquo;just Terraform and hope&amp;rdquo; stops working. Module boundaries, state ownership, CI/CD design, least-privilege IAM, and the operating model that turns platform into a product.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS cost optimization.&lt;/strong&gt; Real optimization. Line-by-line bill review, traced to specific workloads. Most engagements find 30-50% without touching application code. Deeper than &amp;ldquo;buy Savings Plans.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EKS and container platform architecture.&lt;/strong&gt; Cluster design, nodegroup sizing, IAM for service accounts, networking that actually scales, control-plane upgrade strategy without drama.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terraform and Terragrunt at organization scale.&lt;/strong&gt; Module boundaries, state ownership, drift detection, review automation. The boring infrastructure that pays compound interest.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Migration and modernization.&lt;/strong&gt; Legacy to AWS, monolith to services, multi-account untangling. I have done enough of these to know which parts hurt and how to sequence them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-i-work"&gt;How I work&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Project-based.&lt;/strong&gt; You have a migration, a platform redesign, or a cost problem. I do the work alongside your team and hand over the result.&lt;/p&gt;</description></item><item><title>About</title><link>https://ercan.cloud/about/</link><pubDate>Sat, 23 May 2026 10:00:00 +0200</pubDate><guid>https://ercan.cloud/about/</guid><description>&lt;img src="https://www.gravatar.com/avatar/fd665aac14709877518d60931c3675d9?s=400&amp;d=mp" alt="Ercan Ermis" width="160" height="160" style="border-radius:50%; margin-bottom:1.5rem;" loading="lazy"&gt;
&lt;p&gt;I&amp;rsquo;m Ercan Ermis. Senior cloud platform engineer based in the Netherlands. I write here about cloud, AWS, EKS, Terraform, observability, and the platform-engineering decisions that decide whether a system stays up at 3 AM.&lt;/p&gt;
&lt;h3 id="how-i-got-here"&gt;How I got here&lt;/h3&gt;
&lt;p&gt;The first computer in my life was an Amstrad with two 5.25-inch floppy drives, Floppy A and Floppy B, bought by my father in 1986 for his business. The real switch flipped in 1998, fourth grade, when my teacher installed Linux on one of the Windows 95 machines in our school computer lab and said &amp;ldquo;this is Linux, it is free software.&amp;rdquo; Then Pac-Man appeared on that black screen and I was done.&lt;/p&gt;</description></item><item><title>Local DynamoDB Grew Up: A Hands-On Look at ExtendDB</title><link>https://ercan.cloud/local-dynamodb-grew-up-a-hands-on-look-at-extenddb/</link><pubDate>Thu, 21 May 2026 17:42:29 +0300</pubDate><guid>https://ercan.cloud/local-dynamodb-grew-up-a-hands-on-look-at-extenddb/</guid><description>&lt;p&gt;DynamoDB Local has been the laptop stand-in for AWS DynamoDB since 2013. It's a Java JAR, runs in memory or against a SQLite file, accepts almost any request shape, has no real auth, and treats Streams pretty loosely. It's fine for unit tests. It starts to crack the moment your code does anything beyond &lt;code&gt;PutItem&lt;/code&gt; and &lt;code&gt;GetItem&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;ExtendDB v0.1.0 &lt;a href="https://github.com/extenddb/extenddb" target="_blank" rel="noreferrer noopener"&gt;just shipped&lt;/a&gt;. It's a clean-room implementation of the DynamoDB wire protocol, written in Rust by AWS engineers, backed by PostgreSQL, Apache 2.0. The pitch is "DynamoDB Local, but you can take it seriously." This post is a hands-on look at whether that holds up, run as a side-by-side lab on a single Mac.&lt;/p&gt;</description></item><item><title>How I Found a Hidden Cloudflare Bug on a Sunday mid-night (The joy of curl)</title><link>https://ercan.cloud/how-i-found-a-hidden-cloudflare-bug-on-a-sunday-mid-night/</link><pubDate>Sun, 10 May 2026 00:44:28 +0300</pubDate><guid>https://ercan.cloud/how-i-found-a-hidden-cloudflare-bug-on-a-sunday-mid-night/</guid><description>&lt;p&gt;It was supposed to be a quick weekend project. You know the kind: "I'll just spin up an egress VM, route some traffic through it, sip my coffee, and be done by lunch." Reader, I was not done by lunch.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;The Setup&lt;/h2&gt;
&lt;p&gt;I was building a small access tier for some dev environments: an egress VM with Cloudflare Zero Trust in front of it, hostname-based routing for two specific dev domains, and AWS WAF on the other side checking the source IP. Pretty standard "give my team secure access without exposing things to the public internet" stuff.&lt;/p&gt;</description></item><item><title>Why Your SSH Is Yelling About Quantum Computers (And How to Fix It)</title><link>https://ercan.cloud/why-your-ssh-is-yelling-about-quantum-computers-and-how-to-fix-it/</link><pubDate>Fri, 17 Apr 2026 13:12:28 +0300</pubDate><guid>https://ercan.cloud/why-your-ssh-is-yelling-about-quantum-computers-and-how-to-fix-it/</guid><description>&lt;p&gt;You SSH into your server and see this:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Scary. Let's break it down.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;The Threat: Store Now, Decrypt Later&lt;/h2&gt;
&lt;p&gt;Today's SSH encryption is mathematically strong; breaking it would take a classical computer millions of years.&lt;/p&gt;
&lt;p&gt;But quantum computers play by different rules. A sufficiently powerful quantum computer running &lt;strong&gt;Shor's algorithm&lt;/strong&gt; can break the math that protects most of today's public-key cryptography in hours, not millions of years.&lt;/p&gt;</description></item><item><title>IaC-First: Why I am Never Touch the AWS Console in Production</title><link>https://ercan.cloud/iac-first-why-we-never-touch-the-aws-console-in-production/</link><pubDate>Thu, 16 Apr 2026 19:02:42 +0300</pubDate><guid>https://ercan.cloud/iac-first-why-we-never-touch-the-aws-console-in-production/</guid><description>&lt;p&gt;"Never touch the AWS console in production" sounds like an extreme rule. It is not. It is the most important operational discipline in a cloud-native team, and the cost of violating it accumulates silently until it causes a major incident.&lt;/p&gt;
&lt;p&gt;This post explains why, and how to enforce IaC-first development in a real team.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;The State Drift Problem&lt;/h2&gt;
&lt;p&gt;Terraform (and OpenTofu) maintains a state file that represents what infrastructure exists. When you apply, Terraform compares the state file against your configuration and makes the minimum set of changes to bring reality in line with the configuration.&lt;/p&gt;</description></item><item><title>I dropped my Google Pixel 9 XL Pro from 6th floor balcony to the street</title><link>https://ercan.cloud/i-dropped-my-google-pixel-9-xl-pro-from-6th-floor-balcony-to-the-street/</link><pubDate>Sun, 01 Feb 2026 02:14:25 +0300</pubDate><guid>https://ercan.cloud/i-dropped-my-google-pixel-9-xl-pro-from-6th-floor-balcony-to-the-street/</guid><description>&lt;h2 class="wp-block-heading"&gt;Gravity 1 – Google Pixel 9 Pro XL 0&lt;/h2&gt;
&lt;p&gt;Tonight I went to my friend’s place. Great conversation, good laughs, zero awareness of physics. By the time I got home, it was &lt;strong&gt;02:00 AM&lt;/strong&gt;, that dangerous hour where confidence is high and grip strength is low.&lt;/p&gt;
&lt;p&gt;As usual, before bed, I stepped onto my &lt;strong&gt;lovely balcony&lt;/strong&gt; to get some fresh air. Phone in hand.&lt;br&gt;First, I was &lt;strong&gt;replying to some messages&lt;/strong&gt;. Normal life stuff. Very safe. Very controlled.&lt;/p&gt;</description></item><item><title>AWS S3 New Feature: Re-encryption without Movement</title><link>https://ercan.cloud/aws-s3-new-feature-re-encryption-without-movement/</link><pubDate>Fri, 30 Jan 2026 11:51:05 +0300</pubDate><guid>https://ercan.cloud/aws-s3-new-feature-re-encryption-without-movement/</guid><description>&lt;p&gt;The recent release of the &lt;code&gt;UpdateObjectEncryption&lt;/code&gt; API marks a significant shift in how we manage data security at scale. Historically, changing the encryption of an S3 object was a "physical" operation; you had to move the bits. Now, it’s a "logical" metadata operation.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Technical Deep Dive: Re-encryption without Movement&lt;/h2&gt;
&lt;p&gt;The "magic" behind this update lies in &lt;strong&gt;Envelope Encryption&lt;/strong&gt;. In the legacy &lt;code&gt;CopyObject&lt;/code&gt; In the workflow, S3 had to decrypt the actual data using the old key and re-encrypt it with the new key, effectively creating a new file.&lt;/p&gt;</description></item><item><title>I Built TrumpDaily to Track Donald Trump Without the Noise</title><link>https://ercan.cloud/https-trumpdaily-site-i-built-a-news-aggregator-so-i-can-finally-keep-up/</link><pubDate>Thu, 22 Jan 2026 23:11:48 +0300</pubDate><guid>https://ercan.cloud/https-trumpdaily-site-i-built-a-news-aggregator-so-i-can-finally-keep-up/</guid><description>&lt;p&gt;Look, tracking Trump is exhausting. The man dominates headlines across BBC, Guardian, NPR, Al Jazeera, and even Babylon Bee. Checking 10+ sites daily? No thanks. So I built &lt;strong&gt;Trump Daily&lt;/strong&gt;! It's a self-hosted RSS aggregator that dumps everything into one clean interface. &lt;a href="https://trumpdaily.site?utm_source=blog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=blog&amp;amp;utm_id=blog"&gt;https://trumpdaily.site&lt;/a&gt; was born! &lt;/p&gt;
&lt;p&gt;And honestly? This was the most fun I've had coding in months a few years ago.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;The Stack (Or: Why I Chose Boring Tech)&lt;a href="https://github.com/flightlesstux/trump-daily/blob/main/BLOG_POST.md#the-stack-or-why-i-chose-boring-tech"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;strong&gt;Backend:&lt;/strong&gt; Python/Flask (yes, I love it!)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cache:&lt;/strong&gt; Redis (for literally everything)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks:&lt;/strong&gt; Celery (background RSS fetching)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla JS (no React, fight me)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy:&lt;/strong&gt; Docker Compose (one command, done)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The whole thing is ~1,000 lines of Python and 400 lines of JS. Runs locally. No tracking (Just Google Analytics). No cloud bills. No bullshit.&lt;/p&gt;</description></item><item><title>When Spotify’s Share-to-Instagram Flow Turns Into a Free Billboard</title><link>https://ercan.cloud/when-spotifys-share-to-instagram-flow-turns-into-a-free-billboard/</link><pubDate>Tue, 09 Dec 2025 01:11:36 +0300</pubDate><guid>https://ercan.cloud/when-spotifys-share-to-instagram-flow-turns-into-a-free-billboard/</guid><description>&lt;p&gt;Earlier this week, I tried sharing a song on Instagram Stories "&lt;em&gt;&lt;a href="https://open.spotify.com/track/4wQhrNnIwpdUGfn0Cx7FE4?si=2adb5d71bb3c4190"&gt;Füsun Önal – Ah Nerede&lt;/a&gt;&lt;/em&gt;", the 2004 release. &lt;br&gt;&lt;/p&gt;
&lt;iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/track/4wQhrNnIwpdUGfn0Cx7FE4?utm_source=generator&amp;theme=0" width="100%" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;br&gt;Spotify → Share → Instagram. Something we all do a thousand times.&lt;/p&gt;
&lt;p&gt;But instead of the album cover, Instagram opened with a &lt;strong&gt;completely unrelated person’s Instagram profile screenshot&lt;/strong&gt;. Not mine. Not Spotify’s. Someone else’s essentially a free ad.&lt;/p&gt;
&lt;p&gt;And it didn’t look like a glitch. It looked injected.&lt;/p&gt;</description></item><item><title>AWS Monthly (Nov '25) The Stateful Serverless Revolution</title><link>https://ercan.cloud/aws-monthly-nov-25-the-stateful-serverless-revolution/</link><pubDate>Sun, 30 Nov 2025 20:21:43 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-nov-25-the-stateful-serverless-revolution/</guid><description>&lt;p&gt;November and re:Invent 2025 brought us the "holy grail" of serverless: &lt;strong&gt;AWS Lambda Durable Functions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This feature introduces "Stateful Serverless" directly into the Lambda runtime. By using the new &lt;code&gt;withDurableExecution&lt;/code&gt; wrapper, you can now write long-running workflows that persist for up to &lt;strong&gt;one year&lt;/strong&gt;. When your function hits a &lt;code&gt;context.wait()&lt;/code&gt; call, the compute is suspended and you stop paying, until the event or human approval resumes it.&lt;/p&gt;
&lt;p&gt;It effectively replaces many complex &lt;strong&gt;Step Functions&lt;/strong&gt; use cases with pure, testable code. We also got &lt;strong&gt;Graviton5&lt;/strong&gt;, which is 25% faster than Graviton4 and features the &lt;strong&gt;Nitro Isolation Engine&lt;/strong&gt;. This engine uses formal verification to provide mathematical proof of workload isolation.&lt;/p&gt;</description></item><item><title>When the Cloud Sneezes, the World Catches a Cold - Lessons from the us-east-1 Meltdown</title><link>https://ercan.cloud/when-the-cloud-sneezes-the-world-catches-a-cold-lessons-from-the-us-east-1-meltdown/</link><pubDate>Mon, 20 Oct 2025 10:05:41 +0300</pubDate><guid>https://ercan.cloud/when-the-cloud-sneezes-the-world-catches-a-cold-lessons-from-the-us-east-1-meltdown/</guid><description>&lt;p&gt;Today, once again, &lt;strong&gt;half the internet went dark&lt;/strong&gt; not because of a global power failure or a cyber-attack, but because a single AWS region, &lt;strong&gt;us-east-1 (N. Virginia)&lt;/strong&gt;, had a bad day.&lt;/p&gt;
&lt;p&gt;Perplexity went down. Amazon itself stumbled. Substack, Signal, Fortnite, and countless others vanished into the ether. Even services like Statuspage.io, used by companies to tell their customers “we’re down!”, couldn’t update their own status pages, because they, too, rely on the same broken backbone. It’s the definition of irony.&lt;/p&gt;</description></item><item><title>AWS Monthly (Sep '25): Vega OS &amp;amp; eBPF Observability</title><link>https://ercan.cloud/aws-monthly-sep-25-vega-os-ebpf-observability/</link><pubDate>Tue, 30 Sep 2025 20:16:41 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-sep-25-vega-os-ebpf-observability/</guid><description>&lt;p&gt;In a surprise move, AWS released &lt;strong&gt;Vega OS&lt;/strong&gt; in September. Vega is a specialized, Linux-based OS optimized for the edge and high-performance UI rendering (with a React Native core). It’s ultra-lightweight and designed to boot in milliseconds, perfect for the next generation of smart devices.&lt;/p&gt;
&lt;p&gt;On the observability side, we got &lt;strong&gt;CloudWatch Application Map 2.0&lt;/strong&gt;, which uses &lt;strong&gt;eBPF (Extended Berkeley Packet Filter)&lt;/strong&gt; for auto-discovery. This allows AWS to map your entire service topology, including un-instrumented legacy services and third-party API calls, without you writing a single line of instrumentation code.&lt;/p&gt;</description></item><item><title>AWS Monthly (Aug '25): Big Data, Zero Effort</title><link>https://ercan.cloud/aws-monthly-aug-25-big-data-zero-effort/</link><pubDate>Sun, 31 Aug 2025 20:14:51 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-aug-25-big-data-zero-effort/</guid><description>&lt;p&gt;August was all about "Data Gravity." &lt;strong&gt;Amazon Aurora&lt;/strong&gt; storage limits jumped to &lt;strong&gt;256 TiB&lt;/strong&gt;, which effectively ends the "sharding" conversation for 99.9% of companies.&lt;/p&gt;
&lt;p&gt;However, the real star was the expansion of &lt;strong&gt;Zero-ETL Integrations&lt;/strong&gt;. AWS enabled seamless, near-real-time replication from &lt;strong&gt;Aurora to OpenSearch&lt;/strong&gt; and &lt;strong&gt;RDS to Redshift&lt;/strong&gt;. By leveraging the database's internal transaction logs, AWS replicates data to your analytics engine without impacting the source database’s compute.&lt;/p&gt;
&lt;p&gt;For data engineers, this means the death of brittle Python/Glue ETL pipelines for simple sync tasks. We also saw &lt;strong&gt;DynamoDB&lt;/strong&gt; get "Attribute-Based Access Control" (ABAC), allowing us to manage permissions via tags rather than complex IAM policies.&lt;/p&gt;</description></item><item><title>AWS Monthly (July '25): Kubernetes at the Edge of Sanity</title><link>https://ercan.cloud/aws-monthly-july-25-kubernetes-at-the-edge-of-sanity/</link><pubDate>Thu, 31 Jul 2025 20:13:00 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-july-25-kubernetes-at-the-edge-of-sanity/</guid><description>&lt;p&gt;July was a landmark month for the EKS (Elastic Kubernetes Service) crowd. AWS announced that &lt;strong&gt;EKS now supports 100,000-node clusters&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;While 100k nodes might be overkill for most of us, the technical optimizations required to make the Kubernetes control plane stable at that scale benefit everyone. The scheduler is faster, and ETCD performance is more resilient.&lt;/p&gt;
&lt;p&gt;But the real game-changer was &lt;strong&gt;EKS Auto Mode&lt;/strong&gt;. This is the "No-Ops" evolution of Kubernetes. It removes the need to manage Node Groups or even Karpenter. AWS manages the worker plane entirely, selecting the best instance types based on pod requirements in real time.&lt;/p&gt;</description></item><item><title>AWS Monthly (May '25): The Death of the War Room</title><link>https://ercan.cloud/aws-monthly-may-25-the-death-of-the-war-room/</link><pubDate>Sat, 31 May 2025 20:00:00 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-may-25-the-death-of-the-war-room/</guid><description>&lt;p&gt;May brought &lt;strong&gt;CloudWatch Investigations&lt;/strong&gt;, which have fundamentally changed someone's on-call rotation. Instead of manual log correlation, this service uses AI to perform &lt;strong&gt;Automated Root Cause Analysis (RCA)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When an alarm triggers, Investigations automatically traces the error. It correlates metric spikes with concurrent events, like a specific Git commit, a Terraform apply, or an RDS parameter change. Instead of a dashboard showing "500 Errors," you get a report saying: &lt;em&gt;"The latency spike in Service A was caused by a configuration change in Service B that triggered a connection leak in RDS."&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Automating AWS CloudWatch Log Group Tagging with Python and Boto3</title><link>https://ercan.cloud/automating-aws-cloudwatch-log-group-tagging-with-python-and-boto3/</link><pubDate>Wed, 16 Apr 2025 08:01:03 +0300</pubDate><guid>https://ercan.cloud/automating-aws-cloudwatch-log-group-tagging-with-python-and-boto3/</guid><description>&lt;p&gt;Managing tags for AWS CloudWatch log groups is crucial for operational visibility, cost management, and effective resource organization. Tagging log groups manually can be cumbersome, especially when dealing with a large number of log groups. This article outlines a straightforward method to automate this task using Python and the AWS SDK for Python (Boto3).&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Importance of Automating CloudWatch Log Group Tagging&lt;/h2&gt;
&lt;p&gt;Automation ensures:&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;Consistent tagging across your AWS resources.&lt;/li&gt;
&lt;li&gt;Reduced manual effort and human errors.&lt;/li&gt;
&lt;li&gt;Enhanced ability to track costs and usage accurately.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="wp-block-heading"&gt;Prerequisites&lt;/h2&gt;
&lt;ul class="wp-block-list"&gt;&lt;li&gt;Python 3 installed&lt;/li&gt;
&lt;li&gt;AWS CLI configured with appropriate permissions&lt;/li&gt;
&lt;li&gt;Boto3 (&lt;code&gt;pip install boto3&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;IAM permissions:&lt;ul class="wp-block-list"&gt;&lt;li&gt;&lt;code&gt;logs:DescribeLogGroups&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs:ListTagsLogGroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs:TagLogGroup&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="wp-block-heading"&gt;Python Script for Tagging CloudWatch Log Groups&lt;/h2&gt;
&lt;p&gt;Below is a Python script that automatically applies specific tags to AWS CloudWatch log groups that currently have no tags.&lt;/p&gt;</description></item><item><title>Automating AWS ECR Tagging with Python and Boto3</title><link>https://ercan.cloud/automating-aws-ecr-tagging-with-python-and-boto3/</link><pubDate>Tue, 15 Apr 2025 09:03:02 +0300</pubDate><guid>https://ercan.cloud/automating-aws-ecr-tagging-with-python-and-boto3/</guid><description>&lt;p&gt;Proper tagging of AWS resources is critical for efficient resource management, cost allocation, and auditing. If you have numerous AWS Elastic Container Registry (ECR) repositories, manual tagging can be tedious and error-prone. This article provides a simple and effective solution: automating the tagging of ECR repositories using Python and the AWS SDK for Python (Boto3).&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Why Automate Tagging?&lt;/h2&gt;
&lt;p&gt;Automating tagging saves time, ensures consistency, and prevents costly mistakes. Tags help track resources related to specific projects, environments, or cost centers.&lt;/p&gt;</description></item><item><title>Automating ECR Image Cleanup with Bash</title><link>https://ercan.cloud/automating-ecr-image-cleanup-with-bash/</link><pubDate>Fri, 11 Apr 2025 12:40:42 +0300</pubDate><guid>https://ercan.cloud/automating-ecr-image-cleanup-with-bash/</guid><description>&lt;p&gt;Managing container images in Amazon ECR (Elastic Container Registry) is crucial for keeping your registry clean and cost-effective. Over time, unused or deprecated images can accumulate, potentially leading to increased storage costs and operational overhead. One common scenario is removing images that follow a specific tagging pattern, in this case, any image tagged with versions following the “9.x.x” format, where &lt;strong&gt;x&lt;/strong&gt; represents one or more digits.&lt;/p&gt;
&lt;p&gt;This article introduces a Bash script designed to automate the cleanup of ECR images. The script provides two main modes, &lt;strong&gt;dry-run&lt;/strong&gt; and &lt;strong&gt;apply&lt;/strong&gt;, allowing you to simulate or execute deletions based on your needs.&lt;/p&gt;</description></item><item><title>Update ECR Repositories with Bash Script</title><link>https://ercan.cloud/update-ecr-repositories-with-bash-script/</link><pubDate>Tue, 08 Apr 2025 10:05:29 +0300</pubDate><guid>https://ercan.cloud/update-ecr-repositories-with-bash-script/</guid><description>&lt;p&gt;Below is an example Bash script that uses the AWS CLI to retrieve all your Amazon ECR repositories and then sets the image tag mutability of each repository to &lt;strong&gt;MUTABLE&lt;/strong&gt;. Before running the script, ensure you have the AWS CLI installed and configured with appropriate permissions.&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;#!/bin/bash
# This script fetches all Amazon ECR repositories and sets their image tag mutability to MUTABLE.
&lt;h1 id="fetch-all-repository-names-from-ecr"&gt;Fetch all repository names from ECR.&lt;/h1&gt;
&lt;p&gt;repositories=$(aws ecr describe-repositories &amp;ndash;query &amp;ldquo;repositories[].repositoryName&amp;rdquo; &amp;ndash;output text)&lt;/p&gt;</description></item><item><title>Why Automated Tests Are Essential in Your CI/CD Pipeline and Development Flow</title><link>https://ercan.cloud/why-automated-tests-are-essential-in-your-ci-cd-pipeline-and-development-flow/</link><pubDate>Sun, 06 Apr 2025 06:44:11 +0300</pubDate><guid>https://ercan.cloud/why-automated-tests-are-essential-in-your-ci-cd-pipeline-and-development-flow/</guid><description>&lt;p&gt;Let’s talk about a scenario we’ve all been in: you’ve just wrapped up a shiny new feature, you’re excited to merge it in, and, boom, something breaks in production that you didn’t catch in your local environment. That’s the kind of horror story we want to avoid. This is exactly where automated tests come into play, especially within your continuous integration and continuous delivery (CI/CD) pipeline.&lt;/p&gt;
&lt;p&gt;In the screenshot above, you can see an example GitHub Actions workflow running Playwright tests. We’re spinning up an EC2 instance, running end-to-end (E2E) tests, and then shutting down the instance. This workflow is a classic example of how automation can streamline your development cycle and keep your application stable. Let’s dive into why these tests are so important and how they fit into a healthy development flow.&lt;/p&gt;</description></item><item><title>AWS Monthly (April '25): Cooling the AI Heat</title><link>https://ercan.cloud/aws-monthly-april-25-cooling-the-ai-heat/</link><pubDate>Mon, 31 Mar 2025 19:59:00 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-april-25-cooling-the-ai-heat/</guid><description>&lt;p&gt;In April, AWS gave us a peek behind the curtain of their data center engineering. To handle the thermal output of the latest AI clusters, they unveiled &lt;strong&gt;Direct-to-Chip Liquid Cooling&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is more than just a hardware curiosity. From a performance standpoint, liquid cooling allows for &lt;strong&gt;3x higher compute density&lt;/strong&gt; per rack. It ensures that custom silicon like Trainium and Inferentia can maintain peak clock speeds for long-running training jobs without the thermal throttling that often plagues air-cooled environments.&lt;/p&gt;</description></item><item><title>AWS Monthly (Mar '25): The Proximity Power Play</title><link>https://ercan.cloud/aws-monthly-mar-25-the-proximity-power-play/</link><pubDate>Mon, 31 Mar 2025 19:51:00 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-mar-25-the-proximity-power-play/</guid><description>&lt;p&gt;March was about the physical foundation of the cloud. AWS announced a &lt;strong&gt;$100 billion global investment&lt;/strong&gt;, and for us, that translated into over &lt;strong&gt;20 new Local Zones&lt;/strong&gt; going live.&lt;/p&gt;
&lt;p&gt;Technically, this brings "Single-Digit Millisecond Latency" to almost every major tech hub. If you are building AR/VR backends, industrial IoT, or sub-millisecond telemetry systems, the "distance to silicon" just got shorter. We are seeing a move away from "Central Regions" toward a more distributed "Edge-First" architecture.&lt;/p&gt;</description></item><item><title>Streamline Your AWS ECR Management with This Powerful Bash Script</title><link>https://ercan.cloud/streamline-your-aws-ecr-management-with-this-powerful-bash-script/</link><pubDate>Thu, 27 Mar 2025 06:32:10 +0300</pubDate><guid>https://ercan.cloud/streamline-your-aws-ecr-management-with-this-powerful-bash-script/</guid><description>&lt;p&gt;Managing container repositories in AWS ECR (Elastic Container Registry) can quickly become a daunting task, especially as your infrastructure grows. In this article, we’ll take an in-depth look at a handy bash script designed to automate the application of lifecycle policies to your ECR repositories. This script not only simplifies repository management but also ensures that only the most recent images are retained, helping you save on storage costs and keep your registry tidy.&lt;/p&gt;</description></item><item><title>AWS Monthly (Jan '25): Shattering the 6MB Ceiling</title><link>https://ercan.cloud/aws-monthly-jan-25-shattering-the-6mb-ceiling/</link><pubDate>Fri, 31 Jan 2025 08:36:00 +0300</pubDate><guid>https://ercan.cloud/aws-monthly-jan-25-shattering-the-6mb-ceiling/</guid><description>&lt;p&gt;We kicked off 2025 by addressing one of the oldest "bottleneck" complaints in the serverless community. For years, the 6MB payload limit for synchronous Lambda calls forced us into complex workarounds involving S3 pre-signed URLs or asynchronous patterns for anything remotely data-heavy.&lt;/p&gt;
&lt;p&gt;In January, AWS officially bumped &lt;strong&gt;Lambda response streaming capabilities to 200 MB&lt;/strong&gt;. Technically, this is a massive shift in how we handle data egress. By implementing the &lt;code&gt;response-stream&lt;/code&gt; content type, your functions can now push massive payloads, high-res media, giant JSON blobs, or real-time AI transcriptions directly to the client. This drastically reduces &lt;strong&gt;Time to First Byte (TTFB)&lt;/strong&gt; because the client starts receiving data as it’s generated, rather than waiting for the entire 200MB buffer to close.&lt;/p&gt;</description></item><item><title>Setting up DKIM for Google Workspace (Gmail) using Terraform and AWS Route 53</title><link>https://ercan.cloud/setting-up-dkim-for-google-workspace-gmail-using-terraform-and-aws-route-53/</link><pubDate>Wed, 02 Oct 2024 05:54:17 +0300</pubDate><guid>https://ercan.cloud/setting-up-dkim-for-google-workspace-gmail-using-terraform-and-aws-route-53/</guid><description>&lt;p&gt;DKIM (DomainKeys Identified Mail) is a critical email authentication technique that helps prevent email spoofing. By using DKIM, you digitally sign your email headers with a private key, and the recipient verifies this signature using your public key, which is stored in the DNS records of your domain. Google Workspace (formerly G Suite) leverages DKIM to ensure the emails sent from your domain are verified as coming from you and not a spammer pretending to be you.&lt;/p&gt;</description></item><item><title>Automate AWS Site-to-Site VPN Monitoring</title><link>https://ercan.cloud/automate-aws-site-to-site-vpn-monitoring/</link><pubDate>Tue, 01 Oct 2024 06:49:31 +0300</pubDate><guid>https://ercan.cloud/automate-aws-site-to-site-vpn-monitoring/</guid><description>&lt;p&gt;In today’s fast-paced, interconnected world, &lt;strong&gt;secure and reliable communication&lt;/strong&gt; between on-premises environments and cloud infrastructures is crucial. For many businesses, &lt;strong&gt;AWS Site-to-Site VPN&lt;/strong&gt; serves as the bridge that connects their data centers to AWS, enabling private, encrypted communication channels. But what happens when your VPN tunnel goes down? Without proper visibility or a notification system in place, downtime can easily go unnoticed, ultimately leading to service disruptions and unhappy customers.&lt;/p&gt;</description></item><item><title>Optimizing Docker Images: Tips for Reducing Image Size and Build Time</title><link>https://ercan.cloud/optimizing-docker-images-tips-for-reducing-image-size-and-build-time/</link><pubDate>Fri, 27 Sep 2024 08:39:25 +0300</pubDate><guid>https://ercan.cloud/optimizing-docker-images-tips-for-reducing-image-size-and-build-time/</guid><description>&lt;p&gt;Hey, fellow Docker enthusiast! If you're here, you probably love Docker as much as I do, spinning up containers, packaging applications, and getting everything to run smoothly, no matter the environment. But let's be real for a second: sometimes, Docker images can balloon in size, making builds slow and containers heavier than they need to be. Not exactly what you want, right?&lt;/p&gt;
&lt;p&gt;Well, you’re in luck! Today, we’re going to dive deep into &lt;strong&gt;optimizing Docker images&lt;/strong&gt;. By the end of this, you'll know how to shrink those bulky images and speed up your build times without sacrificing performance. Let’s get into it!&lt;/p&gt;</description></item><item><title>Monitoring EC2 Disk Space with a Simple Bash Script and Slack Alerts</title><link>https://ercan.cloud/monitoring-ec2-disk-space-with-a-simple-bash-script-and-slack-alerts/</link><pubDate>Sun, 22 Sep 2024 15:25:41 +0300</pubDate><guid>https://ercan.cloud/monitoring-ec2-disk-space-with-a-simple-bash-script-and-slack-alerts/</guid><description>&lt;h2 class="wp-block-heading"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In the cloud infrastructure landscape, monitoring the health and resources of EC2 instances is essential. One common challenge for system administrators is ensuring that disk space doesn’t run out, which can lead to performance degradation or service outages. While AWS provides robust monitoring tools like CloudWatch, they can incur additional costs and complexity, especially for smaller or less complex setups.&lt;/p&gt;
&lt;p&gt;In this article, we’ll explore a &lt;strong&gt;simple and cost-effective solution&lt;/strong&gt; using a &lt;strong&gt;Bash script&lt;/strong&gt; that runs as a cron job on your EC2 instances. This script will check the disk usage on the instance, and if it exceeds a defined threshold, it will send an alert to a Slack channel. This method requires minimal setup, no external monitoring tools, and keeps costs low.&lt;/p&gt;</description></item><item><title>Securing Docker Containers: Best Practices for Container Security</title><link>https://ercan.cloud/securing-docker-containers-best-practices-for-container-security/</link><pubDate>Fri, 20 Sep 2024 15:19:47 +0300</pubDate><guid>https://ercan.cloud/securing-docker-containers-best-practices-for-container-security/</guid><description>&lt;p&gt;When we talk about containerization, Docker is often the first tool that comes to mind. It's revolutionized how we develop, ship, and deploy applications. But with great power comes great responsibility, right? As much as Docker can streamline processes, security should always be top of mind. A vulnerable container can put your whole system at risk.&lt;/p&gt;
&lt;p&gt;So, how do you secure your Docker containers? Let’s break it down with some best practices!&lt;/p&gt;</description></item><item><title>Mastering Dockerfile: Writing Efficient, Scalable Container Builds</title><link>https://ercan.cloud/mastering-dockerfile-writing-efficient-scalable-container-builds/</link><pubDate>Wed, 11 Sep 2024 08:04:25 +0300</pubDate><guid>https://ercan.cloud/mastering-dockerfile-writing-efficient-scalable-container-builds/</guid><description>&lt;p&gt;Docker has revolutionized the way we develop, package, and ship applications. At the heart of this container magic is the &lt;strong&gt;Dockerfile&lt;/strong&gt;, the blueprint for building Docker images. If you want to master Docker, you need to know how to write &lt;strong&gt;efficient&lt;/strong&gt; and &lt;strong&gt;scalable&lt;/strong&gt; Dockerfiles. Let's dive deep into the best practices for crafting a Dockerfile that ensures optimized, lean, and maintainable container images.&lt;/p&gt;
&lt;h3 class="wp-block-heading"&gt;&lt;strong&gt;1. Start with the Right Base Image&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Your choice of base image sets the foundation for your container. The smaller the base, the lighter your resulting image will be. You have two main strategies here:&lt;/p&gt;</description></item><item><title>Migrating a Git Repository from GitLab to GitHub with GPG-Signed Commits</title><link>https://ercan.cloud/migrating-a-git-repository-from-gitlab-to-github-with-gpg-signed-commits/</link><pubDate>Mon, 02 Sep 2024 05:34:58 +0300</pubDate><guid>https://ercan.cloud/migrating-a-git-repository-from-gitlab-to-github-with-gpg-signed-commits/</guid><description>&lt;p&gt;Here’s a comprehensive guide on &lt;strong&gt;Migrating a Git Repository from GitLab to GitHub with GPG-Signed Commits&lt;/strong&gt;:&lt;/p&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity"/&gt;
&lt;h2 class="wp-block-heading"&gt;Migrating a Git Repository from GitLab to GitHub with GPG-Signed Commits&lt;/h2&gt;
&lt;h3 class="wp-block-heading"&gt;Introduction&lt;/h3&gt;
&lt;p&gt;In today's DevOps-driven world, version control systems like Git are the backbone of software development. GitLab and GitHub are two of the most popular platforms for managing Git repositories. Developers and teams may choose to migrate their repositories from GitLab to GitHub for various reasons, including taking advantage of GitHub's extensive integrations, community, and feature set.&lt;/p&gt;</description></item><item><title>Accessing AWS Services in Private Subnets Without 0.0.0.0/0</title><link>https://ercan.cloud/accessing-aws-services-in-private-subnets-without-0-0-0-0-0/</link><pubDate>Sat, 24 Aug 2024 14:56:44 +0300</pubDate><guid>https://ercan.cloud/accessing-aws-services-in-private-subnets-without-0-0-0-0-0/</guid><description>&lt;p&gt;When working with AWS (Amazon Web Services), securing your infrastructure is paramount. One of the most common security practices is to restrict access to your private subnets by avoiding the use of &lt;code&gt;0.0.0.0/0&lt;/code&gt;, which represents all IP addresses globally. While this enhances security, it can also present challenges when your applications and services need to interact with various AWS services. This article will guide you on how to securely access AWS services from private subnets without exposing your resources to the public internet.&lt;/p&gt;</description></item><item><title>Understanding AWS Regions, Availability Zones, and VPCs: A Comprehensive Guide</title><link>https://ercan.cloud/understanding-aws-regions-availability-zones-and-vpcs/</link><pubDate>Wed, 21 Aug 2024 19:17:28 +0300</pubDate><guid>https://ercan.cloud/understanding-aws-regions-availability-zones-and-vpcs/</guid><description>&lt;h2 class="wp-block-heading"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In today's cloud computing landscape, Amazon Web Services (AWS) has established itself as a leader, offering a wide range of services to organizations of all sizes. Among its core features are AWS Regions, Availability Zones (AZs), and Virtual Private Clouds (VPCs), which form the foundation of the AWS infrastructure. Understanding these concepts is crucial for anyone looking to architect scalable, reliable, and secure cloud solutions.&lt;/p&gt;
&lt;p&gt;In this comprehensive guide, we'll delve into the intricacies of AWS Regions, Availability Zones, and VPCs. Whether you're a cloud engineer, DevOps professional, or just starting out with AWS, this post will equip you with the knowledge you need to make informed decisions when designing your cloud architecture.&lt;/p&gt;</description></item><item><title>AWS Network Load Balancers with Header Modification Techniques</title><link>https://ercan.cloud/aws-network-load-balancers-with-header-modification-techniques/</link><pubDate>Mon, 10 Jun 2024 23:25:29 +0300</pubDate><guid>https://ercan.cloud/aws-network-load-balancers-with-header-modification-techniques/</guid><description>&lt;p&gt;AWS Network Load Balancers (NLBs) are a powerful tool for distributing incoming application traffic across multiple targets, such as Amazon EC2 instances, in a single or multiple Availability Zones. They provide high throughput, low latency, and are designed to handle millions of requests per second while maintaining ultra-low latencies. However, one limitation of NLBs is the inability to modify HTTP headers directly. This article explores various techniques to work around this limitation, providing full examples to help you implement these solutions in your own AWS environment.&lt;/p&gt;</description></item><item><title>How to call multiple terraform modules in a single terragrunt file</title><link>https://ercan.cloud/how-to-call-multiple-terraform-modules-in-a-single-terragrunt-file/</link><pubDate>Tue, 07 May 2024 20:15:35 +0300</pubDate><guid>https://ercan.cloud/how-to-call-multiple-terraform-modules-in-a-single-terragrunt-file/</guid><description>&lt;p&gt;in Terragrunt, you can call multiple Terraform modules from a single Terragrunt configuration file by using the &lt;code&gt;terraform&lt;/code&gt; block in combination with child configurations. This is typically done by organizing your Terragrunt configuration into a hierarchy where each module is referenced in its own Terragrunt file, but managed centrally using a parent Terragrunt file.&lt;/p&gt;
&lt;p&gt;Here's a basic outline of how you can structure this:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Create a Parent Terragrunt File&lt;/strong&gt;: This file won't directly deploy any resources but will be used to configure common settings and orchestrate module deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create Child Terragrunt Files for Each Module&lt;/strong&gt;: Each module will have its own Terragrunt configuration file that specifies the source of the Terraform module and any necessary inputs.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="wp-block-heading"&gt;Example Structure&lt;/h3&gt;
&lt;p&gt;Here’s an example directory structure:&lt;/p&gt;</description></item><item><title>Leveraging Git Hooks for Enforcing Commit Message Standards: A Guide for Cross-Platform Development Teams</title><link>https://ercan.cloud/leveraging-git-hooks-for-enforcing-commit-message-standards-a-guide-for-cross-platform-development-teams/</link><pubDate>Wed, 03 Apr 2024 14:33:40 +0300</pubDate><guid>https://ercan.cloud/leveraging-git-hooks-for-enforcing-commit-message-standards-a-guide-for-cross-platform-development-teams/</guid><description>&lt;p&gt;In the world of software development, maintaining a clean and navigable commit history is not just a matter of neatness but a cornerstone of efficient teamwork and project management. Commit messages serve as a logbook or diary, providing insights into the why and what of each change. This importance grows in multi-developer projects where tracking changes and understanding their purpose can become complex.&lt;/p&gt;
&lt;p&gt;This guide introduces Git hooks as a solution to enforce commit message standards, such as SemVer and Conventional Commits, across various operating systems. We'll explore how to implement these checks on Mac, Linux, and Windows, ensuring that your team's contributions are consistent, regardless of the development environment.&lt;/p&gt;</description></item><item><title>Simplifying SSL with Let's Encrypt and CLI.ini: A DevOps Guide</title><link>https://ercan.cloud/simplifying-ssl-with-lets-encrypt-and-cli-ini-a-devops-guide/</link><pubDate>Mon, 25 Mar 2024 12:29:07 +0300</pubDate><guid>https://ercan.cloud/simplifying-ssl-with-lets-encrypt-and-cli-ini-a-devops-guide/</guid><description>&lt;p&gt;In the vast expanse of the internet, security is not just a luxury; it's a necessity. For web developers and system administrators, ensuring that web traffic is encrypted is a foundational aspect of protecting users' data. Enter Let's Encrypt, a free, automated, and open Certificate Authority (CA) that has revolutionized the way we secure websites. This guide aims to unravel the complexities of using Let's Encrypt, focusing on the power of the &lt;code&gt;cli.ini&lt;/code&gt; configuration file, and providing a comprehensive introduction to securing your web servers with HTTPS.&lt;/p&gt;</description></item><item><title>TCP vs. UDP: Navigating the Protocols as Developers and DevOps</title><link>https://ercan.cloud/tcp-vs-udp-navigating-the-protocols-as-developers-and-devops/</link><pubDate>Tue, 05 Mar 2024 19:06:53 +0300</pubDate><guid>https://ercan.cloud/tcp-vs-udp-navigating-the-protocols-as-developers-and-devops/</guid><description>&lt;p&gt;Today, we embark on a fascinating exploration of two cornerstone protocols of the internet: TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). Understanding the nuances of TCP and UDP is crucial for developers and DevOps professionals alike, as it influences everything from application design to network troubleshooting. So, let's delve deep into the realms of TCP and UDP, shedding light on their differences, use cases, and what you need to know to harness their full potential.&lt;/p&gt;</description></item><item><title>AWS VPC IP Versions: IPv4 vs. IPv6</title><link>https://ercan.cloud/aws-vpc-ip-versions-ipv4-vs-ipv6/</link><pubDate>Sat, 03 Feb 2024 18:59:00 +0300</pubDate><guid>https://ercan.cloud/aws-vpc-ip-versions-ipv4-vs-ipv6/</guid><description>&lt;p&gt;Hello, Cloud Pioneers! Today, we're embarking on an enlightening journey through the realms of AWS VPC, focusing on the intriguing comparison between IPv4 and IPv6. Whether you're orchestrating a sophisticated cloud architecture or keen on understanding the nuanced dance of internet protocols, you've come to the right place. So, buckle up as we unravel the mysteries of IPv4 and IPv6 within AWS VPC, serving you a platter of insights, examples, and detailed explanations.&lt;/p&gt;</description></item><item><title>AWS S3 CORS Settings: A Deep Dive</title><link>https://ercan.cloud/aws-s3-cors-settings-a-deep-dive/</link><pubDate>Fri, 05 Jan 2024 18:56:43 +0300</pubDate><guid>https://ercan.cloud/aws-s3-cors-settings-a-deep-dive/</guid><description>&lt;p&gt;Hello, Cloud Enthusiasts! Today, we're diving into the world of AWS S3 CORS settings, a topic that, while it might seem daunting at first, is incredibly rewarding to understand. Whether you're a seasoned AWS veteran or just starting, mastering CORS settings in S3 can greatly enhance your web applications' functionality and security.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;What is CORS?&lt;/h2&gt;
&lt;p&gt;Cross-Origin Resource Sharing (CORS) is a security feature that allows you to specify in what ways resources in your bucket can be accessed from a domain different from the one your application is hosted on. In the context of Amazon S3, it controls how files in your bucket are shared with other websites.&lt;/p&gt;</description></item><item><title>Importance of Regions and Availability Zones on AWS</title><link>https://ercan.cloud/importance-of-regions-and-availability-zones-on-aws/</link><pubDate>Fri, 15 Dec 2023 19:12:11 +0300</pubDate><guid>https://ercan.cloud/importance-of-regions-and-availability-zones-on-aws/</guid><description>&lt;p&gt;Today, we're diving into a pivotal aspect of architecting robust, resilient, and efficient applications on Amazon Web Services (AWS): understanding and leveraging AWS Regions and Availability Zones (AZs). This post not only aims to elucidate these key concepts but also to guide you through best practices and practical examples using Terraform, a popular infrastructure-as-code tool. Whether you're a developer, a DevOps engineer, or a cloud architect, mastering these facets of AWS can significantly amplify your applications' performance and reliability.&lt;/p&gt;</description></item><item><title>The Power of Bash For Loops: Streamlining Your Scripting Tasks</title><link>https://ercan.cloud/the-power-of-bash-for-loops-streamlining-your-scripting-tasks/</link><pubDate>Sat, 02 Dec 2023 17:30:03 +0300</pubDate><guid>https://ercan.cloud/the-power-of-bash-for-loops-streamlining-your-scripting-tasks/</guid><description>&lt;p&gt;In the world of scripting and automation, Bash stands out as a versatile and widely-used shell in Unix and Linux systems. Among its many features, the for loop is a fundamental construct that empowers users to automate repetitive tasks efficiently. In this blog post, we’ll delve into the intricacies of Bash for loops, exploring their syntax, usage, and practical applications. Whether you're a seasoned developer or a beginner, understanding for loops in Bash is a skill that will significantly enhance your scripting capabilities.&lt;/p&gt;</description></item><item><title>AWS VPC Design: Integrating Subnets, AZs, and Dual-Stack IP</title><link>https://ercan.cloud/aws-vpc-design-integrating-subnets-azs-and-dual-stack-ip/</link><pubDate>Wed, 01 Nov 2023 19:31:04 +0300</pubDate><guid>https://ercan.cloud/aws-vpc-design-integrating-subnets-azs-and-dual-stack-ip/</guid><description>&lt;p&gt;Welcome, Cloud Architects and Network Savvy Professionals! Today, we embark on an insightful exploration of designing a Virtual Private Cloud (VPC) in AWS, meticulously weaving together subnets, availability zones (AZs), and the dual-stack configuration for IPv4 and IPv6. As organizations strive for robust, scalable, and future-proof network architectures, understanding these components' interplay is paramount. So, let's dive in and unravel the intricacies of AWS VPC design, ensuring you're equipped with the knowledge to architect your network with confidence and foresight.&lt;/p&gt;</description></item><item><title>7 Reasons to Consider Getting a Smartwatch</title><link>https://ercan.cloud/7-reasons-to-consider-getting-a-smartwatch/</link><pubDate>Tue, 31 Oct 2023 19:16:43 +0300</pubDate><guid>https://ercan.cloud/7-reasons-to-consider-getting-a-smartwatch/</guid><description>&lt;p&gt;You have probably noticed a fair few people walking around with smartwatches. The trend might be causing you to scratch your head, trying to figure out what the fuss is all about.&lt;/p&gt;
&lt;p&gt;There are multiple brands that are decently known for manufacturing smartwatches, though Apple (unsurprisingly) is probably at the top.&lt;/p&gt;
&lt;p&gt;Whether it is curiosity or peer pressure, you might be thinking about getting a smartwatch for yourself as well. And if that is the case, there are quite a few reasons to justify your decision. Smartwatches offer more than meets the eye, and we will cover exactly that in this article.&lt;/p&gt;</description></item><item><title>How to Enable SSH on Ubuntu: A Step-by-Step Guide</title><link>https://ercan.cloud/how-to-enable-ssh-on-ubuntu-a-step-by-step-guide/</link><pubDate>Thu, 19 Oct 2023 18:15:00 +0300</pubDate><guid>https://ercan.cloud/how-to-enable-ssh-on-ubuntu-a-step-by-step-guide/</guid><description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Secure Shell (SSH) is an essential tool for system administrators, developers, and IT professionals. It provides a secure way to access a remote server, making it an invaluable resource for managing systems remotely. For users of Ubuntu, one of the most popular Linux distributions, setting up SSH can greatly enhance the system's usability and security. This blog post will guide you through the process of enabling SSH on Ubuntu, ensuring a seamless and secure remote access experience.&lt;/p&gt;</description></item><item><title>Vim: Mastering the Essentials for Efficient Editing</title><link>https://ercan.cloud/vim-mastering-the-essentials-for-efficient-editing/</link><pubDate>Mon, 25 Sep 2023 17:53:44 +0300</pubDate><guid>https://ercan.cloud/vim-mastering-the-essentials-for-efficient-editing/</guid><description>&lt;h2 class="wp-block-heading"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In the world of text editing, Vim stands out as a powerful, keyboard-centric editor that prioritizes efficiency and speed. Originating from the Unix environment, Vim (Vi Improved) is known for its versatility and the high level of productivity it offers once you get past its steep learning curve. In this article, we'll delve into the core Vim commands like copy, undo, redo, jumping between words, and more, which are essential for anyone looking to enhance their text editing skills. Designed for SEO optimization and readability, this guide aims to simplify Vim for beginners and intermediate users alike.&lt;/p&gt;</description></item><item><title>Understanding CAA DNS Records: What, Why, and How?</title><link>https://ercan.cloud/understanding-caa-dns-records-what-why-and-how/</link><pubDate>Mon, 25 Sep 2023 13:27:12 +0300</pubDate><guid>https://ercan.cloud/understanding-caa-dns-records-what-why-and-how/</guid><description>&lt;p&gt;The digital world thrives on security and trust. One of the foundational aspects of this trust is the SSL/TLS certificate, the backbone of HTTPS. As the internet matures, so does the need for improving the certificate issuance process. Enter the CAA (Certificate Authority Authorization) DNS record.&lt;/p&gt;
&lt;h3 class="wp-block-heading"&gt;What is a CAA DNS Record?&lt;/h3&gt;
&lt;p&gt;CAA, or Certificate Authority Authorization, is a type of DNS record that allows domain owners to specify which Certificate Authorities (CAs) are allowed to issue certificates for their domain. In essence, it gives domain owners a say in who can and cannot issue certificates for their domains.&lt;/p&gt;</description></item><item><title>Mastering AWS VPC: An Introduction to Virtual Private Cloud Routing</title><link>https://ercan.cloud/mastering-aws-vpc-an-introduction-to-virtual-private-cloud-routing/</link><pubDate>Sun, 13 Aug 2023 12:03:24 +0300</pubDate><guid>https://ercan.cloud/mastering-aws-vpc-an-introduction-to-virtual-private-cloud-routing/</guid><description>&lt;p&gt;The world of cloud computing has never been more accessible or diverse. As organizations migrate to the cloud, AWS (Amazon Web Services) stands out as a go-to solution, especially its VPC (Virtual Private Cloud) service. In this introduction, we delve deep into AWS VPC routing, demystifying its core concepts and how they contribute to an optimized, secure cloud environment.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;What is AWS VPC?&lt;/h2&gt;
&lt;p&gt;At its core, AWS VPC is a customizable, isolated section of the Amazon Web Services cloud where users can launch AWS resources within a virtual network. Think of it as your private chunk of the AWS cloud, where you control IP address ranges, subnets, route tables, and network gateways.&lt;/p&gt;</description></item><item><title>Understanding the New AWS Public IPv4 Address Charge and Public IP Insights</title><link>https://ercan.cloud/understanding-the-new-aws-public-ipv4-address-charge-and-public-ip-insights/</link><pubDate>Sun, 30 Jul 2023 18:57:40 +0300</pubDate><guid>https://ercan.cloud/understanding-the-new-aws-public-ipv4-address-charge-and-public-ip-insights/</guid><description>&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;I wanted to share some important updates from Amazon Web Services (AWS) that could impact how you use their services. AWS has announced a new charge for public IPv4 addresses, effective from February 1, 2024. This change will see a charge of $0.005 per IP per hour for all public IPv4 addresses, whether they are attached to a service or not.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Why the New Charge?&lt;/h2&gt;
&lt;p&gt;IPv4 addresses are becoming an increasingly scarce resource. Over the past five years, the cost to acquire a single public IPv4 address has risen by more than 300%. This new charge reflects AWS's own costs and is intended to encourage users to be more frugal with their use of public IPv4 addresses. It's also a nudge towards accelerating the adoption of IPv6 as a modernization and conservation measure.&lt;/p&gt;</description></item><item><title>Docker Multi-Stage Builds: An In-depth Guide</title><link>https://ercan.cloud/docker-multi-stage-builds-an-in-depth-guide/</link><pubDate>Sat, 29 Jul 2023 09:09:39 +0300</pubDate><guid>https://ercan.cloud/docker-multi-stage-builds-an-in-depth-guide/</guid><description>&lt;h2 class="wp-block-heading"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Docker has revolutionized the way we develop, package, and deploy applications. It provides a consistent environment for applications to run, from development to production, reducing the "it works on my machine" problem. One of the most powerful features Docker has introduced is multi-stage builds. This feature helps us create lean, efficient containers without the usual hassle. In this blog post, we will delve into Docker multi-stage builds, their benefits, and best practices. We will also provide an example Dockerfile to illustrate the concept.&lt;/p&gt;</description></item><item><title>Mastering Docker Run Command: A Comprehensive Guide</title><link>https://ercan.cloud/mastering-docker-run-command-a-comprehensive-guide/</link><pubDate>Sat, 29 Jul 2023 09:02:20 +0300</pubDate><guid>https://ercan.cloud/mastering-docker-run-command-a-comprehensive-guide/</guid><description>&lt;p&gt;The use of Docker in contemporary software development is widespread, and for good reason. Docker helps developers build lightweight and portable software containers that simplify application deployment. One of the most powerful commands in Docker's command-line interface (CLI) is the &lt;code&gt;docker run&lt;/code&gt; command. However, its vast number of options can make it a bit daunting for beginners.&lt;/p&gt;
&lt;p&gt;In this blog post, we will demystify the &lt;code&gt;docker run&lt;/code&gt; command and explain how to leverage its capabilities to run Docker containers effectively. Let's get started!&lt;/p&gt;</description></item><item><title>MySQL 8: Understanding and Fixing Error 1819</title><link>https://ercan.cloud/mysql-8-understanding-and-fixing-error-1819/</link><pubDate>Fri, 14 Jul 2023 15:25:56 +0300</pubDate><guid>https://ercan.cloud/mysql-8-understanding-and-fixing-error-1819/</guid><description>&lt;p&gt;As a beginner in MySQL, you might encounter an error message that reads "ERROR 1819 (HY000): Your password does not satisfy the current policy requirements." This error is not a bug, but a built-in security feature of MySQL that ensures users set strong passwords. This tutorial will guide you through understanding this error and how to fix it.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;What Triggers the Error?&lt;/h2&gt;
&lt;p&gt;When setting up a password for the MySQL root user, you may be prompted to enable the VALIDATE PASSWORD component. If enabled, this component checks the strength of the password you provide. If your password is considered weak, you'll encounter the error 1819.&lt;/p&gt;</description></item><item><title>Ctrl+C and Ctrl+V party with GitHub Clone Helper!</title><link>https://ercan.cloud/ctrlc-and-ctrlv-party-with-github-clone-helper/</link><pubDate>Sat, 24 Jun 2023 23:53:09 +0300</pubDate><guid>https://ercan.cloud/ctrlc-and-ctrlv-party-with-github-clone-helper/</guid><description>&lt;p&gt;Hello, fellow keyboard warriors and terminal whisperers! 🤓&lt;/p&gt;
&lt;p&gt;Ever find yourself lost in the infinite sea of repositories on GitHub, and you’ve to clone a bunch of them? Now, we all know how it goes: copy the clone URL, open your terminal, type ‘git clone’, paste the URL, and hit Enter. Sounds easy, right? But what about the 50th time? The 100th? The 1000th?! Man, even the thought of it makes my fingers cramp! 😵‍💫&lt;/p&gt;</description></item><item><title>Unveiling the Mystery: Decoding IP Address Retrieval in Linux</title><link>https://ercan.cloud/unveiling-the-mystery-decoding-ip-address-retrieval-in-linux/</link><pubDate>Thu, 11 May 2023 12:10:57 +0300</pubDate><guid>https://ercan.cloud/unveiling-the-mystery-decoding-ip-address-retrieval-in-linux/</guid><description>&lt;p&gt;Understanding how to retrieve an IP address in Linux can be a bit tricky, especially for beginners. The good news? It's not as complicated as it seems! We're here to simplify it for you. Let's dive in.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;In a nutshell, an IP address is a unique identifier for your machine on a network. It's like your computer's postal address. In Linux, there are several ways to find this address, and two popular commands for doing this are &lt;code&gt;ifconfig&lt;/code&gt; and &lt;code&gt;ip&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>The AWS Well-Architected Framework: A Key to Cloud Success</title><link>https://ercan.cloud/the-aws-well-architected-framework-a-key-to-cloud-success/</link><pubDate>Wed, 26 Apr 2023 00:42:29 +0300</pubDate><guid>https://ercan.cloud/the-aws-well-architected-framework-a-key-to-cloud-success/</guid><description>&lt;h2 class="wp-block-heading"&gt;Why It's Important, Why You Need It, and Its Key Role in Your Cloud Journey&lt;/h2&gt;
&lt;p&gt;The cloud has revolutionized the way businesses operate, and Amazon Web Services (AWS) has consistently led the charge in cloud computing. To help businesses build and maintain reliable, efficient, and secure applications in the cloud, AWS has introduced the Well-Architected Framework. In this blog post, we'll explore the importance of this framework, why you need to use it, and the key role it plays in your cloud journey.&lt;/p&gt;</description></item><item><title>Telnet Movies - A Nostalgic Look at the Dawn of Internet Movie Streaming</title><link>https://ercan.cloud/telnet-movies-a-nostalgic-look-at-the-dawn-of-internet-movie-streaming/</link><pubDate>Mon, 24 Apr 2023 22:07:02 +0300</pubDate><guid>https://ercan.cloud/telnet-movies-a-nostalgic-look-at-the-dawn-of-internet-movie-streaming/</guid><description>&lt;p&gt;Long before Netflix, Hulu, and Amazon Prime Video transformed the way we consume content, there was a fascinating, lesser-known method for watching movies online: Telnet movies. These text-based movies, transmitted over the Telnet protocol, were a stepping stone in the evolution of internet streaming. In this blog post, we will delve into the history of Telnet movies, their inventor, motivation behind the concept, and the first forum post or email related to them.&lt;/p&gt;</description></item><item><title>Secure Your Media Files by Removing Metadata with AWS Lambda</title><link>https://ercan.cloud/secure-your-media-files-by-removing-metadata-with-aws-lambda/</link><pubDate>Thu, 20 Apr 2023 15:36:52 +0300</pubDate><guid>https://ercan.cloud/secure-your-media-files-by-removing-metadata-with-aws-lambda/</guid><description>&lt;p&gt;In today's digital world, images and videos often contain metadata that reveals a surprising amount of information about the media file. This metadata, such as EXIF data in images, can include sensitive details like location, device information, and more. To protect user privacy and enhance security, businesses in various industries can benefit from removing this metadata from media files. In this blog post, we'll walk you through a simple AWS Lambda script that automatically removes metadata from uploaded images and videos in S3 buckets.&lt;/p&gt;</description></item><item><title>CORS in Nginx: Configuration Guide for Enhanced Security</title><link>https://ercan.cloud/cors-in-nginx-configuration-guide-for-enhanced-security/</link><pubDate>Wed, 19 Apr 2023 21:21:10 +0300</pubDate><guid>https://ercan.cloud/cors-in-nginx-configuration-guide-for-enhanced-security/</guid><description>&lt;p&gt;Cross-Origin Resource Sharing (CORS) is a crucial mechanism for enabling secure communication between web servers and browsers. By providing a way for web applications to request resources from different domains, CORS helps overcome the limitations of the Same-Origin Policy (SOP), which restricts web applications from accessing data on a different domain than the one serving the application.&lt;/p&gt;
&lt;p&gt;In this blog post, we'll explore the importance of CORS, how it works, and how to configure it in Nginx for different scenarios. We'll also delve into key CORS concepts, such as allow-origin, allow-methods, allow-headers, and expose-headers.&lt;/p&gt;</description></item><item><title>List your S3 bucket objects easily with S3 Directory Listing</title><link>https://ercan.cloud/list-your-s3-bucket-objects-easily-with-s3-directory-listing/</link><pubDate>Tue, 18 Apr 2023 15:35:21 +0300</pubDate><guid>https://ercan.cloud/list-your-s3-bucket-objects-easily-with-s3-directory-listing/</guid><description>&lt;p&gt;Are you tired of the boring, plain S3 bucket directory listing? Do you wish there was a way to make it more user-friendly and appealing? Well, look no further! Introducing S3-Directory-Listing, a simple and easy-to-use JS script and HTML combo that will turn your S3 bucket directory listing into a fancy, modern-looking file and folder listing with a nice UI and search functionality.&lt;/p&gt;
&lt;p&gt;First things first, let's talk about usage. To use S3-Directory-Listing, all you need to do is clone the repository or copy the contents of &lt;code&gt;dark-mode.css&lt;/code&gt;, &lt;code&gt;s3.js&lt;/code&gt; and &lt;code&gt;index.html&lt;/code&gt; to your S3 bucket. Then, update the &lt;code&gt;bucketName&lt;/code&gt; variable in &lt;code&gt;app.js&lt;/code&gt; with your bucket's name, and configure your S3 bucket settings. Access the &lt;code&gt;index.html&lt;/code&gt; file in your browser, and voilà! You now have a fancy S3 directory listing. It's that simple!&lt;/p&gt;</description></item><item><title>Keeping Composer Packages Up-to-Date with Composer Guardian: Why It's Essential</title><link>https://ercan.cloud/keeping-composer-packages-up-to-date-with-composer-guardian-why-its-essential/</link><pubDate>Sat, 15 Apr 2023 19:09:12 +0300</pubDate><guid>https://ercan.cloud/keeping-composer-packages-up-to-date-with-composer-guardian-why-its-essential/</guid><description>&lt;p&gt;As a PHP developer, chances are you're already familiar with Composer, the dependency manager for PHP. It's an essential tool for managing packages, streamlining updates, and ensuring that your projects run smoothly. One crucial aspect of using Composer is keeping your packages up-to-date. In this blog post, we will discuss the importance of keeping your Composer packages current and how &lt;a href="https://github.com/flightlesstux/Composer-Guardian"&gt;Composer Guardian&lt;/a&gt;, an open-source script, can help you achieve that.&lt;/p&gt;
&lt;p&gt;Why Keep Composer Packages Up-to-Date?&lt;/p&gt;</description></item><item><title>What is Carrier Gateway on AWS?</title><link>https://ercan.cloud/what-is-carrier-gateway-on-aws/</link><pubDate>Fri, 24 Feb 2023 20:19:15 +0300</pubDate><guid>https://ercan.cloud/what-is-carrier-gateway-on-aws/</guid><description>&lt;p&gt;Amazon Web Services (AWS) offers many services to provide a seamless and secure cloud computing experience to its users. One of these services is Carrier Gateway, which is designed to provide a simplified and centralized solution for connecting customer networks to AWS.&lt;/p&gt;
&lt;p&gt;In this article, we will discuss the concept of Carrier Gateway on AWS and its benefits in detail.&lt;/p&gt;
&lt;h2&gt;What is Carrier Gateway on AWS?&lt;/h2&gt;
&lt;p&gt;Carrier Gateway is a service that enables AWS customers to establish a direct and private connection between their on-premises data center or network and their Virtual Private Cloud (VPC) on AWS. It allows users to extend their network topology to AWS, thus providing a secure and high-bandwidth connection between their on-premises infrastructure and AWS.&lt;/p&gt;</description></item><item><title>Creating SSH Keys for Secure Access to AWS EC2 Instances with Terraform</title><link>https://ercan.cloud/creating-ssh-keys-for-secure-access-to-aws-ec2-instances-with-terraform/</link><pubDate>Wed, 15 Feb 2023 09:11:24 +0300</pubDate><guid>https://ercan.cloud/creating-ssh-keys-for-secure-access-to-aws-ec2-instances-with-terraform/</guid><description>&lt;p&gt;When working with cloud infrastructure, security is of utmost importance. One critical aspect of security is controlling access to cloud resources, and this is particularly important when working with AWS EC2 instances. SSH keys are one way to secure access to EC2 instances, and with Terraform, it is straightforward to create and manage these keys.&lt;/p&gt;
&lt;p&gt;SSH keys are used for secure access to an EC2 instance, and they consist of two parts - a public key and a private key. The public key is uploaded to the EC2 instance, and the private key is used to authenticate with the instance. The private key should be kept secure and not shared with anyone else.&lt;/p&gt;</description></item><item><title>What is an Egress only internet gateways in AWS?</title><link>https://ercan.cloud/what-is-an-egress-only-internet-gateways-in-aws/</link><pubDate>Tue, 31 Jan 2023 06:48:25 +0300</pubDate><guid>https://ercan.cloud/what-is-an-egress-only-internet-gateways-in-aws/</guid><description>&lt;p&gt;Amazon Web Services (AWS) is one of the leading cloud computing platforms, providing a variety of infrastructure services to businesses of all sizes. One of the essential components of AWS is Virtual Private Cloud (VPC), which allows users to isolate their resources in a logically isolated virtual network. Within a VPC, an Egress-Only Internet Gateway is an essential component that enables outbound traffic from the VPC to the Internet.&lt;/p&gt;
&lt;p&gt;An Egress-Only Internet Gateway is a horizontally scaled, redundant, and highly available VPC component that provides a secure way for outbound-only Internet traffic from instances in a VPC to flow to the Internet. It operates as a stateful gateway, which means that it keeps track of the network connections initiated from instances in the VPC, and it automatically allows the corresponding return traffic to flow back into the VPC.&lt;/p&gt;</description></item><item><title>What is an Internet Gateway in AWS?</title><link>https://ercan.cloud/what-is-an-internet-gateway-in-aws/</link><pubDate>Wed, 11 Jan 2023 14:50:24 +0300</pubDate><guid>https://ercan.cloud/what-is-an-internet-gateway-in-aws/</guid><description>&lt;p&gt;Amazon Web Services (AWS) Internet Gateway is a horizontally scalable, redundant, and highly available VPC component that allows communication between instances in your VPC and the Internet. It, therefore, acts as a bridge between your VPC and the Internet.&lt;/p&gt;
&lt;p&gt;An Internet Gateway is not automatically created when you create a VPC. Instead, you must create and attach an Internet Gateway to your VPC before your instances in the VPC can communicate with the Internet. Once an Internet Gateway is attached to a VPC, you can then route Internet traffic to your instances.&lt;/p&gt;</description></item><item><title>What are Route Tables on AWS VPC?</title><link>https://ercan.cloud/what-are-route-tables-on-aws-vpc/</link><pubDate>Tue, 03 Jan 2023 09:03:38 +0300</pubDate><guid>https://ercan.cloud/what-are-route-tables-on-aws-vpc/</guid><description>&lt;p&gt;Route tables in Amazon Web Services (AWS) are used to determine how traffic is directed within a Virtual Private Cloud (VPC). They contain a set of rules, known as routes, that specify which network traffic is directed to which network interface.&lt;/p&gt;
&lt;p&gt;Each subnet in a VPC must be associated with a route table, which controls the traffic for that subnet. A subnet can only be associated with one route table at a time, but a route table can be associated with multiple subnets. This allows you to have different routing rules for different subnets within a VPC.&lt;/p&gt;</description></item><item><title>What is Subnet on AWS VPC?</title><link>https://ercan.cloud/what-is-subnet-on-aws-vpc/</link><pubDate>Sat, 10 Dec 2022 09:05:25 +0300</pubDate><guid>https://ercan.cloud/what-is-subnet-on-aws-vpc/</guid><description>&lt;p&gt;Amazon Web Services (AWS) Virtual Private Cloud (VPC) is a cloud computing service that allows users to create and manage their own virtual network in the cloud. This allows users to have complete control over their network and resources, including the ability to customize subnetting for their VPC.&lt;/p&gt;
&lt;p&gt;Subnets in AWS VPC are used to divide a VPC into multiple logical networks. This allows users to isolate resources and control access to those resources. Subnets can be either public or private, with public subnets having access to the internet and private subnets not having access to the internet.&lt;/p&gt;</description></item><item><title>What is AWS VPC?</title><link>https://ercan.cloud/what-is-aws-vpc/</link><pubDate>Wed, 07 Dec 2022 05:56:09 +0300</pubDate><guid>https://ercan.cloud/what-is-aws-vpc/</guid><description>&lt;h2&gt;What is AWS VPC?&lt;/h2&gt;
&lt;p&gt;Amazon Web Services (AWS) Virtual Private Cloud (VPC) is a service that allows users to create and manage their own virtual private network (VPN) in the AWS cloud. This allows users to have complete control over their own network environment, including the ability to select their own IP address range, create subnets, and configure route tables and network gateways.&lt;/p&gt;
&lt;p&gt;One of the main benefits of using VPC is the ability to securely connect to the internet and to other AWS services. With VPC, users can create a public-facing subnet for their web servers, and a private-facing subnet for their databases. This allows for better security and isolation of sensitive data.&lt;/p&gt;</description></item><item><title>Prevent nginx from caching DNS for proxy</title><link>https://ercan.cloud/prevent-nginx-from-caching-dns-for-proxy/</link><pubDate>Mon, 22 Aug 2022 12:17:44 +0300</pubDate><guid>https://ercan.cloud/prevent-nginx-from-caching-dns-for-proxy/</guid><description>&lt;p&gt;Hello everyone,&lt;br&gt;&lt;br&gt;If you are using nginx as a proxy and/or reverse proxy, the nginx is caching the DNS information and if you are using AWS Application Load Balancer behind the nginx, and nginx sometimes needs to restart and/or DNS flushing to send a request to the AWS Application Load Balancer because AWS is always giving a CNAME and changing the Load Balancer IP address frequently. &lt;/p&gt;
&lt;p&gt;There is no option to flush DNS on nginx, the only option is to restart the nginx and you can't solve the problems with restart always : ) You can use the nginx config below to fix this DNS Caching problem.&lt;/p&gt;</description></item><item><title>Scaling PHP Applications on AWS</title><link>https://ercan.cloud/scaling-php-applications-on-aws/</link><pubDate>Wed, 10 Aug 2022 05:18:09 +0300</pubDate><guid>https://ercan.cloud/scaling-php-applications-on-aws/</guid><description>&lt;p&gt;You can understand the running highly available, performant, and secure PHP applications on AWS.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Amazon Route 53 routes end-user requests resolving Domain Name Service (DNS).&lt;br&gt;&lt;/li&gt;&lt;li&gt;Amazon CloudFront caches content and accelerates delivery, leveraging global points of presence. CloudFront also handles SSL ending, integrating with Amazon Certificate Manager, which automatically creates and renews SSL certificates at no cost.&lt;br&gt;&lt;/li&gt;&lt;li&gt;AWS Web Application Firewall integration with CloudFront and Application Load Balancer mitigates OWASP's top 10 application vulnerabilities.&lt;br&gt;&lt;/li&gt;&lt;li&gt;The Application Load Balancer routes HTTP/S requests to EC2 instances running on private subnets.&lt;br&gt;&lt;/li&gt;&lt;li&gt;An Amazon Linux 2 AMI contains the PHP and other needed binaries, such as the AWS SDK for PHP.&lt;br&gt;&lt;/li&gt;&lt;li&gt;The Amazon CloudWatch Agent installed on the Amazon Linux 2 AMI streams application logs, additional host-level metrics, and custom business metrics.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Amazon EC2 Auto Scaling manages the instance launch based on metrics such as CPU and memory. It uses Amazon Graviton instances for cost optimization.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Using Systems Manager Session Manager, connect to EC2&lt;br&gt;instances with web-based sessions on the AWS Console. There is no need for key pairs of SSH ports to be open.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Database credentials are securely stored on AWS Secrets Manager. Using the AWS SDK for PHP, the application code retrieves the credentials stored on Secrets Manager though&lt;br&gt;an IAM Role.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Application code is safely stored on AWS CodeCommit using the familiar Git command line interface (CLI).&lt;br&gt;&lt;/li&gt;&lt;li&gt;AWS CodePipeline implements continuous integration and continuous deployment (CI/CD), orchestrating code deployment using an AWS CodeDeploy hook that triggers&lt;br&gt;when new EC2 instances are launched.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Amazon ElastiCache for Redis caches session data.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Amazon Aurora Multi-AZ enables high availability. The application connects via DNS endpoint that handles failover automatically in case of failure. The Aurora reader endpoint handles read operations, offloading the Aurora writer instance load.&lt;br&gt;&lt;/li&gt;&lt;li&gt;Amazon Elastic File System (Amazon EFS) stores and&lt;br&gt;shares web content with the Auto Scaling group.&lt;/li&gt;&lt;/ol&gt;</description></item><item><title>Create an S3 Bucket and Set a Policy via CLI</title><link>https://ercan.cloud/create-an-s3-bucket-and-set-a-policy-via-cli/</link><pubDate>Sun, 17 Jul 2022 12:09:37 +0300</pubDate><guid>https://ercan.cloud/create-an-s3-bucket-and-set-a-policy-via-cli/</guid><description>&lt;p&gt;I really like to use CLI commands and it's my daily routine. Today, I'll tell to you "How do you create an S3 Bucket on AWS" and "Put an S3 Bucket Policy" via CLI. Let's start...&lt;/p&gt;
&lt;p&gt;The first thing, you should set your AWS_ACCESS_KEY and AWS_SECRET_ACCESS_KEY. It means you should run &lt;code&gt;aws configure&lt;/code&gt; the command before. If you do this, you can continue.&lt;/p&gt;
&lt;h2&gt;Check the S3 Buckets First&lt;/h2&gt;
&lt;p&gt;First of all, we need to make sure which buckets we have. When I run the &lt;code&gt;aws s3 ls&lt;/code&gt; command, it will return the existing buckets.&lt;/p&gt;</description></item><item><title>Issue a Let's Encrypt SSL with the AWS Route53</title><link>https://ercan.cloud/issue-a-lets-encrypt-ssl-with-the-aws-route53/</link><pubDate>Sat, 16 Jul 2022 04:47:34 +0300</pubDate><guid>https://ercan.cloud/issue-a-lets-encrypt-ssl-with-the-aws-route53/</guid><description>&lt;p&gt;Hello,&lt;br&gt;&lt;br&gt;In this article, I want to tell you how you can issue a Let's Encrypt SSL with the AWS Route53 service. Let's start to learn.&lt;/p&gt;
&lt;h2&gt;What is Let's Encrypt?&lt;/h2&gt;
&lt;p&gt;Let's Encrypt is a non-profit certificate authority run by Internet Security Research Group (ISRG) that provides X.509 certificates for Transport Layer Security encryption at no charge. It means, you can get a FREE SSL certificate for your project/app and it the SSL certificate will be valid for 90 days. You need to make some automation to renew automatically.&lt;/p&gt;</description></item><item><title>Automate Let's Encrypt SSL on AWS Application Load Balancer</title><link>https://ercan.cloud/automate-lets-encrypt-ssl-on-aws-application-load-balancer/</link><pubDate>Sat, 02 Jul 2022 18:09:07 +0300</pubDate><guid>https://ercan.cloud/automate-lets-encrypt-ssl-on-aws-application-load-balancer/</guid><description>&lt;p&gt;Most of the time, we don't need anything except AWS Certificate Manager (ACM) but in some cases, if you are hosting your customer's domain with ALB and you don't have a chance to get an SSL certificate from your customer, you should do some workaround. In this article, we will issue a Let's Encrypt SSL on AWS Application Load Balancer and automatize it!&lt;/p&gt;
&lt;p&gt;When you request an SSL certificate from Let's Encrypt, the LE has some verification methods such as web-challenge, route53, etc. In this scenario, I decided to use web-challenge because domains' DNS management is not on me. I just host the application and need to issue an SSL.&lt;/p&gt;</description></item><item><title>Deploy a website to S3 and CloudFront with Bitbucket Pipelines</title><link>https://ercan.cloud/deploy-a-website-to-s3-and-cloudfront-with-bitbucket-pipelines/</link><pubDate>Thu, 23 Jun 2022 11:44:00 +0300</pubDate><guid>https://ercan.cloud/deploy-a-website-to-s3-and-cloudfront-with-bitbucket-pipelines/</guid><description>&lt;p&gt;Bitbucket is an Atlassian product and Git-based code store and CI/CD optimized tools for collaboration teams using with Jira. When you change your code and keep a revisions and history in Bitbucket, you also need to some automation for deployment. &lt;br&gt;&lt;br&gt;CI/CD is for every automation and it means Continuous Integration and Continues Delivery. In this article, we will use CI and CD in the same time.&lt;br&gt;&lt;br&gt;I'm skipping "How to use Bitbucket?" and I'll introduce to you about Bitbucket pipelines for continues deployment to the AWS S3 which is using CloudFront for the distribution to all over the world. &lt;/p&gt;</description></item><item><title>Protect your AWS Account with specified IPs</title><link>https://ercan.cloud/protect-your-aws-account-with-specified-ips/</link><pubDate>Thu, 16 Jun 2022 13:18:15 +0300</pubDate><guid>https://ercan.cloud/protect-your-aws-account-with-specified-ips/</guid><description>&lt;p&gt;Security is always important and the first thing before doing something in the cloud. I'm using the IP restriction policy for more than 5 years and I want to share this trick with you. There are two different ways to do it.&lt;br&gt;&lt;br&gt;You should get a Static IP from your ISP and/or also you can also want to use your VPN IP address.&lt;/p&gt;
&lt;h2&gt;What is the IP Policy benefit?&lt;/h2&gt;
&lt;p&gt;The answer is simple. Nobody can access your resources in the cloud if they are not using the specified IPs.&lt;/p&gt;</description></item><item><title>Differences between AWS CLI v1 and v2</title><link>https://ercan.cloud/differences-between-aws-cli-v1-and-v2/</link><pubDate>Thu, 09 Jun 2022 23:35:00 +0300</pubDate><guid>https://ercan.cloud/differences-between-aws-cli-v1-and-v2/</guid><description>&lt;p&gt;Sometimes, aws-cli doesn't run your cli commands if you are using v1. If your aws cli is v1, I should recommend updating. In this article, you'll learn in which conditions you should use an AWS CLI v2.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;AWS CLI v1 is written in Python language and for v1, you should install Python first but if you are using v2, it comes embedded and a &lt;strong&gt;Python interpreter is not needed&lt;/strong&gt;&lt;/p&gt;
&lt;div class="wp-block-columns"&gt;&lt;div class="wp-block-column" style="flex-basis:100%"&gt;&lt;p&gt;&lt;strong&gt;Auto Prompt&lt;/strong&gt; feature is amazing! The AWS CLI v2 can prompt you for commands, parameters, and resources when you run an aws command.&lt;/p&gt;</description></item><item><title>SSL CA Problem on CentOS7 Docker and Solution</title><link>https://ercan.cloud/ssl-ca-problem-on-centos7-docker-and-solution/</link><pubDate>Tue, 08 Mar 2022 08:19:26 +0300</pubDate><guid>https://ercan.cloud/ssl-ca-problem-on-centos7-docker-and-solution/</guid><description>&lt;p&gt;When I'm playing with CentOS7 docker image on MacBookPro M1, it looks like it doesn't connect to the servers which require HTTPS connection. &lt;br&gt;&lt;br&gt;For example, when I run &lt;code&gt;yum -y update&lt;/code&gt; the command it returns &lt;code&gt;curl: (77) Problem with the SSL CA cert (path? access rights?)&lt;/code&gt;. Hmm, it looks like an OS Bug because my ca-certificates are okay.&lt;br&gt;&lt;br&gt;I tried to send a GET command via curl and it looks like doesn't work.&lt;/p&gt;</description></item><item><title>What do I have?</title><link>https://ercan.cloud/what-do-i-have/</link><pubDate>Tue, 20 Jul 2021 15:02:36 +0300</pubDate><guid>https://ercan.cloud/what-do-i-have/</guid><description>&lt;p&gt;First of all, hello from sunny Izmir. Today is Tuesday but I feel like off-day. I know, I need to write technical articles for the community that is working with passionate people. It's on the way, I promise... The title is "Cloud: Using NAT on Private Subnets". The article is comparing serverless NAT service and self-managed ec2 NAT service. Anyway, let's start...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-full"&gt;&lt;img src="https://ercan.cloud/uploads/mbp-spacegray-select-202011-geo-tr-2.jpg" alt="" class="wp-image-4725"/&gt;&lt;figcaption&gt;&lt;strong&gt;For Work:&lt;/strong&gt; Apple MacBookPro M1 with 16GiG memory and a 256GB SSD. OS: Always latest. For now macOS Big Sur Version 11.4&lt;br&gt;&lt;br&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/xps-13-black-standard-1024x737.png" alt="" class="wp-image-4727" width="512" height="369"/&gt;&lt;figcaption&gt;&lt;strong&gt;For Personal:&lt;/strong&gt; Dell XPS 13 with 4K Touch Screen resolution. It has 8 GiG memory and a 256 GB NVMe disk on it. OS Info: Manjaro Linux with KDE up-to-date.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/71irot2sowl.-ac-sl1500-1024x513-2.jpg" alt="" class="wp-image-4724" width="512" height="257"/&gt;&lt;figcaption&gt;&lt;strong&gt;For Other Purposes:&lt;/strong&gt; Intel® NUC Kit NUC8i7HVK. It's really amazing hardware on it. You can see details on the &lt;a href="https://ark.intel.com/content/www/us/en/ark/products/126143/intel-nuc-kit-nuc8i7hvk.html" target="_blank" rel="noreferrer noopener"&gt;product page&lt;/a&gt;. It has 32 GiG memory with 2 x 512 GB RAID 0 NVMe disk. Windows 10 Enterprise and I are really fell in love with it.&lt;br&gt;&lt;br&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/1474943155632-b-ue590-001-front-black-2.jpg" alt="" class="wp-image-4723" width="750" height="500"/&gt;&lt;figcaption&gt;Since 2017, I'm using Samsung UE28E590, 4K 4ms monitor. It's not a pivot and I used Dell P2719H 27" 5ms FHD as a pivot for my SSH sessions but that monitor owner is my previous company and I give back when I decided to leave.&lt;br&gt;&lt;br&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/61cxik5mnpl.-ac-sx450-2.jpg" alt="" class="wp-image-4728" width="561" height="418"/&gt;&lt;figcaption&gt;My company gives me an Apple Magic Mouse 2 and Apple Wireless Keyboard and now I'm using them and I'm okay with that.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/juniper-srx-110-1024x270.jpg" alt="" class="wp-image-4535" width="768" height="203"/&gt;&lt;figcaption&gt;My Internet provider is turk.net and turk.net is a really amazing provider with cost-effective plans. I'm using VDSL2 internet technology at home (WFH) and I'm getting 100mbps download and 8mbps upload speed. I can configure this monster to connect via IPSec VPN to AWS Cloud and/or Google Cloud Platform. I'm also testing some services and using them if I need. Device is Juniper SRX-110HA v2. Oldies but goldies...&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/xiaomi-4a-router-683x1024.jpg" alt="" class="wp-image-4730" width="512" height="768"/&gt;&lt;figcaption&gt;I'm using Xiaomi 4A Router with 5GHz mode. Just my TV directly cable connected to my local network. Other mobile devices connecting via Wi-Fi.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/tr-uhdtv-ru7400-ue50ru7400uxtk-frontsilver-163661529.png" alt="" class="wp-image-4731" width="684" height="547"/&gt;&lt;figcaption&gt;I'm using Samsung UE50RU7400UXTK (2019). It's 50" and it's fair enough for me. Mostly I'm watching YouTube and listening on Spotify. The platform is Tizen and OS is also running on the latest version. The AirPlay2 feature is really a life saver for me. I'm connecting on MBP with few clicks.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/monitor-p2418d-hero-504x350-ng.psd.png" alt="" class="wp-image-4732" width="751" height="522"/&gt;&lt;figcaption&gt;Now I'm planning to use pivot monitor again for my CLIOps and SSH sessions.&lt;br&gt;It's Dell P2418D with 2K resolution.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class="wp-block-image"&gt;&lt;figure class="aligncenter size-large is-resized"&gt;&lt;img src="https://ercan.cloud/uploads/mx-keys-and-mx-master-3.jpg" alt="" class="wp-image-4733" width="692" height="277"/&gt;&lt;figcaption&gt;Next week, I'm ordering these amazing kit and I'm switching Apple Magic Mouse 2 and Apple Keyboard set. &lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description></item><item><title>I'm officially AWS Community Builder!</title><link>https://ercan.cloud/im-officially-aws-community-builder/</link><pubDate>Sat, 15 May 2021 09:20:41 +0300</pubDate><guid>https://ercan.cloud/im-officially-aws-community-builder/</guid><description>&lt;p&gt;Every day I'm using AWS because I'm really open to educating myself and AWS helps me in this way. I'm automating the routine tasks for departments like client team, back-end team, sometimes data team, etc., and most of the time, needs are specific for that organization. So, you should build on your own and/or with your team and improve your product and/or tool knowledge when you are on the way. &lt;/p&gt;</description></item><item><title>Deploy HA nginx to AWS ECS with Geolocation Routing via Terraform</title><link>https://ercan.cloud/deploy-ha-nginx-to-aws-ecs-with-geolocation-routing-via-terraform/</link><pubDate>Wed, 12 May 2021 12:56:20 +0300</pubDate><guid>https://ercan.cloud/deploy-ha-nginx-to-aws-ecs-with-geolocation-routing-via-terraform/</guid><description>&lt;p&gt;Today, I want to refactor the &lt;strong&gt;&lt;a href="https://ercan.cloud/deploy-nginx-docker-to-aws-ecs-with-terraform-automation/" target="_blank" rel="noreferrer noopener"&gt;Deploy nginx docker to AWS ECS with Terraform Automation&lt;/a&gt;&lt;/strong&gt; project from a single region to multi-region support. This time, I pushed all of Terraform source code to my GitLab account. &lt;br&gt;&lt;br&gt;Now, the updated project is creating all infrastructure in Ireland and N.Virginia region.&lt;br&gt;Now, we have a geo-location-based route policy which is provided via Route53.&lt;/p&gt;
&lt;h2&gt;What geo-location-based route policy means?&lt;/h2&gt;
&lt;p&gt;In this project, When you get a request from the North America continent, the visitors' request will be handle by North Virginia's infrastructure.&lt;br&gt;&lt;br&gt;If you get a request from Europe continent, this time the request will be handle by Ireland's infrastructure.&lt;br&gt;&lt;br&gt;The default region is also set and handle by Ireland's infrastructure.&lt;/p&gt;</description></item><item><title>Deploy nginx docker to AWS ECS with Terraform Automation</title><link>https://ercan.cloud/deploy-nginx-docker-to-aws-ecs-with-terraform-automation/</link><pubDate>Tue, 11 May 2021 07:40:23 +0300</pubDate><guid>https://ercan.cloud/deploy-nginx-docker-to-aws-ecs-with-terraform-automation/</guid><description>&lt;p&gt;Last night, I want to play with AWS ECS Service. I wrote a terraform code to deploy everything at the same time. The terraform is creating all of the resources for run ECS in different VPC and isolated from your other resources.&lt;br&gt;&lt;br&gt;I used nginx:alpine docker image for this project but if you need, you can modify or change the terraform and implement it for your needs.&lt;/p&gt;
&lt;h2&gt;What is AWS ECS?&lt;/h2&gt;
&lt;p&gt;Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service. Customers use ECS to run their most sensitive and mission-critical applications because of its security, reliability, and scalability.&lt;/p&gt;</description></item><item><title>How to Install Node Exporter on Linux Server</title><link>https://ercan.cloud/how-to-install-node-exporter-on-linux-server/</link><pubDate>Mon, 10 May 2021 09:18:09 +0300</pubDate><guid>https://ercan.cloud/how-to-install-node-exporter-on-linux-server/</guid><description>&lt;p&gt;Node Exporter is a Prometheus exporter for server level and OS level metrics with configurable metric collectors. It helps us in measuring various server resources such as RAM, disk space, and CPU utilization. Node exporter is a good solution to collect all the Linux server-related metrics and statistics for monitoring.&lt;/p&gt;
&lt;h2&gt;Before Start&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Prometheus Server&lt;/strong&gt;&lt;br&gt;After node exporter installation, you should send your metrics to the Prometheus server.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sudo Privileges&lt;/strong&gt;&lt;br&gt;You should access your server via SSH with root or your ssh login user should have root privileges with sudo.&lt;/li&gt;&lt;/ul&gt;
&lt;div class="schema-how-to wp-block-yoast-how-to-block"&gt;&lt;p class="schema-how-to-description"&gt;&lt;strong&gt;Node Exporter Installation Steps&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>FortiClient Problem on M1 MacBookPro Problem Solution</title><link>https://ercan.cloud/forticlient-problem-on-m1-macbookpro-problem-solution/</link><pubDate>Wed, 05 May 2021 06:36:38 +0300</pubDate><guid>https://ercan.cloud/forticlient-problem-on-m1-macbookpro-problem-solution/</guid><description>&lt;p&gt;I need to connect VPN via FortiClient to do my work and access some resources securely. When I started to work for my company in March 2021, they gave me an M1 MacBookPro. M1 MacBookPro is different than the others because it comes with a new CPU architecture. Previously, Apple was using an Intel-based CPU but now, they decided to run macOS with an ARM-based CPU and Apple called M1 for now.&lt;br&gt;&lt;br&gt;A lot of software not compatible with ARM. Sometimes I'm having some issues like "This component is not compatible with your CPU".&lt;br&gt;&lt;br&gt;When I connected to VPN via FortiClient v6.4.3.1325, it looks like connected but my internet speed is getting too slow. Normally, I have 100MB/sec internet speed. I asked my colleagues about "are you having any issues with VPN and/or VPN speed?" and that they said "NO!" They are using a little bit older MacBookPro than mine with an Intel-based CPU and I thought it's a normal situation because Intel-based versions are okay and stable.&lt;/p&gt;</description></item><item><title>Connect your AWS to GCP with Terraform via IPSec Site-to-Site VPN</title><link>https://ercan.cloud/connect-your-aws-to-gcp-with-terraform-via-ipsec-site-to-site-vpn/</link><pubDate>Tue, 04 May 2021 20:49:25 +0300</pubDate><guid>https://ercan.cloud/connect-your-aws-to-gcp-with-terraform-via-ipsec-site-to-site-vpn/</guid><description>&lt;p&gt;Today, I wrote another IaaC (infrastructure as a code) for my needs. You can create a secure VPN connection (IPsec) between Amazon Web Services (AWS) and Google Cloud Platform (GCP).&lt;/p&gt;
&lt;h2&gt;What can this do?&lt;/h2&gt;
&lt;p&gt;Creating a Customer Gateway on AWS. Creating a Virtual Private Gateway on AWS. Creating a Site-to-Site VPN Connection on AWS. Creating a Security Group for VPN connection access on AWS. Creating an External IP address for VPN connection on GCP. Creating a Managing the firewall rule for VPN connection on GCP. Creating a Route rule on GCP.&lt;/p&gt;</description></item><item><title>Google Cloud Platform Automation with Terraform Easily</title><link>https://ercan.cloud/google-cloud-platform-automation-with-terraform-easily/</link><pubDate>Fri, 30 Apr 2021 08:51:51 +0300</pubDate><guid>https://ercan.cloud/google-cloud-platform-automation-with-terraform-easily/</guid><description>&lt;p&gt;Once upon a time, when I was learning Google Cloud Platform, I just want to automate my workflow and deployments with terraform and, I wrote this IaaC (Infrastructure as a Code) to manage my infrastructure easily and fastly.&lt;/p&gt;
&lt;h2&gt;What can this do?&lt;/h2&gt;
&lt;p&gt;Creating a secure load balancer with SSL and turns the HTTP requests to HTTPS with 301 redirection code.&lt;br&gt;Creating an Instance Template and set everything about network, subnet, startup script.&lt;br&gt;Creating an Instance Group and manage them. If your instance group CPU is more or less than a value, the instance group manager will automatically scale up or scale down the VMs.&lt;br&gt;VM instances are running with private IP and, project-wide SSH access is not allowed on default. Managing the firewall rule for load balancer health check.&lt;/p&gt;</description></item><item><title>How to secure your Amazon Web Services account</title><link>https://ercan.cloud/how-to-secure-your-amazon-web-services-account/</link><pubDate>Sat, 24 Apr 2021 14:27:03 +0300</pubDate><guid>https://ercan.cloud/how-to-secure-your-amazon-web-services-account/</guid><description>&lt;p&gt;Security first because security is so important! When you create an Amazon Web Services account, that account called a root. Root level account has got full access to all resources running in the cloud environment and I totally recommended don't use your root account to manage the resources.&lt;/p&gt;
&lt;div class="schema-how-to wp-block-yoast-how-to-block"&gt;&lt;p class="schema-how-to-description"&gt;&lt;strong&gt;What should you do to keep your AWS Account secure?&lt;/strong&gt;&lt;/p&gt; &lt;ol class="schema-how-to-steps"&gt;&lt;li class="schema-how-to-step" id="how-to-step-1619273465475"&gt;&lt;strong class="schema-how-to-step-name"&gt;Set Multi Factor Authentication for root account&lt;/strong&gt; &lt;p class="schema-how-to-step-text"&gt;Maybe you heard 2 Step Authentication or 2 Factor Authentication previously. In the Amazon ecosystem, we called this extra security layer an MFA. The root user for this account does not have Multi-factor authentication (MFA) enabled. &lt;a href="https://console.aws.amazon.com/iam/home?#security_credentials$mfa"&gt;Enable MFA&lt;/a&gt; to improve security for this account.&lt;img alt="" src="https://ercan.cloud/uploads/aws-set-root-mfa.png"/&gt;&lt;/p&gt;</description></item><item><title>Install UGREEN USB Ethernet Adapter on macOS</title><link>https://ercan.cloud/install-ugreen-usb-ethernet-adapter-on-macos/</link><pubDate>Sun, 18 Apr 2021 14:39:34 +0300</pubDate><guid>https://ercan.cloud/install-ugreen-usb-ethernet-adapter-on-macos/</guid><description>&lt;p&gt;In 2019, I need to connect my Dell XPS13 to my Juniper SRX-110 via ethernet cable but on my Dell, it doesn't have any ethernet port on it. I decided to buy UGREEN USB Ethernet Adapter from Amazon.&lt;br&gt;&lt;br&gt;The ethernet adapter is driver-free and it works on Windows and Linux perfectly. Today, I need to connect my Apple MacBookPro Silicon to the internet via the same USB adapter but macOS doesn't like this. I know, MacOS needs a driver and some kernel limitations for some additional hardware. &lt;br&gt;&lt;br&gt;Kext files are essential drivers for macOS "Kext" stands for Kernel Extension; kext files "extend" Mac OS X's kernel, the core part of the operating system, by providing additional code to be loaded when your computer boots.&lt;br&gt;&lt;br&gt;I need to disable System Integrity settings without kext. I booted my Mac on recovery mode and I jumped to Terminal and run the command below.&lt;/p&gt;</description></item><item><title>Redirect 301 HTTPS on App Engine with nginx on Google Cloud Platform</title><link>https://ercan.cloud/redirect-301-https-on-app-engine-with-nginx-on-google-cloud-platform/</link><pubDate>Thu, 15 Apr 2021 07:06:42 +0300</pubDate><guid>https://ercan.cloud/redirect-301-https-on-app-engine-with-nginx-on-google-cloud-platform/</guid><description>&lt;p&gt;I started to play with App Engine on Google Cloud Platform these days. I'm using a flexible environment with a custom runtime to run PHP in Docker. App Engine serving the content via HTTP and HTTPS as well. I checked the disable HTTP or redirect the HTTP traffic easily to HTTPS via Web UI but unfortunately, it's not possible right now. Yes, you heard right, the basic feature is not supporting!&lt;br&gt;&lt;br&gt;I check the document for (&lt;a rel="noreferrer noopener" href="https://cloud.google.com/appengine/docs/standard/php7/application-security" target="_blank"&gt;https://cloud.google.com/appengine/docs/standard/php7/application-security&lt;/a&gt;) I tried to set a 301 redirect via app.yaml file. Here is what I tried:&lt;/p&gt;</description></item><item><title>Set two different Target Groups on AWS Load Balancer with Terraform</title><link>https://ercan.cloud/set-two-different-target-groups-on-aws-load-balancer-with-terraform/</link><pubDate>Mon, 05 Apr 2021 11:18:19 +0300</pubDate><guid>https://ercan.cloud/set-two-different-target-groups-on-aws-load-balancer-with-terraform/</guid><description>&lt;p&gt;Last week, I wrote an infrastructure as a code via Terraform. In my case, I need to forward the traffic from AWS Application Load Balancer public interface to two different target groups. The hashicorp language (HCL) not a hard language but the document is missing a lot of subjects and also there are some points in terraform are undocumented.&lt;br&gt;&lt;br&gt;I've Google it before the make sure but I've seen there is a lot of questions and issues about the "Use more than one target group on AWS with terraform" subject.&lt;br&gt;&lt;br&gt;I read the suggested solutions but they do not help me. After that, I decided to use "aws_lb_listener" as a resource. Finally, I found a solution to my case for my own. You can see details below:&lt;br&gt;&lt;/p&gt;</description></item><item><title>Extend your ec2 Linux disk without reboot on Amazon Web Services</title><link>https://ercan.cloud/extend-your-ec2-linux-disk-without-reboot-on-amazon-web-services/</link><pubDate>Mon, 08 Feb 2021 15:08:26 +0300</pubDate><guid>https://ercan.cloud/extend-your-ec2-linux-disk-without-reboot-on-amazon-web-services/</guid><description>&lt;p&gt;For some reason, you have to extend your ec2 Linux server with our reboot and securely. In this port, you will learn how you can extend your ec2 Linux disk on aws.&lt;br&gt;&lt;br&gt;In this example, you will see extend the disk size from 80GiB to 120GiB.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Step 1: Modify Volume&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;br&gt;Login to your AWS Console and find your ec2's volume (disk). Here is the tip; in the left pane, there is an &lt;strong&gt;Elastic Block Store &amp;gt; Volumes&lt;/strong&gt;. Right-click to your volume and then select the "Modify Volume" option. It looks like the below image. Choose your right size and click the &lt;strong&gt;Modify&lt;/strong&gt; button.&lt;/p&gt;</description></item><item><title>Create a New Grant User on AWS RDS (MariaDB)</title><link>https://ercan.cloud/create-a-new-grant-user-on-aws-rds-mariadb/</link><pubDate>Sat, 30 Jan 2021 23:01:56 +0300</pubDate><guid>https://ercan.cloud/create-a-new-grant-user-on-aws-rds-mariadb/</guid><description>&lt;p&gt;Today, I've played with AWS RDS with MariaDB. In the normally, AWS is created just one user for access AWS RDS. Here is the steps for create a new grant user on AWS RDS with MariaDB.&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;mysql&amp;gt; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, BINLOG MONITOR, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'YOUR-MYSQL-USERNAME'@'CLIENT-IP-OR-DNS-NAME' IDENTIFIED BY 'CLEAR-TEST-PASSWORD' WITH GRANT OPTION;
&lt;p&gt;Query OK, 0 rows affected (0.009 sec)&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description></item><item><title>Amazon S3 CORS Settings with CloudFront on Amazon Web Services</title><link>https://ercan.cloud/amazon-s3-cors-settings-with-cloudfront-on-amazon-web-services/</link><pubDate>Tue, 29 Sep 2020 08:27:16 +0300</pubDate><guid>https://ercan.cloud/amazon-s3-cors-settings-with-cloudfront-on-amazon-web-services/</guid><description>&lt;p id="f6c8"&gt;If you are serving static content directly &lt;strong&gt;Amazon S3&lt;/strong&gt; via &lt;strong&gt;CloudFront (CDN) &lt;/strong&gt;you should probably get an error about fonts, images or other static contents to deliver for your users. Actually, it’s not complicated. You can fix this issue on your Amazon S3 Bucket CORS settings.&lt;/p&gt;
&lt;p id="9f9a"&gt;&lt;strong&gt;What is Amazon S3 CORS?&lt;/strong&gt;&lt;/p&gt;
&lt;p id="6d95"&gt;Cross Origin Resource Sharing (aka CORS). The CORS specification gives you the ability to build web applications that make requests to domains other than the one which supplied the primary content.&lt;/p&gt;</description></item><item><title>Take your GitLab backup everyday if it works in Docker</title><link>https://ercan.cloud/take-your-gitlab-backup-everyday-if-it-works-in-docker/</link><pubDate>Wed, 16 Sep 2020 15:27:44 +0300</pubDate><guid>https://ercan.cloud/take-your-gitlab-backup-everyday-if-it-works-in-docker/</guid><description>&lt;p&gt;I'm using GitLab in docker (because I love containerization) and I'm really okay with that because I can move the GitLab environment everywhere if I need and I can feel more elastic when I'm using docker.&lt;br&gt;&lt;br&gt;GitLab backups are really so important because you are keeping all of the source code and maybe wiki maybe more than all of the source code and backup is the first thing if you have a service running at a critical level.&lt;br&gt;&lt;/p&gt;</description></item><item><title>Find large files in CentOS, ubuntu and MacOS easily</title><link>https://ercan.cloud/find-large-files-in-centos-ubuntu-and-macos-easily/</link><pubDate>Sat, 18 Jul 2020 13:08:30 +0300</pubDate><guid>https://ercan.cloud/find-large-files-in-centos-ubuntu-and-macos-easily/</guid><description>&lt;p&gt;Sometimes, maybe everybody needs to check large files in the system. There some useful commands which I'm using often. Find the big files in Linux easily.&lt;br&gt;&lt;br&gt;Here is the first pattern:&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;find /home/ercan/ -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'&lt;/code&gt;&lt;/pre&gt;
&lt;p class="has-medium-font-size"&gt;&lt;strong&gt;If file size more than 250 MB in the system:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="wp-block-code"&gt;&lt;code lang="bash" class="language-bash"&gt;sudo find /home/ercan/ -type f -size +250000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here is the results:&lt;/p&gt;</description></item><item><title>Fix "Error: rpmdb open failed" on CentOS or Amazon Linux 2</title><link>https://ercan.cloud/fix-error-rpmdb-open-failed-on-centos-or-amazon-linux-2/</link><pubDate>Mon, 20 Apr 2020 11:49:37 +0300</pubDate><guid>https://ercan.cloud/fix-error-rpmdb-open-failed-on-centos-or-amazon-linux-2/</guid><description>&lt;p&gt;Yesterday, I have started to test some services on running Amazon Linux 2 powered by Amazon Web Services cloud. For some reason, my package manager yum is broken and when I started to update my yum database, I've got an error about rpmdb open failed. You can see my error below. If you are running on Centos7 or another Linux distro using the package manager as yum, you can also continue to read.&lt;/p&gt;</description></item><item><title>Error: No space left on the device when starting/stopping services only</title><link>https://ercan.cloud/error-no-space-left-on-the-device-when-starting-stopping-services-only/</link><pubDate>Sun, 01 Mar 2020 07:46:00 +0300</pubDate><guid>https://ercan.cloud/error-no-space-left-on-the-device-when-starting-stopping-services-only/</guid><description>&lt;p&gt;I'm using Amazon SSM Agent for connecting to EC2 instance via securely. Amazon SSM Agent is also able to connect to the EC2 instance console via aws.amazon.com web console. So, this is my preferred way.&lt;br&gt;&lt;br&gt;About a few days ago, when I tried to connect to EC2 via Amazon SSM Agent it doesn't respond and after that, I decided to connect via a regular way, yes with SSH.&lt;br&gt;&lt;br&gt;Of course, first of all, I want to restart Amazon SSM Agent and I see this:&lt;/p&gt;</description></item><item><title>Juniper SRX110H-VA VDSL2 Configuration Step by Step</title><link>https://ercan.cloud/juniper-srx110h-va-vdsl2-configuration-step-by-step/</link><pubDate>Sun, 09 Feb 2020 06:48:00 +0300</pubDate><guid>https://ercan.cloud/juniper-srx110h-va-vdsl2-configuration-step-by-step/</guid><description>&lt;p&gt;I was talking on the phone with &lt;a href="https://www.linkedin.com/in/kenanbilgic/" target="_blank" rel="noreferrer noopener"&gt;Kenan Bilgic&lt;/a&gt; last night and I told him to "I want to get a Juniper SRX-110H-VA". After this, Kenan told me, "I've already got a Juniper SRX-110H-VA, and just send me to your address, I can ship it for you."&lt;/p&gt;
&lt;p&gt;I'm using &lt;a href="https://turk.net/" target="_blank" rel="noreferrer noopener"&gt;TurkNet&lt;/a&gt; as an internet provider and they are really cheap and fast internet provider in my neighborhood. My connection type is VDSL2 and I need to make a VPN connection through Amazon Web Services (AWS).&lt;/p&gt;</description></item><item><title>Enable Logrotation for Docker Containers</title><link>https://ercan.cloud/enable-logrotation-for-docker-containers/</link><pubDate>Fri, 29 Nov 2019 17:17:00 +0300</pubDate><guid>https://ercan.cloud/enable-logrotation-for-docker-containers/</guid><description>&lt;p&gt;When you install and use Docker on your system, the container running in the docker can generate a large number of logs while you are not aware of the background.&lt;/p&gt;
&lt;p&gt;Although the Docker service normally supports logrotate, this support comes off by default. If one day your disk ends suddenly, then you will know exactly what I mean. : )&lt;/p&gt;
&lt;p&gt;If you are installing the docker service for the first time in a server and running the container for the first time, you can follow the steps below.&lt;/p&gt;</description></item><item><title>Download specific file extension via wget easily on terminal</title><link>https://ercan.cloud/download-specific-file-extension-via-wget-easily-on-terminal/</link><pubDate>Fri, 22 Nov 2019 16:37:00 +0300</pubDate><guid>https://ercan.cloud/download-specific-file-extension-via-wget-easily-on-terminal/</guid><description>&lt;p&gt;Sometimes, there may be files with more than one extension in a directory or folder. For example, .jpg, .png, .gif, .mp3, .mp4 etc. You want to download only gif files specifically from that source, but don't know how to do this? Don't be afraid, you're right.&lt;br&gt;&lt;br&gt;wget is small software with a GNU license (i.e. free), by default on Linux and macOS operating systems.&lt;br&gt;&lt;br&gt;The other day, I wanted to download the same .mp4 and .webm videos in an ftp directory, but I would either download the .mp4 ones or .webm files. Because of the size of 100 .mp4 files is 10 GB, 100 .webm files with the same content are only 6 GB. I decided to download the .webm files as I wanted to allocate much less disk space.&lt;br&gt;&lt;br&gt;For this, I ran the following command and started watching the screen.&lt;/p&gt;</description></item><item><title>Find the exact size of certain files in Linux via terminal</title><link>https://ercan.cloud/find-the-exact-size-of-certain-files-in-linux-via-terminal/</link><pubDate>Fri, 15 Nov 2019 19:00:00 +0300</pubDate><guid>https://ercan.cloud/find-the-exact-size-of-certain-files-in-linux-via-terminal/</guid><description>&lt;p&gt;One day, there may be a lot of files in more than one extension in the macOS, Linux or server you use, and you may be wondering about the size of these files or just want to see the size of the files with the corresponding extension for a specific study.&lt;/p&gt;
&lt;p&gt;The other day, the server I was working on had both * .webm and * .mp4 file extensions, and I had to upgrade the server's disk, or I would delete those with the same .mp4 extension from the same videos.&lt;/p&gt;</description></item><item><title>Disable SELinux on CentOS 7 or CentOS 8</title><link>https://ercan.cloud/disable-selinux-on-centos-7-or-centos-8/</link><pubDate>Fri, 08 Nov 2019 19:00:00 +0300</pubDate><guid>https://ercan.cloud/disable-selinux-on-centos-7-or-centos-8/</guid><description>&lt;p&gt;This tutorial shows you how you can disable SELinux (Security-Enhanced Linux) on your CentOS server. The CentOS version should be 7 or 8. The version does not matter.&lt;/p&gt;
&lt;h2&gt;What is SELinux?&lt;/h2&gt;
&lt;p&gt;SELinux is a security mechanism directly controlling by the kernel. It allows administrators and users more control over access controls on access based SELinux policies.&lt;/p&gt;
&lt;p&gt;SELinux has three different modes of operation. Here they are:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Enforcing:&lt;/strong&gt; Allows access based on SELinux policies and the policy rules.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Permissive:&lt;/strong&gt; SELinux only logs actions that would have been denied if running in enforcing mode. &lt;mark class="annotation-text annotation-text-yoast" id="annotation-text-39c9eb87-6132-458a-a122-4e327a776332"&gt;&lt;/mark&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Disabled:&lt;/strong&gt; No messages logged and there is no more SELinux policy enabled on the server. Most of the time disabled mode is using web control panels like cPanel and/or Plesk.&lt;/li&gt;&lt;/ol&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Only the root user or a user with &lt;strong&gt;sudo privileges&lt;/strong&gt; can update SELinux mode.&lt;/p&gt;</description></item><item><title>Hello Blog!</title><link>https://ercan.cloud/hello-blog/</link><pubDate>Sun, 03 Nov 2019 22:24:00 +0300</pubDate><guid>https://ercan.cloud/hello-blog/</guid><description>&lt;p&gt;I don't know how many times I set up a blog to myself to take notes or share some technical information about Linux servers and some Linux software such as nginx, phpMyAdmin, MySQL, PHP-FPM, etc but I never success about writing a blog post regularly.&lt;/p&gt;
&lt;p&gt;My blog address contains my first name and my last name. So, you know my name I guess : )&lt;/p&gt;
&lt;p&gt;I'm working at &lt;a rel="noreferrer noopener" aria-label="Masomo (opens in a new tab)" href="https://linkedin.com/company/masomo" target="_blank"&gt;Masomo&lt;/a&gt; as a Linux System Administrator but mostly doing DevOps things with an awesome team.&lt;/p&gt;</description></item></channel></rss>