<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>resilient-architectures on Alperen Doc</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/</link><description>Recent content in resilient-architectures on Alperen Doc</description><generator>Hugo</generator><language>en</language><atom:link href="https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/index.xml" rel="self" type="application/rss+xml"/><item><title>ha-vs-fault-tolerance</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/ha-vs-fault-tolerance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/ha-vs-fault-tolerance/</guid><description>&lt;h1 id="high-availability-vs-fault-tolerance"&gt;High Availability vs Fault Tolerance&lt;a class="anchor" href="#high-availability-vs-fault-tolerance"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Every resilience question starts here: how much downtime is acceptable? The exam expects you to distinguish two very different promises - and to hunt for &lt;strong&gt;single points of failure (SPOF)&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="the-definitions"&gt;The definitions&lt;a class="anchor" href="#the-definitions"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;High Availability (HA)&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;Fault Tolerance (FT)&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Goal&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Minimize downtime&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Zero&lt;/strong&gt; downtime&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Behavior on failure&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Recover quickly (seconds-minutes)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Continue without interruption&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cost&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moderate&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Expensive (everything duplicated)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Example&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Multi-AZ RDS (Relational Database Service) with failover&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Aircraft systems, active-active multi-region&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;Reliability&lt;/strong&gt; is the umbrella term: the system does what it should over time. &lt;strong&gt;Scalability&lt;/strong&gt; (vertical vs horizontal) and &lt;strong&gt;recoverability&lt;/strong&gt; feed into it.&lt;/p&gt;</description></item><item><title>disaster-recovery-strategies</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/disaster-recovery-strategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/disaster-recovery-strategies/</guid><description>&lt;h1 id="disaster-recovery-strategies"&gt;Disaster Recovery Strategies&lt;a class="anchor" href="#disaster-recovery-strategies"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;This is a pure memorization page with a huge payoff: the four DR (disaster recovery) strategies appear in almost every resiliency scenario. Learn them as a &lt;strong&gt;cost ↔ recovery time&lt;/strong&gt; slider.&lt;/p&gt;&#10;&lt;h2 id="two-numbers-decide-everything"&gt;Two numbers decide everything&lt;a class="anchor" href="#two-numbers-decide-everything"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;RPO (Recovery Point Objective)&lt;/strong&gt; = how much data can I afford to &lt;strong&gt;lose&lt;/strong&gt;? (measured in time back)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;RTO (Recovery Time Objective)&lt;/strong&gt; = how fast must I be &lt;strong&gt;back up&lt;/strong&gt;? (measured in downtime)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Backup every 24h → RPO = 24h (you lose up to a day). Restore takes 6h → RTO = 6h.&lt;/p&gt;</description></item><item><title>elb-and-auto-scaling-resilience</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/elb-and-auto-scaling-resilience/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/elb-and-auto-scaling-resilience/</guid><description>&lt;h1 id="elb-elastic-load-balancing-and-auto-scaling-resilience"&gt;ELB (Elastic Load Balancing) and Auto Scaling Resilience&lt;a class="anchor" href="#elb-elastic-load-balancing-and-auto-scaling-resilience"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The load balancer is the front door and the Auto Scaling Group is the immune system. Together they answer most &amp;ldquo;traffic doubles at noon&amp;rdquo; and &amp;ldquo;an instance died&amp;rdquo; questions.&lt;/p&gt;&#10;&lt;h2 id="choosing-the-load-balancer"&gt;Choosing the load balancer&lt;a class="anchor" href="#choosing-the-load-balancer"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;ALB (Application Load Balancer)&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;NLB (Network Load Balancer)&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;GWLB (Gateway Load Balancer)&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;CLB (Classic Load Balancer) - legacy&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Layer&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;7&lt;/strong&gt; (HTTP/HTTPS)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt; (TCP/UDP/TLS)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3 (IP)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4/7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Routing&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Path, host, headers, query&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Port/IP, ultra low latency&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3rd party appliances&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Simple&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Static IP&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;No (use DNS)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Yes&lt;/strong&gt; (and Elastic IPs)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Yes&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;No&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Use case&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Web apps, containers, Lambda targets&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Gaming, IoT, extreme perf, &lt;strong&gt;private link entry&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Firewalls, IDS/IPS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Don&amp;rsquo;t pick this&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Exam shortcuts:&lt;/p&gt;</description></item><item><title>decoupling-with-sqs-sns</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/decoupling-with-sqs-sns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/decoupling-with-sqs-sns/</guid><description>&lt;h1 id="decoupling-with-sqs-simple-queue-service-and-sns-simple-notification-service"&gt;Decoupling with SQS (Simple Queue Service) and SNS (Simple Notification Service)&lt;a class="anchor" href="#decoupling-with-sqs-simple-queue-service-and-sns-simple-notification-service"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&amp;ldquo;When a downstream system fails, the whole app shouldn&amp;rsquo;t fail&amp;rdquo; → &lt;strong&gt;decouple with a queue&lt;/strong&gt;. SQS/SNS questions are among the most frequent on the exam, and the answers hinge on a few precise differences.&lt;/p&gt;&#10;&lt;h2 id="sqs---the-pull-based-queue"&gt;SQS - the pull-based queue&lt;a class="anchor" href="#sqs---the-pull-based-queue"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Producers send messages, &lt;strong&gt;consumers poll and delete&lt;/strong&gt;. Fully managed, near unlimited scale.&lt;/p&gt;&#10;&lt;h3 id="standard-vs-fifo"&gt;Standard vs FIFO&lt;a class="anchor" href="#standard-vs-fifo"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;Standard&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;FIFO&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Order&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Best-effort (may reorder)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Strict per message group&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Delivery&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;At-least-once (duplicates possible)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Exactly-once processing&lt;/strong&gt; (deduplicated)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Throughput&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Nearly unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;300 msg/s (3,000 with batching)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Use when&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Speed matters&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Orders, payments, &amp;ldquo;exactly once&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;FIFO queue names end in &lt;code&gt;.fifo&lt;/code&gt;. &lt;strong&gt;Message group ID&lt;/strong&gt; = parallel processing lanes within ordering; &lt;strong&gt;deduplication ID&lt;/strong&gt; = duplicate suppression window (5 min).&lt;/p&gt;</description></item><item><title>event-driven-eventbridge-step-functions</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/event-driven-eventbridge-step-functions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/event-driven-eventbridge-step-functions/</guid><description>&lt;h1 id="event-driven-architecture-eventbridge-and-step-functions"&gt;Event-Driven Architecture: EventBridge and Step Functions&lt;a class="anchor" href="#event-driven-architecture-eventbridge-and-step-functions"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Queues move messages; &lt;strong&gt;events&lt;/strong&gt; announce that something happened. The exam tests whether you can pick between &amp;ldquo;process this work item&amp;rdquo; (SQS), &amp;ldquo;notify everyone&amp;rdquo; (SNS), &amp;ldquo;route this event&amp;rdquo; (EventBridge) and &amp;ldquo;orchestrate this workflow&amp;rdquo; (Step Functions).&lt;/p&gt;&#10;&lt;h2 id="amazon-eventbridge"&gt;Amazon EventBridge&lt;a class="anchor" href="#amazon-eventbridge"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The evolution of CloudWatch Events: a serverless &lt;strong&gt;event bus&lt;/strong&gt; with rules.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Default bus&lt;/strong&gt; - AWS service events (EC2 (Elastic Compute Cloud) state changes, S3 (Simple Storage Service) events via CloudTrail&amp;hellip;)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Custom bus&lt;/strong&gt; - your application&amp;rsquo;s events; can be shared cross-account&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Partner sources&lt;/strong&gt; - SaaS events (Zendesk, Datadog, Shopify&amp;hellip;) land directly in your bus&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Rules&lt;/strong&gt; match event patterns and route to targets (Lambda, SQS, SNS, Step Functions&amp;hellip;)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Content filtering&lt;/strong&gt;: event patterns filter on fields before delivery (unlike SNS which delivers everything)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Archive and replay&lt;/strong&gt; - store events and replay them later (&amp;ldquo;we lost 2 hours of processing&amp;rdquo;)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Schema registry&lt;/strong&gt; - discover and generate code for event shapes&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="eventbridge-vs-sns-vs-sqs"&gt;EventBridge vs SNS vs SQS&lt;a class="anchor" href="#eventbridge-vs-sns-vs-sqs"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Need&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Answer&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Durable work queue, backpressure&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SQS&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;One message → many push subscribers&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SNS&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Filter and route events by content, multiple sources, replay&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;EventBridge&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fan-out with durability&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;SNS → SQS (or EventBridge → SQS)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&amp;ldquo;Event pattern filtering&amp;rdquo; and &amp;ldquo;replay archived events&amp;rdquo; are the two keywords that make EventBridge the answer.&lt;/p&gt;</description></item><item><title>streaming-kinesis-data-streams-firehose</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/streaming-kinesis-data-streams-firehose/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/streaming-kinesis-data-streams-firehose/</guid><description>&lt;h1 id="real-time-streaming-kinesis-data-streams-data-firehose-and-apache-flink"&gt;Real-Time Streaming: Kinesis Data Streams, Data Firehose and Apache Flink&lt;a class="anchor" href="#real-time-streaming-kinesis-data-streams-data-firehose-and-apache-flink"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;When a scenario mentions &lt;strong&gt;clickstreams, IoT telemetry, financial ticks, or millions of log events per second&lt;/strong&gt;, you are in the streaming world. The exam tests whether you can pick between &lt;strong&gt;Kinesis Data Streams (KDS)&lt;/strong&gt;, &lt;strong&gt;Amazon Data Firehose&lt;/strong&gt;, &lt;strong&gt;Managed Service for Apache Flink&lt;/strong&gt;, and &lt;strong&gt;SQS (Simple Queue Service)&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="the-streaming-architecture-pipeline"&gt;The streaming architecture pipeline&lt;a class="anchor" href="#the-streaming-architecture-pipeline"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;pre class="mermaid"&gt;flowchart LR&#10; prod[IoT / Clickstream / Logs] --&amp;gt; kds[Kinesis Data Streams: real-time ingest &amp;amp; replay]&#10; kds --&amp;gt; flink[Managed Apache Flink: real-time SQL / windowing]&#10; kds --&amp;gt; lambda[Lambda / KCL consumers]&#10; kds --&amp;gt; fh[Data Firehose: buffer, transform, deliver]&#10; fh --&amp;gt;|Lambda transform / Parquet| s3[(S3 Data Lake)]&#10; fh --&amp;gt; rs[(Redshift)]&#10; fh --&amp;gt; os[(OpenSearch)]&lt;/pre&gt;&lt;h2 id="kinesis-data-streams-kds-vs-amazon-data-firehose"&gt;Kinesis Data Streams (KDS) vs Amazon Data Firehose&lt;a class="anchor" href="#kinesis-data-streams-kds-vs-amazon-data-firehose"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This is one of the highest-frequency comparisons across Domains 2 and 3:&lt;/p&gt;</description></item><item><title>rds-and-aurora-failover</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/rds-and-aurora-failover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/rds-and-aurora-failover/</guid><description>&lt;h1 id="rds-relational-database-service-and-aurora-resilience-multi-az-vs-read-replicas"&gt;RDS (Relational Database Service) and Aurora Resilience: Multi-AZ vs Read Replicas&lt;a class="anchor" href="#rds-relational-database-service-and-aurora-resilience-multi-az-vs-read-replicas"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The single most confused pair in the whole exam. One is for &lt;strong&gt;high availability&lt;/strong&gt;, the other for &lt;strong&gt;performance&lt;/strong&gt; - and mixing them up is exactly what the question writers count on.&lt;/p&gt;&#10;&lt;h2 id="multi-az-vs-read-replicas"&gt;Multi-AZ vs Read Replicas&lt;a class="anchor" href="#multi-az-vs-read-replicas"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;Multi-AZ&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;Read Replica&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Purpose&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Failover / HA (high availability)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Read scaling&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Replication&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Synchronous&lt;/strong&gt; standby&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Asynchronous&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Reads from standby&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;No&lt;/strong&gt; (standby is invisible)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Yes (you connect to its endpoint)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Failover&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Automatic (~60s, DNS change)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Manual promotion&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Regions&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Same region (different AZs (Availability Zone))&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Cross-region&lt;/strong&gt; possible&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Combining both is the standard &amp;ldquo;production&amp;rdquo; answer: Multi-AZ for safety, replicas for scale.&lt;/p&gt;</description></item><item><title>route53-routing-policies-and-failover</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/route53-routing-policies-and-failover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/route53-routing-policies-and-failover/</guid><description>&lt;h1 id="route-53-routing-policies-and-failover"&gt;Route 53 Routing Policies and Failover&lt;a class="anchor" href="#route-53-routing-policies-and-failover"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;DNS is the cheapest high-availability tool AWS gives you. The exam wants you to match a business requirement to one of seven routing policies - the words &amp;ldquo;latency&amp;rdquo;, &amp;ldquo;geolocation&amp;rdquo;, &amp;ldquo;failover&amp;rdquo; and &amp;ldquo;weighted&amp;rdquo; each map to exactly one answer.&lt;/p&gt;&#10;&lt;h2 id="the-routing-policies"&gt;The routing policies&lt;a class="anchor" href="#the-routing-policies"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Policy&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;What it does&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Scenario keyword&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Simple&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;One record, random answer&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;single resource&amp;rdquo;, no smartness needed&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Split traffic by %&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;canary 10% to the new version&amp;rdquo;, &amp;ldquo;A/B test&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Latency&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Send users to the &lt;strong&gt;lowest latency&lt;/strong&gt; region&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;best performance for the user&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Failover&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Active-passive; health check flips DNS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;disaster recovery&amp;rdquo;, &amp;ldquo;passive standby&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Geolocation&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Route by &lt;strong&gt;user&amp;rsquo;s location&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;content licensing&amp;rdquo;, &amp;ldquo;different content per country&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Geoproximity&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Route by resource location + bias&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;shift more traffic to region X&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;IP-based&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Route by user&amp;rsquo;s IP CIDR&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;these offices go to that endpoint&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Multivalue answer&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Up to 8 healthy records, client picks&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&amp;ldquo;poor man&amp;rsquo;s load balancing&amp;rdquo;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="health-checks-and-failover"&gt;Health checks and failover&lt;a class="anchor" href="#health-checks-and-failover"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Route 53 health checks monitor endpoints (HTTP/TCP, string match), or &lt;strong&gt;CloudWatch alarms&lt;/strong&gt; as the source&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Failover routing&lt;/strong&gt; + health check = automatic active-passive DR (disaster recovery): primary unhealthy → DNS points at secondary&lt;/li&gt;&#10;&lt;li&gt;Note the DNS TTL (time to live) effect: failover is only as fast as the record&amp;rsquo;s TTL (see &lt;a href="../../../aws/dns/dns-ttl-and-caching/"&gt;dns-ttl-and-caching&lt;/a&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Classic pattern - &lt;strong&gt;static site failover to S3 (Simple Storage Service)&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>vpc-connectivity-peering-tgw-direct-connect</title><link>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/vpc-connectivity-peering-tgw-direct-connect/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.ulutasalperen.com/docs/aws-saa/resilient-architectures/vpc-connectivity-peering-tgw-direct-connect/</guid><description>&lt;h1 id="vpc-virtual-private-cloud-connectivity-peering-transit-gateway-vpn-and-direct-connect"&gt;VPC (Virtual Private Cloud) Connectivity: Peering, Transit Gateway, VPN and Direct Connect&lt;a class="anchor" href="#vpc-virtual-private-cloud-connectivity-peering-transit-gateway-vpn-and-direct-connect"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&amp;ldquo;Connect these networks&amp;rdquo; questions come in three flavors: VPC-to-VPC, VPC-to-on-prem, and hybrid at scale. The exam wants the &lt;strong&gt;right topology for the scale&lt;/strong&gt; - not just &amp;ldquo;what works&amp;rdquo;.&lt;/p&gt;&#10;&lt;h2 id="vpc-peering"&gt;VPC Peering&lt;a class="anchor" href="#vpc-peering"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Direct network connection between two VPCs using private IPs.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;No transitive routing&lt;/strong&gt;: A↔B and B↔C does &lt;strong&gt;not&lt;/strong&gt; give A↔C (mesh explodes with VPC count)&lt;/li&gt;&#10;&lt;li&gt;CIDR blocks must &lt;strong&gt;not overlap&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Works &lt;strong&gt;cross-region and cross-account&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;No bandwidth bottleneck (uses AWS backbone), no single point of failure&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt;: 2-3 VPCs that all need to talk to each other&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="transit-gateway"&gt;Transit Gateway&lt;a class="anchor" href="#transit-gateway"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The hub-and-spoke answer for scale:&lt;/p&gt;</description></item></channel></rss>