AWS Hosted Services 2 Compute Cloud Compu2ng - - PowerPoint PPT Presentation

aws hosted services
SMART_READER_LITE
LIVE PREVIEW

AWS Hosted Services 2 Compute Cloud Compu2ng - - PowerPoint PPT Presentation

Cloud Computing ECPE 276 AWS Hosted Services 2 Compute Cloud Compu2ng Spring 2016 3 Compute Options 1. Amazon Elas2c Compute Cloud


slide-1
SLIDE 1

ì ¡

Cloud ¡Computing ¡

ECPE ¡276 ¡

AWS ¡Hosted ¡ Services ¡

slide-2
SLIDE 2

ì ¡

Compute ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

2 ¡

slide-3
SLIDE 3

Compute ¡Options ¡

  • 1. Amazon ¡Elas2c ¡Compute ¡Cloud ¡(EC2) ¡
  • 2. Amazon ¡Lambda ¡(λ) ¡
  • 3. Amazon ¡Elas2c ¡Bean ¡Stalk ¡(EBS) ¡
  • 4. Other ¡services ¡

1.

ElasDc ¡Load ¡Balancing ¡

2.

Auto ¡Scaling ¡

3.

CloudFront ¡(content ¡delivery) ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

3 ¡

slide-4
SLIDE 4

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

4 ¡

EC2 ¡

slide-5
SLIDE 5

Amazon ¡Elastic ¡Compute ¡Cloud ¡

ì MarkeDng ¡

ì Infinite ¡supply ¡of ¡servers, ¡on-­‑demand ¡ ì Rent ¡by ¡the ¡hour ¡

ì You ¡supply ¡

ì The ¡operaDng ¡system ¡(or ¡use ¡standard ¡Amazon ¡

images) ¡

ì The ¡soVware ¡stack ¡ ì The ¡applicaDon ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

5 ¡

slide-6
SLIDE 6

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

6 ¡

AWS ¡Lambda ¡

slide-7
SLIDE 7

AWS ¡Lambda ¡

ì Event-­‑driven ¡coding ¡ ì You ¡write ¡a ¡custom ¡Lambda ¡funcDon ¡

ì Node.js, ¡Java, ¡or ¡Python ¡

ì Amazon ¡runs ¡your ¡funcDon ¡automaDcally ¡upon ¡

event ¡

ì File ¡uploaded ¡to ¡S3 ¡bucket ¡ ì DynamoDB ¡record ¡changed ¡ ì HTTP ¡Request ¡(Amazon ¡API ¡gateway ¡or ¡your ¡own) ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

7 ¡

slide-8
SLIDE 8

AWS ¡Lambda ¡-­‑ ¡Marketing ¡

ì Sub-­‑second ¡metering ¡($$) ¡(in ¡100ms) ¡

ì (Charged ¡flat ¡rate ¡per ¡access ¡

plus ¡actual ¡compute ¡Dme ¡incurred) ¡ ì No ¡servers ¡to ¡manage ¡

¡

ì ConDnuous ¡scaling ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

8 ¡

slide-9
SLIDE 9

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

9 ¡

