Cross-regional Application Deplolyment on AWS - Channy Yun (JAWS Days 2017)

Preview:

Citation preview

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Channy YunTech Evangelist, Amazon Web Services Korea

ĜĊĿľŅĘļŃą¨äéĵĿĠľŅĘļŃćŅĐģđĠĹôÁ+�PąkUåă

@channyun

�E�

• 1996-2003 ĊċĮ±��ÿęĞŅĥćġįCTO• 2004-2014 Daum API±�ĠŅķ°ÙĀ÷

±��ČĪŃĘċľęĥ

• 2014- AWSģġđČĪŃĘċľęĥ• 9ÜòAWSĕŅĬęŌElastic Beanstalk

• 2002- Mozilla¹/ôĔĶĺĨģĈľŅğŅ• 2007- ¹/WeblwĔĶĺĨģĈľŅğŅ• 2012- AWSKRUGĔĶĺĨģĈĸŃĪŅ

AWSĉŃĭĽęĥĽđĠĹĕŅĬęôīĞŅŃ

Multi-AZ Cross Region Hybrid ITSingle AZ

AZ AZ AZ Region Region

Edge

ĒŁŅĪĿĔŃģŃĢôD±

đĽĊĦÁ+�Pą��

ĒŁŅĪĿĕŅĬęôª�

đĽĊĦôZHPô��

čŃįŀĶęð©$

16ľŅĘļŃňRegionʼnð42�ô �+�»4ňAZʼn72�ôČġĘŁēŅėļŃňEdge Locationʼn

(2017, 3c)

&�RegionÁ+�Pćđěę

Multi-AZ

AZ AZ

đĽĊĦÁ+�Pą��

OK … should I use Multi-Region?

ĵĿĠľŅĘļŃs�~�

½@ôĕĮěġĥóBåăJëb²ą��

q�«<ňĤŅĞ�nʼn

xAL`ô��ąvéå

1c Asia Pacific(Seoul)ľŅĘļŃô±:Amazon Elasticsearch, CloudSearchAWS MarketPlace

3c EC2 Spot Instance, AWS Storage Gateway

4c AWS Config, Amazon AuroraRDS for SQL Server

5c CloudFront ��ČġĘŁēŅėļŃEC2 Dedicated Hosting

6c VPC FlowLogs, NAT GatewayCloudWatch Events

8c Amazon API Gateway, AWS LambdaAWS OpsWorks, Amazon InspectorAWS Application Load BalancerAWS Database Migration Service

9c Amazon Cognito, AWS IoT

10c EC2 X1 Instance

12c Amazom GameLift, AWS Config Rules

2016G1cÓĜĊĿľŅĘļѱ� fÓ

�30+^�ĕŅĬęðo�ôľľŅę

http://zhiguang.me/2016/05/10/latency-between-aws-global-regions/

ľŅĘļŃ²ôŀĉģŃė

rRŌ24��ôAWSĕŅĬę

• Amazon Simple Storage Service (Amazon S3)

• Amazon Elastic File System (Amazon EFS)

• Amazon Relational Database Services (RDS)

• Amazon DynamoDB

• òñòñ…

Cross-RegionBOĕŅĬęĬĿĤĈŃĒĮŁġđ

Amazon Route 53 (Managed DNS) & ClodFront (Edge)

Amazon S3 Cross-Regional Replications

Amazon RDS & DynamoDB Cross-Regional Replications

Network

Storage

Database

Application

CI/CD with CodePipeline & CodeDeploy

• ĒŁŅĪĿDNS

• ĩġĥłŅđİĿęĠċġđ

• ŀĉģŃėıŅęôĿŅģĈŃĒ

• #¯ĽĊŃĦŁĬŃ

• 70 �ôPOPąãé���mô(Ă�ý

• AWSÙĀ÷¸AWSľĜŅęąĕĴŅĥ

Amazon Route 53

Example: Failover with NS Recordsexample.net

Region A Region B

prod-1 prod-2

Demo: JAWS Days Failover!

prod-1 prod-2

95% 5%

example.net

health+

weight

prod.examp.nethealth

examp-fail.s3-website

Region A Region B

Example: Weighted with failover

• ^ãÖPUTôýą��ãüåÔ

• �ĪēġĥüéõįŀĭĈġđę

ıŅę

• �Rô2ìôľŅĘļŃ/ęĥŀŅ

ĘđĽę²ô1Ō1ŀįľēŅėļŃ

• įĽĉĵľćĎĊŃĥÚāĕĮćĎ

ĊŃĥøô��S3Vdn

Source (Tokyo)

Destination (Seoul)

Amazon S3: Cross-Region Replication

http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/UG/cross-region-replication.html

How to replicate S3 Objects?

Amazon RDS: Cross-Region Replication

• AuroraÓMySQLÓMariaDBÓ

PostgreSQLň9.3.5 �ʼn

• xAL`ô��ąvéå

• ĤŅĞıŅęĵęĞŅô£Yą

¦uåă

• ŀįľĎąĵęĞŅóaiáçă

