Elasticsearch 打算要回來提供 AGPL 授權

在「Elasticsearch is open source, again (elastic.co)」這邊看到的,Elasticsearch 目前是自家的 ELv2 以及 SSPL 授權,現在打算要提供 AGPL 授權了:「Elasticsearch is Open Source, Again」。

不過應該也不會回去用了,之前 Elastic 的大小動作太多,像是直接在新版 client SDK 上擋掉所有不是 Elasticsearch 的伺服器端 (所以 OpenSearch 就被擋了):「Elasticsearch error "The client noticed that the server is not Elasticsearch and we do not support this unknown product"」。

既然 OpenSearch 堪用就繼續用?反正在雲上面大多也都不是自己架,而是用現成的。

另外這幾年 PostgreSQL 上面做 fulltext search 的套件愈來愈多,也是個常用的方案?(量大的時候 read replica 拆出去就不太會影響到 main DB 效能)

AWSOpenSearch 看起來證明了換 license 對這些大公司沒什麼用,這些大公司有的是錢跟人可以 fork 出來自己搞... 所以想要一開始沾 open source 的名字不如一開始就用 AGPL?

AWS KMS 支援 ECDH

看到「Announcing AWS KMS Elliptic Curve Diffie-Hellman (ECDH) support」這篇的介紹,AWS KMS 支援 ECDH 了。

AWS 的文件「DeriveSharedSecret」這邊可以看到就是在不將 private key 暴露出來的情況下得到 ECDH 產生的 shared secret:

The private key in your KMS key pair never leaves AWS KMS unencrypted. DeriveSharedSecret returns the raw shared secret.

翻了一下其他兩個雲的 Cloud HSM 類服務,好像沒有看到 ECDH 的,不過如果是實際硬體 HSM 的話,Azure Dedicated HSM 似乎有支援,可以在 FAQ 這邊看到:

Dedicated HSM service provisions Thales Luna 7 HSM appliances.

Cryptography (ECDSA, ECDH, Ed25519, ECIES) with named, user-defined, and Brainpool curves, KCDSA

AWS KMS 畢竟是軟體基底的,要支援什麼演算法可以直接加...

AWS 的 VPC 可以設定 Private IPv6 address 了

AWSVPC 以前都只能設定 public IPv6 address,現在總算是可以設定 private IPv6 address 了:「AWS announces private IPv6 addressing for VPCs and subnets」,另外一篇講的比較詳細:「Understanding IPv6 addressing on AWS and designing a scalable addressing plan」。

IPv6 address 的熟悉度沒有 IPv4 address 高... 看起來 AWS 所提到的 private 包括了 GUA 與 ULA:

Private IPv6 addresses on AWS can include ULA, which are intended for local communication, and private GUA, which could be globally routable according to protocol definition.

GUA 好像是就是拿 public ip 區段用 (反正 IPv6 區段夠大)?反而是 ULA 這邊用的 fd00::/8 跟以前 IPv4 的 private range 剛好相對應,比較好理解...

Meta 的 Llama 3.1

Meta 發佈了 Llama 3.1:「Introducing Llama 3.1: Our most capable models to date」,這本來就只是個發佈而已,但讓我注意到的是 AWSGCP 都同時宣佈在雲端上支援 Llama 3.1 了:

這代表 Meta 在 Llama 3.1 發表前就先跟 AWS & GCP 合作了,這看起來是一個包圍 OpenAI (以及微軟) 的姿態,之前好像沒看到這樣?(單純印象...)

Amazon DocumentDB (with MongoDB compatibility) 支援壓縮

看到「Amazon DocumentDB announces improvements to document compression」這則公告提到 Amazon DocumentDB 5.0 支援壓縮了:

These compression benefits are now supported in Amazon DocumentDB 5.0 instance-based clusters in all regions where Amazon DocumentDB is available.

官方宣稱可以壓七倍:

Compressed documents in Amazon DocumentDB can be up to 7 times smaller than uncompressed documents, leading to lower storage costs, I/O costs, and improved query performance.

在「Managing collection-level document compression」這份文件裡面則是提到演算法是 LZ4

Amazon DocumentDB uses the LZ4 compression algorithm to compress documents.

因為大家都猜 DocumentDB 後面是 PostgreSQL,所以我就查了一下 PostgreSQL 這邊的資料,可以從 PostgreSQL 14.0 (2021/09/30) 的 Release Notes 看到支援 LZ4:

Add ability to use LZ4 compression on TOAST data (Dilip Kumar)

This can be set at the column level, or set as a default via server parameter default_toast_compression. The server must be compiled with --with-lz4 to support this feature. The default setting is still pglz.

