iT邦幫忙

1

AWS Serverless 架構

  • 分享至 

  • xImage

小弟目前想在實作 line bot,
功能傳指定文字給line bot會回傳指定圖片,
目前是將 line bot 的伺服器寫成 Lambda,
然後 call EC2 上架著的 express 靜態檔案服務的 api 抓對應圖片下來。
但因為實際上呼叫的次數也不多,
想嘗試將靜態檔案服務的部分也寫成 Lambda,
想問這部分是否只能將圖片資料夾存到 S3 Bucket 然後 Lambda 直接從 S3 抓圖片呢?
因為對於 AWS 服務還有點不熟悉,
想詢問是否有其他方式,
圖片預計會需要 10 GB 的空間,
目前看起來 S3 Bucket 超過 5 GB 就會需要額外收費,
但若是用 EC2 的話會有 10 GB 免費空間,
這樣就剛好滿足需求,
網路上有查到 lambda 有 /temp 的 10 GB 快取空間,
但不太確定是否可以將圖片資料夾丟在那部分,
還想請教是否有解法?

froce iT邦大師 1 級 ‧ 2023-02-15 21:31:11 檢舉
https://ithelp.ithome.com.tw/articles/10277760
這個拿去看有沒有幫助
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
DanSnow
iT邦好手 1 級 ‧ 2023-02-15 23:47:56
最佳解答

Lambda 的暫存空間只能暫放而已喔,因為一般的設定,閒置一段時間後 AWS 會把 Lambda 關掉,那時候暫存空間的資料也會消失,而且 Lambda 的空間超過 500MB 是要另外算錢的,還是建議放 S3

費用的部份你可以算看看是 S3 + Lambda 便宜還是 EC2 開著便宜,並不是說換成 Lambda 就一定比較便宜,要算過才會知道,另外使用 S3 的話,其實你也不一定要另外開一個 Lambda 了,你也可以考慮把原本靜態檔案伺服器的功能整合進你現有的 Lambda

還有 S3 也有個好處是你可以寫一些自動的規則清理不需要的檔案,可以省下一些檔案管理的處理

另外我不知道你檔案儲存後要做什麼,如果是要給別人看的話,也可以直接考慮用 CDN 且附有儲存空間的服務,像 Cloudflare 有 R2BunnyCDN 也有,如果不是,也有其它可以儲存檔案的服務,如 wasabi Vultr ,直接搜尋 S3 alternative 就可以找到不少了

了解,
對於Lambda的暫存空間比較了解了,
感謝你。

1
whitefloor
iT邦研究生 2 級 ‧ 2023-02-16 10:39:38
  1. 你指的EC2免費我猜是掛載的EBS,基本上也不是真的免費,是你帳號剛創有免費套餐可以用
  2. 有靜態檔案存放的需求就是放在S3是首選,有前面大大講的根據policy清檔案、智能分層、版本控制、Glacier可以節省費用,10G已經有點大了,免費基本上沒有
  3. 你lambda去s3抓檔案肯定是沒問題,你程式裡面要用AWS SDK寫,去s3的API文件找,還有IAM Role or Permission的問題要另外處理而已

好的,
感謝你。

1

在AWS來說。所謂的免費,基本就是給你「試用」的性質。
對一個儲存量10G來說。已遠遠超過試用的特性了。

就費用來說,放S3是一定會相對比較便宜的。
這部份倒是不用想太多。

如果你是想站在免費的角度。我只能說你想太多了。
如果說你並不是想要站在免費的角度看待的話。
我在跟你細說其它的。

了解,
明白大大的觀點,
抱歉也許是我的提問方式不優。

目前算是在做自己需要用到的應用程式,
主要問題還是在架構部分,
但使用雲端我認為價錢部分當然也是要考量,
因為剛開始使用AWS服務也還不太熟悉他的方案,
只知道有提供免費額度,
所以主文才會希望可以以免費的方式達成,
剛剛了解了一下才知道有分永遠免費跟12個月免費方案。

如果方便的話希望可以向您請教細節部分,
感謝。

依EC2來說,我記得只能開1核1G才有免費套餐。(不太記得2核2G有沒有免費就是了)

S3基本是有使用到容量才會計費。內網使用可能不計費(好像,其實我沒在記了)。但外網使用則有一定流量的使用計費。記得是超過1G就會計算費用。

S3是可以利用AWS提供的一個套件。將其掛載到EC2內當一個卷冊用。
如果不想使用API的方式。可以利用這種方式來達到內部主機使用S3的方式。

不過一般還是會建議要讀檔還是使用S3給的連結。(高速網路快很多)

目前不太確定您是否要使用資料庫。一般如果有用資料庫的話,我大多會建議再多買RDS的服務。它也有免費的套餐。

另外,除非政策有變。我記得AWS是沒有所謂永遠的免費。
一般免費套餐。也是只能給你免費1年後也會開始計費的。

但正常來說免費套餐就算買全了。但到要付費也大約是一個月15~20US的費用。

另外要注意一點。大多數所謂的免費服務。有時需要搭配到相關服務且會計算到費用。
大多數都是流量及資料傳輸等相關費用。平均約佔1~5US左右。(除非你用量真的很大,才有可能超過)

再多提一個。AWS要滿一定金額才會請款。(映像好像是100US)

以上是很早了解到的。現在是否有改變政策我不太清楚就是了。
反正我是屬於有購買的。

好的,感謝你的說明,
多了解很多不熟悉的東西,
我會再多去了相關服務的,
謝謝。

我要發表回答

立即登入回答