Karinoya 學習室

證照 · Cloud / AI / Python 合格實驗室

AWS的主要服務

可以用繁體中文閱讀題目與解說。講義(解說文章)僅有日文版。

查看日文版(含講義) →

第1題 | EC2與S3

下列 Amazon EC2 與 Amazon S3 角色的組合中,何者恰當?

  1. EC2 提供虛擬伺服器,S3 儲存物件
  2. EC2 執行函式的程式碼,S3 共用檔案
  3. EC2 儲存物件,S3 提供虛擬伺服器
  4. EC2 共用檔案,S3 執行函式的程式碼
正確答案A. EC2 提供虛擬伺服器,S3 儲存物件

EC2 全稱 Amazon Elastic Compute Cloud,提供可調整大小的運算能力,也就是虛擬伺服器。S3 全稱 Amazon Simple Storage Service,能以物件的形式儲存任意數量的資料。把這兩者調換的說法自古以來就常見,因此最好能從名稱的拼寫聯想到各自的角色。執行函式程式碼的是 Lambda,共用檔案的則是 EFS。

第2題 | Lambda的計費

關於 AWS Lambda 的計費方式,下列何者恰當?

  1. 只針對所消耗的運算時間計費
  2. 依所建立函式的數量,每月定額計費
  3. 即使程式碼未在執行,也會依所配置的容量計費
  4. 只針對所上傳程式碼的容量計費
正確答案A. 只針對所消耗的運算時間計費

Lambda 無需佈建或管理伺服器即可執行程式碼,只會針對所消耗的運算時間計費。程式碼未執行時不會產生費用,這一點是與只要在運作就會持續產生費用的 EC2 最大的差異。並非以建立的函式數量或上傳程式碼本身的容量作為計費單位。

第3題 | 無伺服器

被稱為無伺服器的服務所共通的特徵是哪一項?

  1. 在執行前,使用者要決定作業系統種類與修補套用方針
  2. 執行處理的實體伺服器根本不存在
  3. 只會在使用者準備的專屬實體伺服器上運作
  4. 使用者不需要進行伺服器的佈建或管理
正確答案D. 使用者不需要進行伺服器的佈建或管理

無伺服器並不代表沒有實體伺服器,而是指使用者不需要進行伺服器的採購、設定與擴縮。Lambda 的說明是「無需佈建或管理伺服器即可執行程式碼」,Fargate 的說明則是「不需要佈建、設定、擴縮伺服器或叢集」。實體伺服器仍在AWS一方,由使用者決定作業系統種類與修補套用方針則屬於 EC2 這類形態。

第4題 | Fargate

關於 AWS Fargate 的說明,下列何者恰當?

  1. 供容器使用、無需管理伺服器的按量計費執行引擎
  2. 在AWS上運作 Kubernetes 叢集的受管理服務
  3. 由使用者選擇虛擬伺服器的執行個體類型與台數來使用的機制
  4. 將分散處理的步驟定義為工作流程並執行的機制
正確答案A. 供容器使用、無需管理伺服器的按量計費執行引擎

Fargate 是供容器使用的無伺服器按量計費運算引擎,不需要佈建、設定、擴縮伺服器或叢集,可作為 ECS 或 EKS 的啟動類型使用。Kubernetes 的受管理運作是 EKS,由自己選擇執行個體類型與台數的是 EC2 啟動類型,將步驟定義為工作流程的則是 Step Functions。

第5題 | ECS的容量

關於在 Amazon ECS 中選擇任務執行基礎的方式,下列敘述何者恰當?

  1. 在EC2中由AWS管理基礎,在Fargate中由使用者管理執行個體
  2. 不論選擇 Fargate 或 EC2,都由AWS管理執行個體
  3. 在Fargate中由AWS管理基礎,在EC2中由使用者管理執行個體
  4. 不論選擇 Fargate 或 EC2,都由使用者管理執行個體
正確答案C. 在Fargate中由AWS管理基礎,在EC2中由使用者管理執行個體

ECS 的容量選項,基本上有兩種:無伺服器且由AWS管理基礎的 Fargate,以及由使用者選擇並管理執行個體類型與台數的 EC2。另外還有 ECS Managed Instances、以及供地端使用的 ECS Anywhere。不論選擇哪一種,負責容器的配置與擴縮的都是 ECS,差別只在於基礎設施由誰照顧。