h`ps://www.youtube.com/watch?v=eOBq__h4OJ4 ¡ ¡

slide-10
SLIDE 10

AWS ¡Lambda ¡– ¡Example ¡Use ¡Case ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

10 ¡

slide-11
SLIDE 11

AWS ¡Lambda ¡– ¡Example ¡Use ¡Case ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

11 ¡

slide-12
SLIDE 12

AWS ¡Lambda ¡– ¡Example ¡Use ¡Case ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

12 ¡

slide-13
SLIDE 13

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

13 ¡

AWS ¡Elastic ¡ Beanstalk ¡

slide-14
SLIDE 14

AWS ¡Elastic ¡Beanstalk ¡

ì Applica2on ¡Hos2ng ¡

ì

Specifically, ¡web ¡sites ¡or ¡web ¡apps ¡ ì You ¡provide ¡only ¡the ¡applicaDon ¡(one-­‑click ¡deployment!) ¡

ì

AWS ¡Management ¡Console ¡(manually ¡upload) ¡

ì

Git ¡repository ¡(update ¡app ¡in ¡seconds!) ¡

ì

IDE ¡on ¡local ¡machine ¡(Eclipse ¡or ¡Visual ¡Studio) ¡ ì Amazon ¡provides ¡

ì

Infrastructure! ¡

ì

Servers, ¡databases, ¡load ¡balancers, ¡firewalls, ¡networks, ¡ etc… ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

14 ¡

slide-15
SLIDE 15

AWS ¡Elastic ¡Beanstalk ¡-­‑ ¡Marketing ¡

ì AutomaDc ¡everything! ¡

ì Capacity ¡provisioning ¡ ì Load ¡balancing ¡(among ¡pool ¡of ¡servers) ¡ ì Auto-­‑scaling ¡(up ¡and ¡down) ¡ ì ApplicaDon ¡health ¡monitoring ¡

ì Full ¡control ¡of ¡underlying ¡infrastructure ¡and ¡ability ¡

to ¡modify ¡if ¡desired ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

15 ¡

slide-16
SLIDE 16

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

16 ¡

h`ps://www.youtube.com/watch?v=SrwxAScdyT0 ¡ ¡

slide-17
SLIDE 17

AWS ¡Elastic ¡Beanstalk ¡-­‑ ¡Environments ¡

ì Supported ¡environments ¡are ¡limited ¡because ¡Amazon ¡

provides ¡the ¡enDre ¡soVware ¡stack ¡

ì

Apache ¡Tomcat ¡for ¡Java ¡applicaDons ¡

ì

Apache ¡HTTP ¡Server ¡for ¡PHP ¡applicaDons ¡

ì

Apache ¡HTTP ¡Server ¡for ¡Python ¡applicaDons ¡

ì

Nginx ¡or ¡Apache ¡HTTP ¡Server ¡for ¡Node.js ¡applicaDons ¡

ì

Passenger ¡or ¡Puma ¡for ¡Ruby ¡applicaDons ¡

ì

MicrosoV ¡IIS ¡7.5, ¡8.0, ¡and ¡8.5 ¡for ¡.NET ¡applicaDons ¡

ì

Java ¡SE ¡

ì

Docker ¡

ì

Go ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

17 ¡

TargeDng ¡ ¡ web ¡sites ¡or ¡ web ¡apps ¡

slide-18
SLIDE 18

AWS ¡Elastic ¡Beanstalk ¡-­‑ ¡Control ¡

ì

Programmer ¡opDons ¡/ ¡programmer ¡controls ¡

ì

OperaDng ¡system ¡(Linux, ¡Windows, ¡specific ¡releases) ¡

ì

Database ¡

ì

Directly ¡login ¡to ¡EC2 ¡instances ¡for ¡immediate ¡ troubleshooDng ¡

ì

Run ¡in ¡more ¡than ¡one ¡Availability ¡Zone ¡(reliability) ¡

ì

HTTPS ¡on ¡load ¡balancer ¡

ì

Amazon ¡CloudWatch ¡monitoring ¡(cluster ¡health ¡and ¡events) ¡

ì

Adjust ¡applicaDon ¡server ¡senngs ¡(e.g. ¡JVM ¡senngs) ¡and ¡ pass ¡environment ¡variables ¡

ì

Run ¡other ¡applicaDon ¡components, ¡such ¡as ¡a ¡memory ¡ caching ¡service, ¡side-­‑by-­‑side ¡in ¡Amazon ¡EC2 ¡

ì

Access ¡log ¡files ¡without ¡logging ¡in ¡to ¡the ¡applicaDon ¡servers ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

18 ¡

Targeted ¡at ¡ programmer, ¡ not ¡sysadmin ¡

