1. 程式人生 > >aws服務概要

aws服務概要

本文章是對雲服務做整體概要

1.SQS介紹

  • Amazon Simple Queue Service (SQS) 是一項快速可靠、可擴充套件且完全託管的訊息佇列服務。SQS 使得雲應用程式的元件去耦合大大簡化,並且具有較高的成本效益。您可以使用 SQS 來傳輸任何容量的資料,使用任意的吞吐量,而不會丟失訊息或要求其他服務永久可用。
  • 簡單說:獨立的訊息佇列服務
  • 特點:
    • 可以構建多個訊息佇列,每個佇列負責各自訊息,互不干擾
    • 純訊息堆疊,針對同一個裝置/介面進行請求時,對堆疊內訊息進行輪循返回,每次只返回其中一條
    • 每條資料每次輪循時都會標記輪循數量+1
    • 可以對輪循資訊進行各種操作,例如:讀取、刪除等
  • 使用前提:
    • 需要建立佇列
    • 指定佇列許可權,可以讓其他程式、服務推送資訊到佇列中進行輪循

2.SNS介紹

  • Amazon Simple Notification Service (SNS) Amazon SNS 是一項快速、靈活且完全託管的訊息推送服務。將它用作基於雲的移動應用程式通知服務來發送推送通知、電子郵件和 SMS 訊息;或用作企業訊息收發基礎設施
  • 簡單說:獨立的訊息推送服務
  • 特點:
    • 可以設定多個主題(類似通道,每個通道負責各自的訊息推送)
    • 可以設定多種訂閱介面,如:郵件、http、json、SNS等等(類似對資料進行格式化,不同裝置、開發介面都可以請求得到所需的資料型別和形式)
    • 可以直接在SNS管理介面進行訊息推送(對於開發來說可以作為測試使用)
    • 可以為移動裝置app、雲應用提供訊息推送
  • 使用前提:
    • 需要優先建立主題(Topic)
    • 設定訂閱介面
    • 測試訂閱是否生效,如使用郵箱進行訂閱則傳送推送時,郵箱會收到對應的郵件。

3.AWS Lambda

  • 什麼是AWS Lambda?
    • Lambda是一個“可簡單建立Lambda函式、無需管理的計算平臺”。不過我們也可以這麼理解:Lambda是一個針對AWS計算資源的IFTTT指令碼建立器和管理器。舉個例子:你有一個照片類應用。照片上傳到S3之後,需要在DynamoDB上記錄新照片的元資料。Lambda的作用就是可以有一個地方放一個觸發指令碼來執行這個任務,而不用關心這個指令碼執行在什麼機器或者虛擬機器上,也可以將Lambda理解為將functions(函式)從計算資源層抽象出來的服務。
  • Lambda設計理念
    • 膠水程式碼,就是觸發器(trigger):當發生一個事件(event)時,執行某個函式(function),輸出新的資料 (data)
  • Lambda的用法
    • Lambda服務的核心概念是Lambda function(簡稱function,函式),目前僅支援Node.js。圍繞function可以定義情景,包括執行環境(語言、記憶體、超時、 IAM角色)以及這個function要觸發的另一個function。function的程式碼和有關情景的元資料均儲存在AWS中,以ARN(Amazon Resource Name)的方式被外部識別。如需包含第三方庫,可以放在ZIP檔案中上傳
    • function上傳之後,開發者可以將其指定到指定的AWS資源(如某個S3 bucket,某個DynamoDB表,某個Kinesis流),然後Lambda就會建立該資源跟你的function之間的關聯。當資源方面發生變動,Lambda就會去自動張羅資源去執行你的function。用於執行function的資源的建立分配和釋放都有Lambda自動來做,開發者完全 不需要去幹預。
    • 每一個function預設會指定一個比較短的執行時間上限,不過這個上限最高可以調整到60秒
    • 每一個function具有雙重的IAM角色:一個是觸發角色(invocation role),決定Lambda執行某個function的許可權;另一個是執行角色(execution role),決定該function操作AWS資源的許可權
    • Lambda會監控每個function的執行情況,並將請求數、延時、可用性、錯誤率等指標記錄在CloudWatch裡。控制檯裡可以看到過去30日的指標
    • 使用Lambda的兩點須知
      • 情景資訊設定了該function的可用記憶體,可設定到128MB到1GB之間的任何數值。Lambda會這個數值選擇相應的CPU能力、網路頻寬和IO頻寬
      • 每個function的觸發可以使用最多256個程序或執行緒,佔用本地512MB儲存空間,1024個檔案描述符,以及10個出口網路連線
      • Lambda對每個AWS賬戶設定了一系列管理限制。預覽版期間,每個function最多可同時觸發另外25個function

4.CloudFront

  • Amazon CloudFront 是一項快速內容分發網路 (CDN) 服務,可以安全地以低延遲和高傳輸速度向全球客戶分發資料、視訊、應用程式和 API,全部都在開發人員友好的環境中完成。CloudFront 已與 AWS 整合 – 同時包括直接連線到 AWS 全球基礎設施的物理位置以及其他 AWS 服務。CloudFront 可與多種服務無縫整合,包括用於 DDoS 緩解的 AWS Shield、Amazon S3、用作您的應用程式來源的 Elastic Load Balancing 或 Amazon EC2 以及用於在靠近瀏覽者客戶使用者的位置執行自定義程式碼和自定義使用者體驗的 [email protected]

5.Aws Elastic search

  • Amazon Elasticsearch Service (Amazon ES) 是一種託管服務,可以讓您輕鬆在 AWS 雲中部署、操作和擴充套件 Elasticsearch 叢集。Elasticsearch 是一款流行的開源搜尋和分析引擎,適用於日誌分析、實時應用程式監控、點選流分析等使用案例。藉助 Amazon ES,您可以直接訪問 Elasticsearch API,讓現有程式碼和應用程式與服務無縫協作。
  • Amazon ES 為您的 Elasticsearch 叢集預置所有資源並啟動叢集。它還自動檢測和替換失敗的 Elasticsearch 節點,減少與自管理基礎設施相關的開銷。您只需呼叫一次 API 或在控制檯中單擊幾下就可擴充套件叢集。

6.Dynamo DB

  • Amazon DynamoDB 是一種鍵-值和文件資料庫,在任何規模下都能實現不到 10 毫秒的響應效能。這是一款完全託管的多區域、多主表資料庫,具有內建的安全、備份和恢復以及記憶體中快取功能,適用於網際網路級別的應用程式。DynamoDB 每天可處理超過 10 萬億項請求,每秒支援超過 2000 萬項請求的峰值。