其實用雲端平台都可以拉,只是AWS 在亞太地區的用戶其實比較多,印象中是超過50%,換句話說網路上 User and Community 也比較活躍,資源也比較豐盛,討論的次數也相較比較多,更白話一點 「你碰到的問題別人一定也有碰過,除非你的技術太新」
另外,基本上雲端需要的東西AWS 支援完整度很高,所以就以AWS 的來做這次是的主要示範,當然如果有人想要跨雲的話也可以透過 Terraform 來達到,但是這部分就自己在研究研究
事先打預防針:
這系列文是真的會燒錢的,所以如果想要動手做的話,請先確定信用卡是否能支援AWS 帳單!
這系列文是真的會燒錢的,所以如果想要動手做的話,請先確定信用卡是否能支援AWS 帳單!
這系列文是真的會燒錢的,所以如果想要動手做的話,請先確定信用卡是否能支援AWS 帳單!
不過要不要實作看個人,這系列文只會列出遇到的問題而已,大概這樣!
EC2
: 簡單來講就是computing resource,提供記憶體跟 cpu / gpu 的東西,當然後有儲存空間EBS 的設定 (Note 1 , 2 and 3)VPC
: VPC 這我就不說了,還有重要的Available Zone and Subnet setting ,這些很重要的原因是因為可能會影響到EKS是否能找到對應的 ClusterIPEKS
: 就是AWS 上面 k8s 的平台,一個 EKS可以管理很多個 k8s ,但是這邊主要還是會用EKS 因為整合了AWS 上面其他的service ,所以使用上就不用設定太多,就是我們後面會提到的 eks-bluepintECR
: AWS 上面放置 Docker Images 的地方,也可以自己花錢放在 Docker Hub上面,但是我覺得都用AWS的在 docker pull 的話可能比較快?畢竟 一個 PyTorch Iamge 都特別肥大,所以會有傳輸檔案的議題跟部署速度的快慢IAM
: 也很重要的一個服務,因為考慮到你的service 是否能被pod存取,或者執行者是誰,因為有時候使用 Terraform 的事後會建立其他的 resource 所以這邊 service must be using IAM Role/ Policy to access resourceS3
: 顧名思義就是放東西的地方,在這邊會放 Model Artifact 等等的東西,當然還有 terraform 的 state 的部分DynamoDB
: DynamoDB 是負責做 Terraform state control, 因為state 可能被改或者調整,因次這邊會做第二次的檢查機制RDS
: Just for MLFlow to record some metrics and params.Security Group
: 基本防火牆的概念,主要是限制不要讓別人可以存取你的 Endpoint,畢竟Endpoint 被入侵的話可能會開啟不必要的AWS 支援,但是重要資料被竊取也是很頭痛的議題。Application LoadBalancer
: Expose Service for internet access.Promethus
or Grafana
:這部分看使用情況斟酌使用 (Note 3, Note 4)因為這系列文不是要介紹AWS 的,所以這些基本的service 要對應的東西我就不多說了,大概簡單的說明使用的情境,因此如果不熟悉的話可以選擇 跳過離開或 Dislike