這次的內容會整理之前準備 AWS Cloud Practitioner Essentials 考試時的各章重點,內容大部份都出自 AWS 的官方網站上喔!
單元一:雲端運算
- 雲端運算的三種部署模型分別為公有雲、私有雲和混合雲。
- 將預付費用轉換為變動費用。
- 不必將資金投入於執行和維護資料中心。
- 無需預測容量需求。
- 受益於大規模的經濟效益。
- 提升速度與敏捷性。
- 快速進入全球市場。
→ 透過網路,以按需付費的定價方式提供 IT 資源和應用程式,隨需交付。
單元二:Amazon EC2 與雲端中的運算
EC2簡介
Amazon Elastic Cloud Compute (Amazon EC2) 是一種虛擬伺服器。AWS 已經包辦了許多繁瑣的工作。它已經建立了資料中心並提供了必要的安全性,購買了伺服器,並且完成了堆疊架設。這些伺服器已經上線並隨時可供使用。AWS 能夠持續運作大量的運算容量,只要有需求,你便可以使用這些容量中的任意部分。只需請求所需的 EC2 執行個體,這些執行個體會自動啟動並運行,幾分鐘內即可使用。當任務完成後,可以輕鬆停用或終止不再需要的 EC2 執行個體,無需擔心被「綁住」。畢竟,EC2 執行個體用量可能會隨時間變動,而你僅為運行中的執行個體付費,對於停用或終止的執行個體則不會收費。
EC2 執行個體運行於物理主機上,由 AWS 透過虛擬化技術進行管理。啟動 EC2 執行個體後,你不需要管理整個主機的運作。相反,你會與多個其他執行個體共同使用同一物理主機,它們也稱為虛擬機器。每台物理主機上都會運行一個 Hypervisor,負責將基礎硬體資源分配給不同的虛擬機器。這種共用硬體的架構稱為「多租戶」,而 Hypervisor 會協調並保護各虛擬機器之間的資源隔離,確保每個 EC2 執行個體的安全性。即使它們共用資源,EC2 執行個體依然會「忽略」其他執行個體的影響,彼此保持隔離並受到保護。
類型
- 一般用途執行個體:平衡運算、記憶體與網路資源。適用於多種工作負載,如應用程式伺服器、遊戲伺服器、企業應用程式後端伺服器以及小型和中型資料庫。
- 運算最佳化執行個體:適合需要高效能處理器的運算密集型應用程式,如遊戲服務、高效能計算(HPC)和科學模擬。
- 記憶體最佳化執行個體:設計用來處理大型資料集並提供快速效能,特別是需要大量記憶體的工作負載。在運算中,記憶體是用來暫時儲存中央處理單元(CPU)所需的資料和指令。當 CPU 執行程式時,會將資料從儲存體載入記憶體,這樣 CPU 就能更快存取指令。在某些情況下,可能需要在執行應用程式之前預先載入大量資料,例如高效能資料庫或即時處理大量非結構化資料的工作負載。這時,記憶體最佳化執行個體會提供最佳效能。
- 加速運算執行個體:使用硬體加速器或協同處理器來提升某些功能的執行效能,這些功能包括浮點數計算、圖形處理和資料模式比對。此類執行個體適用於圖形應用、遊戲串流和其他需要高效能處理的應用程式。
- 儲存最佳化執行個體:專為需要對本機儲存體進行高頻序列讀寫操作的工作負載設計。儲存最佳化執行個體特別適合分散式檔案系統、資料倉儲應用程式及高頻線上交易處理 (OLTP) 系統。這類執行個體提供高效能的每秒輸入/輸出操作(IOPS),特別適用於需要大量隨機讀寫操作的應用程式。
定價類型
- 隨需隨付:隨需執行個體適用於無法預測的短期不定期工作負載,無需預付費用或最低合約。這些執行個體會持續運行直到你手動停止,你僅需為實際運行時間付費。此類執行個體適用於開發測試或工作負載無法預測的應用程式。若工作負載持續一年或更長,則透過其他定價方案如預留執行個體可能能夠節省更多費用。
- Amazon EC2 Savings Plans:AWS 提供的運算服務節省計畫,其中包括 EC2。此計畫讓你透過承諾在1 年或 3 年期限內保持一致的運算使用量,來節省高達 72% 的費用。此計畫可以幫助你以折扣價支付運算費用,但超過承諾的用量會按照隨需費率收費。
- 預留執行個體:預留執行個體根據使用量折扣,可以選擇購買 1 年或 3 年期的標準預留或可轉換預留執行個體。選擇 3 年期選項會提供更多的節省空間。
- Spot 執行個體:Spot 執行個體適合啟動和終止時間較為彈性或可以承受中斷的工作負載。它利用未使用的 EC2 容量並透過隨需付費價格提供服務,可為你節省最多達 90% 的費用。Spot 執行個體的優點是能夠大幅減少運算成本,但也有中斷的風險,適合背景處理或可容忍中斷的任務。
- 專用主機:專用主機是完全專供你使用的物理伺服器,並包含 EC2 容量。它可幫助你維持授權合規性,並且適用於需要特定授權或硬體需求的應用程式。這是所有 EC2 服務中價格最昂貴的選項。
Amazon EC2 Auto Scaling
- 動態調整:根據需求的變動自動調整資源。
- 預測性擴展:根據預測的需求自動安排適當數量的 EC2 執行個體。
Elastic Load Balancing (負載平衡器,ELB)
Elastic Load Balancing 會自動將應用程式流量分配至多個資源,如 EC2 執行個體。負載平衡器充當所有 Web 流量的單一入口點,確保當增減 EC2 執行個體時,流量會自動被均勻分配。這有助於提升應用程式的效能與可用性,尤其在與 EC2 Auto Scaling 一起使用時。
訊息與佇列 (Queue)
為避免緊耦合導致流程失敗,可以轉向鬆耦合模式來提高系統的可擴展性和可靠性。
- Amazon SNS(面向使用者):一個發布/訂閱服務,讓發布者可以將訊息發送給訂閱者。
- Amazon SQS(面向伺服器):一個可靠的訊息佇列服務,支持解耦和異步處理
其他運算服務
- AWS Lambda
AWS Lambda 是一種無伺服器運算服務,讓你可以在不管理伺服器的情況下執行程式碼。當你上傳程式碼後,Lambda 會自動處理運算資源的分配與管理,並在程式碼被觸發時自動執行。只需為實際運行的計算時間付費,無需為閒置資源支付費用。
優點: - 專注於開發創新功能:可以專注於業務邏輯與功能開發,而不需擔心伺服器的維護與管理。
- 自動擴展:Lambda 可以自動擴展應用程式,根據需求調整運算資源,而不需要手動配置或調整容量。
- 按需付費:僅為實際使用的運算時間付費,無需預先規劃資源。
- Amazon Elastic Container Service (Amazon ECS)
Amazon Elastic Container Service (Amazon ECS) 是一個高度擴展的、高效能的容器管理系統,旨在簡化在 AWS 上執行和管理容器化應用程式的過程。ECS 支援 Docker 容器並可輕鬆與 AWS 的其他服務(如 Elastic Load Balancing 和 Auto Scaling)進行整合。
ECS 讓你可以使用 API 呼叫來啟動和停止容器化應用程式,而不需要管理底層的基礎設施。它提供了強大的擴展性,能夠滿足大規模運行容器化應用程式的需求。 - Amazon Elastic Kubernetes Service (Amazon EKS)
Amazon Elastic Kubernetes Service (Amazon EKS) 是一個完全受管的服務,讓你可以在 AWS 上運行 Kubernetes。Kubernetes 是一個開放源碼的容器編排平台,用於自動化應用程式的部署、擴展和管理。
使用 EKS,你可以輕鬆啟動和運行 Kubernetes 集群,並利用 AWS 基礎設施的高可用性和擴展性。EKS 支援最新版本的 Kubernetes,並持續與 Kubernetes 社群合作,為你提供及時更新和功能。 - AWS Fargate
AWS Fargate 是一種無伺服器的容器運算引擎,與 Amazon ECS 和 Amazon EKS 整合使用。Fargate 讓你不需要管理伺服器或叢集,而是專注於設計和部署容器化應用程式。AWS Fargate 會自動管理容器所需的基礎設施,並且你只需為容器執行所需的資源付費。
優點: - 無需管理伺服器:Fargate 自動管理所有伺服器層級的資源,讓你可以將精力集中在應用程式的開發上。
- 按需付費:你只需為執行容器所需的 CPU 和記憶體資源付費,無需為閒置資源付費。
- 彈性擴展:Fargate 可以根據需求自動調整容器的資源,無需手動配置。
單元三:全球基礎設施與可靠性
選取區域
- 符合資料管理和法律要求
在選擇 AWS 基礎設施區域時,需要考慮公司或所在地的資料管理與法律要求。某些國家或地區可能有規範,要求資料必須儲存在特定區域。例如,若公司要求所有資料都存放在英國境內,那麼你應該選擇 AWS 的倫敦地區來執行服務。
注意:並非所有公司都會有這樣的法律要求。如果公司對資料儲存地點沒有特殊需求,可以根據其他因素來選擇適合的區域。 - 接近你的客戶
為了提高服務的效率與客戶體驗,選擇一個與客戶地理位置較近的 AWS 區域是明智的決策。這樣可以減少延遲並提升響應速度。例如,若公司總部位於華盛頓特區,並且大部分客戶位於新加坡,可以選擇在美國維吉尼亞北部運行基礎設施,並在新加坡區域運行應用程式。 - 區域內的可用服務
儘管某個區域可能在地理位置上距離你的目標市場較近,但它可能未必提供所需的所有 AWS 服務。AWS 會定期推出新服務或擴展現有服務的功能,因此在選擇區域時,需要確保該區域支持你所需要的服務。例如,某些先進服務(如 Amazon Braket)可能只在特定區域提供。 - 定價
AWS 服務的定價在不同區域之間可能會有所不同。例如,由於稅務結構的差異,你在巴西聖保羅地區執行相同工作負載的成本可能會比在美國奧勒岡州更高。這樣的價格差異主要受到當地稅務政策和運營成本的影響。
可用區域 (AZ)
可用區域是 AWS 區域內的單一資料中心或一組資料中心。這些可用區域之間距離足夠遠,以防止在災難發生時影響到多個區域的運行。但同時又足夠接近,確保資料傳輸延遲保持在較低水平。
- 區域是指包含 AWS 資源的地理位置區域。
- 可用區域是指區域內的具體資料中心或資料中心集群。
可用區域的設置有助於提升 AWS 服務的可靠性和高可用性,即使某一可用區域出現故障,其他可用區域仍可保持運行,避免服務中斷。

