這是一個簡單的架構於AWS上的 Node.js web 應用。為了學習並熟悉 AWS 的各項服務,我決定用一個簡單的常見 todo list 專案來作為串連起各項 AWS 常見主要服務的總練習。雖然看起來只是一個簡單的網站,卻是運用了 AWS 各項資源所搭建起的一個典型雲端web應用。

專案連結:
主要使用技術:
- app: Nodejs.16 / express
- DB/ORM: MySQL/ Sequelize
- 涵蓋AWS雲端服務: IAM VPC EC2 RDS S3
- 硬體/系統: AWS EC2 t2.micro / Amazon Linux 2 AMI
- 涵蓋其他AWS服務或概念: SG AMI 等
- 其他工具: Docker (Hub) / git (Hub)
架構圖:
這邊是網站架構圖:

- VPC (Virtual Private Cloud) 內含有公有網路(Public subnet),跟私有網路(Private subnet),私有網絡只能跟 VPC 內的網絡進行流通,公有網絡則是可以透過 IGW (Internet gateway)讓來自網際網路的使用者進行訪問。
- 搭建在公有網絡上的虛擬機器實例 EC2 裡面部屬著 Node.js web 應用,並且透過 VPC 內的 RTB (route table) 可以訪問到私有網路內的 RDS 資料庫
- 搭建在私有網路內的是 AWS RDS 服務託管的 MySQL 資料庫,透過 RTB 跟 SG(security group) 只開放給公有網路以及限定管理者進行連線
- 透過 S3 服務儲存靜態資源,讓公有網路上的 node web 服務可以透過網際網路加載到 AWS S3 裡的靜態資源內容
完成畫面展示: