case study on aws javascript sdk and dynamodb

93
AWS JavaScript SDK and DynamoDB Cliff Chao-kuan Lu <[email protected] m> A Case Study: May 21 st ‘14, AWS User Group Taiwan

Upload: cliff-chao-kuan-lu

Post on 27-Aug-2014

609 views

Category:

Software


3 download

DESCRIPTION

Case study on how to manipulate AWS DynamoDB as well as IAM / STS with their JavaScript SDK in the Browser. I keep notes in memo and comments a lot, so please download and read it if you're really interested. It's a powerpoint, and if that's a problem, please let me know. I'll try convert it to PDF or some other open / free formats. Licensed under CC-BY / MIT (demo project).

TRANSCRIPT

Page 1: Case Study on AWS JavaScript SDK and DynamoDB

AWS JavaScript SDK

and DynamoDBCliff Chao-kuan Lu

<[email protected]>

A Case Study:

May 21st ‘14, AWS User Group Taiwan

Page 2: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

2

授權與格式說明 以超連結 (hyperlink) 代替引用 (attribution)

引用外部內容均◦已取得授權,或◦包含原始連結,並在合理範圍內引用

本文件原創內容以 CC-BY 3.0 釋出

Page 3: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

3

About cliffluFull-stack Web DeveloperAWS Solutions ArchitectNerd

about.me/clifflu

Page 4: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

4

About cliffluFull-stack Web DeveloperAWS Solutions ArchitectNerd

about.me/clifflu

Level Up !! Professional

Page 5: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

5

Intro◦AWS JS SDK◦IAM◦DynamoDB

Case Study◦Headless Poller

大綱

Page 6: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

6

Everything Changes

Page 7: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

7

AWS SDK for JavaScript in the Browser

這名字好長

Part 1.1

Page 9: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

9

官網 起自 AWS SDK for Node.js2.0 更名並支援 Browser

AWS JS SDK / Browser

Page 10: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

10

率先支援 ◦DynamoDB◦S3◦SNS◦SQS

猛烈 rc 中

服務

Page 11: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

11

AutoScaling, CloudFormation, CloudFront, Cloudsearch, CloudTrail, CloudWatch, DataPipeline, DirectConnect, DynamoDB, EC2, ElastiCache, ElasticBeanstalk, ElasticTranscoder, ELB, EMR, Glacier, IAM, ImportExport, Kinesis, OpsWorks, RDS, Redshift, Route53, S3, SES, SimpleDB, SNS, SQS, StorageGateway, STS, Support, SWF

服務

Page 13: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

13

IE…

Page 14: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

14

用例國防布

Page 15: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

15

SDK for◦PHP, Python, Node.js◦Java, .NET, ◦Ruby

AWS SDK for Android & iOSDec. 8th, 2010

親友

Page 16: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

16

多此一舉?

Page 17: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

17

Browser 直通 AWS◦減低對 API Server 的需求

根本

Page 18: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

18

機房、機器、網路、電力很難搞交給 Amazon Web Services 正好 那 EC2 Instance 呢?

反思

Page 19: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

19

EC2 各種麻煩◦Load Balancing◦Types◦Contracts◦AutoScaling Parameters Pattern

淵藪

Page 20: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

20

太多 Gotcha 每層服務、各層之間都要考慮 複雜度可能變 M x N

Scaling & HA

Page 21: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

21

範例example.com

ELBRoute53

CF

S3StaticConte

nt

SharedEnv

Auto Scaling group

AMI

AZ 2Web

ServersS1

Secondary

S2 Secondary

Config

AZ 1Web Servers

S1 Primary

S2 Primary

Config

AZ 3Web Servers

Config + Arbitor

mongod

Page 22: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

22

將麻煩留給 AWS◦第三方與服務端授權◦Scaling / HA

優點

Page 23: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

23

促成符合 SOA Pattern 之架構優點Web Page

HTML

CSSJS

Authenticate &

Authorize

Services

1. Auth Request

3. Authorized Identity

2. Access Token

Page 24: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

24

容易整合其他服務 IAM

STS: Security Token Service WIF: Web Identity Federation

DynamoDB, S3, … 自有服務, SOA 嘛 O.o/

優點

Page 25: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

25

減低將 Access / Secret Token 打入源碼的可能性優點

Page 26: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

26

API IAMServices

基石

Page 27: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

27

RESTful, SOAP (deprecated)Dev Tools 是好朋友API

Page 28: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

28

安全乃第一要務 不然會變成礦工 ˇˇ然後

Page 29: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

29

