在 AWS 上用 pfSense 串接的細節

這邊講的是在 AWS 上想要串接不同帳號的流量 (也就是 site-to-site VPN),不使用 AWS 自己提供的串接服務,而是用 pfSense 串接。

會自己搞主要有幾個考慮:

  • 考慮到 AWS Transit Gateway 的費用,每掛一個上去就要多收一次錢,另外上面處理的流量要再收費。
  • 應用的流量不大,所以用個 t2.nano 跑也有個 100Mbps 左右的 capacity,算是夠用了。
  • 而且應用在寫的時候也考慮到斷線後的處理,加上用戶端的網路本來就不怎麼穩定,AWS Transit Gateway 的 SLA 再怎麼高,我也還是得處理斷線時的後續機制,不如就不要那麼緊張...

在設定的時候要注意的事情:

  • EC2 的 Source IP/Destination IP 檢查要關掉,這算是基本盤。
  • VPC 內的 Routing 要確認過一輪。
  • EC2 上的 Security Group 對於 pfSense 的主機得全開,因為 pfSense 會丟出不屬於他自己 IP address 的封包,也會接收不屬於自己 IP address 的封包 (透過上面提到的 routing),這些都還是會經過 Security Group 的檢查,而 Security Group 能設定的數量有限,基本上應該會全開...
  • pfSense 在設完 IPsec 後,同樣在 pfSense 上面的 firewall 需要手動加開,因為預設是關的。

其實這套作法就是在 AWS 還沒推出 Transit Gateway 前的作法,只是老方法還是很好用...

各種對 AWS Managemenet Console 的抱怨...

Hacker News Daily 上看到 Reddit 上面有一篇對 AWS Management Console 的抱怨文,差不多是兩個月前開始累積的:「I am stupefied every day by the awfulness of the AWS web console」。

AWS 的主力開發因為是以 API 為主,而 AWS Management Console 能做的事情一直都少蠻多的 (看起來是一個團隊在開發,然後呼叫 API),而且的確是常常中 bug,所以會有這樣的抱怨其實不太意外...

然後就有人放火了:

[–]canadian_sysadmin 24 points 2 months ago
I see you've never used Azure...

[–]myron-semack 18 points 2 months ago
AWS’s console sucks because they don’t give a damn about UI. They are API-first.

Azure’s console sucks because they tried to make it nice but failed.

[–]ryantiger658 5 points 2 months ago
I was scrolling looking for this comment. Azures interface has made me appreciate AWS even more.

Azure 被偷戳了好幾下 XDDD 然後 GCP 也被偷戳了:

[–]edgan 1 point 2 months ago
It could br better, but it is far better than than Azure and GCP. Azure's old one was better than their new beta interface last I saw it. GCP has some interesting ideas, but the side bar centric design doesn't function well. It also tries to do too much, and is too JavaScript-y happy.

通常用 AWS 自己的 CloudFormation 或是第三方的 Terraform 管理還是比較常見的方式 (基於 Infrastructure as code 的概念),而 AWS Managemenet Console 當作是輔助,因為目前的雲端服務在設計上的確是希望你多用 API...

用 Amazon SES 發 Trac 通知信的問題

Trac 在發 ticket 的通知信時,會定義自己的 Message-ID,另外後續變更的通知信件會增加 References 欄位,讓 mail client 可以配對起來 (變成一個 thread)。

Amazon SES 會把原來的 Message-ID 改掉,使用自己的 Message-ID 欄位,可是 References 欄位仍然維持不變... 這就導致 mail client 無法將第一封信 (只有被改過的 Message-ID) 與後續的信件 (References 所指到的信件不存在) 配對起來,只剩下後續的信件因為有相同的 References,所以 mail client 可以正確的配對起來。

所以我就決定生一個 workaround plugin,只要是沒有 References 的信件 (像是每張 ticket 的第一封信),就從 Message-ID 複製一份到 References 裡,這樣就可以讓後續的通知信件與第一封也連結起來了。另外評估這個 workaround 的副作用應該還好,所以就不判斷是不是 ticket 的通知信了...

