1. 程式人生 > >AWS雲平臺的服務概覽(中):應用服務

AWS雲平臺的服務概覽(中):應用服務

應用服務主要是幫助開發人員簡化在AWS雲平臺上編寫應用程式,因此這些服務的主要使用方式是通過這些服務提供的基於Web服務的API來使用。當然,AWS管理控制檯也提供了一些管理和使用這些服務的介面。下面我們逐一描述一下AWS提供的主要應用服務。

 

1.      搜尋服務:Amazon CloudSearch

Amazon CloudSearch是AWS管理的搜尋服務,它可以幫助使用者為自己的網站或應用快速構建出一個搜尋解決方案。CloudSearch可以讓使用者搜尋大量的資料,包括網頁、文件、論壇帖等。通過CloudSearch,使用者不必成為一個搜尋專家也不用擔心硬體資源的配置和管理等問題就可以通過AWS的管理控制檯快速構建搜尋服務。CloudSearch會根據使用者資料量的大小和搜尋請求量的多少自動調整提供搜尋服務的例項大小和數量。CloudSearch管理構建和部署索引所需要的伺服器資源,使用者只需要向搜尋域上載自己的資料然後就可以開始遞交搜尋服務的請求了。

2.      訊息佇列服務:Amazon SQS(Simple Queue Service)

訊息佇列服務是一種經常用來在架構層面進行鬆耦合設計的一種服務,在傳統的企業應用環境中開發人員經常用到像IBM WebSphere MQ,MSMQ等訊息佇列產品。Amazon SQS提供了一種管理的訊息佇列服務,也就是說使用者不用自己來管理訊息佇列底層的硬體資源以及軟體的安裝和配置,而直接可以通過SQS的API來使用服務。Amazon SQS有幾個重要特點,首先SQS是個高可用的服務,當用戶把訊息放入佇列後可以被可靠的(多份拷貝)儲存一段時間直到訊息被處理;其次SQS具有非常強的擴充套件能力,對使用者需要處理的訊息在數量上沒有限制;最後SQS被設計為“至少一次”的訊息傳送處理機制,因此需要使用者在應用層面來保障訊息“只有一次”的處理以及訊息的處理順序如FIFO。

3.      內容分發服務:Amazon CloudFront

Amazon CloudFront是一個基於雲端計算服務模式的內容分發網路(CDN)服務,AWS通過把內容暫存在全球的幾十個邊緣站點來就近向終端使用者提供內容分發服務。CloudFront幫助使用者把他們的內容進行全球範圍內的快速分發,從而降低資料傳輸延時並提高資料傳輸效能。CloudFront支援所有可以通過HTTP和HTTPS訪問的內容,包括動態HTML、PHP網頁,網站中的靜態內容如圖片、音視訊、下載的檔案等。另外,CloudFront還支援基於RTMP的流式內容和基於HTTP的流媒體(服務端支援Adobe Media Server和Windows Media Services)。CloudFront支援多種HTTP方法,包括GET、HEAD、POST、PUT、DELETE、OPTIONS等,從而可以通過一個域名來管理整個網站內容的分發。由於邊緣站點與AWS區域之間網路路由的優化和一些TCP/IP傳輸的優化,因此通過CloudFront也可以提升上傳內容的效能。

4.      通知服務:Amazon SNS(Simple Notification Service)

Amazon SNS是一種訊息通知/推送服務,使用者的應用可以通過SNS快速、低成本的實現向各種移動裝置如iPhone、iPad、安卓、Kindle和其他網際網路連線裝置推送訊息。使用者還可以通過主題/訂閱的方式,用簡訊(SMS)、郵件、HTTP/S請求、SQS佇列等方式來進行訊息分發。SNS可以幫助使用者實現一次傳送請求就可以把訊息釋出給大量的接收裝置和應用。SNS是一種高效能、高可用的訊息推送服務,為了避免訊息的丟失,所有通過SNS釋出的訊息都會在同時在多個可用區內儲存多個拷貝。SNS也是一種簡單易用和低成本的服務,比如傳送100萬條移動推送訊息的費用是0.5美元。

5.      Hadoop服務:Elastic MapReduce

Elastic MapReduce(EMR)是一種管理的Hadoop服務,可以認為是Hadoopas a Service。在大資料應用中,構建和維護Hadoop群集服務對許多使用者來說都是一種繁瑣的負擔。通過EMR,使用者可以通過按需使用的方式隨時通過AWS管理控制檯或命令列幾分鐘就構建一個Hadoop群集來做大資料分析,然後當任務結束後就可以關閉群集從而停止付費。對那些需要經常進行不定期進行各種大資料分析任務的使用者而言,無論是處理日誌分析、Web索引還是機器學習等各種任務,EMR可以讓他們把主要精力放在大資料業務設計和分析模型的構建上,而把底層Hadoop群集相關的基礎設施構建和維護事情交給EMR處理。另外,EMR不但可以結合Hive、Pig、Mahout、HBase等工具做資料分析,還可以整合S3、Redshift、DynamoDB等海量資料儲存服務。

6.      實時資料分析服務:Amazon Kinesis

