Slide 1

Slide 1 text

%FWFMPQNFOUPGBMJWFDPNNFSDF TZTUFNVTJOHTFSWFSMFTTBSDIJUFDUVSF XJUIBGPDVTPO"NQMJGZ"QQ4ZOD POQSPEVDUJPO +"841"/,3"5*0/ FBSMZJOUIFNPSOJOH ,B[VL.JVSB

Slide 2

Slide 2 text

Hokkaido Television Broadcasting Co., Ltd. Kazuki Miura(35) JAWS-UG Sapporo Media-JAWS JP_Stripes Sapporo Introduction ASA(Morning) • In-house Development • Technology Selection • Architecture Design • Frontend/Backend Development • Product Management • Project Management • Respond to Inquiries

Slide 3

Slide 3 text

amplify-cli See the documentation for details. https://docs.amplify.aws/

Slide 4

Slide 4 text

Live Commerce Service Shop with watching Video Requirement 0. NO VPC 1. Stable Video Distribution 2. Don’t use brower reload 3. Don’t open another page 4. 10,000 viewers at the same time

Slide 5

Slide 5 text

AWS Amplify Frontend Amazon CloudFront AWS Elemental MediaPackage AWS Elemental MediaLive AWS Elemental MediaLink DynamoDB AWS AppSync API Gateway AWS Lambda HLS / MPEG-DASH Video Switcher Auido Mixer Step Functions DynamoDB DynamoDB API Gateway OIDC CloudFront Kinesis Data Streams Kinesis Data Firehose ElasticSearch Service Viewer Count S3 HD-SDI A lot of Cameras Event Site (Physical)

Slide 6

Slide 6 text

AWS Amplify Frontend Amazon CloudFront AWS Elemental MediaPackage AWS Elemental MediaLive AWS Elemental MediaLink DynamoDB AWS AppSync API Gateway AWS Lambda HLS / MPEG-DASH Video Switcher Auido Mixer Step Functions DynamoDB DynamoDB API Gateway OIDC CloudFront Kinesis Data Streams Kinesis Data Firehose ElasticSearch Service Viewer Count S3 HD-SDI A lot of Cameras Event Site (Physical)

Slide 7

Slide 7 text

"84 7JEFP 1PXFS

Slide 8

Slide 8 text

'BO 'BO 'BO

Slide 9

Slide 9 text

AWS Amplify Frontend Amazon CloudFront AWS Elemental MediaPackage AWS Elemental MediaLive AWS Elemental MediaLink DynamoDB AWS AppSync API Gateway AWS Lambda HLS / MPEG-DASH Video Switcher Auido Mixer Step Functions DynamoDB DynamoDB API Gateway OIDC CloudFront Kinesis Data Streams Kinesis Data Firehose ElasticSearch Service Viewer Count S3 HD-SDI A lot of Cameras Event Site (Physical)

Slide 10

Slide 10 text

AWS Amplify Frontend Amazon CloudFront AWS Elemental MediaPackage AWS Elemental MediaLive AWS Elemental MediaLink DynamoDB AWS AppSync API Gateway AWS Lambda HLS / MPEG-DASH Video Switcher Auido Mixer Step Functions DynamoDB DynamoDB API Gateway OIDC CloudFront Kinesis Data Streams Kinesis Data Firehose ElasticSearch Service Viewer Count S3 HD-SDI A lot of Cameras Event Site (Physical) *OTJEFUIFEPUUFEMJOF 6TJOHBNQMJGZDMJPOMZTDIFNBEF fi OJUJPO 8IBUBNQMJGZDMJDBOUEP XFDBOUEP

Slide 11

Slide 11 text

