天天看點

Amazon EC2學習筆記(一)

一、一個廣為傳播的經典故事

        話說NYT有一大票1851-1922年間掃描的1100萬份文章,要從TIFF圖檔格式轉換為PDF,由于數量實在太龐大,轉換起來不但耗時甚久,也需要極大數量的機器。最後NYT的工程師将所有文檔傳到S3放着,然後到EC2開了100個Instance,再裝個Hadoop利用這100台電腦跑分布運算,結果是隻花了24小時和大約3000美金就搞定(由于處理速度實在太快,他們實際上還跑了兩次)。

        如果按傳統的方式,自己來處理分布式問題,那麼廣軟體開發費用的增加都遠遠不止3000美元,更不用講硬體的問題。這一堆硬體不買不行,買了以後呢好像就用了那麼一回,也不是個事啊。這裡就顯出Hadoop+EC2的威力來了,這個也被稱作是雲計算。

二、AWS介紹

        EC2是整個亞馬遜Web Service的冰山一角,整個AmazonWeb Service(簡稱AWS)的體系如下圖所示:

Amazon EC2學習筆記(一)

        如上圖所示,AWS分成以下幾大部分:

        •EC2(Elastic ComputeCloud)

        •基礎存儲架構:Dynamo

        •S3(Simple StorageServices)

        •EBS(Elastic BlockStorage)

        •SDB(SimpleDB)

        •彈性MapReduce

        •CloudFront

        •其他

        AWS的基礎是Dynamo,它是一個分布式的存儲系統,使用了DHT作為實作方式,這在後面會有比較詳細的讨論。構築與它之上的,是三個存儲子系統,分别面向不同的上層應用。EBS主要面向EC2,S3則是直接面向最終使用者,為最終使用者提供存儲服務,而SDB則是為一些應用提供簡單資料庫服務。

三、EC2介紹

        由于本篇隻涉及EC2相關的,是以重點的内容是EC2和與其相關的一些内容,對于其他的内容則不作太多的讨論。EC2的體系結構如下:

Amazon EC2學習筆記(一)

        這裡面涉及幾個概念,分别簡單介紹如下:

        •Amazon Machine Image(AMI),一個機器鏡像,可以了解成像Ghost制作的作業系統的鏡像檔案。

        •Instance 執行個體是指基于AMI上運作的系統,可以了解為一個在運作中的作業系統。或者可以稱為虛機。

        •EBS(Elastic Block Store)與S3不同,它是為EC2提供一個臨時存儲的服務,如果說S3相當于硬碟,那麼EBS就相當于記憶體,一個Instance還回去以後EBS上的内容會丢失。(或者重新開機就會丢失?)

        •Zone:分Region Zone和Availability Zone

         一個AMI鏡像可以建立出很多個Instance,相當于一個模闆可以有多個具體具體實作一樣。每個Instance是一個作業系統,使用者可以開很多Instance來做他需要做的事情。Instance裡的東西會首先存到EBS上,如果需要永久存儲,則選擇S3.使用者可以通過SSH登入到虛機裡面,盡心一些配置等操作。由此可見,EC2隻是提供了一個基本的基礎設施,如果涉及使用者應用的話要使用者自己去上傳管理。當然它也提供一些安裝了某些軟體的鏡像,比如安裝了Apache的,或者安裝了Tomcat的虛機。但總的來講,當涉及多台虛機進行分布式協作時,使用者還需要做很多複雜繁瑣的事情,需要把很多機器弄成叢集,然後做一些負載均衡或者别的事情。除非直接使用它提供的Map/Reduce服務。

        我們來看一下一個實際使用EC2來部署應用的例子,見下圖

Amazon EC2學習筆記(一)

        上面圖中的藍色圓角框代表虛機,也就是Amazon叫Instance的那個東西。他用多台虛機組成一個應用的叢集(灰色框内),在這個叢集的前端有一個HAProxy作為Load Balencer之用。另外他還用了資料庫叢集(分Master和Slave),同時在這台虛機上還安裝了Memcache作為緩存伺服器。而最終的資料都是持久化到S3中的。

Amazon EC2 提供以下功能:

    1.虛拟計算環境,也稱為執行個體。

    2.執行個體的預配置模闆,也稱為 Amazon 系統映像 (AMI),其中包含伺服器需要的程式包 (包括作業系統和其他軟體)。

    3.執行個體CPU、記憶體、存儲和網絡容量的多種配置,也稱為執行個體類型。

    4.使用密鑰對的執行個體的安全登入資訊 (AWS 存儲公有密鑰,使用者在安全位置存儲私有密鑰)。

    5.臨時資料 (停止或終止執行個體時會删除這些資料) 的存儲卷,也稱為執行個體存儲卷。

    6.使用 Amazon Elastic Block Store (Amazon EBS) 的資料的持久性存儲卷,也稱為 Amazon EBS 卷。

    7.用于存儲資源的多個實體位置,例如執行個體和 Amazon EBS 卷,也稱為區域和可用區。

    8.防火牆,讓使用者可以指定協定、端口,以及能夠使用安全組到達使用者的執行個體的源 IP 範圍。

    9.用于動态雲計算的靜态 IP位址,稱為彈性 IP 位址。

    10.中繼資料,也稱為标簽,使用者可以建立中繼資料并配置設定給使用者的Amazon EC2 資源。

    11.使用者可以建立的虛拟網絡,這些網絡與其餘AWS雲在邏輯上隔離,并且使用者可以選擇連接配接到使用者自己的網絡,也稱為 VirtualPrivate Cloud (VPC)。

繼續閱讀