子網路設計大方向: 子網規劃其實並沒有特別的標準答案,但建議要注意一下以下幾點
透過公開與私有subnet 來提高系統的安全性,不要全部都在網路上裸奔QQ,看過太多系統都直接在public subnet 建置,某一天不小心設定沒有設定好就被入侵了。
在 Private Subnet 中,進一步細分為: App Subnet:部署應用程式邏輯(例如 EC2、ECS、Lambda 等)
DB Subnet:部署資料庫(RDS、Aurora、Redis 等)
這樣可以做到更清楚的網路控制,例如:
每一層的子網都建議橫跨至少 兩個可用區(AZ):
這樣才能實現高可用架構,當其中一個 AZ 發生災難時,系統可以切換到另一個 AZ 持續運作。很多AWS服務也會要求至少要在兩個AZ進行建置。
架構小提醒:
建議依「功能」而非「技術層」來分 Subnet,例如:
用途 | Subnet 類型 | 優勢 |
---|---|---|
Public Web | Public | 可直接對外提供服務 |
App Layer / Lambda | Private | 更安全,通過 NAT 存取外部 API |
Database | Private | 僅允許內部連線,搭配 DB Subnet Group |
Monitoring/Logging | Private | 限制資料流出,集中監控 |
建議格式如:
[環境]-[功能]-[AZ]ex: prod-web-a, dev-db-b
用 Tag 來標記環境、專案、負責團隊,方便管理與成本追蹤。
好的子網設計 = 安全 + 穩定 + 可擴充
把安全性、功能分層、高可用性與未來擴展性都考量進去,才能打造一個強健、靈活的雲端架構。