(æ¬èšäºã¯ 2024/05/03ã«æçš¿ããã Introducing configurable maximum throughput for Amazon DynamoDB on-demand ã翻蚳ããèšäºã§ãã) Amazon DynamoDB ã¯ããããèŠæš¡ã®ã¢ãã³ãªã¢ããªã±ãŒã·ã§ã³ãéçºã§ãããµãŒãã¬ã¹ã® NoSQL ããŒã¿ããŒã¹ãµãŒãã¹ã§ããDynamoDB ãªã³ããã³ãã¢ãŒã ã¯ãã£ãã·ãã£ãã©ã³ãã³ã°ãªãã§æ¯ç§æ°çŸäžãã®ãªã¯ãšã¹ãã«å¯Ÿå¿ããããŒãã«ã«å¯ŸããŠãªã¯ãšã¹ããçºè¡ãããŠããªãæã«ã¯èªåçã«ãŒããžã¹ã±ãŒã«ããŠã³ãããããçã®ãµãŒãã¬ã¹ãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãããªã³ããã³ãã¢ãŒãã®ã·ã³ãã«ãªãªã¯ãšã¹ãåäœã®æéã¢ãã«ã§ã¯å®éã«äœ¿çšãããã£ãã·ãã£ã«å¯ŸããŠã®ã¿æéãçºçãããããã¢ã€ãã«ãã£ãã·ãã£ã«ã€ããŠå¿é
ããå¿
èŠããããŸãããããŒã¿ããŒã¹ã®ã¯ãŒã¯ããŒããäºæž¬ããããšãè€éãªæ°ããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå Žåãããã©ãã£ãã¯ãã¿ãŒã³ãäºæž¬ã§ããªããå€åããããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå ŽåããŸããåŸé課éå¶ã®ãµãŒãã¬ã¹ã¹ã¿ãã¯ã䜿çšããå Žåã«ããªã³ããã³ãã¢ãŒãã䜿çšããã客æ§ãå¢ããŠããŸãããªã³ããã³ãã¢ãŒãã䜿çšããããŒãã«ã®å ŽåãDynamoDB ã¯éèŠã«åãããŠã客æ§ã®ã¯ãŒã¯ããŒãã®å¢æžã«å¿ããŠããã«ã¹ã±ãŒãªã³ã°ããã¢ããªã±ãŒã·ã§ã³ããªã¯ãšã¹ãã«å¿çã§ããããã«ããŸãã åãªã³ããã³ãããŒãã«ã®ããã©ã«ãã®ã¹ã«ãŒãããã¬ãŒãã¯æ¯ç§ 40,000 åã®èªã¿åããªã¯ãšã¹ããšæ¯ç§ 40,000 åã®æžã蟌ã¿ãªã¯ãšã¹ãã§ãïŒ AWS ãµãŒãã¹ã¯ã©ãŒã¿ ãå©çšããŠå¢ããããšãã§ããŸãïŒãããã¯ã¢ã«ãŠã³ãå
ã®ãã¹ãŠã®ããŒãã«ã«äžåŸã«é©çšãããã¢ã«ãŠã³ãå
ã®ããŸããŸãªã¯ãŒã¯ããŒããèŠä»¶ã«åãããŠã«ã¹ã¿ãã€ãºããã調æŽããããšã¯ã§ããŸããããªã³ããã³ãã¢ãŒãã§ã¯ããŸããŸãªãã©ãã£ãã¯ãã¿ãŒã³ã«å¯Ÿå¿ããããã«å³åº§ã«ã¹ã±ãŒãªã³ã°ããããããæé©åãããŠããªãã£ãããæ¥ãã§æžãããã³ãŒãã«ãã£ãŠæ¥éãªã¹ã±ãŒã«ã¢ãããåŒãèµ·ãããªãœãŒã¹ãæ¶è²»ããŠããŸãããšã§ãããŒãã«ã¬ãã«ã®äœ¿çšéãã³ã¹ããæããããšãå°é£ã«ãªãå¯èœæ§ããããŸããã客æ§ãããã³ã¹ããšããã©ãŒãã³ã¹ã®æé©ãªãã©ã³ã¹ãå®çŸããããã«ããªã³ããã³ãã¢ãŒãã§ã®æè»æ§ãšè©³çްãªèšå®æ©èœãæ±ãã声ãé »ç¹ã«å¯ããããŠããŸãã æ¬æ¥ãåã
ã®ãªã³ããã³ãããŒãã«ãšé¢é£ããã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒGSIïŒã®æå€§èªã¿åããŸãã¯æžã蟌ã¿ïŒããã¯ãã®äž¡æ¹ïŒã¹ã«ãŒããããèšå®ã§ããæ°ãããªãã·ã§ã³æ©èœããªãªãŒã¹ããŸããããã«ãããããŒãã«ã¬ãã«ã®ã³ã¹ããšããã©ãŒãã³ã¹ã®ãã©ã³ã¹ãããç°¡åã«åãããšãã§ããŸããæå®ãããæå€§ã¹ã«ãŒããããè¶
ãããªã³ããã³ããªã¯ãšã¹ãã¯å¶éãããŸãããæå€§ã¹ã«ãŒãããèšå®ã¯ã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ã«åºã¥ããŠãã€ã§ã倿Žã§ããŸãããªã³ããã³ãã®æå€§ã¹ã«ãŒãããã¯ãæ°èŠããã³æ¢åã®ã·ã³ã°ã«ãªãŒãžã§ã³ããã³ãã«ããªãŒãžã§ã³ã®ããŒãã«ïŒã°ããŒãã«ããŒãã«ïŒãã€ã³ããã¯ã¹ãããã³ Amazon Simple Storage Service ïŒAmazon S3ïŒã¯ãŒã¯ãããŒããã®ããŒãã«ã®åŸ©å
æãšããŒã¿ã®ã€ã³ããŒãæã«ãèšå®ã§ããŸãã ãã®èšäºã§ã¯ãäžè¬çãªãŠãŒã¹ã±ãŒã¹ãããã€ã玹ä»ãããªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒããããå®è£
ããŠçµç¹ã®ç®æšãéæããæ¹æ³ã説æããŸãããŸãããã®æ©èœãä»ã® DynamoDB ãªãœãŒã¹ãšã©ã®ããã«é£æºãããã«ã€ããŠã説æããŸãã äžè¬çãªãŠãŒã¹ã±ãŒã¹ ãã®ã»ã¯ã·ã§ã³ã§ã¯ãªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒããããèšå®ããäžè¬çãªãŠãŒã¹ã±ãŒã¹ã«ã€ããŠèª¬æããŸãã 㪠ã³ããã³ãã¹ã«ãŒãããã³ã¹ãã®æé©å ïŒãªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒãããã®å€ãæè»ã«èšå®ã§ãããããã³ã¹ãã®äºæž¬ãšç®¡çãããã«é«ãŸããã客æ§ã¯ããŸããŸãªã¯ãŒã¯ããŒãèŠä»¶ãäºç®ã«åºã¥ããŠãæ¬çªç°å¢ãšéçºç°å¢å
šäœã§ãµãŒãã¬ã¹ãšã¯ã¹ããªãšã³ã¹ãããå¹
åºãæ¡çšã§ããããã«ãªããŸãã ã³ã¹ãæ¥å¢ã®é²æ¢ ïŒãªã³ããã³ãããŒãã«ã«æå€§ã¹ã«ãŒããããäºåã«å®çŸ©ããŠããããšã§ãããŒã ã¯æé©åãããŠããªãã³ãŒããäžæ£ãªããã»ã¹ããçºçããå¯èœæ§ã®ããèªã¿åããŸãã¯æžã蟌ã¿éã®å¶çºçãªæ¥å¢ãé²ãããšãã§ããŸãããã®å¯Ÿçã«ãããã¢ããªã±ãŒã·ã§ã³éçºã®åææ®µéãéçç£çãªç°å¢ã§ãã£ãŠããã³ã¹ããžã®åœ±é¿ãé©åã«ç®¡çããããšãã§ããŸãã API䜿çšéã®ç®¡ç ïŒã客æ§ãããããžã§ãã³ã°ããããã£ãã·ãã£ãããªã³ããã³ãã¢ãŒãã«åãæ¿ããã·ããªãªã§ã¯ããªã³ããã³ãã¹ã«ãŒãããã®äžéæ¶è²»ãããå€ãèšå®ããããšã§ãäºæããããŒãã«ã«å¯ŸããŠå®è¡ã§ããã¯ãŒã¯ããŒããã©ãã£ãã¯éã«ããŒã ãäžæãçªãããããšããªãããã«ããããšãã§ããŸããããã«ãããçµç¹ãäžå®æéå
ã§ãªãœãŒã¹ãéå°ã«æ¶è²»ããããšãé²ããŸãã ããŠã³ã¹ããªãŒã ãµãŒãã¹ã®ä¿è· ïŒã客æ§ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãµãŒãã¬ã¹ãšéãµãŒãã¬ã¹ãã¯ãããžãŒãå«ããããšãã§ããŸãããµãŒãã¬ã¹ã¢ãŒããã¯ãã£ã®éšåã¯éèŠã«åãããŠããã«æ¡åŒµãããŸããããã£ãã·ãã£ãåºå®åãããããŠã³ã¹ããªãŒã ã®ã³ã³ããŒãã³ãã¯éè² è·ãšãªãå¯èœæ§ããããŸãããªã³ããã³ãããŒãã«ã«æå€§ã¹ã«ãŒããããèšå®ããããšã§ã倧éã®ã€ãã³ããè€æ°ã®ããŠã³ã¹ããªãŒã ã³ã³ããŒãã³ãã«äŒæããããšã«ããäºæããªãå¯äœçšã®çºçããããšãé²ãããšãã§ããŸãã ã¯ããã« ãªã³ããã³ãããŒãã«ãäœæãããšãããã©ã«ãã§ã¯ãã¯ãŒã¯ããŒãã«å¯Ÿããæå€§ã¹ã«ãŒãããã®èšå®ã¯æå¹ã«ãªã£ãŠããŸãããããã¯ãããŒãã«æ¯ãããã³é¢é£ããã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ã«èšå®ã§ãããªãã·ã§ã³æ©èœã§ããããã«ãããèªã¿åããšæžãèŸŒã¿æå€§ã¹ã«ãŒããããåå¥ã«èšå®ããŠãç¹å®ã®èŠä»¶ã«åºã¥ããã¢ãããŒãã埮調æŽã§ããŸãããªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒãããã¯ãã¹ããšãã©ãŒãã§é©çšããããããä¿èšŒããããªã¯ãšã¹ãäžéã§ã¯ãªãç®æšãšããŠèããå¿
èŠããããŸãã ããŒã¹ããã£ãã·ã㣠ãåå ã§ãã¯ãŒã¯ããŒããæå®ãããæå€§ã¹ã«ãŒããããäžæçã«è¶
ããå¯èœæ§ããããŸãããã®æ©èœã䜿çšããã®ã«è¿œå ã®ã³ã¹ãã¯ãªãã AWS ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ãŒã¹ ïŒAWS CLIïŒã AWS ãããžã¡ã³ãã³ã³ãœãŒã« ãAWS SDKããŸã㯠AWS CloudFormation ã䜿çšããŠéå§ããããšãã§ããŸãã DynamoDB ã®ã³ã³ãœãŒã«ã䜿çšããŠãªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒããããæå¹ã«ããã«ã¯ãæ¬¡ã®æé ãå®è¡ããŸãã DynamoDB ã³ã³ãœãŒã«ã®ããã²ãŒã·ã§ã³ãã€ã³ã§ ããŒãã« ãéžæããŸãã ããŒãã«ã®äœæ ãéžæããŸãã ããŒãã«ã®ååãããŒãã£ã·ã§ã³ããŒãããã³ãœãŒãããŒãæå®ããŸãã ããŒãã«èšå® ã§ã èšå®ãã«ã¹ã¿ãã€ãº ãéžæããŸãã èªã¿åã/æžã蟌ã¿ãã£ãã·ãã£ã®èšå® ã«ã¯ã ãªã³ããã³ã ãéžæããŸãã æå€§ããŒãã«ã¹ã«ãŒããã ã§ãèªã¿åããæžã蟌ã¿ããŸãã¯ãã®äž¡æ¹ã®å¶éãæå®ããŸã (1 ïœ 40,000 ãªã¯ãšã¹ããŠããã)ã ããŒãã«ã®äœæ ãéžæããŸãã ãŸããCLIãSDKããŸã㯠AWS CloudFormation ã䜿çšããŠã MaxReadRequestUnits ãš MaxWriteRequestUnits ãå«ã OnDemandThroughput ãã©ã¡ãŒã¿ã䜿çšããŠãããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ã®ãªã³ããã³ãæå€§ã¹ã«ãŒããããèšå®ããããšãã§ããŸãããããã®ãã©ã¡ãŒã¿ã䜿çšãããšã 1 ã AccountMaxTableLevelReads ãŸã㯠AccountMaxTableLevelWrites ã®æå¹ç¯å²å
ã§ãèªã¿åããšæžã蟌ã¿ã®æå€§åäœãæå®ã§ããŸããå€ã -1 ã«èšå®ãããšå¶éãç¡å¹ã«ãªãããããªã³ããã³ãããŒãã«ã®ã¹ã«ãŒãããå¶éãå¿
èŠãšããªãã·ããªãªã«æè»ã«å¯Ÿå¿ã§ããŸãã ããŒãã«ãšã€ã³ããã¯ã¹ã®æå€§ã¹ã«ãŒãããèšå®ãåå¥ã«æ§æã§ããæè»æ§ããããŸããããã«ãç¹å®ã®èŠä»¶ã«åºã¥ããŠããããã®èšå®ãèªã¿åããæžã蟌ã¿ããŸãã¯ãã®äž¡æ¹ã«éžæçã«é©çšã§ããŸãããã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ã®æå€§ã¹ã«ãŒãããèšå®ã¯é¢é£ããããŒãã«ã®æå€§ã¹ã«ãŒãããèšå®ãšäžèŽãããããšããå§ãããŸããããã¯ãã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ãããŒãã«ã«æžã蟌ãŸããããŒã¿ã广çã«è€è£œã§ããããã«ããããã« MaxWriteRequestUnits ã«ãããŠç¹ã«éèŠãšãªããŸãã æ¬¡ã®äŸã¯ãCLI ã䜿çšããŠããŒãã«ãšã€ã³ããã¯ã¹ã®ãªã³ããã³ãæå€§ã¹ã«ãŒããããèšå®ããæ¹æ³ã瀺ããŠããŸãã aws dynamodb create-table \ --table-name MusicCollection \ --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S AttributeName=Genre,AttributeType=S \ --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ --billing-mode PAY_PER_REQUEST \ --on-demand-throughput MaxReadRequestUnits=500,MaxWriteRequestUnits=1000 \ --global-secondary-indexes \ "[ { \"IndexName\": \"My-Index\", \"KeySchema\": [ {\"AttributeName\":\"Genre\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"SongTitle\",\"KeyType\":\"RANGE\"} ], \"Projection\": { \"ProjectionType\":\"INCLUDE\", \"NonKeyAttributes\":[\"Artist\"] }, \"OnDemandThroughput\": { \"MaxReadRequestUnits\": 500, \"MaxWriteRequestUnits\": 1000 } } ]" { "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "Genre", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": 1704890776.114, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:eu-west-1:964157134968:table/MusicCollection", "TableId": "26b92833-aaf5-4e66-9d30-283d066785a7", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" }, "GlobalSecondaryIndexes": [ { "IndexName": "My-Index", "KeySchema": [ { "AttributeName": "Genre", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "Artist" ] }, "IndexStatus": "CREATING", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:eu-west-1:964157134968:table/MusicCollection/index/My-Index", "OnDemandThroughput": { "MaxReadRequestUnits": 500, "MaxWriteRequestUnits": 1000 } } ], "DeletionProtectionEnabled": false, "OnDemandThroughput": { "MaxReadRequestUnits": 500, "MaxWriteRequestUnits": 1000 } } } ã°ããŒãã«ããŒãã« ãªã³ããã³ãã¢ãŒãã®æå€§ã¹ã«ãŒããããèšå®ããŠã°ããŒãã«ããŒãã«ã®å®¹éã管çã§ããŸãããã㯠ProvisionedThroughput ãšåæ§ã®ã»ãã³ãã£ã¯ã¹ã«åŸããŸããïŒã€ã®ã°ããŒãã«ããŒãã«ã¬ããªã«ã§èªã¿åããŸãã¯æžã蟌ã¿ïŒãããã¯ãã®äž¡æ¹ïŒã®æå€§ã¹ã«ãŒãããèšå®ãæå®ãããšãåãæå€§ã¹ã«ãŒãããèšå®ããã¹ãŠã®ã¬ããªã«ããŒãã«ã«èªåçã«é©çšãããŸããããŒã¿ãé©åã«ã¬ããªã±ãŒã·ã§ã³ããããã«ã¯ãã°ããŒãã«ããŒãã«å
ã®ã¬ããªã«ããŒãã«ãšã»ã«ã³ããªã€ã³ããã¯ã¹ã«åäžã®æžã蟌ã¿ã¹ã«ãŒãããèšå®ããããŠããããšãéèŠã§ãã UpdateTable API ã«å°å
¥ããã OnDemandThroughputOverride ãã©ã¡ãŒã¿ãŒã䜿çšãããšãã¬ããªã«ããšã«åå¥ã®èªã¿åãå¶éãèšå®ã§ãããããä»ã®ã¬ããªã«èšå®ããæè»ã«ç¬ç«ã§ããŸããã°ããŒãã«ããŒãã«ã®ãã£ãã·ãã£èšå®ã«ã€ããŠè©³ããã¯ã ã°ããŒãã«ããŒãã«ã管çããããã®ãã¹ããã©ã¯ãã£ã¹ãšèŠä»¶ã¬ã€ã ãåç
§ããŠãã ããã æ¬¡ã®äŸã¯ãCLI ã䜿çšããŠã°ããŒãã«ããŒãã«ã¬ããªã«ã® MaxReadRequestUnits ã®ãªãŒããŒã©ã€ãã远å ããæ¹æ³ã瀺ããŠããŸãã aws dynamodb update-table \ --table-name MusicCollection \ --replica-updates '[ { "Create": { "RegionName": "us-west-2", "OnDemandThroughputOverride": { "MaxReadRequestUnits": 100 } } } ]' { "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "UPDATING", "CreationDateTime": 1710345744.514, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:eu-west-1:964157134968:table/MusicCollection", "TableId": "4219b238-c3d4-472e-aba3-82ac4e5554ce", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST", "LastUpdateToPayPerRequestDateTime": 1710345744.514 }, "StreamSpecification": { "StreamEnabled": true, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "LatestStreamLabel": "2024-03-13T16:03:49.907", "LatestStreamArn": "arn:aws:dynamodb:eu-west-1:964157134968:table/MusicCollection/stream/2024-03-13T16:03:49.907", "GlobalTableVersion": "2019.11.21", "Replicas": [ { "RegionName": "us-west-2", "ReplicaStatus": "ACTIVE" } ], "DeletionProtectionEnabled": false, "OnDemandThroughput": { "MaxReadRequestUnits": 500, "MaxWriteRequestUnits": 1000 } } } ããŒãã«ã®æŽæ°ãå®äºãããšã DescribeTable å¿çã«ã¯èªã¿åãçšã®ãªãŒããŒã©ã€ããããå€ãå«ãŸããããã«ãªããŸãã ⊠"Replicas": [ { "RegionName": "us-west-2", "ReplicaStatus": "ACTIVE", "OnDemandThroughputOverride": { "MaxReadRequestUnits": 100 } } ] ⊠S3 ã¯ãŒã¯ãããŒããã®åŸ©å
ãšã€ã³ããŒã DynamoDB ã®ããã¯ã¢ãããšåŸ©å
æ©èœã¯ããªã³ããã³ãã®æå€§ã¹ã«ãŒãããããµããŒãããŸããããã¯ã¢ããã¯äœææã®ã¹ã«ãŒãããèšå®ãä¿æããæåã§äžæžãããªãéãã埩å
æã«æ°ããããŒãã«ã«é©çšãããŸãã ImportTable ã䜿çšã㊠Amazon S3 ããããŒã¿ãã€ã³ããŒãããå Žåã CreateTable ãªãã¬ãŒã·ã§ã³ã§æäŸãããæè»æ§ãšåæ§ã«ããªã³ããã³ãã®æå€§ã¹ã«ãŒãããå¶éãæå®ãããªãã·ã§ã³ããããŸãã 埩å
ãŸãã¯ã€ã³ããŒãã« OnDemandThroughput ãæå®ããŠãããããã®æäœã®å®è¡æéã«ã¯åœ±é¿ããŸããã ã¢ãã¿ãªã³ã°ãã¢ã©ãŒãããã³ãã©ãã«ã·ã¥ãŒãã£ã³ã° ãªã³ããã³ãããŒãã«ã®æå€§ããŒãã«ã¹ã«ãŒããããæå®ããåã«ãã¯ãŒã¯ããŒããšãã©ãã£ãã¯ãçè§£ããããšãéèŠã§ããAWS ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãã¿ãªã³ã°ãšçè§£ã«åœ¹ç«ã€ããŸããŸãªãµãŒãã¹ããããŸããããšãã°ã Amazon CloudWatch ã¯ãã°ãã¡ããªãã¯ã¹ãã€ãã³ããšããŠã¢ãã¿ãªã³ã°ããŒã¿ãåéããAWS ã®ãªãœãŒã¹ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãäžå
çã«ææ¡ã§ããããã«ããŸãã ã¢ããªã±ãŒã·ã§ã³ã广çã«ã¢ãã¿ãªã³ã° ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®éåžžã®ç¶æ
ãææ¡ã§ããŸããã¯ãŒã¯ããŒããçè§£ããããã¬ãŒãå¶éã«æé©ãªããŒãã«ã倿ã§ããŸããã¢ãã¿ãªã³ã°ãç°¡çŽ åã«ããããã«ãCloudWatch 㯠OnDemandMaxReadRequestUnits ãš OnDemandMaxWriteRequestUnits ã®ã¡ããªã¯ã¹ãæäŸããŠããŸãããããã®ã¡ããªãã¯ã¹ã¯ïŒåééã§çºè¡ããã ProvisionedReadCapacityUnits ãš ProvisionedWriteCapacityUnits ã®ã¡ããªã¯ã¹ã®é »åºŠãšäžèŽããŸãã ãªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒãããã¯ãã¹ããšãã©ãŒãããŒã¹ã§é©çšããããããä¿èšŒããããªã¯ãšã¹ãã®äžéã§ã¯ãªãç®æšãšããŠèããå¿
èŠããããŸããããŒã¹ããã£ãã·ãã£ãåå ã§ãã¯ãŒã¯ããŒããæå®ãããæå€§ã¹ã«ãŒããããäžæçã«è¶
ããå¯èœæ§ããããŸããå Žåã«ãã£ãŠã¯ãDynamoDB ã¯ããŒã¹ããã£ãã·ãã£ãŒã䜿çšããŠãããŒãã«ã®ã¹ã«ãŒãããèšå®ãè¶
ããèªã¿åããŸãã¯æžã蟌ã¿ã«å¯Ÿå¿ããŸããããŒã¹ããã£ãã·ãã£ãŒã䜿çšãããšãã¹ããããªã³ã°ãããŠããå¯èœæ§ã®ããäºæããªãèªã¿èŸŒã¿ãŸãã¯æžã蟌ã¿ãªã¯ãšã¹ãã«å¯ŸããŠäžæçã«å¯Ÿå¿ã§ããŸãã詳现ã«ã€ããŠã¯ã ããŒã¹ããã£ãã·ãã£ã广çã«äœ¿çšãã ãåç
§ããŠãã ããã ã¢ããªã±ãŒã·ã§ã³ããªã³ããã³ãããŒãã«ã«èšå®ããæå€§èªã¿åããŸãã¯æžã蟌ã¿ã¹ã«ãŒããããè¶
ãããšãDynamoDB 㯠ThrottlingException ã¡ãã»ãŒãžã§ç€ºãããããã«ããããã®ãªã¯ãšã¹ãã®ã¹ããããªã³ã°ãéå§ããã·ã¹ãã ãäºåã«èšå®ãããã¹ã«ãŒãããèšå®ãæºæ ããŠããããšã瀺ããŸãããªã³ããã³ãã®æå€§ã¹ã«ãŒãããå¶éãè¶
ããŠã¹ããããªã³ã°ããå ŽåããThroughput exceeds the maximum OnDemandThroughput configured on table or indexããšããã¡ãã»ãŒãžãè¿ãããŸããäŸå€ã¡ãã»ãŒãžã¯ãã®æ©èœå°çšã®ãã®ã§ãã¹ããããªã³ã°ããŠããã€ã³ã¹ã¿ã³ã¹ããã°ããèå¥ããããã«æ©èœããŸããDynamoDB ã®äŸå€ã«é¢ãã詳现ã«ã€ããŠã¯ã DynamoDB ã§ã®ãšã©ãŒåŠç ãåç
§ããŠãã ããã ãŸãšã ãã®èšäºã§ã¯ããªã³ããã³ãããŒãã«ã®æå€§ã¹ã«ãŒããããèšå®ããŠãäžèŠãª DynamoDB ã¹ã«ãŒãããã³ã¹ãã®æŽèµ°ãåé¿ããããŠã³ã¹ããªãŒã ã¢ããªã±ãŒã·ã§ã³ãžã®åœ±é¿ãæããæ¹æ³ã瀺ããŸããããã®æ©èœã䜿çšããã®ã«è¿œå ã³ã¹ãã¯ããããŸãããAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãAWS CLIãAWS SDKãDynamoDB APIããŸã㯠AWS CloudFormation ã䜿çšããŠéå§ã§ããŸãã詳现ã«ã€ããŠã¯ã DynamoDB éçºè
ã¬ã€ã ãåç
§ããŠãã ããã èè
ã«ã€ã㊠Lee Hannigan ã¯ãã¢ã€ã«ã©ã³ãã®ãããŽãŒã«ãæ ç¹ãšããã·ã㢠DynamoDB ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããããã°ããŒã¿ãšåæãã¯ãããžãŒã®åŒ·åºãªåºç€ã«æ¯ãããã忣ã·ã¹ãã ã«é¢ããè±å¯ãªå°éç¥èãæã£ãŠããŸããDynamoDB ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããšããŠã DynamoDB ã®æ©èœã掻çšããã¯ãŒã¯ããŒãã®èšèšãè©äŸ¡ãæé©åã«é¢ããŠã客æ§ãæ¯æŽããããšã«åªããŠããŸãã Mazen Ali 㯠AWS ã® Amazon DynamoDB ã®ããªã³ã·ãã«ãããã¯ããããŒãžã£ãŒã§ããã¥ãŒãšãŒã¯åžãæ ç¹ãšããŠããŸãããããã¯ããããžã¡ã³ããšãã¯ãããžãŒé¢é£ã®åéã§è±å¯ãªçµæŽãæã¡ãã客æ§ã®èŠä»¶ãçè§£ãããããã¯ãæŠç¥ãå®çŸ©ããã¯ãã¹ãã¡ã³ã¯ã·ã§ãã«ããŒã ãšååããŠé
åçãªãšã¯ã¹ããªãšã³ã¹ãæ§ç¯ããããšã«æ
ç±ã泚ãã§ããŸããä»äºä»¥å€ã§ã¯ãæ
è¡ãèªæžãã¹ããŒããã€ãã³ã°ã楜ããã§ããŸãã