slide-19
SLIDE 19

Other ¡Services ¡– ¡Elastic ¡Load ¡Balancing ¡

ì

Amazon ¡provides ¡load ¡balancers ¡

ì

Accept ¡incoming ¡HTTP, ¡HTTPS, ¡SSL, ¡and ¡generic ¡TCP ¡requests ¡

ì

Forward ¡request ¡to ¡mulDple ¡EC2 ¡instances ¡across ¡different ¡ availability ¡zones ¡

ì

Improves ¡reliability ¡by ¡disDnguishing ¡between ¡healthy ¡and ¡ unhealthy ¡targets ¡

ì

ApplicaDon ¡health-­‑check ¡(e.g. ¡try ¡to ¡load ¡a ¡special ¡page ¡from ¡ your ¡website) ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

19 ¡

Design: ¡Never ¡have ¡customers ¡directly ¡connect ¡to ¡EC2 ¡ instance ¡– ¡they ¡always ¡go ¡through ¡load ¡balancer! ¡

slide-20
SLIDE 20

Other ¡Services ¡– ¡Auto ¡Scaling ¡

ì Launch ¡or ¡terminate ¡EC2 ¡nodes ¡based ¡on ¡current ¡

demand ¡

ì

CPU ¡uDlizaDon? ¡

ì

Available ¡RAM? ¡

ì

Disk ¡uDlizaDon? ¡(% ¡full? ¡ ¡Read/Write ¡bandwidth?) ¡

ì

Network ¡uDlizaDon? ¡

ì

Many ¡other ¡AWS ¡CloudWatch ¡metrics ¡(or ¡custom) ¡ ì Launch ¡new ¡nodes ¡to ¡replace ¡failed ¡ones ¡ ì Coordinates ¡with ¡load ¡balancer ¡

ì

New ¡nodes? ¡NoDfy ¡load ¡balancer ¡

ì

TerminaDng ¡nodes? ¡NoDfy ¡load ¡balancer ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

20 ¡

slide-21
SLIDE 21

Other ¡Services ¡– ¡Auto ¡Scaling ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

21 ¡

slide-22
SLIDE 22

Other ¡Services ¡– ¡Auto ¡Scaling ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

22 ¡

slide-23
SLIDE 23

Other ¡Services ¡– ¡Auto ¡Scaling ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

23 ¡

slide-24
SLIDE 24

Other ¡Services ¡– ¡CloudFront ¡

ì Global ¡Content ¡Distribu2on ¡Network ¡(CDN) ¡for ¡web ¡

content ¡

ì Single ¡URL/domain ¡can ¡resolve ¡to ¡myriad ¡local ¡content ¡

servers ¡(caches) ¡close ¡to ¡customers ¡

ì

DNS ¡trickery ¡(rouDng ¡based ¡on ¡latency ¡or ¡geography) ¡via ¡ Amazon ¡Route53 ¡DNS ¡service ¡ ì Use ¡cases: ¡

ì

Distribute ¡staDc ¡(infrequently ¡changing) ¡content ¡

ì Images, ¡style ¡sheets, ¡JavaScript ¡

ì

Distribute ¡pre-­‑recorded ¡streaming ¡media ¡

ì

Distribute ¡live ¡streaming ¡events ¡(short ¡buffer ¡in ¡cache) ¡ ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

24 ¡

slide-25
SLIDE 25

ì ¡

Networking ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

25 ¡

slide-26
SLIDE 26

Networking ¡

ì Amazon ¡Virtual ¡Private ¡Cloud ¡(VPC) ¡ ì AWS ¡Direct ¡Connect ¡ ì Amazon ¡Route ¡53 ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

26 ¡

slide-27
SLIDE 27

Amazon ¡Virtual ¡Private ¡Cloud ¡

ì Virtual ¡networking ¡

ì

Isolate ¡your ¡EC2 ¡nodes ¡in ¡their ¡own ¡virtual ¡network ¡

ì

Choose ¡your ¡own ¡subnets, ¡gateways, ¡routes, ¡address ¡ translaDon ¡(NAT), ¡firewall ¡rules, ¡… ¡ ì Use ¡case: ¡Extend ¡your ¡corporate ¡network ¡into ¡the ¡cloud ¡

ì

Hardware ¡VPN ¡brings ¡AWS ¡cloud ¡servers ¡inside ¡your ¡ corporate ¡firewall ¡ ì Use ¡case: ¡Mul2-­‑2er ¡applica2ons ¡

ì

Web ¡servers ¡in ¡publically ¡accessible ¡subnet ¡

ì

ApplicaDon ¡servers ¡and ¡databases ¡in ¡private ¡subnet ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

27 ¡

slide-28
SLIDE 28

Amazon ¡Virtual ¡Private ¡Cloud ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

28 ¡

slide-29
SLIDE 29

Amazon ¡Direct ¡Connect ¡

ì Tired ¡of ¡waiDng ¡for ¡your ¡massive ¡datasets ¡to ¡be ¡

sent ¡over ¡the ¡public ¡Internet? ¡

ì Got ¡extra ¡$$ ¡burning ¡a ¡hole ¡in ¡your ¡pocket? ¡ ì SoluDon: ¡Amazon ¡Direct ¡Connect ¡

ì Private ¡fiber ¡direct ¡to ¡Amazon’s ¡cloud ¡ ì Reduced ¡bandwidth ¡price ¡from ¡Amazon ¡

ì But ¡you’ll ¡pay ¡someone ¡else ¡for ¡the ¡fiber… ¡

ì Be`er ¡QOS ¡/ ¡bandwidth? ¡ ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

29 ¡

slide-30
SLIDE 30

Amazon ¡Direct ¡Connect ¡– ¡Peering ¡

“West” ¡

ì

New ¡York ¡City ¡

ì

Northern ¡Virginia ¡

ì

Dallas ¡

ì

Las ¡Vegas ¡

ì

San ¡Francisco ¡

ì

Sea`le ¡

ì

Sao ¡Paulo ¡

“East” ¡

ì

Dublin ¡

ì

London ¡

ì

Frankfurt ¡

ì

Mumbai ¡

ì

Osaka ¡

ì

Seoul ¡

ì

Sydney ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

30 ¡

Your ¡private ¡fiber ¡ needs ¡to ¡reach ¡a ¡ specific ¡network ¡ coloca2on ¡facility ¡ in ¡one ¡of ¡these ¡ ciDes ¡to ¡join ¡ Amazon’s ¡ network ¡

slide-31
SLIDE 31

Amazon ¡Route ¡53 ¡

ì

DNS ¡Service: ¡ ¡“www.example.com” ¡-­‑> ¡1.2.3.4 ¡

ì

MarkeDng: ¡“built ¡using ¡AWS’s ¡highly ¡available ¡and ¡reliable ¡ infrastructure” ¡

ì

Servers ¡across ¡the ¡globe ¡

ì

EssenDal ¡part ¡of ¡load ¡balancing ¡and ¡scaling ¡

ì

Integrates ¡with ¡Amazon ¡ElasDc ¡Load ¡Balancer ¡

ì

Fancy ¡rouDng ¡to ¡best ¡server ¡based ¡on ¡

ì

Server ¡health ¡check ¡(sDll ¡working?) ¡

ì

Latency ¡

ì

Geography ¡

ì

Round-­‑robin ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

31 ¡

slide-32
SLIDE 32

ì ¡

Communication ¡/ ¡Coordination ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

32 ¡

slide-33
SLIDE 33

Communication ¡/ ¡Coordination ¡

ì Amazon ¡Simple ¡No2fica2on ¡Service ¡(SNS) ¡ ì Amazon ¡Simple ¡Queue ¡Service ¡(SQS) ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

