A company has thousands of edge devices that collectively generate 1 TB of status alerts each day. Each alert is approximately 2 KB in size. A solutions architect needs to implement a solution to ingest and store the alerts for future analysis. The company wants a highly available solution. However, the company needs to minimize costs and does not want to manage additional infrastructure. Additionally, the company wants to keep 14 days of data available for immediate analysis and archive any data older than 14 days.
What is the MOST operationally efficient solution that meets these requirements?
A. Create an Amazon Kinesis Data Firehose delivery stream to ingest the alerts. Configure the Kinesis Data Firehose stream to deliver the alerts to an Amazon S3 bucket. Set up an S3 Lifecycle configuration to transition data to Amazon S3 Glacier after 14 days.
B. Launch Amazon EC2 instances across two Availability Zones and place them behind an Elastic Load Balancer to ingest the alerts. Create a script on the EC2 instances that will store the alerts in an Amazon S3 bucket. Set up an S3 Lifecycle configuration to transition data to Amazon S3 Glacier after 14 days.
C. Create an Amazon Kinesis Data Firehose delivery stream to ingest the alerts. Configure the Kinesis Data Firehose stream to deliver the alerts to an Amazon OpenSearch Service (Amazon Elasticsearch Service) cluster. Set up the Amazon OpenSearch Service (Amazon Elasticsearch Service) cluster to take manual snapshots every day and delete data from the cluster that is older than 14 days.
D. Create an Amazon Simple Queue Service (Amazon SQS) standard queue to ingest the alerts, and set the message retention period to 14 days. Configure consumers to poll the SQS queue, check the age of the message, and analyze the message data as needed. If the message is 14 days old, the consumer should copy the message to an Amazon S3 bucket and delete the message from the SQS queue.
A
A. 正確。創建一個 Amazon Kinesis Data Firehose 傳輸流來接收警報。配置 Kinesis Data Firehose 流,將警報傳遞到 Amazon S3 存儲桶。設置 S3 生命周期配置,以便在 14 天后將數據轉換到 Amazon S3 Glacier。Amazon Kinesis Data Firehose 是一種完全托管的服務,可以輕松攝取、轉換和加載流數據到 Amazon S3 等目的地。它具有高可用性,并且不需要用戶管理基礎設施,符合最小化成本和不想管理額外基礎設施的要求。Amazon S3 是一種高度可用的對象存儲服務,可以存儲大量的數據。通過 S3 Lifecycle 配置,可以輕松地將超過 14 天的數據過渡到 Amazon S3 Glacier,這是一種成本較低的歸檔存儲選項。該方案使用完全托管的 AWS 服務,具備高可用性,成本低,滿足所有要求。
B. 不正確。跨兩個可用區啟動 Amazon EC2 實例,并將其放置在彈性負載平衡器后面以接收警報。在 EC2 實例上創建一個腳本,將警報存儲在 Amazon S3 存儲桶中。設置 S3 生命周期配置,以便在 14 天后將數據轉換到 Amazon S3 Glacier。需要用戶自己管理 EC2 實例,增加了基礎設施管理的復雜性,不符合不想管理額外基礎設施的要求。使用了 Elastic Load Balancer 可以提供高可用性,但增加了系統的復雜性和成本。
C. 不正確。創建一個 Amazon Kinesis Data Firehose 傳輸流來接收警報。配置 Kinesis Data Firehose 流,將警報傳遞到 Amazon OpenSearch Service(Amazon Elasticsearch Service)集群。設置 Amazon OpenSearch Service(Amazon Elasticsearch Service)集群,以便每天進行手動快照,并從集群中刪除超過 14 天的數據。Amazon OpenSearch Service (Amazon Elasticsearch Service) 雖然可以用于分析數據,但成本較高,而且不適合長期存儲大量的警報數據。此外,手動備份和刪除數據的操作比較繁瑣。不符合最小化成本和不想管理額外基礎設施的要求。
D. 不正確。創建一個 Amazon 簡單隊列服務(Amazon SQS)標準隊列來接收警報,并將消息保留期設置為 14 天。配置消費者以輪詢 SQS 隊列,檢查消息的年齡,并根據需要分析消息數據。如果消息已有 14 天,則消費者應將消息復制到 Amazon S3 存儲桶中,并從 SQS 隊列中刪除該消息。Amazon SQS 標準隊列主要用于消息隊列,不適合存儲大量的警報數據。而且,消費者需要自己檢查消息年齡并執行復制和刪除操作,增加了系統的復雜性和成本,而且管理復雜,成本較高。