Amazon Kinesis是一個大規模實時資料流分析服務,它每小時可以從成千上萬的資料來源中實時收集和處理幾百個TB資料。這些實時的資料來源包括像網站的點選流、社交網站資訊、運營日誌、裝置測量資訊等各種動態產生資料的場景。Kinesis為使用者提供了一個進行實時資料採集(Producer)、儲存和處理(Consumer)的基礎架構和程式設計框架。Kinesis的API簡單易用,比如應用通過HTTP PUT方法就可以載入資料。通過Kinesis,使用者不用關心底層資料的分配和儲存架構,使用者配置完Kinesis服務後Kinesis會自動幫助使用者處理資料流的負載均衡、擴充套件性和資料的高可用儲存等需求。AWS提供Amazon Kinesis Client Library來簡化Kinesis服務的使用。資料在Kinesis只會儲存24小時,如果需要進一步處理或儲存資料,Kinesis可以方便的和S3、DynamoDB、Redshift做整合。

7.      資料管道服務:AWS Data Pipeline

AWS Data Pipeline可以幫助使用者在不同的AWS服務之間建立定時移動、整合和處理資料的管道服務。Data Pipeline可以用來定義一些資料驅動的工作流任務,尤其適合需要定期執行和處理的任務。Data Pipeline的定義包括指定資料來源的資料來源,處理資料的業務邏輯流程和執行操作的時間安排。根據定義和設定,Data Pipeline會在一個高可用、高容錯的環境中執行並監控使用者的資料處理工作流,同時記錄執行情況並進行異常處理。為簡化使用者使用,AWS管理控制檯提供了一個圖形化的設計介面,使用者通過滑鼠拖拽方式就可以定義Data Pipeline。另外,AWS還提供了常見的資料管道服務的模板(比如從RDS拷貝資料到S3、從企業MySQL拷貝到RDS等),進一步簡化使用者的Data Pipeline設計。

8.      郵件傳送服務:Amazon SES(Simple Email Service)

Amazon SES是一個可靠的、低成本的和簡單易用的電子郵件傳送服務。SES可以幫助使用者解決像市場活動中大批量郵件傳送的需求。通過使用SES服務,使用者可以快速傳送大量郵件而不用自己管理郵件伺服器,不用配置網路和IP地址拒絕設定等。SES提供了SMTP介面和SES API兩種方式傳送郵件。為幫助使用者實現一個相對較高的郵件傳送成功率,SES提供了一個內建的郵件傳送反饋機制。同時,SES還提供一個監測郵件傳送情況的儀表盤,顯示成功傳送郵件的數量、退回和拒絕的百分比或數量等。

9.      工作流服務:Amazon SWF(Simple Workflow)

Amazon SWF是一個幫助使用者應用實現任務協同和狀態管理的工作流服務。通過使用SWF,使用者可以不用關注複雜的狀態機的實現,而把主要精力放在工作流業務邏輯的實現上面。使用者可以通過不同的程式語言呼叫SWF API,來構建基於SWF的工作流服務。這些程式碼不僅可以執行在EC2例項上,也可以執行在任何聯通網際網路的伺服器上。SWF提供一個分散式的工作流服務,它就像是一個協調中心來連線不同的工作流節點,包括用於條件判斷的Decider和用於任務處理的Worker。SWF支援自動任務和人工任務,同時記錄工作流中任務的執行情況。通過SWF使用者可以構建一個高度靈活和鬆耦合的工作流應用。

10.   媒體轉碼服務:Amazon Elastic Transcoder

Amazon Elastic Transcoder是一個基於雲的媒體轉碼服務。Elastic Transcoder可以幫助使用者把媒體檔案從一個源格式轉化成多種目標格式,從而滿足不同裝置的格式和清晰度要求。Elastic Transcoder可以轉碼整個檔案,也可以只轉碼源媒體檔案中指定的片段。Elastic Transcoder會自動管理媒體檔案轉碼的各個方面,使用者不需要配置和管理軟體,也不用考慮多個檔案轉碼時的擴充套件性等問題。使用者只需要建立一個轉碼任務,然後指定媒體檔案源、目標檔案位置和檔案格式就可以開始轉碼服務。使用者可以通過服務的API、SDK或AWS管理控制檯使用Elastic Transcoder,然後以分鐘為單位根據轉碼媒體的時間長度來計費。

11.   應用流服務:Amazon AppStream

Amazon AppStream是一種低延時、高解析度的應用流服務,它可以讓使用者把部署在AWS雲平臺上的應用程式通過網際網路以流的方式在客戶端的裝置上進行展現和互動。這些客戶端裝置可以是PC、平板和智慧手機等。由於應用程式是執行在AWS雲平臺上面的,所以應用程式可以訪問AWS雲平臺上包括計算(包括GPU)、儲存和資料庫等各種資源,從而徹底解決應用程式的資源需求問題。你可以選擇把整個應用或部分應用通過流的方式互動到終端裝置上去。對於那些原先只能執行在終端裝置上但對計算資源要求比較高的3D模擬、遊戲等應用,AppStream提供了一種非常合適的解決方案。