<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudfront Functions on Build on AWS</title><link>https://buildonaws.lakil.org/ko/tags/cloudfront-functions/</link><description>Recent content in Cloudfront Functions on Build on AWS</description><generator>Hugo</generator><language>ko</language><lastBuildDate>Fri, 12 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://buildonaws.lakil.org/ko/tags/cloudfront-functions/index.xml" rel="self" type="application/rss+xml"/><item><title>CloudWatch RUM + CloudFront Functions + KVS로 데이터 기반 Speculation Rules 구축하기</title><link>https://buildonaws.lakil.org/ko/posts/data-driven-speculation-rules/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://buildonaws.lakil.org/ko/posts/data-driven-speculation-rules/</guid><description>&lt;h1 id="cloudwatch-rum--cloudfront-functions--kvs로-데이터-기반-speculation-rules-구축하기"&gt;CloudWatch RUM + CloudFront Functions + KVS로 데이터 기반 Speculation Rules 구축하기&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Speculation Rules API는 사용자가 다음에 방문할 페이지를 브라우저가 미리 로드하거나 렌더링하도록 지시합니다. 핵심 과제는 &amp;ldquo;어떤 페이지를&amp;rdquo; 예측하느냐입니다. 이 글에서는 자동화 파이프라인을 구축합니다: CloudWatch RUM이 실제 사용자 네비게이션 패턴을 수집하고, 일일 Lambda가 페이지별 상위 목적지를 계산하여 S3에 JSON 파일로 업로드하고 CloudFront KeyValueStore에 매핑을 기록합니다. CloudFront Function(viewer-response)이 &lt;code&gt;Speculation-Rules&lt;/code&gt; 응답 헤더를 동적으로 삽입합니다. 데이터가 없는 페이지는 안전한 기본값(pointer-down prefetch)을 적용합니다. Terraform 코드 전체 포함.&lt;/p&gt;</description></item><item><title>봇을 차단하지 마세요. 속이세요.</title><link>https://buildonaws.lakil.org/ko/posts/bot-deception-with-waf-bot-control/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://buildonaws.lakil.org/ko/posts/bot-deception-with-waf-bot-control/</guid><description>&lt;h1 id="봇을-차단하지-마세요-속이세요"&gt;봇을 차단하지 마세요. 속이세요.&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Origin에 도달하는 봇 트래픽은 인프라 비용을 낭비하고, 비즈니스 메트릭(전환율, 참여도, 분석)을 왜곡하며, 차단 룰 유지에 지속적 운영 부담을 줍니다. 기만은 이 비용을 줄입니다: AWS WAF Bot Control을 count 전용 모드로 라벨만 부착하고, dynamic label interpolation으로 라벨을 요청 헤더에 변환한 뒤, CloudFront Function + origin이 기만적 응답을 반환합니다 — 강제 타임아웃, 오염된 데이터, shadow banning. 봇은 탐지 신호 없이 HTTP 200을 수신하므로, 우회 반복을 유발하는 피드백 루프가 제거됩니다.&lt;/p&gt;</description></item><item><title>왜 내 블로그는 봇한테 HTML을 안 주는가</title><link>https://buildonaws.lakil.org/ko/posts/serving-markdown-to-bots/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://buildonaws.lakil.org/ko/posts/serving-markdown-to-bots/</guid><description>&lt;h1 id="왜-내-블로그는-봇한테-html을-안-주는가"&gt;왜 내 블로그는 봇한테 HTML을 안 주는가&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; 검증된 봇에게 HTML 대신 Markdown 원본을 제공하면 두 가지를 얻습니다. AI 답변에 내 콘텐츠가 왜곡 없이 인용되고, Data Transfer Out 비용이 94 % 줄어듭니다. AWS WAF Bot Control로 봇을 식별하고, CloudFront Functions로 URL을 재작성하는 구조입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Terms:&lt;/strong&gt; Bot Control Targeted = AWS WAF의 봇 탐지 레벨. IP 평판·TLS 핑거프린팅·행동 분석을 조합해 봇을 분류 | CloudFront Functions = CloudFront 엣지에서 JavaScript를 실행하는 경량 컴퓨팅(viewer-request/viewer-response 단계) | Data Transfer Out = CloudFront에서 인터넷으로 나가는 트래픽에 부과되는 비용 | 검증된 봇(Verified Bot) = AWS WAF가 신원을 확인한 신뢰할 수 있는 크롤러(Googlebot, Bingbot, GPTBot 등)&lt;/p&gt;</description></item></channel></rss>