第6題 | EKS

採用 Amazon EKS 的理由,下列何者最恰當?

  1. 想省去自行建置並運作 Kubernetes 的功夫
  2. 想把關聯式資料庫的定期備份交給服務處理
  3. 想將收到的流量自動分配給多個目標
  4. 想從離使用者較近的地方發送靜態Web內容
正確答案A. 想省去自行建置並運作 Kubernetes 的功夫

EKS 全稱 Amazon Elastic Kubernetes Service,是一項受管理服務,能在AWS上執行 Kubernetes,而不需自行安裝與運作 Kubernetes 叢集,且已通過 Kubernetes 一致性認證。資料庫運作自動化的是 RDS,從較近之處發送內容的是 CloudFront,分配流量的則是 Elastic Load Balancing。

第7題 | 執行方式的選擇

每天只會收到幾次的檔案,希望在檔案抵達時才進行轉換。作為抑制費用的架構,下列何者恰當?

  1. 讓 EC2 執行個體持續運作,並以固定間隔進行處理
  2. 讓 EC2 執行個體持續運作,並以手動方式啟動處理
  3. 讓 EKS 叢集持續運作,並以固定間隔進行處理
  4. 以 Lambda 撰寫處理邏輯,在檔案抵達時觸發執行
正確答案D. 以 Lambda 撰寫處理邏輯,在檔案抵達時觸發執行

Lambda 無需管理伺服器即可執行程式碼,只會針對所消耗的運算時間計費,未執行時不會產生費用。因此對於呼叫頻率稀疏的處理,等待期間不需付費的 Lambda 較為有利。讓 EC2 或 EKS 叢集持續運作的架構,即使大部分時間並未在處理,也會持續產生費用。

第8題 | EC2的控制

關於 Amazon EC2 的特徵,下列敘述何者恰當?

  1. 只針對程式碼的執行時間計費,使用者不需接觸作業系統
  2. 可完全控制運算資源,並按使用量付費
  3. 以物件為單位儲存資料,並透過HTTP的API讀寫
  4. 將工作流程各階段定義為狀態,並依序執行
正確答案B. 可完全控制運算資源,並按使用量付費

EC2 是官方描述為在雲端提供安全且可調整大小的運算能力的服務,按使用量付費,並可完全控制運算資源。只針對執行時間計費、不需接觸作業系統的是 Lambda,以物件為單位儲存的是 S3,將工作流程定義為狀態的是 Step Functions 的特性。控制範圍越廣,作業系統的管理就越會留給使用者,這一點也要一併掌握。

第9題 | ECS

Amazon ECS 所擔負的角色,下列何者恰當?

  1. 依事件發生,執行以函式形式撰寫的程式碼
  2. 在AWS上提供符合 Kubernetes API 的叢集
  3. 進行容器化應用程式的部署、管理及規模調整
  4. 從虛擬伺服器映像啟動任意台數的執行個體
正確答案C. 進行容器化應用程式的部署、管理及規模調整

ECS 全稱 Amazon Elastic Container Service,是一項全受管理的容器協調服務,能輕鬆進行容器化應用程式的部署、管理與擴縮。提供符合 Kubernetes 的叢集是 EKS,啟動虛擬伺服器是 EC2,依事件執行程式碼是 Lambda。ECS 與 EKS 都是彙整容器的服務,差別在於是否使用 Kubernetes。

第10題 | ECS與EKS

關於 Amazon ECS 與 Amazon EKS 的差異,下列敘述何者恰當?

  1. ECS 執行 Kubernetes,EKS 以AWS獨有方式彙整容器
  2. EKS 執行 Kubernetes,ECS 以AWS獨有方式彙整容器
  3. EKS 處理容器,ECS 只處理虛擬伺服器映像
  4. ECS 處理容器,EKS 只處理虛擬伺服器映像
正確答案B. EKS 執行 Kubernetes,ECS 以AWS獨有方式彙整容器

EKS 是一項受管理服務,能在AWS上執行 Kubernetes,而不需自行安裝與運作 Kubernetes 叢集,且已通過 Kubernetes 一致性認證。另一方面,ECS 是AWS的全受管理容器協調服務,不以 Kubernetes 為前提。兩者都是處理容器的服務,並非只處理虛擬伺服器映像。作為啟動目的地,兩者都能選擇 Fargate。

