雲端計算經過這幾年的發展,已經不再是是一個高大上的名詞,而是已經應用到尋常百姓家的技術。每天如果你和網際網路打交道,那麼或多或少都會和雲扯上關係。gmail、github、各種網盤、GAE、heroku等各種服務都屬於雲服務的範疇。那麼雲端計算的定義到底是什麼?這裡有摘自wiki的定義。
Cloud computing in general can be defined as a computer network which includes, computing hardware machine or group of computing hardware machines commonly referred as a server or servers connected through a communication network such as the Internet, an intranet, a local area network(LAN) or wide area network(WAN).
從上面的定義可以看出,雲端計算可以看做一個計算網路,其由一組硬體主機作為伺服器,然後通過通訊網路連線,從而給其他使用者提供各種各樣的服務。
以下是雲端計算的一個概念圖。
從該圖中可以看出,雲端計算提供的服務可以分為三層,第一層是基礎設施(Infrastructure),第二層是平臺(Platform),第三層是應用軟體(Application)。基礎設定的服務包括虛擬或實體計算機、塊級儲存、網路設施(如負載均衡,內容交付網路,DNS解析)等,平臺的服務包括物件儲存、認證服務和訪問服務、各種程式的執行時、佇列服務、資料庫服務等,而應用軟體的服務則包括的多了,比如郵件服務、程式碼託管服務等等。使用者可以通過臺式電腦、手提電腦、手機、平板等各種網際網路終端裝置訪問和使用這些服務。
其實這三層就是我們常說的IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service)。
亞馬遜的雲服務提供了多達幾十種服務,涵蓋了IaaS、PaaS、SaaS這三層。既然是亞馬遜雲服務,那麼為什麼通常都叫做Amazon Web Service(AWS)那,為什麼不叫Amazon Cloud Service之類的那?這個就不得而知了,估計當時AWS第一個服務出來的時候是2006年,那時候雲的概念還沒有這麼火,而web service則如日中天,所以起了個這個名字。好了不八卦了,先看看亞馬遜雲端計算的架構圖。
從該架構圖可以看出,亞馬遜雲服務由7部分組成。接下來對這7部分的主要服務做一個簡要的介紹。
AWS Global Infrastructure(AWS 全域性基礎設施)
在全域性基礎設施中有3個很重要的概念。第一個是Region(區域),每個Region是相互獨立的,自成一套雲服務體系,分佈在全球各地。目前全球有10個Region,北京的Region已經在內測當中,不久就會開放使用。
第二個是Availability Zone(可用區),每個Region又由數個可用區組成,每個可用區可以看做一個資料中心,相互之間通過光纖連線。
第三個是Edge Locations(邊緣節點)。全球目前有50多個邊緣節點,是一個內容分發網路(CDN,Content Distrubtion Network),可以降低內容分發的延遲,保證終端使用者獲取資源的速度。它是實現全域性DNS基礎設施(Route53)和CloudFront CDN的基石。
Networking(網路)
AWS提供的網路服務主要有:
Direct Connect: 支援企業自身的資料中心直接與AWS的資料中心直連,充分利用企業現有的資源。
VPN Connection:通過VPN連線AWS,保證資料的安全性。
Virtual Private Cloud: 私有云,從AWS雲資源中分一塊給你使用,進一步提高安全性。
Route 53:亞馬遜提供的高可用的可伸縮的域名解析系統。
Compute(計算)
這可是亞馬遜的計算核心,包括了眾多的服務。
EC2: Elastic Computer service,亞馬遜的虛擬機器,支援Windows和Linux的多個版本,支援API建立和銷燬,有多種型號可供選擇,按需使用。並且有auto scaling功能,有效解決應用程式效能問題。
ELB: Elastic Load Balancing, 亞馬遜提供的負載均衡器,可以和EC2無縫配合使用,橫跨多個可用區,可以自動檢查例項的健康狀況,自動剔除有問題的例項,保證應用程式的高可用性。
Storage(儲存)
S3: Simple Storage Service,簡單儲存服務,是亞馬遜對外提供的物件儲存服務。不限容量,單個物件大小可達5TB,支援靜態網站。其高達99.999999999%的可用性讓其它競爭對手膽寒。
EBS: Elastic Block Storage,塊級儲存服務,支援普通硬碟和SSD硬碟,載入方便快速,備份非常簡單。
Glacier:主要用於較少使用的儲存存檔檔案和備份檔案,價格便宜量又足,安全性高。
Database(資料庫)
亞馬遜提供關係性資料庫和no sql資料庫,以及一些cache等資料庫服務。
DynamoDB: DynamoDB是亞馬遜自主研發的no sql型資料庫,效能高,容錯性強,支援分散式,並且與Cloud Watch、EMR等其它雲服務高度整合。
RDS: Relational Database Service,關係型資料庫服務。支援MySql,SQL Server和Oracle等資料庫,具有自動備份功能,IO吞吐量可按需調整。
Amazon ElastiCache: 資料庫快取服務。
Application Service(應用程式服務)
這裡的服務可就多了。
Cloud Search: 一個彈性的搜尋引擎,可用於企業級搜尋。
Amazon SQS: 佇列服務,儲存和分發訊息。
Simple Workflow:一個工作流框架。
CloudFront:世界範圍的內容分發網路。
EMR: Elastic MapReduce,一個hadoop框架的例項,可用於大資料處理。
Deployment & Admin (部署和管理)
Elastic BeanStalk: 一鍵式建立各種開發環境和執行時。
CloudFormation:採用jason格式的模板檔案來建立和管理一系列亞馬遜雲資源。
OpsWorks: OpsWorks允許使用者將應用程式的部署模組化,可以實現對資料庫、執行時、伺服器軟體等自動化設定和安裝。
IAM: Identity & Access Management,認證和訪問管理服務。使用者使用雲服務最擔心的事情之一就是安全問題。亞馬遜通過IAM提供了立體化的安全策略,保證使用者在雲上的資源絕對的安全。使用者通過IAM可以管理對AWS資源的訪問。通過IAM可以建立group和role來授權或禁止對各種雲資源的訪問。
如果想獲取更多知識可以訪問亞馬遜AWS的官網http://aws.amazon.com/。如果想檢視每個服務的詳細資訊,可以檢視它們的官方文件https://aws.amazon.com/documentation/?nc1=h_su_dm。還有亞馬遜的所有云服務都提供了API介面進行呼叫,並且提供了命令列工具Amazon CLI(Command Line Interface)來使用,詳細資訊請參見http://docs.aws.amazon.com/cli/latest/index.html。