---
# System prepended metadata

title: SAA ExamPrep

---

# 🧠 資料庫服務總覽
## ✅ 關聯式資料庫（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 的預設終止策略為：先移除部署於「可用區中實例數最多」的實例