第11題 | EBS與EFS

下列 Amazon EBS 與 Amazon EFS 特性的組合中,何者恰當?

  1. EBS 以區塊方式連接單一EC2,EFS 供多台EC2共用
  2. EBS 與 EFS 都只以連接單一EC2執行個體為前提
  3. EBS 與 EFS 都以供多台EC2執行個體平行共用為前提
  4. EBS 以檔案形式供多台EC2共用,EFS 以區塊方式連接
正確答案A. EBS 以區塊方式連接單一EC2,EFS 供多台EC2共用

EBS 是供 EC2 執行個體使用的永久性區塊儲存磁碟區,會在可用區域內自動複寫,原則上是連接到單一執行個體使用。EFS 則是供 Linux 工作負載使用的檔案系統,容量會自動伸縮,支援數千台 EC2 執行個體的平行共用存取。能夠共用的是 EFS 一方,並不會兩者都以共用為前提,或都以單獨連接為前提。

第12題 | S3的資料形式

關於 Amazon S3 處理資料的方式,下列何者恰當?

  1. 作為Linux用的共用檔案系統提供
  2. 作為記憶體內快取,提供高速讀寫
  3. 作為連接到EC2執行個體使用的區塊儲存
  4. 能儲存任意數量資料的物件儲存
正確答案D. 能儲存任意數量資料的物件儲存

S3 全稱 Amazon Simple Storage Service,是一項可擴展性與可用性優異、能儲存並保護任意數量資料的物件儲存。區塊儲存是 EBS,Linux 用的共用檔案系統是 EFS,記憶體內快取則由 ElastiCache 提供。物件、區塊、檔案這3種資料形式的差異,是選擇AWS儲存服務時的出發點。

第13題 | 共用的選擇

希望讓數百台EC2執行個體同時掛載同一目錄,並進行讀寫。下列何者恰當?

  1. 讓每台執行個體都參照 Amazon ElastiCache 的節點
  2. 讓每台執行個體都掛載 Amazon EFS 的檔案系統
  3. 為每台執行個體各連接1個 Amazon EBS 磁碟區
  4. 放在 S3 Glacier Deep Archive 中,並讓每台執行個體讀寫
正確答案B. 讓每台執行個體都掛載 Amazon EFS 的檔案系統

EFS 是一種容量會依檔案增減自動伸縮、支援數千台 EC2 執行個體平行共用存取的檔案儲存服務,適合讓多台執行個體同時掛載同一個目錄的用途。EBS 是可用區域內的區塊儲存,原則上連接到單一執行個體,因此各自的儲存空間是分開的。Glacier Deep Archive 是取出需花時間的封存導向儲存類別,ElastiCache 則不是檔案系統,而是記憶體內快取。

第14題 | EBS的AZ

關於 Amazon EBS 磁碟區自動複寫的範圍,下列何者恰當?

  1. 在所有簽約的帳戶之間進行複寫
  2. 在同一個可用區域內進行複寫
  3. 跨越多個區域進行複寫
  4. 複寫到全世界的邊緣節點
正確答案B. 在同一個可用區域內進行複寫

EBS 是供 EC2 執行個體使用的永久性區塊儲存,會在同一個可用區域內自動複寫,提供一致的低延遲效能。正因具備這種單一AZ的特性,若需要跨AZ的可用性,就必須另外搭配其他機制。跨區域複寫或在邊緣節點發送內容,都不是 EBS 的角色。

第15題 | Glacier

關於 S3 Glacier 儲存類別,下列敘述何者恰當?

  1. 只能儲存資料庫的備份檔案
  2. 儲存的資料可作為區塊儲存直接連接到EC2
  3. 有能即時取出的類別,也有需花時間取出的類別
  4. 屬於封存用的類別,且取出所需的時間都相同
正確答案C. 有能即時取出的類別,也有需花時間取出的類別

S3 Glacier 是一組封存用的儲存類別,有供需即時取出資料使用的 S3 Glacier Instant Retrieval、供幾乎不存取的長期資料使用的 S3 Glacier Flexible Retrieval,以及以最低成本、花費數小時取出的 S3 Glacier Deep Archive。這是依取出速度與費用的取捨來選擇類別的設計,取出時間並非一律相同。可儲存的資料種類沒有限制,也不能作為區塊儲存來連接使用。

