更新時(shí)間:2019-10-16 來(lái)源:黑馬程序員 瀏覽量:
目前云平臺(tái)逐漸火熱起來(lái),國(guó)內(nèi)如:阿里云、騰訊云、華為云等平臺(tái),國(guó)外如:AWS、Azure、Google GCP等平臺(tái),都有不少用戶,并在持續(xù)的增加中。
特別是在大數(shù)據(jù)領(lǐng)域,主流的云平臺(tái)均提供了相應(yīng)的解決方案,從分布式存儲(chǔ)到分布式計(jì)算,從批處理框架到流式計(jì)算,從ETL到數(shù)據(jù)管道,從BI分析到數(shù)據(jù)挖掘等等方面均有對(duì)應(yīng)的產(chǎn)品來(lái)解決企業(yè)的需求。
我們有必要對(duì)云平臺(tái)增加一定的了解,并最好能上手嘗試一番,對(duì)我們提升眼界思維有很大幫助。
本篇文章就給大家?guī)?lái)主流云平臺(tái)中的AWS平臺(tái)的相關(guān)介紹。
一、 什么是AWS
官方介紹:
AWS 全稱Amazon web service(亞馬遜網(wǎng)絡(luò)服務(wù)),是亞馬遜公司旗下云計(jì)算服務(wù)平臺(tái),為全世界各個(gè)國(guó)家和地區(qū)的客戶提供一整套基礎(chǔ)設(shè)施和云解決方案。
AWS面向用戶提供包括彈性計(jì)算、存儲(chǔ)、數(shù)據(jù)庫(kù)、物聯(lián)網(wǎng)在內(nèi)的一整套云計(jì)算服務(wù),幫助企業(yè)降低IT投入和維護(hù)成本,輕松上云
從概念是來(lái)看,AWS提供了一系列的托管產(chǎn)品,幫助我們?cè)跊](méi)有物理服務(wù)器的情況下,照樣可以正常完成軟件開(kāi)發(fā)中的各種需求,也就是我們常說(shuō)的云服務(wù)。
比如,從存儲(chǔ)來(lái)說(shuō),AWS提供了S3 作為對(duì)象存儲(chǔ)工具,可以幫助我們存儲(chǔ)大量的數(shù)據(jù),并且S3可以被AWS的其他服務(wù)所訪問(wèn)。
從服務(wù)器資源來(lái)說(shuō),AWS提供了EC2作為虛擬化的云服務(wù)器,提供各種類型的主機(jī),如計(jì)算型、通用型、內(nèi)存計(jì)算型、GPU計(jì)算型,等等來(lái)滿足業(yè)務(wù)對(duì)服務(wù)器的需要。
在數(shù)據(jù)庫(kù)方面,AWS提供了如RDS(包含Mysql、MariaDB、Postgresql)作為關(guān)系型存儲(chǔ)以及分布式大型關(guān)系型數(shù)據(jù)庫(kù)Aurora,同時(shí)提供了多種Nosql數(shù)據(jù)庫(kù),如DynamoDB等,以及數(shù)倉(cāng)如RedShift。
AWS在各個(gè)方面的業(yè)務(wù)需求上,都有對(duì)應(yīng)的產(chǎn)品或者整體的解決方案存在,并且這些產(chǎn)品或者方案都有一個(gè)特點(diǎn),就是全部不需要使用者有任何物理資源,所有的業(yè)務(wù)統(tǒng)統(tǒng)在AWS上運(yùn)行,使用者只需要有一天電腦去登錄AWS去進(jìn)行管理操作即可,同時(shí)也簡(jiǎn)化了許多運(yùn)維的工作量,比如監(jiān)控、報(bào)警等方面,AWS自身就已經(jīng)集成了很豐富的監(jiān)控報(bào)警功能。
二、AWS上提供的主要功能模塊
如上三個(gè)圖,我們可以看出,AWS提供了許許多多的功能模塊以對(duì)應(yīng)各種不同的業(yè)務(wù)需求
就以計(jì)算來(lái)舉例:
在AWS的計(jì)算模塊中,除了最常見(jiàn)的EC2(Elastic Compute Cloud),也就是云上的虛擬機(jī),除了EC2外,AWS提供了諸如:
LAMBDA: 用于提供開(kāi)發(fā)ServerLess Application,支持Java、Python、Go等主流語(yǔ)言
ECR:Amazon Elastic Container Registry,用于管理容器鏡像的服務(wù),類似容器倉(cāng)庫(kù)的概念
ECS:Amazon Elastic Container Service,AWS自身提供的容器編排服務(wù)
EKS:Elastic Kubernetes Service,運(yùn)行在云上的,AWS提供的Kubernetes技術(shù)
Lambda:云上運(yùn)行代碼,無(wú)需顧慮服務(wù)器。只需要關(guān)系業(yè)務(wù)邏輯編寫(xiě)代碼即可,編寫(xiě)好之后提交給Lambda代碼可以直接運(yùn)行,不需要服務(wù)器,也不需要安裝環(huán)境。
還有一些其他的計(jì)算模塊中的服務(wù),就不一一列舉了(國(guó)內(nèi)用不了)。
可以看出,AWS在每一個(gè)模塊下,都提供了很豐富的產(chǎn)品來(lái)供用戶選擇使用。
使用AWS可以做到,不依賴任何任何一臺(tái)物理服務(wù)器就能支撐起全公司所有的業(yè)務(wù)。
AWS是十分強(qiáng)大的,目前在全球云平臺(tái)的占有率也是處于No.1的序列,其相當(dāng)于引領(lǐng)著云平臺(tái)的定義。
我們主要挑選一些最常使用的服務(wù)來(lái)給大家介紹一下?!就扑]了解大數(shù)據(jù)培訓(xùn)課程】
三、AWS中一些常用服務(wù)介紹
計(jì)算-EC2:
EC2可以說(shuō)是AWS平臺(tái)上最核心、最基礎(chǔ)的服務(wù)了,其全稱Elastic Compute Cloud: 彈性云計(jì)算。
EC2簡(jiǎn)單來(lái)說(shuō),就是提供了云上的虛擬服務(wù)器,用戶可以按照需求選擇如:
1. 內(nèi)存計(jì)算型(強(qiáng)調(diào)內(nèi)存性價(jià)比)
2. 通用型(均衡性價(jià)比)
3. 計(jì)算型(強(qiáng)調(diào)CPU性價(jià)比)
4. GPU計(jì)算型(提供高性能GPU)
5. 存儲(chǔ)優(yōu)化型(強(qiáng)調(diào)存儲(chǔ)性價(jià)比)
除了大類型上可以選擇,也可以選擇小類型(CPU、內(nèi)存配置),如下圖:
提供了多種類型的CPU和內(nèi)存的組合供我們選擇,最高可以選擇到128vCPU核心,4TB內(nèi)存的級(jí)別。除了性能配置外,EC2同時(shí)支持選擇多種操作系統(tǒng)來(lái)部署,如:
同時(shí),EC2也可以搭配如VPC(虛擬網(wǎng)絡(luò)),AMI(鏡像),快照,安全組(防火墻),負(fù)載均衡器等各種服務(wù)搭配使用
總的來(lái)說(shuō),EC2 就相當(dāng)于一個(gè)云上的虛擬機(jī)軟件,可以幫我們創(chuàng)建服務(wù)器,部署操作系統(tǒng),管理網(wǎng)絡(luò),拍攝快照,配置防火墻等等工作。
存儲(chǔ)-S3
S3:Amazon Simple Storage Service,是一種云上的簡(jiǎn)單存儲(chǔ),是一種基于對(duì)象的存儲(chǔ)。我們可以把我們的數(shù)據(jù)作為一個(gè)個(gè)對(duì)象存儲(chǔ)在S3中。
并且,S3可以被AWS中其他的服務(wù)所訪問(wèn),甚至我們部署的Hadoop、Spark等程序都可以正常的訪問(wèn)S3的數(shù)據(jù)。
S3作為存儲(chǔ),和服務(wù)器進(jìn)行了隔離,原本我們做分布式存儲(chǔ)如HDFS,都是依賴具體的服務(wù)器硬件的,但是使用S3,就不再需要了,它就相當(dāng)于AWS提供的一款分布式、超大容量的網(wǎng)盤(pán)程序
T1:使用S3,我們可以將存儲(chǔ)的計(jì)算資源進(jìn)行分離,比如我們可以在需要計(jì)算的時(shí)候,臨時(shí)創(chuàng)建幾個(gè)EC2,去加載S3數(shù)據(jù),運(yùn)行程序計(jì)算結(jié)果,得到結(jié)果后,就可以刪除EC2了,最大程度提供資源利用率,不需要計(jì)算的時(shí)候,讓計(jì)算資源不再閑置,或者說(shuō),需要計(jì)算資源的時(shí)候再去創(chuàng)建即可。
數(shù)據(jù)庫(kù)
RDS
RDS全稱:Amazon Relational Database
Service,也就是亞馬遜關(guān)系型數(shù)據(jù)庫(kù)服務(wù)。是一種托管的云數(shù)據(jù)庫(kù),可以為我們提供云上的Mysql、Postgresql、MariaDB、Aurora(分布式關(guān)系型數(shù)據(jù)庫(kù))等多種關(guān)系型數(shù)據(jù)庫(kù)。使用RDS,用戶只需要關(guān)系去使用它即可,而無(wú)需關(guān)心如:安裝、部署、維護(hù)、監(jiān)控、報(bào)警等一系列操作。這些操作AWS全部幫我們自動(dòng)化完成,我們只需要關(guān)心業(yè)務(wù)邏輯去操作數(shù)據(jù)庫(kù)即可。
DyanmoDB
DynamoDB是一款托管的NoSQL數(shù)據(jù)庫(kù),是Key-Value型的列式數(shù)據(jù)庫(kù),由AWS自行研發(fā),類似HBase。
其提供了多種語(yǔ)言的API幫助客戶開(kāi)發(fā)程序,同時(shí)將性能劃分為一個(gè)個(gè)容量單位,由預(yù)算來(lái)決定性能,最大限度節(jié)省預(yù)算。
同RDS一樣,使用托管的DynamoDB,客戶同樣只需要關(guān)心使用即可,而無(wú)需關(guān)心如維護(hù)、安裝、報(bào)警、監(jiān)控、部署等一系列操作。
RedShift
RedShift是AWS提供的一款云上的托管的數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品。其底層基于Postgresql開(kāi)發(fā),兼容Postgresql的一些標(biāo)準(zhǔn),可以使用JDBC連接。
計(jì)算-LAMBDA
Lambda是一款神器,目前微服務(wù)十分流行,Lambda可以構(gòu)建復(fù)雜的微服務(wù)系統(tǒng)架構(gòu),同時(shí)也可以用來(lái)構(gòu)建ServerLess 類型的Application
Lambda簡(jiǎn)單來(lái)說(shuō)就是,編寫(xiě)好代碼,提交給Lambda即可運(yùn)行,無(wú)需顧慮服務(wù)器。
聯(lián)網(wǎng)和內(nèi)容分發(fā)-API Gateway
Amazon API Gateway 可幫助開(kāi)發(fā)人員創(chuàng)建和管理在 Amazon EC2、AWS Lambda 或任何可公開(kāi)尋址的 Web 服務(wù)上運(yùn)行的后端系統(tǒng)的 API。利用 Amazon API Gateway,您可以為您的 API 生成自定義客戶端 SDK,以便將后端系統(tǒng)連接到移動(dòng)、Web 和服務(wù)器應(yīng)用程序或服務(wù)
通俗來(lái)說(shuō),我們可以認(rèn)為API Gateway就是一款托管在云上的Nignx、Tomcat等中間件。
API Gateway 可以配合上面提到的Lambda,來(lái)提供RESTful形式的接口。
分析-EMR
EMR也是一款重磅產(chǎn)品,對(duì)我們大數(shù)據(jù)開(kāi)發(fā)人員意義重大,其可以幫助我們快速的構(gòu)建起一個(gè)大數(shù)據(jù)集群,只需要鼠標(biāo)點(diǎn)擊幾下即可創(chuàng)建。
EMR提供兩種類型的集群:
1. 步驟運(yùn)行集群
2. 長(zhǎng)久運(yùn)行集群
對(duì)于步驟運(yùn)行集群,我們可以創(chuàng)建一個(gè)特定的集群,分配特定EC2來(lái)運(yùn)行集群,給定一個(gè)集群創(chuàng)建成功后的運(yùn)行步驟。那么在集群創(chuàng)建好之后,EMR會(huì)自動(dòng)運(yùn)行我們提供的步驟,運(yùn)行結(jié)束后,會(huì)自動(dòng)關(guān)閉此集群,刪除對(duì)應(yīng)的EC2資源。
比如:我們可以寫(xiě)一個(gè)Spark任務(wù),從S3讀取數(shù)據(jù),并將結(jié)果存放到S3中,那么可以將這個(gè)任務(wù)提交給EMR步驟運(yùn)行集群,那么其流程就是:
1. 預(yù)配置:比如勾選需要多少個(gè)EC2,EC2是什么類型,Spark任務(wù)在哪里
2. 預(yù)配置完成后,EMR就會(huì)創(chuàng)建對(duì)應(yīng)的EC2,然后在對(duì)應(yīng)EC2上部署集群
3. 集群部署完成后,運(yùn)行我們提交的Spark任務(wù)
4. Spark任務(wù)運(yùn)行完成后,EMR關(guān)閉集群,刪除EC2
那么假設(shè)我們的任務(wù)運(yùn)行了2個(gè)小時(shí),提供了10個(gè)4核心8GB內(nèi)存的EC2,那么我們消耗的成本就只有這10臺(tái)EC2 運(yùn)行2小時(shí)的金額。
而對(duì)于以前的機(jī)房集群來(lái)說(shuō),在不運(yùn)行任務(wù)的時(shí)候,其也在持續(xù)的消耗成本(房租、電、網(wǎng)、運(yùn)維等)
同時(shí)對(duì)于這樣的集群我們還可以動(dòng)態(tài)拓展其性能,我們勾選了10個(gè)EC2 運(yùn)行了2小時(shí)完成,
那么一般來(lái)說(shuō)我們可以勾選20個(gè)EC2,來(lái)讓任務(wù)在1小時(shí)完成,那么成本和10個(gè)EC2 2小時(shí)完成是差不多的
這樣對(duì)于企業(yè)來(lái)說(shuō)可以最大限度的節(jié)省資金同時(shí)提高性能,
對(duì)于機(jī)房集群來(lái)說(shuō),擴(kuò)容是一個(gè)大事情,但是對(duì)于EMR來(lái)說(shuō),就非常輕松。
對(duì)于長(zhǎng)久運(yùn)行集群
EMR在創(chuàng)建好集群后,就讓集群一直運(yùn)行下去,除非我們手動(dòng)關(guān)閉,EMR不會(huì)自動(dòng)關(guān)閉集群刪除EC2
適合我們部署長(zhǎng)期運(yùn)行的服務(wù),如HBase等
EMR支持如下的大數(shù)據(jù)組件:
分析-Kinesis
Kinesis是AWS提供的一款流分析工具,可以基于Kinesis來(lái)完成相關(guān)流計(jì)算業(yè)務(wù),同時(shí)Kinesis也可以作為一款消息隊(duì)列來(lái)存在,用于削峰、解耦等。
四、總結(jié)
AWS為我們提供了許許多多實(shí)用的產(chǎn)品和解決方案,可以讓業(yè)務(wù)不依賴任何一臺(tái)云服務(wù)器。
目前,上云是一句流行語(yǔ),也是一個(gè)大勢(shì),大家可以多了解了解云產(chǎn)品,開(kāi)拓眼界。