這就是 trac-references-mail-decorator 這個套件的由來...

Backblaze 開了歐洲區機房

Backblaze 開了歐洲機房,所以包括了一般性的 Computer BackupB2 Cloud Storage 都可以選擇要放哪邊了...

歐洲的點是放在荷蘭:

Big news: Our first European data center, in Amsterdam, is open and accepting customer data!

價錢也都跟美國的相同:

Whether you choose EU Central or US West, your pricing for our products will be unchanged:

對於在意資料放美國機房的問題應該有緩解一些...

AWS System Manager 支援 SSH 的 -L 功能 (Port Forwarding)

AWS System Manager 宣佈支援了 SSH Port Forwarding 的功能 (也就是 OpenSSH 指令裡的 -L):「New – Port Forwarding Using AWS System Manager Sessions Manager」。

以往是連到那台主機上後,再透過 -R 反過來再穿一層,但這必須在那台機器有 Internet 存取權限的情況下才有辦法做... 這次的方法是 AWS System Manager 直接提供了,所以只需要可以連到主機就可以做。

Amazon Route 53 增加了即時的 Query 數量資訊

AWSRoute 53 增加了 Query 數量的資訊 (加到 CloudWatch 內):「Amazon Route 53 Now Publishes Query Volume Metrics for Public Hosted Zones」。

下午的時候連進去看沒看到,回家後想起來 Route 53 是全球性服務,切到 us-east-1 上就看到了...

算是很基本的功能,這樣可以很方便的看一下使用情況,然後就可以透過這些資料調整 TTL,有些為了要快速切換的可以設短一點,有些不太變動但 query 量很大的則是要設長一點...

重新了解 Amazon EC2 的 T2/T3 Unlimited

剛好跟同事聊到 Amazon EC2 的 T2/T3 Unlimited,因為有些疑惑所以回家查了一下資料,發現以前的理解不夠完整。這是 T2/T3 Unlimited 的說明文件:「Unlimited Mode for Burstable Performance Instances」。

在文件的這塊說明了 T2/T3 Unlimited 模式的計算方式:

When its CPU utilization falls below the baseline, it uses the CPU credits that it earns to pay down the surplus credits that it spent earlier. The ability to earn CPU credits to pay down surplus credits enables Amazon EC2 to average the CPU utilization of an instance over a 24-hour period. If the average CPU usage over a 24-hour period exceeds the baseline, the instance is billed for the additional usage at a flat additional rate per vCPU-hour.

我本來以為是剩下的 CPU credit 不夠時就會被收費,但依照官方文件的說明,是可以用後面賺到的 CPU credit 支付前面使用的 CPU credit,而可跨越的時間區間是 24 小時。

所以有時候會在 AWS web console 上看到 CPU 沒有在用,但是 CPU credit 卻長回不來的情況,是因為這時候還在還之前的債...

Amazon Transcribe (語音轉文字) 支援中文

AWS 宣佈 Amazon Transcribe (語音轉文字的服務) 支援中文:「Amazon Transcribe Now Supports Mandarin and Russian」。

從給的指令可以看到 --language-code zh-CN,頁面上示範的音檔腔調也是中華民國淪陷地區的腔調,應該是對淪陷地區訓練出來的結果...

我隨便拿了一部影片來測試:「粉嫩多汁健康好吃 松露炸和牛三明治 fried wagyu beef sandwich|Fred吃上癮」。

先下載下來,然後用 FFmpeg 轉成 FLAC 檔,再透過 AWS web console 丟進 transcription jobs 轉...

看起來對台灣在用的腔調適應還是不太好 (我把轉出來的東西丟到文章最後面),不過應該只要另外再拿新的訓練資料就可以出台灣版了...