第16題 | 3種分類

依所處理資料的單位,將 S3、EBS、EFS 分類,下列組合何者恰當?

  1. S3 是檔案,EBS 是物件,EFS 是區塊
  2. S3 是區塊,EBS 是物件,EFS 是檔案
  3. S3 是區塊,EBS 是檔案,EFS 是物件
  4. S3 是物件,EBS 是區塊,EFS 是檔案
正確答案D. S3 是物件,EBS 是區塊,EFS 是檔案

S3 是物件儲存,EBS 是連接到EC2的區塊儲存,EFS 是供 Linux 工作負載使用的檔案儲存。物件是透過API整份存取的資料,區塊是從作業系統看起來像磁碟的資料,檔案則是能從多台主機掛載共用的資料,這樣整理後,依需求選擇時就不容易迷惘。

第17題 | 作業系統磁碟

在1台EC2執行個體上運作的資料庫,其用於存放資料的磁碟應使用下列何者?

  1. 使用 S3 Glacier Flexible Retrieval 的封存
  2. 將 Amazon CloudFront 的快取作為磁碟使用
  3. 將 Amazon S3 的儲存貯體作為磁碟連接
  4. 將 Amazon EBS 的磁碟區連接到執行個體
正確答案D. 將 Amazon EBS 的磁碟區連接到執行個體

EBS 是供 EC2 執行個體使用的永久性區塊儲存磁碟區,能提供一致的低延遲效能,因此適合作為作業系統或資料庫的磁碟使用。S3 是物件儲存,並非以區塊裝置的方式連接儲存貯體的機制。Glacier 是取出需花時間的封存導向類別,CloudFront 則是加快發送速度的CDN。

第18題 | S3的用途

作為靜態Web內容或備份的存放處,S3 之所以被選用的理由是哪一項?

  1. 因為能連接的執行個體僅限1台,不會發生改寫的衝突
  2. 因為資料放在記憶體上,不需經由磁碟就能讀寫
  3. 因為能從作業系統看成磁碟,可直接連接到業務系統
  4. 因為能儲存任意數量的資料,且擴展性、可用性與安全性優異
正確答案D. 因為能儲存任意數量的資料,且擴展性、可用性與安全性優異

S3 是一項可擴展性、可用性、安全性與效能都優異、能儲存並保護任意數量資料的物件儲存,官方所列出的用途包括Web、行動裝置、備份、封存、IoT、大數據分析等。能從作業系統看成磁碟的是 EBS,以連接單一執行個體為原則的也是 EBS,將資料放在記憶體上則是 ElastiCache 的特性。

第19題 | EFS的伸縮

關於 Amazon EFS 容量的敘述,下列何者恰當?

  1. 可儲存的容量取決於執行個體的記憶體大小
  2. 會依檔案的增減,自動伸縮容量
  3. 要增加容量時,必須先卸載後重新建立
  4. 建立時決定的容量會固定,之後無法變更
正確答案B. 會依檔案的增減,自動伸縮容量

EFS 是一種簡單、可擴展且具彈性的檔案系統,新增或刪除檔案時容量會自動伸縮,不需要事先設計容量。先決定並固定容量、或為了擴增而重新建立,都是區塊儲存的思維,連接的執行個體記憶體大小也不會決定容量。這種伸縮性正是它適合作為共用工作空間使用的理由。

第20題 | 保存的選擇

希望以幾乎不查閱的稽核紀錄為前提,在能接受花數小時取出的條件下,以最低成本進行長期保存。下列何者恰當?

  1. 保存在 S3 Glacier Deep Archive 這個類別
  2. 建立 Amazon EBS 磁碟區,將資料寫入後保存
  3. 維持放在 Amazon ElastiCache 節點上保存
  4. 維持放在 Amazon EFS 檔案系統中保存
正確答案A. 保存在 S3 Glacier Deep Archive 這個類別

S3 Glacier Deep Archive 是以最低成本保存幾乎不存取的資料、取出需花費數小時的封存導向儲存類別,符合這項條件。EBS 與 EFS 都以維持取出速度為設計目標,作為長期休眠資料的存放處成本容易偏高。ElastiCache 是記憶體內快取,本來就不是用於長期保存的機制。先決定能接受多長的取出等待時間,才是選擇類別的思考順序。

