# 🧠 資料庫服務總覽 ## ✅ 關聯式資料庫(Relational Database) ### 1. Amazon RDS (Relational Database Service) * **類型**:託管式關聯式資料庫(MySQL、PostgreSQL、Oracle、SQL Server 等) * **重點功能**:支援 JOIN、SQL 查詢、快照備份、自動修補 * **關鍵字**:Multi-AZ、Read Replica、Aurora Compatible * **SAA 考點**: * 多 AZ 高可用設計 * 與 ElastiCache 搭配降低延遲 * 無需管理底層硬體 ### 2. Amazon Aurora * **類型**:AWS 自研 RDS 相容(MySQL/PostgreSQL) * **優勢**:5 倍效能提升,支援最多 15 個 read replicas,資料自動分區 * **關鍵字**:Aurora Serverless、Global Database、High Performance * **SAA 考點**: * Serverless 適合不規則流量 * Global DB 可跨區部署 --- ## ✅ NoSQL 資料庫 ### 3. Amazon DynamoDB * **類型**:NoSQL 鍵值/文件型資料庫 * **重點功能**:單位毫秒延遲、Auto Scaling、On-Demand 模式 * **關鍵字**:Partition Key、GSI/LSI、DAX、Streams、TTL * **SAA 考點**: * 不支援 JOIN * 適合 IoT、電商、使用者偏好儲存 * Serverless 架構,具高可擴展性 ### 4. Amazon DocumentDB * **類型**:相容 MongoDB 的文件型資料庫 * **重點功能**:儲存半結構化 JSON 文件資料 * **關鍵字**:MongoDB compatible、JSON Document * **SAA 考點**: * 不等同 MongoDB,需透過工具遷移 * 適合對 MongoDB API 熟悉的開發者 --- ## ✅ 快取型資料庫 ### 5. Amazon ElastiCache * **類型**:託管 Redis 或 Memcached * **重點功能**:記憶體快取層,加速資料庫回應 * **關鍵字**:Redis、Memcached、Sub-millisecond latency、In-memory store * **SAA 考點**: * 用於加速 RDS/DynamoDB 查詢 * Redis 適合 pub/sub、session 儲存 --- ## ✅ 圖形 / 帳本 / 搜尋 / OLAP ### 6. Amazon Neptune * **類型**:圖形資料庫 * **支援查詢語言**:Gremlin / SPARQL * **關鍵字**:Graph DB、Triple store、Relationship Traversal * **SAA 考點**: * 適用社交網路、推薦系統 * 不支援傳統 SQL / JOIN ### 7. Amazon QLDB (Quantum Ledger DB) * **類型**:帳本資料庫(不可竄改) * **關鍵字**:Immutable、Cryptographically Verified、Audit Trail * **SAA 考點**: * 適合記錄交易歷史(如發票、交易紀錄) ### 8. Amazon OpenSearch Service * **類型**:全文搜尋與分析 * **支援**:Elasticsearch API * **SAA 考點**: * 快速全文索引查詢 * 適合 log、監控資料分析 ### 9. Amazon Redshift * **類型**:資料倉儲 OLAP * **重點功能**:Columnar Storage、與 S3 Glue/Athena 整合 * **SAA 考點**: * 適合 BI 查詢、大量報表計算 --- ## ✅ 時間序列與區塊鏈 ### 10. Amazon Timestream * **類型**:時間序列資料庫 * **用途**:IoT 資料、metrics、時間序列分析 * **關鍵字**:Time Interval、Built-in Aggregation ### 11. Amazon Managed Blockchain * **類型**:區塊鏈平台託管 * **支援**:Hyperledger Fabric、Ethereum(讀取鏈上資料) * **SAA 考點**: * 用於記帳、智慧合約驗證應用 --- ## ✅ 查詢與遷移工具(非傳統 DB 但考點常見) ### 12. Amazon Athena * **用途**:用 SQL 查詢 S3 上的資料(無需部署 DB) * **關鍵字**:Serverless、Presto、Data Lake Query ### 13. AWS DMS (Database Migration Service) * **用途**:將資料從本地或其他 DB 遷移至 AWS(支援異構遷移) * **SAA 考點**: * 支援連續複製、近即時同步 # ✅ 物件儲存與檔案儲存服務 ## 🧠 物件 vs 檔案 vs 區塊儲存:核心概念 | 儲存類型 | 典型服務 | 特性 | 適用情境 | | -------- | ---------- | ------------------------- | ------------------ | | **物件儲存** | Amazon S3 | 物件格式(Key-Value)、全球可用、高可用性 | 靜態網站、備份、資料湖、大型文件儲存 | | **檔案儲存** | Amazon EFS | POSIX 相容、可同時掛載、共享資料夾 | 多台 EC2 共用資料、容器應用程式 | | **區塊儲存** | Amazon EBS | EC2 專屬虛擬硬碟、低延遲、高效能 | 資料庫、應用系統磁碟、交易系統 | --- ## ☁️ Amazon S3(物件儲存) ### 🔍 主要特性: * 高可用、高擴展、高耐久(99.999999999%) * 每個物件最大 5TB * 支援版本控制、跨區備份(Cross-Region Replication) * 整合 IAM、Bucket Policy 管理存取 * 可設生命周期(LifeCycle Rules)自動轉階層(至 IA、Glacier) ### 🧠 關鍵功能: * S3 Standard / Standard-IA / One Zone-IA / Glacier / Glacier Deep Archive * S3 Intelligent-Tiering(自動根據使用頻率切換儲存階層) * S3 Transfer Acceleration(跨區高速上傳) * 支援加密(SSE-S3 / SSE-KMS / SSE-C) ### ✅ 考試提醒: * **網站託管(static website hosting) → S3** * **低頻讀取 → Standard-IA / One Zone-IA** * **備份與合規 → Glacier / Deep Archive** * **大量非結構化資料 → S3 + Athena / S3 + Redshift Spectrum** --- ## 📁 Amazon EFS(Elastic File System) ### 🔍 主要特性: * 適用於 Linux EC2 實例 * 可橫向擴展、支援多台 EC2 同時掛載 * 完整 POSIX 相容(支援 chmod, mkdir, etc) * 支援加密、可與 Backup Service 整合 * Two modes:General Purpose(預設)、Max I/O(大量併發) ### ✅ 考試提醒: * **多 EC2 實例同時需要共享檔案 → 選 EFS** * **應用程式需檔案系統 → EFS 比 S3 更合適** * **須 Linux 作業系統支援 → EFS 不支援 Windows(用 FSx)** --- ## 🧱 Amazon EBS(Elastic Block Store) ### 🔍 主要特性: * 僅限掛載至單一 EC2 實例 * 適用交易型應用、資料庫、OS 開機磁碟 * 可快照(Snapshot)備份至 S3 * 分為 GP3、IO1、SC1、ST1 等類型 * 支援加密與 IOPS 客製化 ### ✅ 考試提醒: * **資料庫部署(如 MySQL on EC2)→ EBS GP3 / IO1** * **需要開機磁碟 / 系統磁碟 → EBS 必備** * **需備份 → Snapshot to S3 / 跨區複製需手動** --- ## 🧊 Amazon FSx 家族(Windows / Lustre) | 服務 | 說明 | 考試情境 | | ------------------------------- | ------------------------ | --------------- | | **FSx for Windows File Server** | 適用於 Windows,支援 SMB、AD 整合 | Windows 應用需共享檔案 | | **FSx for Lustre** | 高效能分散式檔案系統,常與 S3 整合 | 大數據、HPC、機器學習訓練 | --- ## 🔁 S3 vs EFS vs EBS 對比表(SAA 常考) | 項目 | S3 | EFS | EBS | | ----- | ----------- | ------ | ---------- | | 存取方式 | REST API | POSIX | 掛載至 EC2 | | 多實例支援 | ✅(多 client) | ✅ | ❌(單實例) | | 延遲 | 高 | 低 | 極低(適用 DB) | | 使用案例 | 備份、網站 | 多台共用檔案 | 資料庫、OS磁碟 | | 成本 | 最便宜 | 中等 | 較高(按 IOPS) | | 加密支援 | ✅ | ✅ | ✅ | --- ## 🔐 儲存相關的安全考點 * **S3 Bucket Policy 與 IAM Policy 差異**: * Bucket Policy → 針對整個 bucket 的資源層級權限 * IAM Policy → 針對使用者或角色的操作權限 * **S3 加密選項比較:** * SSE-S3 → S3 自動管理金鑰 * SSE-KMS → 使用 KMS 金鑰,可審計 * SSE-C → 使用者自帶金鑰(最少見) --- ## 📌 題目範例(解釋題) **Q1: 公司希望建立一個可由多台 Linux EC2 實例存取的共享檔案系統,且能動態擴展容量,應選?** > 答案:Amazon EFS。支援多 EC2 掛載、具自動擴展能力、支援 POSIX。考點關鍵字:"共享掛載"、"Linux"、"動態容量"。 **Q2: 若公司需備份 10 年不常存取的合規性文件,最佳選項?** > 答案:S3 Glacier Deep Archive。具備最低成本與長期備份設計。 **Q3: 一個應用需要高 IOPS 的低延遲磁碟儲存,適合資料庫用,該選?** > 答案:Amazon EBS IO1/IO2。支援高 IOPS 與效能保證。 **Q4: 若一個靜態網站需儲存圖片與 HTML,且全球存取需求大,最佳選?** > 答案:Amazon S3 + CloudFront。S3 為物件儲存,CloudFront 提供 CDN 能力。 # ⚙️ 運算服務 本筆記為 AWS Solutions Architect – Associate(SAA)考試中所有運算類服務的重點彙整,涵蓋 EC2、Lambda、ECS、EKS、Fargate、Beanstalk 等核心服務。 --- ## 🧠 核心分類與對比表 | 類別 | 服務 | 描述 | 適合情境 | | ---------- | --------------------- | ------------------------- | ------------------------- | | 虛擬機器 | **EC2** | 傳統 IaaS,需手動管理容量、OS | 可客製化 VM、高效能應用、資料庫 | | 無伺服器 | **Lambda** | 事件驅動函式,自動擴展 | ETL、API 後端、小型自動任務 | | 容器服務 | **ECS** / **EKS** | 管理容器(AWS 自有 / Kubernetes) | 大型微服務架構、DevOps 流程 | | 容器無伺服器執行環境 | **Fargate** | ECS/EKS 的無伺服器執行選項 | 不需管理 EC2,自動調整資源 | | PaaS 應用部署 | **Elastic Beanstalk** | 自動部署 Web App,支援多語言 | 快速部署 Node.js、Python、PHP 等 | | 批次任務 | **AWS Batch** | 批次運算排程與佇列 | ML 模型訓練、影片轉檔、大規模任務 | --- ## 🧱 Amazon EC2(Elastic Compute Cloud) ### 特點: * 完整掌控 VM(選擇 CPU/RAM/網路/儲存) * 支援 Auto Scaling Group + Load Balancer * 付費模式多元(On-Demand、Reserved、Spot、Savings Plans) * 可結合 CloudWatch、Systems Manager 管理與監控 ### 考點提示: * **長時間、穩定需求 → Reserved EC2** * **間歇性、高波動性 → Auto Scaling + Spot** * **需要 Root 存取與自定網路、OS → EC2** --- ## ⚡ AWS Lambda ### 特點: * 無伺服器運算架構,支援多種語言(Python, Node.js 等) * 根據事件觸發(S3、DynamoDB、API Gateway...) * 計費以 1ms 為單位(依執行時間與記憶體計價) * 自動擴展,最大併發可達萬級 ### 考點提示: * **無需管理伺服器與基礎設施 → Lambda** * **短任務(<15分鐘)、事件驅動 → Lambda** * **搭配 API Gateway / Step Functions / SQS 使用** --- ## 📦 ECS(Elastic Container Service)與 Fargate ### ECS 特點: * AWS 原生容器平台,支援 EC2 模式與 Fargate 模式 * 整合 IAM、CloudWatch、Load Balancer、ECR(容器註冊庫) ### Fargate 特點: * 無需管理 EC2,任務級別自動配置 vCPU/Memory * 搭配 ECS/EKS 使用 ### 考點提示: * **若要自定 VM → ECS on EC2** * **若不想管理底層 EC2 → ECS on Fargate** * **只負責容器映像與規格,AWS 幫你跑 → Fargate** --- ## ☸️ EKS(Elastic Kubernetes Service) ### 特點: * 管理型 Kubernetes 平台 * 支援與 On-premises Kubernetes 整合 * 可搭配 Fargate 執行(Pod 級無伺服器) ### 考點提示: * **需要使用 Kubernetes 生態(Helm, CRD) → EKS** * **K8s 專案遷移上雲 → EKS** * **SAA 考試中比 ECS 難、但考得較少** --- ## 🌱 Elastic Beanstalk ### 特點: * 全託管式部署平台(PaaS) * 支援 Python、Node.js、Java、PHP... * 背後運行 EC2 + ALB + Auto Scaling + CloudWatch * 可從 GitHub 或 CLI 快速部署 ### 考點提示: * **快速部署 Web App 且不需調整底層架構 → Beanstalk** * **考試常用情境:開發人員想簡單部署 Node.js 應用 → 選 Beanstalk** --- ## 🧪 AWS Batch ### 特點: * 自動排程大量批次運算任務 * 與 EC2、Fargate 整合執行 Job * 可設定排程、佇列、依賴關係等 ### 考點提示: * **需執行大量批次任務(影像轉檔、分析等) → AWS Batch** * **需低成本大規模任務 → AWS Batch + Spot EC2** --- ## 🔁 常考混淆與選擇邏輯 | 情境 | 建議服務 | 原因 | | ----------------- | ------------- | ---------------------------------- | | 單次影像轉檔任務 | Lambda | 簡單事件驅動、無需長時間 VM | | 需要 root 權限、安裝特定套件 | EC2 | 完整控制權限與 OS | | 想快速部署 Web 應用 | Beanstalk | 自動完成 Load Balancer + EC2 + Scaling | | 容器化部署但不想管 EC2 | ECS + Fargate | 無需管理底層資源 | | 要用 Kubernetes 生態 | EKS | 支援原生 Kubernetes 功能 | | 計算密集的批次任務 | Batch | 佇列管理、大量任務排程 | --- ## 📘 題目範例(解釋型) **Q1. 公司需要快速建立並部署一個 Node.js 應用,開發者不熟悉 EC2 設定與網路架構,最佳選擇?** > 答案:Elastic Beanstalk **Q2. 若需高效能批次運算並控制成本,哪個組合最合適?** > 答案:AWS Batch + EC2 Spot **Q3. 某容器化應用要部署於 AWS,開發團隊不想維運底層資源,應該選?** > 答案:ECS on Fargate **Q4. 公司希望建立事件驅動的無伺服器應用架構,可自動擴展並省下伺服器成本,最佳選項?** > 答案:AWS Lambda **Q5. 想要使用自有 Kubernetes 工具(如 Helm),並與現有 K8s 叢集整合,應該使用?** > 答案:EKS # 🔐 安全性與身份管理 此筆記針對 AWS Solutions Architect – Associate(SAA)考試中「安全性與身份管理」的所有核心概念、AWS 服務、設計考量與常見混淆點,並附上情境題範例。 --- ## 🧠 核心目標 * 控制「誰」可以對「哪些 AWS 資源」執行「什麼操作」 * 建立安全邊界、權限最小化原則 * 加強資料保護、加密與審計能力 --- ## 🔑 IAM(Identity and Access Management) ### 功能與元件: * **使用者(User)**:單一實體(人員、應用程式) * **群組(Group)**:一組使用者,共用權限 * **角色(Role)**:可被 AWS 服務或其他帳號假扮(AssumeRole) * **政策(Policy)**:JSON 格式權限聲明(可附加於 User/Group/Role) ### 類型: * **IAM Policy**:Identity-based Policy(用戶或角色層級) * **Resource Policy**:S3 Bucket Policy、KMS Key Policy、Lambda Resource Policy ### SAA 考點提醒: * **跨帳號存取資源 → AssumeRole + Resource Policy(如 S3)** * **最小權限原則 → 精確定義 action + resource** * **EC2 存取 S3 → 附加 IAM Role 至 EC2 Instance Profile** --- ## 🧩 IAM 與其他服務整合 | 服務 | 與 IAM 的關係 | | -------------- | ----------------------------- | | **EC2** | 附加 Role 控制對其他 AWS 資源存取(如 S3) | | **Lambda** | 執行角色(Execution Role)定義對資源存取權限 | | **CloudTrail** | 審計誰透過哪個角色或使用者執行哪些動作 | | **STS** | 提供臨時憑證,支援跨帳號、跨服務調用 | --- ## 🔐 AWS 安全服務概覽 | 類別 | 服務 | 功能 | SAA 考點 | | ------- | --------------------------------- | -------------------- | ----------------------------- | | 身份與存取管理 | IAM / IAM Identity Center | 控管誰可存取什麼資源 | IAM Role vs User | | 加密與金鑰管理 | AWS KMS | 對資料加密/解密,整合多數 AWS 服務 | SSE-KMS / Envelope encryption | | 資訊保護 | Macie | 找出 S3 中敏感資訊(如 PII) | GDPR、資料稽核、警告系統 | | 審計與合規 | AWS CloudTrail | 記錄所有 API 呼叫行為(誰做了什麼) | 常與 CloudWatch Alarm 搭配 | | 網路保護 | AWS WAF / Shield / NACL / SG | 應用層 DDoS、防火牆 | WAF 層 7, SG 層 4 | | 機密管理 | Secrets Manager / Parameter Store | 安全儲存憑證與參數 | Rotate key、自動加密、整合 Lambda | --- ## 🔐 加密與資料保護 ### 加密類型: * **At Rest**:靜態加密(S3、EBS、RDS、Glacier) * **In Transit**:使用 TLS 傳輸加密 ### 加密機制: * **SSE-S3**:由 S3 自動加密與管理金鑰 * **SSE-KMS**:使用 AWS KMS 客戶主控金鑰(CMK) * **SSE-C**:使用者提供金鑰(最少用) ### 考點提醒: * **需審計金鑰使用 → KMS(CloudTrail 可追蹤)** * **RDS、EBS、S3 預設可整合 KMS 加密** * **Envelope Encryption → Data Key 加密 Data,再用 CMK 加密 Data Key** --- ## 🧠 IAM 與安全常見混淆 | 混淆項 | 區別 | 考試建議關鍵字 | | -------------------------------------- | ------------------------------------ | --------------------------------- | | IAM Role vs User | User 為人或應用;Role 為可假扮身分的權限包 | AssumeRole, Temporary Credentials | | S3 Bucket Policy vs IAM Policy | Bucket Policy 為資源層級,IAM Policy 為身份層級 | S3 存取控制、跨帳號 | | KMS CMK vs Data Key | CMK 是主金鑰,Data Key 加密實際資料 | Envelope encryption | | Secrets Manager vs SSM Parameter Store | 都可儲存敏感值,Secrets 支援 rotation 與更多控制 | 自動更新密碼、Lambda 整合 | --- ## 🧪 題目範例(解釋型) **Q1: 公司希望讓第三方應用程式臨時讀取其 S3 Bucket 資源,應如何處理?** > 使用 IAM Role + STS 發放臨時憑證給第三方,並設定 S3 Bucket Policy。 **Q2: 某公司希望審查 EC2 是否過去曾嘗試未授權操作 IAM,應使用哪個服務?** > 使用 AWS CloudTrail 記錄 API 呼叫記錄並查詢 ec2.amazonaws.com 嘗試的動作。 **Q3: 公司資料需符合法規要求(加密+審計),並儲存於 S3,最佳方案?** > 使用 SSE-KMS 加密 + CloudTrail 審計金鑰使用紀錄。 **Q4: 某應用需將資料庫密碼安全儲存,並能讓 Lambda 程式在執行時動態取得密碼,應選?** > AWS Secrets Manager,支援動態取得、整合 IAM 與自動密碼輪替。 # 🌐 網路與連線 本筆記針對 AWS Solutions Architect – Associate(SAA)考試中「網路與連線」相關主題進行完整整理,包括 VPC、Subnet、Route Table、NAT、PrivateLink、VPN、Direct Connect 等。涵蓋設計考量、常見混淆、應用場景與題目。 --- ## 📦 1. 核心服務與概念 | 服務/概念 | 說明 | 關鍵字 | | ------------------------------- | ----------------------------- | ---------------------- | | **VPC** (Virtual Private Cloud) | 定義虛擬網路邊界,類似企業資料中心 | 網路隔離、自定 CIDR、私有子網 | | **Subnet** | 將 VPC 分割成多個子網(可為公有/私有) | Availability Zone、網段規劃 | | **Route Table** | 定義封包如何轉送 | 通往 IGW、NAT、VPN 等的路徑 | | **IGW (Internet Gateway)** | 使公有子網能連上網際網路 | 公網路出入口、綁在 VPC 上 | | **NAT Gateway/Instance** | 讓私有子網的資源可「出」網但不可被「入」 | 一般搭配私有子網使用 | | **VPC Endpoint** | 私有網路連線 AWS 公共服務(S3, DynamoDB) | 無須經過 Internet | | **PrivateLink** | 私有連線第三方/自家 VPC 中的服務 | 服務公開但網路不開放 | | **Security Group** | 執行階層防火牆(instance layer) | stateful, 入站出站規則 | | **NACL (Network ACL)** | 子網層級防火牆,適用在 Subnet | stateless, 可設 deny 規則 | --- ## 🧱 2. 架構設計考量與選擇依據 ### 🔒 安全性: * 公開 EC2 → 必須放在 **公有子網 + 綁定 IGW + 設定 SG** * 私有服務(DB, App)→ **私有子網 + NAT Gateway + SG 設定限制** * 跨 VPC → **VPC Peering / PrivateLink**,視需求選擇(下方詳述) ### 📈 可擴展性: * 善用 **Auto Scaling Group + ELB**,將實例分散至多個 AZ * 每個 AZ 建立對應子網 + Route Table 分開管理 ### 💰 成本考量: * **NAT Gateway 計費高**(每 GB 資料轉出計價) → 小規模可用 NAT Instance * PrivateLink 通常比 VPC Peering 成本高,但更安全 --- ## 🔄 3. 混淆服務對照與考試常考點 | 功能 | 推薦服務 | 說明 | 關鍵詞 | | ---------------- | ------------------------ | -------------------- | --------------- | | 讓私有子網可連外(不能被連入) | **NAT Gateway** | 自動擴展、高可用、付費服務 | 僅出站連線、私有子網配對使用 | | 兩個 VPC 間點對點通訊 | **VPC Peering** | 雙向流量、不支援轉送 | 相互信任、自家 VPC 溝通 | | 跨帳號或第三方服務存取 | **PrivateLink** | 建立 ENI 並暴露服務 | 封閉網路、僅提供服務接口 | | 私有網路中連接 AWS 公有服務 | **VPC Endpoint** | S3、DynamoDB 專用 | 不經 IGW、節省費用 | | On-prem 與 AWS 連線 | **VPN / Direct Connect** | VPN 快速建置;DX 提供專線與穩定性 | VPN 靈活,DX 穩定低延遲 | --- ## 🔧 4. 補充網路元件 | 元件 | 說明 | 考點 | | --------------------------------- | ----------------------------- | ----------------------- | | **Elastic IP (EIP)** | 靜態 IPv4 公網 IP,可綁至 EC2 | 公網 IP 資源、需主動釋放才不計費 | | **Internet Gateway (IGW)** | 公網出口,需在 Route Table 中設定 | 只綁 VPC,每 VPC 一個 | | **Virtual Private Gateway (VGW)** | 與 on-prem VPN 對接的 VPN Gateway | 與 Customer Gateway 配對使用 | | **Transit Gateway (TGW)** | 多 VPC 多網段的集中路由點 | 企業級網路串連中心,支援 5000+ VPC | --- ## 📘 5. 模擬情境題(解釋型) **Q1. 某公司需將 EC2 架設於私有子網,並讓其能更新作業系統套件,應採用哪種設計?** > 在 VPC 中建立私有子網 + NAT Gateway,讓 EC2 可對外(下載套件)但外部不能連入。 **Q2. 某企業有兩個 VPC,分別為開發與測試環境,需要安全直接互通,最佳方案?** > 使用 VPC Peering(若僅點對點,成本較低),或使用 Transit Gateway(若要集中化管理) **Q3. 某應用需從私有子網中訪問 DynamoDB,但不能經由 Internet,怎麼設計?** > 使用 VPC Endpoint(Gateway 型)連接 DynamoDB,避開 IGW/NAT。 **Q4. 某公司欲讓外部合作夥伴使用其提供的私有 API 服務,但不希望開放公網,應使用?** > 使用 PrivateLink 將服務暴露為 ENI,合作方可從自家 VPC 私下訪問 **Q5. 某企業需要從本地資料中心長期穩定存取 AWS,並有大量資料傳輸需求,應該選?** > 使用 AWS Direct Connect(DX),提供專線與低延遲,大流量更省成本。 # 📊 監控與自動化工具 本筆記為 AWS Solutions Architect – Associate(SAA)考試中「監控與自動化」主題的重點整理,涵蓋雲端架構的可觀察性(Observability)、事件回應與資源自動化。 --- ## 🎯 主題目標 * 主動掌握 AWS 資源健康狀態與性能 * 自動偵測異常並通知 * 實現自動化資源調整與部署 * 符合高可用性、成本最佳化與運維效率提升需求 --- ## 🔍 1. 監控相關核心服務 | 服務 | 功能 | 關鍵點 | | -------------------------------------- | ------------------ | --------------------------------- | | **Amazon CloudWatch** | 監控 AWS 資源與應用效能 | 包含 Metrics、Alarms、Logs、Dashboards | | **CloudWatch Logs** | 收集/儲存/分析應用 Log 資料 | 支援自訂 Log 分析與指標提取 | | **CloudWatch Alarms** | 監控指標是否觸發門檻,自動執行動作 | 可觸發 SNS、Auto Scaling、Lambda | | **CloudWatch Events (現為 EventBridge)** | 捕捉 AWS 資源事件並觸發對應反應 | 支援 CRON 定時觸發、自訂事件模式匹配 | | **CloudTrail** | 記錄所有帳號層級 API 活動 | 重點在安全稽核、IAM 調查事件 | | **AWS Config** | 追蹤資源設定變動,符合合規性規則 | 可搭配 Rules + Remediation | --- ## 🧩 2. 自動化與反應服務 | 工具 | 功能 | 常見用途 | SAA 考點 | | ----------------------- | ---------------------- | ------------------------------- | ------------------------------------- | | **AWS Auto Scaling** | 根據需求自動新增/刪減 EC2 實例等資源 | EC2, ECS, DynamoDB | 與 CloudWatch Alarm 搭配使用 | | **AWS Systems Manager** | 提供集中式資源操作、修補、參數儲存 | Run Command、SSM Parameter Store | 用於無 Agent SSH 管理 EC2(Session Manager) | | **AWS Lambda** | Serverless 計算平台 | 自動處理事件(Log 分析、EC2 啟動等) | 可由 CW Alarm、S3、SNS 觸發 | | **AWS CloudFormation** | 基礎架構即程式碼(IaC)部署工具 | 使用 YAML / JSON Template 部署資源 | 與 CI/CD 整合,自動重建架構 | | **EventBridge** | 事件匯流排,可整合 SaaS 應用與內部事件 | CloudWatch Events 升級版 | 更強事件篩選與串流 | | **SNS / SQS** | SNS:廣播型通知;SQS:佇列型緩衝處理 | 通知機制 + 解耦服務整合 | 通常與 Alarm/Lambda 搭配 | --- ## 📘 3. 常見監控設計場景與建議 ### 3.1 EC2 監控 * 使用 CloudWatch Metrics(CPUUtilization、StatusCheckFailed) * Alarms 通知管理者或觸發 Auto Scaling ### 3.2 日誌集中收集與分析 * 使用 CloudWatch Logs + Insights 分析應用錯誤模式 * 搭配 Lambda 定時通知或推送到外部(如 Elasticsearch) ### 3.3 IAM 活動審核 * 使用 CloudTrail 紀錄誰在何時對什麼資源做了什麼操作 * 配合 AWS Config 追蹤資源狀態是否偏離預設準則(Compliance Rules) ### 3.4 燒錢預警 / 成本管控 * 使用 Billing Alarm 設定花費預算上限通知 * 可搭配 Budgets 進行細緻成本追蹤 --- ## 🚨 4. 考試重點提醒與混淆對照 | 服務 | 易混對象 | 區別說明 | | -------------------------- | ---------------------------------------- | ---- | | CloudWatch vs CloudTrail | CloudWatch 監控系統資源 / CloudTrail 監控 API 活動 | | | SNS vs SQS | SNS 為即時廣播型 / SQS 為訊息緩衝與任務佇列 | | | EventBridge vs Lambda | EventBridge 為事件觸發源頭,Lambda 為執行者 | | | SSM Session Manager vs SSH | Session Manager 為無需開 Port 的安全登入方式 | | --- ## 🧪 5. 模擬題(解釋型) **Q1: 某應用需偵測 EC2 CPU 使用率過高並發出警報,應如何實作?** > 設定 CloudWatch Alarm,監控 CPUUtilization 指標,並透過 SNS 發送通知。 **Q2: 某公司要求所有資源不得在未經授權變動下更改配置,應使用?** > AWS Config,可追蹤資源設定歷史並設定合規規則。 **Q3: 如何讓 IT 團隊可登入 EC2 處理故障,且無需開啟 SSH port?** > 使用 Systems Manager Session Manager,並確保 EC2 附有 SSM IAM Role。 **Q4: 某應用程式將日誌寫入 CloudWatch Logs,欲每日篩選 error 並寄出報告?** > 使用 CloudWatch Logs Insights 搭配 Scheduled Lambda 發出整理結果。 **Q5: 若 Lambda 被多個服務觸發(S3、CW、SNS),如何追蹤來源?** > 檢查 Lambda event payload,其中包含觸發來源資訊(source/service)。 # 💰 成本與帳務優化 本筆記整理 AWS SAA 考試中關於成本管理、帳務結構、最佳化策略與預算控管的重點,包括 RI/SP 採購、成本預測、報告工具與考題混淆點。 --- ## 💡 1. 成本結構概論 | 項目 | 說明 | | ---- | -------------------------------------------------------- | | 計價模型 | 按需(On-Demand)、保留(RI)、節省方案(Savings Plan)、免費額度 | | 計價維度 | 計算(EC2/Lambda)、儲存(S3/EBS)、資料傳輸(Data Transfer) | | 支付模式 | 預付(All Upfront)、部分預付、無預付 | | 賬戶管理 | Consolidated Billing、Organizations、Cost Explorer、Budgets | --- ## 🧠 2. 架構設計中的成本考量 ### 2.1 計算資源 * EC2 On-Demand:適合間歇性/短期任務 * EC2 Reserved Instance(RI):穩定長期使用(1年或3年) * EC2 Spot Instance:成本最低,適合中斷容忍的任務(批次處理) * Lambda:對比 EC2 適用於間歇且不需常駐服務的場景 ### 2.2 儲存服務 * S3 標準 vs S3 IA / One Zone-IA / Glacier:按訪問頻率調整 * EBS gp3 vs gp2:gp3 提供更低成本與更高 IOPS 彈性 * 使用 Lifecycle Policy 定期將資料移至冷儲存 ### 2.3 傳輸費用 * 同一 AZ、同一 VPC 的資料傳輸免費 * 不同 AZ、跨區、出 Internet 需計費(資料傳出最昂貴) * VPC Endpoint 比 NAT Gateway 更節省資料傳輸費 --- ## 🛠 3. 成本最佳化工具與服務 | 工具/服務 | 功能 | 用途 | | ----------------- | ----------------- | ----------------------------- | | AWS Budgets | 設定成本預算與使用警報 | 預警、限制服務爆量花費 | | Cost Explorer | 成本視覺化分析、預測未來支出 | 歷史與預估成本趨勢圖表 | | Trusted Advisor | 提供節省建議、安全建議、效能評估 | 成本節省建議、未使用資源 | | Compute Optimizer | 分析實例使用率並推薦最佳配置 | EC2、Lambda、EBS 的效能與成本優化 | | Savings Plans | 彈性取代 RI 的長期折扣承諾方案 | 可跨 EC2/Lambda/Fargate 使用,較具彈性 | | Organizations | 多帳戶集中管理與共用 RI/SP | 統一控管、集中帳單、施行 SCP | --- ## 🔄 4. 預算與帳務管理架構 ### 4.1 AWS Organizations * 使用 Consolidated Billing 可跨帳戶共用 RI/SP * 子帳戶可獨立管理、獨立限制(SCP) * 成本透明化、便於預算分配與追蹤 ### 4.2 成本分攤(Cost Allocation Tags) * 對資源加上標籤(Project/Team/Environment)進行分類 * 在 Cost Explorer / Budgets 報告中查看細部花費來源 ### 4.3 成本監控流程 1. 啟用 Cost Explorer 與 Budgets 2. 為關鍵資源設定預算門檻與 SNS 警報 3. 搭配 Trusted Advisor / Compute Optimizer 定期檢視 4. 使用 Lifecycle Policy 與 Auto Scaling 降低無效開支 --- ## 📘 5. 常見混淆對照與考試重點 | 混淆主題 | 區別 | 關鍵詞 | | --------------------------- | -------------------------------------- | ----------- | | RI vs Savings Plans | RI 綁定實例類型與區域;SP 更彈性、支援 Fargate | 長期承諾、折扣最大化 | | Cost Explorer vs Budgets | Explorer 為報表工具,Budgets 為預警與控管工具 | 預測 vs 控制 | | Consolidated Billing vs SCP | Consolidated Billing 是帳務合併;SCP 為權限限制機制 | 管錢 vs 管權限 | | S3 標準 vs IA vs Glacier | 訪問頻率由高至低、成本相反 | 儲存類型轉換、省錢策略 | | Spot Instance vs On-Demand | Spot 最便宜但會被回收;On-Demand 穩定但貴 | 批次 vs 長期 | --- ## 🧪 6. 模擬題(解釋型) **Q1: 某企業每月固定使用一批 EC2 實例,如何節省成本?** > 使用 EC2 Reserved Instances 或 Savings Plans,可針對長期固定工作負載提供最大折扣。 **Q2: 如何針對多帳戶集中進行帳務與成本管理?** > 使用 AWS Organizations 與 Consolidated Billing,可將帳單集中、RI/SP 共用並施行 SCP。 **Q3: 某團隊希望當月成本超過 300 USD 時收到通知?** > 設定 AWS Budgets 並加上 SNS 通知機制。 **Q4: 某應用程式使用 EC2 CPU 利用率僅 10%,如何最佳化?** > 使用 Compute Optimizer,分析後可建議降級為較小實例節省成本。 **Q5: 某系統為每日批次轉檔任務,具容錯性且短時間高效需求,建議使用?** > 使用 EC2 Spot Instances,最低成本並適合可中斷性任務。 # AWS SAA 考試常見混淆服務對照表 ## 🧠 資料儲存類 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | ------------ | ------------------- | ------------------------- | ---------------------------------------------------------- | | 關聯式 vs NoSQL | RDS | DynamoDB | RDS 支援 JOIN 和 SQL,適合事務型應用;DynamoDB 為鍵值/文件型 NoSQL,延遲低、高擴展性。 | | 快取型資料庫 | ElastiCache (Redis) | DynamoDB DAX | Redis 為獨立快取服務,適用各種資料庫;DAX 為 DynamoDB 專用快取,無需程式修改。 | | 文件型儲存 | S3 | EFS | S3 是物件儲存(HTTP 存取);EFS 是共享檔案系統(POSIX 相容,支援 NFS)。 | | 物件 vs 區塊儲存 | S3 | EBS | S3 適用於非結構化資料、可直接存取;EBS 是 EC2 的虛擬硬碟,只能被掛載到一個 EC2。 | | 文件資料庫 | DocumentDB | DynamoDB | DocumentDB 相容 MongoDB API,支援複雜查詢;DynamoDB 是鍵值/文件型,但查詢受限。 | | 備份冷資料 | S3 Standard | S3 Glacier / Deep Archive | Glacier 成本低但存取慢;Standard 為常用儲存。選擇根據資料存取頻率。 | --- ## ☁️ 運算與無伺服器類 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | ------ | ---------------- | ---------- | ----------------------------------------------------- | | 無伺服器計算 | Lambda | Fargate | Lambda 適合簡單函式、事件驅動;Fargate 適用容器部署,須定義容器映像與資源。 | | 自動部署 | Beanstalk | CodeDeploy | Beanstalk 是 PaaS 自動部署平台;CodeDeploy 更彈性,適用於 EC2/ECS 等。 | | 容器管理 | ECS | EKS | ECS 是 AWS 自有容器編排;EKS 支援原生 Kubernetes。 | | 高擴展運算 | EC2 Auto Scaling | Lambda | Auto Scaling 適用長時間運算;Lambda 適用短命函式與事件驅動應用。 | --- ## 🌐 網路與安全類 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | -------------------------- | ---------------------- | --------------- | ---------------------------------------------- | | 公網連線 | IGW (Internet Gateway) | NAT Gateway | IGW 用於公網入站/出站;NAT Gateway 僅提供私有子網出站連線。 | | 網路 ACL vs 安全群組 | NACL | Security Group | NACL 層級在 Subnet,支援允許/拒絕;SG 作用於 EC2,僅允許規則。 | | DNS vs 負載平衡 | Route 53 | ALB | Route 53 是 DNS 解析;ALB 執行 HTTP 層級負載平衡。兩者可互補使用。 | | Site-to-Site vs Client VPN | AWS Site-to-Site VPN | AWS Client VPN | 前者連接企業資料中心;後者給使用者(筆電、遠端)連進 VPC。 | | 多 VPC 連線 | VPC Peering | Transit Gateway | Peering 適用 1 對 1;Transit Gateway 適用多 VPC 中繼連線。 | --- ## 🔐 身份與存取管理 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | -------- | ---- | ---------- | ---------------------------------------------------------- | | AWS 身份控管 | IAM | Cognito | IAM 控管 AWS 資源存取(Admin/User);Cognito 管理 App/行動端使用者登入(OIDC)。 | | 加密金鑰 | KMS | CloudHSM | KMS 為託管式金鑰管理;CloudHSM 提供實體 HSM,使用者完全控管。 | | 憑證管理 | ACM | IAM SSL 憑證 | ACM 提供自動更新 SSL 憑證;IAM SSL 適用非 ELB 之環境。 | --- ## 📊 監控與自動化類 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | -------- | ------------------------------- | ---------- | --------------------------------------------------------------- | | 指標與日誌 | CloudWatch | CloudTrail | CloudWatch 側重效能監控(Log、Metrics);CloudTrail 追蹤 API Call 與用戶操作紀錄。 | | IaC 建置方式 | CloudFormation | Terraform | CF 為 AWS 原生 IaC 工具;Terraform 為第三方支援多雲管理。SAA 重點在 CF。 | | 實例存取 | Systems Manager Session Manager | SSH | Session Manager 可透過 IAM 登入 EC2(無需開 port),提高安全性;SSH 需設金鑰與開 port。 | --- ## 💰 成本與帳務工具 | 混淆主題 | 服務 A | 服務 B | 差異說明與選擇建議 | | ---- | ---------------------- | ------------- | ------------------------------------------- | | 成本管理 | AWS Budgets | Cost Explorer | Budgets 用於設定預算與警示;Cost Explorer 用於成本視覺化與分析。 | | 成本估算 | AWS Pricing Calculator | Cost Explorer | Calculator 用於事前估算;Explorer 用於事後分析已花費資源。 | --- ## 📌 小技巧:遇到選項混淆時的判斷邏輯 1. **是否需要 Serverless?** → Lambda / DynamoDB / Fargate / Athena 2. **是否支援 SQL JOIN?** → 只有 RDS / Aurora 3. **是否有高併發需求?** → 選 DynamoDB 或 Lambda(高可擴展) 4. **是否涉及用戶登入?** → Cognito 5. **是否需要公網連接?** → IGW / NAT Gateway 視情境選擇 # 錯題 ![image](https://hackmd.io/_uploads/ByIwvd8Lll.png) --- ![image](https://hackmd.io/_uploads/By_Lv_8Uxe.png) --- ![image](https://hackmd.io/_uploads/SJ5Htu8Iel.png) --- ![image](https://hackmd.io/_uploads/SkWMKdIUxe.png) --- ![image](https://hackmd.io/_uploads/Hy7YFdL8xe.png) --- ![image](https://hackmd.io/_uploads/HySnYdU8ll.png) ![image](https://hackmd.io/_uploads/ry50FdI8xx.png) ![image](https://hackmd.io/_uploads/HJZyc_8Lgg.png) --- ![image](https://hackmd.io/_uploads/Sk0RTa_8el.png) --- ![image](https://hackmd.io/_uploads/HJzMATdUex.png) --- ![image](https://hackmd.io/_uploads/rkWDz7FIex.png) --- ![image](https://hackmd.io/_uploads/HJlhMQFUxg.png) > 「靜態資料加密」(Encryption at rest) > | 選項 | 說明 | 是否正確 | 備註 | | --- | -------------------------------------------- | ---- | ---------------------------------------------------------- | | A | **Enable TDE (Transparent Data Encryption)** | ❌ | TDE 是 SQL Server / Oracle 特定功能,不是 AWS 一般加密方法 | | B | **Use SSL** | ❌ | SSL 是「傳輸加密(in transit)」不是「靜態加密(at rest)」 | | ✅ C | **Enable encryption during DB creation** | ✅ | 唯一能啟用 encryption at rest 的方式,必須在建立 RDS instance 時勾選,無法事後修改 | | D | **Encrypt using IAM** | ❌ | IAM 是權限控制工具,無法直接執行加密 | --- ![image](https://hackmd.io/_uploads/rk-Xm7KIlg.png) --- ![image](https://hackmd.io/_uploads/Hklv7mKIge.png) > | 選項 | 說明 | 正確性 | 補充 | | ----------------------- | ------------------------------------------- | --- | -------------------- | | A. Auto Scaling Group | 自動根據條件新增/移除 EC2,但需搭配啟動模板使用,無法自己產生模板 | ❌ | 它使用模板,不產生模板 | | B. Launch Configuration | 是設定 ASG 的舊方法(已被 Launch Template 取代) | ❌ | 僅設定啟動 EC2,但不屬於模板建立服務 | | C. EC2 Image Builder | 用於建立映像檔(AMI),而非整體環境模板 | ❌ | 只能建 AMI,不是完整的基礎架構 | | ✅ D. AWS CloudFormation | 使用 YAML/JSON 模板定義與部署完整基礎架構(EC2, VPC, IAM 等) | ✅ | IaC 標準工具,可版本控制、重複部署 | :::spoiler CloudFormation vs EC2 Image Builder | 功能面向 | **EC2 Image Builder** | **AWS CloudFormation** | | ------------- | ---------------------------------------------------------- | ---------------------------- | | 🌟 **用途核心** | 自動化建立 EC2 AMI(映像檔)流程 | 建立與部署完整 AWS 基礎架構 | | 📦 建立 EC2 環境? | ❌ **只能製作映像檔**,不負責建立整個 EC2 環境(如 VPC, SG) | ✅ 一次建立 EC2、VPC、安全性群組、IAM 等資源 | | 📄 定義語言 | JSON(Pipeline 設定) | YAML / JSON(模板語法) | | 🔁 自動化流程 | ✅ 支援映像檔建置流程自動化(含安裝套件) | ✅ 支援基礎架構即程式碼、堆疊部署、版本化 | | 🧱 代表功能 | 自動建 AMI、掃毒、測試、版本控管 | IaC、跨區部署、可重複使用模板 | | 🚫 無法做的事 | 無法定義 VPC、Auto Scaling Group、Load Balancer、Security Group 等 | 可完整管理所有 AWS 基礎設施 | ::: --- ![image](https://hackmd.io/_uploads/ryjWSQt8ee.png) :::spoiler Active Directory (AD) 是什麼? Active Directory(AD) 是由 Microsoft 所開發的一套 目錄服務系統,主要功能如下: | 功能 | 說明 | | ----------- | --------------------------------- | | 👤 使用者與群組管理 | 提供中央化的身分驗證、授權與存取控制 | | 🏢 網域控制 | 定義組織的網路結構(Domain、OU、Group Policy) | | 🔐 登入認證 | 允許 Windows 裝置以單一登入(SSO)登入組織網域 | | 📁 資源管理 | 控制對印表機、檔案分享、應用程式等的存取權限 | ::: :::spoiler AWS Directory Service 是什麼? AWS Directory Service 是 AWS 提供的雲端目錄服務整合工具,可用來: | 服務功能 | 說明 | | ----------------- | ------------------------------------------------ | | ✅ 支援 Microsoft AD | 可以部署一個 AWS 管理的 **Microsoft AD** 實例 | | 🔁 整合本地端 AD | 可與企業現有的 on-premises AD 同步(使用 AD Connector 或信任關係) | | 👤 搭配其他 AWS 服務 | 可與 EC2、WorkSpaces、SSO、RDS for SQL Server 做身份整合 | | 🛡️ 提供登入與驗證 | 支援 Windows 登入、LDAP 與 Kerberos 驗證 | 📌 AWS Directory Service 3 種模式 | 模式 | 說明 | 適用情境 | | ---------------------------- | --------------------------- | ------------------------ | | **Simple AD** | AWS 輕量版目錄服務(非 Microsoft AD) | 測試環境、小規模應用 | | **AWS Managed Microsoft AD** | 完整托管版 Microsoft AD | 需要 AD trust、Windows 認證整合 | | **AD Connector** | 串接本地 AD 的橋接器,不儲存資料 | 延伸本地端 AD 身份到 AWS,不複製目錄 | ::: --- ![image](https://hackmd.io/_uploads/S1Xl37tIgl.png) > 關鍵字:sub-millisecond latency → Redis (ElastiCache) Session state 儲存最佳選擇:Redis DynamoDB 雖然也是 key-value,但用於 session 仍不如 Redis 快。 --- ![image](https://hackmd.io/_uploads/HJ8-RmYUlx.png) > 檔案傳輸 / 同步 → DataSync > 資料庫遷移 → AWS DMS(Database Migration Service) --- # 雲端大師 ## Route 53 的四種選項策略是什麼?怎麼用? | 選項 | 策略名稱 | 說明 | 是否適合本題? | | -- | ----------------------- | ------------------------------------------------------------- | ------------------------- | | A | **Simple** | 最基本的路由策略,只提供一組 IP 或 DNS 回應,無法處理多個目標之間的流量分配與健康檢查。 | ❌ 不適合,不能分配多個伺服器。 | | B | **Failover** | 設定主/備服務,當主服務失效(健康檢查失敗)時才切換到備援伺服器。 | ❌ 不適合,這是容錯備援,不是隨機分流。 | | C | **Weighted** | 可為每個目標指定權重,例如:A:40%、B:60%。可作為流量分配用途,但不是**隨機**的。 | ❌ 不適合隨機分流(需要事先設定比例)。 | | D | **Multivalue Answer** ✅ | 每次 DNS 查詢隨機回應多個(最多 8 個)健康的 IP 地址。客戶端或瀏覽器會從中隨機選擇連線。**支援健康檢查**。 | ✅ 正確答案,符合「隨機分配給正常伺服器」的要求。 | ## SQS 是否適合影片編碼這種非同步、多工作者的任務情境? SQS 是一個高度可擴展的非同步佇列服務。 可支援多個 EC2 Worker 並行從佇列中讀取任務,實現水平擴展(Horizontal Scaling)。 每個影片編碼任務是一個獨立的工作單位,透過 SQS 投遞任務再由 Worker 處理,是常見的「Producer-Consumer」架構。 這種架構可以讓你: - 動態新增或減少 Worker 數量 - 在流量高峰時自動擴展(配合 Auto Scaling) 🔁 這完全符合影片轉碼這種 CPU 密集型的非同步批次工作場景。 ## 什麼是 ACM(AWS Certificate Manager)? ACM 是 AWS 提供的 SSL/TLS 憑證管理服務,功能包括: - 免費申請公有憑證(用於 ELB、CloudFront、API Gateway) - 自動續期,免人工安裝 - 憑證託管在 AWS 上,無需將憑證手動放到 EC2 上 - 可搭配 ALB/NLB/CloudFront/API Gateway 使用(不能直接部署到 EC2) ## 什麼是 HTTPS Listener? HTTPS Listener 是一個設定在 Application Load Balancer(ALB)或 Network Load Balancer(NLB)上的接收器: - 監聽來自用戶端的 HTTPS 請求(TCP 443) - 並透過 ACM 提供的 SSL 憑證終止加密連線(SSL Termination) - 然後再以 HTTP(或其他協議)將解密後的請求傳送到後端(EC2 等) 這樣可將「加解密」的負載,從 EC2 移除,轉交給 Load Balancer 處理,大幅減少 CPU 負擔。 ## Route 53 功能 | 選項 | 功能 | Route 53 是否提供? | 解釋 | | -- | ----------------------------- | -------------- | ------------------------------------------------------------------- | | A | **域名註冊(Domain Registration)** | ✅ 是 | Route 53 提供 **域名註冊服務**,可購買、轉入、續期網域名稱 | | B | **網路流量導向(Traffic Routing)** | ✅ 是 | Route 53 的主要功能是 DNS 路由流量到不同地區或服務,包含簡單、加權、地理、延遲、多值、故障轉移等策略 | | C | **將內容轉發分發到緩存上** | ❌ 否 | 這是 **CloudFront(CDN)** 的功能,不是 Route 53。CloudFront 才負責內容快取與緩存傳送 | | D | **資源健康檢查(Health Check)** | ✅ 是 | Route 53 可對 IP/Domain 執行健康檢查,並根據檢查結果調整 DNS 回應(例如做 failover routing) | ## SSH/NACL/SG 規則 * 🔖 SSH 是雙向通訊 - 用戶端發起 SSH 請求後,EC2 要能回應封包,才能建立連線。 - 雖然入站允許了 SSH,但出站被 NACL 阻擋,會導致封包回不去。 - Security Group(SG)是「Stateful」防火牆,只支援允許(Allow)規則,無法設定拒絕(Deny)規則。 * 🔖 NACL 是「無狀態(Stateless)」 - 必須同時允許入站與出站規則才能完成雙向通訊。 - 相對地,Security Group 是有狀態(Stateful),只要允許入站,它會自動允許對應的出站回應。 - NACL 是 Stateless 防火牆,可以設定 Allow 或 Deny 規則。 - 規則編號越小,優先順序越高。因此若要拒絕某個 CIDR,就新增 低編號的 Deny 規則,高於其他 Allow 規則。 - 適合大範圍阻擋 IP(例如一整段 CIDR) ## 最小破壞(Minimal disruption) * 題目要求「盡可能少改原有系統」 * VM Import 可以將原本桌面上的整套作業系統與應用程式打包成 AMI,部署到 EC2 幾乎「原封不動」 * 不需重寫程式碼,不需重架構 ### AWS VM Import/Export * 將你在本地或其他雲端上的虛擬機(VM)匯入到 AWS EC2 * 或從 EC2 將虛擬機導出回本地環境 ## CloudFront 📌 1. CloudFront 的基本架構 當你建立一個 CloudFront Distribution 時,AWS 會為你產生一個預設的 domain,例如: ``` d111111abcdef8.cloudfront.net ``` > 這是 CloudFront 自帶的 DNS 名稱,用來指向你的 distribution。 📌 2. 如果你想要使用「自訂網域」來存取 CloudFront: 比如: ``` www.abc.com ``` 你必須做兩件事: | 步驟 | 說明 | |------|------| | ✅ 在 CloudFront Distribution 的設定中,加入 `www.abc.com` 到 Alternate Domain Names (CNAMEs) | | | ✅ 你在自己的 DNS(例如 Route 53)中,新增一筆 CNAME 紀錄:<br>`www.abc.com → d111111abcdef8.cloudfront.net` | | 這樣用戶在瀏覽器輸入 `www.abc.com` 時,DNS 會把它解析到 CloudFront 的位址上。 ## Amazon EBS 存儲類型 | 類型 | 名稱 | 適用情境 | IOPS 表現 | 傳輸吞吐量 | 成本 | | ----- | ------------------------------------ | -------------------- | ---------------------------------- | ---------------------- | ----- | | **A** | **Provisioned IOPS SSD (io1 / io2)** | 高性能 OLTP、數據庫、大量隨機讀寫 | ✅ 可自訂 IOPS(最多 64000 IOPS)<br>穩定性最高 | 高(最高可達 1000 MB/s) | 💰最貴 | | **B** | **General Purpose SSD (gp2 / gp3)** | 一般用途(開發、Web伺服器、中型DB) | 中等性能<br>gp3 可自訂 IOPS/吞吐量 | 中(gp3 up to 1000 MB/s) | 中等 | | **C** | **Cold HDD (sc1)** | 不常使用的資料,冷備份 | ❌ 低 IOPS | 低 | 💰最便宜 | | **D** | **Throughput Optimized HDD (st1)** | 順序大量資料讀寫,如大資料分析 | ❌ IOPS 不穩定 | ✅ 高吞吐量(最高 500 MB/s) | 便宜 | ## AWS Global Accelerator vs CloudFront vs Route 53 比較表 | 功能面向 | AWS Global Accelerator | Amazon CloudFront | Amazon Route 53 | |----------------------|------------------------------------|----------------------------|-------------------------------| | **主要用途** | 全球應用流量加速 | 全球 CDN 內容分發 | DNS 解決與路由策略 | | **支援動態內容** | ✅ | ⚠️(有限) | ✅(依記錄設定) | | **支援靜態內容** | ❌ | ✅ | ✅ | | **是否具備全球加速** | ✅ AWS 骨幹網路 | ✅ 邊緣節點快取 | ❌(非加速) | | **是否使用 Anycast IP** | ✅ | ❌ | ❌ | | **支援負載平衡** | ✅(跨區 / 跨 AZ) | ❌(需搭配 ELB 使用) | ✅(延遲 / 加權 / 地理等策略)| | **地理導向路由** | ❌ | ❌ | ✅ | | **是否可用自管 DNS** | ✅ | ✅ | ❌(需使用 Route 53 為主) | | **典型使用場景** | 多區部署的 EC2/NLB/ALB,需動態內容快路由 | 靜態網站、影片、圖片快取加速 | 多區網域流量導向、容錯策略控制 | ## ALB vs NLB vs CLB 比較表 | 功能/特性 | **ALB (Application LB)** | **NLB (Network LB)** | **CLB (Classic LB)** | | -------------- | ------------------------ | ---------------------- | -------------------- | | 層級(OSI) | 第 7 層(應用層) | 第 4 層(傳輸層) | 第 4 和第 7 層混合 | | 支援協定 | HTTP / HTTPS | TCP / TLS / UDP / gRPC | HTTP / HTTPS / TCP | | 處理能力 | 智能路由(基於內容) | 超高效能、低延遲 | 功能有限、已不建議使用 | | 路由規則 | ✅ 支援 path/host-based | ❌ 不支援 | ❌ 不支援 | | 靜態 IP / EIP 支援 | ❌ | ✅(可綁定 EIP) | ❌ | | 支援 WebSocket | ✅ | ✅ | ✅ | | 支援 gRPC | ✅ | ✅ | ❌ | | 原始連線保留 | ❌(重建連線) | ✅(保持 TCP 原始連線) | ❌ | | 使用場景建議 | Web 應用、微服務 API | 遊戲伺服器、IoT、高效 TCP | 舊系統(不推薦新使用) | | 成本 | 中等 | 較低(依流量計費) | 較貴(計算資源 + 流量) | ## 為什麼錯誤出現在前端 JS 但正確解法是在 API Gateway 中啟用 CORS? ✅ 先理解什麼是 CORS? | 項目 | 說明 | | --- | ------------------------------------------------------------------------------------------------------------------ | | 定義 | 一種瀏覽器安全機制,防止網頁從一個來源(domain)請求另一個來源的資源(API) | | 啟動方 | **瀏覽器主動檢查與阻擋**,不是 JS 程式能控制的 | | 解法 | 後端伺服器(例如 API Gateway)必須在 Response header 中加上:<br> `Access-Control-Allow-Origin: https://www.yourcompany.com` 等授權欄位 | ✅ 為什麼在 API Gateway 中啟用 CORS * API Gateway 提供一鍵啟用 CORS 的功能 * 會自動加上所需的 CORS headers(如 Access-Control-Allow-Origin) * 讓前端 JavaScript 能安全跨網域存取 ## 身份管理服務比較 | 選項 | 服務 | 用途 | 是否支援 Federated Access | 適用場景 | | --- | ---------------------------------------- | ---------------------------------- | ------------------------------------------------------- | --------------- | | A | **Amazon Cognito** | 提供 Web / App 用戶身份管理(主要給 end-users) | ✅ 是,但多用於「客戶端 App 登入」 | 手機 App、網站註冊/登入 | | B | **IAM (Identity and Access Management)** | 管理 IAM 使用者(針對 AWS 帳號內)與權限 | ❌ IAM 使用者不等於 federated user(需要結合 IdP 才行) | 建立 AWS 操作者身份與權限 | | ✅ C | **AWS SSO (IAM Identity Center)** | 為企業內部人員(如開發者、管理員)整合身份登入與帳號管理 | ✅ 完全支援 Federated SSO(整合 AD / Okta / Google Workspace 等) | 單一登入企業入口 | | D | **AWS Organizations** | 多帳號管理與治理服務 | ❌ 不處理使用者身份或登入 | 控制帳號層級資源與政策 | * Federated Access 指的是:讓使用者從外部身份來源(如公司 AD、Google Workspace)登入 AWS 服務。 * Cognito:適合 App end-users,與 Web App 登入相關。 * IAM:管理 AWS 操作者,但不處理外部聯邦身份(除非搭配 IAM Identity Provider)。 * SSO:企業內部的登入入口首選,支援多帳號、多應用統一登入。 ## AWS Shield vs WAF vs GuardDuty | 功能層級 | AWS Shield | AWS WAF | AWS GuardDuty | | ------- | ------------------------------------------ | ---------------------------- | ------------------------------------------ | | 🔍 主要用途 | 抵禦 **DDoS 攻擊** | 過濾/阻擋 HTTP 層攻擊(L7) | 偵測可疑活動與潛在威脅(如入侵) | | 📦 防禦層級 | 網路/傳輸層(L3/L4) | 應用層(L7) | 日誌分析與威脅檢測(非實體阻擋) | | 🧱 適用服務 | CloudFront、ALB、Route53 等 | CloudFront、ALB、API Gateway 等 | 全區域適用,針對 VPC Flow Logs、CloudTrail、DNS Logs | | 🧠 智能偵測 | ✅(Shield Advanced) | ❌(需自行設規則) | ✅(內建威脅情報、ML 分析) | | ⚙️ 是否自動 | Shield Standard 自動啟用 | 需手動設定規則 | 自動分析,不需部署代理程式 | | 💰 成本 | Shield Standard 免費<br>Shield Advanced 額外收費 | 依 WCU 使用計價 | 依分析資料量計費 | | 📌 考點 | 防 DDoS | 防 OWASP Top 10 (SQLi、XSS...) | 偵測異常登入、掃描、惡意 IP | ## CodePipeline / CodeCommit / Cloud9 / CodeDeploy | 服務名稱 | 功能分類 | 主要用途 | SAA 考點提醒 | 常見誤選點 | |----------------|--------------------|--------------------------------------|--------------------------------------|-------------------------------| | **CodePipeline** | CI/CD 管線 | 自動化整合與部署流程(類似 Jenkins)| 「自動化部署流程」<br>整合 Git → Build → Deploy | 常誤認為是用來編輯程式或部署 | | **CodeCommit** | 原始碼版本控制系統 | Git 代管服務(類似 GitHub) | 「私有 Git 儲存庫」<br>用於儲存程式碼 | 誤以為它是部署工具 | | **Cloud9** | 雲端開發環境 | 線上 IDE 編輯器、支援即時寫程式 | 「不需本地安裝 IDE」<br>支援協作開發 | 常與 CodePipeline 混淆 | | **CodeDeploy** | 自動部署 | 自動部署應用程式至 EC2 / Lambda 等 | 「部署應用程式」<br>支援 rolling update 等策略 | 誤認為它是 Git 服務 | ## Lambda 函數 Lambda 支援兩種授權方式: 1. 執行角色(execution role):Lambda 執行時用來呼叫其他 AWS 服務 1. 資源型政策(resource-based policy):允許其他 AWS 服務(如 EventBridge)觸發 Lambda ## SQL vs NoSQL 比較表 | 比較項目 | SQL 資料庫 | NoSQL 資料庫 | | ---- | -------------- | ------------------ | | 資料結構 | 表格(結構固定) | 文件、鍵值、列族、圖形(彈性) | | 擴展性 | 垂直擴展(scale-up) | 水平擴展(scale-out) | | 一致性 | 強一致性(ACID) | 最終一致性(BASE),除非特別設計 | | 適用場景 | 結構化資料、事務 | 大量、快速變動、分散式資料 | :::spoiler 強一致性(ACID)跟最終一致性(BASE)差在哪 | 特性 | ACID(強一致性) | BASE(最終一致性) | | ---- | ------------ | --------------- | | 一致性 | 即時一致 | 最終一致 | | 可用性 | 較低(容易因鎖造成等待) | 較高(允許臨時不一致) | | 容錯性 | 一致性優先 | 可用性與容錯優先 | | 延展性 | 垂直擴展為主 | 水平擴展為主 | | 適用場景 | 銀行、ERP、訂單處理 | IoT、社群、電商瀏覽、訊息流 | ::: ### 常見 SQL 資料庫系統(DBMS) | 類型 | 名稱 | 開發公司 / 特色 | 說明 | | ------ | ------------------------ | -------------- | ----------------------------- | | ✅ 商用 | **Microsoft SQL Server** | 微軟 | 使用 T-SQL,適合大型企業、BI 分析、整合 .NET | | ✅ 商用 | **Oracle Database** | Oracle | 功能最強、支援最多複雜需求,金融、政府常用 | | ✅ 商用 | **IBM Db2** | IBM | 大型主機與企業環境專用 | | ✅ 開源 | **MySQL** | Oracle(原為 Sun) | 最流行的開源 DB,網站常用,支援 LAMP | | ✅ 開源 | **PostgreSQL** | 社群主導 | 功能強,支援 GIS、複雜查詢、事務更完善 | | ✅ 開源 | **MariaDB** | MySQL 的分支 | Oracle 接手後社群另開分支,100% 相容 | | ✅ 雲端原生 | **Amazon Aurora** | AWS | 兼容 MySQL 或 PostgreSQL,雲端高效版本 | | ✅ 雲端原生 | **Google Cloud Spanner** | Google | 可橫跨地區、水平擴展的 RDB | | ✅ 嵌入式 | **SQLite** | 公開原始碼 | 無伺服器,小型設備或 App 常用 | | ✅ 開源 | **CockroachDB** | Cockroach Labs | 分散式、PostgreSQL 相容,具高可用性 | ### 🧠 常見 NoSQL 資料庫 | 名稱 | 所屬類型 | 說明 | | ------------------ | --------- | --------------------------------- | | **MongoDB** | 文件型 | 最知名,使用 JSON 文件,支援索引、查詢語法豐富 | | **Redis** | 鍵值型 | 快取型 DB,支援 pub/sub、排序、TTL,非常快 | | **DynamoDB** | 鍵值 + 文件混合 | AWS 伺服器無狀態資料庫,支援 Auto Scaling、高可用 | | **Cassandra** | 列族型 | 高擴展性、寫入效能佳,適合大資料量 | | **Neo4j** | 圖形型 | 查找人際關係或節點間連結關係的最佳選擇 | | **Amazon Neptune** | 圖形型 | AWS 的圖形資料庫,支援 Gremlin 與 RDF 查詢語法 | ### NoSQL 四大類型與常見資料庫 | NoSQL 類型 | 主要特徵 | 常見資料庫 | 使用情境 | | -------------------------- | ------------------------------ | ----------------------------------------------------------- | ------------------- | | 🧾 **文件型(Document-based)** | 以 JSON / BSON 結構儲存資料,彈性 schema | **MongoDB**, Amazon DocumentDB, CouchDB, Firebase Firestore | 動態欄位、內容彈性如電商產品、用戶設定 | | 🔑 **鍵值型(Key-Value)** | 類似字典:以 key 對應 value,極速查詢 | **Redis**, Amazon DynamoDB, Riak, Memcached | 快取、會話資料、遊戲排行榜、IoT | | 📊 **列族型(Column-family)** | 將欄位分散儲存,適合稀疏資料、高寫入 | **Apache Cassandra**, HBase, ScyllaDB | 物聯網、訊息紀錄、時間序列資料 | | 🕸 **圖形型(Graph-based)** | 儲存節點與邊,強調關聯性 | **Neo4j**, Amazon Neptune, TigerGraph | 社交網路、推薦系統、詐欺偵測 | ## CloudWatch 與 EC2 的監控指標區別 | 類型 | 是否預設可用? | 需額外設定? | 常見用途 | | ---------------- | ------- | ------ | ---------------------------------------------- | | **基本指標** | ✅ 是 | ❌ 否 | CPUUtilization、NetworkIn等 | | **自訂指標(Custom)** | ❌ 否 | ✅ 是 | Memory、Disk usage、進程等 | | **Agent 安裝** | ❌ 預設未裝 | ✅ 必須設定 | 必須安裝 `CloudWatch Agent` 或 `collectd`,搭配 IAM 角色 | Amazon CloudWatch 預設只能監控 EC2 的「CPU、磁碟、網路使用量」等基本指標。 若要監控記憶體(Memory)、磁碟內部使用(Disk space usage)、進程數等「作業系統層級」資訊,必須在 EC2 裡安裝 CloudWatch Agent(或自建腳本)並回報為 自定義指標(Custom Metrics)。 ## IAM Policy 中 ARN 的通配邏輯條件語法 `ArnLike` 與 `ArnEquals` 是常見的條件運算子: * `ArnEquals`:完全相符才成立 * `ArnLike`:允許通配字元比對(更彈性) ## AWS Storage Gateway * Storage Gateway 是一種混合雲儲存服務,讓本地應用程式能無縫存取 AWS 雲端的儲存資源。 * 提供本地端應用與雲端儲存整合的橋樑 * 允許企業將資料「逐步搬遷至 AWS」同時維持現有的存取方式(如掛載磁碟、檔案分享) 🧩 三種主要類型 | 類型 | 存取方式 | 雲端儲存後端 | 使用情境 | 協定支援 | | -------------------------------------------- | ----------- | ------------------- | -------------------- | ---------- | | **File Gateway** | NFS / SMB | Amazon S3(物件) | 備份、媒體存取、資料湖 | POSIX 檔案協定 | | **Volume Gateway**<br>(兩種模式:Cached / Stored) | iSCSI | Amazon S3(表現為區塊) | 資料備份、VMWare / SQL 備份 | 區塊存取協定 | | **Tape Gateway** | iSCSI(虛擬磁帶) | Amazon S3 / Glacier | 替代實體磁帶機(備份軟體用) | 虛擬磁帶存取 | | 模式 | 儲存位置 | 適用場景 | 特點 | | ----------------- | -------------------- | --------------- | -------------- | | **Stored Volume** | 資料保留在本地端、同步備份到 AWS | 有強烈本地資料需求 | 快取能力低,需本地硬碟大容量 | | **Cached Volume** | 資料保留在 AWS,僅快取常用資料在本地 | 大容量備份(如 100+TB) | 本地負擔低、成本最佳化 | ## 什麼是 Pre-signed URL? Pre-signed URL 是 AWS S3 提供的一種安全授權機制,它允許你在不公開 Bucket 的情況下,授權某個用戶端(如手機 App)在一定時間內: * 上傳(PUT) * 下載(GET) * 刪除(DELETE) 特定的 S3 物件。 ## Site-to-Site VPN,VPC Peering, VPC endpoint,AWS Direct Connect | 特性 / 連線方式 | Site-to-Site VPN | VPC Peering | VPC Endpoint | AWS Direct Connect | | -------------------------- | -------------------------- | --------------------------------- | -------------------------------------- | ------------------------------- | | ✅ **用途** | 與**本地資料中心**建立加密 VPN | **兩個 VPC** 間連線(同帳號或跨帳號) | VPC 與\*\*AWS 服務(如 S3、DynamoDB)\*\*私下連線 | 本地資料中心 ↔ AWS,提供**低延遲專線** | | 🌍 **傳輸路徑** | 透過 **Internet(加密通道)** | AWS backbone | AWS backbone | **專屬線路(非 Internet)** | | 🔒 **安全性** | 高(透過 IPsec VPN 加密) | 中(私網傳輸,不加密) | 高(私網通道,無需經 Internet) | 高(專線 + 支援 IPsec VPN) | | 🚀 **速度 / 穩定性** | 一般(視 ISP 與公網品質) | 快速(走 AWS backbone) | 快速穩定(走 AWS backbone) | 非常快、穩定(SLAs) | | 💰 **費用成本** | 低(按流量收費 + VPN Gateway 小時費) | 中(按流量收費) | 最低(大多數 endpoint 是免費或便宜) | 高(專線租用、Port 費用) | | 🧭 **可跨區連線嗎?** | ✅ 可以 | ❌ 只能同區(但可跨帳號) | ❌ 只能在同區使用 | ✅ 可連到多個區域(要額外設 Transit Gateway) | | 🌐 **Internet Gateway 需求** | ✅ 需要 | ❌ 不需要 | ❌ 不需要 | ❌ 不需要 | | 📦 **常見應用場景** | 本地資料中心 VPN → VPC | 兩個 VPC 間私下通信(microservice, 跨帳號整合) | EC2 連到 S3、DynamoDB 無需經過網際網路 | 高頻連線場景,如大數據同步、VDI 等 | | ⚠️ **限制或注意事項** | Latency 取決於公網品質 | 不支援轉送(No Transitive Routing) | 僅限 AWS 服務(如 S3、DynamoDB) | 建置成本高、設定複雜 | ## instance 類型比較 | 使用情境 | 推薦選項 | | ------------------- | ----------------------------- | | 短期實驗、不可預測負載 | On-Demand | | 可中斷批次任務 | Spot Instances | | 可預測、穩定運行(如 Web 伺服器) | Standard RI 或 Savings Plan | | 需彈性切換配置 | Convertible RI 或 Savings Plan | | 特定時間執行任務(每晚批次報表) | Scheduled RI | | 合規需求需固定實體伺服器 | Dedicated Host | -> Standard 適合一年365天,schduled 適合使用時間明確但非持續運行 # 備註 1. Auto-Scaling 跟 負載均衡器 都可以跨AZ(不可跨Region) 2. Auto Scaling 的預設終止策略為:先移除部署於「可用區中實例數最多」的實例