AWS雲服務.
AWS網址 http://aws.amazon.com/
AWS是Amazon Web Services的簡稱,可以說是現今全球公有雲服務的龍頭廠商。
其基礎規模十分巨大、全球Region最多、配套服務也最完整,而且操控管理介面、APIs、SDK等資源最齊全!
而Amazon在中國大陸的佈局上也沒缺席,除了Kindle電子書已開賣之外,預計今年在北京也會有AWS的Region。
AWS的服務大致分為幾大類:
- #Compute & Networking(EC2、AutoScaling、ELB、WorkSpaces、VPC、Route 53)
- #Storage & CDN(S3、Glacier、EBS、Import/Export、Storage Gateway、CloudFront)
- #Database(RDS、DynamoDB、ElastiCache、Redshift)
- #Analytics(EMR、Kinesis、Data Pipeline、Redshift)
- #Application Services(AppStream、CloudSearch、SWF、SQS、SES、SNS、FPS、Elastic Transcoder)
- #Deployment & Management(IAM、CloudTrail、CloudWatch、Beanstalk、CloudFormation、OpsWorks)
對於一般的企業來說,最常用到的AWS服務會有:
- #Compute & Networking(EC2、AutoScaling、ELB、VPC、Route 53)
- #Storage & CDN(S3、Glacier、EBS、CloudFront)
- #Database(RDS)
- #Application Services(SES、SNS)
- #Deployment & Management(IAM、CloudWatch)
接下來我們將針對這些常用的AWS服務進行概要的解說,而實際的使用說明會有其他篇文章來一一詳述。
EC2 Overview.
- #EC2的完整名稱是:Amazon Elastic Compute Cloud
- #網址 http://aws.amazon.com/ec2/
- #EC2其實就是一種Virutal Machine(簡稱VM),也就是「虛擬機器」,是AWS最最常用的服務之一
- #可依需求而啟用不同Region、不同Zone、不同Type的Instance(在AWS中EC2的基本單位稱為Instance)
- #AWS現在有八大Region (不包括GovCloud) 網址 http://aws.amazon.com/about-aws/globalinfrastructure/
- #依Instance用途的不同而區分為34種Type(2014年5月份),在不同Region可以用的Type數量會略有差異
- #EC2的Type依用途分為幾大類(規格也會有所不同,主要是CPU、ECU、Memory和Storage的差異):
1.General Purpose,包括m1和m3系列(samll、medium、large、xlarge)
2.Compute Optimized,包括c1和c3系列(medium、large、xlarge、2xlarge、4xlarge、8xlarge)
3.GPU,包括cg1.4xlarge、g2.2xlarge
4.Memory Optimized,包括r3系列和m2系列 (m2.xlarge、m2.2xlarge、m2.4xlarge、cr1.8xlarge)
5.Storage Optimized,包括hi1.4xlarge、hs1.8xlarge和i2系列(large、xlarge、2xlarge、4xlarge、8xlarge)
6.Micro,只有t1.micro,主要是用來測試的
(ECU(EC2 Compute Unit)與CPU的關係會因為不同Type而有差異,主要是相對應的CPU等級會有不同) - #EC2可使用32bit和64bit的作業系統,但支援32bit的Type只有t1.micro、m1.small、m1.medium、c1.medium
- #EC2有很多的AMI可以使用,包括Amazon、Oracle、RedHat等公司提供的AMI,也可以自行製作自己的AMI
(AMI的全名是Amazon Machine Image,就是啟用EC2時的映像檔,請想像AMI就像個蛋糕模子,可快速生產) - #EC2是以「小時」計費,依啟用的Type、Region和AMI而有所價差,並會因付費模式不同而有7種以上的價格
- #EC2的付費模式有三種:
On-Demand:依實際使用的小時來計費
Reserved Instance:可以先預付一筆款,然後來降低每小時的費用,包括Light、Medium、Heavy共六種
Spot Instance:使用競標方式來取得便宜的Instance,一般是在需要大量、便宜、短時間使用的需求時使用 - #AWS的服務價格大約半年至一年會變動一次,而EC2的規格也會不斷地進行調整,須隨時注意更新
AutoScaling Overview.
- #網址 http://aws.amazon.com/autoscaling/
- #AutoScaling可以用來進行垂直擴展(Scale Up)或水平擴展(Scale Out),可擴大或縮小規格,提供部署的彈性
- #垂直擴展(Scale Up)就是針對EC2的Instance Type進行調整,例如從m1.small變大至m1.xlarge (或是從大變小)
- #水平擴展(Scale Out)則十分複雜,端看架構及規模大小而定,但至少會以任務來規劃分層架構 (如下圖)
- #若是用在水平擴展的架構時,大多會包括AWS ELB(Elastic Load Balancing),或是自建Loading Balancer
- #AutoScaling必須搭配AWS EC2、CloudWatch一起使用
- #使用AutoScaling必須安裝AWS的SDK、CLI工具,然後透過API的呼叫來達到Scale的目的
ELB Overview.
- #網址 http://aws.amazon.com/elasticloadbalancing/
- #AWS的ELB (完整名稱是:Elastic Load Balancing) 支援Sticky Session、HTTP、HTTPS
- #使用ELB是為了增加服務的承載量,採用Round Robin方式把負載均分給不同的EC2伺服器來滿足需求
- #使用ELB前,請先確保架構至少有Application、Database和Storage不同層,因為ELB主要是擴展Application層
- #ELB是用在水平擴展的架構,至少必須啟用2台以上的EC2,也能結合VPC、AutoScaling一起使用
- #使用ELB時會產生大量的Health Check (用來確保每一台EC2的服務狀態都是沒問題的) 要注意一下
- #若發現AWS的ELB無法滿足自己的需求時,可自建別的Loading Balancer來取代 (例如用EC2+Nginx來取代ELB)
VPC Overview.
- #網址 http://aws.amazon.com/vpc/
- #Amazon的VPC (Virtual Private Cloud) 是為了提供更安全、更彈性的網路架構供企業使用
- #早期的VPC只有VPN (Virtual Private Network),主要是提供企業建置site-to-site的VPN使用,且須搭配高階的VPN設備(如Cisco);現在的VPC則有四種架構可用,有兩種是VLAN的概念、另兩種則是結合硬體的VPN使用
- #由於VPC可有效增加EC2的安全性,因此新的AWS帳號在啟用EC2時,預設都會結合VPC來啟用
- #使用VPC時,一樣會需要設定Security Group、Elastic IP,但和原本未使用VPC時不一樣的是:
1.VPC中的Security Group會多了Outbound的設定 (未用VPC時只有Inbound),在設定上可以更加彈性
2.Elastic IP是先指給VPC,再由VPC指向VPC裡的某台EC2使用,而未用VPC時則是直接指派給某台EC2
3.指派給VPC的IP無法指派給不在VPC裡的EC2,反之亦然;也就是有用VPC的IP和沒有VPC的IP是不一樣的
4.可以自定subnet,並給在VPC裡的EC2該subnet中的特定IP (例如192.168.0.1、172.16.0.1、10.0.0.1之類的)
5.需要特別注意Route Tables、Internet Gateways以及Network ACLs的設定 - #VPC的四種使用模式概述如下:
1.Public Subnet–用來提供公眾型的應用服務幾乎都應該適用,可大大增加安全性,也能自定內部IP位置
2.Public+Private Subnet–有些用戶會想把DB Server等重要服務移至不能直接存取的區域,便可選此模式
3.VPN+Public+Private Subnet–就是上一個模式中加上一個Hardware VPN設備來與企業的VPN設備串接
4.VPN+Private Subnet–把AWS完全用來當做私有雲,一樣用Hardware VPN設備來與企業的VPN設備串接 - #VPC有幾個地方要特別注意 (更多細節可參考VPC的User Guide):
1.可跨Zone使用 (需要設定Route Table),但不能跨Region使用
2.會有些許的限制,例如每個Region最多只能有5個VPC、每個VPC的Route Table最多只能10筆 (參考P.144)
3.可搭配VPC使用的服務:EC2、RDS、ElastiCache、Redshift、Auto Scaling、ELB、EMR、Elastic Beanstalk
Route 53 Overview.
- #網址 https://aws.amazon.com/route53/
- #Route 53是AWS提供的一個具備高可靠性、高擴展性的DNS (Domain Name System) 服務
- #幾個重要的特色:
1.Latency Based Routing (LBR)
2.Amazon ELB Integration
3.Weighted Round Robin
4.CloudFront Zone Apex Support
5.DNS Failover
6.S3 Zone Apex Support - #可用來建置DDNS服務 (實際架過,超威的)
- #每個AWS的帳號可託管100個Domain (域名),若有超過100個Domain,可再向AWS協商
- #標準服務約0.51美金 (以單個Domain來說),其它的服務都要另外加錢 (如LBR、Failover等)
- #本服務可以單獨使用,不必一定要搭配其他AWS的服務使用
S3 Overview.
- #網址 https://aws.amazon.com/s3/
- #S3的完整名稱:Simple Storage Service ,是AWS最早推出的服務之一
- #S3和EC2一樣可以自選使用的Region和等級,並且可結合AWS的IAM來滿足ACLs (存取權限)的控管
- #S3提供的是數位資料最重要的儲存服務,但和EBS的型態不同:
1.若以實際的資訊產品來比喻的話,S3像是網路磁碟(NAS、SAN)、EBS則像是外接硬碟(可掛載至EC2中使用)
2.S3是Object Storage,不必掛載就能利用API呼叫使用;EBS是Block Storage,必須掛載至某台EC2才能使用
3.S3的單個檔案最大可到5TB,檔案數量沒有限制,且能同時被多個Clients讀取;EBS單個掛載空間最大到16TB,一次只能被一台EC2掛載 (單台EC2可掛載多個EBS)
4.EBS有IOPS可選用,但S3沒有,故EBS的存取效能會比S3好;但EBS有空間上和存取上的限制,S3則沒有;故建議依實際需求來採用S3、EBS的服務 (一般是混搭著一起用) - #S3依可靠性有分兩種等級可用,價格也會不同:
1.Standard Storage (99.999999999% Durability)
2.Reduced Redundancy Storage (99.99% Durability),又稱RRS,價格約是Standard的8折,便宜許多 - #若是單純用來做大量資料的備份時,也能考慮採用AWS新出的服務:Glacier Storage (但存取時間須很長)
- #本服務可以單獨使用,也能搭配其他AWS的服務使用 (像CloudFront採用static content方式時就建議搭配S3使用)
- #費用主要是以「使用空間/月」為計費單位,還有存取的次數、流量、選擇的Region及等級都會產生成本的差異
- #Data Transfer In的流量不會產生費用,主要是Data Transfer Out及跨Region的流量會有費用的產生
- #我們的建議是以Data的屬性來採用不同的儲存服務:
1.Hot Data採用EBS (至於要不要用IOPS則視效能需求而定)
2.Warm Data採用S3
3.Cold Data採用Glacier (或是用Local NAS做異地備援)
Glacier Overview.
- #網址 https://aws.amazon.com/glacier/
- #是AWS中最便宜的一種儲存服務 (與S3、EBS不同),但需要很長的存取時間,僅適合做資料備份使用
- #和S3一樣可以自選使用的Region,但目前只有六個Region可選 (少了Singapore和Sao Paulo)
- #本服務必須和S3搭配使用 (設定Lifecycle Policies),或是利用API呼叫、AWS Import/Export方式來使用
- #費用主要是以「使用空間/月」為計費單位,還有存取的次數、流量、選擇的Region都會產生成本的差異
- #Data Transfer In的流量不會產生費用,主要是Data Transfer Out及跨Region的流量會有費用的產生
- #我們的建議是以Data的屬性來採用不同的儲存服務:
1.Hot Data採用EBS (至於要不要用IOPS則視效能需求而定)
2.Warm Data採用S3
3.Cold Data採用Glacier (或是用Local NAS做異地備援) - #官方文件列舉的Use Case
1.Offsite Enterprise Information Archiving
2.Archiving Media Assets
3.Archiving Research and Scientific Data
4.Digital Preservation
5.Magnetic Tape Replacement
EBS Overview.
- #網址 https://aws.amazon.com/ebs/
- #EBS的完整名稱:Elastic Block Store
- #EBS提供的是數位資料最重要的儲存服務,但和S3的型態不同:
1.若以實際的資訊產品來比喻的話,S3像是網路磁碟(NAS、SAN)、EBS則像是外接硬碟(可掛載至EC2中使用)
2.S3是Object Storage,不必掛載就能利用API呼叫使用;EBS是Block Storage,必須掛載至某台EC2才能使用
3.S3的單個檔案最大可到5TB,檔案數量沒有限制,且能同時被多個Clients讀取;EBS單個掛載空間最大到16TB,一次只能被一台EC2掛載 (單台EC2可掛載多個EBS)
4.EBS有IOPS可選用,但S3沒有,故EBS的存取效能會比S3好;但EBS有空間上和存取上的限制,S3則沒有;故建議依實際需求來採用S3、EBS的服務 (一般是混搭著一起用) - #EBS依存取效能分兩種等級可用,價格也會不同:
1.Standard Volumes
2.Provisioned IOPS Volumes(Input/output Operations Per Second) - #必須搭配AWS的EC2一起使用(單台EC2可掛載多個EBS Volume),並能直接做Snapshot備份 (實際儲存在S3)
- #需要和掛載的EC2在同一個AZ裡 (Available Zone,例如us-east-1a),必要時可善用Snapshot來改變EBS的AZ
- #費用主要是以「使用空間/月」為計費單位,還有存取的次數、流量以及IOPS的等級都會產生成本的差異
- #我們的建議是以Data的屬性來採用不同的儲存服務:
1.Hot Data採用EBS (至於要不要用IOPS則視效能需求而定)
2.Warm Data採用S3
3.Cold Data採用Glacier (或是用Local NAS做異地備援)
CloudFront Overview.
- #網址 https://aws.amazon.com/cloudfront/
- #CloudFront是AWS提供的CDN服務 (Content Delivery Network),比較重要的功能包括:
Usage Charts、Support for Custom SSL、Support for POST/PUT and other HTTP Methods、
Geo Restriction、Supports Dynamic Content、Custom Error Responses、Support for Cookies、
HTTP to HTTPS Redirect at the Edge、Access Logs、Live Streaming、Private Content - #CDN是一種用來增加內容傳遞速度的服務,利用減少連線的節點、降低回應的時間來達到加速內容傳遞的目的
- #Amazon的Edge Location在全球約有51個據點,分佈在亞洲、美洲、歐洲、非洲等多個國家
詳見:http://aws.amazon.com/about-aws/globalinfrastructure/regional-product-services/
RDS Overview.
- #網址 https://aws.amazon.com/rds/
- #RDS的完整名稱:Relational Database Service
- #顧名思義,是一種關聯式的資料庫服務,可參考WiKi說明 http://en.wikipedia.org/wiki/Relational_database
- #可依需求而啟用不同Region、不同Zone、不同Type的Instance(在AWS中RDS的基本單位稱為Instance)
- #AWS現在有八大Region (不包括GovCloud) 網址 http://aws.amazon.com/about-aws/globalinfrastructure/
- #依Instance用途的不同而區分為13種Type(2014年3月份),在不同Region可以用的Type數量會略有差異
- #RDS目前提供的資料庫類別計有:
1.MySQL
2.PostgreSQL
3.Oracle
4.Amazon RDS for SQL Server - #RDS的付費項目比EC2更加複雜,包括有Single-AZ、Multi-AZ、Standard Storage、Provisioned IOPS Storage、DB Snapshots、Backups(Replication)等各種選項可供選用(當然大部份都需要額外付費)
- #RDS的付費模式有兩種:
On-Demand:依實際使用的小時來計費
Reserved Instance:可以先預付一筆款,然後來降低每小時的費用,包括Light、Medium、Heavy共六種 - #RDS是以「小時」計費,依啟用的資料庫類別、Instance Type、Region而有所價差,並會因付費模式不同而有7種以上的價格 (例如選擇用在Tokyo Region、Single-AZ、m1.large的MySQL就會有七種價格)
- #AWS的服務價格大約半年至一年會變動一次,因此價格也會不斷地進行調整
SES(beta) Overview.
- #網址 https://aws.amazon.com/ses/
- #完整名稱:Simple Email Service,提供高可靠性、Email寄送的服務
- #每天要寄成千上萬封Email並不容易,故需要有SES來專門提供Email寄送,另外的一個原因是:
AWS的許多IP已被列入黑名單 (常被用來當做發垃圾信的跳板),從這些IP發出來的信件很容易被當成垃圾信 - #SES以寄送的服務為主,且一開始會有信件數量的限制 (以避免被用來濫發),慢慢地才會增加予許發送的數量
- #若需要更多的附加服務,像是Email Tracking等之類的報表,則可考慮其它專業的Email代發服務:
1.Mailgun http://www.mailgun.com/
2.SendCloud http://sendcloud.sohu.com/
3.MailChimp http://mailchimp.com/
SNS(beta) Overview.
- #網址 https://aws.amazon.com/sns/
- #完整名稱:Simple Notification Service,提供快速、彈性又能完全自主管理的訊息推播服務
- #除了直接推播訊息(Push Message)至行動裝置(iPhone、Android Phone…)之外,也能用簡訊等其他方式來傳送
- #推播100萬則的訊息大約花費$1美金,簡訊費用是100則是$0.75美金 (只支援美國門號)
- #推播支援的行動裝置有:
ADM(Amazon Device Messaging),像是Kindle Fire
GCM(Google Cloud Message),Android的行動裝置
APNS(Apple Push Notification Service),Apple的行動裝置
IAM Overview.
- #網址 https://aws.amazon.com/iam/
- #完整名稱:Identity and Access Management,提供AWS用戶進階的群組與使用者之存取權限管理
- #IAM的存取權限(User Policy)幾乎包括了所有AWS服務
- #IAM提供的幾種角色:
-Administrator Access
– Power User Access
-Read Only Access - #若在IAM予許User使用AWS Management Console時(Password Sigin,可搭配MFA Device),其登入網址不是http://aws.amazon.com/console/ 而是https://0xxxxxxxxxx9.signin.aws.amazon.com/console (0xxxxxxxxxx9泛指12個任意組合的數字)
- #MFA(Multi-Factor Authentication) Device是種多重驗證的安全機制,但是AWS官方的App有可能無法安裝在一般的Android手機/平板上,因此可使用Google提供的Authenticator App來取代,下載網址:https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=zh_TW
CloudWatch Overview.
- #網址 https://aws.amazon.com/cloudwatch/
- #CloudWatch是AWS中一個相當重要的監看服務,提供視覺化的資源使用狀況,包括:
1.Resource Utilization
2.Application Performance
3.Operational Health - #CloudWatch預設的監看頻率是每五分鐘記錄乙次(免費版本),可以自行改用付費的版本(每一分鐘記錄乙次)
- #可結合SNS使用,當CloudWatch達到設定警告值時會發出Email通知相關管理者(可自行設定接收對象)
- #可利用Alarm的設定來自動Stop或Terminate EC2 Instances
- #常搭配使用CloudWatch的AWS產品包括(以字母順序排列,參考Developer Guide.pdf P.134):
-Auto Scaling
-AWS Billing
-Amazon DynamoDB
-Amazon ElastiCache
-Amazon EBS
-Amazon EC2
-Amazon ELB
-Amazon Elastic MapReduce
-AWS OpsWorks
-Amazon Redshift
-Amazon RDS
-Amazon Route 53
-Amazon SNS
-Amazon SQS
-AWS Storage Gateway - #每一個AWS產品能夠觀看的CloudWatch指標(Metrics)均會有所不同(因為產品屬性也都不同),例如:
-EC2的Metrics有:CPUUtilization、DiskReadOps、DiskWriteOps、DiskReadBytes、NetworkIn…等等
-EBS的Metrics有:VolumeReadBytes、VolumeWriteBytes、VolumeReadOps、VolumeWriteOps…等等
-ELB的Metrics有:HealthyHostCount、UnHealthyHostCount、RequestCount、Latency…等等
-RDS的Metrics有:BinLogDiskUsage、CPUUtilization、DatabaseConnections、DiskQueueDepth…等等 - #比較特別的是CloudWatch中有個AWS Billing,可用來監看使用AWS服務的總金額
Pingback: AWS TIPS | Chang&Chang