第21題 | RDS

Amazon RDS 所自動化的管理作業,下列何者恰當?

  1. 硬體的準備、修補程式套用、備份
  2. 資料表與欄位的設計,以及決定索引要建在哪裡
  3. 驗證所儲存資料的內容是否正確
  4. 業務應用程式的畫面切換與輸入檢查
正確答案A. 硬體的準備、修補程式套用、備份

RDS 是一項受管理服務,能輕鬆進行雲端關聯式資料庫的建置、運作與擴縮,會自動化硬體佈建、資料庫建置、修補程式套用、備份等管理作業。另一方面,資料表與欄位的設計、索引的判斷、應用程式的架構、資料內容的正確性,都仍是使用者一方的工作。所謂受管理,是把運作的功夫交出去,而不是連設計都交出去。

第22題 | Aurora與RDS

關於 Amazon Aurora 與標準 Amazon RDS 的關係,下列敘述何者恰當?

  1. Aurora 是 RDS 的一部分,管理的單位不是個別執行個體,而是整個叢集
  2. Aurora 與 RDS 是不同的服務,只能透過專用的主控台與API操作
  3. Aurora 是 RDS 的一部分,但修補程式套用與備份要由使用者自行進行
  4. Aurora 是 RDS 的一部分,能處理的只限於鍵值型資料
正確答案A. Aurora 是 RDS 的一部分,管理的單位不是個別執行個體,而是整個叢集

Aurora 是受管理資料庫服務 Amazon RDS 的一部分,使用相同的管理主控台、CLI、API操作來進行佈建、修補程式套用、備份、復原及故障偵測。差異在於管理的單位:標準 RDS 管理的是個別的DB執行個體,而 Aurora 管理的是以複寫方式同步的DB伺服器整個叢集。Aurora 是相容於 MySQL、PostgreSQL 的關聯式資料庫,並非鍵值型。

第23題 | DynamoDB

關於 Amazon DynamoDB 的說明,下列何者恰當?

  1. 將資料放在記憶體上,不經磁碟以加快讀寫速度
  2. 支援鍵值型與文件型的 NoSQL 資料庫
  3. 作為PB等級的資料倉儲,回應分析查詢
  4. 相容於 MySQL 與 PostgreSQL 的關聯式資料庫
正確答案B. 支援鍵值型與文件型的 NoSQL 資料庫

DynamoDB 是鍵值型與文件型的 NoSQL 資料庫,是一項全受管理且支援多區域的資料庫,能在任何規模下提供個位數毫秒的效能。資料倉儲是 Redshift,相容於 MySQL、PostgreSQL 的關聯式資料庫是 Aurora,在記憶體上讀寫則由 ElastiCache 負責。

第24題 | Redshift

想彙整數年份的實績資料進行統計,並用BI工具分析。下列何者適合作為基礎?

  1. 放入 Amazon SQS 的佇列中,依序取出並統計
  2. 維持放在 Amazon EFS 的檔案系統中進行統計
  3. 放在 Amazon Redshift 的資料倉儲中進行統計
  4. 維持放在 Amazon ElastiCache 的叢集上進行統計
正確答案C. 放在 Amazon Redshift 的資料倉儲中進行統計

Redshift 是雲端上全受管理、PB等級的資料倉儲服務,不論資料集大小,都能透過既有的SQL工具或BI應用程式獲得高速的查詢效能。ElastiCache 是記憶體內快取,EFS 是共用檔案系統,SQS 是訊息佇列,都不是負責大量資料統計與分析的基礎。

第25題 | 快取

導入 Amazon ElastiCache 所能獲得的效果,下列何者恰當?

  1. 能讓多台EC2執行個體共用同一目錄
  2. 能一併加快包含資料表結合與統計在內的分析用查詢
  3. 能大幅降低長期保存備份的費用
  4. 能不經磁碟、直接從記憶體取得資料以加快回應速度
正確答案D. 能不經磁碟、直接從記憶體取得資料以加快回應速度

ElastiCache 是一項能輕鬆在雲端部署、運作、擴縮記憶體內快取的服務,透過從高速的記憶體內快取取得資訊、而不依賴以磁碟為基礎的資料庫,來改善Web應用程式的效能。加快分析用查詢的是 Redshift,降低長期保存費用的是 S3 Glacier 的儲存類別,共用目錄則由 EFS 負責。