而 DocumentDB 則是 2019 年一月的時候出的,大概是 DocumentDB 5.0 用到的 PostgreSQL 比較新所以可以支援了...

Amazon EC2 推出 Graviton4 的機種 r8g.*

Amazon EC2 推出了 Graviton4 的新機種:「AWS Graviton4-based Amazon EC2 R8g instances: best price performance in Amazon EC2」。

第一波 Graviton4 的機種是 R 系列的機器,r8g.*,依照官方說法有機會到 30% 的效能提升:

AWS Graviton4-based Amazon EC2 R8g instances deliver up to 30% better performance than AWS Graviton3-based Amazon EC2 R7g instances.

價錢的部分翻了一下,貴了 10% 左右。另外機器大小上限也有改變,之前 r7g.metal 是 64 vCPU + 512GB RAM,這次 r8g.metal-24xl 是 96 vCPU + 768GB RAM,另外還有 r8g.metal-48xl 的 192 vCPU + 1536GB RAM 的版本,上限拉到原來的三倍。

話說 t4g 還是 Graviton2 的機種呢,什麼時候有機會用到 t5g 呢...

使用 SQLite 實作出 API 相容 Amazon SQS 的 SmoothMQ

在「Show HN: Drop-in SQS replacement based on SQLite (github.com/poundifdef)」這邊看到的,就如同標題所提到的,是個 Amazon SQS 的相容 API 實作,專案在 GitHub 上的「SmoothMQ」這邊。

底層是 SQLite,實作語言是用 Go,然後有 web interface 可以觀察與管理。

不過 Amazon SQS 的 API 層有特別優秀嗎...?而且大多數的情況都不是直接呼叫,應該是透過 message queue sdk 處理,像是作者自己寫的 sample code 用 Celery?如果是 Celery 的話後面應該有很多 backend 可以抽換...

也許在測試的角度用的到?

AWS Direct Connect 開始提供 400Gbps 的選擇

AWS Direct Connect 開始有 400Gbps 的選擇了:「AWS Direct Connect announces native 400 Gbps Dedicated Connections at select locations」。

依照裡面的 AWS Direct Connect Locations 連結可以知道目前開放的地點都在北美:

  • CoreSite VA1, Reston, VA
  • Equinix DC2/DC11, Ashburn, VA
  • CoreSite SV4, Santa Clara, CA
  • Equinix SV5, San Jose, CA

Terabit Ethernet 這邊翻400Gbps 的部分,是 2017 年的標準,另外有些比較長距離的選擇是後續推出來的。

這樣算是給了一些需要穩定大流量的企業的選擇,不然 internet 集縮比的問題造成線路頻寬時高時低。

話說 Direct Connect 在台灣的兩個點目前都還是掛到東京區 (ap-northeast-1) 上,後續台北 region 開點後不知道是會支援多個 region (i.e. 可以掛東京,也可以掛台北),還是會另外找機房接?

AWS 的 Availability Zone (AZ) 設計

昨天因為 AWS 宣佈有計畫在台北建立 region (「AWS 宣佈了台北區將在 2025 年初推出完整的 3-AZ Region」),想說之前有印象官方有把 AZ 講的蠻細的,但寫文章的當下一直沒找到,結果剛剛找到後發現我自己在十年前有寫下來過...:「AWS 的機房架構」。

AWS 官方的原始影片在 YouTube 的「AWS re:Invent 2014: AWS Innovation at Scale with James Hamilton (SPOT301)」這邊可以看到,當年看的 Gigaom 原文看起來已經掛了,但可以在 Internet Archive 上看到:「Amazon details how it does networking in its data centers」。

這些至少是 2014 年當時的情況,現在 2024 不一定,但還是可以當作個參考:

可以看到同一個 AZ 中,data center 之間要求是 <0.25ms,以光纖內光速距離來推差不多是 50km,當年沒有注意到「Don't need inter-AZ independence」這句話,看起來不同 AZ 是允許共用 data center 的

這邊可以看到當年公開出來 AZ 間的要求是 <2ms apart,換算是 400km (當 latency 算) 或是 200km (當 RTT 算),但有提到 usually <1ms apart,換算是 200km 或是 100km。

現在則是直接寫成 60mile/100km,所以我猜 (猜!) 上面應該是 RTT。

然後大概是有些 AZ 之間雖然直線距離在 100km 內,但因為 fiber 不是直線所以 latency 會超過 1ms,而 marketing team 覺得寫成 2ms 很不爽,乾脆改成 60miles/100km?

最後這張倒是比較確定改變很多,畢竟科技也在成長。