Home » Articles posted by Gea-Suan Lin (Page 2)

AWS 推出 MongoDB 服務:Amazon DocumentDB

AWS 推出了 Amazon DocumentDB 服務,相容於 MongoDB 3.4 3.6 的界面:「New – Amazon DocumentDB (with MongoDB Compatibility): Fast, Scalable, and Highly Available」。

這個新聞其實引起不少關注,不單純是 AWS 支援了 MongoDB service,而是 AWS 對去年一系列 license issue 的態度。

先講 license 的事情,後面再提技術上的差異。

背景是 MongoDB 在去年十月的時候決定換 license,決定從 GNU AGPL 換成他們自己定義的 SSPL:「MongoDB now released under the Server Side Public License」。

相關的報導可以參考 TechCrunch 當時寫的「MongoDB switches up its open-source license」,主要的重點在於:

[T]he SSPL explicitly states that anybody who wants to offer MongoDB as a service — or really any other software that uses this license — needs to either get a commercial license or open source the service to give back the community.

而 AWS 在三個月後的回應也意外的清楚,他直接照著 MongoDB 3.6 版的 API 刻一個出來,不需要用你的軟體提供服務 (所以就不用照你的 license 走):

Amazon DocumentDB implements the Apache 2.0 open source MongoDB 3.6 API by emulating the responses that a MongoDB client expects from a MongoDB server, allowing you to use your existing MongoDB drivers and tools with Amazon DocumentDB.

TechCrunch 下的標題也頗直接,認為 AWS 對這套搞法不怎麼認同:「AWS gives open source the middle finger」。

回到技術上的層面來看,可以看到 Amazon DocumentDB 提供的技術資料看起來跟 Amazon Aurora 很像,都是六份三區:

Amazon DocumentDB uses a purpose-built SSD-based storage layer, with 6x replication across 3 separate Availability Zones.

連 read replica 的限制也都是 15 份,可以「猜測」後面應該是用同一套技術在運作...:

In Amazon DocumentDB, the storage and compute are decoupled, allowing each to scale independently, and developers can increase the read capacity to millions of requests per second by adding up to 15 low latency read replicas in minutes, regardless of the size of your data.

看了一下價錢,最小台是 db.r4.large,需要 USD$0.277/hr,相當於一個月要 USD$200 左右,而且 storage 與 i/o 要另外計算,門檻不算低。

目前主要還是歐美區先上:

Amazon DocumentDB (with MongoDB compatibility) is available now and you can start using it today in the US East (N. Virginia), US East (Ohio), US West (Oregon), and Europe (Ireland) Regions.

隔壁棚的 Redis 不知道有什麼感想...

幫你在本機產生 localhost 的 SSL Certificate

mkcert 這個工具可以產生出讓系統 (包括瀏覽器) 信任的 https://localhost/:「mkcert: valid HTTPS certificates for localhost」。

先建立 CA 的 root key 與 root certificate,然後把 root certificate 塞到系統與各軟體的信任清單內,再產生 localhost 的 key 與 certificate 出來給前面的 CA root key 簽名。把這些事情包裝起來就是 mkcert 了。

拿來開發軟體時比較方便一點,HSTS 的程式碼就可以全環境共用了...

AWS 宣佈 Fargate 大幅降價

AWS Fargate 大幅降價:「Announcing AWS Fargate Price Reduction By Up To 50%」、「AWS Fargate Price Reduction – Up to 50%」。

先前 Fargate 的定價超級高,基本上是不會有正常應用會丟上去的情境... 如果可以接受 Fargate 的價錢,平常就用 ECS 或是 EKS 開三到五倍的機器在旁邊待機就好了,container scale 的速度還比 Fargate 快。

這次降價幅度很大,vCPU 降 20% 其實不算小,但相較於 Memory 降的 65% 就感覺好像沒降很多 (...):

Effective Jan 07, 2019, we are reducing the price for AWS Fargate by 20% for vCPU and 65% for memory across all regions where Fargate is currently available.

us-east-1m5.24xlarge 的價錢來看是 USD$4.608/hr。以他的 96 vCPU + 384 GiB RAM 對應到 Fargate 來算是 USD$5.59296/hr,大約多 21% 的價錢。

這樣的產品價位看起來才有對應的空間...

Yubico 宣佈推出 Lightning 的 U2F 界面...

YubicoCES 2019 上宣佈推出兩用版的 YubiKey,同時支援 USB-CLightning 接頭:「Yubico Launches the Security Key NFC and a Private Preview of the YubiKey for Lightning at CES 2019」。

從照片可以看出來是直接做成兩側各一個頭:

目前是 Private Preview,開發者需要跟 Yubico 申請:

If you are a developer or service that would like to support strong hardware authentication on iOS, we invite you to work with us by applying to participate in the YubiKey for Lightning Program. Selected participants will have access to the private preview of YubiKey for Lightning and also the Yubico Mobile iOS SDK for Lightning.

不過看起來是硬體限制沒辦法朝 NFC 支援?另外如果蘋果下一代 iPhone 換掉變成 USB-C 就搞笑了...

SQLite 的全文搜尋功能

算是補充之前看過,但一直沒研究的東西...

看到 Simon Willison 的「Exploring search relevance algorithms with SQLite」這篇才花些時間看了一下 SQLite 的搜尋功能。

看起來不論是 FTS4 或是 FTS5 都沒有處理 CJK 文字的功能,可能要當作 unigram 之類的方式處理 (參考「Unicode support for non-English characters with Sqlite Full Text Search in Android」這篇),不過排名的部份有支援 BM25,整體看起來應該是還算堪用。

GitHub Free 開放 Private Repository

GitHub 的免費版本宣佈開放 Private Repository:「New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering」。

有些限制 (最多三個參與者),但對不少人應該是夠用了:

GitHub Free now includes unlimited private repositories. For the first time, developers can use GitHub for their private projects with up to three collaborators per repository for free. Many developers want to use private repos to apply for a job, work on a side project, or try something out in private before releasing it publicly. Starting today, those scenarios, and many more, are possible on GitHub at no cost. Public repositories are still free (of course—no changes there) and include unlimited collaborators.

不過 Gitea 也用習慣了,先放著吧...

reCAPTCHA 與語音辨識:以子之矛,攻子之盾

GooglereCAPTCHA 大概是目前最常用的反制機器人工具了,但因為 accessibility 的原因 (而且應該是有法令要求),還是需要提供盲人可以存取的方式,也就是以語音判斷是否是機器人。

unCaptcha2 就是用這塊,加上 Google 自家的語音辨識 API (也支援其他家 API) 可以直接打穿:

現有的程式碼已經先被 Google 反制,但目的是展示出這樣的概念。

便宜 VPS 主機的找法...

因為手上 side project 很多,有時候想要長期測一些東西,就需要租用性價比比較好的 VPS。

其中 VPS 的基準點應該是以 LinodeDigitalOcean 以及 Vultr 這幾家為主,而目前這幾家的基準點都是 RAM 的部份,目前是 1GB RAM VPS 約 $5/month。

如果你不想花太多時間在研究,選這幾家應該沒什麼問題,Linode 與 Vultr 都算是很不錯的方案。另外雖然 DigitalOcean 的 CPU 比較差,但可以看出他在非 IaaS 的服務上花了不少力氣,想要朝類似 AWS 的方向在走,如果你想要用到他們的服務,但又不想要用純正的 cloud service 的話 (通常是價位考量),可以考慮看看他們家的服務。

另外一方面,因為我自己喜歡設定底層系統,所以會朝「便宜」的方向找 VPS (能設定的東西比起 Web Hosting 多很多),然後因為機器數量愈來愈多,所以在我自己的 wiki 上整理了「Hosting」這個條目,之後就有些朋友看到價錢就會問怎麼找的... (像是 1.5GB RAM + 20GB Disk 一年只要 USD$14 這種價錢)

我主要是透過 Low End Box - Cheap VPS Hosting Providers Listing & Reviews 這邊找的,這邊常常會有各家 VPS 提供促銷,這時候可以朝幾個方向看:

  • 公司成立時間:透過 whois 資料可以看到一些,另外文章上面通常會直接對 vps 下 tag,可以看看之前是不是有跟 Low End Box 合作過。
  • 以往的評價:透過 tag 找到之前的促銷,然後看看 comment 的評價。先記住這種便宜的 VPS 不會有完美的狀態,如果負評可以接受的話就可以考慮。

另外要注意的是,這類 VPS 我通常都是先假設「資料掉了不會痛」的想法在用,然後主要是以 PayPal 為付款方式,避免主機商跑路後沒辦法拿到退款 (yeah 我遇過 XD)。

這類 VPS 主機有兩種形式:

  • 最常見的是 OpenVZ 類的,通常這類會很便宜,但限制是 RAM 與 Swap 的數量一開始就決定了,也就是你沒有辦法透過 file swap 增加可以用的記憶體。另外因為是 OpenVZ 的關係,上面不能跑 Docker 之類的 container。
  • 另外一種是虛擬機類的,通常會比 OpenVZ 類貴一些,像是 KVM 或是 Xen,這類因為技術上是全虛擬化,通常都可以跑 Docker 這類 container 技術。

接下來就是踩地雷了... XD

Archives