加裙头加油全都一定要有对哎嗯啊先生走在国外人的感觉呢那那天没有融进了我们邀请到我们的干冰可以踢得哭来到学校那因为干爹在场所以我今天决定挑战间谍因为钢铁说他有一个专利我人去这个专利的特点就是在于说得简由他可以让石材外脆那那但是我觉得我这个人就是反恐因为我还是在青少年呃青少年就是跟叛逆所以干爹说这句话我就要想一下真的吗?感觉你确定吗干爹干爹不说话好男星所以呢我们今天请到了节目里面已经出现很多字的他说你要小姐另外一项呢就是用美国判断及的这两个都是热点然后来做比较那除此之外我要增加他的猪谁敢说我还会有一种机制这个呃七大锅里面她其实还有很多的配备怎么怎么打开而且这是强调这个头衔传啊让我把配件全部制造了这个创的吧这个时候就是穿露的那其实是架构教育的这一套啊我谁干爹那么天所以呃GDP我们就直接用这个好嘛啊那您觉得啊啊有可以有来再用医院但是全部都得上去我也是南部的人们从然后把装修呃我们一百八十六万调到了六分钟气氛中好人我们俩需要好妈妈如果你对呃石材比较不确定其实还有一个方便的功能就你可以暂停一下然后就把拉出来看一下然后就可以大概在判断较大还是要到那我们再延长一个一分装啊好吗嗯钢铁说话小张这时听到哎哟完美香气毕业了吴村的年轻人中就是年轻人好吧那我们看看里面的游子哦哎哟你看生命都是有虽然真的可以让他们减由我先试一下啊我不是还没有送钱都没有了然后我觉得吃得很只我小时候来讲呢应该说是一个嗯全世界啊你是唯一厮杀青陈家松与嗯你可以感到很清晰后来任把油倒出来也大概呀它地处都要由这么多的有由此很清澈你可以去买就出版有就就进去就被查出了还会受你知道吗了不少消费者的那那我们来做下一个步骤条面包啊从这个盘子监考盘所以如果说你这样一句还会有个老婆或者漂亮那就是说他这些系统喔他九十一由此啊还有一样那这个味道就会比较想让他也很简单哦红色的地方啊这当然是往下嘛所以现在是我们向我们的时候呢我们先浪土虱啊做一点那个心中简单仅仅这样做啊早上起来就是只有让我喜欢啊崔一点是吧调到两百度那在三分钟时间上慢慢家只有一次把他调侃嘛然后暂停动用了你拿出来看一下他后面实施有一个出风口你也可以用味道来判别他的手深度我们看我觉得我啊我非常漂亮,后来我们在调那个面哭的部分很简单啊,面粉一般的面粉就要然后我们失的部分呢就是用激战跟您来让他的仇动物啊哎,我比较十一点越丑小鸭翅总和七月后吗?有一种中国个人比较爱武旦角读起来标题然后我们不上去,但我们楼的部分我们先处理后一点的美国快本期的热点就是我们现在今天授权里面属于比较便宜的部分,所以我们用这一块儿事件啊那这一块呢比如说安心工作还没有结束的时候,我们收一下五年有的不有了然后我们三一年前要先说这个严家了我们现在这种哎呀大哦没有想回不能在政治顺心其实要想改变实际上都是正面肯定进去的路牌啊我看到我又怕我往嘛你啊但对待MARTIN哦所以看到长得不错哎呀因为这样子我觉得警示啊所以他不掉了就像我一直讲等先后发言会掉部分我了我就没看笑着啊,我真的好自己的好久我们来加紧朋友说尤的作用就是要让哈利颜色的消息,然后陈水扁会齐声一点点好吧,就知道这个双方就跟我们说呢,有啊,朝下然后呢我们上面说已经有,如果这部处打算今年的台,然后给我家附近那个选书记因为我常去买,那我就不用怕不健康。我老婆也不一致认为那那这一块他们叫后我们一定要里面找到他的首度,所以我会得到大家百八十左右天桥的五分钟,六分钟后让我们等一下,我们中途一定要拿起来看一下其他的首都够。之后我们就抓住了如果注册的演示文稿放下,然后买条这样子那挑战这个时候其实我们也可以开始准备了一年部分这样子很简单,就这样我们给大家一点揭幕了加一点好吧,跳啊这一吗?奶黄酱这么多钱的一笔哦,这不,这一点的药事实上味道让当不是我是寒不要咬嗯各位好我我们马背半天哈不好书最自认哦另外说台不是只有没有买油库啊连考生都得不够吗?干爹呀今天高科技呀这个是指输液又村日本大叶高岛屋啊而且哎来然后由子然后肉吃都吃多的我们试试一下那只暖的我刚还想说他的手都不会太守小孩这样说我们看我们很鲜明下去就是说手把它这是完全打破一般已经由快的一个观念完全没有我们只牛排我们就是觉得欧盟要三分五分啊条文里面那头如果我刚室内口真的是外数那你那你那我们接下来来试试看我们的特点哈那所以我们先才我们要的大小要跟你放不公平的幺三零年嘛,是吧?那期考纲那个红感我是另外一个城市变得有着比较后未见你在专业训练谁都提着一这时候把它放心吧肯定一样一样他然后我们用这个监考盘放放进去河流的厚度要把我们需要用高温的帮助做所以呢我就说会调整两百多但是在三分钟我觉得差不多然后我们刚刚去给他这种完美哦能够为过了选情不会算嗯都有五他牛肉滚动软了好那好多次跟我说把陈选票啊因为哦他们那个肉吃跟他的软嫩度啊是无法想象会造成这样的的关系。就是因为他的过人气旋的关系是他导热啊非常非常的精神那地方我们就是和纽我它的颜色之美的农村或者是马士文并茂穗和外界最他说这个基地翠都被扣留的游子高付出我现在里面全部都很有味道了,就可以文件哎我因为我想要试试看他甚至我想的问题,所以我把和牛跟我们刚理了跑那时候我我说时候从来没有天牛排用机器以前从来没所以我先想到是一看他们不能达到五很快就会好的好那作战如果你想有自己的感觉哦舒服啊什么傻还是对这记载过?大家当时两美我们的时候交点钱吧着跟你讲啊有一个比送委员更高级的人所谓是没有告诉你们也就说像爷爷俗称的钻石言之比中国的东西甜度比较高因为它又是矿物远所以他配死牛排的帖子但这一块我们减去了这帮不了我就把画干爹的都是为他就说你为当天知道了多台我吃多的人嗯嗯嗯我从来没酒不喝酒可以的你看我要你很多次吃好多出温爽你好高天呐你不要让对我说我结婚了嗯大概我们的和牛啊我就是不这个大火经过的而且还就这样都现场收音啊你们不要例子之一叫哦哦有些人知道他们强调的里面的肉松软的你你不要不要公布我就是考的时间一个尊重爸爸让我有口饭吃吧。我我真心觉得这个是一个现代科技理念,可能是小家庭,然后又走走健康啊,其实你买一开他基本上什么都可以做,而且他没有让我的话,你就让我们一起能多那种,两年就一些。我有点想用它来做一些任务时,部队想到如果听得懂就听得到了。