第26題 | Aurora的特徵

關於 Amazon Aurora 的特徵,下列何者恰當?

  1. 由使用者先決定容量,不足時每次都要手動擴增
  2. 以鍵與值的組合儲存資料,不使用SQL進行讀寫
  3. 擁有分散式共用儲存空間,容量會依需要自動擴增
  4. 取出需花費數小時,但能將保存費用壓到最低
正確答案C. 擁有分散式共用儲存空間,容量會依需要自動擴增

Aurora 是相容於 MySQL、PostgreSQL 的全受管理關聯式資料庫引擎,擁有高效能的分散式共用儲存子系統,儲存空間會依需要自動擴增。不需要先決定容量再手動擴增。以鍵與值的組合儲存的是 DynamoDB,花時間取出以換取低保存費用的是 S3 Glacier 的封存導向類別。

第27題 | 分析與交易

關於 Amazon Redshift 與 Amazon RDS 的分工使用,下列何者恰當?

  1. 兩者都是資料倉儲,差異只在於能處理的資料量
  2. 適合用 Redshift 做分析統計,用 RDS 記錄日常交易
  3. 兩者都是 NoSQL,差異只在於可用的查詢語言
  4. 適合用 Redshift 記錄日常交易,用 RDS 做分析統計
正確答案B. 適合用 Redshift 做分析統計,用 RDS 記錄日常交易

Redshift 是全受管理、PB等級的資料倉儲服務,適合用SQL工具或BI應用程式對大量資料進行統計與分析。RDS 則是能輕鬆建置、運作、擴縮關聯式資料庫的服務,適合業務系統讀寫日常交易。兩者都用SQL查詢,看起來相似,但都不是 NoSQL,差異也不只在於資料量。

第28題 | 資料庫的選擇

希望以個位數毫秒的回應速度,依鍵值逐筆讀寫。下列何者適合作為基礎?

  1. Amazon RDS 的關聯式資料庫
  2. Amazon Redshift 的資料倉儲
  3. Amazon EFS 的共用檔案系統
  4. Amazon DynamoDB 的NoSQL資料庫
正確答案D. Amazon DynamoDB 的NoSQL資料庫

官方說明 DynamoDB 是鍵值型與文件型的 NoSQL 資料庫,能在任何規模下提供個位數毫秒的效能。Redshift 適合大量資料的統計與分析,屬於資料倉儲;RDS 負責關聯模型的讀寫;EFS 是負責檔案共用的儲存服務,都不是以此需求為首要目標的基礎。

第29題 | RDS的定位

關於 Amazon RDS 的說明,下列何者恰當?

  1. 匯入大量資料進行統計的資料倉儲
  2. 以鍵與值的組合儲存,不使用SQL進行讀寫的資料庫
  3. 在記憶體上放置快取以加快讀取速度的服務
  4. 能輕鬆建置與運作關聯式資料庫的服務
正確答案D. 能輕鬆建置與運作關聯式資料庫的服務

RDS 全稱 Amazon Relational Database Service,是一項受管理服務,能輕鬆進行雲端關聯式資料庫的建置、運作與擴縮。以鍵與值的組合儲存的是 DynamoDB,記憶體內快取是 ElastiCache,大量資料的統計由資料倉儲 Redshift 負責。另外,Aurora 是以 RDS 一部分的形式提供的引擎。

第30題 | Aurora的管理

關於 Aurora 叢集的日常維運,下列敘述何者恰當?

  1. 備份與復原的程序,需要由使用者自行建置
  2. 需另外建立 Aurora 專用的管理用執行個體,並從該處操作
  3. 只能以個別執行個體為單位操作,無法以叢集為單位
  4. 可從與 RDS 相同的主控台或API進行修補程式套用與備份
正確答案D. 可從與 RDS 相同的主控台或API進行修補程式套用與備份

Aurora 是以 RDS 一部分的形式提供,可使用相同的管理主控台、CLI、API操作進行佈建、修補程式套用、備份、復原及故障偵測。不需要另外建立管理用的執行個體,這些程序也不需要由使用者自行建置。差異在於,標準 RDS 管理的是個別的DB執行個體,而 Aurora 是以整個叢集作為管理單位。

第31題 | SQS與SNS