Identity and Access Management

AWS 權限樞紐

Part 1.2

Page 30: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

30

Root UserGroup / IAM UserRoles

◦AWS SVC◦X-Account◦IdP Web SAML

IAM: Identity

Page 31: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

31

Password MFA (Multi-factor authentication)

Access / Secret Key Pair X.509 certificate

3rd Party ◦SAML◦Web Identity Federation

IAM: Authentication

Page 32: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

32

IAM: Policy

Page 33: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

33

IAM: Policy Effect: Deny | Allow Action:

◦允許呼叫的 API Resource:

◦arn Principal

◦授權端限制 Condition

◦其他限制

Page 34: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

34

for rule in rules:◦Explicit Deny -> Deny◦Explicit Allow -> Allow◦Default Deny

稽核

Page 35: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

35

IAM: arn

格式◦冒號分隔◦首二節固定為 arn:aws◦Service◦Region◦Account◦Resource Identifier

Page 36: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

36

給路人甲的◦Access / Secret Key Pair◦Management Console 登入權限

IAM : STS

Page 37: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

37

第三方驗證,歡迎大家路過不用怕被關

Page 38: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

38

Web Identity Federation

Facebook, Google 可也

Page 39: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

39

只接受下列驗證機制◦表三家: Amazon, Facebook, Google◦SAML 說明列表 IAM Partners

限制

Page 40: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

40

Trust Relationships◦Identity Provider◦Client ID

Permissions

IAM Role for WIF

Page 41: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

41

用戶可透過第三方驗證與 IAM:STS, WIF 授予調用 AWS API 之權限

至此

Page 42: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

42

WIF PlaygroundLogin with amazonAWS Documentation

◦Using IAM◦Using STS◦SDK for JavaScript

參照

Page 43: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

43

DynamoDBManaged NoSQL Service

Part 1.3

Page 44: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

44

Managed NoSQL Service 取代 SimpleDB 三本柱

◦Scalable◦Available◦Fast

DynamoDB

Page 45: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

45

Data ModelScalar

◦Number{“N”: “300”}

◦String{“S”: “300”}

◦Binary{“B”: “BASE64”}

Multi-valued◦Number Set

{“NS”: [“1”,”2”,”3.14”]}◦String Set

{“SS”: [“A”,”b”]}◦Binary Set

{“BS”: [“BASE64”]}

Page 46: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

46

Document size: 64 KB (UTF-8) 5 LSIs / 5 GSIs per Table Min throughput: 1

Hash Key: 2 KB Range Key: 1KB

BatchGetItem: 1MB or 100 items BatchWriteItem: 1MB or 25 items

Limits

Page 47: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

47

Data Storage:◦約是 S3 10x

Provisioned Throughputs◦Reads : 4kb 循序可合併 Eventually Consistent 消耗減半

◦Writes : 1kb

Pricing

Page 48: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

48

Hash Key [opt] Range Key

Primary Key

hash: “a”

hash: “b”

{“hash”: “a”, “range”: “123”, …}{“hash”: “a”, “range”: “223”, …}{“hash”: “a”, “range”: “321”, …}

{“hash”: “b”, “range”: “3”, …}{“hash”: “b”, “range”: “22”, …}{“hash”: “b”, “range”: “321”, …}

Page 49: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

49

Primary Key

hash: “a”

hash: “b”

{“hash”: “a”, “range”: “123”, …}{“hash”: “a”, “range”: “223”, …}{“hash”: “a”, “range”: “321”, …}

{“hash”: “b”, “range”: “3”, …}{“hash”: “b”, “range”: “22”, …}{“hash”: “b”, “range”: “321”, …}

SortedSharded

Page 50: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

50

Index Name

Hash KeyRange KeyProjection

Shared Throughputs

Local Secondary Index

Page 51: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

51

Index Name / Hash / Range Key ◦比照 LSI◦不要求 uniqueness

有自己的 Throughputs

Eventual ConsistencyProjected Attributes

Global Secondary Index

Page 52: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

52

針對特定 Index (PK, LSI or GSI) 查詢 支援 Condition 支援 Filter 高效

Query

Page 53: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

53

現適用於 scan 及 query 消耗 throughput 不變 減低 DynamoDB <-> Caller 傳輸boto 僅 boto.dynamodb2 支援

Filter

Page 54: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

54

…Scan

Page 55: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

55

Upsert 需包含 Primary Key

Update: PATCHPut: POST (PUT)

支援 Conditional Operation

Put, Update

Page 56: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

56

支援 Conditional Operation 用於刪除 Item