http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ReadRepl.html

How to make RDS ReadReplica?

Amazon DynamoDB Cross-Region Replication

Open Source Cross-Region Replication Library

Region B

Region ADynamoDB Streams

• ĜľĺŅėļŃõAmazon DynamoDBđŁęľŅĘļŃŀįľēŅėļŃĽĉĮĽľą��ãüå

• DynamoDBęĥľŅķąs�ãîÓģŅĮĿą�\ôľŅĘļŃ²ïúûľćĿĞĉķï,eáçă

• ćįľēŅėļŃïđŁęńľŅĘļŃńŀįľēŅėļŃńĽĉĮĽľŅą �åă

• GitHubľĴĘĥľï �+�:ü https://github.com/awslabs/dynamodb

-cross-region-library

Amazon DynamoDB Cross-Region Replication

• AWS Lambdaą �ŌDB StreamÛ��ãéðÜLambda³\ô?�

DAT201 Cross-Region Replication with Amazon DynamoDB Streams (re:Invent 2016)http://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-crossregion-replication-with-amazon-dynamodb-streams-dat201https://www.youtube.com/watch?v=NtaTC2Fq7Wo

DynamoDBclient application

• Amazon Kinesis �ŌClient Libraryą��ãé��

Cross-Regional Application Deployment

• https://aws.amazon.com/blogs/devops/building-a-cross-regioncross-account-code-deployment-solution-on-aws/

• https://aws.amazon.com/blogs/devops/automatically-deploy-from-amazon-s3-using-aws-codedeploy/

• AWS CodePipeline & CodeDeploy + AWS Lambda

• ĬĿĦ=UbLambda³\ą��ãéľŅĘļŃô�$

• ľŅĘļŃ²ôćįľēŅėļŃôk�ÙĀ÷®�Û+�

• N�óOäîÓz>ôľŅĘļŃôĬĿĦ�hôý �+�

Serverless App for Cross-Region?

Route 53 + API Gateway + CloudFront + Certificate Manager

Region A

CloudFormation + CodeBuild + CodePipeline

Region B

Netflix Case:

https://www.slideshare.net/AmazonWebServices/arc305-28387146https://www.youtube.com/watch?v=hAyA86QGRnI

http://techblog.netflix.com/2013/12/active-active-for-multi-regional.html

From Instance to Regional’ Fail

Chaos Monkey

https://github.com/netflix/chaosmonkey

Instance Fail?

Chaos Gorilla

Zone Fail?

Chaos Kong

Region Fail?

Netflix’s Best Practices

• �¶• Õă24ô6%Û�ô24óIºą�ØăùÜïõòÖ• 24ô�·õ�ôóIºą�ØăùÜïõòÖ• 24²ôĩġĥłŅđ�"õÓo�P/[�óIºãîõòāòÖ

• �°P• 1ìĀĂ7Ýôþôą�ĂòáÖÔ• ���óõÓćıĉĽĬľģĈĝŅŃðľŅĘļŃ²ïĕŅĬęą®�åă

• Service team ran like a startup• Less than 10 core people working

on new PS3 storeservices

• PSN’s user base was already in the several hundred millions of users

• Relied on quick iterations of architecture on AWS

Sony Case:

ARC309- Moving Mission Critical Apps from One Region to Multi-Region active/active (re:Invent 2016) https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-moving-mission-critical-apps-from-one-region-to-multiregion-activeactive-arc309

Putting it all together

Region 1 Region 2

Create infrastructure

Replicate

DNS

Sony’s Best Practices• ĤŅĞô,eõ¸Fó¯�òôïÓüæĤŅĞW�ó5íÖé�;³�ôĵġįą�UãüåÔ

• FóNetflixï|�ôıŃĠĵŅĐŃĒą?�ãüåÔ• ŀďėŅÛ�ô24ôĤĖĉŃą!Kåăßðą +ãòÖïÝêáÖÔ *Öþôð^ãÖþôô²ô��ò��ðĪĽŃęą�ìÞăÔ

• ćįľēŅėļŃõĔŃģĐęĥÀ$3ïòÞĄöòĂüçĆÔ

• ĤŅĞ¥§ôĨŅĚą�TãîÝêáÖÔߥõÓ¬XãéĜľĺŅėļŃóIºãüåÔ

• VPCĩġĥłŅđ�.ňCIDRĮŁġđʼnÛRegionð¯�ãòÖĀ×óãîÝêáÖÔ

• &�´AyôòÖÁ+�PňHAʼn��ą?�åăĀ×óãîÝêáÖÔ

Cross-RegionBOĕŅĬęĬĿĤĈŃĒĮŁġđ

Amazon Route 53 (Managed DNS) & ClodFront (Edge)

Amazon S3 Cross-Regional Replications

Amazon RDS & DynamoDB Cross-Regional Replications

Network

Storage

Database

Application

CI/CD with CodePipeline & CodeDeploy Serverless Apps

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

ÕĂÛð×àâÖüåņ

��¤]Ō

http://bit.ly/channy-jawsdays2017

@channyun