技術文章

A collection of 4 posts
CloudFront 快取設定詳解:Cache Key、TTL、Path Pattern 是什麼?
技術文章

CloudFront 快取設定詳解:Cache Key、TTL、Path Pattern 是什麼?

當你打開 CloudFront 的「行為」頁面時,常常會看到一些看不懂的預設值,像是:( 在 行為 Behaviors 頁面可以看到以下內容 ) * 只有一個預設值,但完全不曉得要填什麼… * 點選 建立行為 之後,又有一堆選項,也是看不懂: (從 行為 Behaviors 頁面點選 建立行為 ,下拉選單到快取政策後可以看到) * 如果路徑模式選填 /*.js,則會出現推薦的快取政策 CachingOptimized,說適合 path pattern 到底這些是什麼意思?為什麼要選 AWS 推薦的設定?此文會一步步慢慢介紹 CloudFront 常見的快取概念,包括: * Cache Key 是什麼? * 為什麼 CloudFront 預設 Cache Key 是兩個? * TTL 是什麼?
9 min read
CloudFront cache 錯頁面 Debug 流程(Rails 篇)
技術文章

CloudFront cache 錯頁面 Debug 流程(Rails 篇)

以前在 bootcamp 學習套用 CDN 的時候,因為懂的少也不懂得懷疑,覺得反正部署之後,圖片有經過 CDN 、顯示得出來就好,其他不管。 但現在有了經驗、也踩了各種雷坑之後,疑心病加重!每個設定都覺得疑點重重,在想幹嘛要有這個,設定這是想做什麼!每個都覺得這一定有問題!!決定用這篇紀錄我的實作心得。 事件緣起:Reddit 真實案例 在 Reddit 上看到這篇討論,作者遇到了一個恐怖的狀況:CloudFront 把 A 使用者的頁面快取起來,卻回傳給 B 使用者看! 想像一下這個場景: * 付費用戶登入後看到的專屬內容,竟然被免費用戶看到了 * 或者相反,免費用戶看到了付費才能看的頁面 * 更糟的是,用戶 A 的個人資訊被用戶 B 看到了 Production 環境要是真的發生這種事情還得了啊!天啊!!!!緊張如我開始有了一連串的質疑! 問題:我的
8 min read
CDN: Push 和 Pull CDN 的應用場景與使用考量
技術文章

CDN: Push 和 Pull CDN 的應用場景與使用考量

什麼是 CDN ? 全名是 Content Delivery Network(內容傳遞網路),是一種透過分佈式的伺服器網路來加速網站和應用程式內容傳遞的技術。這些伺服器分佈在世界各地,目的是將內容更靠近用戶,從而提高訪問速度和效能。CDN 的伺服器稱為節點,當用戶請求網站內容時,CDN 會將請求路由到距離用戶最近的節點,提供最快的回應時間。 如果要我比喻 CDN 的話,他很像物流業者的倉庫。 舉例來說:物流業者有總倉庫和各個地點的小倉庫,當小倉庫設在離你家很近的地方,而且物流業者定期都會從總倉庫拉貨到你家旁邊的小倉庫的時候,當你訂貨購買,貨物只要從你家小倉庫送到你家就好,相當快速。 → 所以,以台灣用戶來說,如果有節點在台灣,回應速度是最快的。 可以想像成:貨物從日本倉庫送來 vs 貨物從台灣倉庫直送的時間差 什麼是 Push 型 CDN ? * 主動上傳內容: 在 push 型 CDN 中,需要「主動」將資源上傳到你指定的 storage,
8 min read
PostgreSQL中文全文檢索:pg_trgm 與 pg_bigm 模組性能對比
技術文章

PostgreSQL中文全文檢索:pg_trgm 與 pg_bigm 模組性能對比

本文研究了 PostgreSQL 的兩個 extension module - pg_trgm 和 pg_bigm,比較它們在中文全文檢索方面的性能和特點。並且有詳細的功能對比和實際的效能測試 為什麼要比較 pg_trgm 和 pg_bigm? 主要是因為現在在使用的是 postgreSQL,原本做中文檢索只用 like 很慢,想要做中文全文檢索但是又不想要導入全新工具,受限於中文全文檢索網路上的資源很少,這邊先看看 postgreSQL 有沒有什麼神奇小道具可以支援,而 pg_trgm 和 pg_bigm 這兩個都是 postgres 的 extension,而且 AWS RDS 有支援。 pg_trgm 和 pg_bigm 比較 什麼是
7 min read