圖片來源: AWS
節點
節點 是 Amazon CloudFront 中的一個分發點,用來將你的內容存放於更靠近客戶的地理位置。這樣可以加速內容交付,並減少延遲。例如,如果你在某地區提供網頁服務,CloudFront 會在全球多個節點儲存快取副本,使得客戶無論在何處,都能更快地載入內容。
與服務互動
AWS 提供了多種方式來與其服務互動,這些方式既能減少人工錯誤,也能提高效率:
- AWS 管理主控台
這是一個基於網頁的界面,允許你訪問和管理 AWS 服務。透過主控台,你可以輕鬆查找服務、設定資源,並使用向導來簡化一些常規操作。AWS 還提供了行動應用程式,便於你在行動設備上監控資源、查看警示等。 - AWS 命令列界面 (CLI)
若你需要高效的自動化與批量處理操作,AWS CLI 是一個理想的工具。你可以直接從命令列向 AWS 發送 API 請求,進行如啟動 EC2 執行個體、配置 Auto Scaling 等操作。AWS CLI 支援 Windows、macOS 和 Linux 操作系統。 - 軟體開發套件 (SDK)
若你需要將 AWS 服務集成到現有應用程式中或開發新應用程式,你可以使用 AWS 提供的 SDK。SDK 針對不同的程式語言提供特定的 API,支持如 C++、Java、.NET 等程式語言。這些 SDK 使得開發者能夠更輕鬆地將 AWS 服務嵌入自己的應用程式。 - AWS Elastic Beanstalk
AWS Elastic Beanstalk 是一個平台即服務(PaaS),它允許開發者簡單地提供程式碼,然後由 Elastic Beanstalk 負責部署所需的基礎設施,並進行容量調整、負載平衡與監控。這使得開發者不需要管理底層的硬體或伺服器資源,可以專注於應用程式本身。 - AWS CloudFormation
AWS CloudFormation 允許你將基礎設施當作程式碼來管理。透過撰寫 CloudFormation 模板,你可以以自動化、可重複的方式配置與管理 AWS 資源。CloudFormation 會根據模板自動創建資源,並在檢測到錯誤時自動恢復,無需手動干預。
單元四:網路
Amazon Virtual Private Cloud (Amazon VPC)
Amazon VPC 讓你可以在 AWS 雲端中設置一個虛擬網路,你可以在其中配置和啟動資源。VPC 使你能夠控制你的網路配置,並設置安全性和其他設定,確保資源的分隔和保護。
VPC 可以分成多個子網路,這些子網路可以設為公有或私有。公有子網路通常用來放置需要暴露於網際網路的資源(如 Web 伺服器),而私有子網路則用來放置只有內部存取的資源(如資料庫伺服器)。
網際網路閘道 (Internet Gateway)
若要允許來自網際網路的流量存取你的 VPC 內的資源,你需要設置網際網路閘道。
- 功能:網際網路閘道提供了 VPC 和網際網路之間的連接,使得 VPC 中的公有子網路資源可以與外界通信。
- 舉例:可以將其比作一個商店的入口,所有外部顧客必須通過這個門進來。
虛擬私有閘道 (Virtual Private Gateway)
虛擬私有閘道允許你在 VPC 和企業內部網路之間建立虛擬專用網路(VPN)連線。
- 功能:它可以加密流量,保護從內部資料中心到 VPC 的資料傳輸,使得內部網路和 VPC 之間的通信保持安全。
- 舉例:想像為一條專用道路,只有經過驗證的車輛可以通過,並且整個過程都有保護。
AWS Direct Connect
AWS Direct Connect 是一種服務,它允許你通過專用的物理連線,將你的資料中心與 AWS 連接,提供比公共網際網路更穩定、更高效的傳輸。
- 功能:這種專用連接可用於減少網路延遲、提高帶寬並降低成本。
- 舉例:可以將其比作一條直通你家與咖啡店的私人走廊,這條路只有你和你的同伴能使用,不會擠擁。
子網路 (Subnets)
子網路是將你的 VPC 劃分成更小的區域,使你能根據不同需求進行資源分組。
- 公有子網路:用於需要公開存取的資源,如 Web 伺服器。
- 私有子網路:用於內部使用或保密的資源,如資料庫伺服器。
VPC 中的網路流量
網路中的封包(資料單位)需要經過安全檢查,才能進入或離開子網路。這些封包的流動受網路存取控制清單 (ACL) 和 安全群組的管理。
- 封包:是網路中傳輸資料的基本單位,類似於郵件包裹。
- VPC 元件:
- 網路存取控制清單 (ACL):用來控制子網路的進出流量。它是一個無狀態的防火牆,會檢查每個進出封包的權限。
- 安全群組:是針對 Amazon EC2 執行個體的虛擬防火牆,進行狀態封包篩選。它記住先前的請求,允許封包回應進入。
網路存取控制清單 (ACL)
網路 ACL 是一種用來管理子網路層級的流量控制的虛擬防火牆。它不記錄封包的狀態,會對每一個傳入和傳出的封包進行獨立的檢查。
- 功能:你可以根據需要添加規則來允許或拒絕某些流量。
- 預設設置:AWS 提供一個預設的網路 ACL,該 ACL 會允許所有的進出流量。當使用自訂網路 ACL 時,所有流量會被拒絕,直到你設置規則來允許。
無狀態封包篩選 (Stateless Packet Filtering)
網路 ACL 會執行無狀態篩選,這意味著每次傳入或傳出的封包都需要依據規則進行獨立的檢查。
- 舉例:像是每位旅客都需要通過海關檢查,無論他之前是否已經進過其他國家。
安全群組 (Security Groups)
安全群組是專門針對 EC2 執行個體的虛擬防火牆,會檢查進入和離開 EC2 執行個體的流量。與網路 ACL 不同,安全群組會執行狀態封包篩選,即會記住先前的請求並允許回應流量繼續進入。
- 預設設置:安全群組預設拒絕所有傳入流量,但允許所有傳出流量。
- 功能:你可以設定哪些流量可以進入或離開 EC2 執行個體。
狀態封包篩選 (Stateful Packet Filtering)
安全群組會執行狀態篩選,這意味著它會記住之前封包的狀態,並自動允許回應流量。
- 舉例:如果你發出一個請求,當回應流量回來時,安全群組會自動允許這些回應。
全球網路系統
- 網域名稱系統 (DNS):DNS 是一個將域名轉換為 IP 位址的系統,這使得使用者能夠輕鬆訪問網站和應用程式。它就像網際網路的電話簿,將人們使用的域名(如 www.anycompany.com)轉換為伺服器的 IP 位址。
- Amazon Route 53:Amazon Route 53 是 AWS 的 DNS Web 服務,它提供可靠的 DNS 解析功能,可以將使用者流量路由到 AWS 中的資源(如 EC2 執行個體或負載平衡器)。
- 功能: 解析並將流量引導到正確的 IP 地址。 管理域名的 DNS 記錄,並提供域名註冊服務。
- Amazon Route 53 和 Amazon CloudFront 如何交付內容:假設 AnyCompany 的應用程式在多個 Amazon EC2 執行個體上執行並使用 Auto Scaling 群組和 Application Load Balancer。
- 流程: 使用者請求 AnyCompany 的網站。 Amazon Route 53 解析域名並返回 IP 地址(如 192.0.2.0)。 用戶的請求通過 Amazon CloudFront 傳送到最近的節點。 Amazon CloudFront 會轉發請求到 Application Load Balancer,再由該負載平衡器將請求分發到適當的 EC2 執行個體。
單元五:儲存和資料庫
Amazon EC2 虛擬機資料儲存
若未指定儲存資料空間,EC2 啟動後的資料只會儲存在當前虛擬主機上。關閉 EC2 並重新啟動時,可能會失去資料。因此,適合用於儲存用完即丟的資料。
Amazon EBS (Elastic Block Store)
Amazon EBS 提供區塊式儲存,適用於需要長期保存資料的情況。即使 EC2 停止或終止,連接的 EBS 儲存資料仍可使用。EBS 支援增量備份,透過 EBS 快照來備份資料。
- EBS 快照:儲存資料區塊的增量備份,僅儲存自上次快照後的變更資料區塊。
Amazon S3 (Simple Storage Service)
Amazon S3 提供物件層級儲存服務,適合存儲影像、影片、文字檔等各類檔案,且擁有無限儲存空間。上傳的物件大小上限為 5 TB。S3 支援版本控制與許可管理功能,並提供按需付費的計費方式。
S3 儲存類別(根據擷取資料頻率與對資料的可用性進行區分):
- S3 標準:適用於經常存取的資料,具有高可用性,資料存放在至少三個可用區域。
- S3 標準 – 不常存取 (S3 IA):適合不常存取的資料,儲存價格較低,但擷取成本較高。
- S3 單區域 – 不常存取 (S3 One Zone-IA):將資料存放於單一可用區域,成本較低,適合不要求高可用性的資料。
- S3 Intelligent-Tiering:適合存取模式不確定或會變更的資料,依據存取情況自動調整儲存層級。
- S3 Glacier:低成本封存儲存,適用於資料封存,資料擷取速度為幾分鐘到幾小時。
- S3 Glacier Deep Archive:最低成本封存儲存,資料擷取需 12 小時。
Amazon EBS vs. Amazon S3