若要刪除 Attribute ,需使用 updateItem

Delete

Page 57: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

57

“Expected” 可實現 MVCC pattern

配合 Document Atomicity 可模擬transactional behavior (2-Phase Commit)

Conditional Operation

Page 58: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

58

updateItem◦AttributeUpdates Value Action:

PUT DELETE ADD

Atomic Increment

Page 59: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

59

Fine-Grained Policies

Item

Attribute

Page 60: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

60

Fine-Grained Policies

Item◦“dynamodb:LeadingKeys”: [“xxx”]

Attribute◦“dynamodb:Attributes”: [“xxx”,”yyy”]

Page 61: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

61

While True: Item.save(expect=…)

1unit for Read / Write

More on Throughput

Page 62: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

62

Stats from DynamoDB

More on Throughput

Page 63: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

63

CloudWatch 顯示低階數據`Expect` 不消耗 Read Unit 允許 short burst

猜想

Page 64: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

64

了解 DynamoDB 的◦設計目標◦調校 Index Throughput

◦操作◦計費

小結

Page 65: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

65

Headless-Poller終於到正題了 !?

Part 2

Page 66: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

66

Phil: clifflu 你要不要講五月小聚

Henry: 聽說 Cloudflare + wordpress 會爆炸clifflu: 好啊,就講這個吧

緣起

Page 67: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

67

秒殺WP 看 location.href 重導頁面 講不滿三十分鐘 ˇˇ 只好調出備用題目

然後

Page 68: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

68

EC2 各種麻煩◦Load Balancing◦Types◦Contracts◦AutoScaling Parameters Pattern

回想

Page 69: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

69

就來演示不靠 EC2 的小服務吧

Page 70: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

70

使用服務◦IAM, S3 (DynamoDB), CF

Octopress / Jekyll !?Clone Ruby 好像很遜 >///<

寫個 Blog system ?

Page 71: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

71

最新功能最冷門功能最好 Manual 沒有

必須霸氣外露!

Page 72: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

72

前端◦Angular.js 潮◦OAuth 勁

後端◦從缺,帥

資料◦DynamoDB ,猛

線上投票

Page 73: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

73

前端◦Angular.js 潮◦OAuth 勁

後端◦從缺,帥

資料◦DynamoDB ,猛

線上投票需要 https

CloudFront

Page 74: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

74

申請 APP◦Amazon◦Facebook◦Google

將 access_token 透過 STS 轉換為 Access / Secret Key Pair

第三方授權

Page 75: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

75

欄位: uid, q_id, o_id

Primary Key◦(uid, q_id) : unique 確保每人每題一票◦選 uid 為 hash key Authentication Cardinality

DynamoDB

Page 76: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

76

updateItem (省略 callback)投票

Primary Key

Upsert

Return on Update

Page 77: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

77

updateItem權限

Hash Key

Page 78: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

78

正解: Worker ,但霸氣不足 需求:

◦uid 不外漏◦affordable◦快

計票

Page 79: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

79

建立 (q_id, o_id) 之 GSI禁止讀取 uid 欄位 取出列數即為總票數 循序讀取,節省 read capacity

計票: GSI

Page 80: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

80

LSI / GSI 必定包含 Primary Key 透過 Query / Scan 取得 Item 時,必須允許讀取 primary key

麻煩,天大的麻煩

Page 81: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

81

曙光

Page 82: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

82

運用 “ select”: “COUNT” 只計算票數,不取 Item body

循序讀取

計票: GSI

Page 83: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

83

Document 沒寫Boto 沒使用

◦dynamodb 實做了 query.count() ,透過取回 item 記數◦dynamodb2 未有類似功能

霸氣

Page 84: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

84

GSI Read Capacity, 1.5 !!??穩定

Page 85: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

85

權限

Page 86: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

86

計票

Page 87: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

87

終於

Page 88: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

88

參數Throughpu

tsRead Write

Table 1 5GSI 19 5

Page 89: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

89

參數Throughpu

tsRead Write

Table 1 5GSI 19 5

Total #Reads8kb data 消耗 1

投票消耗GSI ~ Table

~6.6 USD/mo

Page 90: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

90

改用 Batched Query ?◦不支援 select COUNT

優化流程◦資料更新◦後台計票◦操作介面◦PR please

改進?

Page 91: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

91

講完了今天沒有 bonus session

Page 92: Case Study on AWS JavaScript SDK and DynamoDB

04/07/2023CC-BY 3.0, Cliff Chao-kuan Lu <[email protected]>

92

Q & A回家記得念 Manual