下列 Amazon SQS 與 Amazon SNS 特性的組合,何者恰當?

  1. SQS 負責發送到主題,SNS 負責堆積到佇列
  2. SQS 與 SNS 都是由1個目的地取出所保留訊息的機制
  3. SQS 負責堆積到佇列,SNS 負責發送到主題
  4. SQS 與 SNS 都是將1件訊息同時送達多個目的地的機制
正確答案C. SQS 負責堆積到佇列,SNS 負責發送到主題

SQS 是將訊息保留在佇列中,通常由1個消費者輪詢取出的點對點服務。SNS 是發布者將訊息送到主題,再同時推播給多個訂閱者的發布訂閱服務。把兩者互換的說法是典型的混淆,也並非兩者的配送方式相同。可以用方向來記:佇列是接收方去取的存放處,主題則是發送方推送出去的分發角色。

第32題 | FIFO佇列

關於 Amazon SQS 的FIFO佇列特性,下列何者恰當?

  1. 保持發送順序,訊息只會被處理一次
  2. 不保證發送順序,但不會發生重複配送
  3. 保持發送順序,但同一則訊息可能送達多次
  4. 發送順序與處理次數皆不在保證範圍內
正確答案A. 保持發送順序,訊息只會被處理一次

SQS 有標準佇列與FIFO佇列兩種,標準佇列採 at-least-once(至少一次)配送,因此同一則訊息可能送達多次。FIFO佇列具備 exactly-once(恰好一次)處理與順序保證,能保持發送順序且只處理一次。在重視順序或防止遺失的工作流程中,就會選擇FIFO佇列。

第33題 | 扇出模式

被稱為扇出(fan-out)模式的架構組裝方式,下列何者恰當?

  1. 從1個SNS主題,同時配送給多個SQS佇列
  2. 從1個SQS佇列,直接轉發到多個SQS佇列
  3. 1個SNS主題,由多個SNS主題依序讀取
  4. 1個SQS佇列,由多個SNS主題依序讀取
正確答案A. 從1個SNS主題,同時配送給多個SQS佇列

SNS 會將送到主題的訊息同時推播給多個訂閱者,訂閱者可以指定為 SQS 佇列。這種由1個 SNS 主題配送給多個 SQS 佇列的形式,正是官方所展示的典型扇出模式。佇列不是配送來源而是接收端,因此不會是佇列去讀取主題的方向。

第34題 | 通知目的地

關於 Amazon SNS 訂閱者可指定的目的地說明,下列何者恰當?

  1. 只能指定電子郵件或SMS等送達給人的目的地
  2. 只能指定同一帳戶內的EC2執行個體
  3. 可以指定SQS、Lambda等應用程式端目的地,以及電子郵件等對人的目的地
  4. 只能指定SQS、Lambda等應用程式端的目的地
正確答案C. 可以指定SQS、Lambda等應用程式端目的地,以及電子郵件等對人的目的地

SNS 的訂閱者類型整理為2類:指SQS、Lambda、HTTP(S)、Data Firehose等應用程式之間的A2A,以及指電子郵件、行動推播、SMS等對人的A2P。並非僅限於其中一種,也不是只以EC2執行個體為目的地的機制。這種廣泛性,正是SNS既能用於對人通知、也能用於應用程式間連接的原因。

第35題 | 工作流程

AWS Step Functions 所處理的內容,下列何者恰當?

  1. 放在記憶體內快取中的鍵與值組合一覽
  2. 表示由多個階段構成之處理流程的狀態機
  3. 決定所儲存物件之版本數與保存期限的規則
  4. 將收到的請求分配到多個目標的規則
正確答案B. 表示由多個階段構成之處理流程的狀態機

Step Functions 是一項服務,能建立工作流程(即狀態機),用以建構分散式應用程式、將流程自動化、協調微服務,以及建立資料或機器學習的管線。各步驟稱為state,執行中的實例稱為execution。流量分配是 Elastic Load Balancing,物件的保存是 S3,鍵與值的快取是 ElastiCache 的職責。

第36題 | APIGateway

Amazon API Gateway 所扮演的角色,下列何者恰當?

  1. 作為接收後端存取的前門
  2. 將在後端運作的處理本身作為容器來執行
  3. 將靜態內容快取於邊緣節點
  4. 跨多個帳戶,統一套用共通的保護規則
