4

Half serverless blog with react front end我需要在這部分無服務器架構設計

我想舉辦這種可伸縮的博客或應用上的NodeJS AWS利用AWS技術的反饋。這裏的想法是有一個小型EC2服務器,不負責爲網站提供服務,但僅用於運行CMS /管理面板。雖然這些操作也可以是無服務器的,但我認爲擁有專用的小型VM EC2實例可以更高效,並且可以更好地利用現有框架等。

在我上面的圖中,您可以看到有兩種類型的用戶audiencesadmin/writers。管理CRUD操作也會導致lambda運行。 Lambda在管理員更改後生成靜態網站,並將其傳遞到S3。用戶被定向到S3中託管的靜態站點。只有管​​理員/作者才能訪問站點的服務器連接部分。

我認爲這是一個很好的設計,只要面向用戶的一面都是靜態的,就可以實現極具擴展性和相對便宜的網站。另一種替代方案是CDN,但是我必須處理緩存失效問題,更新速度較慢的站點以及較大的服務器。

這對我來說似乎是一個雙贏。反饋?

+2

這種設計沒有任何問題。您基本上構建了一個在EC2上運行的靜態網站管理員,以及一個在Lambda上運行的靜態網站生成器。你也可以在EC2上運行整個事情。你是從頭開始構建或使用現有的靜態網站工具?您可能需要查看一個現有的靜態網站生成器,它可以像這樣在Lambda上運行:https://github.com/ryansb/hugo-lambda –

+1

正如Mark B所說,您基本上正在構建一個簡單的靜態網站,定製,但不支持任何後端邏輯。只要你關心的是一些大多是靜態的內容頁面,那麼設計就可以。 –

+0

您的網站內容更新頻率如何? –

回答

0

這應該是一個評論,而不是一個答案,但我沒有足夠的積分...

有幾個其他考慮這個建築。 Lambda函數非常適合水平擴展微服務,每個小函數可以並行執行數十次或數百次。生成靜態網站通常是單線程操作,因此您可能看不到預期的收益,您還需要觀察超時期限(目前最長爲300秒),並確保您可以在此時生成網站。當然,如果你沒有運行Lambda代碼,你不會收取費用。

對於您的管理員前端,我建議使用ElasticBeanstalk,即使您在單個實例中固定它,它也會爲您提供諸如滾動更新等許多優秀功能。

祝你好運。