Bitbucket 放棄 Mercurial

Bitbucket 放棄對 Mercurial 的支援:「Sunsetting Mercurial support in Bitbucket」。

兩個時間點,一個是明年二月不能再新增,另外一個是明年六月完全停用:

February 1, 2020: users will no longer be able to create new Mercurial repositories
June 1, 2020: users will not be able to use Mercurial features in Bitbucket or via its API and all Mercurial repositories will be removed.

在 Mercurial 網站上的 wiki 也更新了:「Mercurial Hosting」,對於不想要搬到 Git 的人可以在這份列表裡找替代方案。

AWS 的 EBS 預設型態改為 GP2 (SSD)

AWS 宣佈 EBS 的預設型態從 Standard 變成 GP2:「EBS default volume type updated to GP2」。

包括 web console 與 API 的預設值都改成 GP2:

The AWS console defaults to GP2 in all regions. On July 29th the default EBS volume type was updated in thirteen regions from Standard to GP2. Now AWS API calls for volume, image, and instance creation also default to GP2 in all regions.

GP2 是 SSD,所以可以提供比較低的 latency,而另外一個用 GP2 的好處是 i/o 的費用已經含在內了 (Standard 會另外收取費用),對於成本估算會比較簡單一些,尤其是 i/o 量比較大的時候。