[{"data":1,"prerenderedAt":228},["ShallowReactive",2],{"content-svc-dynamodb-guides-using-dynamodbto-build-webapps-02-apprunnerdemo":3},{"markdown":4,"frontMatterAttributes":5,"bodyRaw":17,"menu":18,"menuType":224,"isCollapseableMenu":21,"nextDocItem":55,"previousDocItem":33,"contributorPaths":225,"contentName":227,"slug":51,"readingTime":26},"\u003Ch1>AWS AppRunner Demo\u003C\u002Fh1>\n\u003Cp>Let&#39;s host a NodeJS application in the cloud from a GitHub repository using AWS AppRunner.\u003C\u002Fp>\n\u003Ch2>Service Source Types\u003C\u002Fh2>\n\u003Cp>AWS App Runner offers two different types of service sources: \u003Cstrong>source code\u003C\u002Fstrong> and \u003Cstrong>source image\u003C\u002Fstrong>. Regardless of the source type, App Runner takes care of starting, running, scaling, and load balancing your service. You can use the CI\u002FCD capability of App Runner to track changes to your source image or code. When App Runner discovers a change, it automatically builds (for source code) and deploys the new version to your App Runner service.\u003C\u002Fp>\n\u003Cp>To learn more about these two service types, please refer to the \u003Ca href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fapprunner\u002Flatest\u002Fdg\u002Fwhat-is-apprunner.html\">AWS App Runner documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Source Code-Based Services\u003C\u002Fh2>\n\u003Cp>For this demo, we will focus on services based on source code. Source code is the application code that App Runner builds and deploys for you. You need to point App Runner to a source code repository with a supported runtime. App Runner will then build an image based on the base image of the runtime and your application code. Finally, it will start a service that runs a container based on this image. You don&#39;t need to provide container configuration or build instructions such as a Dockerfile.\u003C\u002Fp>\n\u003Cp>Check the \u003Ca href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fapprunner\u002Flatest\u002Fdg\u002Fservice-source-code.html\">supported runtimes\u003C\u002Fa> for more information.\u003C\u002Fp>\n\u003Ch2>Demo Instructions\u003C\u002Fh2>\n\u003Cp>In this demo, you can use a NodeJS app that is stored in a GitHub repository. AppRunner will automatically build, deploy, and host it in the cloud for you.\u003C\u002Fp>\n\u003Cp>You have two options to perform this demo:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>Console\u003C\u002Fstrong>: You can use the AWS Management Console to follow along. The video below demonstrates how to use the console for this demo.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Infrastructure as Code\u003C\u002Fstrong>: The video demonstrates how to perform the demo using AWS CDK. You can access the NodeJS application code from the GitHub repository \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fnodeexpress-backend-app\">here\u003C\u002Fa>. For the AWS CDK infrastructure code used in the video, you can find it \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fcdk-migrated-app-infra\u002Ftree\u002Fapprunner\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n",{"title":6,"order":7,"youtubeVideoID":8,"resources":9},"AWS AppRunner Demo",3,"jOwQdXbmHC4",[10,14],{"link":11,"text":12,"type":13},"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fnodeexpress-backend-app","NodeJS application code","code",{"link":15,"type":13,"text":16},"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fcdk-migrated-app-infra\u002Ftree\u002Fapprunner","AWS CDK infrastructure code","# AWS AppRunner Demo\n\nLet's host a NodeJS application in the cloud from a GitHub repository using AWS AppRunner.\n\n## Service Source Types\n\nAWS App Runner offers two different types of service sources: **source code** and **source image**. Regardless of the source type, App Runner takes care of starting, running, scaling, and load balancing your service. You can use the CI\u002FCD capability of App Runner to track changes to your source image or code. When App Runner discovers a change, it automatically builds (for source code) and deploys the new version to your App Runner service.\n\nTo learn more about these two service types, please refer to the [AWS App Runner documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Fapprunner\u002Flatest\u002Fdg\u002Fwhat-is-apprunner.html).\n\n## Source Code-Based Services\n\nFor this demo, we will focus on services based on source code. Source code is the application code that App Runner builds and deploys for you. You need to point App Runner to a source code repository with a supported runtime. App Runner will then build an image based on the base image of the runtime and your application code. Finally, it will start a service that runs a container based on this image. You don't need to provide container configuration or build instructions such as a Dockerfile.\n\nCheck the [supported runtimes](https:\u002F\u002Fdocs.aws.amazon.com\u002Fapprunner\u002Flatest\u002Fdg\u002Fservice-source-code.html) for more information.\n\n## Demo Instructions\n\nIn this demo, you can use a NodeJS app that is stored in a GitHub repository. AppRunner will automatically build, deploy, and host it in the cloud for you.\n\nYou have two options to perform this demo:\n\n1. **Console**: You can use the AWS Management Console to follow along. The video below demonstrates how to use the console for this demo.\n\n2. **Infrastructure as Code**: The video demonstrates how to perform the demo using AWS CDK. You can access the NodeJS application code from the GitHub repository [here](https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fnodeexpress-backend-app). For the AWS CDK infrastructure code used in the video, you can find it [here](https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fcdk-migrated-app-infra\u002Ftree\u002Fapprunner).\n",[19,30,52,86,121,178,216],{"title":20,"collapsible":21,"isCollapsed":22,"content":23},"Introduction",false,true,[24],{"title":20,"order":25,"time":26,"path":27,"id":28,"link":29},1,"2 min","introduction","introduction.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002Fintroduction",{"title":31,"collapsible":21,"isCollapsed":21,"content":32},"1. Hosting Your Application with App Runner",[33,45],{"title":34,"order":35,"youtubeVideoID":36,"resources":37,"time":26,"path":42,"id":43,"link":44},"What is AWS App Runner?",2,"z-RywG7Xfk8",[38],{"link":39,"text":40,"type":41},"https:\u002F\u002Faws.amazon.com\u002FApp Runner\u002F","AWS App Runner","service","01-apprunnerintro","01-apprunnerintro.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F01-apprunnerintro",{"title":6,"order":7,"youtubeVideoID":8,"resources":46,"time":26,"path":49,"id":50,"link":51},[47,48],{"link":11,"text":12,"type":13},{"link":15,"type":13,"text":16},"02-apprunnerdemo","02-apprunnerdemo.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F02-apprunnerdemo",{"title":53,"collapsible":21,"isCollapsed":22,"content":54},"2.Understanding DynamoDB Basics",[55,71],{"title":56,"order":57,"youtubeVideoID":58,"resources":59,"time":67,"path":68,"id":69,"link":70},"Amazon DynamoDB 101",4,"tkj2r7kFcpM",[60,63],{"link":61,"text":62,"type":41},"https:\u002F\u002Faws.amazon.com\u002Fdynamodb\u002F","Amazon DynamoDB service page",{"link":64,"type":65,"text":66},"https:\u002F\u002Faws.amazon.com\u002Fdynamodb\u002Fpricing\u002F","pricing","Amazon DynamoDB pricing","3 min","03-dynamodb-intro","03-dynamodb-intro.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F03-dynamodb-intro",{"title":72,"order":73,"youtubeVideoID":74,"resources":75,"time":26,"path":83,"id":84,"link":85},"Amazon DynamoDB under the hood",5,"ZhXqNcbR4n0",[76,80],{"link":77,"text":78,"type":79},"https:\u002F\u002Fwww.usenix.org\u002Fconference\u002Fatc22\u002Fpresentation\u002Felhemali","Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service","article",{"link":81,"type":79,"text":82},"https:\u002F\u002Fwww.theregister.com\u002F2022\u002F11\u002F14\u002Fmeet_the_database_that_supports\u002F","Meet the database that supports Amazon.com","04-dynamodb-underthehood","04-dynamodb-underthehood.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F04-dynamodb-underthehood",{"title":87,"collapsible":21,"isCollapsed":22,"content":88},"3.Designing Your DynamoDB Table",[89,100,112],{"title":90,"order":91,"youtubeVideoID":92,"resources":93,"time":67,"path":97,"id":98,"link":99},"Is DynamoDB the right database for you?",6,"TpeP3Cmz5PE",[94],{"link":95,"text":96,"type":79},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdatabase\u002Fhow-to-determine-if-amazon-dynamodb-is-appropriate-for-your-needs-and-then-plan-your-migration\u002F","How to determine if Amazon DynamoDB is appropriate for your needs, and then plan your migration","05-dynamo-rightforyou","05-dynamo-rightforyou.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F05-dynamo-rightforyou",{"title":101,"order":102,"youtubeVideoID":103,"resources":104,"time":26,"path":109,"id":110,"link":111},"Introduction to Single Table Design",7,"lWCch8GEK4E",[105],{"link":106,"text":107,"type":108},"https:\u002F\u002Fyoutu.be\u002FQ6-qWdsa8a4","7 Common DynamoDB Patterns for Modeling and Building an App with Alex De Brie","video","06-dynamodb-singletable","06-dynamodb-singletable.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F06-dynamodb-singletable",{"title":113,"order":114,"youtubeVideoID":115,"resources":116,"time":26,"path":118,"id":119,"link":120},"Design a DynamoDB table with Single Table Design",8,"JLZOI8patlw",[117],{"link":106,"text":107,"type":108},"07-dynamodb-singletable-modeling","07-dynamodb-singletable-modeling.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F07-dynamodb-singletable-modeling",{"title":122,"collapsible":21,"isCollapsed":22,"content":123},"4.Implementing DynamoDB in Your Application",[124,135,145,164],{"title":125,"order":126,"youtubeVideoID":127,"resources":128,"time":26,"path":132,"id":133,"link":134},"Provision Amazon DynamoDB table and indexes with AWS CDK",9,"4o1KzB2AAk4",[129],{"link":130,"text":131,"type":13},"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fcdk-migrated-app-infra\u002Ftree\u002FdynamoDB\u002Flib","AWS CDK code","08-dynamo-cdkinfra","08-dynamo-cdkinfra.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F08-dynamo-cdkinfra",{"title":136,"order":137,"youtubeVideoID":138,"resources":139,"time":67,"path":142,"id":143,"link":144},"Code your application",10,"9ftDmRMEfDM",[140],{"link":11,"text":141,"type":13},"Get the code","09-dynamodb-app","09-dynamodb-app.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F09-dynamodb-app",{"title":146,"order":147,"youtubeVideoID":148,"resources":149,"time":67,"path":161,"id":162,"link":163},"How to Migrate Data to DynamoDB?",11,"qEQqL3KiOOc",[150,154,158],{"link":151,"text":152,"type":153},"https:\u002F\u002Fdocs.aws.amazon.com\u002Famazondynamodb\u002Flatest\u002Fdeveloperguide\u002FS3DataImport.HowItWorks.html","DynamoDB data import from Amazon S3: how it works","docs",{"link":155,"text":156,"type":157},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdatabase\u002Fperforming-a-live-migration-from-a-mongodb-cluster-to-amazon-dynamodb\u002F","Performing a Live Migration from a MongoDB Cluster to Amazon DynamoDB","blog",{"link":159,"type":108,"text":160},"https:\u002F\u002Fyoutu.be\u002F_6ym3IRrRxo","🆕 Step functions Distributed map - Run 10k parallel serverless executions!","10-dynamodb-migrate","10-dynamodb-migrate.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F10-dynamodb-migrate",{"title":165,"order":166,"youtubeVideoID":36,"resources":167,"time":26,"path":175,"id":176,"link":177},"Deploy and Load Test",12,[168,169,172],{"link":130,"text":141,"type":13},{"link":170,"type":108,"text":171},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=B0pDPSQcAf4","Load test your serverless applications | Run Artillery in a Lambda function",{"link":173,"type":108,"text":174},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0VNKHIcQ5wk","Building Amazon CloudWatch dashboards with AWS CDK","11-dynamodb-test","11-dynamodb-test.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F11-dynamodb-test",{"title":179,"collapsible":21,"isCollapsed":22,"content":180},"5.Adding Event-Driven Characteristics",[181,189,203],{"title":182,"order":183,"youtubeVideoID":184,"time":185,"path":186,"id":187,"link":188},"DynamoDB Streams",13,"M0GJzjsw5So","1 min","12-dynamo-streams","12-dynamo-streams.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F12-dynamo-streams",{"title":190,"order":191,"youtubeVideoID":192,"resources":193,"time":185,"path":200,"id":201,"link":202},"Acting on Stream Events",14,"RL0l2Wz3deQ",[194,197],{"link":195,"text":196,"type":13},"https:\u002F\u002Fgithub.com\u002Fmavi888\u002Fcdk-migrated-app-infra","Code Repository",{"link":198,"type":108,"text":199},"https:\u002F\u002Fyoutu.be\u002F8Yv_V4havbc","Unlock the Power of EventBridge Pipes: Integrate Across Platforms with Ease!","13-dynamodb-ebpipes","13-dynamodb-ebpipes.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F13-dynamodb-ebpipes",{"title":204,"order":205,"youtubeVideoID":206,"resources":207,"time":185,"path":213,"id":214,"link":215},"Filtering Subscription Messages",15,"36iMOJQUAuE",[208,211,212],{"link":209,"text":210,"type":157},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fintroducing-payload-based-message-filtering-for-amazon-sns\u002F","Introducing payload-based message filtering for Amazon SNS",{"link":195,"text":196,"type":13},{"link":198,"type":108,"text":199},"14-dynamodb-sns","14-dynamodb-sns.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002F14-dynamodb-sns",{"title":217,"collapsible":21,"isCollapsed":22,"content":218},"Conclusion",[219],{"title":217,"order":220,"time":185,"path":221,"id":222,"link":223},16,"conclusion","conclusion.md","\u002Fcontent\u002Fservice\u002Fdynamodb\u002Fguides\u002Fusing-dynamodbto-build-webapps\u002Fconclusion","LIST",[226],"content\u002Fcontributors\u002Fmarcia-villalba.json","Using DynamoDB to build WebApps",1792578866869]