在 TWS.TWCC.AI 的 VCS 用 nginx 當 ngrok 穿透到本機 flask 的 SSL WEB

或許跟我熟一點的都會知道去年參加了科技抗疫專案,然後透過 TWCC ( Taiwan Computing Cloud, 台灣AI雲 ) 提供的 V100 讓很給力的小夥伴們把聲紋識別的效果做得蠻不錯的 !

 話說一直很意外 " 痛痛的人生-我在國家高速網路與計算中心的日子 " 被Google排在第一頁,但希望這篇用ngnix來做到ngrok且有SSL功能,比較正經點的文可以繼 Google " ASR NLP " 後也有機會SEO在第一頁出現,當然點閱 " https://www.twman.org/AI " 進一步瞭解更好,目前包含 TW Deep Master (臺灣深度大師)Meeting & Minutes Master (M&M Master, 會議記錄大師) 都已佈署於 TWCC 上DEMO跟試用哦;後續也會再嘗試新增新的服務 !

 

TWCC基於AI超級電腦《台灣杉二號》,配備 NVIDIA Tesla V100 GPU 和 Intel Xeon Gold 61系列CPU,以實惠價格提供強大算力與國家級資安機制。設施均位於台灣境內,無資料傳輸國外之疑慮。 如果對 twcc 的服務細節有興趣的話,出個聲可以幫忙轉達請對方跟你聯絡哦 !

科技抗疫專案: 提高聲紋辨識正確率,更添防疫新利器
然後還因此擠出了以下這兩篇文章 !
那些語音處理 (Speech Processing) 踩的坑
那些自然語言處理 (Natural Language Processing, NLP) 踩的坑

而這邊要分享的是 ngrok 的 SSL 功能 ... 因為很多時候在開發系統時,想測試卻沒有對外的網路,這時就需要 ngrok,使用方法其實頗簡單,註冊個帳號設定一下就可以,https://ngrok.com/docs 裡面說明的很清楚 ! 如果因為 -host-header 可以參考底下這文章

https://blog.alantsai.net/posts/2018/04/devtooltips-5-ngrok-allow-public-to-access-localhost-website-and-sql-server

 之前為了 https 一度去買了 SSL,但其實你用 Google Site 或者 Google Blogger 這些都是直接能幫你轉 SSL,除非你用了一些市面上的建站工具等,或者你是自己跑 flask 這樣;這邊意外找到一個 SSL 申請:https://zerossl.com,申請一次可以使用 3 個月;然後蠻好理解跟設定

付費版本很好理解,基本免費版本就很夠了,驗證方式也是很簡單,不然就是真的文件盡量翻一下 !

 https://help.zerossl.com/hc/en-us/articles/360058295894-Installing-SSL-Certificate-on-NGINX 

生出 crt 跟 key 檔後,直接加在 flask 的 ssl_context 就可以
app.run(host='0.0.0.0', port=args.port, ssl_context=('/PATH/XXX.crt', '/PATH/XXX.key'))

再來就是因為 ngrok 免費版是每次生出一個亂數網址,如果你的環境是可以像 twcc 的 VCS 一樣可以自己開 port 而 flask 只能開在 1024 以上,但若想給人試用網址時還是略嫌麻煩 ... 所以就是自己裝個 nginx 然後把它導到 flask 了 !

apt-get install nginx

server {
server_name 你的網址; # Virtual Host 的名稱
listen 443 ssl;
location / { # 將 / 導引到建立好的 SSH tunnel
proxy_pass https://0.0.0.0:PORT;
}
ssl_certificate /PATH/certificate.crt;
ssl_certificate_key /PATH/private.key;
}
 nginx 要設定的則是新增修改 /etc/nginx/sites-available/ 這個檔案,並且把剛剛稍早生成的 crt 跟 key 檔加上


最後工商一下負責 TWCC 民營化商轉,提供容器運算(CCS)、高速運算(HPC)、虛擬運算(VCS)、高速檔案系統(HFS)、虛擬磁碟(VDS)、雲端物件儲存(COS)等服務 的台灣智慧雲端服務股份有限公司,簡稱台智雲


https://tws.twcc.ai




考量資料完整安全的儲存在台灣,認真算一下跟目前像是 GCP、AWS 跟 Azure 的價格比較其實不會貴到那裡去


以 GCP 來說,n1-standard-4,vcpu * 2 + 8 GB RAM 跑起來一個月要價 USD 145.34,約等於4000多臺幣,但是刷卡是屬於境外,所以需要手續費,當然也可以找些代理商幫你處理,但畢竟也是筆費用


而 aws ( vcpu * 4 + 8 GB RAM 也要 US$ 74.67 約 $2200 多臺幣) 和 azure (以D2V3的 vcpu * 2 + 8 GB RAM 來說也是 US$ 85.46 約 $2500 多臺幣) 的計價可以自己依需求試算一下


最後來看一下這幾年來國網中心的超級電腦的進化跟台灣杉二號的規格吧