# 🧠 資料庫服務總覽
## ✅ 關聯式資料庫(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 視情境選擇
# 錯題

---

---

---

---

---



---

---

---

---

> 「靜態資料加密」(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 是權限控制工具,無法直接執行加密 |
---

---

> | 選項 | 說明 | 正確性 | 補充 |
| ----------------------- | ------------------------------------------- | --- | -------------------- |
| 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 基礎設施 |
:::
---

:::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,不複製目錄 |
:::
---

> 關鍵字:sub-millisecond latency → Redis (ElastiCache)
Session state 儲存最佳選擇:Redis
DynamoDB 雖然也是 key-value,但用於 session 仍不如 Redis 快。
---

> 檔案傳輸 / 同步 → 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 的預設終止策略為:先移除部署於「可用區中實例數最多」的實例