Amplify Frontend DynamoDB AWS AppSync REST API AWS Lambda Step Functions DynamoDB DynamoDB HTTP API + Cache OIDC OIDC 6OBVUIPSJ[FE

Slide 12

Slide 12 text

Amplify Frontend REST API AWS Lambda DynamoDB + Cache 6OBVUIPSJ[FE 'PSVTFSTCFGPSFMPHHJOHJO (PPETJUFNEBUB

Slide 13

Slide 13 text

Amplify Frontend DynamoDB AWS AppSync OIDC 0*%$"VUIFOUJDBUJPO 6TFSEBUBBOE(PPETJUFNEBUB

Slide 14

Slide 14 text

Amplify Frontend Step Functions DynamoDB HTTP API OIDC 0*%$"VUIFOUJDBUJPO 1BZNFOUBOE*OWFOUPSZ%BUB

Slide 15

Slide 15 text

GraphQL ① Query • Get/List ② Mutation • Create/Update/Delete ③ Subscription • push update to client AWS AppSync

Slide 16

Slide 16 text

GraphQL ① Query • Get/List ② Mutation • Create/Update/Delete ③ Subscription • push update to client AWS AppSync

Slide 17

Slide 17 text

When Out of Stock I want to disable button without reloading *OTUPDL 0VUPGTUPDL "EEUP$BSU 0VUPG4UPDL without reloading

Slide 18

Slide 18 text

Amplify DynamoDB AWS AppSync Step Functions React Lambda

Slide 19

Slide 19 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock

Slide 20

Slide 20 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ InventroyStock == 0

Slide 21

Slide 21 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ InventroyStock == 0 ᶅɹmutation outOfStockFlg=true

Slide 22

Slide 22 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ InventroyStock == 0 ᶅɹmutation outOfStockFlg=true ᶆɹsubscription outOfStockFlg=true

Slide 23

Slide 23 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ InventroyStock == 0 ᶅɹmutation outOfStockFlg=true ᶆɹsubscription outOfStockFlg=true ᶇɹquery getInventoryTable Refetch

Slide 24

Slide 24 text

LIMIT

Slide 25

Slide 25 text

DynamoDB AWS AppSync Frontend 10,000 Users 10,000 access 10,000 Read AT THE SAME TIME ᶆɹsubscription outOfStockFlg=true ᶇɹquery getInventoryTable Refetch

Slide 26

Slide 26 text

DynamoDB AWS AppSync Frontend 10,000 Users 10,000 access 10,000 Read Refetch Throttle rate per GraphQL API* 1,000 count/second Soft limit Hot partition 3,000 RCUs/second Hard limit LIMIT * In the case of subscription, it is counted when the session is opened.

Slide 27

Slide 27 text

DynamoDB AWS AppSync Frontend 10,000 Users 10,000 access Refetch Throttle rate per GraphQL API* 1,000 count/second Soft limit LIMIT * In the case of subscription, it is counted when the session is opened.

Slide 28

Slide 28 text

DynamoDB AWS AppSync Frontend 3,000 Users 3,000 access 3,000 Read Refetch Throttle rate per GraphQL API 1,000 count/second Soft limit Hot partition 3,000 RCUs/second Hard limit LIMIT 🔥 🔥 🔥

Slide 29

Slide 29 text

😱 One week before the release

Slide 30

Slide 30 text

How to fi x

Slide 31

Slide 31 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ InventroyStock == 0 ᶅɹmutation outOfStockFlg=true ᶆɹsubscription outOfStockFlg=true ᶇɹquery getInventoryTable Refetch

Slide 32

Slide 32 text

Amplify DynamoDB AWS AppSync ᶃDecrease Inventroy stock ᶄ All Inventory Data ᶅɹmutation All Inventory Data ᶆɹsubscription All Inventory Data Refetch 1BTTBMMEBUBOFFEFEGPSEJTQMBZUPUIFGSPOUFOEBTTVCTDSJQUJPOEBUB 4UPQ3FGFUDI

Slide 33

Slide 33 text

Let's do the load test as soon as possible.

Slide 34

Slide 34 text

Until two years ago we had never developed one.

Slide 35

Slide 35 text

The reason why… • Development starts for the fi rst time for 2 years ago. • Everyone had no development experiment. • We wanted to Develop!!! • We have to increase what we don’t have to make.

Slide 36

Slide 36 text

• VPC • IPv4??? Security Group? ACL? • EC2 • Toooo many instance type!! • Toooo many OS type!! • I Can’t choose one… • RDS • SQL??? • Toooo many instance type!! • Linux • Toooo many directories I don’t know. • Toooo many things I didn't prepare myself.

Slide 37

Slide 37 text

😱 Too dif fi cult.

Slide 38

Slide 38 text

%PZPVLOPX4FSWFSMFTT 53:

Slide 39

Slide 39 text

We Can Focus only on the CODE.

Slide 40

Slide 40 text

JAWS-UG had made us Engineers.

Slide 41

Slide 41 text

THANK YOU!