33 ¡

slide-34
SLIDE 34

Amazon ¡Simple ¡Notification ¡Service ¡ ¡

ì Messaging ¡service ¡for ¡distributed ¡clients ¡

ì

Publish/subscribe ¡push ¡model ¡

ì A ¡few ¡nodes ¡publish ¡data ¡to ¡the ¡service ¡ ì Many ¡other ¡nodes ¡subscribe ¡to ¡the ¡service ¡

ì

Cloud ¡pushes ¡noDficaDons ¡to ¡all ¡clients ¡immediately ¡aVer ¡ publisher ¡submits ¡it ¡

ì HTTP/HTTPS, ¡email, ¡SMS ¡

ì Client ¡Plaxorms ¡& ¡Languages ¡

ì

Mobile: ¡iOS, ¡Android ¡

ì

Any ¡of ¡the ¡AWS ¡SDKs ¡(Java, ¡Python, ¡PHP, ¡Node.js, ¡.NET) ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

34 ¡

slide-35
SLIDE 35

Amazon ¡Simple ¡Queue ¡Service ¡

ì

Messaging ¡service ¡for ¡distributed ¡clients ¡

ì

Pull ¡model ¡

ì

Clients ¡send ¡and ¡receive ¡data ¡via ¡cloud-­‑based ¡queues ¡

ì

Arbitrary ¡data ¡up ¡to ¡256kB ¡

ì

Arbitrary ¡senders ¡(many!) ¡and ¡receivers ¡(many!) ¡

ì

API ¡in ¡AWS ¡SDK ¡

ì

SendMessage ¡(to ¡a ¡queue) ¡

ì

ReceiveMessage ¡(from ¡a ¡queue) ¡

ì

DeleteMessage ¡(from ¡a ¡queue) ¡

ì

ChangeMessageVisibility ¡(of ¡a ¡previous ¡message) ¡

ì

Batching ¡(to ¡reduce ¡cost!) ¡

ì

Queue ¡Management ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

35 ¡

slide-36
SLIDE 36

Amazon ¡Simple ¡Queue ¡Service ¡-­‑ ¡Lifecycle ¡

1.

System ¡“A” ¡needs ¡to ¡send ¡a ¡message ¡

1.

Select ¡an ¡Amazon ¡SQS ¡queue ¡

2.

Call ¡SendMessage() ¡to ¡transfer ¡to ¡queue ¡ 2.

System ¡“Z” ¡needs ¡more ¡messages ¡to ¡process ¡

1.

Call ¡ReceiveMessage(), ¡and ¡get ¡message ¡from ¡System ¡“A” ¡ 3.

Once ¡a ¡message ¡has ¡been ¡returned ¡by ¡ReceiveMessage(), ¡it ¡will ¡not ¡be ¡returned ¡by ¡any ¡

  • ther ¡ReceiveMessage() ¡unDl ¡the ¡visibility ¡Dmeout ¡has ¡passed ¡

1.

Keeps ¡mulDple ¡computers ¡from ¡processing ¡the ¡same ¡message ¡at ¡once ¡ 4.

System ¡“Z” ¡successfully ¡processes ¡this ¡message? ¡

1.

Call ¡DeleteMessage() ¡

2.

Removes ¡the ¡message ¡from ¡the ¡queue ¡so ¡no ¡one ¡else ¡will ¡ever ¡process ¡it ¡ 5.

System ¡“Z” ¡fails ¡to ¡process ¡the ¡message? ¡

1.

Message ¡will ¡be ¡read ¡by ¡another ¡ReceiveMessage() ¡call ¡as ¡soon ¡as ¡the ¡visibility ¡Dmeout ¡ passes ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

36 ¡

slide-37
SLIDE 37

Next ¡Week: ¡Netflix ¡Case ¡Study ¡

Spring ¡2016 ¡ Cloud ¡Compu2ng ¡

37 ¡