我是否需要 SQS 隊列來將遠端數據儲存在 Amazon Web Services (AWS) 雲中?
我的第一個問題是,我需要 SQS 隊列來接收我的遠端數據,還是可以直接進入 S3 或 EC2 等亞馬遜雲儲存解決方案?
目前,我的公司使用第三方供應商來收集和報告我們的遠端數據。我所說的遠端數據是指來自我們在荒野中的機器的數據。這些數據每天都會上傳幾次到 Amazon Web Services SQS 隊列(由第三方供應商設置),然後第三方供應商輪詢隊列中的數據,將其刪除並保存在自己的本地數據庫中僅一年。這家公司只向我們提供報告服務,所以他們不需要長期儲存數據。
展望未來,我們希望擁有數據並將其永久儲存在 Amazon Web Services (AWS) 中。然後我們想使用機器學習來監控數據並報告機器的任何潛在問題。
重複我的第一個問題,我們需要 SQS 隊列來接收這些數據,還是可以直接進入 S3 或 EC2 等亞馬遜雲儲存解決方案?
我的第二個問題是,SQS 隊列可以將數據發送到兩個不同的地方嗎?也就是說,隊列可以將數據發送到第三方供應商,也可以發送到 Amazon Web Services 數據庫嗎?
我是一名分析師/數據科學家,所以我知道一旦數據進入數據庫後如何使用它。我只是不知道將其放入數據庫的最佳方法。
不需要 SQS。SQS 是一種公開可用的服務,只需要請求標頭中的身份驗證令牌。您可以使用具有安全密鑰的 IAM 使用者賬戶授予該權限,或者如果呼叫服務是另一個 AWS 賬戶,您可以通過 IAM 角色授予訪問權限。S3 也是一項公共服務,在訪問方面與 SQS 類似。設置跨 AWS 賬戶訪問的過程有點不同,但概念是相同的。您還可以通過在公共子網中為其分配公共 IP 地址或使用彈性負載均衡器 (ELB) 將數據直接發送到 EC2 實例。
SQS 是一個隊列服務,它只保留數據以供另一個服務下拉。但是,如果您希望服務將數據集廣播到多個目的地,則您正在尋找 SNS。SNS 將允許您發送到多個目的地,每個目的地可以有自己的傳遞類型。例如,如果您向 SNS 發布消息,您可以讓它將該消息傳遞到 AWS 中的 lambda 函式和接受 JSON 的 Web 終端節點。
所有這一切的唯一警告是,SNS 接收它接收到的消息並將其發送到目的地而不進行任何轉換,因此每個目的地將接收完全相同的消息並負責提取數據。