正確答案A. 作為接收後端存取的前門

API Gateway 是一項服務,能在任何規模下建立、發布、維護、監控及保護 REST、HTTP、WebSocket 的API,作為存取 EC2 上工作負載、Lambda、任意Web應用程式等後端的前門發揮功能。執行處理本身的是後端一方,統一套用保護規則的是 AWS Firewall Manager,於邊緣進行快取的則是 CloudFront 的角色。

第37題 | 事件匯流排

關於 Amazon EventBridge 事件匯流排的說明,下列何者恰當?

  1. 將處理的各階段定義為狀態、依序推進的狀態機
  2. 依順序保留訊息、由1個目的地取出的等候佇列
  3. 將事件從眾多來源分配到眾多目標的路由器
  4. 接收API請求並中繼到後端的前門
正確答案C. 將事件從眾多來源分配到眾多目標的路由器

EventBridge 是一項使用事件連接應用程式元件的無伺服器服務,負責事件的擷取、篩選、轉換及配送。事件匯流排是將事件從眾多來源路由到眾多目標的路由器。等候佇列是SQS的說明,狀態機是Step Functions,前門則是API Gateway的說明。

第38題 | 定期執行

想以cron表達式管理在固定時刻啟動處理的機制。下列何者恰當?

  1. 在 Amazon SQS 的標準佇列中放入訊息並等待
  2. 在 Amazon API Gateway 建立 WebSocket 的API
  3. 在 Amazon SNS 的主題中登錄訂閱者並等待
  4. 在 Amazon EventBridge Scheduler 登錄排程
正確答案D. 在 Amazon EventBridge Scheduler 登錄排程

EventBridge Scheduler 是以cron表達式或rate表達式管理定期執行與單次執行的機制,因此在固定時刻啟動的需求由此處理。SQS 是保留訊息、由接收方取出的佇列,SNS 是配送給訂閱者的發布訂閱機制,API Gateway 是發布並中繼API的服務,都不是以按時刻啟動為目的的機制。

第39題 | 鬆散耦合

想將訂單受理與耗時的後續處理分離,讓受理端不需等待。下列何者恰當?

  1. 受理端的處理放在EC2上,後續處理也在同一台EC2上執行
  2. 受理端放入SQS佇列,後續處理再取出繼續進行
  3. 受理端直接呼叫後續處理,並等待回應返回
  4. 把受理端與後續處理整合成1個程式,依序執行
正確答案B. 受理端放入SQS佇列,後續處理再取出繼續進行

SQS 是一項安全、耐用且高可用的託管佇列服務,能整合分散式軟體系統或元件,使其鬆散耦合。受理端只要把訊息放入佇列,就能在當下回應,後續處理則可依自己的速度取出並進行,因此一方的延遲不容易拖累另一方。若採用直接呼叫或整合成一支程式的架構,後續處理的延遲就會直接變成受理端的等待時間。

第40題 | 配送方式的選擇

想把1筆庫存更新同時送達統計用、通知用、稽核用這3個處理。下列何者恰當?

  1. 建立1個SQS佇列,由取出的處理再轉發給剩下的2個
  2. 建立1個SQS佇列,讓3個處理都從同一個佇列取出
  3. 建立3個SQS佇列,由更新的發生來源依序各發送3次
  4. 讓1個SNS主題被3個SQS佇列訂閱以進行配送
正確答案D. 讓1個SNS主題被3個SQS佇列訂閱以進行配送

SNS 會將送到主題的訊息同時推播給多個訂閱者,訂閱者可指定為SQS佇列,因此若要將1件事件配送給3個處理,就要使用SNS主題搭配多個SQS佇列的扇出模式。若讓1個佇列由3個處理共用,通常一旦有人取出,其餘就無法再收到。由發生來源發送3次,或由收到的處理再轉發的架構,每次增加目的地時都要修改發送端,無法做到鬆散耦合。

練習:作答本頁的題目

這是隨機出題的練習工具(在啟用 JavaScript 時運作)。即使不使用此工具,也能閱讀上方的所有題目與解說。

※ 解說是供學習用的資訊。考試的出題範圍與制度每年可能變動,請務必確認主辦機構的官方公告。

本頁面譯自日文原文。若譯文與原文內容不一致,以日文版為準。 查看日文原文