在過去的 13 天裡,我們從 AWS 的基本操作開始,逐步探索了 SDK、CDK、CI/CD 和 IAM 等技術,逐步建立起雲原生應用的知識基礎。今天,我們不寫新程式碼,而是回顧這些技術,並對照我們的多人協作平台專案架構,釐清「工具鏈」與「核心元件」的角色,梳理它們如何協同運作。
1. SDK (Software Development Kit) —— 應用層的雲端操作橋樑
SDK 是程式碼與 AWS 服務互動的接口,允許我們用程式語言(如 Python 的 boto3)直接操作 AWS 資源,例如建立 S3 Bucket 或查詢 DynamoDB 資料。
角色:
-
工具鏈角色:SDK 是「應用程式層」的工具,負責在程式碼中實現業務邏輯與雲端服務的互動。
-
限制:不適合直接用來定義或管理整個雲端架構,因為手動操作資源流程繁瑣,難以維護。
專案應用:
在我們的多人協作平台中,SDK 主要用於後端應用程式(例如 Lambda 函數)與 AWS 服務的互動,例如上傳檔案到 S3 或查詢 DynamoDB 中的時間表資料。
2. CDK (Cloud Development Kit) —— 基礎設施的程式化管理
CDK 讓我們用熟悉的程式語言(如 TypeScript 或 Python)定義雲端基礎設施,最終生成 CloudFormation 模板,確保架構部署的一致性與安全性。
角色:
-
工具鏈角色:CDK 是「基礎設施管理」的核心工具,負責以程式碼方式定義和管理雲端資源(如 S3、Lambda、DynamoDB)。它簡化了手動配置的繁瑣流程,並提供版本控制與可重複部署的能力。
-
優勢:解決了 SDK 手動管理資源的低效問題,適合大規模基礎設施建置。
專案應用:
CDK 是我們專案中建置基礎設施的主力工具,負責定義和管理前端 S3 儲存、後端 API Gateway、Lambda 函數以及 DynamoDB 資料庫等核心元件。
3. CI/CD —— 自動化的部署引擎
CI/CD(持續整合與持續部署)透過自動化流程,將程式碼的提交、測試和部署串聯起來,確保專案快速且穩定地發布。
角色:
-
工具鏈角色:CI/CD 是「自動化部署」的核心工具,負責將程式碼和基礎設施變更(透過 CDK)快速推送到雲端環境。GitHub Actions 與 CDK 的結合,讓我們實現了從程式碼提交到部署的全自動化流程。
-
進階應用:未來可升級為 DevSecOps,加入套件漏洞掃描或憑證洩漏檢查,提升安全性。
專案應用:
在我們的協作平台中,CI/CD 確保前端(S3)、後端(Lambda)以及基礎設施(CDK 定義的資源)能自動化部署,讓開發者專注於功能開發而無需手動操作。
4. IAM (Identity and Access Management) —— 權限與安全的守門員
IAM 負責管理 AWS 環境中的存取權限,確保資源安全且符合最小權限原則(Principle of Least Privilege, PoLP)。
角色:
-
工具鏈角色:IAM 是「權限管理」的工具,透過 User和 Role 控制存取權限。特別是 Role 與 OIDC 的結合,讓 CI/CD 流程(如 GitHub Actions)能安全存取 AWS 資源。
-
我們介紹過:
-
User:給開發者或管理員使用(例如我們在 Day4 中透過 IAM 使得我們能使用 CLI 存取 AWS 資源)。
-
Role:為服務或臨時存取設計,例如 CI/CD 流程中的部署權限。
專案應用:
IAM 確保我們的協作平台雲端環境安全,例如限制只有特定 Lambda 函數能存取 DynamoDB,或只有 CI/CD 流程能部署 CDK 定義的資源。
5. 專案架構與角色分工
我們的專案目標是打造一個多人協作平台,讓使用者可以登入帳號、建立與分享時間表,並支援多人編輯與查看。以下是架構中「核心元件」與「工具鏈」的對照:
核心元件(雲端服務組成的應用架構)
這些是構成協作平台功能的主要 AWS 服務:
-
前端 (React / 靜態網站):托管於 S3,透過 CloudFront 提供全球低延遲存取。
-
驗證系統:Cognito User Pool 管理使用者身份驗證與授權。
-
後端 API:API Gateway 作為前端與後端的橋樑,串接 Lambda 函數處理業務邏輯。
-
資料儲存:DynamoDB 儲存時間表與使用者資料,支援高效查詢與多人協作。
工具鏈(實現與管理核心元件的工具)
這些工具負責建置、管理與部署核心元件:
-
CDK:定義與部署所有核心元件(S3、CloudFront、API Gateway、Lambda、DynamoDB)。
-
SDK:在 Lambda 函數中實現業務邏輯與核心元件的互動(如存取 S3 或 DynamoDB)。
-
CI/CD:透過 GitHub Actions 自動化部署程式碼與基礎設施,確保快速迭代。
-
IAM:為核心元件與工具鏈提供安全的權限管理,保護雲端環境。
架構圖:

結語
工具鏈與核心元件的協同
透過這次回顧,我們釐清了「工具鏈」(SDK、CDK、CI/CD、IAM)與「核心元件」(S3、CloudFront、Cognito、API Gateway、Lambda、DynamoDB)的角色:
-
工具鏈負責建置、管理和部署雲端應用,確保開發與運維的高效與安全。
-
核心元件則是應用功能的具體實現,直接支撐協作平台的業務邏輯。
下一步:
期待專案時做部分的各位,從明天起,我們將由工具鏈轉為聚焦於實作核心元件,探索 AWS Free Tier中的明星產品,從 Cognito(身份驗證)開始,逐步將我們的架構藍圖轉化為實際的雲原生應用,請各位敬請期待!