- S3 優勢:適合儲存大型資料集如圖片庫、網站媒體檔案等,提供高耐用性且無伺服器管理的好處。
- EBS 優勢:適用於需要高效能讀寫及頻繁變動的資料,像是影片編輯工作中對大檔案的微調。
Amazon EFS (Elastic File System)
Amazon EFS 提供可擴展的檔案系統,能夠與 AWS 雲端服務及內部資源無縫結合,隨著資料增加自動調整容量,並支持併發訪問。
Amazon Relational Database Service (Amazon RDS)
Amazon RDS 提供管理型關聯式資料庫服務,支援 MySQL、PostgreSQL、Oracle、SQL Server 等資料庫引擎。具備自動化硬體配置、修補、備份等功能,降低管理工作負擔。
支援的資料庫引擎:
- Amazon Aurora:高效能關聯式資料庫,與 MySQL、PostgreSQL 相容,比標準 MySQL 快 5 倍,並持續將資料備份到 Amazon S3。
- MySQL、PostgreSQL、MariaDB、Oracle、SQL Server等五個關聯式資料庫選項
Amazon DynamoDB
Amazon DynamoDB 是一個高效能的 NoSQL 資料庫服務,適合需要快速反應時間的應用。它是無伺服器的,會根據需求自動調整容量,並且具有高可用性和可擴展性。
Amazon Redshift
Amazon Redshift 是資料倉儲服務,專為大數據分析而設計。支援從多個資料來源集中資料,並幫助識別資料間的關聯和趨勢。畢竟傳統的資料庫在處理過大的資料量時容易卡在佇列中導致無法完成。
AWS Database Migration Service (DMS)
AWS DMS 使您能夠將資料從一個資料庫遷移到另一個資料庫。支持多種資料庫遷移場景,包括:
- 同質遷移:資料庫相同類型之間的遷移。
- 異質遷移:資料庫類型不同時,需進行結構轉換後再遷移。
適用情境:
- 開發和測試遷移
- 資料庫合併
- 持續複寫
其他資料庫服務
- Amazon DocumentDB:支援 MongoDB 工作負載的文件資料庫。
- Amazon Neptune:圖形資料庫服務,用於構建關聯性強的資料集應用。
- Amazon QLDB:支援追蹤資料變更的總帳資料庫。
- Amazon Managed Blockchain:管理區塊鏈網路的服務,適用於多方共用資料。
- Amazon ElastiCache:為資料庫添加快取層,提高讀取效能,支援 Redis 和 Memcached。
- Amazon DAX:為 DynamoDB 提供的記憶體內快取,降低延遲。
參考資料
- AWS